多语言优化

This commit is contained in:
2026-03-19 15:40:06 +08:00
parent db0e420a8f
commit 333e85f7d9
45 changed files with 864 additions and 276 deletions

View File

@@ -1,33 +1,33 @@
<template>
<el-dialog
v-model="visible"
:title="dialogType === 'add' ? '新增奖励配置' : '编辑奖励配置'"
:title="dialogType === 'add' ? $t('page.form.titleAdd') : $t('page.form.titleEdit')"
width="600px"
align-center
:close-on-click-modal="false"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
<el-form-item label="色子点数" prop="grid_number">
<el-form-item :label="$t('page.form.labelDicePoints')" prop="grid_number">
<el-input-number
v-model="formData.grid_number"
placeholder="请输入色子点数"
:placeholder="$t('page.form.placeholderDicePoints')"
:disabled="dialogType === 'edit'"
/>
</el-form-item>
<el-form-item label="前端显示文本" prop="ui_text">
<el-input v-model="formData.ui_text" placeholder="请输入前端显示文本(中文)" />
<el-form-item :label="$t('page.form.labelUiText')" prop="ui_text">
<el-input v-model="formData.ui_text" :placeholder="$t('page.form.placeholderUiText')"/>
</el-form-item>
<el-form-item label="前端显示文本(英文)" prop="ui_text_en">
<el-input v-model="formData.ui_text_en" placeholder="请输入前端显示文本(英文)" />
<el-form-item :label="$t('page.form.labelUiTextEn')" prop="ui_text_en">
<el-input v-model="formData.ui_text_en" :placeholder="$t('page.form.placeholderUiTextEn')" />
</el-form-item>
<el-form-item label="真实资金结算" prop="real_ev">
<el-input-number v-model="formData.real_ev" placeholder="请输入真实资金结算" />
<el-form-item :label="$t('page.form.labelRealEv')" prop="real_ev">
<el-input-number v-model="formData.real_ev" :placeholder="$t('page.form.placeholderRealEv')" />
</el-form-item>
<el-form-item label="所属档位" prop="tier">
<el-form-item :label="$t('page.form.labelTier')" prop="tier">
<el-select
v-model="formData.tier"
placeholder="请选择所属档位"
:placeholder="$t('page.form.placeholderTier')"
clearable
style="width: 100%"
:disabled="dialogType === 'edit'"
@@ -37,39 +37,39 @@
<el-option label="T3" value="T3" />
<el-option label="T4" value="T4" />
<el-option label="T5" value="T5" />
<el-option label="BIGWIN超级大奖" value="BIGWIN" />
<el-option :label="$t('page.form.tierBigWin')" value="BIGWIN" />
</el-select>
</el-form-item>
<!-- BIGWIN 时可编辑权重10000=100% 中奖0=0% 中奖点数 530 固定 100% 不可改 -->
<el-form-item v-if="formData.tier === 'BIGWIN'" label="大奖权重" prop="weight">
<el-form-item v-if="formData.tier === 'BIGWIN'" :label="$t('page.form.labelBigWinWeight')" prop="weight">
<el-input-number
v-model="formData.weight"
:min="0"
:max="10000"
:step="100"
placeholder="0~1000010000=100%中奖"
:placeholder="$t('page.form.placeholderBigWinWeight')"
:disabled="isBigwinWeightDisabled"
/>
<div v-if="isBigwinWeightDisabled" class="form-tip">
点数 530 摇到必中大奖权重固定 10000
{{ $t('page.form.bigWinWeightDisabledTip') }}
</div>
<div v-else class="form-tip">10000=100% 中奖0=0% 中奖仅对点数 10/15/20/25 生效</div>
<div v-else class="form-tip">{{ $t('page.form.bigWinWeightTip') }}</div>
</el-form-item>
<!-- 权重已迁移至T1-T5 BIGWIN 权重配比弹窗dice_reward BIGWIN 时本弹窗可编辑 weight起始索引已迁移至 dice_reward.start_index -->
<el-form-item label="备注" prop="remark">
<el-form-item :label="$t('page.form.labelRemark')" prop="remark">
<el-input
v-model="formData.remark"
type="textarea"
:rows="3"
placeholder="请输入备注"
:placeholder="$t('page.form.placeholderRemark')"
maxlength="500"
show-word-limit
/>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button @click="handleClose">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="handleSubmit">{{ $t('table.form.submit') }}</el-button>
</template>
</el-dialog>
</template>
@@ -78,6 +78,7 @@
import api from '../../../api/reward_config/index'
import { ElMessage } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus'
import { useI18n } from 'vue-i18n'
interface Props {
modelValue: boolean
@@ -97,6 +98,7 @@
})
const emit = defineEmits<Emits>()
const { t } = useI18n()
const formRef = ref<FormInstance>()
@@ -112,12 +114,14 @@
* 表单验证规则(权重已迁移至权重配比弹窗)
*/
const rules = reactive<FormRules>({
grid_number: [{ required: true, message: '色子点数必需填写', trigger: 'blur' }],
ui_text: [{ required: true, message: '前端显示文本必需填写', trigger: 'blur' }],
ui_text_en: [{ max: 255, message: '前端显示文本(英文)长度需小于 255 字符', trigger: 'blur' }],
real_ev: [{ required: true, message: '真实资金结算必需填写', trigger: 'blur' }],
tier: [{ required: true, message: '所属档位必需填写', trigger: 'blur' }],
weight: [{ type: 'number', min: 0, max: 10000, message: '大奖权重 0~10000', trigger: 'blur' }]
grid_number: [{ required: true, message: t('page.form.ruleDicePointsRequired'), trigger: 'blur' }],
ui_text: [{ required: true, message: t('page.form.ruleUiTextRequired'), trigger: 'blur' }],
ui_text_en: [{ max: 255, message: t('page.form.ruleUiTextEnMax'), trigger: 'blur' }],
real_ev: [{ required: true, message: t('page.form.ruleRealEvRequired'), trigger: 'blur' }],
tier: [{ required: true, message: t('page.form.ruleTierRequired'), trigger: 'blur' }],
weight: [
{ type: 'number', min: 0, max: 10000, message: t('page.form.ruleBigWinWeightRange'), trigger: 'blur' }
]
})
/** 点数 5、30 固定 100% 中大奖,权重不可改 */
@@ -222,10 +226,10 @@
}
if (props.dialogType === 'add') {
await api.save(payload)
ElMessage.success('新增成功')
ElMessage.success(t('page.form.addSuccess'))
} else {
await api.update(payload)
ElMessage.success('修改成功')
ElMessage.success(t('page.form.editSuccess'))
}
emit('success')
handleClose()