提交 96c10d6c 编写于 作者: V vben

perf(menu): optimize layout menu

上级 d3780690
## Wip
### ⚡ Performance Improvements
- 菜单性能继续优化
### 🎫 Chores
- 删除菜单背景图
## 2.0.0-rc.8 (2020-11-2)
### ✨ Features
......
{
"header": {
"reportVersion": 1,
"event": "Allocation failed - JavaScript heap out of memory",
"trigger": "FatalError",
"filename": "report.20201101.112320.28808.0.001.json",
"dumpEventTime": "2020-11-01T11:23:20Z",
"dumpEventTimeStamp": "1604201000746",
"processId": 28808,
"cwd": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0",
"commandLine": [
"/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
"/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/.bin/vite"
],
"nodejsVersion": "v12.16.1",
"wordSize": 64,
"arch": "x64",
"platform": "darwin",
"componentVersions": {
"node": "12.16.1",
"v8": "7.8.279.23-node.31",
"uv": "1.34.0",
"zlib": "1.2.11",
"brotli": "1.0.7",
"ares": "1.15.0",
"modules": "72",
"nghttp2": "1.40.0",
"napi": "5",
"llhttp": "2.0.4",
"http_parser": "2.9.3",
"openssl": "1.1.1d",
"cldr": "35.1",
"icu": "64.2",
"tz": "2019c",
"unicode": "12.1"
},
"release": {
"name": "node",
"lts": "Erbium",
"headersUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz",
"sourceUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1.tar.gz"
},
"osName": "Darwin",
"osRelease": "19.4.0",
"osVersion": "Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64",
"osMachine": "x86_64",
"cpus": [
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 5704770,
"nice": 0,
"sys": 2626500,
"idle": 18122690,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 679970,
"nice": 0,
"sys": 396880,
"idle": 25355580,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 5384870,
"nice": 0,
"sys": 1845420,
"idle": 19202190,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 632210,
"nice": 0,
"sys": 341020,
"idle": 25459190,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 5005990,
"nice": 0,
"sys": 1559680,
"idle": 19866790,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 608570,
"nice": 0,
"sys": 303150,
"idle": 25520680,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 4671490,
"nice": 0,
"sys": 1357130,
"idle": 20403830,
"irq": 0
},
{
"model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
"speed": 2700,
"user": 589160,
"nice": 0,
"sys": 275960,
"idle": 25567270,
"irq": 0
}
],
"networkInterfaces": [
{
"name": "lo0",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "127.0.0.1",
"netmask": "255.0.0.0",
"family": "IPv4"
},
{
"name": "lo0",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "::1",
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
"family": "IPv6",
"scopeid": 0
},
{
"name": "lo0",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "fe80::1",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 1
},
{
"name": "en0",
"internal": false,
"mac": "78:4f:43:93:8c:de",
"address": "fe80::109b:445e:8bfe:6f75",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 5
},
{
"name": "en0",
"internal": false,
"mac": "78:4f:43:93:8c:de",
"address": "10.10.4.96",
"netmask": "255.255.0.0",
"family": "IPv4"
},
{
"name": "awdl0",
"internal": false,
"mac": "76:f7:aa:86:99:4a",
"address": "fe80::74f7:aaff:fe86:994a",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 13
},
{
"name": "llw0",
"internal": false,
"mac": "76:f7:aa:86:99:4a",
"address": "fe80::74f7:aaff:fe86:994a",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 14
},
{
"name": "vnic0",
"internal": false,
"mac": "00:1c:42:00:00:08",
"address": "10.211.55.2",
"netmask": "255.255.255.0",
"family": "IPv4"
},
{
"name": "vnic1",
"internal": false,
"mac": "00:1c:42:00:00:09",
"address": "10.37.129.2",
"netmask": "255.255.255.0",
"family": "IPv4"
},
{
"name": "vnic2",
"internal": false,
"mac": "00:1c:42:00:00:0a",
"address": "192.168.137.2",
"netmask": "255.255.255.0",
"family": "IPv4"
},
{
"name": "utun0",
"internal": false,
"mac": "00:00:00:00:00:00",
"address": "fe80::eac7:e3c5:2e23:577b",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 18
},
{
"name": "utun1",
"internal": false,
"mac": "00:00:00:00:00:00",
"address": "fe80::92ca:3b6c:3505:bb75",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 19
},
{
"name": "en5",
"internal": false,
"mac": "ac:de:48:00:11:22",
"address": "fe80::aede:48ff:fe00:1122",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 4
},
{
"name": "en7",
"internal": false,
"mac": "00:e0:4c:68:03:12",
"address": "fe80::1436:ff70:1fc:e9e8",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 10
},
{
"name": "en7",
"internal": false,
"mac": "00:e0:4c:68:03:12",
"address": "192.168.32.33",
"netmask": "255.255.255.0",
"family": "IPv4"
},
{
"name": "en8",
"internal": false,
"mac": "6a:fe:f7:b4:a1:38",
"address": "fe80::4bb:1d2e:db16:dc3a",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 20
},
{
"name": "en8",
"internal": false,
"mac": "6a:fe:f7:b4:a1:38",
"address": "172.20.10.5",
"netmask": "255.255.255.240",
"family": "IPv4"
}
],
"host": "ann.local"
},
"javascriptStack": {
"message": "No stack.",
"stack": [
"Unavailable."
]
},
"nativeStack": [
{
"pc": "0x000000010015c5c2",
"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]"
},
{
"pc": "0x0000000100080dc8",
"symbol": "node::OnFatalError(char const*, char const*) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x0000000100185167",
"symbol": "v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x0000000100185103",
"symbol": "v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x000000010030b2f5",
"symbol": "v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x000000010030c9c4",
"symbol": "v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x0000000100309837",
"symbol": "v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x00000001003077fd",
"symbol": "v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x0000000100312fba",
"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]"
},
{
"pc": "0x0000000100313041",
"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]"
},
{
"pc": "0x00000001002e035b",
"symbol": "v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x0000000100618718",
"symbol": "v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x0000000100950919",
"symbol": "Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
},
{
"pc": "0x00000001008fc271",
"symbol": "Builtins_ExtractFastJSArray [/Users/annsion/.nvm/versions/node/v12.16.1/bin/node]"
}
],
"javascriptHeap": {
"totalMemory": 2197811200,
"totalCommittedMemory": 2188539296,
"usedMemory": 2170225248,
"availableMemory": 20428384,
"memoryLimit": 2197815296,
"heapSpaces": {
"read_only_space": {
"memorySize": 262144,
"committedMemory": 33088,
"capacity": 32808,
"used": 32808,
"available": 0
},
"new_space": {
"memorySize": 33554432,
"committedMemory": 24617648,
"capacity": 16759296,
"used": 13246416,
"available": 3512880
},
"old_space": {
"memorySize": 2065317888,
"committedMemory": 2065256464,
"capacity": 2062879320,
"used": 2062727208,
"available": 152112
},
"code_space": {
"memorySize": 1740800,
"committedMemory": 1696768,
"capacity": 1591904,
"used": 1591904,
"available": 0
},
"map_space": {
"memorySize": 6033408,
"committedMemory": 6032800,
"capacity": 1877280,
"used": 1877280,
"available": 0
},
"large_object_space": {
"memorySize": 90853376,
"committedMemory": 90853376,
"capacity": 90746848,
"used": 90746848,
"available": 0
},
"code_large_object_space": {
"memorySize": 49152,
"committedMemory": 49152,
"capacity": 2784,
"used": 2784,
"available": 0
},
"new_large_object_space": {
"memorySize": 0,
"committedMemory": 0,
"capacity": 16759296,
"used": 0,
"available": 16759296
}
}
},
"resourceUsage": {
"userCpuSeconds": 80.3311,
"kernelCpuSeconds": 15.4548,
"cpuConsumptionPercent": 16.7458,
"maxRss": 2349800095744,
"pageFaults": {
"IORequired": 26,
"IONotRequired": 1556354
},
"fsActivity": {
"reads": 0,
"writes": 0
}
},
"libuv": [
],
"environmentVariables": {
"npm_package_scripts_log": "esno ./build/script/changelog.ts",
"npm_package_devDependencies_lint_staged": "^10.5.0",
"npm_package_devDependencies__purge_icons_generated": "^0.4.1",
"npm_package_devDependencies_postcss_import": "^12.0.1",
"npm_package_devDependencies_prettier": "^2.1.2",
"npm_package_scripts_ls_lint": "npx ls-lint",
"TERM_PROGRAM": "vscode",
"npm_package_dependencies_zxcvbn": "^4.4.2",
"NODE": "/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
"npm_config_version_git_tag": "true",
"npm_package_dependencies_axios": "^0.21.0",
"npm_package_devDependencies_typescript": "^4.0.5",
"npm_package_devDependencies_vite_plugin_mock": "^1.0.6",
"npm_package_devDependencies_vite_plugin_pwa": "^0.1.3",
"npm_package_homepage": "https://github.com/anncwb/vue-vben-admin",
"NVM_CD_FLAGS": "-q",
"INIT_CWD": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0",
"npm_package_devDependencies_conventional_changelog_custom_config": "^0.3.1",
"SHELL": "/bin/zsh",
"TERM": "xterm-256color",
"npm_package_dependencies_vditor": "^3.6.0",
"npm_package_devDependencies_rimraf": "^3.0.2",
"TMPDIR": "/var/folders/69/p74fhms10gq0tzw8gtqvqjfc0000gn/T/",
"npm_config_email": "@ylz123456",
"npm_config_init_license": "MIT",
"npm_package_devDependencies_fs_extra": "^9.0.1",
"npm_package_devDependencies_vue_eslint_parser": "^7.1.1",
"TERM_PROGRAM_VERSION": "1.50.1",
"npm_package_changelog_authorName": "false",
"ORIGINAL_XDG_CURRENT_DESKTOP": "undefined",
"npm_package_dependencies_vuex_module_decorators": "^1.0.1",
"npm_package_devDependencies_rollup_plugin_analyzer": "^3.3.0",
"npm_package_devDependencies_stylelint_order": "^4.1.0",
"npm_config_home": "https://www.npmjs.org",
"npm_config_registry": "https://registry.npmjs.org/",
"npm_package_devDependencies_conventional_changelog_cli": "^2.1.0",
"npm_package_devDependencies_yargs": "^16.1.0",
"npm_package_devDependencies_commitizen": "^4.2.2",
"npm_package_devDependencies_stylelint_config_standard": "^20.0.0",
"npm_package_repository_url": "git+https://github.com/anncwb/vue-vben-admin.git",
"ZSH": "/Users/annsion/.oh-my-zsh",
"npm_package_scripts_report": "cross-env REPORT=true npm run build ",
"npm_package_dependencies_xlsx": "^0.16.8",
"npm_package_changelog_bugsUrl": "https://github.com/anncwb/vue-vben-admin/issues",
"npm_package_readmeFilename": "README.en-US.md",
"npm_config_python": "/usr/bin/python",
"npm_package_description": "This branch is a 2.0 new branch which use vue3 to develop.",
"USER": "annsion",
"NVM_DIR": "/Users/annsion/.nvm",
"npm_package_devDependencies_dotenv": "^8.2.0",
"npm_package_license": "MIT",
"CLASS_PATH": "/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/lib",
"npm_package_scripts_build_no_cache": "yarn clean:cache && npm run build",
"npm_package_dependencies_nprogress": "^0.2.0",
"npm_package_dependencies_path_to_regexp": "^6.2.0",
"npm_package_devDependencies__vuedx_typescript_plugin_vue": "^0.2.4-0",
"npm_package_devDependencies_vite_plugin_html": "^1.0.0-beta.2",
"npm_package_devDependencies__types_yargs": "^15.0.9",
"SSH_AUTH_SOCK": "/private/tmp/com.apple.launchd.8OyPR83dMT/Listeners",
"npm_package_devDependencies_eslint": "^7.12.0",
"npm_package_devDependencies_less": "^3.12.2",
"npm_package_changelog_authorEmail": "false",
"__CF_USER_TEXT_ENCODING": "0x1F5:0x19:0x34",
"npm_package_scripts_lint_stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
"npm_package_devDependencies__typescript_eslint_eslint_plugin": "^4.6.0",
"npm_package_husky_hooks_pre_commit": "ls-lint && lint-staged",
"npm_execpath": "/usr/local/Cellar/yarn/1.21.1/libexec/bin/yarn.js",
"npm_package_scripts_preview_dist": "esno ./build/script/preview.ts",
"PAGER": "less",
"npm_package_devDependencies_eslint_plugin_prettier": "^3.1.4",
"LSCOLORS": "Gxfxcxdxbxegedabagacad",
"npm_package_devDependencies__ls_lint_ls_lint": "^1.9.2",
"npm_package_devDependencies__typescript_eslint_parser": "^4.6.0",
"npm_package_devDependencies_koa_static": "^5.0.0",
"npm_package_devDependencies__types_echarts": "^4.9.0",
"npm_config_argv": "{\"remain\":[],\"cooked\":[\"run\",\"serve\"],\"original\":[\"serve\"]}",
"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",
"npm_config___registry_npm_taobao_org__always_auth": "",
"npm_package_scripts_typecheck": "typecheck .",
"npm_package_dependencies_vue": "^3.0.2",
"_": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/.bin/cross-env",
"npm_package_dependencies_ant_design_vue": "^2.0.0-beta.11",
"npm_package_devDependencies__types_nprogress": "^0.2.0",
"SONAR_SCANNER_HOME": "/usr/local/sonar-scanner",
"PWD": "/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0",
"npm_package_scripts_preview": "npm run build && esno ./build/script/preview.ts",
"npm_package_bugs_url": "https://github.com/anncwb/vue-vben-admin/issues",
"JAVA_HOME": "/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home",
"npm_lifecycle_event": "serve",
"npm_package_name": "vben-admin-2.0",
"npm_package_repository_type": "git",
"LANG": "zh_CN.UTF-8",
"npm_package_devDependencies_stylelint_config_prettier": "^8.0.2",
"npm_config_version_commit_hooks": "true",
"npm_package_scripts_build": " rimraf dist && cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
"npm_config_username": "ylz",
"npm_package_scripts_lint_eslint": "eslint --fix --ext \"src/**/*.{vue,less,css,scss}\"",
"npm_package_devDependencies_rollup_plugin_visualizer": "^4.1.2",
"XPC_FLAGS": "0x0",
"NODE_ENV": "development",
"npm_config_bin_links": "true",
"npm_package_devDependencies_stylelint": "^13.7.2",
"npm_package_devDependencies_tasksfile": "^5.1.1",
"npm_package_devDependencies__types_lodash_es": "^4.17.3",
"npm_package_changelog_emojis": "true",
"npm_package_engines_node": ">=10.16.1",
"npm_package_dependencies_vue_i18n": "^9.0.0-beta.6",
"npm_package_devDependencies_eslint_config_prettier": "^6.15.0",
"npm_package_version": "2.0.0-rc.7",
"npm_package_devDependencies__iconify_json": "^1.1.249",
"XPC_SERVICE_NAME": "0",
"npm_package_devDependencies_autoprefixer": "^9.8.6",
"npm_package_devDependencies__types_koa_static": "^4.0.1",
"HOME": "/Users/annsion",
"SHLVL": "2",
"M2_HOME": "/Users/annsion/maven/apache-maven-3.6.1",
"npm_package_devDependencies__types_mockjs": "^1.0.3",
"npm_package_devDependencies_eslint_plugin_vue": "^7.1.0",
"VSCODE_GIT_ASKPASS_MAIN": "/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",
"npm_config_scripts_prepend_node_path": "true",
"npm_config_strict_ssl": "true",
"npm_config_save_prefix": "^",
"npm_package_scripts_serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite",
"npm_config_version_git_message": "v%s",
"npm_package_scripts_bootstrap": "yarn install",
"npm_package_devDependencies__commitlint_cli": "^11.0.0",
"npm_package_devDependencies_cross_env": "^7.0.2",
"npm_package_devDependencies_husky": "^4.3.0",
"npm_package_husky_hooks_commit_msg": "commitlint -E HUSKY_GIT_PARAMS",
"npm_package_scripts_lint_prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
"npm_package_dependencies_echarts": "^4.9.0",
"NPM_CONFIG_PYTHON": "/usr/bin/python",
"npm_config_disturl": "https://npm.taobao.org/dist",
"npm_package_devDependencies_ts_node": "^9.0.0",
"npm_package_dependencies_vite": "^1.0.0-rc.8",
"npm_package_devDependencies_vite_plugin_purge_icons": "^0.4.4",
"YARN_WRAP_OUTPUT": "false",
"LOGNAME": "annsion",
"LESS": "-R",
"npm_package_scripts_build_site": "cross-env SITE=true npm run build ",
"npm_lifecycle_script": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite",
"PREFIX": "/usr/local",
"npm_package_dependencies__iconify_iconify": "^2.0.0-rc.1",
"npm_package_dependencies_lodash_es": "^4.17.15",
"npm_package_dependencies_vuex": "^4.0.0-rc.1",
"VSCODE_GIT_IPC_HANDLE": "/var/folders/69/p74fhms10gq0tzw8gtqvqjfc0000gn/T/vscode-git-8303872dd8.sock",
"LC_CTYPE": "zh_CN.UTF-8",
"npm_package_scripts_clean_cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite_opt_cache",
"npm_package_dependencies_apexcharts": "^3.22.0",
"npm_package_devDependencies__types_rollup_plugin_visualizer": "^2.6.0",
"npm_package_devDependencies__types_fs_extra": "^9.0.2",
"GITHUB_TOKEN": "f5003f41e66eff1e868635b2e5a78f412b1741ee",
"NVM_BIN": "/Users/annsion/.nvm/versions/node/v12.16.1/bin",
"npm_config_user_agent": "yarn/1.21.1 npm/? node/v12.16.1 darwin x64",
"npm_config_ignore_scripts": "",
"npm_config_version_git_sign": "",
"npm_package_devDependencies__types_zxcvbn": "^4.4.0",
"npm_package_devDependencies__vue_compiler_sfc": "^3.0.2",
"npm_package_devDependencies_portfinder": "^1.0.28",
"GIT_ASKPASS": "/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",
"VSCODE_GIT_ASKPASS_NODE": "/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)",
"npm_package_scripts_reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap",
"npm_package_dependencies_mockjs": "^1.1.0",
"OCI_INC_DIR": "/usr/local/oracle/instantclient/sdk/include",
"npm_package_devDependencies__types_qrcode": "^1.3.5",
"OCI_LIB_DIR": "/usr/local/oracle/instantclient",
"npm_config_ignore_optional": "",
"npm_config_init_version": "1.0.0",
"npm_package_devDependencies__vuedx_typecheck": "^0.2.4-0",
"npm_package_scripts_clean_lib": "npx rimraf node_modules",
"npm_package_dependencies_vue_router": "^4.0.0-rc.1",
"npm_package_devDependencies__commitlint_config_conventional": "^11.0.0",
"npm_package_devDependencies_esno": "^0.2.4",
"npm_config_version_tag_prefix": "v",
"npm_package_dependencies_qrcode": "^1.4.4",
"npm_node_execpath": "/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
"COLORTERM": "truecolor",
"VITE_USE_MOCK": "true",
"VITE_PUBLIC_PATH": "/",
"VITE_PROXY": "/api,http://localhost:3000",
"VITE_DROP_CONSOLE": "false",
"VITE_GLOB_API_URL": "/api",
"VITE_GLOB_API_URL_PREFIX": "",
"VITE_PORT": "3100",
"VITE_GLOB_APP_TITLE": "Vben Admin",
"VITE_GLOB_APP_SHORT_NAME": "vue_vben_admin_2x"
},
"userLimits": {
"core_file_size_blocks": {
"soft": 0,
"hard": "unlimited"
},
"data_seg_size_kbytes": {
"soft": "unlimited",
"hard": "unlimited"
},
"file_size_blocks": {
"soft": "unlimited",
"hard": "unlimited"
},
"max_locked_memory_bytes": {
"soft": "unlimited",
"hard": "unlimited"
},
"max_memory_size_kbytes": {
"soft": "unlimited",
"hard": "unlimited"
},
"open_files": {
"soft": 24576,
"hard": "unlimited"
},
"stack_size_bytes": {
"soft": 8388608,
"hard": 67104768
},
"cpu_time_seconds": {
"soft": "unlimited",
"hard": "unlimited"
},
"max_user_processes": {
"soft": 2784,
"hard": 4176
},
"virtual_memory_kbytes": {
"soft": "unlimited",
"hard": "unlimited"
}
},
"sharedObjects": [
"/Users/annsion/.nvm/versions/node/v12.16.1/bin/node",
"/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation",
"/usr/lib/libSystem.B.dylib",
"/usr/lib/libc++.1.dylib",
"/usr/lib/libobjc.A.dylib",
"/usr/lib/libfakelink.dylib",
"/usr/lib/libDiagnosticMessagesClient.dylib",
"/usr/lib/libicucore.A.dylib",
"/usr/lib/libz.1.dylib",
"/usr/lib/libc++abi.dylib",
"/usr/lib/system/libcache.dylib",
"/usr/lib/system/libcommonCrypto.dylib",
"/usr/lib/system/libcompiler_rt.dylib",
"/usr/lib/system/libcopyfile.dylib",
"/usr/lib/system/libcorecrypto.dylib",
"/usr/lib/system/libdispatch.dylib",
"/usr/lib/system/libdyld.dylib",
"/usr/lib/system/libkeymgr.dylib",
"/usr/lib/system/liblaunch.dylib",
"/usr/lib/system/libmacho.dylib",
"/usr/lib/system/libquarantine.dylib",
"/usr/lib/system/libremovefile.dylib",
"/usr/lib/system/libsystem_asl.dylib",
"/usr/lib/system/libsystem_blocks.dylib",
"/usr/lib/system/libsystem_c.dylib",
"/usr/lib/system/libsystem_configuration.dylib",
"/usr/lib/system/libsystem_coreservices.dylib",
"/usr/lib/system/libsystem_darwin.dylib",
"/usr/lib/system/libsystem_dnssd.dylib",
"/usr/lib/system/libsystem_featureflags.dylib",
"/usr/lib/system/libsystem_info.dylib",
"/usr/lib/system/libsystem_m.dylib",
"/usr/lib/system/libsystem_malloc.dylib",
"/usr/lib/system/libsystem_networkextension.dylib",
"/usr/lib/system/libsystem_notify.dylib",
"/usr/lib/system/libsystem_sandbox.dylib",
"/usr/lib/system/libsystem_secinit.dylib",
"/usr/lib/system/libsystem_kernel.dylib",
"/usr/lib/system/libsystem_platform.dylib",
"/usr/lib/system/libsystem_pthread.dylib",
"/usr/lib/system/libsystem_symptoms.dylib",
"/usr/lib/system/libsystem_trace.dylib",
"/usr/lib/system/libunwind.dylib",
"/usr/lib/system/libxpc.dylib",
"/System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices",
"/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics",
"/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO",
"/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis",
"/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight",
"/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate",
"/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface",
"/usr/lib/libxml2.2.dylib",
"/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork",
"/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation",
"/System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient",
"/usr/lib/libcompression.dylib",
"/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration",
"/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay",
"/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator",
"/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit",
"/System/Library/Frameworks/Metal.framework/Versions/A/Metal",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders",
"/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport",
"/System/Library/Frameworks/Security.framework/Versions/A/Security",
"/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore",
"/usr/lib/libbsm.0.dylib",
"/usr/lib/liblzma.5.dylib",
"/usr/lib/libauto.dylib",
"/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration",
"/usr/lib/libarchive.2.dylib",
"/usr/lib/liblangid.dylib",
"/usr/lib/libCRFSuite.dylib",
"/usr/lib/libenergytrace.dylib",
"/usr/lib/system/libkxld.dylib",
"/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression",
"/usr/lib/libcoretls.dylib",
"/usr/lib/libcoretls_cfhelpers.dylib",
"/usr/lib/libpam.2.dylib",
"/usr/lib/libsqlite3.dylib",
"/usr/lib/libxar.1.dylib",
"/usr/lib/libbz2.1.0.dylib",
"/usr/lib/libiconv.2.dylib",
"/usr/lib/libcharset.1.dylib",
"/usr/lib/libnetwork.dylib",
"/usr/lib/libpcap.A.dylib",
"/usr/lib/libapple_nghttp2.dylib",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices",
"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList",
"/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS",
"/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth",
"/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport",
"/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC",
"/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP",
"/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities",
"/usr/lib/libmecabra.dylib",
"/usr/lib/libmecab.dylib",
"/usr/lib/libgermantok.dylib",
"/usr/lib/libThaiTokenizer.dylib",
"/usr/lib/libChineseTokenizer.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib",
"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib",
"/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling",
"/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji",
"/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData",
"/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon",
"/usr/lib/libcmph.dylib",
"/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory",
"/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory",
"/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS",
"/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation",
"/usr/lib/libutil.dylib",
"/System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore",
"/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement",
"/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement",
"/usr/lib/libxslt.1.dylib",
"/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler",
"/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment",
"/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector",
"/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray",
"/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools",
"/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary",
"/System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics",
"/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce",
"/usr/lib/libMobileGestalt.dylib",
"/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo",
"/usr/lib/libIOReport.dylib",
"/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage",
"/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL",
"/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer",
"/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore",
"/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL",
"/usr/lib/libFosl_dynamic.dylib",
"/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib",
"/usr/lib/libate.dylib",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib",
"/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib",
"/usr/lib/libexpat.1.dylib",
"/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG",
"/System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib",
"/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib",
"/usr/lib/libncurses.5.4.dylib",
"/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI",
"/usr/lib/libcups.2.dylib",
"/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos",
"/System/Library/Frameworks/GSS.framework/Versions/A/GSS",
"/usr/lib/libresolv.9.dylib",
"/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal",
"/System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib",
"/usr/lib/libheimdal-asn1.dylib",
"/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth",
"/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio",
"/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox",
"/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices",
"/System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore",
"/System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk",
"/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard",
"/System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices",
"/System/Library/PrivateFrameworks/PersistentConnection.framework/Versions/A/PersistentConnection",
"/System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer",
"/System/Library/PrivateFrameworks/CommonUtilities.framework/Versions/A/CommonUtilities",
"/System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom",
"/usr/lib/libAudioToolboxUtility.dylib",
"/Users/annsion/Documents/workspace_dev/vue-vben-admin-2.0/node_modules/fsevents/fsevents.node"
]
}
\ No newline at end of file
......@@ -35,9 +35,11 @@
@import (reference) '../../design/index.less';
.breadcrumb {
.unselect();
height: @header-height;
padding-right: 20px;
font-size: 14px;
font-size: 13px;
line-height: @header-height;
// line-height: 1;
......
......@@ -72,7 +72,7 @@ export default defineComponent({
onMounted(update);
return () => (
<div ref={elRef} class={[attrs.class, 'app-iconify']} style={unref(wrapStyleRef)} />
<div ref={elRef} class={[attrs.class, 'app-iconify anticon']} style={unref(wrapStyleRef)} />
);
},
});
......@@ -2,21 +2,27 @@ import type { MenuState } from './types';
import type { Menu as MenuType } from '/@/router/types';
import { computed, defineComponent, unref, reactive, toRef, watch, onMounted, ref } from 'vue';
import { basicProps } from './props';
import { Menu } from 'ant-design-vue';
import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum';
import { menuStore } from '/@/store/modules/menu';
import { getSlot } from '/@/utils/helper/tsxHelper';
// import { ScrollContainer } from '/@/components/Container/index';
import SearchInput from './SearchInput.vue';
import './index.less';
import { menuHasChildren } from './helper';
import MenuContent from './MenuContent';
import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum';
import { menuStore } from '/@/store/modules/menu';
import { appStore } from '/@/store/modules/app';
import { useSearchInput } from './useSearchInput';
import { useOpenKeys } from './useOpenKeys';
import { useRouter } from 'vue-router';
import { isFunction } from '/@/utils/is';
import { getSlot } from '/@/utils/helper/tsxHelper';
import { menuHasChildren } from './helper';
import { getCurrentParentPath } from '/@/router/menus';
import { basicProps } from './props';
import './index.less';
export default defineComponent({
name: 'BasicMenu',
props: basicProps,
......@@ -69,7 +75,7 @@ export default defineComponent({
return {
height: `calc(100% - ${offset - 10}px)`,
position: 'relative',
overflow: 'auto',
overflowY: 'auto',
};
});
......@@ -77,26 +83,26 @@ export default defineComponent({
const transparentMenuClass = computed(() => {
const { type } = props;
const { mode } = menuState;
if (
[MenuTypeEnum.MIX, MenuTypeEnum.SIDEBAR].includes(type) &&
mode !== MenuModeEnum.HORIZONTAL
) {
return `basic-menu-bg__sidebar`;
}
const cls: string[] = [];
if (
(type === MenuTypeEnum.TOP_MENU && mode === MenuModeEnum.HORIZONTAL) ||
props.appendClass
) {
return `basic-menu-bg__sidebar-hor`;
cls.push('basic-menu__sidebar-hor');
}
return '';
if (!props.isTop && props.isAppMenu && appStore.getProjectConfig.menuSetting.split) {
cls.push('basic-menu__second');
}
return cls;
});
watch(
() => currentRoute.value.name,
(name: string) => {
name !== 'Redirect' && handleMenuChange();
getParentPath();
if (name === 'Redirect') return;
handleMenuChange();
props.isTop && appStore.getProjectConfig.menuSetting.split && getParentPath();
}
);
......@@ -149,22 +155,14 @@ export default defineComponent({
}
const showTitle = computed(() => {
if (props.isTop) return true;
if (!props.isAppMenu) return true;
if (!props.collapsedShowTitle) {
return !menuStore.getCollapsedState;
}
return true;
return props.collapsedShowTitle && menuStore.getCollapsedState;
});
// render menu item
function renderMenuItem(menuList?: MenuType[], index = 1) {
if (!menuList) {
return;
}
if (!menuList) return;
const { appendClass } = props;
const levelCls = `basic-menu-item__level${index} ${menuState.theme} `;
return menuList.map((menu) => {
if (!menu) {
return null;
......@@ -233,7 +231,7 @@ export default defineComponent({
class={[
'basic-menu',
props.collapsedShowTitle && 'collapsed-show-title',
unref(transparentMenuClass),
...unref(transparentMenuClass),
]}
{...inlineCollapsedObj}
>
......@@ -247,6 +245,7 @@ export default defineComponent({
onMounted(async () => {
getParentPath();
});
return () => {
const { getCollapsedState } = menuStore;
const { mode } = props;
......@@ -262,9 +261,8 @@ export default defineComponent({
onClick={handleInputClick}
collapsed={getCollapsedState}
/>
<section style={unref(getMenuWrapStyle)} class="basic-menu__wrap">
<section style={unref(getMenuWrapStyle)} class="basic-menu__content">
{renderMenu()}
{/* <ScrollContainer>{() => renderMenu()}</ScrollContainer> */}
</section>
</section>
);
......
......@@ -11,14 +11,17 @@ export default defineComponent({
type: String as PropType<string>,
default: '',
},
item: {
type: Object as PropType<MenuType>,
default: null,
},
showTitle: {
type: Boolean as PropType<boolean>,
default: true,
},
level: {
type: Number as PropType<number>,
default: 0,
......@@ -36,26 +39,27 @@ export default defineComponent({
if (!props.item) {
return null;
}
const { showTitle, level } = props;
const { showTitle } = props;
const { name, icon } = props.item;
const searchValue = props.searchValue || '';
const index = name.indexOf(searchValue);
const beforeStr = name.substr(0, index);
const afterStr = name.substr(index + searchValue.length);
const show = level === 1 ? showTitle : true;
return [
renderIcon(icon!),
index > -1 && searchValue ? (
<span class={!show && 'hidden'}>
{beforeStr}
<span class={`basic-menu__keyword`}>{searchValue}</span>
{afterStr}
</span>
) : (
<span class={!show && 'hidden'}>{name}</span>
),
];
return (
<>
{renderIcon(icon!)}
{index > -1 && searchValue ? (
<span class={showTitle ? 'show-title' : ''}>
{beforeStr}
<span class={`basic-menu__keyword`}>{searchValue}</span>
{afterStr}
</span>
) : (
<span class={[showTitle ? 'show-title' : '']}>{name}</span>
)}
</>
);
};
},
});
......@@ -5,7 +5,6 @@
class="menu-search-input__search"
allowClear
@change="handleChange"
:disabled="collapsed"
/>
</section>
</template>
......@@ -20,7 +19,7 @@
export default defineComponent({
name: 'BasicMenuSearchInput',
props: {
// 是否展开,用于左侧菜单
// Whether to expand, used in the left menu
collapsed: {
type: Boolean as PropType<boolean>,
default: true,
......@@ -30,28 +29,27 @@
},
},
setup(props, { emit }) {
const [debounceEmitChange] = useDebounce(emitChange, 200);
function emitChange(value?: string): void {
emit('change', value);
}
const [debounceEmitChange] = useDebounce(emitChange, 200);
/**
* @description: 搜索
*/
function handleChange(e: ChangeEvent): void {
const { collapsed } = props;
if (collapsed) {
return;
}
if (collapsed) return;
debounceEmitChange(e.target.value);
}
/**
* @description: 点击时间
*/
function handleClick(): void {
emit('click');
}
const searchClass = computed(() => {
return props.theme ? `menu-search-input__search--${props.theme}` : '';
const cls: string[] = [];
cls.push(props.theme ? `menu-search-input__search--${props.theme}` : '');
// cls.push(props.collapsed ? 'hide-search-icon' : '');
return cls;
});
return { handleClick, searchClass, handleChange };
......@@ -66,26 +64,24 @@
@icon-color: #c0c4cc;
.menu-search-input {
margin: 12px 9px;
margin: 12px 8px;
// &.hide-search-icon {
// .ant-input,
// .ant-input-suffix {
// opacity: 0;
// }
// }
&__search--dark {
.ant-input-affix-wrapper,
.ant-input {
.set-bg();
&:hover,
&:focus {
.hide-outline();
}
}
.ant-input-search-icon,
.ant-input-clear-icon {
color: rgba(255, 255, 255, 0.6) !important;
}
.ant-input-clear-icon {
color: rgba(255, 255, 255, 0.3) !important;
color: rgba(255, 255, 255, 0.4) !important;
}
}
......@@ -94,13 +90,7 @@
.ant-input {
color: @text-color-base;
background: #fff;
// border: 0;
outline: none;
&:hover,
&:focus {
.hide-outline();
}
}
.ant-input-search-icon {
......
......@@ -2,14 +2,11 @@
.active-style() {
color: @white;
// background: @primary-color !important;
background: linear-gradient(
118deg,
rgba(@primary-color, 0.8),
rgba(@primary-color, 1)
) !important;
// border-radius: 2px;
box-shadow: 0 0 4px 1px rgba(@primary-color, 0.7);
}
.active-menu-style() {
......@@ -22,50 +19,52 @@
.basic-menu {
width: 100%;
&-wrap {
height: 100%;
}
// collapsed show title start
.show-title {
max-width: unset !important;
opacity: 1 !important;
}
&.collapsed-show-title.ant-menu-inline-collapsed {
.basic-menu-item__level1 {
padding: 2px 0;
}
& > li[role='menuitem']:not(.ant-menu-submenu),
& > li > .ant-menu-submenu-title {
display: flex;
margin-top: 12px;
margin-top: 10px;
font-size: 12px;
flex-direction: column;
line-height: 24px;
align-items: center;
}
& > li[role='menuitem']:not(.ant-menu-submenu) {
display: flex;
margin-top: 12px;
font-size: 12px;
line-height: 2;
align-items: center;
flex-direction: column;
span {
margin-top: 6px;
}
& > li > .ant-menu-submenu-title {
line-height: 24px;
}
}
&__wrap {
// collapsed show title end
// scrollbar -s tart
&__content {
/* 滚动槽 */
&::-webkit-scrollbar {
width: 6px;
height: 6px;
width: 4px;
height: 4px;
}
// TODO 滚动条样式-待修改
&::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0);
}
/* 滚动条滑块 */
&::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.3);
border-radius: 4px;
background: rgba(255, 255, 255, 0.2);
border-radius: 3px;
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
}
......@@ -73,29 +72,10 @@
background: @border-color-dark;
}
}
// scrollbar end
.ant-menu-submenu:first-of-type {
margin-top: 4px;
}
.ant-menu-submenu-title {
margin-top: 0;
}
&-wrap {
height: 100%;
}
.menu-item-icon {
vertical-align: text-top;
}
// 透明化背景
&-bg__sidebar {
background-color: transparent;
}
&-bg__sidebar-hor {
overflow: hidden;
&__sidebar-hor {
// overflow: hidden;
&.ant-menu-horizontal {
display: flex;
......@@ -107,6 +87,13 @@
}
&.ant-menu-light {
.basic-menu-item__level1 {
&.top-active-menu {
color: @primary-color;
border-bottom: 3px solid @primary-color;
}
}
.ant-menu-item {
&.basic-menu-item__level1 {
height: @header-height;
......@@ -128,7 +115,6 @@
border-bottom: 3px solid @primary-color;
}
// 有子菜单
.ant-menu-submenu {
&:hover {
border-bottom: 3px solid @primary-color;
......@@ -144,30 +130,44 @@
&.ant-menu-dark {
background: transparent;
.ant-menu-submenu:hover,
.ant-menu-item-open,
.ant-menu-submenu-open,
.ant-menu-item-selected,
.ant-menu-submenu-selected,
.ant-menu-item:hover,
.ant-menu-item-active,
.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
.ant-menu-submenu-active,
.ant-menu-submenu-title:hover {
color: #fff;
background: @top-menu-active-bg-color !important;
}
.ant-menu-item:hover,
.ant-menu-item-active,
.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
.ant-menu-submenu-active,
.ant-menu-submenu-title:hover {
background: @top-menu-active-bg-color;
// border-radius: 6px 6px 0 0;
}
.basic-menu-item__level1 {
&.ant-menu-item-selected,
&.ant-menu-submenu-selected {
background: transparent;
&.top-active-menu {
color: @white;
background: @top-menu-active-bg-color;
// border-radius: 6px 6px 0 0;
border-radius: 2px 2px 0 0;
}
}
.ant-menu-item {
&.basic-menu-item__level1 {
height: @header-height;
line-height: @header-height;
&.ant-menu-item-selected,
&.ant-menu-submenu-selected {
background: @top-menu-active-bg-color !important;
}
}
// 有子菜单
.ant-menu-item,
.ant-menu-submenu {
&.basic-menu-item__level1,
.ant-menu-submenu-title {
......@@ -178,24 +178,27 @@
}
}
}
// 重置菜单项行高
.ant-menu-item,
.ant-menu-sub.ant-menu-inline > .ant-menu-item,
.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
height: @app-menu-item-height;
margin: 0;
line-height: @app-menu-item-height;
.ant-menu-item {
transition: unset;
}
&.ant-menu-dark:not(.basic-menu-bg__sidebar-hor) {
.active-menu-style();
&.ant-menu-dark:not(.basic-menu__sidebar-hor):not(.basic-menu__second) {
// Reset menu item row height
.ant-menu-item,
.ant-menu-sub.ant-menu-inline > .ant-menu-item,
.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
height: @app-menu-item-height;
margin: 0;
line-height: @app-menu-item-height;
}
}
// 层级样式
&.ant-menu-dark {
// .ant-menu-item {
// transition: unset;
// }
&.ant-menu-dark:not(.basic-menu__sidebar-hor) {
overflow-x: hidden;
background: @first-menu-item-dark-bg-color;
.active-menu-style();
.ant-menu-item.ant-menu-item-selected.basic-menu-menu-item__level1,
.ant-menu-submenu-selected.basic-menu-menu-item__level1 {
......@@ -203,76 +206,44 @@
}
.basic-menu-item__level1 {
margin-bottom: 0;
background-color: @first-menu-item-dark-bg-color;
> .ant-menu-sub > li {
background-color: @sub-menu-item-dark-bg-color;
}
&.top-active-menu {
color: @white;
background: @top-menu-active-bg-color;
border-radius: 6px 6px 0 0;
}
}
// 2级菜单
.basic-menu-item__level2:not(.ant-menu-item-selected),
.ant-menu-sub {
background-color: @sub-menu-item-dark-bg-color;
}
.basic-menu-item__level2 {
margin-bottom: 0;
}
// 3级菜单
.basic-menu-item__level3,
.basic-menu__popup {
margin-bottom: 0;
}
.basic-menu-item__level3:not(.ant-menu-item-selected) {
background-color: @children-menu-item-dark-bg-color;
}
.ant-menu-submenu-title {
// line-height: @app-menu-item-height;
display: flex;
height: @app-menu-item-height;
margin: 0;
// margin: 0;
align-items: center;
}
&.ant-menu-inline-collapsed {
.ant-menu-item-selected {
background: unset !important;
box-shadow: none;
}
.ant-menu-submenu-selected,
.ant-menu-item-selected {
.active-style();
background: darken(@first-menu-item-dark-bg-color, 6%) !important;
}
}
}
&.ant-menu-light {
&.ant-menu-light:not(.basic-menu__sidebar-hor) {
overflow-x: hidden;
border-right: none;
.basic-menu-item__level1 {
&.top-active-menu {
color: @primary-color;
border-bottom: 3px solid @primary-color;
}
}
&:not(.ant-menu-horizontal) {
.ant-menu-item-selected {
background: fade(@primary-color, 18%);
}
}
// .ant-menu-item-selected {
// background: fade(@primary-color, 18%);
// }
.ant-menu-item.ant-menu-item-selected.basic-menu-menu-item__level1,
.ant-menu-submenu-selected.basic-menu-menu-item__level1 {
......@@ -289,6 +260,20 @@
.ant-menu-item.ant-menu-item-selected {
position: relative;
}
&.basic-menu__second.ant-menu-inline-collapsed:not(.basic-menu__sidebar-hor) {
// Reset menu item row height
.ant-menu-item,
.ant-menu-sub.ant-menu-inline > .ant-menu-item,
.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
display: flex;
height: @app-menu-item-height * 1.4;
padding: 6px 0 !important;
margin: 0;
line-height: @app-menu-item-height;
align-items: center;
}
}
}
// 触发器样式
......@@ -322,3 +307,24 @@
.active-menu-style();
}
}
.hide-title {
.ant-menu-inline-collapsed > .ant-menu-item,
.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,
.ant-menu-inline-collapsed
> .ant-menu-item-group
> .ant-menu-item-group-list
> .ant-menu-submenu
> .ant-menu-submenu-title,
.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
padding-right: 20px !important;
padding-left: 20px !important;
}
.ant-menu-inline-collapsed {
.basic-menu-item__level1 {
display: flex;
justify-content: center;
}
}
}
// button重置
.ant-btn {
&.ant-btn-success:not(.ant-btn-link),
&.ant-btn-error:not(.ant-btn-link),
&.ant-btn-warning:not(.ant-btn-link),
&.ant-btn-primary:not(.ant-btn-link) {
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
}
// &.ant-btn-success:not(.ant-btn-link),
// &.ant-btn-error:not(.ant-btn-link),
// &.ant-btn-warning:not(.ant-btn-link),
// &.ant-btn-primary:not(.ant-btn-link) {
// box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
// }
&-primary {
color: @white;
......
......@@ -67,9 +67,9 @@
@first-menu-item-dark-bg-color: #273352;
// 2级菜单黑暗背景色
@sub-menu-item-dark-bg-color: #4f6088;
@sub-menu-item-dark-bg-color: #314268;
// 3级菜单黑暗背景色
@children-menu-item-dark-bg-color: #314268;
@children-menu-item-dark-bg-color: #4f6088;
// top-menu
@top-menu-active-bg-color: #273352;
......
/* 滚动槽 */
::-webkit-scrollbar {
width: 8px;
height: 8px;
width: 6px;
height: 6px;
}
// TODO 滚动条样式-待修改
// ::-webkit-scrollbar-track {
// // background: rgba(0, 0, 0, 0.06);
// // border-radius: 2px;
// // box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
// }
::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.05);
}
/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
background: @disabled-color;
background: rgba(0, 0, 0, 0.2);
border-radius: 4px;
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
}
......
......@@ -12,7 +12,7 @@
@logo-width: 36px;
//
@sider-drag-z-index: 200;
@side-drag-z-index: 200;
@page-loading-z-index: 10000;
// app menu
......
......@@ -75,7 +75,7 @@ export default defineComponent({
}
return () => (
<Breadcrumb class="layout-breadcrumb">
<Breadcrumb class={['layout-breadcrumb', unref(itemList).length === 0 ? 'hidden' : '']}>
{() => (
<TransitionGroup name="breadcrumb">
{() => {
......
......@@ -109,8 +109,22 @@ export default defineComponent({
// 菜单分割模式-left
if (splitType === MenuSplitTyeEnum.LEFT) {
const children = await getChildrenMenus(parentPath);
if (!children) return;
if (!children) {
appStore.commitProjectConfigState({
menuSetting: {
show: false,
},
});
flatMenusRef.value = [];
menusRef.value = [];
return;
}
const flatChildren = await getFlatChildrenMenus(children);
appStore.commitProjectConfigState({
menuSetting: {
show: true,
},
});
flatMenusRef.value = flatChildren;
menusRef.value = children;
}
......
......@@ -6,10 +6,9 @@ import { menuStore } from '/@/store/modules/menu';
// import darkMiniIMg from '/@/assets/images/sidebar/dark-mini.png';
// import lightMiniImg from '/@/assets/images/sidebar/light-mini.png';
import darkImg from '/@/assets/images/sidebar/dark.png';
// import lightImg from '/@/assets/images/sidebar/light.png';
import { appStore } from '/@/store/modules/app';
import { MenuModeEnum, MenuSplitTyeEnum, MenuThemeEnum } from '/@/enums/menuEnum';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { SIDE_BAR_MINI_WIDTH, SIDE_BAR_SHOW_TIT_MINI_WIDTH } from '/@/enums/appEnum';
import { useDebounce } from '/@/hooks/core/useDebounce';
import LayoutMenu from './LayoutMenu';
......@@ -34,26 +33,6 @@ export default defineComponent({
return collapsedShowTitle ? SIDE_BAR_SHOW_TIT_MINI_WIDTH : SIDE_BAR_MINI_WIDTH;
});
// 根据展开状态设置背景图片
const getStyle = computed((): any => {
// const collapse = unref(collapseRef);
const theme = unref(getProjectConfigRef).menuSetting.theme;
if (theme === MenuThemeEnum.LIGHT) {
// bg = lightImg;
return {};
}
let bg = '';
if (theme === MenuThemeEnum.DARK) {
// bg = collapse ? darkMiniIMg : darkImg;
bg = darkImg;
}
return {
'background-image': `url(${bg})`,
};
});
function onCollapseChange(val: boolean) {
if (initRef.value) {
collapseRef.value = val;
......@@ -182,7 +161,6 @@ export default defineComponent({
class="layout-sidebar"
ref={sideRef}
onBreakpoint={handleBreakpoint}
style={unref(getStyle)}
>
{{
trigger: () => <SideBarTrigger />,
......
......@@ -26,14 +26,12 @@ export default defineComponent({
return { realName, desc };
});
/**
* @description: 退出登录
*/
// login out
function handleLoginOut() {
userStore.confirmLoginOut();
}
// 打开文档
// open doc
function openDoc() {
window.open(DOC_URL, '__blank');
}
......
......@@ -66,6 +66,10 @@
.layout-sidebar {
background-size: 100% 100%;
&.ant-layout-sider-dark {
background: @first-menu-item-dark-bg-color;
}
&:not(.ant-layout-sider-dark) {
border-right: 1px solid @border-color-light;
}
......@@ -79,7 +83,7 @@
position: absolute;
top: 0;
right: -2px;
z-index: @sider-drag-z-index;
z-index: @side-drag-z-index;
width: 2px;
height: 100%;
cursor: col-resize;
......@@ -378,17 +382,3 @@
height: 36px;
line-height: 36px;
}
.hide-title {
.ant-menu-inline-collapsed > .ant-menu-item,
.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,
.ant-menu-inline-collapsed
> .ant-menu-item-group
> .ant-menu-item-group-list
> .ant-menu-submenu
> .ant-menu-submenu-title,
.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
padding-right: 20px !important;
padding-left: 20px !important;
}
}
......@@ -51,9 +51,9 @@ export default defineComponent({
const showSideBarRef = computed(() => {
const {
menuSetting: { show, mode },
menuSetting: { show, mode, split },
} = unref(getProjectConfigRef);
return show && mode !== MenuModeEnum.HORIZONTAL && !unref(getFullContent);
return split || (show && mode !== MenuModeEnum.HORIZONTAL && !unref(getFullContent));
});
// Get project configuration
......@@ -73,6 +73,7 @@ export default defineComponent({
showSettingButton,
multiTabsSetting: { show: showTabs },
headerSetting: { fixed },
menuSetting: { split, show },
} = unref(getProjectConfigRef);
const fixedHeaderCls = fixed
......@@ -80,6 +81,8 @@ export default defineComponent({
: '';
const { isLock } = getLockInfo;
const showSideBar = split ? show : true;
return (
<Layout class="default-layout relative">
{() => (
......@@ -95,7 +98,7 @@ export default defineComponent({
<Layout>
{() => (
<>
{unref(showSideBarRef) && <LayoutSideBar />}
{unref(showSideBarRef) && <LayoutSideBar class={showSideBar ? '' : 'hidden'} />}
<Layout class={[`default-layout__content`, fixedHeaderCls]}>
{() => (
<>
......
......@@ -38,14 +38,16 @@ export default defineComponent({
<RouterView>
{{
default: ({ Component, route }: { Component: any; route: RouteLocation }) => {
// 已经位于tab内的不再显示动画
// No longer show animations that are already in the tab
const name = route.meta.inTab ? 'fade' : null;
// TODO add key?
const Content = openCache ? (
<KeepAlive max={max} include={cacheTabs}>
<Component {...route.params} />
<Component />
</KeepAlive>
) : (
<Component {...route.params} />
<Component />
);
return openRouterTransition ? (
<Transition
......
import { onUnmounted } from 'vue';
import { appStore } from '/@/store/modules/app';
import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
export function useTransition() {
function handleAfterEnter() {
const { openRouterTransition, openPageLoading } = appStore.getProjectConfig;
if (!openRouterTransition || !openPageLoading) return;
// 路由切换动画结束之后关闭loading
// Close loading after the route switching animation ends
appStore.setPageLoadingAction(false);
}
onUnmounted(() => {
tryOnUnmounted(() => {
handleAfterEnter();
stop();
});
return {
handleAfterEnter,
on: {
......
......@@ -49,7 +49,7 @@ const setting: ProjectConfig = {
// 折叠菜单时候是否显示菜单名
collapsedShowTitle: false,
// 是否可拖拽
hasDrag: true,
hasDrag: false,
// 是否显示
show: true,
// 是否显示搜索框
......
......@@ -3,7 +3,7 @@
import type { App } from 'vue';
import { Form, Input, Row, Col } from 'ant-design-vue';
import 'ant-design-vue/dist/antd.less';
import 'ant-design-vue/dist/antd.css';
import './spin';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册