diff --git a/saiadmin-artd/src/components/core/charts/art-dual-bar-compare-chart/index.vue b/saiadmin-artd/src/components/core/charts/art-dual-bar-compare-chart/index.vue index 32aa60f..5b21d2a 100644 --- a/saiadmin-artd/src/components/core/charts/art-dual-bar-compare-chart/index.vue +++ b/saiadmin-artd/src/components/core/charts/art-dual-bar-compare-chart/index.vue @@ -117,7 +117,8 @@ right: 0, left: 0, bottom: 0, // 增加底部间距 - containLabel: true + outerBoundsMode: 'same' as const, + outerBoundsContain: 'axisLabel' as const } const options: EChartsOption = { diff --git a/saiadmin-artd/src/components/core/charts/art-k-line-chart/index.vue b/saiadmin-artd/src/components/core/charts/art-k-line-chart/index.vue index 0061b51..9f2a469 100644 --- a/saiadmin-artd/src/components/core/charts/art-k-line-chart/index.vue +++ b/saiadmin-artd/src/components/core/charts/art-k-line-chart/index.vue @@ -75,7 +75,8 @@ right: 20, bottom: props.showDataZoom ? 80 : 20, left: 20, - containLabel: true + outerBoundsMode: 'same', + outerBoundsContain: 'axisLabel' }, tooltip: getTooltipStyle('axis', { axisPointer: { diff --git a/saiadmin-artd/src/components/core/charts/art-scatter-chart/index.vue b/saiadmin-artd/src/components/core/charts/art-scatter-chart/index.vue index 995b56a..dcfad3a 100644 --- a/saiadmin-artd/src/components/core/charts/art-scatter-chart/index.vue +++ b/saiadmin-artd/src/components/core/charts/art-scatter-chart/index.vue @@ -64,7 +64,8 @@ right: 20, bottom: 20, left: 20, - containLabel: true + outerBoundsMode: 'same', + outerBoundsContain: 'axisLabel' }, tooltip: props.showTooltip ? getTooltipStyle('item', { diff --git a/saiadmin-artd/src/hooks/core/useChart.ts b/saiadmin-artd/src/hooks/core/useChart.ts index 29ba1d1..bd87f19 100644 --- a/saiadmin-artd/src/hooks/core/useChart.ts +++ b/saiadmin-artd/src/hooks/core/useChart.ts @@ -345,7 +345,9 @@ export function useChart(options: UseChartOptions = {}) { right: 15, bottom: 8, left: 0, - containLabel: true, + // ECharts 6:替代已弃用的 containLabel(需配合 outerBounds 布局,避免控制台告警) + outerBoundsMode: 'same' as const, + outerBoundsContain: 'axisLabel' as const, ...baseGrid } diff --git a/saiadmin-artd/src/locales/langs/en/dice/reward.json b/saiadmin-artd/src/locales/langs/en/dice/reward.json index 42368b9..b9effe2 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/reward.json +++ b/saiadmin-artd/src/locales/langs/en/dice/reward.json @@ -1,12 +1,13 @@ { "toolbar": { "weightRatio": "Weight Ratio", - "weightTest": "Test Weight" + "weightTest": "Test Weights" }, "search": { "tier": "Tier", "clockwise": "Clockwise", - "anticlockwise": "Anticlockwise" + "anticlockwise": "Counter-clockwise", + "optionBigwin": "BIGWIN" }, "table": { "startIndex": "Start Index", @@ -17,5 +18,67 @@ "realEv": "Real EV", "remark": "Remark", "weight": "Weight" + }, + "weightShared": { + "xAxisEndIndex": "End Index", + "xAxisGridNumber": "Points", + "emptyTier": "No data for this tier", + "sumLineDual": "Tier weight sum (clockwise): {cw}; counter-clockwise: {ccw} (each row 1–10000, ratio draw within tier, sum not limited)", + "sumLineSingle": "Tier weight sum: {sum} (each row 1–10000, ratio draw within tier, sum not limited)", + "t4t5NoteSingle": "T4 and T5 have a single outcome; no weight configuration.", + "t4t5NoteDual": "T4 and T5 have a single outcome when hit; no weight configuration.", + "colEndIndexId": "End Index (id)", + "colGridNumber": "Points (grid_number)", + "colDicePoints": "Dice Points", + "colRealEv": "Real EV", + "colUiText": "Display Text", + "colRemark": "Remark", + "colWeightCwDir": "Clockwise weight (direction=0)", + "colWeightCcwDir": "Counter-clockwise weight (direction=1)", + "weightColSuffix": "Weight (1-10000)", + "fetchFail": "Failed to load weight data", + "nothingToSubmit": "Nothing to submit", + "submitFail": "Save failed", + "btnCancel": "Cancel", + "btnSubmit": "Submit", + "saveSuccess": "Saved successfully" + }, + "weightEdit": { + "title": "Dice Reward (dice_reward) Weight Ratio", + "globalTip": "You are editing weights on dice_reward (DiceReward), split by end_index into clockwise and counter-clockwise; the draw uses the set for the current direction." + }, + "weightRatio": { + "title": "Weight Ratio", + "globalTip": "Configure dice_reward weights: first by direction (clockwise / counter-clockwise), then by tier (T1–T5); each row weight 1–10000, ratio draw within tier.", + "tabClockwise": "Clockwise", + "tabCounterclockwise": "Counter-clockwise" + }, + "weightTest": { + "title": "One-Click Weight Test", + "alertTitle": "Bonus pool logic", + "alertBody": "Same as playStart draw: uses name=default safety line and kill switch; when profit is below the line, paid tickets use player tier weights (custom below), free tickets use killScore; when profit reaches the line and kill is on, both use killScore.", + "stepPaid": "Paid ticket", + "stepFree": "Free ticket", + "labelLotteryTypePaid": "Test pool type", + "labelLotteryTypeFree": "Test pool type", + "placeholderPaidPool": "Leave empty for custom tier odds below (default: default)", + "placeholderFreePool": "Leave empty for custom tier odds below (default: killScore)", + "tierProbHint": "Custom tier odds (T1–T5), each 0–100%, sum of five must not exceed 100%", + "tierFieldLabel": "Tier {tier} (%)", + "tierSumError": "Current sum of five tiers is {sum}%, cannot exceed 100%", + "labelCwCount": "Clockwise spins", + "labelCcwCount": "Counter-clockwise spins", + "placeholderSelect": "Please select", + "btnPrev": "Back", + "btnNext": "Next", + "btnStart": "Start test", + "btnCancel": "Cancel", + "warnTotalSpins": "At least one of paid/free direction spin counts must be greater than 0", + "warnPaidTierSumPositive": "When no paid pool is selected, T1–T5 odds sum must be greater than 0", + "warnPaidTierSumMax": "Paid T1–T5 odds sum cannot exceed 100%", + "warnFreeTierSumPositive": "When no free pool is selected, T1–T5 odds sum must be greater than 0", + "warnFreeTierSumMax": "Free T1–T5 odds sum cannot exceed 100%", + "successCreated": "Test job created and will run in background. Check player draw records (test data) for results.", + "failCreate": "Failed to create test job" } } diff --git a/saiadmin-artd/src/locales/langs/en/dice/reward_config.json b/saiadmin-artd/src/locales/langs/en/dice/reward_config.json index 5e88071..ff0a0d9 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/reward_config.json +++ b/saiadmin-artd/src/locales/langs/en/dice/reward_config.json @@ -1,7 +1,74 @@ { "toolbar": { "gameRewardConfig": "Game Reward Config", - "createRewardRef": "Create Reward Reference" + "createRewardRef": "Create Reward Reference", + "createRewardRefTitle": "Rule: start_index=config(grid_number).id; clockwise end_index=(start_index+grid_number)%26; counter-clockwise end_index=start_index-grid_number>=0?start_index-grid_number:26+start_index-grid_number" + }, + "configPage": { + "tabIndex": "Reward Index", + "tabBigwin": "Big Win Weights", + "tipIndex": "Dice points must be between 5 and 30 and unique in this table.", + "tipBigwin": "Left to right: big-win points (read-only), display text, real EV, remark, weight (0~10000). Points 5 and 30 are fixed at 100%. This tab saves big-win weights only.", + "colId": "Index (id)", + "colDicePoints": "Dice Points", + "colDisplayText": "Display Text", + "colDisplayTextEn": "Display Text (EN)", + "colRealEv": "Real Settlement", + "colTier": "Tier", + "colRemark": "Remark", + "placeholderTierSelect": "Tier", + "placeholderDisplayZh": "Display text (Chinese)", + "placeholderDisplayEn": "Display text (English)", + "placeholderRemark": "Remark", + "btnSave": "Save", + "btnReset": "Reset", + "colBigwinPoints": "Big-Win Points", + "colDisplayInfo": "Display Info", + "colDisplayInfoEn": "Display Info (EN)", + "colRealPrize": "Real Prize", + "colWeightRange": "Weight (0-10000)", + "placeholderDisplayInfoZh": "Display info (Chinese)", + "placeholderDisplayInfoEn": "Display info (English)", + "weightFixedTip": "Points 5 and 30 are fixed at 100%", + "emptyBigwin": "No BIGWIN tier rows. Set tier to BIGWIN in the Reward Index tab first.", + "confirmCreateRefTitle": "Create Reward Reference", + "confirmCreateRefMsg": "Create reward reference by rule: start_index is the id of the cell for grid_number in reward config; clockwise end_index=(start_index+roll)%26; counter-clockwise end_index=start_index-roll if >=0 else 26+start_index-roll. Existing data will be cleared, then 26 points (5–30) for both directions will be generated. Continue?", + "confirmCreateRefOk": "Create", + "confirmCreateRefCancel": "Cancel", + "createRefSuccess": "Created for 26 dice points (5–30), clockwise + counter-clockwise: clockwise added {cwNew}, counter-clockwise added {ccwNew}; clockwise updated {cwUp}, counter-clockwise updated {ccwUp}{skippedPart}", + "createRefSuccessSkipped": "; {n} point(s) used fallback start index", + "createRefSuccessSimple": "Created successfully", + "createRefFail": "Failed to create reward reference", + "loadIndexFail": "Failed to load reward index config", + "saveSuccess": "Saved successfully", + "saveFail": "Save failed", + "resetIndexReloaded": "Reward index reloaded from server", + "resetBigwinReloaded": "Big win weights reloaded from server", + "warnNoIndexToSave": "No reward index rows to save", + "warnGridRange": "Dice points must be between {min} and {max}", + "dupJoiner": ", ", + "warnDupGrid": "Duplicate dice points in this table: {list}", + "warnNoBigwinToSave": "No BIGWIN rows to save", + "warnBigwinDupGrid": "Duplicate big-win points in this table: {list}", + "infoNoBigwin": "No BIGWIN rows. Set tier to BIGWIN in the Reward Index tab first." + }, + "weightRatio": { + "title": "T1–T5 Weight Ratio (Clockwise / Counter-clockwise)", + "globalTip": "Weights come from dice_reward, split by end index (DiceRewardConfig.id) into clockwise and counter-clockwise; draw uses the weight set for the current direction.", + "xAxisEndIndex": "End Index", + "emptyTier": "No data for this tier", + "sumLine": "Tier weight sum (clockwise): {cw}; counter-clockwise: {ccw} (each row 1–10000, ratio draw within tier, sum not limited)", + "t4t5Note": "T4 and T5 have a single outcome; no weight configuration.", + "colEndIndexId": "End Index (id)", + "colDicePoints": "Dice Points", + "colRealEv": "Real EV", + "colUiText": "Display Text", + "colWeightCw": "Clockwise weight (1-10000)", + "colWeightCcw": "Counter-clockwise weight (1-10000)", + "fetchFail": "Failed to load weight ratio data", + "nothingToSubmit": "Nothing to submit", + "submitFail": "Save failed", + "saveSuccess": "Saved successfully" }, "search": { "dicePoints": "Dice Points", diff --git a/saiadmin-artd/src/locales/langs/en/dice/reward_config_record.json b/saiadmin-artd/src/locales/langs/en/dice/reward_config_record.json index f5caf39..57aaca8 100644 --- a/saiadmin-artd/src/locales/langs/en/dice/reward_config_record.json +++ b/saiadmin-artd/src/locales/langs/en/dice/reward_config_record.json @@ -4,6 +4,8 @@ }, "table": { "id": "ID", + "clockwiseAbbr": "CW", + "counterclockwiseAbbr": "CCW", "status": "Status", "paidDraw": "Paid Draw", "freeDraw": "Free Draw", @@ -27,5 +29,51 @@ "ruleTestCountRequired": "Test count is required", "addSuccess": "Added successfully", "editSuccess": "Updated successfully" + }, + "detail": { + "title": "Test Record Detail", + "sectionBasic": "Basic Info", + "recordId": "Record ID", + "testCount": "Test count", + "testCountSuffix": " runs", + "createTime": "Created at", + "admin": "Operator", + "paidPoolId": "Paid lottery pool config ID", + "freePoolId": "Free lottery pool config ID", + "bigwinSnapshot": "BIGWIN weight snapshot", + "sectionPaidTier": "Paid draw tier odds (T1–T5, used in test)", + "sectionFreeTier": "Free draw tier odds (T1–T5, used in test)", + "colTier": "Tier", + "colWeight": "Weight", + "colPercent": "Share", + "emptyPaidTier": "No paid tier data (legacy records may only have tier_weights_snapshot)", + "emptyFreeTier": "No free tier data", + "sectionSnapshot": "Weight snapshot (T1–T5 / BIGWIN used in test)", + "subCw": "Clockwise (non-BIGWIN)", + "subCcw": "Counter-clockwise (non-BIGWIN)", + "colGridNumber": "Dice points", + "emptyCw": "No clockwise data", + "emptyCcw": "No counter-clockwise data", + "subBigwin": "BIGWIN (DiceRewardConfig snapshot)", + "emptyBigwinTable": "No BIGWIN data", + "sectionResult": "Landing stats (count per grid_number)", + "chartXAxis": "Dice points (grid_number)", + "emptyResult": "No landing data", + "resultTotal": "Total landings: {n}", + "btnImport": "Import to current config", + "importTitle": "Import to production config", + "importDesc": "Import this test record into DiceReward (cell weights), DiceRewardConfig (BIGWIN weight), and DiceLotteryPoolConfig (paid/free T1–T5 odds). Select target pools.", + "importPaidLabel": "Import paid tier odds to pool", + "importPaidPlaceholder": "Select a pool (paid pool recommended)", + "importPaidTip": "If empty, uses paid pool ID saved on this record", + "importFreeLabel": "Import free tier odds to pool", + "importFreePlaceholder": "Select a pool (free pool recommended)", + "importFreeTip": "If empty, uses free pool ID saved on this record", + "btnConfirmImport": "Confirm import", + "importSuccess": "Imported. DiceReward, DiceRewardConfig (BIGWIN), and pool config refreshed.", + "importFail": "Import failed", + "dash": "—", + "dirCw": "Clockwise", + "dirCcw": "Counter-clockwise" } } diff --git a/saiadmin-artd/src/locales/langs/zh/dice/reward.json b/saiadmin-artd/src/locales/langs/zh/dice/reward.json index 63f1762..539b70b 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/reward.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/reward.json @@ -6,7 +6,8 @@ "search": { "tier": "档位", "clockwise": "顺时针", - "anticlockwise": "逆时针" + "anticlockwise": "逆时针", + "optionBigwin": "BIGWIN" }, "table": { "startIndex": "起始索引", @@ -17,5 +18,67 @@ "realEv": "实际中奖金额", "remark": "备注", "weight": "权重(1-10000)" + }, + "weightShared": { + "xAxisEndIndex": "结束索引", + "xAxisGridNumber": "点数", + "emptyTier": "该档位暂无配置数据", + "sumLineDual": "当前档位权重合计(顺时针):{cw};逆时针:{ccw}(各条 1-10000,档位内按权重比抽取,和不限制)", + "sumLineSingle": "当前档位权重合计:{sum}(各条 1-10000,档位内按权重比抽取,和不限制)", + "t4t5NoteSingle": "T4、T5 仅单一结果,无需配置权重。", + "t4t5NoteDual": "T4、T5 档位抽中时仅有一个结果,无需配置权重。", + "colEndIndexId": "结束索引(id)", + "colGridNumber": "点数(grid_number)", + "colDicePoints": "色子点数", + "colRealEv": "实际中奖金额", + "colUiText": "显示文本", + "colRemark": "备注", + "colWeightCwDir": "顺时针权重(direction=0)", + "colWeightCcwDir": "逆时针权重(direction=1)", + "weightColSuffix": "权重(1-10000)", + "fetchFail": "获取权重数据失败", + "nothingToSubmit": "没有可提交的配置", + "submitFail": "保存失败", + "btnCancel": "取消", + "btnSubmit": "提交", + "saveSuccess": "保存成功" + }, + "weightEdit": { + "title": "奖励对照表(dice_reward)权重配比", + "globalTip": "编辑的是奖励对照表(dice_reward / DiceReward 模型)的权重,按结束索引(end_index)区分顺时针与逆时针两套权重;抽奖时按当前方向取对应权重。" + }, + "weightRatio": { + "title": "权重配比", + "globalTip": "配置奖励对照表(dice_reward)的权重,一级按方向(顺时针/逆时针),二级按档位(T1-T5);各条权重 1-10000,档位内按权重比抽取。", + "tabClockwise": "顺时针", + "tabCounterclockwise": "逆时针" + }, + "weightTest": { + "title": "一键测试权重", + "alertTitle": "彩金池逻辑说明", + "alertBody": "与 playStart 抽奖逻辑一致:使用 name=default 的安全线、杀分开关;盈利未达安全线时,付费抽奖券使用玩家自身权重(下方自定义档位),免费抽奖券使用 killScore 配置;盈利达到安全线且杀分开启时,付费/免费均使用 killScore 配置。", + "stepPaid": "付费抽奖券", + "stepFree": "免费抽奖券", + "labelLotteryTypePaid": "测试数据档位类型", + "labelLotteryTypeFree": "测试数据档位类型", + "placeholderPaidPool": "不选则下方自定义档位概率(默认 default)", + "placeholderFreePool": "不选则下方自定义档位概率(默认 killScore)", + "tierProbHint": "自定义档位概率(T1~T5),每档 0-100%,五档之和不能超过 100%", + "tierFieldLabel": "档位 {tier}(%)", + "tierSumError": "当前五档之和为 {sum}%,不能超过 100%", + "labelCwCount": "顺时针次数", + "labelCcwCount": "逆时针次数", + "placeholderSelect": "请选择", + "btnPrev": "上一步", + "btnNext": "下一步", + "btnStart": "开始测试", + "btnCancel": "取消", + "warnTotalSpins": "付费或免费至少一种方向次数之和大于 0", + "warnPaidTierSumPositive": "付费未选奖池时,T1~T5 档位概率之和需大于 0", + "warnPaidTierSumMax": "付费档位概率 T1~T5 之和不能超过 100%", + "warnFreeTierSumPositive": "免费未选奖池时,T1~T5 档位概率之和需大于 0", + "warnFreeTierSumMax": "免费档位概率 T1~T5 之和不能超过 100%", + "successCreated": "测试任务已创建,后台将自动执行。请在【玩家抽奖记录(测试数据)】中查看生成的测试数据", + "failCreate": "创建测试任务失败" } } 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 acd0c50..6e16267 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/reward_config.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/reward_config.json @@ -1,7 +1,74 @@ { "toolbar": { "gameRewardConfig": "游戏奖励配置", - "createRewardRef": "创建奖励对照" + "createRewardRef": "创建奖励对照", + "createRewardRefTitle": "按规则:start_index=config(grid_number).id;顺时针 end_index=(start_index+grid_number)%26;逆时针 end_index=start_index-grid_number≥0?start_index-grid_number:26+start_index-grid_number" + }, + "configPage": { + "tabIndex": "奖励索引", + "tabBigwin": "大奖权重", + "tipIndex": "色子点数须在 5~30 之间且本表内不重复。", + "tipBigwin": "从左至右:中大奖点数(不可改)、显示信息、实际中奖、备注、权重(0~10000)。点数 5、30 权重固定 100%。本表单独立提交,仅提交大奖权重。", + "colId": "索引(id)", + "colDicePoints": "色子点数", + "colDisplayText": "显示文本", + "colDisplayTextEn": "显示文本(英文)", + "colRealEv": "真实结算", + "colTier": "所属档位", + "colRemark": "备注", + "placeholderTierSelect": "档位", + "placeholderDisplayZh": "显示文本(中文)", + "placeholderDisplayEn": "显示文本(英文)", + "placeholderRemark": "备注", + "btnSave": "保存", + "btnReset": "重置", + "colBigwinPoints": "中大奖点数", + "colDisplayInfo": "显示信息", + "colDisplayInfoEn": "显示信息(英文)", + "colRealPrize": "实际中奖", + "colWeightRange": "权重(0-10000)", + "placeholderDisplayInfoZh": "显示信息(中文)", + "placeholderDisplayInfoEn": "显示信息(英文)", + "weightFixedTip": "点数 5、30 固定 100%", + "emptyBigwin": "暂无 BIGWIN 档位配置,请在「奖励索引」中设置 tier 为 BIGWIN。", + "confirmCreateRefTitle": "创建奖励对照", + "confirmCreateRefMsg": "按规则创建奖励对照:起始索引 start_index=奖励配置中 grid_number 对应格位的 id;顺时针 end_index=(start_index+摇取点数)%26;逆时针 end_index=start_index-摇取点数≥0 则取该值,否则 26+start_index-摇取点数。先清空现有数据再为 5-30 共 26 个点数、顺/逆时针分别生成。是否继续?", + "confirmCreateRefOk": "确定创建", + "confirmCreateRefCancel": "取消", + "createRefSuccess": "已按 5-30 共 26 个点数、顺时针+逆时针创建:顺时针新增 {cwNew} 条、逆时针新增 {ccwNew} 条;顺时针更新 {cwUp} 条、逆时针更新 {ccwUp} 条{skippedPart}", + "createRefSuccessSkipped": ";{n} 个点数使用兜底起始索引", + "createRefSuccessSimple": "创建成功", + "createRefFail": "创建奖励对照失败", + "loadIndexFail": "获取奖励索引配置失败", + "saveSuccess": "保存成功", + "saveFail": "保存失败", + "resetIndexReloaded": "已重新加载奖励索引,恢复为服务器最新数据", + "resetBigwinReloaded": "已重新加载,大奖权重恢复为服务器最新数据", + "warnNoIndexToSave": "暂无奖励索引数据可保存", + "warnGridRange": "色子点数必须在 {min}~{max} 之间", + "dupJoiner": "、", + "warnDupGrid": "色子点数在本表内不能重复,重复的点数为:{list}", + "warnNoBigwinToSave": "暂无 BIGWIN 档位配置可保存", + "warnBigwinDupGrid": "大奖权重本表内点数不能重复,重复的点数为:{list}", + "infoNoBigwin": "暂无 BIGWIN 档位配置,请先在「奖励索引」中设置 tier 为 BIGWIN" + }, + "weightRatio": { + "title": "T1-T5 权重配比(顺时针/逆时针)", + "globalTip": "权重来自奖励对照表(dice_reward),按结束索引(DiceRewardConfig.id)区分顺时针与逆时针两套权重;抽奖时按当前方向取对应权重。", + "xAxisEndIndex": "结束索引", + "emptyTier": "该档位暂无配置数据", + "sumLine": "当前档位权重合计(顺时针):{cw};逆时针:{ccw}(各条 1-10000,档位内按权重比抽取,和不限制)", + "t4t5Note": "T4、T5 档位抽中时仅有一个结果,无需配置权重。", + "colEndIndexId": "结束索引(id)", + "colDicePoints": "色子点数", + "colRealEv": "实际中奖金额", + "colUiText": "显示文本", + "colWeightCw": "顺时针权重(1-10000)", + "colWeightCcw": "逆时针权重(1-10000)", + "fetchFail": "获取权重配比数据失败", + "nothingToSubmit": "没有可提交的配置", + "submitFail": "保存失败", + "saveSuccess": "保存成功" }, "search": { "dicePoints": "色子点数(摇取5-30)", diff --git a/saiadmin-artd/src/locales/langs/zh/dice/reward_config_record.json b/saiadmin-artd/src/locales/langs/zh/dice/reward_config_record.json index a584916..13b599e 100644 --- a/saiadmin-artd/src/locales/langs/zh/dice/reward_config_record.json +++ b/saiadmin-artd/src/locales/langs/zh/dice/reward_config_record.json @@ -4,6 +4,8 @@ }, "table": { "id": "ID", + "clockwiseAbbr": "顺", + "counterclockwiseAbbr": "逆", "status": "状态", "paidDraw": "付费抽取", "freeDraw": "免费抽取", @@ -27,5 +29,51 @@ "ruleTestCountRequired": "测试次数:100/500/1000必需填写", "addSuccess": "新增成功", "editSuccess": "修改成功" + }, + "detail": { + "title": "测试记录详情", + "sectionBasic": "基本信息", + "recordId": "记录ID", + "testCount": "测试次数", + "testCountSuffix": "次", + "createTime": "创建时间", + "admin": "执行管理员", + "paidPoolId": "付费奖池配置ID", + "freePoolId": "免费奖池配置ID", + "bigwinSnapshot": "BIGWIN 权重快照", + "sectionPaidTier": "付费抽奖档位概率(T1-T5,测试时使用)", + "sectionFreeTier": "免费抽奖档位概率(T1-T5,测试时使用)", + "colTier": "档位", + "colWeight": "权重", + "colPercent": "占比", + "emptyPaidTier": "暂无付费档位数据(旧记录可能仅保存 tier_weights_snapshot)", + "emptyFreeTier": "暂无免费档位数据", + "sectionSnapshot": "权重配比快照(测试时使用的 T1-T5/BIGWIN 配置)", + "subCw": "顺时针(非 BIGWIN)", + "subCcw": "逆时针(非 BIGWIN)", + "colGridNumber": "色子点数", + "emptyCw": "暂无顺时针数据", + "emptyCcw": "暂无逆时针数据", + "subBigwin": "BIGWIN(按 DiceRewardConfig 配置快照)", + "emptyBigwinTable": "暂无 BIGWIN 数据", + "sectionResult": "落点统计(各 grid_number 出现次数)", + "chartXAxis": "色子点数 (grid_number)", + "emptyResult": "暂无落点数据", + "resultTotal": "总落点次数:{n}", + "btnImport": "导入到当前配置", + "importTitle": "导入到正式配置", + "importDesc": "将本测试记录导入:DiceReward(格子权重)、DiceRewardConfig(BIGWIN weight)、DiceLotteryPoolConfig(付费/免费 T1-T5 档位概率)。请选择要写入的奖池。", + "importPaidLabel": "导入付费档位概率到奖池", + "importPaidPlaceholder": "选择任意奖池(建议付费池)", + "importPaidTip": "不选则使用本记录保存时的付费奖池配置 ID", + "importFreeLabel": "导入免费档位概率到奖池", + "importFreePlaceholder": "选择任意奖池(建议免费池)", + "importFreeTip": "不选则使用本记录保存时的免费奖池配置 ID", + "btnConfirmImport": "确认导入", + "importSuccess": "导入成功,已刷新 DiceReward、DiceRewardConfig(BIGWIN)、奖池配置", + "importFail": "导入失败", + "dash": "—", + "dirCw": "顺时针", + "dirCcw": "逆时针" } } diff --git a/saiadmin-artd/src/views/plugin/dice/reward/index/modules/table-search.vue b/saiadmin-artd/src/views/plugin/dice/reward/index/modules/table-search.vue index 427d695..e33d7de 100644 --- a/saiadmin-artd/src/views/plugin/dice/reward/index/modules/table-search.vue +++ b/saiadmin-artd/src/views/plugin/dice/reward/index/modules/table-search.vue @@ -15,7 +15,7 @@ - + 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 cf5f3e7..78d89cd 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 @@ -1,32 +1,30 @@