feat: 左侧中间完成
This commit is contained in:
parent
b1e6814b31
commit
ecdb34ce95
|
@ -33,6 +33,7 @@ export const buildEnv = (): BuildOptions => {
|
|||
rollupOptions: {
|
||||
external: ['md-editor-v3', 'echarts'],
|
||||
input: {
|
||||
// @ts-ignore
|
||||
index: pathResolve('../index.html', import.meta.url),
|
||||
},
|
||||
// 静态资源分类打包
|
||||
|
|
|
@ -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
|
||||
)
|
||||
);
|
||||
|
|
|
@ -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),
|
||||
];
|
||||
|
|
|
@ -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<string> = ['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);
|
||||
};
|
||||
|
|
|
@ -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": {
|
||||
|
|
173
pnpm-lock.yaml
173
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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<EChartsType | undefined>,
|
||||
element: Ref<HTMLDivElement | undefined>
|
||||
) => {
|
||||
const renderEcharts: any = (myChart: Ref<echarts.ECharts>, element: Ref<HTMLDivElement>) => {
|
||||
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);
|
||||
};
|
||||
|
||||
/* 封装组件 */
|
||||
|
|
|
@ -41,14 +41,14 @@ onMounted(() => {
|
|||
{ title: '经营总收入', amount: randomNumber(9999999), percent: randomNumber() },
|
||||
{ title: '经营总收入', amount: randomNumber(9999999), percent: randomNumber() },
|
||||
];
|
||||
}, 1000);
|
||||
}, 2000);
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="big-data__sidebar-item h-[389px]">
|
||||
<div class="flex-x-between">
|
||||
<h1 class="big-data__sidebar-title">规模效益</h1>
|
||||
<h1 class="big-data__sidebar-title">本年经营收入</h1>
|
||||
<span class="big-data__sidebar-title-describe">截止时间至2021年6月</span>
|
||||
</div>
|
||||
|
||||
|
@ -84,8 +84,8 @@ li {
|
|||
position: absolute;
|
||||
top: -10px;
|
||||
right: -5px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
|
|
|
@ -9,7 +9,7 @@ import BigDataRight from '@/views/big-data/components/big-data-right/index.vue';
|
|||
const appStore = useAppStore();
|
||||
|
||||
onBeforeMount(async () => {
|
||||
appStore.setBackground('#04072F');
|
||||
appStore.setBackground('../assets/images/common/bg/bg-secondary.png');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -5,31 +5,66 @@ const router = useRouter();
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<ul class="welcome__content-list">
|
||||
<li @click="router.push('/smart-park')">
|
||||
<img alt="car" src="@/assets/images/welcome/icon/center/car.png" />
|
||||
<span>智慧停车</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="distribution" src="@/assets/images/welcome/icon/center/distribution.png" />
|
||||
<span>智慧配送</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="muck" src="@/assets/images/welcome/icon/center/muck.png" />
|
||||
<span>智慧渣土</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="clean-city" src="@/assets/images/welcome/icon/center/clean-city.png" />
|
||||
<span>智慧洁城</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="lamp" src="@/assets/images/welcome/icon/center/lamp.png" />
|
||||
<span>智慧路灯</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="welcome__content">
|
||||
<div class="welcome__content-inner">
|
||||
<p>
|
||||
<img alt="welcome-bg" src="@/assets/images/welcome/icon/welcome.png" />
|
||||
<i>xxxx</i>
|
||||
你好 欢迎使用xxxxxxxzz
|
||||
</p>
|
||||
</div>
|
||||
<ul class="welcome__content-list">
|
||||
<li @click="router.push('/smart-park')">
|
||||
<img alt="car" src="@/assets/images/welcome/icon/center/car.png" />
|
||||
<span>智慧停车</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="distribution" src="@/assets/images/welcome/icon/center/distribution.png" />
|
||||
<span>智慧配送</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="muck" src="@/assets/images/welcome/icon/center/muck.png" />
|
||||
<span>智慧渣土</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="clean-city" src="@/assets/images/welcome/icon/center/clean-city.png" />
|
||||
<span>智慧洁城</span>
|
||||
</li>
|
||||
<li>
|
||||
<img alt="lamp" src="@/assets/images/welcome/icon/center/lamp.png" />
|
||||
<span>智慧路灯</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.welcome__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
|
||||
&-inner {
|
||||
margin: 156px 0 0 0;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
|
||||
i {
|
||||
color: var(--color-primary-secondary);
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
width: 239px;
|
||||
height: 34px;
|
||||
}
|
||||
}
|
||||
|
||||
.welcome__content-list {
|
||||
display: flex;
|
||||
align-items: center;
|
|
@ -1,16 +0,0 @@
|
|||
<script lang="ts" setup>
|
||||
import ContentList from '@/views/welcome/components/welcome-content/content-list.vue';
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex-y-around">
|
||||
<div class="mt-[158px]">
|
||||
<p>
|
||||
<img alt="welcome-bg" src="@/assets/images/welcome/icon/welcome.png" />
|
||||
<i>xxxx</i>
|
||||
你好 欢迎使用xxxxxxxzz
|
||||
</p>
|
||||
</div>
|
||||
<content-list />
|
||||
</div>
|
||||
</template>
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts" setup>
|
||||
import WelcomeContent from '@/views/welcome/components/welcome-content/index.vue';
|
||||
import WelcomeContent from '@/views/welcome/components/welcome-content.vue';
|
||||
import WelcomeFooter from '@/views/welcome/components/welcome-footer.vue';
|
||||
</script>
|
||||
|
||||
|
@ -16,27 +16,5 @@ import WelcomeFooter from '@/views/welcome/components/welcome-footer.vue';
|
|||
height: 100%;
|
||||
background: url('@/assets/images/welcome/bg/bg-particle.png') no-repeat center;
|
||||
background-size: cover;
|
||||
|
||||
&__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
|
||||
p {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
|
||||
i {
|
||||
color: var(--color-primary-secondary);
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
width: 239px;
|
||||
height: 34px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue