From 27f62c2bab93375dfdbbb37df97d0c6011034640 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 11 Oct 2024 09:29:06 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81i18n=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/locales/langs/en-US.json | 54 ++++++++++++++++++++ apps/web-antd/src/locales/langs/zh-CN.json | 54 ++++++++++++++++++++ apps/web-antd/src/views/system/menu/data.tsx | 5 ++ 3 files changed, 113 insertions(+) diff --git a/apps/web-antd/src/locales/langs/en-US.json b/apps/web-antd/src/locales/langs/en-US.json index 45590224..2fac357b 100644 --- a/apps/web-antd/src/locales/langs/en-US.json +++ b/apps/web-antd/src/locales/langs/en-US.json @@ -82,5 +82,59 @@ "downloadLoading": "Downloading... Please wait.", "preview": "Preview" } + }, + "menu": { + "system": { + "root": "System", + "user": "User", + "role": "Role", + "menu": "Menu", + "dept": "Department", + "post": "Post", + "dict": "Dictionary", + "config": "Parameter Settings", + "notice": "Notifications", + "log": { + "root": "Log", + "operation": "Operation Log", + "login": "Login Log" + }, + "oss": "File", + "client": "Client" + }, + "tenant": { + "root": "Tenant", + "package": "Package" + }, + "monitor": { + "root": "System Monitoring", + "online": "Online Users", + "cache": "Cache Monitoring", + "admin": "Admin Monitoring", + "job": "Task Scheduling Center" + }, + "tool": { + "root": "System Tools", + "gen": "Code Generation" + }, + "workflow": { + "root": "Workflow", + "category": "Process Category", + "model": "Model", + "define": "Process Definition", + "monitor": { + "root": "Process Monitoring", + "instance": "Process Instance", + "todo": "Pending Tasks" + }, + "form": "Form" + }, + "task": { + "root": "My Tasks", + "apply": "My Initiated Tasks", + "todo": "My Pending Tasks", + "done": "My Completed Tasks", + "cc": "My CC" + } } } diff --git a/apps/web-antd/src/locales/langs/zh-CN.json b/apps/web-antd/src/locales/langs/zh-CN.json index c0df070b..b6036dea 100644 --- a/apps/web-antd/src/locales/langs/zh-CN.json +++ b/apps/web-antd/src/locales/langs/zh-CN.json @@ -82,5 +82,59 @@ "downloadLoading": "下载中, 请稍后...", "preview": "预览" } + }, + "menu": { + "system": { + "root": "系统管理", + "user": "用户管理", + "role": "角色管理", + "menu": "菜单管理", + "dept": "部门管理", + "post": "岗位管理", + "dict": "字典管理", + "config": "参数设置", + "notice": "通知公告", + "log": { + "root": "日志管理", + "operation": "操作日志", + "login": "登录日志" + }, + "oss": "文件管理", + "client": "客户端管理" + }, + "tenant": { + "root": "租户管理", + "package": "套餐管理" + }, + "monitor": { + "root": "系统监控", + "online": "在线用户", + "cache": "缓存监控", + "admin": "Admin监控", + "job": "任务调度中心" + }, + "tool": { + "root": "系统工具", + "gen": "代码生成" + }, + "workflow": { + "root": "工作流", + "category": "流程分类", + "model": "模型管理", + "define": "流程定义", + "monitor": { + "root": "流程监控", + "instance": "流程实例", + "todo": "待办任务" + }, + "form": "表单管理" + }, + "task": { + "root": "我的任务", + "apply": "我发起的", + "todo": "我的待办", + "done": "我的已办", + "cc": "我的抄送" + } } } diff --git a/apps/web-antd/src/views/system/menu/data.tsx b/apps/web-antd/src/views/system/menu/data.tsx index 4c00484d..92e22849 100644 --- a/apps/web-antd/src/views/system/menu/data.tsx +++ b/apps/web-antd/src/views/system/menu/data.tsx @@ -1,4 +1,5 @@ import { DictEnum } from '@vben/constants'; +import { $t } from '@vben/locales'; import { getPopupContainer } from '@vben/utils'; import { type FormSchemaGetter, type VxeGridProps, z } from '#/adapter'; @@ -56,6 +57,10 @@ export const columns: VxeGridProps['columns'] = [ field: 'menuName', treeNode: true, width: 200, + slots: { + // 需要i18n支持 否则返回原始值 + default: ({ row }) => $t(row.menuName), + }, }, { title: '图标', From 2eff47b59a3cb0bc0996a64b0e723c2ab493c442 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 11 Oct 2024 10:08:29 +0800 Subject: [PATCH 2/4] fix: title --- apps/web-antd/src/views/system/tenantPackage/data.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web-antd/src/views/system/tenantPackage/data.ts b/apps/web-antd/src/views/system/tenantPackage/data.ts index 7e8fba8c..98c46da1 100644 --- a/apps/web-antd/src/views/system/tenantPackage/data.ts +++ b/apps/web-antd/src/views/system/tenantPackage/data.ts @@ -19,7 +19,7 @@ export const columns: VxeGridProps['columns'] = [ field: 'remark', }, { - title: '租户状态', + title: '状态', field: 'status', slots: { default: 'status' }, }, From 2099e672ce2412e0cc98bee4b17940bd45627b90 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 11 Oct 2024 10:15:44 +0800 Subject: [PATCH 3/4] chore: help message --- apps/web-antd/src/views/system/menu/data.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/web-antd/src/views/system/menu/data.tsx b/apps/web-antd/src/views/system/menu/data.tsx index 92e22849..e78318d5 100644 --- a/apps/web-antd/src/views/system/menu/data.tsx +++ b/apps/web-antd/src/views/system/menu/data.tsx @@ -200,6 +200,7 @@ export const drawerSchema: FormSchemaGetter = () => [ component: 'Input', fieldName: 'menuName', label: '菜单名称', + help: '支持i18n写法, 如: menu.system.user', rules: 'required', }, { From 9288341c853620a7b8272936edd033cb9725289f Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 11 Oct 2024 13:44:08 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E8=8F=9C=E5=8D=95=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=9A=84i18n=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/system/role/role-drawer.vue | 11 ++++++++++- .../system/tenantPackage/tenant-package-drawer.vue | 8 ++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/web-antd/src/views/system/role/role-drawer.vue b/apps/web-antd/src/views/system/role/role-drawer.vue index 0944c4b4..92568f56 100644 --- a/apps/web-antd/src/views/system/role/role-drawer.vue +++ b/apps/web-antd/src/views/system/role/role-drawer.vue @@ -3,7 +3,7 @@ import { computed, ref } from 'vue'; import { useVbenDrawer } from '@vben/common-ui'; import { $t } from '@vben/locales'; -import { cloneDeep } from '@vben/utils'; +import { cloneDeep, eachTree } from '@vben/utils'; import { useVbenForm } from '#/adapter'; import { menuTreeSelect, roleMenuTreeSelect } from '#/api/system/menu'; @@ -37,11 +37,20 @@ async function setupMenuTree(id?: number | string) { if (id) { const resp = await roleMenuTreeSelect(id); formApi.setFieldValue('menuIds', resp.checkedKeys); + const menus = resp.menus; + // i18n处理 + eachTree(menus, (node) => { + node.label = $t(node.label); + }); // 设置菜单信息 menuTree.value = resp.menus; } else { const resp = await menuTreeSelect(); formApi.setFieldValue('menuIds', []); + // i18n处理 + eachTree(resp, (node) => { + node.label = $t(node.label); + }); // 设置菜单信息 menuTree.value = resp; } diff --git a/apps/web-antd/src/views/system/tenantPackage/tenant-package-drawer.vue b/apps/web-antd/src/views/system/tenantPackage/tenant-package-drawer.vue index 8f8d4b11..cbfffaec 100644 --- a/apps/web-antd/src/views/system/tenantPackage/tenant-package-drawer.vue +++ b/apps/web-antd/src/views/system/tenantPackage/tenant-package-drawer.vue @@ -3,7 +3,7 @@ import { computed, ref } from 'vue'; import { useVbenDrawer } from '@vben/common-ui'; import { $t } from '@vben/locales'; -import { cloneDeep, listToTree } from '@vben/utils'; +import { cloneDeep, eachTree, listToTree } from '@vben/utils'; import { useVbenForm } from '#/adapter'; import { menuList, tenantPackageMenuTreeSelect } from '#/api/system/menu'; @@ -45,6 +45,10 @@ const menuTree = ref([]); async function setupMenuTree() { const resp = await menuList(); const treeData = listToTree(resp, { id: 'menuId' }); + // i18n处理 + eachTree(treeData, (node) => { + node.menuName = $t(node.menuName); + }); // 设置菜单信息 menuTree.value = treeData; } @@ -122,7 +126,7 @@ function handleMenuCheckStrictlyChange(value: boolean) { ref="menuSelectRef" v-bind="slotProps" :check-strictly="formApi.form.values.menuCheckStrictly" - :expand-all-on-init="true" + :expand-all-on-init="false" :field-names="{ title: 'menuName', key: 'menuId' }" :tree-data="menuTree" @check-strictly-change="handleMenuCheckStrictlyChange"