From cbd6ffb3342e1008762dac48dd670bd607425d0f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 3 Dec 2024 11:45:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=99=AE=E9=80=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=B7=AF=E7=94=B1=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/langs/en-us.ts | 12 +- src/locales/langs/zh-cn.ts | 12 +- src/router/elegant/routes.ts | 74 +++++++ src/router/routes/index.ts | 4 +- src/typings/app.d.ts | 403 +---------------------------------- src/views/set-meal/index.vue | 7 + 6 files changed, 106 insertions(+), 406 deletions(-) create mode 100644 src/views/set-meal/index.vue diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 09d2074..b164f27 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -1,3 +1,12 @@ +const viewEn: any = { + "view.endpoint": "endpoint", + "view.endpoint_access": "current", + "view.endpoint_records": "Historical", + "view.billing": "Billing", + "view.billing_histories": "Historical", + "view.set-meal": "Set Meal", +}; + const local: any = { system: { title: 'WANFi Platform' @@ -522,7 +531,8 @@ const local: any = { expand: 'Expand Menu', pin: 'Pin', unpin: 'Unpin' - } + }, + ...viewEn }; export default local; diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 95acdbb..e385ebf 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -1,3 +1,12 @@ +const viewZh: any = { + "view.endpoint": "终端设备", + "view.endpoint_access": "当前设备", + "view.endpoint_records": "历史设备", + "view.billing": "账单", + "view.billing_histories": "历史查询", + "view.set-meal": "套餐", +}; + const local:any = { system: { title: 'WANFi 平台', @@ -522,7 +531,8 @@ const local:any = { expand: '展开菜单', pin: '固定', unpin: '取消固定' - } + }, + ...viewZh }; export default local; diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index a3170ce..1f5a694 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -212,3 +212,77 @@ export const generatedRoutes: GeneratedRoute[] = [ } }, ]; + +/**自定义静态菜单 */ +export const customRoutes: GeneratedRoute[] = [ + { + name: 'endpoint', + path: '/endpoint', + component: 'layout.base', + meta: { + title: '终端设备', + i18nKey: 'view.endpoint', + icon: 'icon-park-outline:all-application', + order: 11, + }, + children: [ + { + name: 'endpoint_access', + path: '/endpoint/access', + component: 'view.endpoint_access', + meta: { + title: '当前', + i18nKey: 'view.endpoint_access', + icon: 'material-symbols:filter-list-off', + order: 1 + }, + }, + { + name: 'endpoint_records', + path: '/endpoint/records', + component: 'view.endpoint_records', + meta: { + title: '历史', + i18nKey: 'view.endpoint_records', + icon: 'ic:round-supervisor-account', + order: 3, + } + }, + ] + }, + { + name: 'billing', + path: '/billing', + component: 'layout.base', + meta: { + title: '账单', + i18nKey: 'view.billing', + icon: 'icon-park-outline:all-application', + order: 13, + }, + children: [ + { + name: 'billing_histories', + path: '/billing/histories', + component: 'view.billing_histories', + meta: { + title: '历史查询', + i18nKey: 'view.billing_histories', + icon: 'material-symbols:filter-list-off', + order: 2 + }, + }, + ] + }, + { + name: 'set-meal', + path: '/set-meal', + component: 'layout.base$view.set-meal', + meta: { + title: '套餐', + i18nKey: 'view.set-meal', + icon: 'icon-park-outline:all-application', + order: 15, + } + }, +] diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index f3b8c50..b30e0f9 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -1,5 +1,5 @@ import type {ElegantConstRoute} from '@elegant-router/types'; -import {generatedRoutes} from '../elegant/routes'; +import {customRoutes, generatedRoutes} from '../elegant/routes'; import {transformElegantRoutesToVueRoutes} from '../elegant/transform'; /** create routes when the auth route mode is static */ @@ -8,7 +8,7 @@ export function createStaticRoutes() { const authRoutes: any[] = []; - generatedRoutes.forEach(item => { + [...generatedRoutes, ...customRoutes].forEach(item => { if (item.meta?.constant) { constantRoutes.push(item); } else { diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index 06bea1f..1baef34 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -243,408 +243,7 @@ declare namespace App { }; type Schema = { - system: { - title: string; - }; - common: { - action: string; - add: string; - addSuccess: string; - backToHome: string; - batchDelete: string; - cancel: string; - close: string; - check: string; - columnSetting: string; - config: string; - confirm: string; - delete: string; - deleteSuccess: string; - confirmDelete: string; - edit: string; - index: string; - keywordSearch: string; - logout: string; - logoutConfirm: string; - lookForward: string; - modify: string; - modifySuccess: string; - noData: string; - operate: string; - pleaseCheckValue: string; - refresh: string; - reset: string; - search: string; - switch: string; - tip: string; - trigger: string; - update: string; - updateSuccess: string; - userCenter: string; - yesOrNo: { - yes: string; - no: string; - }; - }; - request: { - logout: string; - logoutMsg: string; - logoutWithModal: string; - logoutWithModalMsg: string; - refreshToken: string; - tokenExpired: string; - }; - theme: { - themeSchema: { title: string } & Record; - layoutMode: { title: string } & Record; - themeColor: { - title: string; - followPrimary: string; - } & Theme.ThemeColor; - scrollMode: { title: string } & Record; - page: { - animate: string; - mode: { title: string } & Record; - }; - fixedHeaderAndTab: string; - header: { - height: string; - breadcrumb: { - visible: string; - showIcon: string; - }; - }; - tab: { - visible: string; - cache: string; - height: string; - mode: { title: string } & Record; - }; - sider: { - inverted: string; - width: string; - collapsedWidth: string; - mixWidth: string; - mixCollapsedWidth: string; - mixChildMenuWidth: string; - }; - footer: { - visible: string; - fixed: string; - height: string; - right: string; - }; - themeDrawerTitle: string; - pageFunTitle: string; - configOperation: { - copyConfig: string; - copySuccessMsg: string; - resetConfig: string; - resetSuccessMsg: string; - }; - }; - route: Record; - page: { - login: { - common: { - loginOrRegister: string; - userNamePlaceholder: string; - phonePlaceholder: string; - codePlaceholder: string; - passwordPlaceholder: string; - confirmPasswordPlaceholder: string; - codeLogin: string; - confirm: string; - back: string; - validateSuccess: string; - loginSuccess: string; - registerSuccess: string; - welcomeBack: string; - checkCode: string; - }; - pwdLogin: { - title: string; - rememberMe: string; - forgetPassword: string; - register: string; - otherAccountLogin: string; - otherLoginMode: string; - superAdmin: string; - admin: string; - user: string; - }; - codeLogin: { - title: string; - getCode: string; - reGetCode: string; - sendCodeSuccess: string; - imageCodePlaceholder: string; - }; - register: { - title: string; - agreement: string; - protocol: string; - policy: string; - }; - resetPwd: { - title: string; - }; - bindWeChat: { - title: string; - }; - }; - about: { - title: string; - introduction: string; - projectInfo: { - title: string; - version: string; - latestBuildTime: string; - githubLink: string; - previewLink: string; - }; - prdDep: string; - devDep: string; - }; - home: { - greeting: string; - weatherDesc: string; - projectCount: string; - todo: string; - message: string; - downloadCount: string; - registerCount: string; - schedule: string; - study: string; - work: string; - rest: string; - entertainment: string; - visitCount: string; - turnover: string; - dealCount: string; - projectNews: { - title: string; - moreNews: string; - desc1: string; - desc2: string; - desc3: string; - desc4: string; - desc5: string; - }; - creativity: string; - }; - function: { - tab: { - tabOperate: { - title: string; - addTab: string; - addTabDesc: string; - closeTab: string; - closeCurrentTab: string; - closeAboutTab: string; - addMultiTab: string; - addMultiTabDesc1: string; - addMultiTabDesc2: string; - }; - tabTitle: { - title: string; - changeTitle: string; - change: string; - resetTitle: string; - reset: string; - }; - }; - multiTab: { - routeParam: string; - backTab: string; - }; - toggleAuth: { - toggleAccount: string; - authHook: string; - superAdminVisible: string; - adminVisible: string; - adminOrUserVisible: string; - }; - }; - manage: { - common: { - status: { - enable: string; - disable: string; - }; - }; - role: { - title: string; - roleName: string; - roleCode: string; - roleStatus: string; - roleDesc: string; - form: { - roleName: string; - roleCode: string; - roleStatus: string; - roleDesc: string; - }; - addRole: string; - editRole: string; - menuAuth: string; - buttonAuth: string; - }; - user: { - userName: string; - nickName: string; - email: string; - phonenumber: string; - status: string; - dept: string; - title: string; - addUser: string; - remark: string; - editUser: string; - post: string; - role: string; - password: string; - form: { - userName: string; - email: string; - status: string; - nickName: string; - phonenumber: string; - remark: string; - password: string; - dept: string; - }; - }; - menu: { - home: string; - title: string; - id: string; - parentId: string; - menuType: string; - menuName: string; - routeName: string; - routePath: string; - routeParams: string; - layout: string; - page: string; - i18nKey: string; - icon: string; - localIcon: string; - iconTypeTitle: string; - order: string; - keepAlive: string; - href: string; - hideInMenu: string; - activeMenu: string; - multiTab: string; - fixedIndexInTab: string; - button: string; - buttonCode: string; - buttonDesc: string; - menuStatus: string; - form: { - home: string; - menuType: string; - menuName: string; - routeName: string; - routePath: string; - layout: string; - page: string; - i18nKey: string; - icon: string; - localIcon: string; - order: string; - keepAlive: string; - href: string; - hideInMenu: string; - activeMenu: string; - multiTab: string; - fixedInTab: string; - fixedIndexInTab: string; - button: string; - buttonCode: string; - buttonDesc: string; - menuStatus: string; - }; - addMenu: string; - editMenu: string; - addChildMenu: string; - type: { - directory: string; - menu: string; - }; - iconType: { - iconify: string; - local: string; - }; - }; - dept: { - deptName: string; - leader: string; - status: string; - form: { - deptName: string; - leader: string; - status: string; - }; - }; - post: { - addPost: string; - editPost: string; - postName: string; - postCode: string; - postSort: string; - status: string; - remark: string; - title: string; - form: { - postName: string; - postCode: string; - postSort: string; - remark: string; - status: string; - }; - }; - - dict: { - title: string; - dictName: string; - dictType: string; - status: string; - remark: string; - form: { - dictName: string; - dictType: string; - status: string; - remark: string; - }; - addDict: string; - editDict: string; - }; - }; - }; - form: { - required: string; - username: FormMsg; - phone: FormMsg; - pwd: FormMsg; - confirmPwd: FormMsg; - code: FormMsg; - email: FormMsg; - }; - dropdown: Record; - icon: { - themeConfig: string; - themeSchema: string; - lang: string; - fullscreen: string; - fullscreenExit: string; - reload: string; - collapse: string; - expand: string; - pin: string; - unpin: string; - }; + [key: string]: string; }; type GetI18nKey, K extends keyof T = keyof T> = K extends string diff --git a/src/views/set-meal/index.vue b/src/views/set-meal/index.vue new file mode 100644 index 0000000..5b43384 --- /dev/null +++ b/src/views/set-meal/index.vue @@ -0,0 +1,7 @@ + + + + +