refactor(page-table, page-dialog-form): 实现国际化自动响应,移除提前翻译逻辑

1. 为page-table和page-dialog-form添加内部$t翻译逻辑,支持语言切换自动更新
2. 移除data()中提前翻译的k()辅助函数,改为直接传入i18n key
3. 更新文档说明最新的i18n使用规范,新增迁移指南文档
4. 修复工厂区域页面的国际化调用方式,统一使用this.key()传参
This commit is contained in:
sheng
2026-05-28 11:30:08 +08:00
parent 48cfebd008
commit 4539bec3a4
6 changed files with 351 additions and 219 deletions

View File

@@ -58,8 +58,8 @@
:rules="rules"
:label-width="'100px'"
:submitting="submitting"
:confirm-text="$t(key('confirm'))"
:cancel-text="$t(key('cancel'))"
:confirm-text="key('confirm')"
:cancel-text="key('cancel')"
@submit="onDialogSubmit"
@close="onDialogClose"
/>
@@ -84,8 +84,6 @@ export default {
components: { PageTable, PageDialogForm },
mixins: [i18nMixin('page.production_master_data.factory_model.factory_area')],
data () {
const t = this.$t.bind(this)
const k = (s) => t(this.key(s))
return {
loading: false,
submitting: false,
@@ -100,12 +98,12 @@ export default {
formData: { code: '', name: '', remark: '' },
rules: {
code: [
{ required: true, message: k('enter_code'), trigger: 'blur' },
{ min: 1, max: 100, message: k('remark_length'), trigger: 'blur' }
{ required: true, message: this.key('enter_code'), trigger: 'blur' },
{ min: 1, max: 100, message: this.key('remark_length'), trigger: 'blur' }
],
name: [
{ required: true, message: k('enter_name'), trigger: 'blur' },
{ min: 1, max: 100, message: k('remark_length'), trigger: 'blur' }
{ required: true, message: this.key('enter_name'), trigger: 'blur' },
{ min: 1, max: 100, message: this.key('remark_length'), trigger: 'blur' }
]
},
columns: [],
@@ -116,8 +114,8 @@ export default {
{
type: 'input',
prop: 'code',
label: k('code'),
placeholder: k('enter_code'),
label: this.key('code'),
placeholder: this.key('enter_code'),
clearable: true,
style: { width: '90%' }
}
@@ -126,8 +124,8 @@ export default {
{
type: 'input',
prop: 'name',
label: k('name'),
placeholder: k('enter_name'),
label: this.key('name'),
placeholder: this.key('enter_name'),
clearable: true,
style: { width: '90%' }
}
@@ -138,8 +136,8 @@ export default {
prop: 'remark',
inputType: 'textarea',
autosize: { minRows: 2, maxRows: 6 },
label: k('remark'),
placeholder: k('remark_required'),
label: this.key('remark'),
placeholder: this.key('remark_required'),
clearable: true,
style: { width: '90%' }
}