1.优化/dice/reward_config/index页面中的备注根据结算金额来变化

This commit is contained in:
2026-06-04 09:45:26 +08:00
parent 0c4da1540d
commit 58a4b229a8
3 changed files with 30 additions and 44 deletions

View File

@@ -10,7 +10,7 @@
"tipIndex": "色子点数须在 530 之间且本表内不重复。", "tipIndex": "色子点数须在 530 之间且本表内不重复。",
"tierRecommendRules": "【结算金额与档位】【大奖】T1结算金额>2【小赚】T22>=结算金额>1【抽水】T31>=结算金额>0【惩罚】T40>结算金额【再来一次】T50=结算金额。下方可为各档位填写推荐结算金额;表格中「所属档位」随结算金额自动计算,不可手动修改。", "tierRecommendRules": "【结算金额与档位】【大奖】T1结算金额>2【小赚】T22>=结算金额>1【抽水】T31>=结算金额>0【惩罚】T40>结算金额【再来一次】T50=结算金额。下方可为各档位填写推荐结算金额;表格中「所属档位」随结算金额自动计算,不可手动修改。",
"tierRecommendRealEv": "推荐结算金额", "tierRecommendRealEv": "推荐结算金额",
"tierRecommendAutoMatch": "修改结算金额时自动匹配档位与备注", "tierRecommendAutoMatch": "修改结算金额时自动匹配档位,并实时更新备注(大奖/小赚/抽水/惩罚/再来一次)",
"tierRecommendApplyAmount": "将推荐金额填入已选档位的行", "tierRecommendApplyAmount": "将推荐金额填入已选档位的行",
"tierRecommendApplyAmountOk": "已为 {n} 行填入推荐结算金额", "tierRecommendApplyAmountOk": "已为 {n} 行填入推荐结算金额",
"tierRecommendNoTierRows": "没有可根据结算金额推断档位的行", "tierRecommendNoTierRows": "没有可根据结算金额推断档位的行",

View File

