优化翻译
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"search": {
|
"search": {
|
||||||
"deptName": "Dept Name",
|
"deptName": "channel(Department) Name",
|
||||||
"deptCode": "Dept Code",
|
"deptCode": "Dept Code",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"placeholderDeptName": "Please enter dept name",
|
"placeholderDeptName": "Please enter dept name",
|
||||||
@@ -8,11 +8,32 @@
|
|||||||
"searchSelectPlaceholder": "Please select"
|
"searchSelectPlaceholder": "Please select"
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"deptName": "Dept Name",
|
"deptName": "channel(Department) Name",
|
||||||
"deptCode": "Dept Code",
|
"deptCode": "Dept Code",
|
||||||
"leader": "Leader",
|
"leader": "Leader",
|
||||||
"sort": "Sort",
|
"sort": "Sort",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"createTime": "Create Time"
|
"createTime": "Create Time"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"titleAdd": "Add Department",
|
||||||
|
"titleEdit": "Edit Department",
|
||||||
|
"labelParentDept": "Parent Department",
|
||||||
|
"labelDeptName": "Dept Name",
|
||||||
|
"labelDeptCode": "Dept Code",
|
||||||
|
"labelLeader": "Leader",
|
||||||
|
"labelRemark": "Description",
|
||||||
|
"labelSort": "Sort",
|
||||||
|
"labelStatus": "Enabled",
|
||||||
|
"placeholderDeptName": "Please enter dept name",
|
||||||
|
"placeholderDeptCode": "Please enter dept code",
|
||||||
|
"placeholderRemark": "Please enter description",
|
||||||
|
"placeholderSort": "Please enter sort",
|
||||||
|
"noParentDept": "No parent department",
|
||||||
|
"ruleParentDeptRequired": "Please select parent department",
|
||||||
|
"ruleDeptNameRequired": "Please enter dept name",
|
||||||
|
"ruleDeptCodeRequired": "Please enter dept code",
|
||||||
|
"addSuccess": "Added successfully",
|
||||||
|
"editSuccess": "Updated successfully"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -323,7 +323,7 @@
|
|||||||
"role": "角色管理",
|
"role": "角色管理",
|
||||||
"userCenter": "个人中心",
|
"userCenter": "个人中心",
|
||||||
"menu": "菜单管理",
|
"menu": "菜单管理",
|
||||||
"dept": "部门管理",
|
"dept": "渠道(部门)管理",
|
||||||
"post": "岗位管理",
|
"post": "岗位管理",
|
||||||
"config": "系统配置"
|
"config": "系统配置"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"search": {
|
"search": {
|
||||||
"deptName": "部门名称",
|
"deptName": "渠道(部门)名称",
|
||||||
"deptCode": "部门编码",
|
"deptCode": "部门编码",
|
||||||
"status": "状态",
|
"status": "状态",
|
||||||
"placeholderDeptName": "请输入部门名称",
|
"placeholderDeptName": "请输入部门名称",
|
||||||
@@ -8,11 +8,32 @@
|
|||||||
"searchSelectPlaceholder": "请选择"
|
"searchSelectPlaceholder": "请选择"
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"deptName": "部门名称",
|
"deptName": "渠道(部门)名称",
|
||||||
"deptCode": "部门编码",
|
"deptCode": "部门编码",
|
||||||
"leader": "部门领导",
|
"leader": "部门领导",
|
||||||
"sort": "排序",
|
"sort": "排序",
|
||||||
"status": "状态",
|
"status": "状态",
|
||||||
"createTime": "创建时间"
|
"createTime": "创建时间"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"titleAdd": "新增部门",
|
||||||
|
"titleEdit": "编辑部门",
|
||||||
|
"labelParentDept": "上级部门",
|
||||||
|
"labelDeptName": "部门名称",
|
||||||
|
"labelDeptCode": "部门编码",
|
||||||
|
"labelLeader": "部门领导",
|
||||||
|
"labelRemark": "描述",
|
||||||
|
"labelSort": "排序",
|
||||||
|
"labelStatus": "启用",
|
||||||
|
"placeholderDeptName": "请输入部门名称",
|
||||||
|
"placeholderDeptCode": "请输入部门编码",
|
||||||
|
"placeholderRemark": "请输入部门描述",
|
||||||
|
"placeholderSort": "请输入排序",
|
||||||
|
"noParentDept": "无上级部门",
|
||||||
|
"ruleParentDeptRequired": "请选择上级部门",
|
||||||
|
"ruleDeptNameRequired": "请输入部门名称",
|
||||||
|
"ruleDeptCodeRequired": "请输入部门编码",
|
||||||
|
"addSuccess": "新增成功",
|
||||||
|
"editSuccess": "修改成功"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,14 +43,33 @@ export async function loadPageLocale(routePath: string): Promise<void> {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
const locale = getCurrentLocale()
|
const locale = getCurrentLocale()
|
||||||
const key = getModuleKey(locale, path)
|
|
||||||
const modules = locale === LanguageEnum.EN ? enModules : zhModules
|
const modules = locale === LanguageEnum.EN ? enModules : zhModules
|
||||||
const loader = modules[key]
|
|
||||||
|
const tryPaths: string[] = [path]
|
||||||
|
// 兼容别名路由:例如 /user 实际页面为 /system/user
|
||||||
|
if (!path.includes('/')) {
|
||||||
|
tryPaths.push(`system/${path}`)
|
||||||
|
}
|
||||||
|
if (path === 'user') {
|
||||||
|
tryPaths.push('system/user')
|
||||||
|
}
|
||||||
|
|
||||||
|
let matchedPath: string | null = null
|
||||||
|
let loader: (() => Promise<PageLocaleModule>) | undefined
|
||||||
|
for (const p of tryPaths) {
|
||||||
|
const key = getModuleKey(locale, p)
|
||||||
|
const l = modules[key]
|
||||||
|
if (l) {
|
||||||
|
matchedPath = p
|
||||||
|
loader = l
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!loader) {
|
if (!loader) {
|
||||||
clearPageLocale()
|
clearPageLocale()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (lastLoadedPath === path && lastLoadedLocale === locale) {
|
if (lastLoadedPath === matchedPath && lastLoadedLocale === locale) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -58,7 +77,7 @@ export async function loadPageLocale(routePath: string): Promise<void> {
|
|||||||
const message = mod?.default
|
const message = mod?.default
|
||||||
if (message && typeof message === 'object') {
|
if (message && typeof message === 'object') {
|
||||||
i18n.global.mergeLocaleMessage(locale, { page: message })
|
i18n.global.mergeLocaleMessage(locale, { page: message })
|
||||||
lastLoadedPath = path
|
lastLoadedPath = matchedPath
|
||||||
lastLoadedLocale = locale
|
lastLoadedLocale = locale
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
|
|||||||
@@ -209,8 +209,23 @@ function handleLoginStatus(
|
|||||||
userStore: ReturnType<typeof useUserStore>,
|
userStore: ReturnType<typeof useUserStore>,
|
||||||
next: NavigationGuardNext
|
next: NavigationGuardNext
|
||||||
): boolean {
|
): boolean {
|
||||||
// 已登录或访问登录页或静态路由,直接放行
|
// 已登录或访问登录页,直接放行
|
||||||
if (userStore.isLogin || to.path === RoutesAlias.Login || isStaticRoute(to.path)) {
|
if (userStore.isLogin || to.path === RoutesAlias.Login) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 未登录时访问根路径(首页),重定向到登录页
|
||||||
|
if (to.path === '/') {
|
||||||
|
userStore.logOut()
|
||||||
|
next({
|
||||||
|
name: 'Login',
|
||||||
|
query: { redirect: to.fullPath }
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// 其他静态路由(注册、忘记密码、错误页等)放行
|
||||||
|
if (isStaticRoute(to.path)) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="visible"
|
v-model="visible"
|
||||||
:title="dialogType === 'add' ? '新增部门' : '编辑部门'"
|
:title="dialogType === 'add' ? $t('page.form.titleAdd') : $t('page.form.titleEdit')"
|
||||||
width="600px"
|
width="600px"
|
||||||
align-center
|
align-center
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
@close="handleClose"
|
@close="handleClose"
|
||||||
>
|
>
|
||||||
<el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
|
<el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
|
||||||
<el-form-item label="上级部门" prop="parent_id">
|
<el-form-item :label="$t('page.form.labelParentDept')" prop="parent_id">
|
||||||
<el-tree-select
|
<el-tree-select
|
||||||
v-model="formData.parent_id"
|
v-model="formData.parent_id"
|
||||||
:data="optionData.treeData"
|
:data="optionData.treeData"
|
||||||
@@ -17,33 +17,33 @@
|
|||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门名称" prop="name">
|
<el-form-item :label="$t('page.form.labelDeptName')" prop="name">
|
||||||
<el-input v-model="formData.name" placeholder="请输入部门名称" />
|
<el-input v-model="formData.name" :placeholder="$t('page.form.placeholderDeptName')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门编码" prop="code">
|
<el-form-item :label="$t('page.form.labelDeptCode')" prop="code">
|
||||||
<el-input v-model="formData.code" placeholder="请输入部门编码" />
|
<el-input v-model="formData.code" :placeholder="$t('page.form.placeholderDeptCode')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门领导">
|
<el-form-item :label="$t('page.form.labelLeader')">
|
||||||
<sa-user v-model="formData.leader_id" />
|
<sa-user v-model="formData.leader_id" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="描述" prop="remark">
|
<el-form-item :label="$t('page.form.labelRemark')" prop="remark">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.remark"
|
v-model="formData.remark"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:rows="3"
|
:rows="3"
|
||||||
placeholder="请输入部门描述"
|
:placeholder="$t('page.form.placeholderRemark')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序" prop="sort">
|
<el-form-item :label="$t('page.form.labelSort')" prop="sort">
|
||||||
<el-input-number v-model="formData.sort" placeholder="请输入排序" />
|
<el-input-number v-model="formData.sort" :placeholder="$t('page.form.placeholderSort')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="启用" prop="status">
|
<el-form-item :label="$t('page.form.labelStatus')" prop="status">
|
||||||
<sa-radio v-model="formData.status" dict="data_status" />
|
<sa-radio v-model="formData.status" dict="data_status" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="handleClose">取消</el-button>
|
<el-button @click="handleClose">{{ $t('common.cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="handleSubmit">提交</el-button>
|
<el-button type="primary" @click="handleSubmit">{{ $t('table.form.submit') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@@ -52,6 +52,7 @@
|
|||||||
import api from '@/api/system/dept'
|
import api from '@/api/system/dept'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import type { FormInstance, FormRules } from 'element-plus'
|
import type { FormInstance, FormRules } from 'element-plus'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
modelValue: boolean
|
modelValue: boolean
|
||||||
@@ -71,6 +72,7 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits<Emits>()
|
const emit = defineEmits<Emits>()
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
const formRef = ref<FormInstance>()
|
const formRef = ref<FormInstance>()
|
||||||
const optionData = reactive({
|
const optionData = reactive({
|
||||||
@@ -88,11 +90,13 @@
|
|||||||
/**
|
/**
|
||||||
* 表单验证规则
|
* 表单验证规则
|
||||||
*/
|
*/
|
||||||
const rules = reactive<FormRules>({
|
const rules = computed<FormRules>(() => ({
|
||||||
parent_id: [{ required: true, message: '请选择上级部门', trigger: 'change' }],
|
parent_id: [
|
||||||
name: [{ required: true, message: '请输入部门名称', trigger: 'blur' }],
|
{ required: true, message: t('page.form.ruleParentDeptRequired'), trigger: 'change' }
|
||||||
code: [{ required: true, message: '请输入部门编码', trigger: 'blur' }]
|
],
|
||||||
})
|
name: [{ required: true, message: t('page.form.ruleDeptNameRequired'), trigger: 'blur' }],
|
||||||
|
code: [{ required: true, message: t('page.form.ruleDeptCodeRequired'), trigger: 'blur' }]
|
||||||
|
}))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始数据
|
* 初始数据
|
||||||
@@ -138,7 +142,7 @@
|
|||||||
{
|
{
|
||||||
id: 0,
|
id: 0,
|
||||||
value: 0,
|
value: 0,
|
||||||
label: '无上级部门',
|
label: t('page.form.noParentDept'),
|
||||||
children: data
|
children: data
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -180,10 +184,10 @@
|
|||||||
await formRef.value.validate()
|
await formRef.value.validate()
|
||||||
if (props.dialogType === 'add') {
|
if (props.dialogType === 'add') {
|
||||||
await api.save(formData)
|
await api.save(formData)
|
||||||
ElMessage.success('新增成功')
|
ElMessage.success(t('page.form.addSuccess'))
|
||||||
} else {
|
} else {
|
||||||
await api.update(formData)
|
await api.update(formData)
|
||||||
ElMessage.success('修改成功')
|
ElMessage.success(t('page.form.editSuccess'))
|
||||||
}
|
}
|
||||||
emit('success')
|
emit('success')
|
||||||
handleClose()
|
handleClose()
|
||||||
|
|||||||
Reference in New Issue
Block a user