diff --git a/.vscode/settings.json b/.vscode/settings.json index 0cbfa452..ece7b1f2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -222,5 +222,7 @@ "vitest.disableWorkspaceWarning": true, "cSpell.words": ["tinymce"], "typescript.tsdk": "node_modules/typescript/lib", - "editor.linkedEditing": true // 自动同步更改html标签 + "editor.linkedEditing": true, // 自动同步更改html标签, + "vscodeCustomCodeColor.highlightValue": "v-access", // v-access显示的颜色 + "vscodeCustomCodeColor.highlightValueColor": "#CCFFFF" } diff --git a/apps/web-antd/src/locales/langs/en-US.json b/apps/web-antd/src/locales/langs/en-US.json index 2fac357b..ece9278c 100644 --- a/apps/web-antd/src/locales/langs/en-US.json +++ b/apps/web-antd/src/locales/langs/en-US.json @@ -84,6 +84,7 @@ } }, "menu": { + "root": "Root", "system": { "root": "System", "user": "User", diff --git a/apps/web-antd/src/locales/langs/zh-CN.json b/apps/web-antd/src/locales/langs/zh-CN.json index b6036dea..9ad8e04e 100644 --- a/apps/web-antd/src/locales/langs/zh-CN.json +++ b/apps/web-antd/src/locales/langs/zh-CN.json @@ -84,6 +84,7 @@ } }, "menu": { + "root": "根目录", "system": { "root": "系统管理", "user": "用户管理", diff --git a/apps/web-antd/src/views/system/menu/menu-drawer.vue b/apps/web-antd/src/views/system/menu/menu-drawer.vue index 0298f946..e07224e9 100644 --- a/apps/web-antd/src/views/system/menu/menu-drawer.vue +++ b/apps/web-antd/src/views/system/menu/menu-drawer.vue @@ -43,12 +43,16 @@ const [BasicForm, formApi] = useVbenForm({ async function setupMenuSelect() { // menu const menuArray = await menuList(); + // support i18n + menuArray.forEach((item) => { + item.menuName = $t(item.menuName); + }); // const folderArray = menuArray.filter((item) => item.menuType === 'M'); const menuTree = listToTree(menuArray, { id: 'menuId', pid: 'parentId' }); const fullMenuTree = [ { menuId: 0, - menuName: '根目录', + menuName: $t('menu.root'), children: menuTree, }, ]; diff --git a/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue b/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue index 9edaf73a..76bef792 100644 --- a/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue +++ b/apps/web-antd/src/views/tool/gen/edit-steps/basic-setting.vue @@ -4,6 +4,7 @@ import type { Column, GenInfo } from '#/api/tool/gen/model'; import { inject, onMounted, type Ref } from 'vue'; import { useVbenForm } from '@vben/common-ui'; +import { $t } from '@vben/locales'; import { addFullName, listToTree } from '@vben/utils'; import { Col, Row } from 'ant-design-vue'; @@ -66,12 +67,16 @@ async function initTreeSelect(columns: Column[]) { */ async function initMenuSelect() { const list = await menuList(); + // support i18n + list.forEach((item) => { + item.menuName = $t(item.menuName); + }); const tree = listToTree(list, { id: 'menuId', pid: 'parentId' }); const treeData = [ { - fullName: '根目录', + fullName: $t('menu.root'), menuId: 0, - menuName: '根目录', + menuName: $t('menu.root'), children: tree, }, ]; diff --git a/apps/web-antd/types/directive.d.ts b/apps/web-antd/types/directive.d.ts new file mode 100644 index 00000000..06b9f553 --- /dev/null +++ b/apps/web-antd/types/directive.d.ts @@ -0,0 +1,13 @@ +import type { Directive } from 'vue'; + +declare module 'vue' { + export interface ComponentCustomProperties { + /** + * 判断权限: v-access:code="" + * 判断角色 v-access:role="" + * VueOfficial插件暂时不支持判断modifer/arg + * @see https://github.com/vuejs/language-tools/issues/4810 + */ + vAccess: Directive; + } +}