创建中英双语对照

This commit is contained in:
2026-03-17 10:49:13 +08:00
parent 861d5c49b3
commit 4a7397ce04
51 changed files with 906 additions and 443 deletions

View File

@@ -300,9 +300,9 @@
...configSearch.value
},
columnsFactory: () => [
{ prop: 'id', label: '选中', width: 80, align: 'center', useSlot: true },
{ prop: 'name', label: '配置名称', useHeaderSlot: true, width: 150 },
{ prop: 'code', label: '配置标识', useHeaderSlot: true, width: 150 }
{ prop: 'id', label: 'table.columns.common.select', width: 80, align: 'center', useSlot: true },
{ prop: 'name', label: 'table.columns.system.configName', useHeaderSlot: true, width: 150 },
{ prop: 'code', label: 'table.columns.system.configKey', useHeaderSlot: true, width: 150 }
]
}
})

View File

@@ -160,12 +160,12 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'key', label: '配置标识' },
{ prop: 'name', label: '配置标题' },
{ prop: 'input_type', label: '组件类型', width: 100 },
{ prop: 'sort', label: '排序', width: 100, sortable: true },
{ prop: 'remark', label: '备注' },
{ prop: 'operation', label: '操作', useSlot: true, width: 100 }
{ prop: 'key', label: 'table.columns.system.configKey' },
{ prop: 'name', label: 'table.columns.system.configTitle' },
{ prop: 'input_type', label: 'table.columns.system.inputType', width: 100 },
{ prop: 'sort', label: 'table.columns.common.sort', width: 100, sortable: true },
{ prop: 'remark', label: 'table.columns.common.remark' },
{ prop: 'operation', label: 'table.actions.operation', useSlot: true, width: 100 }
]
}
})

View File

