From 62aad55987b14d37c08cdabb294090f238bf4f73 Mon Sep 17 00:00:00 2001 From: Gary Fu Date: Sun, 24 Dec 2023 19:51:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E6=A0=87=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 37 +++++++- package.json | 3 +- .../index.vue | 0 src/components/index.js | 2 +- src/main.js | 3 + src/messages/menu_cn.js | 4 +- src/messages/menu_en.js | 2 + src/route/ToolsRoutes.js | 13 +++ src/route/routes.js | 10 +- src/services/global/GlobalService.js | 12 ++- src/views/Icons.vue | 80 ---------------- src/views/{ => account}/AboutView.vue | 0 src/views/tools/Forms.vue | 13 +++ src/views/tools/Icons.vue | 92 +++++++++++++++++++ src/views/tools/Tables.vue | 13 +++ 15 files changed, 193 insertions(+), 91 deletions(-) rename src/components/{common-input => common-form-input}/index.vue (100%) create mode 100644 src/route/ToolsRoutes.js delete mode 100644 src/views/Icons.vue rename src/views/{ => account}/AboutView.vue (100%) create mode 100644 src/views/tools/Forms.vue create mode 100644 src/views/tools/Icons.vue create mode 100644 src/views/tools/Tables.vue diff --git a/package-lock.json b/package-lock.json index 8c8b8ca..9366b11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,8 @@ "pinia-plugin-persistedstate": "^3.2.1", "vue": "^3.3.13", "vue-i18n": "^9.8.0", - "vue-router": "^4.2.5" + "vue-router": "^4.2.5", + "vue-virtual-scroller": "^2.0.0-beta.8" }, "devDependencies": { "@rushstack/eslint-patch": "^1.6.1", @@ -2463,6 +2464,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mitt": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", + "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3458,6 +3464,22 @@ "vue": "^3.0.0" } }, + "node_modules/vue-observe-visibility": { + "version": "2.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-2.0.0-alpha.1.tgz", + "integrity": "sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-resize": { + "version": "2.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz", + "integrity": "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==", + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/vue-router": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz", @@ -3472,6 +3494,19 @@ "vue": "^3.2.0" } }, + "node_modules/vue-virtual-scroller": { + "version": "2.0.0-beta.8", + "resolved": "https://registry.npmjs.org/vue-virtual-scroller/-/vue-virtual-scroller-2.0.0-beta.8.tgz", + "integrity": "sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==", + "dependencies": { + "mitt": "^2.1.0", + "vue-observe-visibility": "^2.0.0-alpha.1", + "vue-resize": "^2.0.0-alpha.1" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 2615c4f..108b260 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "pinia-plugin-persistedstate": "^3.2.1", "vue": "^3.3.13", "vue-i18n": "^9.8.0", - "vue-router": "^4.2.5" + "vue-router": "^4.2.5", + "vue-virtual-scroller": "^2.0.0-beta.8" }, "devDependencies": { "@rushstack/eslint-patch": "^1.6.1", diff --git a/src/components/common-input/index.vue b/src/components/common-form-input/index.vue similarity index 100% rename from src/components/common-input/index.vue rename to src/components/common-form-input/index.vue diff --git a/src/components/index.js b/src/components/index.js index e84abea..3bb1d08 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -1,5 +1,5 @@ import CommonIcon from '@/components/common-icon/index.vue' -import CommonInput from '@/components/common-input/index.vue' +import CommonInput from '@/components/common-form-input/index.vue' import CommonMenu from '@/components/common-menu/index.vue' import CommonMenuItem from '@/components/common-menu-item/index.vue' diff --git a/src/main.js b/src/main.js index 3a08662..ed89ba2 100644 --- a/src/main.js +++ b/src/main.js @@ -2,6 +2,8 @@ import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import 'element-plus/theme-chalk/dark/css-vars.css' +import VueVirtualScroller from 'vue-virtual-scroller' +import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' import stores from '@/stores' import icons from '@/icons' import messages from '@/messages' @@ -14,6 +16,7 @@ import './assets/main.css' const app = createApp(App) +app.use(VueVirtualScroller) app.use(stores) app.use(router) app.use(ElementPlus) diff --git a/src/messages/menu_cn.js b/src/messages/menu_cn.js index bb9c45d..2d53d14 100644 --- a/src/messages/menu_cn.js +++ b/src/messages/menu_cn.js @@ -7,7 +7,9 @@ menu.label.roleManagement = '角色管理' menu.label.authorityManagement = '权限管理' menu.label.menuManagement = '菜单管理' menu.label.toolsManagement = '工具管理' -menu.label.toolsIcons = '图标管理' +menu.label.toolsIcons = '图标工具' +menu.label.toolsForms = '表单工具' +menu.label.toolsTables = '表格工具' menu.label.errorPage = '错误页面' menu.label.errorPage404 = '找不到页面' menu.label.errorPage403 = '没有权限' diff --git a/src/messages/menu_en.js b/src/messages/menu_en.js index e7a10f3..0a890e7 100644 --- a/src/messages/menu_en.js +++ b/src/messages/menu_en.js @@ -8,6 +8,8 @@ menu.label.authorityManagement = 'Authority Management' menu.label.menuManagement = 'Menu Management' menu.label.toolsManagement = 'Tools' menu.label.toolsIcons = 'Icons' +menu.label.toolsForms = 'Forms' +menu.label.toolsTables = 'Tables' menu.label.errorPage = 'Error Page' menu.label.errorPage404 = 'Not Found' menu.label.errorPage403 = 'Access Denied' diff --git a/src/route/ToolsRoutes.js b/src/route/ToolsRoutes.js new file mode 100644 index 0000000..6ec84e1 --- /dev/null +++ b/src/route/ToolsRoutes.js @@ -0,0 +1,13 @@ +export default [{ + path: 'icons', + name: 'icons', + component: () => import('@/views/tools/Icons.vue') +}, { + path: 'forms', + name: 'forms', + component: () => import('@/views/tools/Forms.vue') +}, { + path: 'tables', + name: 'tables', + component: () => import('@/views/tools/Tables.vue') +}] diff --git a/src/route/routes.js b/src/route/routes.js index 182a54c..b4a5db4 100644 --- a/src/route/routes.js +++ b/src/route/routes.js @@ -1,6 +1,7 @@ import { createRouter, createWebHashHistory } from 'vue-router' import HomeView from '@/views/HomeView.vue' import AdminRoutes from '@/route/AdminRoutes' +import ToolsRoutes from '@/route/ToolsRoutes' const router = createRouter({ history: createWebHashHistory(import.meta.env.BASE_URL), @@ -12,22 +13,19 @@ const router = createRouter({ children: [{ path: 'about', name: 'about', - component: () => import('@/views/AboutView.vue') + component: () => import('@/views/account/AboutView.vue') }, { path: 'personal', name: 'personal', component: () => import('@/views/account/PersonalInfo.vue') - }, { - path: 'icons', - name: 'icons', - component: () => import('@/views/Icons.vue') }, { path: '/:pathMatch(.*)*', name: 'notFound', component: () => import('@/views/404.vue') }, - ...AdminRoutes + ...AdminRoutes, + ...ToolsRoutes ] } ] diff --git a/src/services/global/GlobalService.js b/src/services/global/GlobalService.js index e4b7627..7803200 100644 --- a/src/services/global/GlobalService.js +++ b/src/services/global/GlobalService.js @@ -89,7 +89,7 @@ export const useBusinessMenus = () => { }, { index: '/admin/roles', - icon: 'menu', + icon: 'GroupFilled', labelKey: 'menu.label.roleManagement' }, { @@ -117,6 +117,16 @@ export const useBusinessMenus = () => { index: '/icons', icon: 'InsertEmoticonOutlined', labelKey: 'menu.label.toolsIcons' + }, + { + index: '/forms', + icon: 'TableRowsTwotone', + labelKey: 'menu.label.toolsForms' + }, + { + index: '/tables', + icon: 'Grid', + labelKey: 'menu.label.toolsTables' } ] }]) diff --git a/src/views/Icons.vue b/src/views/Icons.vue deleted file mode 100644 index 96bfb70..0000000 --- a/src/views/Icons.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - diff --git a/src/views/AboutView.vue b/src/views/account/AboutView.vue similarity index 100% rename from src/views/AboutView.vue rename to src/views/account/AboutView.vue diff --git a/src/views/tools/Forms.vue b/src/views/tools/Forms.vue new file mode 100644 index 0000000..fc3f666 --- /dev/null +++ b/src/views/tools/Forms.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/src/views/tools/Icons.vue b/src/views/tools/Icons.vue new file mode 100644 index 0000000..a48b738 --- /dev/null +++ b/src/views/tools/Icons.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/views/tools/Tables.vue b/src/views/tools/Tables.vue new file mode 100644 index 0000000..38038b2 --- /dev/null +++ b/src/views/tools/Tables.vue @@ -0,0 +1,13 @@ + + + + +