@@ -128,12 +128,12 @@
<template #default="{ row }"> <template #default="{ row }">
<ElInputNumber <ElInputNumber
v-model="row.real_ev" v-model="row.real_ev"
@change="handleRealEvChange(row)"
controls-position="right" controls-position="right"
size="small" size="small"
:step="0.1" :step="0.1"
:precision="2" :precision="2"
class="full-width" class="full-width"
@update:model-value="() => handleRealEvChange(row)"
/> />
</template> </template>
</ElTableColumn> </ElTableColumn>
@@ -152,7 +152,6 @@
v-model="row.remark" v-model="row.remark"
size="small" size="small"
:placeholder="remarkPlaceholderForRow(row)" :placeholder="remarkPlaceholderForRow(row)"
@input="markRemarkTouched(row)"
/> />
</template> </template>
</ElTableColumn> </ElTableColumn>
@@ -225,12 +224,12 @@
<template #default="{ row }"> <template #default="{ row }">
<ElInputNumber <ElInputNumber
v-model="row.real_ev" v-model="row.real_ev"
@change="handleRealEvChange(row)"
controls-position="right" controls-position="right"
size="small" size="small"
:step="0.1" :step="0.1"
:precision="2" :precision="2"
class="full-width" class="full-width"
@update:model-value="() => handleRealEvChange(row)"
/> />
</template> </template>
</ElTableColumn> </ElTableColumn>
@@ -243,7 +242,7 @@
<ElInput <ElInput
v-model="row.remark" v-model="row.remark"
size="small" size="small"
:placeholder="$t('page.configPage.placeholderRemark')" :placeholder="remarkPlaceholderForRow(row)"
/> />
</template> </template>
</ElTableColumn> </ElTableColumn>
@@ -521,8 +520,6 @@
tier: string tier: string
remark: string remark: string
weight: number weight: number
/** 用户已手动改过备注时不再随档位自动覆盖 */
remarkTouched?: boolean
} }
const channelScope = useInjectedChannelDept() const channelScope = useInjectedChannelDept()
@@ -605,27 +602,21 @@
} }
} }
function markRemarkTouched(row: IndexRow) { /** 按当前结算金额推断档位并写入对应备注T1大奖/T2小赚/T3抽水/T4惩罚/T5再来一次 */
row.remarkTouched = true function syncRemarkFromSettlement(row: IndexRow) {
} const tier = inferTierFromRealEv(rowRealEvNumber(row))
function syncRemarkFromTier(row: IndexRow) {
if (row.remarkTouched || row.tier === 'BIGWIN') {
return
}
const tier = displayRowTier(row)
if (tier === '') { if (tier === '') {
return return
} }
row.remark = defaultRemarkForTier(tier, tierRecommend.T2) row.remark = defaultRemarkForTier(tier)
} }
function remarkPlaceholderForRow(row: IndexRow): string { function remarkPlaceholderForRow(row: IndexRow): string {
const tier = displayRowTier(row) const tier = displayRowTier(row)
if (tier === '') { if (tier === '' || tier === '-') {
return t('page.configPage.placeholderRemark') return t('page.configPage.placeholderRemark')
} }
return defaultRemarkForTier(tier, tierRecommend.T2) return defaultRemarkForTier(tier)
} }
function displayRowTier(row: IndexRow): string { function displayRowTier(row: IndexRow): string {
@@ -643,7 +634,7 @@
applyRealEvDisplay(row, ev) applyRealEvDisplay(row, ev)
} }
syncRowTierFromRealEv(row) syncRowTierFromRealEv(row)
syncRemarkFromTier(row) syncRemarkFromSettlement(row)
} }
/** 奖励索引 id 与后端 DiceRewardConfigLogic 一致025 */ /** 奖励索引 id 与后端 DiceRewardConfigLogic 一致025 */
@@ -696,17 +687,19 @@
function handleRealEvChange(row: IndexRow) { function handleRealEvChange(row: IndexRow) {
if (row.tier === 'BIGWIN') { if (row.tier === 'BIGWIN') {
row.remark = defaultRemarkForTier('BIGWIN')
return return
} }
const n = rowRealEvNumber(row) const n = rowRealEvNumber(row)
syncRowTierFromRealEv(row) syncRowTierFromRealEv(row)
if (row.tier === 'T5') { const tier = inferTierFromRealEv(n)
if (tier === 'T5') {
row.ui_text = t('page.configPage.tierRecommendT5UiText') row.ui_text = t('page.configPage.tierRecommendT5UiText')
row.ui_text_en = t('page.configPage.tierRecommendT5UiTextEn') row.ui_text_en = t('page.configPage.tierRecommendT5UiTextEn')
} else { } else {
applyRealEvDisplay(row, n) applyRealEvDisplay(row, n)
} }
syncRemarkFromTier(row) syncRemarkFromSettlement(row)
} }
function handleApplyRecommendRealEv() { function handleApplyRecommendRealEv() {
@@ -735,7 +728,7 @@
let count = 0 let count = 0
for (const row of indexRowsExcludeBigwin.value) { for (const row of indexRowsExcludeBigwin.value) {
syncRowTierFromRealEv(row) syncRowTierFromRealEv(row)
syncRemarkFromTier(row) syncRemarkFromSettlement(row)
if (row.tier !== '') { if (row.tier !== '') {
count++ count++
} }

View File

@@ -70,28 +70,21 @@ export const DEFAULT_TIER_REAL_EV_STANDARDS: TierRealEvStandards = {
* T4 惩罚0>金额 * T4 惩罚0>金额
* T5 再来一次:=0 * T5 再来一次:=0
*/ */
/** 各档位默认备注(奖励索引表;用户可手动改,改档位时会按规则刷新除非已手动编辑过备注 */ /** 各档位默认备注(与结算金额推断档位规则一致,修改结算金额时实时同步 */
export function defaultRemarkForTier( export const TIER_REMARK_BY_TIER: Record<IndexTier, string> = {
tier: IndexTier | 'BIGWIN' | string, T1: '大奖',
t2RealEvStandard?: number T2: '小赚',
): string { T3: '抽水',
if (tier === 'T1' || tier === 'BIGWIN') { T4: '惩罚',
return '大奖格' T5: '再来一次'
} }
if (tier === 'T2') {
if (t2RealEvStandard !== undefined && t2RealEvStandard <= 1) { export function defaultRemarkForTier(tier: IndexTier | 'BIGWIN' | string): string {
return '完美回本' if (tier === 'BIGWIN' || tier === 'T1') {
return TIER_REMARK_BY_TIER.T1
} }
return '小赚' if (tier === 'T2' || tier === 'T3' || tier === 'T4' || tier === 'T5') {
} return TIER_REMARK_BY_TIER[tier]
if (tier === 'T3') {
return '抽水'
}
if (tier === 'T4') {
return '惩罚'
}
if (tier === 'T5') {
return '再来一次'
} }
return '' return ''
} }