一键测试权重-新增安全线杀分机制,保证测试数据合理

This commit is contained in:
2026-03-27 17:50:11 +08:00
parent 2f05ac0cd9
commit afd6113927
13 changed files with 140 additions and 45 deletions

View File

@@ -66,6 +66,8 @@ export default {
paid_lottery_config_id?: number
free_lottery_config_id?: number
chain_free_mode?: boolean
kill_mode_enabled?: boolean
test_safety_line?: number
s_count?: number
n_count?: number
paid_s_count?: number

View File

@@ -14,10 +14,25 @@
<ElAlert type="warning" :closable="false" show-icon class="weight-test-tip chain-tip">
{{ $t('page.weightTest.chainModeHint') }}
</ElAlert>
<ElAlert type="info" :closable="false" show-icon class="weight-test-tip chain-tip">
{{ $t('page.weightTest.killModeHint') }}
</ElAlert>
<ElForm :model="form" label-width="140px">
<ElFormItem :label="$t('page.weightTest.labelAnte')" prop="ante" required>
<ElInputNumber v-model="form.ante" :min="1" :step="1" style="width: 100%" />
</ElFormItem>
<ElFormItem :label="$t('page.weightTest.labelKillModeEnabled')" prop="kill_mode_enabled">
<ElSwitch v-model="form.kill_mode_enabled" />
</ElFormItem>
<ElFormItem :label="$t('page.weightTest.labelTestSafetyLine')" prop="test_safety_line">
<ElInputNumber
v-model="form.test_safety_line"
:min="0"
:step="100"
:disabled="!form.kill_mode_enabled"
style="width: 100%"
/>
</ElFormItem>
<div class="section-title">{{ $t('page.weightTest.sectionPaid') }}</div>
<ElFormItem
@@ -164,7 +179,9 @@
paid_tier_weights: { T1: 20, T2: 20, T3: 20, T4: 20, T5: 20 } as Record<string, number>,
free_tier_weights: { T1: 20, T2: 20, T3: 20, T4: 20, T5: 20 } as Record<string, number>,
paid_s_count: 100,
paid_n_count: 100
paid_n_count: 100,
kill_mode_enabled: false,
test_safety_line: 5000
})
const lotteryOptions = ref<Array<{ id: number; name: string }>>([])
/** 付费抽奖券可选档位name=default */
@@ -242,7 +259,9 @@
paid_n_count: form.paid_n_count,
free_s_count: 0,
free_n_count: 0,
chain_free_mode: true
chain_free_mode: true,
kill_mode_enabled: form.kill_mode_enabled,
test_safety_line: form.test_safety_line
}
if (form.paid_lottery_config_id != null) {
payload.paid_lottery_config_id = form.paid_lottery_config_id
@@ -266,6 +285,10 @@
ElMessage.warning(t('page.weightTest.warnPaidSpins'))
return false
}
if (form.kill_mode_enabled && (form.test_safety_line == null || form.test_safety_line < 0)) {
ElMessage.warning(t('page.weightTest.warnTestSafetyLine'))
return false
}
const needPaidTier = form.paid_lottery_config_id == null
const needFreeTier = form.free_lottery_config_id == null
if (needPaidTier) {

View File

@@ -225,6 +225,12 @@
width: 120,
align: 'center'
},
{
prop: 'ante',
label: 'page.table.ante',
width: 90,
align: 'center'
},
{
prop: 'play_again_count',
label: 'page.table.playAgainCount',

View File

@@ -8,6 +8,32 @@
@search="handleSearch"
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item :label="$t('page.search.paidPlannedSpins')" prop="paid_planned_spins">
<el-input-number
v-model="formData.paid_planned_spins"
:placeholder="$t('table.searchBar.all')"
:min="0"
:precision="0"
:step="1"
controls-position="right"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item :label="$t('page.search.ante')" prop="ante">
<el-input-number
v-model="formData.ante"
:placeholder="$t('table.searchBar.all')"
:min="1"
:precision="0"
:step="1"
controls-position="right"
style="width: 100%"
/>
</el-form-item>
</el-col>
</sa-search-bar>
</template>