优化烽火地带最小等级
This commit is contained in:
@@ -71,6 +71,7 @@ export interface ListingPublishOptions {
|
||||
screenshot_slots: PublishScreenshotSlot[]
|
||||
ban_record_options: string[]
|
||||
ban_evidence_options: string[]
|
||||
fire_level_min: number
|
||||
price_config: PublishPriceConfig
|
||||
ratio_config: PublishRatioConfig
|
||||
}
|
||||
@@ -94,6 +95,7 @@ export const emptyListingPublishOptions: ListingPublishOptions = {
|
||||
screenshot_slots: [],
|
||||
ban_record_options: [],
|
||||
ban_evidence_options: [],
|
||||
fire_level_min: 38,
|
||||
price_config: {
|
||||
deposit_placeholder: '',
|
||||
price_placeholder: '',
|
||||
@@ -125,6 +127,7 @@ export function mergeListingPublishOptions(options?: Partial<ListingPublishOptio
|
||||
screenshot_slots: normalizeScreenshotSlots(options?.screenshot_slots),
|
||||
ban_record_options: normalizeStringList(options?.ban_record_options),
|
||||
ban_evidence_options: normalizeStringList(options?.ban_evidence_options),
|
||||
fire_level_min: readPositiveInteger(options?.fire_level_min, 38),
|
||||
price_config: normalizePriceConfig(options?.price_config),
|
||||
ratio_config: normalizeRatioConfig(options?.ratio_config),
|
||||
}
|
||||
@@ -248,6 +251,11 @@ function readNumber(value: unknown) {
|
||||
return Number.isFinite(parsed) ? parsed : 0
|
||||
}
|
||||
|
||||
function readPositiveInteger(value: unknown, fallback: number) {
|
||||
const parsed = Math.trunc(readNumber(value))
|
||||
return parsed > 0 ? parsed : fallback
|
||||
}
|
||||
|
||||
function isRecord(value: unknown): value is Record<string, unknown> {
|
||||
return typeof value === 'object' && value !== null
|
||||
}
|
||||
|
||||
@@ -543,6 +543,15 @@ function readError(error: unknown, fallback: string) {
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div class="editor-block">
|
||||
<div class="editor-block-title">
|
||||
<strong>发布规则</strong>
|
||||
</div>
|
||||
<el-form-item label="最低烽火等级">
|
||||
<el-input-number v-model="publishOptionsDraft.fire_level_min" :min="1" :step="1" class="full-control" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div class="editor-block">
|
||||
<div class="editor-block-title">
|
||||
<strong>押金与价格提示</strong>
|
||||
|
||||
@@ -112,6 +112,10 @@ const regionOptions = computed(() => publishOptions.value.region_options);
|
||||
const banRecordOptions = computed(() => publishOptions.value.ban_record_options);
|
||||
const banEvidenceOptions = computed(() => publishOptions.value.ban_evidence_options);
|
||||
const priceConfig = computed(() => publishOptions.value.price_config);
|
||||
const fireLevelMin = computed(() => publishOptions.value.fire_level_min || 38);
|
||||
const fireLevelPlaceholder = computed(
|
||||
() => `等级低于${fireLevelMin.value}级的号无法发布`
|
||||
);
|
||||
const ratioConfig = computed(() => publishOptions.value.ratio_config);
|
||||
const skinGroups = computed(() => publishOptions.value.skin_groups);
|
||||
const quantityItems = computed(() => publishOptions.value.quantity_items);
|
||||
@@ -394,7 +398,9 @@ function validateForm() {
|
||||
if (coinMAmount.value <= 0) return "请填写哈夫币/M";
|
||||
if (!form.rank_level) return "请选择段位";
|
||||
if (!form.fire_level) return "请填写烽火等级";
|
||||
if (Number(form.fire_level) < 38) return "烽火等级低于38级的号无法发布";
|
||||
if (Number(form.fire_level) < fireLevelMin.value) {
|
||||
return `烽火等级低于${fireLevelMin.value}级的号无法发布`;
|
||||
}
|
||||
if (!form.season_insurance) return "请选择赛季保险";
|
||||
if (!form.stamina_level) return "请选择体力等级";
|
||||
if (!form.load_level) return "请选择负重等级";
|
||||
@@ -642,7 +648,7 @@ function readError(error: unknown, fallback: string) {
|
||||
label="烽火等级"
|
||||
type="digit"
|
||||
required
|
||||
placeholder="等级低于38级的号无法发布"
|
||||
:placeholder="fireLevelPlaceholder"
|
||||
class="publish-field"
|
||||
@update:model-value="handleFireLevelInput"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user