@@ -12,14 +12,14 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton @click="toggleExpand" v-ripple>
<template #icon>
<ArtSvgIcon v-if="isExpanded" icon="ri:collapse-diagonal-line" />
<ArtSvgIcon v-else icon="ri:expand-diagonal-line" />
</template>
{{ isExpanded ? '收起' : '展开' }}
{{ isExpanded ? $t('table.searchBar.collapse') : $t('table.searchBar.expand') }}
</ElButton>
</ElSpace>
</template>
@@ -106,14 +106,14 @@
core: {
apiFn: api.list,
columnsFactory: () => [
{ prop: 'name', label: '部门名称', minWidth: 200 },
{ prop: 'code', label: '部门编码', minWidth: 120 },
{ prop: 'leader.username', label: '部门领导', minWidth: 120 },
{ prop: 'remark', label: '描述', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: '排序', width: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'create_time', label: '创建日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ prop: 'name', label: 'table.columns.system.deptName', minWidth: 200 },
{ prop: 'code', label: 'table.columns.system.deptCode', minWidth: 120 },
{ prop: 'leader.username', label: 'table.columns.system.leader', minWidth: 120 },
{ prop: 'remark', label: 'table.columns.common.description', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: 'table.columns.common.sort', width: 100 },
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'create_time', label: 'table.columns.system.createDate', width: 180, sortable: true },
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="部门名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入部门名称" clearable />
<el-form-item :label="$t('table.columns.system.deptName')" prop="name">
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderDeptName')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="部门编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入部门编码" clearable />
<el-form-item :label="$t('table.columns.system.deptCode')" prop="code">
<el-input v-model="formData.code" :placeholder="$t('table.searchBar.placeholderDeptCode')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<el-form-item :label="$t('table.columns.common.status')" prop="status">
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
</el-form-item>
</el-col>
</sa-search-bar>

View File

@@ -16,7 +16,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton
v-permission="'core:menu:destroy'"
@@ -27,7 +27,7 @@
<template #icon>
<ArtSvgIcon icon="ri:delete-bin-5-line" />
</template>
删除
{{ $t('table.actions.delete') }}
</ElButton>
<ElButton @click="toggleExpand" v-ripple>
<template #icon>
@@ -129,10 +129,10 @@
apiFn: api.list,
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'name', label: '菜单名称', minWidth: 150 },
{ prop: 'name', label: 'table.columns.system.menuName', minWidth: 150 },
{
prop: 'type',
label: '菜单类型',
label: 'table.columns.system.menuType',
align: 'center',
saiType: 'dict',
saiDict: 'menu_type',
@@ -140,17 +140,17 @@
},
{
prop: 'icon',
label: '图标',
label: 'table.columns.system.icon',
align: 'center',
width: 80,
formatter: (row: any) => {
return h(ArtSvgIcon, { icon: row.icon })
}
},
{ prop: 'code', label: '组件名称' },
{ prop: 'code', label: 'table.columns.system.component' },
{
prop: 'path',
label: '路由',
label: 'table.columns.system.route',
formatter: (row: any) => {
if (row.type === 3) return ''
return row.path || ''
@@ -158,7 +158,7 @@
},
{
prop: 'slug',
label: '权限标识',
label: 'table.columns.system.auth',
minWidth: 160,
formatter: (row: any) => {
if (row.type === 2) {
@@ -170,9 +170,9 @@
return ''
}
},
{ prop: 'sort', label: '排序', width: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'operation', label: '操作', width: 140, fixed: 'right', useSlot: true }
{ prop: 'sort', label: 'table.columns.common.sort', width: 100 },
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'operation', label: 'table.actions.operation', width: 140, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="菜单名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入菜单名称" clearable />
<el-form-item :label="$t('table.columns.system.menuName')" prop="name">
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderMenuName')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="菜单路由" prop="path">
<el-input v-model="formData.path" placeholder="请输入菜单路由" clearable />
<el-form-item :label="$t('table.columns.system.route')" prop="path">
<el-input v-model="formData.path" :placeholder="$t('table.searchBar.placeholderMenuRoute')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<el-form-item :label="$t('table.columns.common.status')" prop="status">
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
</el-form-item>
</el-col>
</sa-search-bar>

View File

@@ -12,7 +12,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton
v-permission="'core:post:destroy'"
@@ -23,7 +23,7 @@
<template #icon>
<ArtSvgIcon icon="ri:delete-bin-5-line" />
</template>
删除
{{ $t('table.actions.delete') }}
</ElButton>
<SaImport
v-permission="'core:post:import'"
@@ -116,14 +116,14 @@
apiFn: api.list,
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: '编号', width: 100, align: 'center' },
{ prop: 'name', label: '岗位名称', minWidth: 120 },
{ prop: 'code', label: '岗位编码', minWidth: 120 },
{ prop: 'remark', label: '描述', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: '排序', width: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'create_time', label: '创建日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
{ prop: 'name', label: 'table.columns.system.postName', minWidth: 120 },
{ prop: 'code', label: 'table.columns.system.postCode', minWidth: 120 },
{ prop: 'remark', label: 'table.columns.common.description', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: 'table.columns.common.sort', width: 100 },
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'create_time', label: 'table.columns.system.createDate', width: 180, sortable: true },
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="岗位名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入岗位名称" clearable />
<el-form-item :label="$t('table.columns.system.postName')" prop="name">
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderPostName')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="岗位编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入岗位编码" clearable />
<el-form-item :label="$t('table.columns.system.postCode')" prop="code">
<el-input v-model="formData.code" :placeholder="$t('table.searchBar.placeholderPostCode')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<el-form-item :label="$t('table.columns.common.status')" prop="status">
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
</el-form-item>
</el-col>
</sa-search-bar>

View File

@@ -16,7 +16,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
</ElSpace>
</template>
@@ -126,15 +126,15 @@
core: {
apiFn: api.list,
columnsFactory: () => [
{ prop: 'id', label: '编号', minWidth: 60, align: 'center' },
{ prop: 'name', label: '角色名称', minWidth: 120 },
{ prop: 'code', label: '角色编码', minWidth: 120 },
{ prop: 'level', label: '角色级别', minWidth: 100, sortable: true },
{ prop: 'remark', label: '角色描述', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: '排序', minWidth: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status' },
{ prop: 'create_time', label: '创建日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 140, fixed: 'right', useSlot: true }
{ prop: 'id', label: 'table.columns.common.no', minWidth: 60, align: 'center' },
{ prop: 'name', label: 'table.columns.system.roleName', minWidth: 120 },
{ prop: 'code', label: 'table.columns.system.roleCode', minWidth: 120 },
{ prop: 'level', label: 'table.columns.system.level', minWidth: 100, sortable: true },
{ prop: 'remark', label: 'table.columns.system.roleRemark', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: 'table.columns.common.sort', minWidth: 100 },
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status' },
{ prop: 'create_time', label: 'table.columns.system.createDate', width: 180, sortable: true },
{ prop: 'operation', label: 'table.actions.operation', width: 140, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="角色名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入角色名称" clearable />
<el-form-item :label="$t('table.columns.system.roleName')" prop="name">
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderRoleName')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="角色编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入角色编码" clearable />
<el-form-item :label="$t('table.columns.system.roleCode')" prop="code">
<el-input v-model="formData.code" :placeholder="$t('table.searchBar.placeholderRoleCode')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<el-form-item :label="$t('table.columns.common.status')" prop="status">
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
</el-form-item>
</el-col>
</sa-search-bar>

View File

@@ -32,7 +32,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
</ElSpace>
</template>
@@ -180,30 +180,30 @@
...searchForm.value
},
columnsFactory: () => [
{ type: 'index', width: 60, label: '序号' },
{ type: 'index', width: 60, label: 'table.column.index' },
{
prop: 'avatar',
label: '用户名',
label: 'table.columns.system.username',
minWidth: 200,
saiType: 'imageAndText',
saiFirst: 'username',
saiSecond: 'email'
},
{ prop: 'phone', label: '手机号', width: 120 },
{ prop: 'phone', label: 'table.columns.system.phone', width: 120 },
{
prop: 'dept_id',
label: '部门',
label: 'table.columns.system.dept',
minWidth: 150,
sortable: true,
formatter: (row: any) => row.depts?.name ?? ''
},
{ prop: 'status', label: '状态', width: 80, saiType: 'dict', saiDict: 'data_status' },
{ prop: 'agent_id', label: '代理ID', width: 120, showOverflowTooltip: true },
{ prop: 'dashboard', label: '首页', width: 100, saiType: 'dict', saiDict: 'dashboard' },
{ prop: 'login_time', label: '上次登录', width: 170, sortable: true },
{ prop: 'status', label: 'table.columns.common.status', width: 80, saiType: 'dict', saiDict: 'data_status' },
{ prop: 'agent_id', label: 'table.columns.system.agentId', width: 120, showOverflowTooltip: true },
{ prop: 'dashboard', label: 'table.columns.system.dashboard', width: 100, saiType: 'dict', saiDict: 'dashboard' },
{ prop: 'login_time', label: 'table.columns.system.loginTime', width: 170, sortable: true },
{
prop: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 140,
fixed: 'right',
useSlot: true

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username" placeholder="请输入用户名" clearable />
<el-form-item :label="$t('table.columns.system.username')" prop="username">
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.placeholderUsername')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="手机号" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入手机号" clearable />
<el-form-item :label="$t('table.columns.system.phone')" prop="phone">
<el-input v-model="formData.phone" :placeholder="$t('table.searchBar.placeholderPhone')" clearable />
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<el-form-item :label="$t('table.columns.common.status')" prop="status">
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
</el-form-item>
</el-col>
</sa-search-bar>