diff --git a/build/css.ts b/build/css.ts index 4e4e919..3c27162 100644 --- a/build/css.ts +++ b/build/css.ts @@ -1,26 +1,26 @@ +import type { AcceptedPlugin } from 'postcss'; import postCssPxToViewport8plugin from 'postcss-px-to-viewport-8-plugin'; -import type { CSSOptions, Plugin } from 'vite'; +import type { CSSOptions } from 'vite'; import { wrapperEnv } from './utils'; -export const css = (mode): CSSOptions => { - const plugins: Plugin[] = [usePostCssPxToViewport8plugin(mode)]; +export const css = (mode: string): CSSOptions => { + const plugins: AcceptedPlugin[] = [usePostCssPxToViewport8plugin(mode)]; return { preprocessorOptions: { scss: { additionalData: `@use "@/assets/styles/minix/sidebar" as *;`, - api: 'modern-compiler', }, }, postcss: { plugins: plugins.filter(Boolean), }, - } as CSSOptions; + }; }; /** 是否启用px转换vw插件 */ -const usePostCssPxToViewport8plugin = (mode): Plugin => { +const usePostCssPxToViewport8plugin = (mode: string): AcceptedPlugin => { const { VITE_POST_CSS_PX_TO_VIEWPORT8_PLUGIN } = wrapperEnv(mode, 'VITE'); const cssPxToVw = postCssPxToViewport8plugin({ diff --git a/build/info.ts b/build/info.ts index b887e0f..43380a2 100644 --- a/build/info.ts +++ b/build/info.ts @@ -17,8 +17,7 @@ const boxenOptions: BoxenOptions = { /* 输出日志信息 */ const printLogMessage = (VITE_PORT: number) => { return gradientString('cyan', 'magenta').multiline( - `保存成功!服务器重新启动... -项目访问地址如下: + `欢迎使用此项目,项目访问地址如下: http://localhost:${VITE_PORT}` ); }; diff --git a/build/optimize.ts b/build/optimize.ts index bb7665b..5771b6e 100644 --- a/build/optimize.ts +++ b/build/optimize.ts @@ -9,6 +9,6 @@ const include = ['vue', 'vue-router', 'dayjs', 'axios', 'pinia', 'vue-types', 'j /** * 在预构建中强制排除的依赖项 */ -const exclude = []; +const exclude: string[] = []; export { include, exclude }; diff --git a/build/plugins.ts b/build/plugins.ts index 3afb101..3045103 100644 --- a/build/plugins.ts +++ b/build/plugins.ts @@ -6,13 +6,14 @@ import UnoCSS from 'unocss/vite'; import type { PluginOption } from 'vite'; import { vitePluginFakeServer } from 'vite-plugin-fake-server'; import removeConsole from 'vite-plugin-remove-console'; +import { createStyleImportPlugin } from 'vite-plugin-style-import'; import Inspector from 'vite-plugin-vue-inspector'; import { useCDN } from './cdn'; import { viteConsoleLog } from './info'; import { compressPack, report, wrapperEnv } from './utils'; -export const plugins = (mode): PluginOption[] => { +export const plugins = (mode: string): PluginOption[] => { return [ vue(), vueJsx(), @@ -41,13 +42,21 @@ export const plugins = (mode): PluginOption[] => { }), ], }), + createStyleImportPlugin({ + libs: [ + { + libraryName: 'vite-plugin-style-import', + resolveStyle: (name) => `@/assets/${name}`, + }, + ], + }), compressPack(mode), useMock(mode), ]; }; /** MOCK 服务 */ -const useMock = (mode) => { +const useMock = (mode: string) => { const { VITE_MOCK_DEV_SERVER } = wrapperEnv(mode); return VITE_MOCK_DEV_SERVER diff --git a/build/resolve.ts b/build/resolve.ts index f55c5af..3fd4624 100644 --- a/build/resolve.ts +++ b/build/resolve.ts @@ -4,7 +4,7 @@ export const resolve = () => { return { alias: { '@': pathResolve('../src'), - '@build': pathResolve(), + // '@build': pathResolve(), }, }; }; diff --git a/build/server.ts b/build/server.ts index 28f37a9..6ec5454 100644 --- a/build/server.ts +++ b/build/server.ts @@ -3,7 +3,7 @@ import type { ServerOptions } from 'vite'; import { wrapperEnv } from './utils'; /* 开发服务配置 */ -export const server = (mode) => { +export const server = (mode: string) => { const { VITE_PORT, VITE_APP_URL, VITE_STRICT_PORT } = wrapperEnv(mode); const options: ServerOptions = { diff --git a/build/utils.ts b/build/utils.ts index bdf8813..9580343 100644 --- a/build/utils.ts +++ b/build/utils.ts @@ -34,18 +34,20 @@ export const pathResolve = (dir = '.', metaUrl = import.meta.url) => { * @param prefix 需要过滤的前缀 * @link 参考:https://cn.vite.dev/config/#using-environment-variables-in-config */ -export const wrapperEnv = (mode, prefix: string = ''): ViteEnv => { - const env = loadEnv(mode, root, prefix); +// @ts-ignore +export const wrapperEnv = (mode: string, prefix: string = ''): ViteEnv => { + const env: any = loadEnv(mode, root, prefix); // 将变量转换指定类型 for (const envName of Object.keys(env)) { - let realName = env[envName].replace(/\\n/g, '\n'); + let realName: string | boolean | number = env[envName].replace(/\\n/g, '\n'); realName = realName === 'true' ? true : realName === 'false' ? false : realName; if (envName === 'VITE_PORT') { realName = Number(realName); } env[envName] = realName; + // @ts-ignore process.env[envName] = realName; } return env; @@ -60,7 +62,7 @@ export const report = () => { }; /* 启用gzip压缩 */ -export const compressPack = (mode) => { +export const compressPack = (mode: string) => { const { VITE_COMPRESSION } = wrapperEnv(mode); return VITE_COMPRESSION == 'gzip' ? viteCompression({ threshold: 1024000 }) : null; diff --git a/eslint.config.js b/eslint.config.js index 2b1b314..8100c77 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -83,7 +83,7 @@ export default defineFlatConfig([ rules: { ...pluginTypeScript.configs.strict.rules, '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/no-redeclare': 'error', + '@typescript-eslint/no-redeclare': 'off', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/prefer-as-const': 'warn', diff --git a/mock/user.ts b/mock/user.ts index 5f444f4..1afc49b 100644 --- a/mock/user.ts +++ b/mock/user.ts @@ -3,7 +3,7 @@ import { defineFakeRoute } from 'vite-plugin-fake-server/client'; export default defineFakeRoute([ { url: '/mock/users', - methods: 'get', + method: 'GET', response: () => ({ code: 200, data: { diff --git a/package.json b/package.json index 4e559ee..fc6f174 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,8 @@ }, "dependencies": { "@eslint/js": "^9.21.0", + "@parcel/watcher": "^2.5.1", + "@types/node": "^22.13.10", "@typescript-eslint/eslint-plugin": "^8.24.1", "@typescript-eslint/parser": "^8.24.1", "@unocss/preset-icons": "^66.0.0", @@ -25,6 +27,7 @@ "boxen": "^8.0.1", "dayjs": "^1.11.13", "echarts": "^5.6.0", + "esbuild": "^0.25.1", "eslint": "^9.9.1", "eslint-config-prettier": "^9.1.0", "eslint-define-config": "^2.1.0", @@ -36,6 +39,7 @@ "nprogress": "^0.2.0", "pinia": "^2.3.1", "pinia-plugin-persistedstate": "^3.2.3", + "postcss": "^8.5.3", "postcss-px-to-viewport-8-plugin": "^1.2.5", "prettier": "^3.3.3", "qs": "^6.14.0", @@ -54,18 +58,22 @@ "vite-plugin-remove-console": "^2.2.0", "vite-plugin-vue-inspector": "^5.3.1", "vue": "^3.5.13", + "vue-demi": "^0.14.10", "vue-eslint-parser": "^9.4.3", "vue-router": "^4.4.3", "vue-types": "^6.0.0" }, "devDependencies": { "@iconify/json": "^2.2.310", + "@types/nprogress": "^0.2.3", + "@types/qs": "^6.9.18", "@vitejs/plugin-vue": "^5.2.1", "@vue/tsconfig": "^0.7.0", "eslint-plugin-simple-import-sort": "^12.1.1", "typescript": "~5.7.2", "vite": "^6.1.0", "vite-plugin-compression": "^0.5.1", + "vite-plugin-style-import": "^2.0.0", "vue-tsc": "^2.2.0" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b319b8..b51b851 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,12 @@ importers: '@eslint/js': specifier: ^9.21.0 version: 9.21.0 + '@parcel/watcher': + specifier: ^2.5.1 + version: 2.5.1 + '@types/node': + specifier: ^22.13.10 + version: 22.13.10 '@typescript-eslint/eslint-plugin': specifier: ^8.24.1 version: 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) @@ -25,7 +31,7 @@ importers: version: 66.0.0 '@vitejs/plugin-vue-jsx': specifier: ^4.1.1 - version: 4.1.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) + version: 4.1.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) '@vueuse/core': specifier: ^12.8.2 version: 12.8.2(typescript@5.7.3) @@ -47,6 +53,9 @@ importers: echarts: specifier: ^5.6.0 version: 5.6.0 + esbuild: + specifier: ^0.25.1 + version: 0.25.1 eslint: specifier: ^9.9.1 version: 9.21.0(jiti@2.4.2) @@ -80,6 +89,9 @@ importers: pinia-plugin-persistedstate: specifier: ^3.2.3 version: 3.2.3(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))) + postcss: + specifier: ^8.5.3 + version: 8.5.3 postcss-px-to-viewport-8-plugin: specifier: ^1.2.5 version: 1.2.5 @@ -118,10 +130,10 @@ importers: version: 5.39.0 unocss: specifier: ^66.0.0 - version: 66.0.0(postcss@8.5.3)(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) + version: 66.0.0(postcss@8.5.3)(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) vite-plugin-cdn-import: specifier: ^1.0.1 - version: 1.0.1(rollup@4.34.8)(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) + version: 1.0.1(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) vite-plugin-fake-server: specifier: ^2.2.0 version: 2.2.0 @@ -130,10 +142,13 @@ importers: version: 2.2.0 vite-plugin-vue-inspector: specifier: ^5.3.1 - version: 5.3.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) + version: 5.3.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) vue: specifier: ^3.5.13 version: 3.5.13(typescript@5.7.3) + vue-demi: + specifier: ^0.14.10 + version: 0.14.10(vue@3.5.13(typescript@5.7.3)) vue-eslint-parser: specifier: ^9.4.3 version: 9.4.3(eslint@9.21.0(jiti@2.4.2)) @@ -147,9 +162,15 @@ importers: '@iconify/json': specifier: ^2.2.310 version: 2.2.310 + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 + '@types/qs': + specifier: ^6.9.18 + version: 6.9.18 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) + version: 5.2.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) '@vue/tsconfig': specifier: ^0.7.0 version: 0.7.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) @@ -161,10 +182,13 @@ importers: version: 5.7.3 vite: specifier: ^6.1.0 - version: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + version: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) + version: 0.5.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) + vite-plugin-style-import: + specifier: ^2.0.0 + version: 2.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) vue-tsc: specifier: ^2.2.0 version: 2.2.4(typescript@5.7.3) @@ -349,150 +373,300 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.1': + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.24.2': resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.1': + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.24.2': resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.1': + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.24.2': resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.1': + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.24.2': resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.1': + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.24.2': resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.1': + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.24.2': resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.1': + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.1': + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.24.2': resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.1': + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.24.2': resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.1': + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.24.2': resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.1': + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.24.2': resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.1': + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.24.2': resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.1': + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.24.2': resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.1': + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.24.2': resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.1': + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.24.2': resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.1': + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.24.2': resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.1': + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.24.2': resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.1': + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.1': + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.24.2': resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.1': + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.1': + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.24.2': resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.1': + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.24.2': resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.1': + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.24.2': resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.1': + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.1': + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -695,6 +869,10 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + '@rollup/pluginutils@5.1.4': resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} @@ -815,6 +993,15 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/node@22.13.10': + resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + + '@types/nprogress@0.2.3': + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + + '@types/qs@6.9.18': + resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} + '@types/tinycolor2@1.4.6': resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} @@ -1181,6 +1368,9 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} @@ -1188,6 +1378,9 @@ packages: caniuse-lite@1.0.30001700: resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1196,6 +1389,9 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -1242,6 +1438,12 @@ packages: resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} engines: {node: ^14.18.0 || >=16.10.0} + console@0.7.2: + resolution: {integrity: sha512-+JSDwGunA4MTEgAV/4VBKwUHonP8CzJ/6GIuwPi6acKFqFfHUdSGCm89ZxZ5FfGWdZfkdgAroy5bJ5FSeN/t4g==} + + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1328,6 +1530,9 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -1375,6 +1580,9 @@ packages: es-module-lexer@0.4.1: resolution: {integrity: sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==} + es-module-lexer@0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -1388,6 +1596,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1679,6 +1892,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + hookified@1.7.1: resolution: {integrity: sha512-OXcdHsXeOiD7OJ5zvWj8Oy/6RCdLwntAX+wUrfemNcMGn6sux4xbEHi2QXwqePYhjQ/yvxxq2MvCRirdlHscBw==} @@ -1854,6 +2070,9 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -1931,6 +2150,9 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -1983,6 +2205,9 @@ packages: package-manager-detector@0.2.9: resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -1991,9 +2216,15 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2014,6 +2245,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -2204,6 +2438,9 @@ packages: engines: {node: '>=10'} hasBin: true + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2244,6 +2481,9 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2441,6 +2681,9 @@ packages: unconfig@7.0.0: resolution: {integrity: sha512-G5CJSoG6ZTxgzCJblEfgpdRK2tos9+UdD2WtecDUVfImzQ0hFjwpH5RVvGMhP4pRpC9ML7NrC4qBsBl0Ttj35A==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -2467,6 +2710,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -2493,6 +2742,11 @@ packages: vite-plugin-remove-console@2.2.0: resolution: {integrity: sha512-qgjh5pz75MdE9Kzs8J0kBwaCfifHV0ezRbB9rpGsIOxam+ilcGV7WOk91vFJXquzRmiKrFh3Hxlh0JJWAmXTbQ==} + vite-plugin-style-import@2.0.0: + resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==} + peerDependencies: + vite: '>=2.0.0' + vite-plugin-vue-inspector@5.3.1: resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==} peerDependencies: @@ -2873,78 +3127,153 @@ snapshots: '@esbuild/aix-ppc64@0.24.2': optional: true + '@esbuild/aix-ppc64@0.25.1': + optional: true + '@esbuild/android-arm64@0.24.2': optional: true + '@esbuild/android-arm64@0.25.1': + optional: true + '@esbuild/android-arm@0.24.2': optional: true + '@esbuild/android-arm@0.25.1': + optional: true + '@esbuild/android-x64@0.24.2': optional: true + '@esbuild/android-x64@0.25.1': + optional: true + '@esbuild/darwin-arm64@0.24.2': optional: true + '@esbuild/darwin-arm64@0.25.1': + optional: true + '@esbuild/darwin-x64@0.24.2': optional: true + '@esbuild/darwin-x64@0.25.1': + optional: true + '@esbuild/freebsd-arm64@0.24.2': optional: true + '@esbuild/freebsd-arm64@0.25.1': + optional: true + '@esbuild/freebsd-x64@0.24.2': optional: true + '@esbuild/freebsd-x64@0.25.1': + optional: true + '@esbuild/linux-arm64@0.24.2': optional: true + '@esbuild/linux-arm64@0.25.1': + optional: true + '@esbuild/linux-arm@0.24.2': optional: true + '@esbuild/linux-arm@0.25.1': + optional: true + '@esbuild/linux-ia32@0.24.2': optional: true + '@esbuild/linux-ia32@0.25.1': + optional: true + '@esbuild/linux-loong64@0.24.2': optional: true + '@esbuild/linux-loong64@0.25.1': + optional: true + '@esbuild/linux-mips64el@0.24.2': optional: true + '@esbuild/linux-mips64el@0.25.1': + optional: true + '@esbuild/linux-ppc64@0.24.2': optional: true + '@esbuild/linux-ppc64@0.25.1': + optional: true + '@esbuild/linux-riscv64@0.24.2': optional: true + '@esbuild/linux-riscv64@0.25.1': + optional: true + '@esbuild/linux-s390x@0.24.2': optional: true + '@esbuild/linux-s390x@0.25.1': + optional: true + '@esbuild/linux-x64@0.24.2': optional: true + '@esbuild/linux-x64@0.25.1': + optional: true + '@esbuild/netbsd-arm64@0.24.2': optional: true + '@esbuild/netbsd-arm64@0.25.1': + optional: true + '@esbuild/netbsd-x64@0.24.2': optional: true + '@esbuild/netbsd-x64@0.25.1': + optional: true + '@esbuild/openbsd-arm64@0.24.2': optional: true + '@esbuild/openbsd-arm64@0.25.1': + optional: true + '@esbuild/openbsd-x64@0.24.2': optional: true + '@esbuild/openbsd-x64@0.25.1': + optional: true + '@esbuild/sunos-x64@0.24.2': optional: true + '@esbuild/sunos-x64@0.25.1': + optional: true + '@esbuild/win32-arm64@0.24.2': optional: true + '@esbuild/win32-arm64@0.25.1': + optional: true + '@esbuild/win32-ia32@0.24.2': optional: true + '@esbuild/win32-ia32@0.25.1': + optional: true + '@esbuild/win32-x64@0.24.2': optional: true + '@esbuild/win32-x64@0.25.1': + optional: true + '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': dependencies: eslint: 9.21.0(jiti@2.4.2) @@ -3126,7 +3455,6 @@ snapshots: '@parcel/watcher-win32-arm64': 2.5.1 '@parcel/watcher-win32-ia32': 2.5.1 '@parcel/watcher-win32-x64': 2.5.1 - optional: true '@pkgjs/parseargs@0.11.0': optional: true @@ -3135,6 +3463,11 @@ snapshots: '@polka/url@1.0.0-next.28': {} + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + '@rollup/pluginutils@5.1.4(rollup@4.34.8)': dependencies: '@types/estree': 1.0.6 @@ -3204,6 +3537,14 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/node@22.13.10': + dependencies: + undici-types: 6.20.0 + + '@types/nprogress@0.2.3': {} + + '@types/qs@6.9.18': {} + '@types/tinycolor2@1.4.6': {} '@types/web-bluetooth@0.0.21': {} @@ -3285,13 +3626,13 @@ snapshots: '@typescript-eslint/types': 8.24.1 eslint-visitor-keys: 4.2.0 - '@unocss/astro@66.0.0(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': + '@unocss/astro@66.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@unocss/core': 66.0.0 '@unocss/reset': 66.0.0 - '@unocss/vite': 66.0.0(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/vite': 66.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) optionalDependencies: - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) transitivePeerDependencies: - vue @@ -3416,7 +3757,7 @@ snapshots: dependencies: '@unocss/core': 66.0.0 - '@unocss/vite@66.0.0(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': + '@unocss/vite@66.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@ampproject/remapping': 2.3.0 '@unocss/config': 66.0.0 @@ -3426,23 +3767,23 @@ snapshots: magic-string: 0.30.17 tinyglobby: 0.2.12 unplugin-utils: 0.2.4 - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) transitivePeerDependencies: - vue - '@vitejs/plugin-vue-jsx@4.1.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': + '@vitejs/plugin-vue-jsx@4.1.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@babel/core': 7.26.9 '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.9) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.9) - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) vue: 3.5.13(typescript@5.7.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': dependencies: - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) vue: 3.5.13(typescript@5.7.3) '@volar/language-core@2.4.11': @@ -3716,10 +4057,21 @@ snapshots: callsites@3.1.0: {} + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.1 + camelcase@8.0.0: {} caniuse-lite@1.0.30001700: {} + capital-case@1.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -3727,6 +4079,21 @@ snapshots: chalk@5.4.1: {} + change-case@4.1.2: + 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.8.1 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -3773,6 +4140,14 @@ snapshots: consola@3.4.0: {} + console@0.7.2: {} + + constant-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case: 2.0.2 + convert-source-map@2.0.0: {} cosmiconfig@9.0.0(typescript@5.7.3): @@ -3819,8 +4194,7 @@ snapshots: destr@2.0.3: {} - detect-libc@1.0.3: - optional: true + detect-libc@1.0.3: {} dir-glob@3.0.1: dependencies: @@ -3844,6 +4218,11 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -3881,6 +4260,8 @@ snapshots: es-module-lexer@0.4.1: {} + es-module-lexer@0.9.3: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -3920,6 +4301,34 @@ snapshots: '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 + esbuild@0.25.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 + escalade@3.2.0: {} escape-string-regexp@4.0.0: {} @@ -4230,6 +4639,11 @@ snapshots: he@1.2.0: {} + header-case@2.0.4: + dependencies: + capital-case: 1.0.4 + tslib: 2.8.1 + hookified@1.7.1: {} html-tags@3.3.1: {} @@ -4371,6 +4785,10 @@ snapshots: lodash@4.17.21: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + lru-cache@10.4.3: {} lru-cache@5.1.1: @@ -4435,8 +4853,12 @@ snapshots: natural-compare@1.4.0: {} - node-addon-api@7.1.1: - optional: true + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-addon-api@7.1.1: {} node-fetch-native@1.6.6: {} @@ -4487,6 +4909,11 @@ snapshots: package-manager-detector@0.2.9: {} + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -4498,8 +4925,18 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + path-browserify@1.0.1: {} + path-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -4513,6 +4950,8 @@ snapshots: path-type@4.0.0: {} + pathe@0.2.0: {} + pathe@1.1.2: {} pathe@2.0.3: {} @@ -4692,6 +5131,12 @@ snapshots: semver@7.7.1: {} + sentence-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -4742,6 +5187,11 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -4972,11 +5422,13 @@ snapshots: defu: 6.1.4 jiti: 2.4.2 + undici-types@6.20.0: {} + universalify@2.0.1: {} - unocss@66.0.0(postcss@8.5.3)(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)): + unocss@66.0.0(postcss@8.5.3)(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)): dependencies: - '@unocss/astro': 66.0.0(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/astro': 66.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) '@unocss/cli': 66.0.0 '@unocss/core': 66.0.0 '@unocss/postcss': 66.0.0(postcss@8.5.3) @@ -4993,9 +5445,9 @@ snapshots: '@unocss/transformer-compile-class': 66.0.0 '@unocss/transformer-directives': 66.0.0 '@unocss/transformer-variant-group': 66.0.0 - '@unocss/vite': 66.0.0(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/vite': 66.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3)) optionalDependencies: - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) transitivePeerDependencies: - postcss - supports-color @@ -5012,36 +5464,44 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + upper-case-first@2.0.2: + dependencies: + tslib: 2.8.1 + + upper-case@2.0.2: + dependencies: + tslib: 2.8.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 util-deprecate@1.0.2: {} - vite-plugin-cdn-import@1.0.1(rollup@4.34.8)(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): + vite-plugin-cdn-import@1.0.1(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): dependencies: rollup-plugin-external-globals: 0.10.0(rollup@4.34.8) - vite-plugin-externals: 0.6.2(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) + vite-plugin-externals: 0.6.2(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)) transitivePeerDependencies: - rollup - vite - vite-plugin-compression@0.5.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): + vite-plugin-compression@0.5.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): dependencies: chalk: 4.1.2 debug: 4.4.0 fs-extra: 10.1.0 - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) transitivePeerDependencies: - supports-color - vite-plugin-externals@0.6.2(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): + vite-plugin-externals@0.6.2(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): dependencies: acorn: 8.14.0 es-module-lexer: 0.4.1 fs-extra: 10.1.0 magic-string: 0.25.9 - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) vite-plugin-fake-server@2.2.0: dependencies: @@ -5053,7 +5513,18 @@ snapshots: vite-plugin-remove-console@2.2.0: {} - vite-plugin-vue-inspector@5.3.1(vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): + vite-plugin-style-import@2.0.0(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): + dependencies: + '@rollup/pluginutils': 4.2.1 + change-case: 4.1.2 + console: 0.7.2 + es-module-lexer: 0.9.3 + fs-extra: 10.1.0 + magic-string: 0.25.9 + pathe: 0.2.0 + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + + vite-plugin-vue-inspector@5.3.1(vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0)): dependencies: '@babel/core': 7.26.9 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.9) @@ -5064,16 +5535,17 @@ snapshots: '@vue/compiler-dom': 3.5.13 kolorist: 1.8.0 magic-string: 0.30.17 - vite: 6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) + vite: 6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0) transitivePeerDependencies: - supports-color - vite@6.1.1(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0): + vite@6.1.1(@types/node@22.13.10)(jiti@2.4.2)(sass@1.85.0)(terser@5.39.0): dependencies: esbuild: 0.24.2 postcss: 8.5.3 rollup: 4.34.8 optionalDependencies: + '@types/node': 22.13.10 fsevents: 2.3.3 jiti: 2.4.2 sass: 1.85.0 diff --git a/src/App.vue b/src/App.vue index a3ee60b..3b56c5f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,10 +6,10 @@ - diff --git a/src/api/server/request.ts b/src/api/server/request.ts index 72dae80..1da108c 100644 --- a/src/api/server/request.ts +++ b/src/api/server/request.ts @@ -44,7 +44,7 @@ service.interceptors.response.use( } // ElMessage.error(msg || '系统出错'); - return Promise.reject(msg || 'Error'); + return Promise.reject(response.data.message || 'Error'); }, (error: any) => { // 异常处理 diff --git a/src/api/server/requestMock.ts b/src/api/server/requestMock.ts index 795bb34..ee02fb6 100644 --- a/src/api/server/requestMock.ts +++ b/src/api/server/requestMock.ts @@ -44,7 +44,7 @@ service.interceptors.response.use( } // ElMessage.error(msg || '系统出错'); - return Promise.reject(msg || 'Error'); + return Promise.reject(response.data.message || 'Error'); }, (error: any) => { // 异常处理 diff --git a/src/main.ts b/src/main.ts index 60e247e..a6c8d4b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,7 +2,7 @@ import 'animate.css'; import '@unocss/reset/tailwind-compat.css'; import 'uno.css'; import 'virtual:unocss-devtools'; -import '@/assets/styles/global.scss'; +import './assets/styles/global.scss'; import { createApp } from 'vue'; diff --git a/src/router/index.ts b/src/router/index.ts index 1de4015..2067905 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -5,7 +5,7 @@ import error from '@/router/modules/error'; import remaining from '@/router/modules/remaining'; // 静态路由 -const routes: RouteRecordRaw[] = [...remaining, ...error]; +const routes: RouteRecordRaw[] = [...remaining, ...error] as RouteRecordRaw[]; const router = createRouter({ history: createWebHashHistory(), routes, diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index b8ab162..426613a 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -2,8 +2,9 @@ import type { RouteRecordRaw } from 'vue-router'; import Layout from '@/layout/index.vue'; import home from '@/router/modules/home'; +import type { RouteConfigsTable } from '@/types/router/Route'; -const routes: RouteRecordRaw[] = [ +const routes: RouteRecordRaw[] | RouteConfigsTable[] = [ { path: '/', name: 'layout', diff --git a/src/store/app.ts b/src/store/app.ts index 7e06e35..825fd9c 100644 --- a/src/store/app.ts +++ b/src/store/app.ts @@ -10,7 +10,7 @@ const useAppStore = defineStore('appStore', { }, getters: {}, actions: { - setBackground(background) { + setBackground(background: string) { if (isCSSColor(background)) { this.background = background; } else if (isPath(background)) { diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 2f8d892..7890df7 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -3,7 +3,7 @@ import { defineStore } from 'pinia'; import { user } from '@/api/test'; /** 用户信息 */ -const useUserStore = defineStore('userStore', { +export const useUserStore = defineStore('userStore', { state() { return { userinfo: {}, @@ -19,5 +19,3 @@ const useUserStore = defineStore('userStore', { }, }, }); - -export { useUserStore }; diff --git a/src/types/global.d.ts b/src/types/global.d.ts index 73fc7cd..e5e6f21 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -1,6 +1,6 @@ declare global { /* 环境便配置 */ - declare interface ViteEnv { + export declare interface ViteEnv { VITE_APP_TITLE: string; VITE_PORT: number; VITE_PUBLIC_PATH: string; diff --git a/src/types/router/Route.ts b/src/types/router/Route.ts index c718c54..193b306 100644 --- a/src/types/router/Route.ts +++ b/src/types/router/Route.ts @@ -4,15 +4,16 @@ import type { RouteComponent } from 'vue-router'; * @description 完整子路由的`meta`配置表 */ interface CustomizeRouteMeta { - title: string; - subtitle: string; - transition: string; + title?: string; + subtitle?: string; + transition?: string; + hidden?: boolean; } /** * @description 整体路由配置表(包括完整子路由) */ -interface RouteConfigsTable { +export interface RouteConfigsTable { /** 路由地址 `必填` */ path: string; /** 路由名字(保持唯一)`可选` */ @@ -25,5 +26,3 @@ interface RouteConfigsTable { /** 子路由配置项 */ children?: Array; } - -export { RouteConfigsTable }; diff --git a/src/utils/chart.ts b/src/utils/chart.ts index ef1eeea..f9bc446 100644 --- a/src/utils/chart.ts +++ b/src/utils/chart.ts @@ -1,11 +1,13 @@ -import { useEventListener } from '@vueuse/core'; +import { useDebounceFn, useEventListener } from '@vueuse/core'; import type { EChartsType } from 'echarts'; /** 通用重置图表样式 */ export const debounceChart = (myChart: EChartsType | undefined) => { - useEventListener(window, 'resize', () => { + const debounceFn = useDebounceFn(() => { myChart!.resize(); - }); + }, 500); + + useEventListener(window, 'resize', debounceFn); }; /** 数字格式化 */ diff --git a/src/utils/regexp/regexpBackground.ts b/src/utils/regexp/regexpBackground.ts index 85e053b..b613ad7 100644 --- a/src/utils/regexp/regexpBackground.ts +++ b/src/utils/regexp/regexpBackground.ts @@ -1,5 +1,5 @@ /** 判断是否是CSS颜色 */ -function isCSSColor(str) { +function isCSSColor(str: string) { // 匹配十六进制颜色(如 #fff, #ffffff) const hexColor = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/; @@ -16,7 +16,7 @@ function isCSSColor(str) { } /** 判断是否是相对路径或绝对路径 */ -function isPath(str) { +function isPath(str: string) { // 匹配相对路径(如 ./path, ../path, path/to/file) const relativePath = /^\.{0,2}\/[^\/].*$/; diff --git a/src/views/big-data/charts/left-middle.tsx b/src/views/big-data/charts/left-middle.tsx index d9f9903..9a7574c 100644 --- a/src/views/big-data/charts/left-middle.tsx +++ b/src/views/big-data/charts/left-middle.tsx @@ -98,10 +98,11 @@ export const ChartProgress = defineComponent({ ); }); - return () =>
; + return () =>
; }, }); +/** 更新图标数据 */ const updateChart = (myChart: Ref, props: any) => { myChart.value?.setOption({ series: [ diff --git a/src/views/business-supervision/charts/leftSidebarTop.ts b/src/views/business-supervision/charts/leftSidebarTop.ts index 6ae6bca..d0b64a2 100644 --- a/src/views/business-supervision/charts/leftSidebarTop.ts +++ b/src/views/business-supervision/charts/leftSidebarTop.ts @@ -45,7 +45,7 @@ option.value = { }; export const renderEcharts = (element: Ref) => { - const myChart = echarts.init(element.value, null, { + const myChart: any = echarts.init(element.value, null, { renderer: 'svg', devicePixelRatio: window.devicePixelRatio, }); diff --git a/src/views/business-supervision/components/business-supervision-content/components/content-middle.vue b/src/views/business-supervision/components/business-supervision-content/components/content-middle.vue index 51fbc8f..140626f 100644 --- a/src/views/business-supervision/components/business-supervision-content/components/content-middle.vue +++ b/src/views/business-supervision/components/business-supervision-content/components/content-middle.vue @@ -57,7 +57,7 @@ margin: 30px 0 0 0; width: 761px; height: 407px; - background: url('@/assets/images/business-supervision/bg/content/bg-middle.png ') no-repeat center; + background: url('@/assets/images/business-supervision/bg/content/bg-middle.png') no-repeat center; background-size: cover; li { diff --git a/src/views/smart-park/charts/right-sidebar.ts b/src/views/smart-park/charts/right-sidebar.ts index cc0b3ed..39dcfb4 100644 --- a/src/views/smart-park/charts/right-sidebar.ts +++ b/src/views/smart-park/charts/right-sidebar.ts @@ -1,12 +1,11 @@ import 'echarts/lib/component/dataZoom'; -import type { EChartsOption } from 'echarts'; import { type Ref, ref } from 'vue'; import echarts from '@/plugins/echarts'; import { debounceChart } from '@/utils/chart'; -const option = ref(); +const option = ref(); option.value = { backgroundColor: 'transparent', grid: { right: 10, left: 10, bottom: 20 }, @@ -97,7 +96,7 @@ option.value = { }; export const renderEcharts = (element: Ref) => { - const myChart = echarts.init(element.value, null, { + const myChart: any = echarts.init(element.value, null, { renderer: 'svg', devicePixelRatio: window.devicePixelRatio, }); diff --git a/tsconfig.json b/tsconfig.json index 2d73169..4e9983e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,50 +1,49 @@ { "compilerOptions": { - "target": "esnext", - "useDefineForClassFields": true, - "module": "esnext", - "moduleResolution": "node", - "strict": true, - "noLib": false, - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "lib": [ - "esnext", - "dom" - ], - "baseUrl": ".", - "allowJs": true, + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "bundler", + "strict": false, + "jsx": "preserve", + "importHelpers": true, + "experimentalDecorators": true, + "strictFunctionTypes": false, "skipLibCheck": true, + "esModuleInterop": true, + "isolatedModules": true, "allowSyntheticDefaultImports": true, "forceConsistentCasingInFileNames": true, - "jsx": "preserve", - "jsxFactory": "h", - "jsxImportSource": "vue", - "jsxFragmentFactory": "Fragment", + "sourceMap": true, + "baseUrl": ".", + "allowJs": false, + "resolveJsonModule": true, + "lib": [ + "ESNext", + "DOM" + ], "paths": { "@/*": [ "src/*" ] + // "@build/*": [ + // "build/*" + // ] }, "types": [ - "vite/client", - "unplugin-icons/types/vue", - "element-plus/global" + "node", + "vite/client" ] }, - "files": [], "include": [ "mock/*.ts", "src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", - "src/types/*.d.ts", - "vite.config.ts" + "vite.config.ts", + "src/**/*.d.ts" ], "exclude": [ "dist", - "**/*.js", "node_modules" ] } diff --git a/vite.config.ts b/vite.config.ts index 4479b11..bd73a1c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,7 +10,8 @@ import { server } from './build/server'; import { root, wrapperEnv } from './build/utils'; // https://vite.dev/config/ -export default defineConfig(({ command, mode, isSsrBuild, isPreview }) => { +// export default defineConfig(({ command, mode, isSsrBuild, isPreview }) => { +export default defineConfig(({ mode }) => { const env = wrapperEnv(mode, 'VITE'); return {