From ecdb34ce95215c0d05b4df36d7b393ee64b34f2a Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 14 Mar 2025 15:25:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A6=E4=BE=A7=E4=B8=AD=E9=97=B4?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/buildEnv.ts | 1 + build/info.ts | 9 +- build/plugins.ts | 10 +- build/utils.ts | 49 +++++ package.json | 1 - pnpm-lock.yaml | 173 ------------------ src/utils/chart.ts | 5 +- src/views/big-data/charts/left-middle.tsx | 32 +--- .../big-data-left/components/left-middle.vue | 8 +- src/views/big-data/index.vue | 2 +- .../content-list.vue => welcome-content.vue} | 79 +++++--- .../components/welcome-content/index.vue | 16 -- src/views/welcome/index.vue | 24 +-- 13 files changed, 131 insertions(+), 278 deletions(-) rename src/views/welcome/components/{welcome-content/content-list.vue => welcome-content.vue} (53%) delete mode 100644 src/views/welcome/components/welcome-content/index.vue diff --git a/build/buildEnv.ts b/build/buildEnv.ts index fa314f1..7c3c4ab 100644 --- a/build/buildEnv.ts +++ b/build/buildEnv.ts @@ -33,6 +33,7 @@ export const buildEnv = (): BuildOptions => { rollupOptions: { external: ['md-editor-v3', 'echarts'], input: { + // @ts-ignore index: pathResolve('../index.html', import.meta.url), }, // 静态资源分类打包 diff --git a/build/info.ts b/build/info.ts index 43380a2..da94b93 100644 --- a/build/info.ts +++ b/build/info.ts @@ -3,7 +3,7 @@ import dayjs, { type Dayjs } from 'dayjs'; import duration from 'dayjs/plugin/duration'; import gradientString from 'gradient-string'; -import { wrapperEnv } from './utils'; +import { logOutputSize, wrapperEnv } from './utils'; dayjs.extend(duration); @@ -22,7 +22,7 @@ http://localhost:${VITE_PORT}` ); }; -export const viteConsoleLog = (mode) => { +export const viteConsoleLog = (mode: string) => { const { VITE_PORT } = wrapperEnv(mode); let config: { command: string }; @@ -43,9 +43,12 @@ export const viteConsoleLog = (mode) => { if (config.command === 'build') { endTime = dayjs(new Date()); const format = dayjs.duration(endTime.diff(startTime)).format('mm分ss秒'); + console.log( boxen( - gradientString('cyan', 'magenta').multiline(`🎉 恭喜打包完成(总用时${format})`), + gradientString('cyan', 'magenta').multiline( + `🎉 恭喜打包完成(总用时${format})打包大小(${logOutputSize()})` + ), boxenOptions ) ); diff --git a/build/plugins.ts b/build/plugins.ts index 3045103..19e9f70 100644 --- a/build/plugins.ts +++ b/build/plugins.ts @@ -4,9 +4,9 @@ import vueJsx from '@vitejs/plugin-vue-jsx'; import { presetIcons } from 'unocss'; import UnoCSS from 'unocss/vite'; import type { PluginOption } from 'vite'; +// @ts-ignore 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'; @@ -42,14 +42,6 @@ export const plugins = (mode: string): PluginOption[] => { }), ], }), - createStyleImportPlugin({ - libs: [ - { - libraryName: 'vite-plugin-style-import', - resolveStyle: (name) => `@/assets/${name}`, - }, - ], - }), compressPack(mode), useMock(mode), ]; diff --git a/build/utils.ts b/build/utils.ts index 9580343..baabe97 100644 --- a/build/utils.ts +++ b/build/utils.ts @@ -1,10 +1,14 @@ import { dirname, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; +import fs from 'fs'; +import path from 'path'; import { visualizer } from 'rollup-plugin-visualizer'; import { loadEnv } from 'vite'; import viteCompression from 'vite-plugin-compression'; +import { buildEnv } from './buildEnv'; + export const root: string = process.cwd(); /** @@ -12,6 +16,7 @@ export const root: string = process.cwd(); * @param dir 路径片段,默认`build` * @param metaUrl 模块的完整`url`,如果在`build`目录外调用必传`import.meta.url` */ +// @ts-ignore export const pathResolve = (dir = '.', metaUrl = import.meta.url) => { // 当前文件目录的绝对路径 const currentFileDir = dirname(fileURLToPath(metaUrl)); @@ -67,3 +72,47 @@ export const compressPack = (mode: string) => { return VITE_COMPRESSION == 'gzip' ? viteCompression({ threshold: 1024000 }) : null; }; + +/** + * 计算打包后文件夹大小 + * @returns + */ +export const logOutputSize = (): string => { + const outDir = `../${buildEnv().outDir}`; + + function convertSize(size: number) { + const units: Array = ['byte', 'KB', 'MB', 'GB']; + + // 输入的单位是否存在 + let index = 0; + + while (size >= 1024) { + size /= 1024; + index++; + } + + return `${size.toFixed(2)} ${units[index]}`; + } + + // 计算文件夹字节大小 + function getFolderSize(folderPath: string) { + let size = 0; + + fs.readdirSync(folderPath).forEach((fileName: string) => { + const filePath = path.join(folderPath, fileName); + const stats = fs.statSync(filePath); + + if (stats.isFile()) { + size += stats.size; + } else if (stats.isDirectory()) { + size += getFolderSize(filePath); + } + }); + + return size; + } + + const folderSize = getFolderSize(path.resolve(__dirname, outDir)); + + return convertSize(folderSize); +}; diff --git a/package.json b/package.json index fc6f174..27d01b3 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,6 @@ "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 b51b851..294e293 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -186,9 +186,6 @@ importers: vite-plugin-compression: specifier: ^0.5.1 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) @@ -869,10 +866,6 @@ 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'} @@ -1368,9 +1361,6 @@ 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'} @@ -1378,9 +1368,6 @@ 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'} @@ -1389,9 +1376,6 @@ 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'} @@ -1438,12 +1422,6 @@ 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==} @@ -1530,9 +1508,6 @@ 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'} @@ -1580,9 +1555,6 @@ 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'} @@ -1892,9 +1864,6 @@ 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==} @@ -2070,9 +2039,6 @@ 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==} @@ -2150,9 +2116,6 @@ 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==} @@ -2205,9 +2168,6 @@ 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'} @@ -2216,15 +2176,9 @@ 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'} @@ -2245,9 +2199,6 @@ 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==} @@ -2438,9 +2389,6 @@ 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'} @@ -2481,9 +2429,6 @@ 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'} @@ -2710,12 +2655,6 @@ 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==} @@ -2742,11 +2681,6 @@ 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: @@ -3463,11 +3397,6 @@ 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 @@ -4057,21 +3986,10 @@ 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 @@ -4079,21 +3997,6 @@ 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 @@ -4140,14 +4043,6 @@ 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): @@ -4218,11 +4113,6 @@ 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 @@ -4260,8 +4150,6 @@ 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 @@ -4639,11 +4527,6 @@ 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: {} @@ -4785,10 +4668,6 @@ 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: @@ -4853,11 +4732,6 @@ snapshots: natural-compare@1.4.0: {} - 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: {} @@ -4909,11 +4783,6 @@ 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 @@ -4925,18 +4794,8 @@ 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: {} @@ -4950,8 +4809,6 @@ snapshots: path-type@4.0.0: {} - pathe@0.2.0: {} - pathe@1.1.2: {} pathe@2.0.3: {} @@ -5131,12 +4988,6 @@ 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 @@ -5187,11 +5038,6 @@ 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: @@ -5464,14 +5310,6 @@ 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 @@ -5513,17 +5351,6 @@ snapshots: vite-plugin-remove-console@2.2.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 diff --git a/src/utils/chart.ts b/src/utils/chart.ts index f9bc446..ecc275c 100644 --- a/src/utils/chart.ts +++ b/src/utils/chart.ts @@ -1,8 +1,9 @@ import { useDebounceFn, useEventListener } from '@vueuse/core'; -import type { EChartsType } from 'echarts'; + +import type echarts from '@/plugins/echarts'; /** 通用重置图表样式 */ -export const debounceChart = (myChart: EChartsType | undefined) => { +export const debounceChart = (myChart: echarts.ECharts | undefined) => { const debounceFn = useDebounceFn(() => { myChart!.resize(); }, 500); diff --git a/src/views/big-data/charts/left-middle.tsx b/src/views/big-data/charts/left-middle.tsx index 9a7574c..cd748e4 100644 --- a/src/views/big-data/charts/left-middle.tsx +++ b/src/views/big-data/charts/left-middle.tsx @@ -27,7 +27,7 @@ option.value = { series: [ { type: 'gauge', - title: { fontSize: 14, color: '#fff', offsetCenter: ['0%', '14%'] }, + title: { fontSize: '0.7em', color: '#fff', offsetCenter: ['0%', '14%'] }, startAngle: 90, endAngle: -270, pointer: { show: false }, @@ -36,23 +36,10 @@ option.value = { splitLine: { show: false, distance: 0, length: 10 }, axisTick: { show: false }, axisLabel: { show: false, distance: 50 }, - // data: [ - // { - // value: 80, - // name: '环比变化', - // detail: { valueAnimation: true, offsetCenter: ['0%', '-20%'] }, - // itemStyle: { - // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ - // { offset: 0, color: '#00CCD2' }, - // { offset: 1, color: '#00A2FF' }, - // ]), - // }, - // }, - // ], detail: { - width: 10, - height: 50, - fontSize: 14, + width: 40, + height: 40, + fontSize: '0.8em', fontWeight: 0, color: '#fff', formatter: '+{value}%', @@ -62,18 +49,15 @@ option.value = { }; /** 绘制图表 */ -export const renderEcharts: any = ( - myChart: Ref, - element: Ref -) => { +const renderEcharts: any = (myChart: Ref, element: Ref) => { myChart.value = echarts.init(element.value, null, { renderer: 'svg', devicePixelRatio: window.devicePixelRatio, - }) as any; - - debounceChart(myChart.value); + }); myChart.value!.setOption(option.value!); + + debounceChart(myChart.value); }; /* 封装组件 */ diff --git a/src/views/big-data/components/big-data-left/components/left-middle.vue b/src/views/big-data/components/big-data-left/components/left-middle.vue index a658d4f..d370ffd 100644 --- a/src/views/big-data/components/big-data-left/components/left-middle.vue +++ b/src/views/big-data/components/big-data-left/components/left-middle.vue @@ -41,14 +41,14 @@ onMounted(() => { { title: '经营总收入', amount: randomNumber(9999999), percent: randomNumber() }, { title: '经营总收入', amount: randomNumber(9999999), percent: randomNumber() }, ]; - }, 1000); + }, 2000); });