diff --git a/saiadmin-artd/src/locales/langs/zh/dice/reward_config.json b/saiadmin-artd/src/locales/langs/zh/dice/reward_config.json index aa1f3df..9954e62 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/reward_config.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/reward_config.json @@ -10,7 +10,7 @@ "tipIndex": "色子点数须在 5~30 之间且本表内不重复。", "tierRecommendRules": "【结算金额与档位】【大奖】T1:结算金额>2;【小赚】T2:2>=结算金额>1;【抽水】T3:1>=结算金额>0;【惩罚】T4:0>结算金额;【再来一次】T5:0=结算金额。下方可为各档位填写推荐结算金额;表格中「所属档位」随结算金额自动计算,不可手动修改。", "tierRecommendRealEv": "推荐结算金额", - "tierRecommendAutoMatch": "修改结算金额时自动匹配档位", + "tierRecommendAutoMatch": "修改结算金额时自动匹配档位与备注", "tierRecommendApplyAmount": "将推荐金额填入已选档位的行", "tierRecommendApplyAmountOk": "已为 {n} 行填入推荐结算金额", "tierRecommendNoTierRows": "没有可根据结算金额推断档位的行", @@ -20,7 +20,7 @@ "tierRecommendT5UiText": "再来一次", "tierRecommendT5UiTextEn": "Once again", "colTierAutoHint": "根据结算金额自动匹配", - "tipBigwin": "从左至右:中大奖点数(不可改)、显示信息、实际中奖、备注、权重(0~10000)。点数 5、30 权重固定 100%。本表单独立提交,仅提交大奖权重。", + "tipBigwin": "从左至右:中大奖点数(不可改)、显示信息、结算金额、备注、权重(0~10000)。点数 5、30 权重固定 100%。本表单独立提交,仅提交大奖权重。", "colId": "索引(id)", "colDicePoints": "色子点数", "colDisplayText": "显示文本", @@ -38,7 +38,7 @@ "colBigwinPoints": "中大奖点数", "colDisplayInfo": "显示信息", "colDisplayInfoEn": "显示信息(英文)", - "colRealPrize": "实际中奖", + "colRealPrize": "结算金额", "colWeightRange": "权重(0-10000)", "placeholderDisplayInfoZh": "显示信息(中文)", "placeholderDisplayInfoEn": "显示信息(英文)", diff --git a/saiadmin-artd/src/views/plugin/dice/reward/index/index.vue b/saiadmin-artd/src/views/plugin/dice/reward/index/index.vue index 389630e..712a57e 100644 --- a/saiadmin-artd/src/views/plugin/dice/reward/index/index.vue +++ b/saiadmin-artd/src/views/plugin/dice/reward/index/index.vue @@ -78,13 +78,6 @@ return api.list({ ...params, direction: currentDirection.value }) } - function formatMoney2(val: unknown): string { - if (val === '' || val === null || val === undefined) return '-' - const n = typeof val === 'number' ? val : Number(val) - if (!Number.isFinite(n)) return '-' - return n.toFixed(2) - } - const handleSearch = (params: Record) => { Object.assign(searchParams, { ...params, direction: currentDirection.value }) getData() @@ -132,13 +125,6 @@ align: 'center', showOverflowTooltip: true }, - { - prop: 'real_ev', - label: 'page.table.realEv', - width: 110, - align: 'center', - formatter: (row: Record) => formatMoney2(row?.real_ev) - }, { prop: 'remark', label: 'page.table.remark', minWidth: 80, align: 'center', showOverflowTooltip: true }, { prop: 'weight', label: 'page.table.weight', width: 110, align: 'center' } ] diff --git a/saiadmin-artd/src/views/plugin/dice/reward/index/modules/weight-edit-dialog.vue b/saiadmin-artd/src/views/plugin/dice/reward/index/modules/weight-edit-dialog.vue index f770839..b544574 100644 --- a/saiadmin-artd/src/views/plugin/dice/reward/index/modules/weight-edit-dialog.vue +++ b/saiadmin-artd/src/views/plugin/dice/reward/index/modules/weight-edit-dialog.vue @@ -53,17 +53,6 @@ width="80" align="center" /> - - - - - - - - - - @@ -494,6 +486,7 @@ buildRowsFromTiers, computeBoardFrequencies, DEFAULT_TIER_REAL_EV_STANDARDS, + defaultRemarkForTier, generateTiers, inferTierFromRealEv, summarizeCounts, @@ -528,6 +521,8 @@ tier: string remark: string weight: number + /** 用户已手动改过备注时不再随档位自动覆盖 */ + remarkTouched?: boolean } const channelScope = useInjectedChannelDept() @@ -610,6 +605,29 @@ } } + function markRemarkTouched(row: IndexRow) { + row.remarkTouched = true + } + + function syncRemarkFromTier(row: IndexRow) { + if (row.remarkTouched || row.tier === 'BIGWIN') { + return + } + const tier = displayRowTier(row) + if (tier === '') { + return + } + row.remark = defaultRemarkForTier(tier, tierRecommend.T2) + } + + function remarkPlaceholderForRow(row: IndexRow): string { + const tier = displayRowTier(row) + if (tier === '') { + return t('page.configPage.placeholderRemark') + } + return defaultRemarkForTier(tier, tierRecommend.T2) + } + function displayRowTier(row: IndexRow): string { const tier = inferTierFromRealEv(rowRealEvNumber(row)) return tier !== '' ? tier : row.tier || '-' @@ -625,6 +643,7 @@ applyRealEvDisplay(row, ev) } syncRowTierFromRealEv(row) + syncRemarkFromTier(row) } /** 奖励索引 id 与后端 DiceRewardConfigLogic 一致:0~25 */ @@ -669,14 +688,6 @@ } } - function calcRealReward(realEv: unknown): number { - const n = typeof realEv === 'number' && !Number.isNaN(realEv) ? realEv : Number(realEv) - if (Number.isNaN(n)) { - return -1 - } - return n - 1 - } - /** BIGWIN 行不参与按 real_ev 推断 T1-T5,避免编辑时从大奖权重表消失 */ function setBigwinRowWeight(row: IndexRow, v: number | number[] | undefined | null) { const n = Array.isArray(v) ? v[0] : v @@ -695,6 +706,7 @@ } else { applyRealEvDisplay(row, n) } + syncRemarkFromTier(row) } function handleApplyRecommendRealEv() { @@ -723,6 +735,7 @@ let count = 0 for (const row of indexRowsExcludeBigwin.value) { syncRowTierFromRealEv(row) + syncRemarkFromTier(row) if (row.tier !== '') { count++ } diff --git a/saiadmin-artd/src/views/plugin/dice/reward_config/index/modules/create-reward-reference-preview-dialog.vue b/saiadmin-artd/src/views/plugin/dice/reward_config/index/modules/create-reward-reference-preview-dialog.vue index d2df748..ad99761 100644 --- a/saiadmin-artd/src/views/plugin/dice/reward_config/index/modules/create-reward-reference-preview-dialog.vue +++ b/saiadmin-artd/src/views/plugin/dice/reward_config/index/modules/create-reward-reference-preview-dialog.vue @@ -35,7 +35,6 @@ -