Commit 96c10d6c0fb46b56b0e74e09a8e20bcfc9f54cde

Authored by vben
1 parent d3780690

perf(menu): optimize layout menu

CHANGELOG.zh_CN.md
  1 +## Wip
  2 +
  3 +### ⚡ Performance Improvements
  4 +
  5 +- 菜单性能继续优化
  6 +
  7 +### 🎫 Chores
  8 +
  9 +- 删除菜单背景图
  10 +
1 11 ## 2.0.0-rc.8 (2020-11-2)
2 12  
3 13 ### ✨ Features
... ...
package.json
... ... @@ -22,7 +22,7 @@
22 22 },
23 23 "dependencies": {
24 24 "@iconify/iconify": "^2.0.0-rc.1",
25   - "ant-design-vue": "^2.0.0-beta.12",
  25 + "ant-design-vue": "^2.0.0-beta.13",
26 26 "apexcharts": "^3.22.0",
27 27 "axios": "^0.21.0",
28 28 "echarts": "^4.9.0",
... ...
report.20201101.112320.28808.0.001.json deleted 100644 → 0
1   -
2   -{
3   - "header": {
4   - "reportVersion": 1,
5   - "event": "Allocation failed - JavaScript heap out of memory",
6   - "trigger": "FatalError",
7   - "filename": "report.20201101.112320.28808.0.001.json",
8   - "dumpEventTime": "2020-11-01T11:23:20Z",
9   - "dumpEventTimeStamp": "1604201000746",
10   - "processId": 28808,
11   - "cwd": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0",
12   - "commandLine": [
13   - "/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
14   - "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/.bin/vite"
15   - ],
16   - "nodejsVersion": "v12.16.1",
17   - "wordSize": 64,
18   - "arch": "x64",
19   - "platform": "darwin",
20   - "componentVersions": {
21   - "node": "12.16.1",
22   - "v8": "7.8.279.23-node.31",
23   - "uv": "1.34.0",
24   - "zlib": "1.2.11",
25   - "brotli": "1.0.7",
26   - "ares": "1.15.0",
27   - "modules": "72",
28   - "nghttp2": "1.40.0",
29   - "napi": "5",
30   - "llhttp": "2.0.4",
31   - "http_parser": "2.9.3",
32   - "openssl": "1.1.1d",
33   - "cldr": "35.1",
34   - "icu": "64.2",
35   - "tz": "2019c",
36   - "unicode": "12.1"
37   - },
38   - "release": {
39   - "name": "node",
40   - "lts": "Erbium",
41   - "headersUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz",
42   - "sourceUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1.tar.gz"
43   - },
44   - "osName": "Darwin",
45   - "osRelease": "19.4.0",
46   - "osVersion": "Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64",
47   - "osMachine": "x86_64",
48   - "cpus": [
49   - {
50   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
51   - "speed": 2700,
52   - "user": 5704770,
53   - "nice": 0,
54   - "sys": 2626500,
55   - "idle": 18122690,
56   - "irq": 0
57   - },
58   - {
59   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
60   - "speed": 2700,
61   - "user": 679970,
62   - "nice": 0,
63   - "sys": 396880,
64   - "idle": 25355580,
65   - "irq": 0
66   - },
67   - {
68   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
69   - "speed": 2700,
70   - "user": 5384870,
71   - "nice": 0,
72   - "sys": 1845420,
73   - "idle": 19202190,
74   - "irq": 0
75   - },
76   - {
77   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
78   - "speed": 2700,
79   - "user": 632210,
80   - "nice": 0,
81   - "sys": 341020,
82   - "idle": 25459190,
83   - "irq": 0
84   - },
85   - {
86   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
87   - "speed": 2700,
88   - "user": 5005990,
89   - "nice": 0,
90   - "sys": 1559680,
91   - "idle": 19866790,
92   - "irq": 0
93   - },
94   - {
95   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
96   - "speed": 2700,
97   - "user": 608570,
98   - "nice": 0,
99   - "sys": 303150,
100   - "idle": 25520680,
101   - "irq": 0
102   - },
103   - {
104   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
105   - "speed": 2700,
106   - "user": 4671490,
107   - "nice": 0,
108   - "sys": 1357130,
109   - "idle": 20403830,
110   - "irq": 0
111   - },
112   - {
113   - "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
114   - "speed": 2700,
115   - "user": 589160,
116   - "nice": 0,
117   - "sys": 275960,
118   - "idle": 25567270,
119   - "irq": 0
120   - }
121   - ],
122   - "networkInterfaces": [
123   - {
124   - "name": "lo0",
125   - "internal": true,
126   - "mac": "00:00:00:00:00:00",
127   - "address": "127.0.0.1",
128   - "netmask": "255.0.0.0",
129   - "family": "IPv4"
130   - },
131   - {
132   - "name": "lo0",
133   - "internal": true,
134   - "mac": "00:00:00:00:00:00",
135   - "address": "::1",
136   - "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
137   - "family": "IPv6",
138   - "scopeid": 0
139   - },
140   - {
141   - "name": "lo0",
142   - "internal": true,
143   - "mac": "00:00:00:00:00:00",
144   - "address": "fe80::1",
145   - "netmask": "ffff:ffff:ffff:ffff::",
146   - "family": "IPv6",
147   - "scopeid": 1
148   - },
149   - {
150   - "name": "en0",
151   - "internal": false,
152   - "mac": "78:4f:43:93:8c:de",
153   - "address": "fe80::109b:445e:8bfe:6f75",
154   - "netmask": "ffff:ffff:ffff:ffff::",
155   - "family": "IPv6",
156   - "scopeid": 5
157   - },
158   - {
159   - "name": "en0",
160   - "internal": false,
161   - "mac": "78:4f:43:93:8c:de",
162   - "address": "10.10.4.96",
163   - "netmask": "255.255.0.0",
164   - "family": "IPv4"
165   - },
166   - {
167   - "name": "awdl0",
168   - "internal": false,
169   - "mac": "76:f7:aa:86:99:4a",
170   - "address": "fe80::74f7:aaff:fe86:994a",
171   - "netmask": "ffff:ffff:ffff:ffff::",
172   - "family": "IPv6",
173   - "scopeid": 13
174   - },
175   - {
176   - "name": "llw0",
177   - "internal": false,
178   - "mac": "76:f7:aa:86:99:4a",
179   - "address": "fe80::74f7:aaff:fe86:994a",
180   - "netmask": "ffff:ffff:ffff:ffff::",
181   - "family": "IPv6",
182   - "scopeid": 14
183   - },
184   - {
185   - "name": "vnic0",
186   - "internal": false,
187   - "mac": "00:1c:42:00:00:08",
188   - "address": "10.211.55.2",
189   - "netmask": "255.255.255.0",
190   - "family": "IPv4"
191   - },
192   - {
193   - "name": "vnic1",
194   - "internal": false,
195   - "mac": "00:1c:42:00:00:09",
196   - "address": "10.37.129.2",
197   - "netmask": "255.255.255.0",
198   - "family": "IPv4"
199   - },
200   - {
201   - "name": "vnic2",
202   - "internal": false,
203   - "mac": "00:1c:42:00:00:0a",
204   - "address": "192.168.137.2",
205   - "netmask": "255.255.255.0",
206   - "family": "IPv4"
207   - },
208   - {
209   - "name": "utun0",
210   - "internal": false,
211   - "mac": "00:00:00:00:00:00",
212   - "address": "fe80::eac7:e3c5:2e23:577b",
213   - "netmask": "ffff:ffff:ffff:ffff::",
214   - "family": "IPv6",
215   - "scopeid": 18
216   - },
217   - {
218   - "name": "utun1",
219   - "internal": false,
220   - "mac": "00:00:00:00:00:00",
221   - "address": "fe80::92ca:3b6c:3505:bb75",
222   - "netmask": "ffff:ffff:ffff:ffff::",
223   - "family": "IPv6",
224   - "scopeid": 19
225   - },
226   - {
227   - "name": "en5",
228   - "internal": false,
229   - "mac": "ac:de:48:00:11:22",
230   - "address": "fe80::aede:48ff:fe00:1122",
231   - "netmask": "ffff:ffff:ffff:ffff::",
232   - "family": "IPv6",
233   - "scopeid": 4
234   - },
235   - {
236   - "name": "en7",
237   - "internal": false,
238   - "mac": "00:e0:4c:68:03:12",
239   - "address": "fe80::1436:ff70:1fc:e9e8",
240   - "netmask": "ffff:ffff:ffff:ffff::",
241   - "family": "IPv6",
242   - "scopeid": 10
243   - },
244   - {
245   - "name": "en7",
246   - "internal": false,
247   - "mac": "00:e0:4c:68:03:12",
248   - "address": "192.168.32.33",
249   - "netmask": "255.255.255.0",
250   - "family": "IPv4"
251   - },
252   - {
253   - "name": "en8",
254   - "internal": false,
255   - "mac": "6a:fe:f7:b4:a1:38",
256   - "address": "fe80::4bb:1d2e:db16:dc3a",
257   - "netmask": "ffff:ffff:ffff:ffff::",
258   - "family": "IPv6",
259   - "scopeid": 20
260   - },
261   - {
262   - "name": "en8",
263   - "internal": false,
264   - "mac": "6a:fe:f7:b4:a1:38",
265   - "address": "172.20.10.5",
266   - "netmask": "255.255.255.240",
267   - "family": "IPv4"
268   - }
269   - ],
270   - "host": "ann.local"
271   - },
272   - "javascriptStack": {
273   - "message": "No stack.",
274   - "stack": [
275   - "Unavailable."
276   - ]
277   - },
278   - "nativeStack": [
279   - {
280   - "pc": "0x000000010015c5c2",
281   - "symbol": "report::TriggerNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, v8::Local<v8::String>) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
282   - },
283   - {
284   - "pc": "0x0000000100080dc8",
285   - "symbol": "node::OnFatalError(char const*, char const*) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
286   - },
287   - {
288   - "pc": "0x0000000100185167",
289   - "symbol": "v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
290   - },
291   - {
292   - "pc": "0x0000000100185103",
293   - "symbol": "v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
294   - },
295   - {
296   - "pc": "0x000000010030b2f5",
297   - "symbol": "v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
298   - },
299   - {
300   - "pc": "0x000000010030c9c4",
301   - "symbol": "v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
302   - },
303   - {
304   - "pc": "0x0000000100309837",
305   - "symbol": "v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
306   - },
307   - {
308   - "pc": "0x00000001003077fd",
309   - "symbol": "v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
310   - },
311   - {
312   - "pc": "0x0000000100312fba",
313   - "symbol": "v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
314   - },
315   - {
316   - "pc": "0x0000000100313041",
317   - "symbol": "v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
318   - },
319   - {
320   - "pc": "0x00000001002e035b",
321   - "symbol": "v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
322   - },
323   - {
324   - "pc": "0x0000000100618718",
325   - "symbol": "v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
326   - },
327   - {
328   - "pc": "0x0000000100950919",
329   - "symbol": "Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
330   - },
331   - {
332   - "pc": "0x00000001008fc271",
333   - "symbol": "Builtins_ExtractFastJSArray [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
334   - }
335   - ],
336   - "javascriptHeap": {
337   - "totalMemory": 2197811200,
338   - "totalCommittedMemory": 2188539296,
339   - "usedMemory": 2170225248,
340   - "availableMemory": 20428384,
341   - "memoryLimit": 2197815296,
342   - "heapSpaces": {
343   - "read_only_space": {
344   - "memorySize": 262144,
345   - "committedMemory": 33088,
346   - "capacity": 32808,
347   - "used": 32808,
348   - "available": 0
349   - },
350   - "new_space": {
351   - "memorySize": 33554432,
352   - "committedMemory": 24617648,
353   - "capacity": 16759296,
354   - "used": 13246416,
355   - "available": 3512880
356   - },
357   - "old_space": {
358   - "memorySize": 2065317888,
359   - "committedMemory": 2065256464,
360   - "capacity": 2062879320,
361   - "used": 2062727208,
362   - "available": 152112
363   - },
364   - "code_space": {
365   - "memorySize": 1740800,
366   - "committedMemory": 1696768,
367   - "capacity": 1591904,
368   - "used": 1591904,
369   - "available": 0
370   - },
371   - "map_space": {
372   - "memorySize": 6033408,
373   - "committedMemory": 6032800,
374   - "capacity": 1877280,
375   - "used": 1877280,
376   - "available": 0
377   - },
378   - "large_object_space": {
379   - "memorySize": 90853376,
380   - "committedMemory": 90853376,
381   - "capacity": 90746848,
382   - "used": 90746848,
383   - "available": 0
384   - },
385   - "code_large_object_space": {
386   - "memorySize": 49152,
387   - "committedMemory": 49152,
388   - "capacity": 2784,
389   - "used": 2784,
390   - "available": 0
391   - },
392   - "new_large_object_space": {
393   - "memorySize": 0,
394   - "committedMemory": 0,
395   - "capacity": 16759296,
396   - "used": 0,
397   - "available": 16759296
398   - }
399   - }
400   - },
401   - "resourceUsage": {
402   - "userCpuSeconds": 80.3311,
403   - "kernelCpuSeconds": 15.4548,
404   - "cpuConsumptionPercent": 16.7458,
405   - "maxRss": 2349800095744,
406   - "pageFaults": {
407   - "IORequired": 26,
408   - "IONotRequired": 1556354
409   - },
410   - "fsActivity": {
411   - "reads": 0,
412   - "writes": 0
413   - }
414   - },
415   - "libuv": [
416   - ],
417   - "environmentVariables": {
418   - "npm_package_scripts_log": "esno ./build/script/changelog.ts",
419   - "npm_package_devDependencies_lint_staged": "^10.5.0",
420   - "npm_package_devDependencies__purge_icons_generated": "^0.4.1",
421   - "npm_package_devDependencies_postcss_import": "^12.0.1",
422   - "npm_package_devDependencies_prettier": "^2.1.2",
423   - "npm_package_scripts_ls_lint": "npx ls-lint",
424   - "TERM_PROGRAM": "vscode",
425   - "npm_package_dependencies_zxcvbn": "^4.4.2",
426   - "NODE": "/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
427   - "npm_config_version_git_tag": "true",
428   - "npm_package_dependencies_axios": "^0.21.0",
429   - "npm_package_devDependencies_typescript": "^4.0.5",
430   - "npm_package_devDependencies_vite_plugin_mock": "^1.0.6",
431   - "npm_package_devDependencies_vite_plugin_pwa": "^0.1.3",
432   - "npm_package_homepage": "https://github.com/anncwb/vue-vben-admin",
433   - "NVM_CD_FLAGS": "-q",
434   - "INIT_CWD": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0",
435   - "npm_package_devDependencies_conventional_changelog_custom_config": "^0.3.1",
436   - "SHELL": "/bin/zsh",
437   - "TERM": "xterm-256color",
438   - "npm_package_dependencies_vditor": "^3.6.0",
439   - "npm_package_devDependencies_rimraf": "^3.0.2",
440   - "TMPDIR": "/var/folders/69/p74fhms10gq0tzw8gtqvqjfc0000gn/T/",
441   - "npm_config_email": "@ylz123456",
442   - "npm_config_init_license": "MIT",
443   - "npm_package_devDependencies_fs_extra": "^9.0.1",
444   - "npm_package_devDependencies_vue_eslint_parser": "^7.1.1",
445   - "TERM_PROGRAM_VERSION": "1.50.1",
446   - "npm_package_changelog_authorName": "false",
447   - "ORIGINAL_XDG_CURRENT_DESKTOP": "undefined",
448   - "npm_package_dependencies_vuex_module_decorators": "^1.0.1",
449   - "npm_package_devDependencies_rollup_plugin_analyzer": "^3.3.0",
450   - "npm_package_devDependencies_stylelint_order": "^4.1.0",
451   - "npm_config_home": "https://www.npmjs.org",
452   - "npm_config_registry": "https://registry.npmjs.org/",
453   - "npm_package_devDependencies_conventional_changelog_cli": "^2.1.0",
454   - "npm_package_devDependencies_yargs": "^16.1.0",
455   - "npm_package_devDependencies_commitizen": "^4.2.2",
456   - "npm_package_devDependencies_stylelint_config_standard": "^20.0.0",
457   - "npm_package_repository_url": "git+https://github.com/anncwb/vue-vben-admin.git",
458   - "ZSH": "/Users/annsion/.oh-my-zsh",
459   - "npm_package_scripts_report": "cross-env REPORT=true npm run build ",
460   - "npm_package_dependencies_xlsx": "^0.16.8",
461   - "npm_package_changelog_bugsUrl": "https://github.com/anncwb/vue-vben-admin/issues",
462   - "npm_package_readmeFilename": "README.en-US.md",
463   - "npm_config_python": "/usr/bin/python",
464   - "npm_package_description": "This branch is a 2.0 new branch which use vue3 to develop.",
465   - "USER": "annsion",
466   - "NVM_DIR": "/Users/annsion/.nvm",
467   - "npm_package_devDependencies_dotenv": "^8.2.0",
468   - "npm_package_license": "MIT",
469   - "CLASS_PATH": "/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/lib",
470   - "npm_package_scripts_build_no_cache": "yarn clean:cache && npm run build",
471   - "npm_package_dependencies_nprogress": "^0.2.0",
472   - "npm_package_dependencies_path_to_regexp": "^6.2.0",
473   - "npm_package_devDependencies__vuedx_typescript_plugin_vue": "^0.2.4-0",
474   - "npm_package_devDependencies_vite_plugin_html": "^1.0.0-beta.2",
475   - "npm_package_devDependencies__types_yargs": "^15.0.9",
476   - "SSH_AUTH_SOCK": "/private/tmp/com.apple.launchd.8OyPR83dMT/Listeners",
477   - "npm_package_devDependencies_eslint": "^7.12.0",
478   - "npm_package_devDependencies_less": "^3.12.2",
479   - "npm_package_changelog_authorEmail": "false",
480   - "__CF_USER_TEXT_ENCODING": "0x1F5:0x19:0x34",
481   - "npm_package_scripts_lint_stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
482   - "npm_package_devDependencies__typescript_eslint_eslint_plugin": "^4.6.0",
483   - "npm_package_husky_hooks_pre_commit": "ls-lint && lint-staged",
484   - "npm_execpath": "/usr/local/Cellar/yarn/1.21.1/libexec/bin/yarn.js",
485   - "npm_package_scripts_preview_dist": "esno ./build/script/preview.ts",
486   - "PAGER": "less",
487   - "npm_package_devDependencies_eslint_plugin_prettier": "^3.1.4",
488   - "LSCOLORS": "Gxfxcxdxbxegedabagacad",
489   - "npm_package_devDependencies__ls_lint_ls_lint": "^1.9.2",
490   - "npm_package_devDependencies__typescript_eslint_parser": "^4.6.0",
491   - "npm_package_devDependencies_koa_static": "^5.0.0",
492   - "npm_package_devDependencies__types_echarts": "^4.9.0",
493   - "npm_config_argv": "{\"remain\":[],\"cooked\":[\"run\",\"serve\"],\"original\":[\"serve\"]}",
494   - "PATH": "/var/folders/69/p74fhms10gq0tzw8gtqvqjfc0000gn/T/yarn--1604200427727-0.5334803764404132:/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/.bin:/Users/annsion/.config/yarn/link/node_modules/.bin:/Users/annsion/.nvm/versions/node/v12.16.1/libexec/lib/node_modules/npm/bin/node-gyp-bin:/Users/annsion/.nvm/versions/node/v12.16.1/lib/node_modules/npm/bin/node-gyp-bin:/Users/annsion/.nvm/versions/node/v12.16.1/bin/node_modules/npm/bin/node-gyp-bin:/Users/annsion/.nvm/versions/node/v12.16.1/bin:./usr/local/mongodb/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/mysql/bin:/Users/annsion/maven/apache-maven-3.6.1/bin:/usr/local/sbin:/usr/local/sonar-scanner/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin",
495   - "npm_config___registry_npm_taobao_org__always_auth": "",
496   - "npm_package_scripts_typecheck": "typecheck .",
497   - "npm_package_dependencies_vue": "^3.0.2",
498   - "_": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/.bin/cross-env",
499   - "npm_package_dependencies_ant_design_vue": "^2.0.0-beta.11",
500   - "npm_package_devDependencies__types_nprogress": "^0.2.0",
501   - "SONAR_SCANNER_HOME": "/usr/local/sonar-scanner",
502   - "PWD": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0",
503   - "npm_package_scripts_preview": "npm run build && esno ./build/script/preview.ts",
504   - "npm_package_bugs_url": "https://github.com/anncwb/vue-vben-admin/issues",
505   - "JAVA_HOME": "/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home",
506   - "npm_lifecycle_event": "serve",
507   - "npm_package_name": "vben-admin-2.0",
508   - "npm_package_repository_type": "git",
509   - "LANG": "zh_CN.UTF-8",
510   - "npm_package_devDependencies_stylelint_config_prettier": "^8.0.2",
511   - "npm_config_version_commit_hooks": "true",
512   - "npm_package_scripts_build": " rimraf dist && cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
513   - "npm_config_username": "ylz",
514   - "npm_package_scripts_lint_eslint": "eslint --fix --ext \"src/**/*.{vue,less,css,scss}\"",
515   - "npm_package_devDependencies_rollup_plugin_visualizer": "^4.1.2",
516   - "XPC_FLAGS": "0x0",
517   - "NODE_ENV": "development",
518   - "npm_config_bin_links": "true",
519   - "npm_package_devDependencies_stylelint": "^13.7.2",
520   - "npm_package_devDependencies_tasksfile": "^5.1.1",
521   - "npm_package_devDependencies__types_lodash_es": "^4.17.3",
522   - "npm_package_changelog_emojis": "true",
523   - "npm_package_engines_node": ">=10.16.1",
524   - "npm_package_dependencies_vue_i18n": "^9.0.0-beta.6",
525   - "npm_package_devDependencies_eslint_config_prettier": "^6.15.0",
526   - "npm_package_version": "2.0.0-rc.7",
527   - "npm_package_devDependencies__iconify_json": "^1.1.249",
528   - "XPC_SERVICE_NAME": "0",
529   - "npm_package_devDependencies_autoprefixer": "^9.8.6",
530   - "npm_package_devDependencies__types_koa_static": "^4.0.1",
531   - "HOME": "/Users/annsion",
532   - "SHLVL": "2",
533   - "M2_HOME": "/Users/annsion/maven/apache-maven-3.6.1",
534   - "npm_package_devDependencies__types_mockjs": "^1.0.3",
535   - "npm_package_devDependencies_eslint_plugin_vue": "^7.1.0",
536   - "VSCODE_GIT_ASKPASS_MAIN": "/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",
537   - "npm_config_scripts_prepend_node_path": "true",
538   - "npm_config_strict_ssl": "true",
539   - "npm_config_save_prefix": "^",
540   - "npm_package_scripts_serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite",
541   - "npm_config_version_git_message": "v%s",
542   - "npm_package_scripts_bootstrap": "yarn install",
543   - "npm_package_devDependencies__commitlint_cli": "^11.0.0",
544   - "npm_package_devDependencies_cross_env": "^7.0.2",
545   - "npm_package_devDependencies_husky": "^4.3.0",
546   - "npm_package_husky_hooks_commit_msg": "commitlint -E HUSKY_GIT_PARAMS",
547   - "npm_package_scripts_lint_prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
548   - "npm_package_dependencies_echarts": "^4.9.0",
549   - "NPM_CONFIG_PYTHON": "/usr/bin/python",
550   - "npm_config_disturl": "https://npm.taobao.org/dist",
551   - "npm_package_devDependencies_ts_node": "^9.0.0",
552   - "npm_package_dependencies_vite": "^1.0.0-rc.8",
553   - "npm_package_devDependencies_vite_plugin_purge_icons": "^0.4.4",
554   - "YARN_WRAP_OUTPUT": "false",
555   - "LOGNAME": "annsion",
556   - "LESS": "-R",
557   - "npm_package_scripts_build_site": "cross-env SITE=true npm run build ",
558   - "npm_lifecycle_script": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite",
559   - "PREFIX": "/usr/local",
560   - "npm_package_dependencies__iconify_iconify": "^2.0.0-rc.1",
561   - "npm_package_dependencies_lodash_es": "^4.17.15",
562   - "npm_package_dependencies_vuex": "^4.0.0-rc.1",
563   - "VSCODE_GIT_IPC_HANDLE": "/var/folders/69/p74fhms10gq0tzw8gtqvqjfc0000gn/T/vscode-git-8303872dd8.sock",
564   - "LC_CTYPE": "zh_CN.UTF-8",
565   - "npm_package_scripts_clean_cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite_opt_cache",
566   - "npm_package_dependencies_apexcharts": "^3.22.0",
567   - "npm_package_devDependencies__types_rollup_plugin_visualizer": "^2.6.0",
568   - "npm_package_devDependencies__types_fs_extra": "^9.0.2",
569   - "GITHUB_TOKEN": "f5003f41e66eff1e868635b2e5a78f412b1741ee",
570   - "NVM_BIN": "/Users/annsion/.nvm/versions/node/v12.16.1/bin",
571   - "npm_config_user_agent": "yarn/1.21.1 npm/? node/v12.16.1 darwin x64",
572   - "npm_config_ignore_scripts": "",
573   - "npm_config_version_git_sign": "",
574   - "npm_package_devDependencies__types_zxcvbn": "^4.4.0",
575   - "npm_package_devDependencies__vue_compiler_sfc": "^3.0.2",
576   - "npm_package_devDependencies_portfinder": "^1.0.28",
577   - "GIT_ASKPASS": "/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",
578   - "VSCODE_GIT_ASKPASS_NODE": "/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)",
579   - "npm_package_scripts_reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap",
580   - "npm_package_dependencies_mockjs": "^1.1.0",
581   - "OCI_INC_DIR": "/usr/local/oracle/instantclient/sdk/include",
582   - "npm_package_devDependencies__types_qrcode": "^1.3.5",
583   - "OCI_LIB_DIR": "/usr/local/oracle/instantclient",
584   - "npm_config_ignore_optional": "",
585   - "npm_config_init_version": "1.0.0",
586   - "npm_package_devDependencies__vuedx_typecheck": "^0.2.4-0",
587   - "npm_package_scripts_clean_lib": "npx rimraf node_modules",
588   - "npm_package_dependencies_vue_router": "^4.0.0-rc.1",
589   - "npm_package_devDependencies__commitlint_config_conventional": "^11.0.0",
590   - "npm_package_devDependencies_esno": "^0.2.4",
591   - "npm_config_version_tag_prefix": "v",
592   - "npm_package_dependencies_qrcode": "^1.4.4",
593   - "npm_node_execpath": "/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
594   - "COLORTERM": "truecolor",
595   - "VITE_USE_MOCK": "true",
596   - "VITE_PUBLIC_PATH": "/",
597   - "VITE_PROXY": "/api,http://localhost:3000",
598   - "VITE_DROP_CONSOLE": "false",
599   - "VITE_GLOB_API_URL": "/api",
600   - "VITE_GLOB_API_URL_PREFIX": "",
601   - "VITE_PORT": "3100",
602   - "VITE_GLOB_APP_TITLE": "Vben Admin",
603   - "VITE_GLOB_APP_SHORT_NAME": "vue_vben_admin_2x"
604   - },
605   - "userLimits": {
606   - "core_file_size_blocks": {
607   - "soft": 0,
608   - "hard": "unlimited"
609   - },
610   - "data_seg_size_kbytes": {
611   - "soft": "unlimited",
612   - "hard": "unlimited"
613   - },
614   - "file_size_blocks": {
615   - "soft": "unlimited",
616   - "hard": "unlimited"
617   - },
618   - "max_locked_memory_bytes": {
619   - "soft": "unlimited",
620   - "hard": "unlimited"
621   - },
622   - "max_memory_size_kbytes": {
623   - "soft": "unlimited",
624   - "hard": "unlimited"
625   - },
626   - "open_files": {
627   - "soft": 24576,
628   - "hard": "unlimited"
629   - },
630   - "stack_size_bytes": {
631   - "soft": 8388608,
632   - "hard": 67104768
633   - },
634   - "cpu_time_seconds": {
635   - "soft": "unlimited",
636   - "hard": "unlimited"
637   - },
638   - "max_user_processes": {
639   - "soft": 2784,
640   - "hard": 4176
641   - },
642   - "virtual_memory_kbytes": {
643   - "soft": "unlimited",
644   - "hard": "unlimited"
645   - }
646   - },
647   - "sharedObjects": [
648   - "/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
649   - "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation",
650   - "/usr/lib/libSystem.B.dylib",
651   - "/usr/lib/libc++.1.dylib",
652   - "/usr/lib/libobjc.A.dylib",
653   - "/usr/lib/libfakelink.dylib",
654   - "/usr/lib/libDiagnosticMessagesClient.dylib",
655   - "/usr/lib/libicucore.A.dylib",
656   - "/usr/lib/libz.1.dylib",
657   - "/usr/lib/libc++abi.dylib",
658   - "/usr/lib/system/libcache.dylib",
659   - "/usr/lib/system/libcommonCrypto.dylib",
660   - "/usr/lib/system/libcompiler_rt.dylib",
661   - "/usr/lib/system/libcopyfile.dylib",
662   - "/usr/lib/system/libcorecrypto.dylib",
663   - "/usr/lib/system/libdispatch.dylib",
664   - "/usr/lib/system/libdyld.dylib",
665   - "/usr/lib/system/libkeymgr.dylib",
666   - "/usr/lib/system/liblaunch.dylib",
667   - "/usr/lib/system/libmacho.dylib",
668   - "/usr/lib/system/libquarantine.dylib",
669   - "/usr/lib/system/libremovefile.dylib",
670   - "/usr/lib/system/libsystem_asl.dylib",
671   - "/usr/lib/system/libsystem_blocks.dylib",
672   - "/usr/lib/system/libsystem_c.dylib",
673   - "/usr/lib/system/libsystem_configuration.dylib",
674   - "/usr/lib/system/libsystem_coreservices.dylib",
675   - "/usr/lib/system/libsystem_darwin.dylib",
676   - "/usr/lib/system/libsystem_dnssd.dylib",
677   - "/usr/lib/system/libsystem_featureflags.dylib",
678   - "/usr/lib/system/libsystem_info.dylib",
679   - "/usr/lib/system/libsystem_m.dylib",
680   - "/usr/lib/system/libsystem_malloc.dylib",
681   - "/usr/lib/system/libsystem_networkextension.dylib",
682   - "/usr/lib/system/libsystem_notify.dylib",
683   - "/usr/lib/system/libsystem_sandbox.dylib",
684   - "/usr/lib/system/libsystem_secinit.dylib",
685   - "/usr/lib/system/libsystem_kernel.dylib",
686   - "/usr/lib/system/libsystem_platform.dylib",
687   - "/usr/lib/system/libsystem_pthread.dylib",
688   - "/usr/lib/system/libsystem_symptoms.dylib",
689   - "/usr/lib/system/libsystem_trace.dylib",
690   - "/usr/lib/system/libunwind.dylib",
691   - "/usr/lib/system/libxpc.dylib",
692   - "/System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib",
693   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices",
694   - "/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics",
695   - "/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText",
696   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO",
697   - "/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync",
698   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS",
699   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy",
700   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices",
701   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices",
702   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis",
703   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore",
704   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD",
705   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis",
706   - "/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight",
707   - "/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib",
708   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate",
709   - "/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface",
710   - "/usr/lib/libxml2.2.dylib",
711   - "/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork",
712   - "/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation",
713   - "/System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient",
714   - "/usr/lib/libcompression.dylib",
715   - "/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration",
716   - "/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay",
717   - "/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator",
718   - "/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit",
719   - "/System/Library/Frameworks/Metal.framework/Versions/A/Metal",
720   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders",
721   - "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport",
722   - "/System/Library/Frameworks/Security.framework/Versions/A/Security",
723   - "/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore",
724   - "/usr/lib/libbsm.0.dylib",
725   - "/usr/lib/liblzma.5.dylib",
726   - "/usr/lib/libauto.dylib",
727   - "/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration",
728   - "/usr/lib/libarchive.2.dylib",
729   - "/usr/lib/liblangid.dylib",
730   - "/usr/lib/libCRFSuite.dylib",
731   - "/usr/lib/libenergytrace.dylib",
732   - "/usr/lib/system/libkxld.dylib",
733   - "/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression",
734   - "/usr/lib/libcoretls.dylib",
735   - "/usr/lib/libcoretls_cfhelpers.dylib",
736   - "/usr/lib/libpam.2.dylib",
737   - "/usr/lib/libsqlite3.dylib",
738   - "/usr/lib/libxar.1.dylib",
739   - "/usr/lib/libbz2.1.0.dylib",
740   - "/usr/lib/libiconv.2.dylib",
741   - "/usr/lib/libcharset.1.dylib",
742   - "/usr/lib/libnetwork.dylib",
743   - "/usr/lib/libpcap.A.dylib",
744   - "/usr/lib/libapple_nghttp2.dylib",
745   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents",
746   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore",
747   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata",
748   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices",
749   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit",
750   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE",
751   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices",
752   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices",
753   - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList",
754   - "/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS",
755   - "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth",
756   - "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport",
757   - "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC",
758   - "/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP",
759   - "/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities",
760   - "/usr/lib/libmecabra.dylib",
761   - "/usr/lib/libmecab.dylib",
762   - "/usr/lib/libgermantok.dylib",
763   - "/usr/lib/libThaiTokenizer.dylib",
764   - "/usr/lib/libChineseTokenizer.dylib",
765   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage",
766   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib",
767   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib",
768   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib",
769   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib",
770   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib",
771   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib",
772   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib",
773   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib",
774   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib",
775   - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib",
776   - "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling",
777   - "/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji",
778   - "/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData",
779   - "/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon",
780   - "/usr/lib/libcmph.dylib",
781   - "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory",
782   - "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory",
783   - "/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS",
784   - "/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation",
785   - "/usr/lib/libutil.dylib",
786   - "/System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore",
787   - "/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement",
788   - "/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement",
789   - "/usr/lib/libxslt.1.dylib",
790   - "/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler",
791   - "/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment",
792   - "/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay",
793   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib",
794   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore",
795   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage",
796   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork",
797   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix",
798   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector",
799   - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray",
800   - "/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools",
801   - "/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary",
802   - "/System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics",
803   - "/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce",
804   - "/usr/lib/libMobileGestalt.dylib",
805   - "/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo",
806   - "/usr/lib/libIOReport.dylib",
807   - "/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage",
808   - "/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo",
809   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL",
810   - "/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer",
811   - "/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore",
812   - "/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL",
813   - "/usr/lib/libFosl_dynamic.dylib",
814   - "/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG",
815   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib",
816   - "/usr/lib/libate.dylib",
817   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib",
818   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib",
819   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib",
820   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib",
821   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib",
822   - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib",
823   - "/usr/lib/libexpat.1.dylib",
824   - "/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG",
825   - "/System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib",
826   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib",
827   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib",
828   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib",
829   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib",
830   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib",
831   - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib",
832   - "/usr/lib/libncurses.5.4.dylib",
833   - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI",
834   - "/usr/lib/libcups.2.dylib",
835   - "/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos",
836   - "/System/Library/Frameworks/GSS.framework/Versions/A/GSS",
837   - "/usr/lib/libresolv.9.dylib",
838   - "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal",
839   - "/System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib",
840   - "/usr/lib/libheimdal-asn1.dylib",
841   - "/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth",
842   - "/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio",
843   - "/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox",
844   - "/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices",
845   - "/System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore",
846   - "/System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk",
847   - "/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard",
848   - "/System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices",
849   - "/System/Library/PrivateFrameworks/PersistentConnection.framework/Versions/A/PersistentConnection",
850   - "/System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer",
851   - "/System/Library/PrivateFrameworks/CommonUtilities.framework/Versions/A/CommonUtilities",
852   - "/System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom",
853   - "/usr/lib/libAudioToolboxUtility.dylib",
854   - "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/fsevents/fsevents.node"
855   - ]
856   -}
857 0 \ No newline at end of file
src/assets/images/sidebar/dark-mini.png deleted 100644 → 0

8.35 KB

src/assets/images/sidebar/light-mini.png deleted 100644 → 0

8.72 KB

src/assets/images/sidebar/light.png deleted 100644 → 0

23.7 KB

src/components/Breadcrumb/Breadcrumb.vue
... ... @@ -35,9 +35,11 @@
35 35 @import (reference) '../../design/index.less';
36 36  
37 37 .breadcrumb {
  38 + .unselect();
  39 +
38 40 height: @header-height;
39 41 padding-right: 20px;
40   - font-size: 14px;
  42 + font-size: 13px;
41 43 line-height: @header-height;
42 44 // line-height: 1;
43 45  
... ...
src/components/Icon/index.tsx
... ... @@ -72,7 +72,7 @@ export default defineComponent({
72 72 onMounted(update);
73 73  
74 74 return () => (
75   - <div ref={elRef} class={[attrs.class, 'app-iconify']} style={unref(wrapStyleRef)} />
  75 + <div ref={elRef} class={[attrs.class, 'app-iconify anticon']} style={unref(wrapStyleRef)} />
76 76 );
77 77 },
78 78 });
... ...
src/components/Menu/src/BasicMenu.tsx
... ... @@ -2,21 +2,27 @@ import type { MenuState } from &#39;./types&#39;;
2 2 import type { Menu as MenuType } from '/@/router/types';
3 3  
4 4 import { computed, defineComponent, unref, reactive, toRef, watch, onMounted, ref } from 'vue';
5   -import { basicProps } from './props';
6 5 import { Menu } from 'ant-design-vue';
7   -import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum';
8   -import { menuStore } from '/@/store/modules/menu';
9   -import { getSlot } from '/@/utils/helper/tsxHelper';
10   -// import { ScrollContainer } from '/@/components/Container/index';
11 6 import SearchInput from './SearchInput.vue';
12   -import './index.less';
13   -import { menuHasChildren } from './helper';
14 7 import MenuContent from './MenuContent';
  8 +
  9 +import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum';
  10 +
  11 +import { menuStore } from '/@/store/modules/menu';
  12 +import { appStore } from '/@/store/modules/app';
  13 +
15 14 import { useSearchInput } from './useSearchInput';
16 15 import { useOpenKeys } from './useOpenKeys';
17 16 import { useRouter } from 'vue-router';
  17 +
18 18 import { isFunction } from '/@/utils/is';
  19 +import { getSlot } from '/@/utils/helper/tsxHelper';
  20 +import { menuHasChildren } from './helper';
  21 +
19 22 import { getCurrentParentPath } from '/@/router/menus';
  23 +
  24 +import { basicProps } from './props';
  25 +import './index.less';
20 26 export default defineComponent({
21 27 name: 'BasicMenu',
22 28 props: basicProps,
... ... @@ -69,7 +75,7 @@ export default defineComponent({
69 75 return {
70 76 height: `calc(100% - ${offset - 10}px)`,
71 77 position: 'relative',
72   - overflow: 'auto',
  78 + overflowY: 'auto',
73 79 };
74 80 });
75 81  
... ... @@ -77,26 +83,26 @@ export default defineComponent({
77 83 const transparentMenuClass = computed(() => {
78 84 const { type } = props;
79 85 const { mode } = menuState;
80   - if (
81   - [MenuTypeEnum.MIX, MenuTypeEnum.SIDEBAR].includes(type) &&
82   - mode !== MenuModeEnum.HORIZONTAL
83   - ) {
84   - return `basic-menu-bg__sidebar`;
85   - }
  86 + const cls: string[] = [];
86 87 if (
87 88 (type === MenuTypeEnum.TOP_MENU && mode === MenuModeEnum.HORIZONTAL) ||
88 89 props.appendClass
89 90 ) {
90   - return `basic-menu-bg__sidebar-hor`;
  91 + cls.push('basic-menu__sidebar-hor');
91 92 }
92   - return '';
  93 +
  94 + if (!props.isTop && props.isAppMenu && appStore.getProjectConfig.menuSetting.split) {
  95 + cls.push('basic-menu__second');
  96 + }
  97 + return cls;
93 98 });
94 99  
95 100 watch(
96 101 () => currentRoute.value.name,
97 102 (name: string) => {
98   - name !== 'Redirect' && handleMenuChange();
99   - getParentPath();
  103 + if (name === 'Redirect') return;
  104 + handleMenuChange();
  105 + props.isTop && appStore.getProjectConfig.menuSetting.split && getParentPath();
100 106 }
101 107 );
102 108  
... ... @@ -149,22 +155,14 @@ export default defineComponent({
149 155 }
150 156  
151 157 const showTitle = computed(() => {
152   - if (props.isTop) return true;
153   - if (!props.isAppMenu) return true;
154   - if (!props.collapsedShowTitle) {
155   - return !menuStore.getCollapsedState;
156   - }
157   - return true;
  158 + return props.collapsedShowTitle && menuStore.getCollapsedState;
158 159 });
159 160  
160 161 // render menu item
161 162 function renderMenuItem(menuList?: MenuType[], index = 1) {
162   - if (!menuList) {
163   - return;
164   - }
  163 + if (!menuList) return;
165 164 const { appendClass } = props;
166 165 const levelCls = `basic-menu-item__level${index} ${menuState.theme} `;
167   -
168 166 return menuList.map((menu) => {
169 167 if (!menu) {
170 168 return null;
... ... @@ -233,7 +231,7 @@ export default defineComponent({
233 231 class={[
234 232 'basic-menu',
235 233 props.collapsedShowTitle && 'collapsed-show-title',
236   - unref(transparentMenuClass),
  234 + ...unref(transparentMenuClass),
237 235 ]}
238 236 {...inlineCollapsedObj}
239 237 >
... ... @@ -247,6 +245,7 @@ export default defineComponent({
247 245 onMounted(async () => {
248 246 getParentPath();
249 247 });
  248 +
250 249 return () => {
251 250 const { getCollapsedState } = menuStore;
252 251 const { mode } = props;
... ... @@ -262,9 +261,8 @@ export default defineComponent({
262 261 onClick={handleInputClick}
263 262 collapsed={getCollapsedState}
264 263 />
265   - <section style={unref(getMenuWrapStyle)} class="basic-menu__wrap">
  264 + <section style={unref(getMenuWrapStyle)} class="basic-menu__content">
266 265 {renderMenu()}
267   - {/* <ScrollContainer>{() => renderMenu()}</ScrollContainer> */}
268 266 </section>
269 267 </section>
270 268 );
... ...
src/components/Menu/src/MenuContent.tsx
... ... @@ -11,14 +11,17 @@ export default defineComponent({
11 11 type: String as PropType<string>,
12 12 default: '',
13 13 },
  14 +
14 15 item: {
15 16 type: Object as PropType<MenuType>,
16 17 default: null,
17 18 },
  19 +
18 20 showTitle: {
19 21 type: Boolean as PropType<boolean>,
20 22 default: true,
21 23 },
  24 +
22 25 level: {
23 26 type: Number as PropType<number>,
24 27 default: 0,
... ... @@ -36,26 +39,27 @@ export default defineComponent({
36 39 if (!props.item) {
37 40 return null;
38 41 }
39   - const { showTitle, level } = props;
  42 + const { showTitle } = props;
40 43 const { name, icon } = props.item;
41 44 const searchValue = props.searchValue || '';
42 45 const index = name.indexOf(searchValue);
43 46  
44 47 const beforeStr = name.substr(0, index);
45 48 const afterStr = name.substr(index + searchValue.length);
46   - const show = level === 1 ? showTitle : true;
47   - return [
48   - renderIcon(icon!),
49   - index > -1 && searchValue ? (
50   - <span class={!show && 'hidden'}>
51   - {beforeStr}
52   - <span class={`basic-menu__keyword`}>{searchValue}</span>
53   - {afterStr}
54   - </span>
55   - ) : (
56   - <span class={!show && 'hidden'}>{name}</span>
57   - ),
58   - ];
  49 + return (
  50 + <>
  51 + {renderIcon(icon!)}
  52 + {index > -1 && searchValue ? (
  53 + <span class={showTitle ? 'show-title' : ''}>
  54 + {beforeStr}
  55 + <span class={`basic-menu__keyword`}>{searchValue}</span>
  56 + {afterStr}
  57 + </span>
  58 + ) : (
  59 + <span class={[showTitle ? 'show-title' : '']}>{name}</span>
  60 + )}
  61 + </>
  62 + );
59 63 };
60 64 },
61 65 });
... ...
src/components/Menu/src/SearchInput.vue
... ... @@ -5,7 +5,6 @@
5 5 class="menu-search-input__search"
6 6 allowClear
7 7 @change="handleChange"
8   - :disabled="collapsed"
9 8 />
10 9 </section>
11 10 </template>
... ... @@ -20,7 +19,7 @@
20 19 export default defineComponent({
21 20 name: 'BasicMenuSearchInput',
22 21 props: {
23   - // 是否展开,用于左侧菜单
  22 + // Whether to expand, used in the left menu
24 23 collapsed: {
25 24 type: Boolean as PropType<boolean>,
26 25 default: true,
... ... @@ -30,28 +29,27 @@
30 29 },
31 30 },
32 31 setup(props, { emit }) {
  32 + const [debounceEmitChange] = useDebounce(emitChange, 200);
  33 +
33 34 function emitChange(value?: string): void {
34 35 emit('change', value);
35 36 }
36   - const [debounceEmitChange] = useDebounce(emitChange, 200);
37   - /**
38   - * @description: 搜索
39   - */
  37 +
40 38 function handleChange(e: ChangeEvent): void {
41 39 const { collapsed } = props;
42   - if (collapsed) {
43   - return;
44   - }
  40 + if (collapsed) return;
45 41 debounceEmitChange(e.target.value);
46 42 }
47   - /**
48   - * @description: 点击时间
49   - */
  43 +
50 44 function handleClick(): void {
51 45 emit('click');
52 46 }
  47 +
53 48 const searchClass = computed(() => {
54   - return props.theme ? `menu-search-input__search--${props.theme}` : '';
  49 + const cls: string[] = [];
  50 + cls.push(props.theme ? `menu-search-input__search--${props.theme}` : '');
  51 + // cls.push(props.collapsed ? 'hide-search-icon' : '');
  52 + return cls;
55 53 });
56 54  
57 55 return { handleClick, searchClass, handleChange };
... ... @@ -66,26 +64,24 @@
66 64 @icon-color: #c0c4cc;
67 65  
68 66 .menu-search-input {
69   - margin: 12px 9px;
  67 + margin: 12px 8px;
  68 +
  69 + // &.hide-search-icon {
  70 + // .ant-input,
  71 + // .ant-input-suffix {
  72 + // opacity: 0;
  73 + // }
  74 + // }
70 75  
71 76 &__search--dark {
72 77 .ant-input-affix-wrapper,
73 78 .ant-input {
74 79 .set-bg();
75   -
76   - &:hover,
77   - &:focus {
78   - .hide-outline();
79   - }
80 80 }
81 81  
82 82 .ant-input-search-icon,
83 83 .ant-input-clear-icon {
84   - color: rgba(255, 255, 255, 0.6) !important;
85   - }
86   -
87   - .ant-input-clear-icon {
88   - color: rgba(255, 255, 255, 0.3) !important;
  84 + color: rgba(255, 255, 255, 0.4) !important;
89 85 }
90 86 }
91 87  
... ... @@ -94,13 +90,7 @@
94 90 .ant-input {
95 91 color: @text-color-base;
96 92 background: #fff;
97   - // border: 0;
98 93 outline: none;
99   -
100   - &:hover,
101   - &:focus {
102   - .hide-outline();
103   - }
104 94 }
105 95  
106 96 .ant-input-search-icon {
... ...
src/components/Menu/src/index.less
... ... @@ -2,14 +2,11 @@
2 2  
3 3 .active-style() {
4 4 color: @white;
5   - // background: @primary-color !important;
6 5 background: linear-gradient(
7 6 118deg,
8 7 rgba(@primary-color, 0.8),
9 8 rgba(@primary-color, 1)
10 9 ) !important;
11   - // border-radius: 2px;
12   - box-shadow: 0 0 4px 1px rgba(@primary-color, 0.7);
13 10 }
14 11  
15 12 .active-menu-style() {
... ... @@ -22,50 +19,52 @@
22 19 .basic-menu {
23 20 width: 100%;
24 21  
  22 + &-wrap {
  23 + height: 100%;
  24 + }
  25 +
  26 + // collapsed show title start
  27 + .show-title {
  28 + max-width: unset !important;
  29 + opacity: 1 !important;
  30 + }
  31 +
25 32 &.collapsed-show-title.ant-menu-inline-collapsed {
26 33 .basic-menu-item__level1 {
27 34 padding: 2px 0;
28 35 }
29 36  
  37 + & > li[role='menuitem']:not(.ant-menu-submenu),
30 38 & > li > .ant-menu-submenu-title {
31 39 display: flex;
32   - margin-top: 12px;
  40 + margin-top: 10px;
33 41 font-size: 12px;
34 42 flex-direction: column;
35   - line-height: 24px;
36 43 align-items: center;
37 44 }
38 45  
39   - & > li[role='menuitem']:not(.ant-menu-submenu) {
40   - display: flex;
41   - margin-top: 12px;
42   - font-size: 12px;
43   - line-height: 2;
44   - align-items: center;
45   - flex-direction: column;
46   -
47   - span {
48   - margin-top: 6px;
49   - }
  46 + & > li > .ant-menu-submenu-title {
  47 + line-height: 24px;
50 48 }
51 49 }
52 50  
53   - &__wrap {
  51 + // collapsed show title end
  52 +
  53 + // scrollbar -s tart
  54 + &__content {
54 55 /* 滚动槽 */
55 56 &::-webkit-scrollbar {
56   - width: 6px;
57   - height: 6px;
  57 + width: 4px;
  58 + height: 4px;
58 59 }
59 60  
60   - // TODO 滚动条样式-待修改
61 61 &::-webkit-scrollbar-track {
62 62 background: rgba(0, 0, 0, 0);
63 63 }
64 64  
65   - /* 滚动条滑块 */
66 65 &::-webkit-scrollbar-thumb {
67   - background: rgba(255, 255, 255, 0.3);
68   - border-radius: 4px;
  66 + background: rgba(255, 255, 255, 0.2);
  67 + border-radius: 3px;
69 68 box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
70 69 }
71 70  
... ... @@ -73,29 +72,10 @@
73 72 background: @border-color-dark;
74 73 }
75 74 }
  75 + // scrollbar end
76 76  
77   - .ant-menu-submenu:first-of-type {
78   - margin-top: 4px;
79   - }
80   -
81   - .ant-menu-submenu-title {
82   - margin-top: 0;
83   - }
84   -
85   - &-wrap {
86   - height: 100%;
87   - }
88   -
89   - .menu-item-icon {
90   - vertical-align: text-top;
91   - }
92   - // 透明化背景
93   - &-bg__sidebar {
94   - background-color: transparent;
95   - }
96   -
97   - &-bg__sidebar-hor {
98   - overflow: hidden;
  77 + &__sidebar-hor {
  78 + // overflow: hidden;
99 79  
100 80 &.ant-menu-horizontal {
101 81 display: flex;
... ... @@ -107,6 +87,13 @@
107 87 }
108 88  
109 89 &.ant-menu-light {
  90 + .basic-menu-item__level1 {
  91 + &.top-active-menu {
  92 + color: @primary-color;
  93 + border-bottom: 3px solid @primary-color;
  94 + }
  95 + }
  96 +
110 97 .ant-menu-item {
111 98 &.basic-menu-item__level1 {
112 99 height: @header-height;
... ... @@ -128,7 +115,6 @@
128 115 border-bottom: 3px solid @primary-color;
129 116 }
130 117  
131   - // 有子菜单
132 118 .ant-menu-submenu {
133 119 &:hover {
134 120 border-bottom: 3px solid @primary-color;
... ... @@ -144,30 +130,44 @@
144 130 &.ant-menu-dark {
145 131 background: transparent;
146 132  
  133 + .ant-menu-submenu:hover,
  134 + .ant-menu-item-open,
  135 + .ant-menu-submenu-open,
  136 + .ant-menu-item-selected,
  137 + .ant-menu-submenu-selected,
  138 + .ant-menu-item:hover,
  139 + .ant-menu-item-active,
  140 + .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
  141 + .ant-menu-submenu-active,
  142 + .ant-menu-submenu-title:hover {
  143 + color: #fff;
  144 + background: @top-menu-active-bg-color !important;
  145 + }
  146 +
147 147 .ant-menu-item:hover,
148 148 .ant-menu-item-active,
149 149 .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
150 150 .ant-menu-submenu-active,
151 151 .ant-menu-submenu-title:hover {
152 152 background: @top-menu-active-bg-color;
153   - // border-radius: 6px 6px 0 0;
154 153 }
155 154  
156 155 .basic-menu-item__level1 {
157   - &.ant-menu-item-selected,
158   - &.ant-menu-submenu-selected {
  156 + background: transparent;
  157 +
  158 + &.top-active-menu {
  159 + color: @white;
159 160 background: @top-menu-active-bg-color;
160   - // border-radius: 6px 6px 0 0;
  161 + border-radius: 2px 2px 0 0;
161 162 }
162   - }
163 163  
164   - .ant-menu-item {
165   - &.basic-menu-item__level1 {
166   - height: @header-height;
167   - line-height: @header-height;
  164 + &.ant-menu-item-selected,
  165 + &.ant-menu-submenu-selected {
  166 + background: @top-menu-active-bg-color !important;
168 167 }
169 168 }
170   - // 有子菜单
  169 +
  170 + .ant-menu-item,
171 171 .ant-menu-submenu {
172 172 &.basic-menu-item__level1,
173 173 .ant-menu-submenu-title {
... ... @@ -178,24 +178,27 @@
178 178 }
179 179 }
180 180 }
181   - // 重置菜单项行高
182   - .ant-menu-item,
183   - .ant-menu-sub.ant-menu-inline > .ant-menu-item,
184   - .ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
185   - height: @app-menu-item-height;
186   - margin: 0;
187   - line-height: @app-menu-item-height;
  181 +
  182 + .ant-menu-item {
  183 + transition: unset;
188 184 }
189 185  
190   - &.ant-menu-dark:not(.basic-menu-bg__sidebar-hor) {
191   - .active-menu-style();
  186 + &.ant-menu-dark:not(.basic-menu__sidebar-hor):not(.basic-menu__second) {
  187 + // Reset menu item row height
  188 + .ant-menu-item,
  189 + .ant-menu-sub.ant-menu-inline > .ant-menu-item,
  190 + .ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
  191 + height: @app-menu-item-height;
  192 + margin: 0;
  193 + line-height: @app-menu-item-height;
  194 + }
192 195 }
193 196  
194 197 // 层级样式
195   - &.ant-menu-dark {
196   - // .ant-menu-item {
197   - // transition: unset;
198   - // }
  198 + &.ant-menu-dark:not(.basic-menu__sidebar-hor) {
  199 + overflow-x: hidden;
  200 + background: @first-menu-item-dark-bg-color;
  201 + .active-menu-style();
199 202  
200 203 .ant-menu-item.ant-menu-item-selected.basic-menu-menu-item__level1,
201 204 .ant-menu-submenu-selected.basic-menu-menu-item__level1 {
... ... @@ -203,76 +206,44 @@
203 206 }
204 207  
205 208 .basic-menu-item__level1 {
206   - margin-bottom: 0;
  209 + background-color: @first-menu-item-dark-bg-color;
207 210  
208 211 > .ant-menu-sub > li {
209 212 background-color: @sub-menu-item-dark-bg-color;
210 213 }
211   -
212   - &.top-active-menu {
213   - color: @white;
214   - background: @top-menu-active-bg-color;
215   - border-radius: 6px 6px 0 0;
216   - }
217 214 }
218 215  
219   - // 2级菜单
220   -
221 216 .basic-menu-item__level2:not(.ant-menu-item-selected),
222 217 .ant-menu-sub {
223 218 background-color: @sub-menu-item-dark-bg-color;
224 219 }
225 220  
226   - .basic-menu-item__level2 {
227   - margin-bottom: 0;
228   - }
229   - // 3级菜单
230   - .basic-menu-item__level3,
231   - .basic-menu__popup {
232   - margin-bottom: 0;
233   - }
234   -
235 221 .basic-menu-item__level3:not(.ant-menu-item-selected) {
236 222 background-color: @children-menu-item-dark-bg-color;
237 223 }
238 224  
239 225 .ant-menu-submenu-title {
240   - // line-height: @app-menu-item-height;
241 226 display: flex;
242 227 height: @app-menu-item-height;
243   - margin: 0;
  228 + // margin: 0;
244 229 align-items: center;
245 230 }
246 231  
247 232 &.ant-menu-inline-collapsed {
248   - .ant-menu-item-selected {
249   - background: unset !important;
250   - box-shadow: none;
251   - }
252   -
253 233 .ant-menu-submenu-selected,
254 234 .ant-menu-item-selected {
255   - .active-style();
  235 + background: darken(@first-menu-item-dark-bg-color, 6%) !important;
256 236 }
257 237 }
258 238 }
259 239  
260   - &.ant-menu-light {
  240 + &.ant-menu-light:not(.basic-menu__sidebar-hor) {
261 241 overflow-x: hidden;
262 242 border-right: none;
263 243  
264   - .basic-menu-item__level1 {
265   - &.top-active-menu {
266   - color: @primary-color;
267   - border-bottom: 3px solid @primary-color;
268   - }
269   - }
270   -
271   - &:not(.ant-menu-horizontal) {
272   - .ant-menu-item-selected {
273   - background: fade(@primary-color, 18%);
274   - }
275   - }
  244 + // .ant-menu-item-selected {
  245 + // background: fade(@primary-color, 18%);
  246 + // }
276 247  
277 248 .ant-menu-item.ant-menu-item-selected.basic-menu-menu-item__level1,
278 249 .ant-menu-submenu-selected.basic-menu-menu-item__level1 {
... ... @@ -289,6 +260,20 @@
289 260 .ant-menu-item.ant-menu-item-selected {
290 261 position: relative;
291 262 }
  263 +
  264 + &.basic-menu__second.ant-menu-inline-collapsed:not(.basic-menu__sidebar-hor) {
  265 + // Reset menu item row height
  266 + .ant-menu-item,
  267 + .ant-menu-sub.ant-menu-inline > .ant-menu-item,
  268 + .ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
  269 + display: flex;
  270 + height: @app-menu-item-height * 1.4;
  271 + padding: 6px 0 !important;
  272 + margin: 0;
  273 + line-height: @app-menu-item-height;
  274 + align-items: center;
  275 + }
  276 + }
292 277 }
293 278  
294 279 // 触发器样式
... ... @@ -322,3 +307,24 @@
322 307 .active-menu-style();
323 308 }
324 309 }
  310 +
  311 +.hide-title {
  312 + .ant-menu-inline-collapsed > .ant-menu-item,
  313 + .ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,
  314 + .ant-menu-inline-collapsed
  315 + > .ant-menu-item-group
  316 + > .ant-menu-item-group-list
  317 + > .ant-menu-submenu
  318 + > .ant-menu-submenu-title,
  319 + .ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
  320 + padding-right: 20px !important;
  321 + padding-left: 20px !important;
  322 + }
  323 +
  324 + .ant-menu-inline-collapsed {
  325 + .basic-menu-item__level1 {
  326 + display: flex;
  327 + justify-content: center;
  328 + }
  329 + }
  330 +}
... ...
src/design/ant/btn.less
1 1 // button重置
2 2 .ant-btn {
3   - &.ant-btn-success:not(.ant-btn-link),
4   - &.ant-btn-error:not(.ant-btn-link),
5   - &.ant-btn-warning:not(.ant-btn-link),
6   - &.ant-btn-primary:not(.ant-btn-link) {
7   - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
8   - }
  3 + // &.ant-btn-success:not(.ant-btn-link),
  4 + // &.ant-btn-error:not(.ant-btn-link),
  5 + // &.ant-btn-warning:not(.ant-btn-link),
  6 + // &.ant-btn-primary:not(.ant-btn-link) {
  7 + // box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
  8 + // }
9 9  
10 10 &-primary {
11 11 color: @white;
... ...
src/design/color.less
... ... @@ -67,9 +67,9 @@
67 67 @first-menu-item-dark-bg-color: #273352;
68 68  
69 69 // 2级菜单黑暗背景色
70   -@sub-menu-item-dark-bg-color: #4f6088;
  70 +@sub-menu-item-dark-bg-color: #314268;
71 71 // 3级菜单黑暗背景色
72   -@children-menu-item-dark-bg-color: #314268;
  72 +@children-menu-item-dark-bg-color: #4f6088;
73 73  
74 74 // top-menu
75 75 @top-menu-active-bg-color: #273352;
... ...
src/design/public.less
1 1 /* 滚动槽 */
2 2 ::-webkit-scrollbar {
3   - width: 8px;
4   - height: 8px;
  3 + width: 6px;
  4 + height: 6px;
5 5 }
6 6  
7 7 // TODO 滚动条样式-待修改
8   -// ::-webkit-scrollbar-track {
9   -// // background: rgba(0, 0, 0, 0.06);
10   -// // border-radius: 2px;
11   -// // box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
12   -// }
  8 +::-webkit-scrollbar-track {
  9 + background: rgba(0, 0, 0, 0.05);
  10 +}
13 11  
14 12 /* 滚动条滑块 */
15 13 ::-webkit-scrollbar-thumb {
16   - background: @disabled-color;
  14 + background: rgba(0, 0, 0, 0.2);
17 15 border-radius: 4px;
18 16 box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
19 17 }
... ...
src/design/var/index.less
... ... @@ -12,7 +12,7 @@
12 12 @logo-width: 36px;
13 13  
14 14 //
15   -@sider-drag-z-index: 200;
  15 +@side-drag-z-index: 200;
16 16 @page-loading-z-index: 10000;
17 17  
18 18 // app menu
... ...
src/layouts/default/LayoutBreadcrumb.tsx
... ... @@ -75,7 +75,7 @@ export default defineComponent({
75 75 }
76 76  
77 77 return () => (
78   - <Breadcrumb class="layout-breadcrumb">
  78 + <Breadcrumb class={['layout-breadcrumb', unref(itemList).length === 0 ? 'hidden' : '']}>
79 79 {() => (
80 80 <TransitionGroup name="breadcrumb">
81 81 {() => {
... ...
src/layouts/default/LayoutMenu.tsx
... ... @@ -109,8 +109,22 @@ export default defineComponent({
109 109 // 菜单分割模式-left
110 110 if (splitType === MenuSplitTyeEnum.LEFT) {
111 111 const children = await getChildrenMenus(parentPath);
112   - if (!children) return;
  112 + if (!children) {
  113 + appStore.commitProjectConfigState({
  114 + menuSetting: {
  115 + show: false,
  116 + },
  117 + });
  118 + flatMenusRef.value = [];
  119 + menusRef.value = [];
  120 + return;
  121 + }
113 122 const flatChildren = await getFlatChildrenMenus(children);
  123 + appStore.commitProjectConfigState({
  124 + menuSetting: {
  125 + show: true,
  126 + },
  127 + });
114 128 flatMenusRef.value = flatChildren;
115 129 menusRef.value = children;
116 130 }
... ...
src/layouts/default/LayoutSideBar.tsx
... ... @@ -6,10 +6,9 @@ import { menuStore } from &#39;/@/store/modules/menu&#39;;
6 6  
7 7 // import darkMiniIMg from '/@/assets/images/sidebar/dark-mini.png';
8 8 // import lightMiniImg from '/@/assets/images/sidebar/light-mini.png';
9   -import darkImg from '/@/assets/images/sidebar/dark.png';
10 9 // import lightImg from '/@/assets/images/sidebar/light.png';
11 10 import { appStore } from '/@/store/modules/app';
12   -import { MenuModeEnum, MenuSplitTyeEnum, MenuThemeEnum } from '/@/enums/menuEnum';
  11 +import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
13 12 import { SIDE_BAR_MINI_WIDTH, SIDE_BAR_SHOW_TIT_MINI_WIDTH } from '/@/enums/appEnum';
14 13 import { useDebounce } from '/@/hooks/core/useDebounce';
15 14 import LayoutMenu from './LayoutMenu';
... ... @@ -34,26 +33,6 @@ export default defineComponent({
34 33 return collapsedShowTitle ? SIDE_BAR_SHOW_TIT_MINI_WIDTH : SIDE_BAR_MINI_WIDTH;
35 34 });
36 35  
37   - // 根据展开状态设置背景图片
38   - const getStyle = computed((): any => {
39   - // const collapse = unref(collapseRef);
40   -
41   - const theme = unref(getProjectConfigRef).menuSetting.theme;
42   - if (theme === MenuThemeEnum.LIGHT) {
43   - // bg = lightImg;
44   - return {};
45   - }
46   - let bg = '';
47   - if (theme === MenuThemeEnum.DARK) {
48   - // bg = collapse ? darkMiniIMg : darkImg;
49   - bg = darkImg;
50   - }
51   -
52   - return {
53   - 'background-image': `url(${bg})`,
54   - };
55   - });
56   -
57 36 function onCollapseChange(val: boolean) {
58 37 if (initRef.value) {
59 38 collapseRef.value = val;
... ... @@ -182,7 +161,6 @@ export default defineComponent({
182 161 class="layout-sidebar"
183 162 ref={sideRef}
184 163 onBreakpoint={handleBreakpoint}
185   - style={unref(getStyle)}
186 164 >
187 165 {{
188 166 trigger: () => <SideBarTrigger />,
... ...
src/layouts/default/UserDropdown.tsx
... ... @@ -26,14 +26,12 @@ export default defineComponent({
26 26 return { realName, desc };
27 27 });
28 28  
29   - /**
30   - * @description: 退出登录
31   - */
  29 + // login out
32 30 function handleLoginOut() {
33 31 userStore.confirmLoginOut();
34 32 }
35 33  
36   - // 打开文档
  34 + // open doc
37 35 function openDoc() {
38 36 window.open(DOC_URL, '__blank');
39 37 }
... ...
src/layouts/default/index.less
... ... @@ -66,6 +66,10 @@
66 66 .layout-sidebar {
67 67 background-size: 100% 100%;
68 68  
  69 + &.ant-layout-sider-dark {
  70 + background: @first-menu-item-dark-bg-color;
  71 + }
  72 +
69 73 &:not(.ant-layout-sider-dark) {
70 74 border-right: 1px solid @border-color-light;
71 75 }
... ... @@ -79,7 +83,7 @@
79 83 position: absolute;
80 84 top: 0;
81 85 right: -2px;
82   - z-index: @sider-drag-z-index;
  86 + z-index: @side-drag-z-index;
83 87 width: 2px;
84 88 height: 100%;
85 89 cursor: col-resize;
... ... @@ -378,17 +382,3 @@
378 382 height: 36px;
379 383 line-height: 36px;
380 384 }
381   -
382   -.hide-title {
383   - .ant-menu-inline-collapsed > .ant-menu-item,
384   - .ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,
385   - .ant-menu-inline-collapsed
386   - > .ant-menu-item-group
387   - > .ant-menu-item-group-list
388   - > .ant-menu-submenu
389   - > .ant-menu-submenu-title,
390   - .ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
391   - padding-right: 20px !important;
392   - padding-left: 20px !important;
393   - }
394   -}
... ...
src/layouts/default/index.tsx
... ... @@ -51,9 +51,9 @@ export default defineComponent({
51 51  
52 52 const showSideBarRef = computed(() => {
53 53 const {
54   - menuSetting: { show, mode },
  54 + menuSetting: { show, mode, split },
55 55 } = unref(getProjectConfigRef);
56   - return show && mode !== MenuModeEnum.HORIZONTAL && !unref(getFullContent);
  56 + return split || (show && mode !== MenuModeEnum.HORIZONTAL && !unref(getFullContent));
57 57 });
58 58  
59 59 // Get project configuration
... ... @@ -73,6 +73,7 @@ export default defineComponent({
73 73 showSettingButton,
74 74 multiTabsSetting: { show: showTabs },
75 75 headerSetting: { fixed },
  76 + menuSetting: { split, show },
76 77 } = unref(getProjectConfigRef);
77 78  
78 79 const fixedHeaderCls = fixed
... ... @@ -80,6 +81,8 @@ export default defineComponent({
80 81 : '';
81 82  
82 83 const { isLock } = getLockInfo;
  84 +
  85 + const showSideBar = split ? show : true;
83 86 return (
84 87 <Layout class="default-layout relative">
85 88 {() => (
... ... @@ -95,7 +98,7 @@ export default defineComponent({
95 98 <Layout>
96 99 {() => (
97 100 <>
98   - {unref(showSideBarRef) && <LayoutSideBar />}
  101 + {unref(showSideBarRef) && <LayoutSideBar class={showSideBar ? '' : 'hidden'} />}
99 102 <Layout class={[`default-layout__content`, fixedHeaderCls]}>
100 103 {() => (
101 104 <>
... ...
src/layouts/page/index.tsx
... ... @@ -38,14 +38,16 @@ export default defineComponent({
38 38 <RouterView>
39 39 {{
40 40 default: ({ Component, route }: { Component: any; route: RouteLocation }) => {
41   - // 已经位于tab内的不再显示动画
  41 + // No longer show animations that are already in the tab
42 42 const name = route.meta.inTab ? 'fade' : null;
  43 +
  44 + // TODO add key?
43 45 const Content = openCache ? (
44 46 <KeepAlive max={max} include={cacheTabs}>
45   - <Component {...route.params} />
  47 + <Component />
46 48 </KeepAlive>
47 49 ) : (
48   - <Component {...route.params} />
  50 + <Component />
49 51 );
50 52 return openRouterTransition ? (
51 53 <Transition
... ...
src/layouts/page/useTransition.ts
1   -import { onUnmounted } from 'vue';
2 1 import { appStore } from '/@/store/modules/app';
  2 +import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
3 3 export function useTransition() {
4 4 function handleAfterEnter() {
5 5 const { openRouterTransition, openPageLoading } = appStore.getProjectConfig;
6 6 if (!openRouterTransition || !openPageLoading) return;
7   - // 路由切换动画结束之后关闭loading
  7 + // Close loading after the route switching animation ends
8 8 appStore.setPageLoadingAction(false);
9 9 }
10 10  
11   - onUnmounted(() => {
  11 + tryOnUnmounted(() => {
12 12 handleAfterEnter();
13 13 stop();
14 14 });
  15 +
15 16 return {
16 17 handleAfterEnter,
17 18 on: {
... ...
src/settings/projectSetting.ts
... ... @@ -49,7 +49,7 @@ const setting: ProjectConfig = {
49 49 // 折叠菜单时候是否显示菜单名
50 50 collapsedShowTitle: false,
51 51 // 是否可拖拽
52   - hasDrag: true,
  52 + hasDrag: false,
53 53 // 是否显示
54 54 show: true,
55 55 // 是否显示搜索框
... ...
src/setup/ant-design-vue/index.ts
... ... @@ -3,7 +3,7 @@
3 3 import type { App } from 'vue';
4 4  
5 5 import { Form, Input, Row, Col } from 'ant-design-vue';
6   -import 'ant-design-vue/dist/antd.less';
  6 +import 'ant-design-vue/dist/antd.css';
7 7  
8 8 import './spin';
9 9  
... ...