From a05d0fbbe8911a7e48195d64050a96fe96ca713d Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Sat, 16 Oct 2021 21:17:18 +0800 Subject: [PATCH] perf: update --- api/routes.ts | 5 -- mock/asyncRoutes.ts | 33 +------ package.json | 5 +- src/api/routes.ts | 5 ++ src/main.ts | 3 +- src/plugins/i18n/config.ts | 61 ++++++++++++- src/plugins/vxe-table/index.ts | 119 ++++++++++++++++++++++++++ src/router/index.ts | 6 +- src/views/permission/button/index.vue | 25 ++++++ src/views/permission/page/index.vue | 33 +++++++ vite.config.ts | 16 +++- yarn.lock | 156 ++++++++++++++++++++++++++++++++++ 12 files changed, 423 insertions(+), 44 deletions(-) delete mode 100644 api/routes.ts create mode 100644 src/api/routes.ts create mode 100644 src/plugins/vxe-table/index.ts create mode 100644 src/views/permission/button/index.vue create mode 100644 src/views/permission/page/index.vue diff --git a/api/routes.ts b/api/routes.ts deleted file mode 100644 index f215ccc..0000000 --- a/api/routes.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { http } from "/@/utils/http"; - -export const getAsyncRoutes = (data?: object) => { - return http.request("get", "/getAsyncRoutes", data); -}; diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index c7c7ab4..6ed7299 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -1,37 +1,6 @@ // 根据角色动态生成路由 import { MockMethod } from "vite-plugin-mock"; -// http://mockjs.com/examples.html#Object -const systemRouter = { - path: "/system", - name: "system", - redirect: "/system/user", - meta: { - icon: "el-icon-setting", - title: "message.hssysManagement", - showLink: true, - rank: 6 - }, - children: [ - { - path: "/system/user", - name: "user", - meta: { - title: "message.hsBaseinfo", - showLink: true - } - }, - { - path: "/system/dict", - name: "dict", - meta: { - title: "message.hsDict", - showLink: true - } - } - ] -}; - const permissionRouter = { path: "/permission", name: "permission", @@ -77,7 +46,7 @@ export default [ if (query.name === "admin") { return { code: 0, - info: [systemRouter, setDifAuthority("v-admin", permissionRouter)] + info: [setDifAuthority("v-admin", permissionRouter)] }; } else { return { diff --git a/package.json b/package.json index 6d2a721..7ebfdf0 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,9 @@ "vue": "^3.2.20", "vue-i18n": "^9.2.0-beta.3", "vue-router": "^4.0.11", - "vue-types": "^4.1.0" + "vue-types": "^4.1.0", + "vxe-table": "^4.0.29", + "xe-utils": "3" }, "devDependencies": { "@commitlint/cli": "^13.1.0", @@ -80,6 +82,7 @@ "unplugin-element-plus": "^0.1.0", "vite": "^2.6.7", "vite-plugin-mock": "^2.9.6", + "vite-plugin-style-import": "^1.2.1", "vite-svg-loader": "^2.2.0", "vue-eslint-parser": "^7.10.0" }, diff --git a/src/api/routes.ts b/src/api/routes.ts new file mode 100644 index 0000000..f215ccc --- /dev/null +++ b/src/api/routes.ts @@ -0,0 +1,5 @@ +import { http } from "/@/utils/http"; + +export const getAsyncRoutes = (data?: object) => { + return http.request("get", "/getAsyncRoutes", data); +}; diff --git a/src/main.ts b/src/main.ts index bf25cb3..2f41fa1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,6 +4,7 @@ import { setupStore } from "/@/store"; import { getServerConfig } from "./config"; import { createApp, Directive } from "vue"; import { usI18n } from "../src/plugins/i18n"; +import { useTable } from "../src/plugins/vxe-table"; import { useElementPlus } from "../src/plugins/element-plus"; import { injectResponsiveStorage } from "/@/utils/storage/responsive"; @@ -25,7 +26,7 @@ Object.keys(directives).forEach(key => { getServerConfig(app).then(async config => { injectResponsiveStorage(app, config); setupStore(app); - app.use(router).use(useElementPlus).use(usI18n); + app.use(router).use(useElementPlus).use(useTable).use(usI18n); await router.isReady(); app.mount("#app"); }); diff --git a/src/plugins/i18n/config.ts b/src/plugins/i18n/config.ts index 293a917..32d8faf 100644 --- a/src/plugins/i18n/config.ts +++ b/src/plugins/i18n/config.ts @@ -3,21 +3,78 @@ import enLocale from "element-plus/lib/locale/lang/en"; import zhLocale from "element-plus/lib/locale/lang/zh-cn"; // 导航菜单配置 +// 导航菜单配置 export const menusConfig = { zh: { message: { hshome: "首页", + hssysManagement: "系统管理", + hsBaseinfo: "基础信息", + hsDict: "字典管理", + hseditor: "编辑器", hserror: "错误页面", hsfourZeroFour: "404", - hsfourZeroOne: "401" + hsfourZeroOne: "401", + hscomponents: "组件", + hsvideo: "视频组件", + hsmap: "地图组件", + hsdraggable: "拖拽组件", + hssplitPane: "切割面板", + hsbutton: "按钮组件", + hscropping: "图片裁剪", + hscountTo: "数字动画", + hsselector: "选择器组件", + hsflowChart: "流程图", + hsseamless: "无缝滚动", + hscontextmenu: "右键菜单", + hsmenus: "多级菜单", + hsmenu1: "菜单1", + "hsmenu1-1": "菜单1-1", + "hsmenu1-2": "菜单1-2", + "hsmenu1-2-1": "菜单1-2-1", + "hsmenu1-2-2": "菜单1-2-2", + "hsmenu1-3": "菜单1-3", + hsmenu2: "菜单2", + permission: "权限管理", + permissionPage: "页面权限", + permissionButton: "按钮权限", + externalLink: "外链" } }, en: { message: { hshome: "Home", + hssysManagement: "System Manage", + hsBaseinfo: "Base Info", + hsDict: "Dict Manage", + hseditor: "Editor", hserror: "Error Page", hsfourZeroFour: "404", - hsfourZeroOne: "401" + hsfourZeroOne: "401", + hscomponents: "Components", + hsvideo: "Video Components", + hsmap: "Map Components", + hsdraggable: "Draggable Components", + hssplitPane: "Split Pane", + hsbutton: "Button Components", + hscropping: "Picture Cropping", + hscountTo: "Digital Animation", + hsselector: "Selector Components", + hsflowChart: "Flow Chart", + hsseamless: "Seamless Scroll", + hscontextmenu: "Context Menu", + hsmenus: "MultiLevel Menu", + hsmenu1: "Menu1", + "hsmenu1-1": "Menu1-1", + "hsmenu1-2": "Menu1-2", + "hsmenu1-2-1": "Menu1-2-1", + "hsmenu1-2-2": "Menu1-2-2", + "hsmenu1-3": "Menu1-3", + hsmenu2: "Menu2", + permission: "Permission Manage", + permissionPage: "Page Permission", + permissionButton: "Button Permission", + externalLink: "External Link" } } }; diff --git a/src/plugins/vxe-table/index.ts b/src/plugins/vxe-table/index.ts new file mode 100644 index 0000000..7c94f0c --- /dev/null +++ b/src/plugins/vxe-table/index.ts @@ -0,0 +1,119 @@ +import "xe-utils"; +import { App } from "vue"; +import { i18n } from "../i18n/index"; +import "font-awesome/css/font-awesome.css"; +import { + // 核心 + VXETable, + + // 表格功能 + Header, + Footer, + Icon, + Filter, + Edit, + Menu, + Export, + Keyboard, + Validator, + + // 可选组件 + Column, + Colgroup, + Grid, + Tooltip, + Toolbar, + Pager, + Form, + FormItem, + FormGather, + Checkbox, + CheckboxGroup, + Radio, + RadioGroup, + RadioButton, + Switch, + Input, + Select, + Optgroup, + Option, + Textarea, + Button, + Modal, + List, + Pulldown, + + // 表格 + Table +} from "vxe-table"; + +// 全局默认参数 +VXETable.setup({ + size: "medium", + version: 0, + zIndex: 100, + table: { + // 自动监听父元素的变化去重新计算表格 + autoResize: true, + // 鼠标移到行是否要高亮显示 + highlightHoverRow: true + }, + input: { + clearable: true + }, + // 对组件内置的提示语进行国际化翻译 + // @ts-ignore + i18n: (key, args) => i18n.global.t(key, args), + // 可选,对参数中的列头、校验提示..等进行自动翻译(只对支持国际化的有效) + translate(key, args) { + // 例如,只翻译 "message." 开头的键值 + if (key && key.indexOf("message.") > -1) { + return i18n.global.t(key, args); + } + if (key && key.indexOf("el.") > -1) { + return i18n.global.t(key, args); + } + return key; + } +}); + +export function useTable(app: App) { + app + .use(Header) + .use(Footer) + .use(Icon) + .use(Filter) + .use(Edit) + .use(Menu) + .use(Export) + .use(Keyboard) + .use(Validator) + + // 可选组件 + .use(Column) + .use(Colgroup) + .use(Grid) + .use(Tooltip) + .use(Toolbar) + .use(Pager) + .use(Form) + .use(FormItem) + .use(FormGather) + .use(Checkbox) + .use(CheckboxGroup) + .use(Radio) + .use(RadioGroup) + .use(RadioButton) + .use(Switch) + .use(Input) + .use(Select) + .use(Optgroup) + .use(Option) + .use(Textarea) + .use(Button) + .use(Modal) + .use(List) + .use(Pulldown) + // 安装表格 + .use(Table); +} diff --git a/src/router/index.ts b/src/router/index.ts index e3023fb..c1858b5 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -17,6 +17,7 @@ import { usePermissionStoreHook } from "/@/store/modules/permission"; import homeRouter from "./modules/home"; import Layout from "/@/layout/index.vue"; import errorRouter from "./modules/error"; +import remainingRouter from "./modules/remaining"; // 动态路由 import { getAsyncRoutes } from "/@/api/routes"; @@ -33,8 +34,9 @@ export const ascending = arr => { }; // 将所有静态路由导出 -export const constantRoutesArr: Array = - ascending(constantRoutes); +export const constantRoutesArr: Array = ascending( + constantRoutes +).concat(...remainingRouter); // 过滤meta中showLink为false的路由 export const filterTree = data => { diff --git a/src/views/permission/button/index.vue b/src/views/permission/button/index.vue new file mode 100644 index 0000000..11a62e0 --- /dev/null +++ b/src/views/permission/button/index.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/views/permission/page/index.vue b/src/views/permission/page/index.vue new file mode 100644 index 0000000..ede6b51 --- /dev/null +++ b/src/views/permission/page/index.vue @@ -0,0 +1,33 @@ + + + diff --git a/vite.config.ts b/vite.config.ts index 0fcf0a7..d048456 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -6,6 +6,7 @@ import { warpperEnv } from "./build/utils"; import { createProxy } from "./build/proxy"; import { viteMockServe } from "vite-plugin-mock"; import svgLoader from "vite-svg-loader"; +import styleImport from "vite-plugin-style-import"; import ElementPlus from "unplugin-element-plus/vite"; const pathResolve = (dir: string): any => { @@ -55,6 +56,17 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => { vue(), vueJsx(), svgLoader(), + styleImport({ + libs: [ + // 按需加载vxe-table + { + libraryName: "vxe-table", + esModule: true, + resolveComponent: name => `vxe-table/es/${name}`, + resolveStyle: name => `vxe-table/es/${name}/style.css` + } + ] + }), ElementPlus({}), viteMockServe({ mockPath: "mock", @@ -70,7 +82,9 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => { optimizeDeps: { include: [ "element-plus/lib/locale/lang/zh-cn", - "element-plus/lib/locale/lang/en" + "element-plus/lib/locale/lang/en", + "vxe-table/lib/locale/lang/zh-CN", + "vxe-table/lib/locale/lang/en-US" ] }, build: { diff --git a/yarn.lock b/yarn.lock index 4d3039f..c2cbe6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1188,6 +1188,14 @@ callsites@^3.0.0: resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -1212,6 +1220,15 @@ caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001252, caniuse-lite@^1.0.300012 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz#150aaf649a48bee531104cfeda57f92ce587f6e5" integrity sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA== +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1237,6 +1254,24 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -1372,6 +1407,15 @@ consolidate@^0.16.0: dependencies: bluebird "^3.7.2" +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + conventional-changelog-angular@^5.0.11: version "5.0.13" resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" @@ -1595,6 +1639,14 @@ domutils@^2.6.0: domelementtype "^2.2.0" domhandler "^4.2.0" +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -2325,6 +2377,14 @@ hash-sum@^2.0.0: resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -2781,6 +2841,13 @@ lowdb@^3.0.0: dependencies: steno "^2.1.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3012,6 +3079,14 @@ neo-async@^2.6.2: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + node-releases@^1.1.75: version "1.1.75" resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" @@ -3154,6 +3229,14 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3188,6 +3271,22 @@ parseurl@~1.3.3: resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -3689,6 +3788,15 @@ semver@^6.3.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3729,6 +3837,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" @@ -4058,6 +4174,11 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.3: + version "2.3.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -4172,6 +4293,20 @@ unplugin@^0.2.7: dependencies: webpack-virtual-modules "^0.4.3" +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -4242,6 +4377,17 @@ vite-plugin-mock@^2.9.6: fast-glob "^3.2.7" path-to-regexp "^6.2.0" +vite-plugin-style-import@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/vite-plugin-style-import/-/vite-plugin-style-import-1.2.1.tgz#730c7b0e1f61ed685974fe09d2d5094858491be6" + integrity sha512-N3qH4K/FE9GPs40k1bREEdBqKkAhjQUeLBNDWzDVFpKJ204unjUpJkGjRv6FA0c+uaZZCHwEQRUMKULtZW3kCw== + dependencies: + "@rollup/pluginutils" "^4.1.1" + change-case "^4.1.2" + debug "^4.3.2" + es-module-lexer "^0.7.1" + magic-string "^0.25.7" + vite-svg-loader@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-2.2.0.tgz#b5d6ca948b03e45320cb4f96c44bf88f5bef0a2c" @@ -4315,6 +4461,11 @@ vue@^3.2.20: "@vue/server-renderer" "3.2.20" "@vue/shared" "3.2.20" +vxe-table@^4.0.29: + version "4.0.29" + resolved "https://registry.npmjs.org/vxe-table/-/vxe-table-4.0.29.tgz#89a6f29af223ad4e507b3ec8ef629515e25e018c" + integrity sha512-tKMiW+zZxPg8Rjqf+MI2Q1Lk5FOQPHEQGucv6BJRO7RUSfF8kqIsjPV6YjcP0hFY585IdJbq0LJLdIukVU4wyw== + webpack-virtual-modules@^0.4.3: version "0.4.3" resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" @@ -4372,6 +4523,11 @@ write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +xe-utils@3: + version "3.4.0" + resolved "https://registry.npmjs.org/xe-utils/-/xe-utils-3.4.0.tgz#b5b52990858298e815763c46bada5741ebab15ed" + integrity sha512-V2o/Ew/iXBduWbj0ixqA7atUe4HFxo0HcpBsxnrLHbKVspfZ2O/7+m325AHcN2xxPZtBZGQVg1w/cQ5Q8WmcTA== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"