优化历史包袱,修复发布页面默认0 恢哈伏笔
This commit is contained in:
@@ -28,7 +28,7 @@ function isNavActive(path: string) {
|
||||
const form = reactive({
|
||||
server_region: "",
|
||||
face_owner: "",
|
||||
haf_coin_amount: 0,
|
||||
haf_coin_amount: "" as number | "",
|
||||
rank_level: "",
|
||||
secret_kd: "",
|
||||
fire_level: "" as number | "",
|
||||
@@ -43,9 +43,7 @@ const form = reactive({
|
||||
deposit_amount: "" as number | "",
|
||||
ratio: "" as number | "",
|
||||
final_price: 0,
|
||||
settlement_amount: 0,
|
||||
rent_days: 0,
|
||||
daily_loss: "",
|
||||
remark: "",
|
||||
});
|
||||
|
||||
@@ -94,6 +92,9 @@ const screenshotSlots = computed(() => publishOptions.value.screenshot_slots);
|
||||
const screenshotUrls = computed(() =>
|
||||
screenshotSlots.value.map((item) => screenshotFiles[item.key]).filter(Boolean)
|
||||
);
|
||||
const dailyLossText = computed(() =>
|
||||
form.rent_days ? calculateDailyLoss(Number(form.haf_coin_amount || 0)) : ""
|
||||
);
|
||||
|
||||
onMounted(loadPublishOptions);
|
||||
|
||||
@@ -174,9 +175,7 @@ function calculatePrice() {
|
||||
const finalPrice = roundMoney(coinWan / ratio);
|
||||
const rentDays = coinWan >= 30000 ? 7 : coinWan >= 10000 ? 3 : 1;
|
||||
form.final_price = finalPrice;
|
||||
form.settlement_amount = finalPrice;
|
||||
form.rent_days = rentDays;
|
||||
form.daily_loss = coinWan >= 30000 ? "30M" : coinWan >= 10000 ? "20M" : "10M";
|
||||
}
|
||||
|
||||
async function handleSubmit() {
|
||||
@@ -232,7 +231,7 @@ function validateForm() {
|
||||
if (form.deposit_amount === "" || Number(form.deposit_amount) < 0) {
|
||||
return "请填写押金";
|
||||
}
|
||||
if (!form.final_price || !form.settlement_amount || !form.rent_days) {
|
||||
if (!form.final_price || !form.rent_days) {
|
||||
return "请先点击计算价格";
|
||||
}
|
||||
for (const item of screenshotSlots.value) {
|
||||
@@ -246,7 +245,6 @@ function validateForm() {
|
||||
function buildAssetSummary() {
|
||||
return {
|
||||
face_owner: form.face_owner,
|
||||
haf_coin_wan: Number(form.haf_coin_amount),
|
||||
secret_kd: form.secret_kd,
|
||||
fire_level: Number(form.fire_level),
|
||||
season_insurance: form.season_insurance,
|
||||
@@ -258,7 +256,6 @@ function buildAssetSummary() {
|
||||
quantity: Number(quantityValues[item.key] || 0),
|
||||
mode: quantityModes[item.key],
|
||||
})),
|
||||
skins: selectedSkins.value,
|
||||
skin_groups: skinGroups.value.reduce<Record<string, string[]>>((groups, group) => {
|
||||
groups[group.key] = group.options.filter((skin) =>
|
||||
selectedSkins.value.includes(skin)
|
||||
@@ -269,16 +266,8 @@ function buildAssetSummary() {
|
||||
start: form.online_start,
|
||||
end: form.online_end,
|
||||
},
|
||||
login_method: form.login_method,
|
||||
ban_record: form.ban_record,
|
||||
common_regions: form.common_regions,
|
||||
screenshots: { ...screenshotFiles },
|
||||
deposit_amount: Number(form.deposit_amount),
|
||||
ratio: Number(form.ratio),
|
||||
price: Number(form.final_price),
|
||||
settlement_amount: Number(form.settlement_amount),
|
||||
rent_days: Number(form.rent_days),
|
||||
daily_loss: form.daily_loss,
|
||||
remark: form.remark,
|
||||
};
|
||||
}
|
||||
@@ -287,6 +276,12 @@ function roundMoney(value: number) {
|
||||
return Math.round(value * 100) / 100;
|
||||
}
|
||||
|
||||
function calculateDailyLoss(coinWan: number) {
|
||||
if (coinWan >= 30000) return "30M";
|
||||
if (coinWan >= 10000) return "20M";
|
||||
return "10M";
|
||||
}
|
||||
|
||||
function readError(error: unknown, fallback: string) {
|
||||
if (typeof error === "object" && error && "response" in error) {
|
||||
const response = (error as { response?: { data?: { message?: string } } })
|
||||
@@ -642,7 +637,7 @@ function readError(error: unknown, fallback: string) {
|
||||
class="publish-field result-field"
|
||||
/>
|
||||
<van-field
|
||||
:model-value="form.settlement_amount ? `¥${form.settlement_amount}` : ''"
|
||||
:model-value="form.final_price ? `¥${form.final_price}` : ''"
|
||||
label="结算金额"
|
||||
readonly
|
||||
required
|
||||
@@ -657,7 +652,7 @@ function readError(error: unknown, fallback: string) {
|
||||
class="publish-field result-field"
|
||||
/>
|
||||
<van-field
|
||||
v-model="form.daily_loss"
|
||||
:model-value="dailyLossText"
|
||||
label="每日损耗"
|
||||
readonly
|
||||
placeholder="自动计算 10M/20M/30M"
|
||||
|
||||
Reference in New Issue
Block a user