Commit 19dc88b4e0d559aceed9b17ebd0ddd04eac7ecd7
Committed by
GitHub
1 parent
cfbd52bb
docs: 添加注释, 修复 (#1927)
* docs: 添加注释 * docs: 添加注释 * fix: 后台动态权限changePermissionCode加上await * docs: 添加注释 * docs: 添加注释 * docs: 添加注释 * docs: 添加注释 * docs: 添加注释
Showing
13 changed files
with
174 additions
and
83 deletions
.gitignore
pnpm-lock.yaml
1 | -lockfileVersion: 5.4 | 1 | +lockfileVersion: 5.3 |
2 | 2 | ||
3 | overrides: | 3 | overrides: |
4 | bin-wrapper: npm:bin-wrapper-china | 4 | bin-wrapper: npm:bin-wrapper-china |
@@ -138,7 +138,7 @@ dependencies: | @@ -138,7 +138,7 @@ dependencies: | ||
138 | mockjs: 1.1.0 | 138 | mockjs: 1.1.0 |
139 | nprogress: 0.2.0 | 139 | nprogress: 0.2.0 |
140 | path-to-regexp: 6.2.0 | 140 | path-to-regexp: 6.2.0 |
141 | - pinia: 2.0.12_ifhmkzsxec62ezvqv7qmanm4bq | 141 | + pinia: 2.0.12_typescript@4.6.3+vue@3.2.33 |
142 | print-js: 1.6.0 | 142 | print-js: 1.6.0 |
143 | qrcode: 1.5.0 | 143 | qrcode: 1.5.0 |
144 | qs: 6.10.3 | 144 | qs: 6.10.3 |
@@ -172,8 +172,8 @@ devDependencies: | @@ -172,8 +172,8 @@ devDependencies: | ||
172 | '@types/qs': 6.9.7 | 172 | '@types/qs': 6.9.7 |
173 | '@types/showdown': 1.9.4 | 173 | '@types/showdown': 1.9.4 |
174 | '@types/sortablejs': 1.10.7 | 174 | '@types/sortablejs': 1.10.7 |
175 | - '@typescript-eslint/eslint-plugin': 5.20.0_xgwjwvswzzo77lpghh6plzerx4 | ||
176 | - '@typescript-eslint/parser': 5.20.0_jzhokl4shvj5szf5bgr66kln2a | 175 | + '@typescript-eslint/eslint-plugin': 5.20.0_b9ac9b5656ce5dffade639fcf5e491bf |
176 | + '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 | ||
177 | '@vitejs/plugin-legacy': 1.8.1_vite@2.9.5 | 177 | '@vitejs/plugin-legacy': 1.8.1_vite@2.9.5 |
178 | '@vitejs/plugin-vue': 2.3.1_vite@2.9.5+vue@3.2.33 | 178 | '@vitejs/plugin-vue': 2.3.1_vite@2.9.5+vue@3.2.33 |
179 | '@vitejs/plugin-vue-jsx': 1.3.10 | 179 | '@vitejs/plugin-vue-jsx': 1.3.10 |
@@ -186,7 +186,7 @@ devDependencies: | @@ -186,7 +186,7 @@ devDependencies: | ||
186 | dotenv: 16.0.0 | 186 | dotenv: 16.0.0 |
187 | eslint: 8.13.0 | 187 | eslint: 8.13.0 |
188 | eslint-config-prettier: 8.5.0_eslint@8.13.0 | 188 | eslint-config-prettier: 8.5.0_eslint@8.13.0 |
189 | - eslint-plugin-prettier: 4.0.0_dak2zfnx7mtmcpd5jcuo55rnb4 | 189 | + eslint-plugin-prettier: 4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f |
190 | eslint-plugin-vue: 8.6.0_eslint@8.13.0 | 190 | eslint-plugin-vue: 8.6.0_eslint@8.13.0 |
191 | esno: 0.14.1 | 191 | esno: 0.14.1 |
192 | fs-extra: 10.1.0 | 192 | fs-extra: 10.1.0 |
@@ -206,17 +206,17 @@ devDependencies: | @@ -206,17 +206,17 @@ devDependencies: | ||
206 | stylelint: 14.7.1 | 206 | stylelint: 14.7.1 |
207 | stylelint-config-prettier: 9.0.3_stylelint@14.7.1 | 207 | stylelint-config-prettier: 9.0.3_stylelint@14.7.1 |
208 | stylelint-config-recommended: 7.0.0_stylelint@14.7.1 | 208 | stylelint-config-recommended: 7.0.0_stylelint@14.7.1 |
209 | - stylelint-config-recommended-vue: 1.4.0_dkblcabdfo7hanxmbj6kpjf26q | 209 | + stylelint-config-recommended-vue: 1.4.0_1a82b100232bbe7036ec0a7ca7a4baf4 |
210 | stylelint-config-standard: 25.0.0_stylelint@14.7.1 | 210 | stylelint-config-standard: 25.0.0_stylelint@14.7.1 |
211 | stylelint-order: 5.0.0_stylelint@14.7.1 | 211 | stylelint-order: 5.0.0_stylelint@14.7.1 |
212 | - ts-node: 10.7.0_3z6inmgn4ud4moqealnfxgbl2m | 212 | + ts-node: 10.7.0_de7c86b0cde507c63a0402da5b982bd3 |
213 | typescript: 4.6.3 | 213 | typescript: 4.6.3 |
214 | vite: 2.9.5_less@4.1.2 | 214 | vite: 2.9.5_less@4.1.2 |
215 | vite-plugin-compression: 0.5.1_vite@2.9.5 | 215 | vite-plugin-compression: 0.5.1_vite@2.9.5 |
216 | vite-plugin-html: 3.2.0_vite@2.9.5 | 216 | vite-plugin-html: 3.2.0_vite@2.9.5 |
217 | vite-plugin-imagemin: 0.6.1_vite@2.9.5 | 217 | vite-plugin-imagemin: 0.6.1_vite@2.9.5 |
218 | vite-plugin-mkcert: 1.6.0 | 218 | vite-plugin-mkcert: 1.6.0 |
219 | - vite-plugin-mock: 2.9.6_qiwm6q27tfokd2mntem6ma7w4y | 219 | + vite-plugin-mock: 2.9.6_822ccf435f995ca1e98d9919e603f6e6 |
220 | vite-plugin-purge-icons: 0.8.1_vite@2.9.5 | 220 | vite-plugin-purge-icons: 0.8.1_vite@2.9.5 |
221 | vite-plugin-pwa: 0.11.13_vite@2.9.5 | 221 | vite-plugin-pwa: 0.11.13_vite@2.9.5 |
222 | vite-plugin-style-import: 2.0.0_vite@2.9.5 | 222 | vite-plugin-style-import: 2.0.0_vite@2.9.5 |
@@ -1519,7 +1519,7 @@ packages: | @@ -1519,7 +1519,7 @@ packages: | ||
1519 | '@types/node': 17.0.25 | 1519 | '@types/node': 17.0.25 |
1520 | chalk: 4.1.2 | 1520 | chalk: 4.1.2 |
1521 | cosmiconfig: 7.0.1 | 1521 | cosmiconfig: 7.0.1 |
1522 | - cosmiconfig-typescript-loader: 1.0.9_3z6inmgn4ud4moqealnfxgbl2m | 1522 | + cosmiconfig-typescript-loader: 1.0.9_de7c86b0cde507c63a0402da5b982bd3 |
1523 | lodash: 4.17.21 | 1523 | lodash: 4.17.21 |
1524 | resolve-from: 5.0.0 | 1524 | resolve-from: 5.0.0 |
1525 | typescript: 4.6.3 | 1525 | typescript: 4.6.3 |
@@ -1905,7 +1905,7 @@ packages: | @@ -1905,7 +1905,7 @@ packages: | ||
1905 | '@iconify/iconify': 2.2.1 | 1905 | '@iconify/iconify': 2.2.1 |
1906 | dev: true | 1906 | dev: true |
1907 | 1907 | ||
1908 | - /@rollup/plugin-babel/5.3.1_6m6vi5xreq5wlqqwvo3xvcrttm: | 1908 | + /@rollup/plugin-babel/5.3.1_@babel+core@7.17.9+rollup@2.70.2: |
1909 | resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} | 1909 | resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} |
1910 | engines: {node: '>= 10.0.0'} | 1910 | engines: {node: '>= 10.0.0'} |
1911 | peerDependencies: | 1911 | peerDependencies: |
@@ -2209,7 +2209,7 @@ packages: | @@ -2209,7 +2209,7 @@ packages: | ||
2209 | resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} | 2209 | resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} |
2210 | dev: true | 2210 | dev: true |
2211 | 2211 | ||
2212 | - /@typescript-eslint/eslint-plugin/5.20.0_xgwjwvswzzo77lpghh6plzerx4: | 2212 | + /@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: |
2213 | resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==} | 2213 | resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==} |
2214 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 2214 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
2215 | peerDependencies: | 2215 | peerDependencies: |
@@ -2220,10 +2220,10 @@ packages: | @@ -2220,10 +2220,10 @@ packages: | ||
2220 | typescript: | 2220 | typescript: |
2221 | optional: true | 2221 | optional: true |
2222 | dependencies: | 2222 | dependencies: |
2223 | - '@typescript-eslint/parser': 5.20.0_jzhokl4shvj5szf5bgr66kln2a | 2223 | + '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 |
2224 | '@typescript-eslint/scope-manager': 5.20.0 | 2224 | '@typescript-eslint/scope-manager': 5.20.0 |
2225 | - '@typescript-eslint/type-utils': 5.20.0_jzhokl4shvj5szf5bgr66kln2a | ||
2226 | - '@typescript-eslint/utils': 5.20.0_jzhokl4shvj5szf5bgr66kln2a | 2225 | + '@typescript-eslint/type-utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 |
2226 | + '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 | ||
2227 | debug: 4.3.4 | 2227 | debug: 4.3.4 |
2228 | eslint: 8.13.0 | 2228 | eslint: 8.13.0 |
2229 | functional-red-black-tree: 1.0.1 | 2229 | functional-red-black-tree: 1.0.1 |
@@ -2236,7 +2236,7 @@ packages: | @@ -2236,7 +2236,7 @@ packages: | ||
2236 | - supports-color | 2236 | - supports-color |
2237 | dev: true | 2237 | dev: true |
2238 | 2238 | ||
2239 | - /@typescript-eslint/parser/5.20.0_jzhokl4shvj5szf5bgr66kln2a: | 2239 | + /@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3: |
2240 | resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==} | 2240 | resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==} |
2241 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 2241 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
2242 | peerDependencies: | 2242 | peerDependencies: |
@@ -2264,7 +2264,7 @@ packages: | @@ -2264,7 +2264,7 @@ packages: | ||
2264 | '@typescript-eslint/visitor-keys': 5.20.0 | 2264 | '@typescript-eslint/visitor-keys': 5.20.0 |
2265 | dev: true | 2265 | dev: true |
2266 | 2266 | ||
2267 | - /@typescript-eslint/type-utils/5.20.0_jzhokl4shvj5szf5bgr66kln2a: | 2267 | + /@typescript-eslint/type-utils/5.20.0_eslint@8.13.0+typescript@4.6.3: |
2268 | resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==} | 2268 | resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==} |
2269 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 2269 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
2270 | peerDependencies: | 2270 | peerDependencies: |
@@ -2274,7 +2274,7 @@ packages: | @@ -2274,7 +2274,7 @@ packages: | ||
2274 | typescript: | 2274 | typescript: |
2275 | optional: true | 2275 | optional: true |
2276 | dependencies: | 2276 | dependencies: |
2277 | - '@typescript-eslint/utils': 5.20.0_jzhokl4shvj5szf5bgr66kln2a | 2277 | + '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 |
2278 | debug: 4.3.4 | 2278 | debug: 4.3.4 |
2279 | eslint: 8.13.0 | 2279 | eslint: 8.13.0 |
2280 | tsutils: 3.21.0_typescript@4.6.3 | 2280 | tsutils: 3.21.0_typescript@4.6.3 |
@@ -2309,7 +2309,7 @@ packages: | @@ -2309,7 +2309,7 @@ packages: | ||
2309 | - supports-color | 2309 | - supports-color |
2310 | dev: true | 2310 | dev: true |
2311 | 2311 | ||
2312 | - /@typescript-eslint/utils/5.20.0_jzhokl4shvj5szf5bgr66kln2a: | 2312 | + /@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3: |
2313 | resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} | 2313 | resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} |
2314 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 2314 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
2315 | peerDependencies: | 2315 | peerDependencies: |
@@ -2773,7 +2773,7 @@ packages: | @@ -2773,7 +2773,7 @@ packages: | ||
2773 | dev: true | 2773 | dev: true |
2774 | 2774 | ||
2775 | /archive-type/4.0.0: | 2775 | /archive-type/4.0.0: |
2776 | - resolution: {integrity: sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=} | 2776 | + resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} |
2777 | engines: {node: '>=4'} | 2777 | engines: {node: '>=4'} |
2778 | dependencies: | 2778 | dependencies: |
2779 | file-type: 4.4.0 | 2779 | file-type: 4.4.0 |
@@ -3116,11 +3116,11 @@ packages: | @@ -3116,11 +3116,11 @@ packages: | ||
3116 | dev: true | 3116 | dev: true |
3117 | 3117 | ||
3118 | /buffer-crc32/0.2.13: | 3118 | /buffer-crc32/0.2.13: |
3119 | - resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} | 3119 | + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} |
3120 | dev: true | 3120 | dev: true |
3121 | 3121 | ||
3122 | /buffer-fill/1.0.0: | 3122 | /buffer-fill/1.0.0: |
3123 | - resolution: {integrity: sha1-+PeLdniYiO858gXNY39o5wISKyw=} | 3123 | + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} |
3124 | dev: true | 3124 | dev: true |
3125 | 3125 | ||
3126 | /buffer-from/1.1.2: | 3126 | /buffer-from/1.1.2: |
@@ -3161,7 +3161,7 @@ packages: | @@ -3161,7 +3161,7 @@ packages: | ||
3161 | dev: true | 3161 | dev: true |
3162 | 3162 | ||
3163 | /cacheable-request/2.1.4: | 3163 | /cacheable-request/2.1.4: |
3164 | - resolution: {integrity: sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=} | 3164 | + resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} |
3165 | dependencies: | 3165 | dependencies: |
3166 | clone-response: 1.0.2 | 3166 | clone-response: 1.0.2 |
3167 | get-stream: 3.0.0 | 3167 | get-stream: 3.0.0 |
@@ -3416,7 +3416,7 @@ packages: | @@ -3416,7 +3416,7 @@ packages: | ||
3416 | dev: true | 3416 | dev: true |
3417 | 3417 | ||
3418 | /clone-response/1.0.2: | 3418 | /clone-response/1.0.2: |
3419 | - resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} | 3419 | + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} |
3420 | dependencies: | 3420 | dependencies: |
3421 | mimic-response: 1.0.1 | 3421 | mimic-response: 1.0.1 |
3422 | dev: true | 3422 | dev: true |
@@ -3793,7 +3793,7 @@ packages: | @@ -3793,7 +3793,7 @@ packages: | ||
3793 | vary: 1.1.2 | 3793 | vary: 1.1.2 |
3794 | dev: true | 3794 | dev: true |
3795 | 3795 | ||
3796 | - /cosmiconfig-typescript-loader/1.0.9_3z6inmgn4ud4moqealnfxgbl2m: | 3796 | + /cosmiconfig-typescript-loader/1.0.9_de7c86b0cde507c63a0402da5b982bd3: |
3797 | resolution: {integrity: sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==} | 3797 | resolution: {integrity: sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==} |
3798 | engines: {node: '>=12', npm: '>=6'} | 3798 | engines: {node: '>=12', npm: '>=6'} |
3799 | peerDependencies: | 3799 | peerDependencies: |
@@ -3802,7 +3802,7 @@ packages: | @@ -3802,7 +3802,7 @@ packages: | ||
3802 | dependencies: | 3802 | dependencies: |
3803 | '@types/node': 17.0.25 | 3803 | '@types/node': 17.0.25 |
3804 | cosmiconfig: 7.0.1 | 3804 | cosmiconfig: 7.0.1 |
3805 | - ts-node: 10.7.0_3z6inmgn4ud4moqealnfxgbl2m | 3805 | + ts-node: 10.7.0_de7c86b0cde507c63a0402da5b982bd3 |
3806 | typescript: 4.6.3 | 3806 | typescript: 4.6.3 |
3807 | transitivePeerDependencies: | 3807 | transitivePeerDependencies: |
3808 | - '@swc/core' | 3808 | - '@swc/core' |
@@ -3851,7 +3851,7 @@ packages: | @@ -3851,7 +3851,7 @@ packages: | ||
3851 | dev: true | 3851 | dev: true |
3852 | 3852 | ||
3853 | /cross-spawn/5.1.0: | 3853 | /cross-spawn/5.1.0: |
3854 | - resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=} | 3854 | + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} |
3855 | dependencies: | 3855 | dependencies: |
3856 | lru-cache: 4.1.5 | 3856 | lru-cache: 4.1.5 |
3857 | shebang-command: 1.2.0 | 3857 | shebang-command: 1.2.0 |
@@ -4031,12 +4031,12 @@ packages: | @@ -4031,12 +4031,12 @@ packages: | ||
4031 | engines: {node: '>=0.10.0'} | 4031 | engines: {node: '>=0.10.0'} |
4032 | 4032 | ||
4033 | /decode-uri-component/0.2.0: | 4033 | /decode-uri-component/0.2.0: |
4034 | - resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} | 4034 | + resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} |
4035 | engines: {node: '>=0.10'} | 4035 | engines: {node: '>=0.10'} |
4036 | dev: true | 4036 | dev: true |
4037 | 4037 | ||
4038 | /decompress-response/3.3.0: | 4038 | /decompress-response/3.3.0: |
4039 | - resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} | 4039 | + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} |
4040 | engines: {node: '>=4'} | 4040 | engines: {node: '>=4'} |
4041 | dependencies: | 4041 | dependencies: |
4042 | mimic-response: 1.0.1 | 4042 | mimic-response: 1.0.1 |
@@ -4072,7 +4072,7 @@ packages: | @@ -4072,7 +4072,7 @@ packages: | ||
4072 | dev: true | 4072 | dev: true |
4073 | 4073 | ||
4074 | /decompress-unzip/4.0.1: | 4074 | /decompress-unzip/4.0.1: |
4075 | - resolution: {integrity: sha1-3qrM39FK6vhVePczroIQ+bSEj2k=} | 4075 | + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} |
4076 | engines: {node: '>=4'} | 4076 | engines: {node: '>=4'} |
4077 | dependencies: | 4077 | dependencies: |
4078 | file-type: 3.9.0 | 4078 | file-type: 3.9.0 |
@@ -4309,7 +4309,7 @@ packages: | @@ -4309,7 +4309,7 @@ packages: | ||
4309 | dev: true | 4309 | dev: true |
4310 | 4310 | ||
4311 | /duplexer3/0.1.4: | 4311 | /duplexer3/0.1.4: |
4312 | - resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} | 4312 | + resolution: {integrity: sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==} |
4313 | dev: true | 4313 | dev: true |
4314 | 4314 | ||
4315 | /eastasianwidth/0.2.0: | 4315 | /eastasianwidth/0.2.0: |
@@ -4699,7 +4699,7 @@ packages: | @@ -4699,7 +4699,7 @@ packages: | ||
4699 | eslint: 8.13.0 | 4699 | eslint: 8.13.0 |
4700 | dev: true | 4700 | dev: true |
4701 | 4701 | ||
4702 | - /eslint-plugin-prettier/4.0.0_dak2zfnx7mtmcpd5jcuo55rnb4: | 4702 | + /eslint-plugin-prettier/4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f: |
4703 | resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} | 4703 | resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} |
4704 | engines: {node: '>=6.0.0'} | 4704 | engines: {node: '>=6.0.0'} |
4705 | peerDependencies: | 4705 | peerDependencies: |
@@ -4884,7 +4884,7 @@ packages: | @@ -4884,7 +4884,7 @@ packages: | ||
4884 | dev: true | 4884 | dev: true |
4885 | 4885 | ||
4886 | /execa/0.7.0: | 4886 | /execa/0.7.0: |
4887 | - resolution: {integrity: sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=} | 4887 | + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} |
4888 | engines: {node: '>=4'} | 4888 | engines: {node: '>=4'} |
4889 | dependencies: | 4889 | dependencies: |
4890 | cross-spawn: 5.1.0 | 4890 | cross-spawn: 5.1.0 |
@@ -5070,7 +5070,7 @@ packages: | @@ -5070,7 +5070,7 @@ packages: | ||
5070 | dev: true | 5070 | dev: true |
5071 | 5071 | ||
5072 | /fd-slicer/1.1.0: | 5072 | /fd-slicer/1.1.0: |
5073 | - resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} | 5073 | + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} |
5074 | dependencies: | 5074 | dependencies: |
5075 | pend: 1.2.0 | 5075 | pend: 1.2.0 |
5076 | dev: true | 5076 | dev: true |
@@ -5115,17 +5115,17 @@ packages: | @@ -5115,17 +5115,17 @@ packages: | ||
5115 | dev: true | 5115 | dev: true |
5116 | 5116 | ||
5117 | /file-type/3.9.0: | 5117 | /file-type/3.9.0: |
5118 | - resolution: {integrity: sha1-JXoHg4TR24CHvESdEH1SpSZyuek=} | 5118 | + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} |
5119 | engines: {node: '>=0.10.0'} | 5119 | engines: {node: '>=0.10.0'} |
5120 | dev: true | 5120 | dev: true |
5121 | 5121 | ||
5122 | /file-type/4.4.0: | 5122 | /file-type/4.4.0: |
5123 | - resolution: {integrity: sha1-G2AOX8ofvcboDApwxxyNul95BsU=} | 5123 | + resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==} |
5124 | engines: {node: '>=4'} | 5124 | engines: {node: '>=4'} |
5125 | dev: true | 5125 | dev: true |
5126 | 5126 | ||
5127 | /file-type/5.2.0: | 5127 | /file-type/5.2.0: |
5128 | - resolution: {integrity: sha1-LdvqfHP/42No365J3DOMBYwritY=} | 5128 | + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} |
5129 | engines: {node: '>=4'} | 5129 | engines: {node: '>=4'} |
5130 | dev: true | 5130 | dev: true |
5131 | 5131 | ||
@@ -5146,7 +5146,7 @@ packages: | @@ -5146,7 +5146,7 @@ packages: | ||
5146 | dev: true | 5146 | dev: true |
5147 | 5147 | ||
5148 | /filename-reserved-regex/2.0.0: | 5148 | /filename-reserved-regex/2.0.0: |
5149 | - resolution: {integrity: sha1-q/c9+rc10EVECr/qLZHzieu/oik=} | 5149 | + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} |
5150 | engines: {node: '>=4'} | 5150 | engines: {node: '>=4'} |
5151 | dev: true | 5151 | dev: true |
5152 | 5152 | ||
@@ -5302,7 +5302,7 @@ packages: | @@ -5302,7 +5302,7 @@ packages: | ||
5302 | dev: true | 5302 | dev: true |
5303 | 5303 | ||
5304 | /from2/2.3.0: | 5304 | /from2/2.3.0: |
5305 | - resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} | 5305 | + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} |
5306 | dependencies: | 5306 | dependencies: |
5307 | inherits: 2.0.4 | 5307 | inherits: 2.0.4 |
5308 | readable-stream: 2.3.7 | 5308 | readable-stream: 2.3.7 |
@@ -5412,7 +5412,7 @@ packages: | @@ -5412,7 +5412,7 @@ packages: | ||
5412 | dev: true | 5412 | dev: true |
5413 | 5413 | ||
5414 | /get-stream/2.3.1: | 5414 | /get-stream/2.3.1: |
5415 | - resolution: {integrity: sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=} | 5415 | + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} |
5416 | engines: {node: '>=0.10.0'} | 5416 | engines: {node: '>=0.10.0'} |
5417 | dependencies: | 5417 | dependencies: |
5418 | object-assign: 4.1.1 | 5418 | object-assign: 4.1.1 |
@@ -5420,7 +5420,7 @@ packages: | @@ -5420,7 +5420,7 @@ packages: | ||
5420 | dev: true | 5420 | dev: true |
5421 | 5421 | ||
5422 | /get-stream/3.0.0: | 5422 | /get-stream/3.0.0: |
5423 | - resolution: {integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=} | 5423 | + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} |
5424 | engines: {node: '>=4'} | 5424 | engines: {node: '>=4'} |
5425 | dev: true | 5425 | dev: true |
5426 | 5426 | ||
@@ -5897,7 +5897,7 @@ packages: | @@ -5897,7 +5897,7 @@ packages: | ||
5897 | dev: true | 5897 | dev: true |
5898 | 5898 | ||
5899 | /image-size/0.5.5: | 5899 | /image-size/0.5.5: |
5900 | - resolution: {integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=} | 5900 | + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} |
5901 | engines: {node: '>=0.10.0'} | 5901 | engines: {node: '>=0.10.0'} |
5902 | hasBin: true | 5902 | hasBin: true |
5903 | dev: true | 5903 | dev: true |
@@ -6079,7 +6079,7 @@ packages: | @@ -6079,7 +6079,7 @@ packages: | ||
6079 | dev: true | 6079 | dev: true |
6080 | 6080 | ||
6081 | /into-stream/3.1.0: | 6081 | /into-stream/3.1.0: |
6082 | - resolution: {integrity: sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=} | 6082 | + resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} |
6083 | engines: {node: '>=4'} | 6083 | engines: {node: '>=4'} |
6084 | dependencies: | 6084 | dependencies: |
6085 | from2: 2.3.0 | 6085 | from2: 2.3.0 |
@@ -6267,7 +6267,7 @@ packages: | @@ -6267,7 +6267,7 @@ packages: | ||
6267 | dev: true | 6267 | dev: true |
6268 | 6268 | ||
6269 | /is-natural-number/4.0.1: | 6269 | /is-natural-number/4.0.1: |
6270 | - resolution: {integrity: sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=} | 6270 | + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} |
6271 | dev: true | 6271 | dev: true |
6272 | 6272 | ||
6273 | /is-negative-zero/2.0.2: | 6273 | /is-negative-zero/2.0.2: |
@@ -6433,7 +6433,7 @@ packages: | @@ -6433,7 +6433,7 @@ packages: | ||
6433 | dev: true | 6433 | dev: true |
6434 | 6434 | ||
6435 | /isarray/1.0.0: | 6435 | /isarray/1.0.0: |
6436 | - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} | 6436 | + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} |
6437 | dev: true | 6437 | dev: true |
6438 | 6438 | ||
6439 | /isexe/2.0.0: | 6439 | /isexe/2.0.0: |
@@ -6532,7 +6532,7 @@ packages: | @@ -6532,7 +6532,7 @@ packages: | ||
6532 | dev: true | 6532 | dev: true |
6533 | 6533 | ||
6534 | /json-buffer/3.0.0: | 6534 | /json-buffer/3.0.0: |
6535 | - resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} | 6535 | + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} |
6536 | dev: true | 6536 | dev: true |
6537 | 6537 | ||
6538 | /json-parse-better-errors/1.0.2: | 6538 | /json-parse-better-errors/1.0.2: |
@@ -6865,7 +6865,7 @@ packages: | @@ -6865,7 +6865,7 @@ packages: | ||
6865 | dev: true | 6865 | dev: true |
6866 | 6866 | ||
6867 | /lowercase-keys/1.0.0: | 6867 | /lowercase-keys/1.0.0: |
6868 | - resolution: {integrity: sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=} | 6868 | + resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==} |
6869 | engines: {node: '>=0.10.0'} | 6869 | engines: {node: '>=0.10.0'} |
6870 | dev: true | 6870 | dev: true |
6871 | 6871 | ||
@@ -7509,7 +7509,7 @@ packages: | @@ -7509,7 +7509,7 @@ packages: | ||
7509 | dev: true | 7509 | dev: true |
7510 | 7510 | ||
7511 | /p-event/1.3.0: | 7511 | /p-event/1.3.0: |
7512 | - resolution: {integrity: sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=} | 7512 | + resolution: {integrity: sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==} |
7513 | engines: {node: '>=4'} | 7513 | engines: {node: '>=4'} |
7514 | dependencies: | 7514 | dependencies: |
7515 | p-timeout: 1.2.1 | 7515 | p-timeout: 1.2.1 |
@@ -7528,7 +7528,7 @@ packages: | @@ -7528,7 +7528,7 @@ packages: | ||
7528 | dev: true | 7528 | dev: true |
7529 | 7529 | ||
7530 | /p-is-promise/1.1.0: | 7530 | /p-is-promise/1.1.0: |
7531 | - resolution: {integrity: sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=} | 7531 | + resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==} |
7532 | engines: {node: '>=4'} | 7532 | engines: {node: '>=4'} |
7533 | dev: true | 7533 | dev: true |
7534 | 7534 | ||
@@ -7597,7 +7597,7 @@ packages: | @@ -7597,7 +7597,7 @@ packages: | ||
7597 | dev: true | 7597 | dev: true |
7598 | 7598 | ||
7599 | /p-timeout/1.2.1: | 7599 | /p-timeout/1.2.1: |
7600 | - resolution: {integrity: sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=} | 7600 | + resolution: {integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==} |
7601 | engines: {node: '>=4'} | 7601 | engines: {node: '>=4'} |
7602 | dependencies: | 7602 | dependencies: |
7603 | p-finally: 1.0.0 | 7603 | p-finally: 1.0.0 |
@@ -7756,7 +7756,7 @@ packages: | @@ -7756,7 +7756,7 @@ packages: | ||
7756 | dev: true | 7756 | dev: true |
7757 | 7757 | ||
7758 | /pend/1.2.0: | 7758 | /pend/1.2.0: |
7759 | - resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} | 7759 | + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} |
7760 | dev: true | 7760 | dev: true |
7761 | 7761 | ||
7762 | /picocolors/1.0.0: | 7762 | /picocolors/1.0.0: |
@@ -7780,12 +7780,12 @@ packages: | @@ -7780,12 +7780,12 @@ packages: | ||
7780 | dev: true | 7780 | dev: true |
7781 | 7781 | ||
7782 | /pify/2.3.0: | 7782 | /pify/2.3.0: |
7783 | - resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} | 7783 | + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} |
7784 | engines: {node: '>=0.10.0'} | 7784 | engines: {node: '>=0.10.0'} |
7785 | dev: true | 7785 | dev: true |
7786 | 7786 | ||
7787 | /pify/3.0.0: | 7787 | /pify/3.0.0: |
7788 | - resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} | 7788 | + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} |
7789 | engines: {node: '>=4'} | 7789 | engines: {node: '>=4'} |
7790 | dev: true | 7790 | dev: true |
7791 | 7791 | ||
@@ -7794,7 +7794,7 @@ packages: | @@ -7794,7 +7794,7 @@ packages: | ||
7794 | engines: {node: '>=6'} | 7794 | engines: {node: '>=6'} |
7795 | dev: true | 7795 | dev: true |
7796 | 7796 | ||
7797 | - /pinia/2.0.12_ifhmkzsxec62ezvqv7qmanm4bq: | 7797 | + /pinia/2.0.12_typescript@4.6.3+vue@3.2.33: |
7798 | resolution: {integrity: sha512-tUeuYGFrLU5irmGyRAIxp35q1OTcZ8sKpGT4XkPeVcG35W4R6cfXDbCGexzmVqH5lTQJJTXXbNGutIu9yS5yew==} | 7798 | resolution: {integrity: sha512-tUeuYGFrLU5irmGyRAIxp35q1OTcZ8sKpGT4XkPeVcG35W4R6cfXDbCGexzmVqH5lTQJJTXXbNGutIu9yS5yew==} |
7799 | peerDependencies: | 7799 | peerDependencies: |
7800 | '@vue/composition-api': ^1.4.0 | 7800 | '@vue/composition-api': ^1.4.0 |
@@ -7813,14 +7813,14 @@ packages: | @@ -7813,14 +7813,14 @@ packages: | ||
7813 | dev: false | 7813 | dev: false |
7814 | 7814 | ||
7815 | /pinkie-promise/2.0.1: | 7815 | /pinkie-promise/2.0.1: |
7816 | - resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} | 7816 | + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} |
7817 | engines: {node: '>=0.10.0'} | 7817 | engines: {node: '>=0.10.0'} |
7818 | dependencies: | 7818 | dependencies: |
7819 | pinkie: 2.0.4 | 7819 | pinkie: 2.0.4 |
7820 | dev: true | 7820 | dev: true |
7821 | 7821 | ||
7822 | /pinkie/2.0.4: | 7822 | /pinkie/2.0.4: |
7823 | - resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} | 7823 | + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} |
7824 | engines: {node: '>=0.10.0'} | 7824 | engines: {node: '>=0.10.0'} |
7825 | dev: true | 7825 | dev: true |
7826 | 7826 | ||
@@ -7971,12 +7971,12 @@ packages: | @@ -7971,12 +7971,12 @@ packages: | ||
7971 | dev: true | 7971 | dev: true |
7972 | 7972 | ||
7973 | /prepend-http/1.0.4: | 7973 | /prepend-http/1.0.4: |
7974 | - resolution: {integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=} | 7974 | + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} |
7975 | engines: {node: '>=0.10.0'} | 7975 | engines: {node: '>=0.10.0'} |
7976 | dev: true | 7976 | dev: true |
7977 | 7977 | ||
7978 | /prepend-http/2.0.0: | 7978 | /prepend-http/2.0.0: |
7979 | - resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} | 7979 | + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} |
7980 | engines: {node: '>=4'} | 7980 | engines: {node: '>=4'} |
7981 | dev: true | 7981 | dev: true |
7982 | 7982 | ||
@@ -8007,7 +8007,7 @@ packages: | @@ -8007,7 +8007,7 @@ packages: | ||
8007 | dev: true | 8007 | dev: true |
8008 | 8008 | ||
8009 | /proto-list/1.2.4: | 8009 | /proto-list/1.2.4: |
8010 | - resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} | 8010 | + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} |
8011 | dev: true | 8011 | dev: true |
8012 | 8012 | ||
8013 | /prr/1.0.1: | 8013 | /prr/1.0.1: |
@@ -8016,7 +8016,7 @@ packages: | @@ -8016,7 +8016,7 @@ packages: | ||
8016 | optional: true | 8016 | optional: true |
8017 | 8017 | ||
8018 | /pseudomap/1.0.2: | 8018 | /pseudomap/1.0.2: |
8019 | - resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} | 8019 | + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} |
8020 | dev: true | 8020 | dev: true |
8021 | 8021 | ||
8022 | /pug-error/2.0.0: | 8022 | /pug-error/2.0.0: |
@@ -8351,7 +8351,7 @@ packages: | @@ -8351,7 +8351,7 @@ packages: | ||
8351 | dev: true | 8351 | dev: true |
8352 | 8352 | ||
8353 | /responselike/1.0.2: | 8353 | /responselike/1.0.2: |
8354 | - resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} | 8354 | + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} |
8355 | dependencies: | 8355 | dependencies: |
8356 | lowercase-keys: 1.0.1 | 8356 | lowercase-keys: 1.0.1 |
8357 | dev: true | 8357 | dev: true |
@@ -8511,7 +8511,7 @@ packages: | @@ -8511,7 +8511,7 @@ packages: | ||
8511 | dev: true | 8511 | dev: true |
8512 | 8512 | ||
8513 | /semver-truncate/1.1.2: | 8513 | /semver-truncate/1.1.2: |
8514 | - resolution: {integrity: sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=} | 8514 | + resolution: {integrity: sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==} |
8515 | engines: {node: '>=0.10.0'} | 8515 | engines: {node: '>=0.10.0'} |
8516 | dependencies: | 8516 | dependencies: |
8517 | semver: 5.7.1 | 8517 | semver: 5.7.1 |
@@ -8695,21 +8695,21 @@ packages: | @@ -8695,21 +8695,21 @@ packages: | ||
8695 | dev: true | 8695 | dev: true |
8696 | 8696 | ||
8697 | /sort-keys-length/1.0.1: | 8697 | /sort-keys-length/1.0.1: |
8698 | - resolution: {integrity: sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=} | 8698 | + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} |
8699 | engines: {node: '>=0.10.0'} | 8699 | engines: {node: '>=0.10.0'} |
8700 | dependencies: | 8700 | dependencies: |
8701 | sort-keys: 1.1.2 | 8701 | sort-keys: 1.1.2 |
8702 | dev: true | 8702 | dev: true |
8703 | 8703 | ||
8704 | /sort-keys/1.1.2: | 8704 | /sort-keys/1.1.2: |
8705 | - resolution: {integrity: sha1-RBttTTRnmPG05J6JIK37oOVD+a0=} | 8705 | + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} |
8706 | engines: {node: '>=0.10.0'} | 8706 | engines: {node: '>=0.10.0'} |
8707 | dependencies: | 8707 | dependencies: |
8708 | is-plain-obj: 1.1.0 | 8708 | is-plain-obj: 1.1.0 |
8709 | dev: true | 8709 | dev: true |
8710 | 8710 | ||
8711 | /sort-keys/2.0.0: | 8711 | /sort-keys/2.0.0: |
8712 | - resolution: {integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=} | 8712 | + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} |
8713 | engines: {node: '>=4'} | 8713 | engines: {node: '>=4'} |
8714 | dependencies: | 8714 | dependencies: |
8715 | is-plain-obj: 1.1.0 | 8715 | is-plain-obj: 1.1.0 |
@@ -9053,7 +9053,7 @@ packages: | @@ -9053,7 +9053,7 @@ packages: | ||
9053 | resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=} | 9053 | resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=} |
9054 | dev: true | 9054 | dev: true |
9055 | 9055 | ||
9056 | - /stylelint-config-html/1.0.0_dkblcabdfo7hanxmbj6kpjf26q: | 9056 | + /stylelint-config-html/1.0.0_1a82b100232bbe7036ec0a7ca7a4baf4: |
9057 | resolution: {integrity: sha512-rKQUUWDpaYC7ybsS6tLxddjn6DxhjSIXybElSmcTyVQj3ExhmU3q+l41ktrlwHRyY0M5SkTkZiwngvYPYmsgSQ==} | 9057 | resolution: {integrity: sha512-rKQUUWDpaYC7ybsS6tLxddjn6DxhjSIXybElSmcTyVQj3ExhmU3q+l41ktrlwHRyY0M5SkTkZiwngvYPYmsgSQ==} |
9058 | engines: {node: ^12 || >=14} | 9058 | engines: {node: ^12 || >=14} |
9059 | peerDependencies: | 9059 | peerDependencies: |
@@ -9074,7 +9074,7 @@ packages: | @@ -9074,7 +9074,7 @@ packages: | ||
9074 | stylelint: 14.7.1 | 9074 | stylelint: 14.7.1 |
9075 | dev: true | 9075 | dev: true |
9076 | 9076 | ||
9077 | - /stylelint-config-recommended-vue/1.4.0_dkblcabdfo7hanxmbj6kpjf26q: | 9077 | + /stylelint-config-recommended-vue/1.4.0_1a82b100232bbe7036ec0a7ca7a4baf4: |
9078 | resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} | 9078 | resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} |
9079 | engines: {node: ^12 || >=14} | 9079 | engines: {node: ^12 || >=14} |
9080 | peerDependencies: | 9080 | peerDependencies: |
@@ -9084,7 +9084,7 @@ packages: | @@ -9084,7 +9084,7 @@ packages: | ||
9084 | postcss-html: 1.4.1 | 9084 | postcss-html: 1.4.1 |
9085 | semver: 7.3.7 | 9085 | semver: 7.3.7 |
9086 | stylelint: 14.7.1 | 9086 | stylelint: 14.7.1 |
9087 | - stylelint-config-html: 1.0.0_dkblcabdfo7hanxmbj6kpjf26q | 9087 | + stylelint-config-html: 1.0.0_1a82b100232bbe7036ec0a7ca7a4baf4 |
9088 | stylelint-config-recommended: 7.0.0_stylelint@14.7.1 | 9088 | stylelint-config-recommended: 7.0.0_stylelint@14.7.1 |
9089 | dev: true | 9089 | dev: true |
9090 | 9090 | ||
@@ -9347,7 +9347,7 @@ packages: | @@ -9347,7 +9347,7 @@ packages: | ||
9347 | dev: true | 9347 | dev: true |
9348 | 9348 | ||
9349 | /timed-out/4.0.1: | 9349 | /timed-out/4.0.1: |
9350 | - resolution: {integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=} | 9350 | + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} |
9351 | engines: {node: '>=0.10.0'} | 9351 | engines: {node: '>=0.10.0'} |
9352 | dev: true | 9352 | dev: true |
9353 | 9353 | ||
@@ -9436,13 +9436,13 @@ packages: | @@ -9436,13 +9436,13 @@ packages: | ||
9436 | dev: true | 9436 | dev: true |
9437 | 9437 | ||
9438 | /trim-repeated/1.0.0: | 9438 | /trim-repeated/1.0.0: |
9439 | - resolution: {integrity: sha1-42RqLqTokTEr9+rObPsFOAvAHCE=} | 9439 | + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} |
9440 | engines: {node: '>=0.10.0'} | 9440 | engines: {node: '>=0.10.0'} |
9441 | dependencies: | 9441 | dependencies: |
9442 | escape-string-regexp: 1.0.5 | 9442 | escape-string-regexp: 1.0.5 |
9443 | dev: true | 9443 | dev: true |
9444 | 9444 | ||
9445 | - /ts-node/10.7.0_3z6inmgn4ud4moqealnfxgbl2m: | 9445 | + /ts-node/10.7.0_de7c86b0cde507c63a0402da5b982bd3: |
9446 | resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} | 9446 | resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} |
9447 | hasBin: true | 9447 | hasBin: true |
9448 | peerDependencies: | 9448 | peerDependencies: |
@@ -9496,7 +9496,7 @@ packages: | @@ -9496,7 +9496,7 @@ packages: | ||
9496 | dev: true | 9496 | dev: true |
9497 | 9497 | ||
9498 | /tunnel-agent/0.6.0: | 9498 | /tunnel-agent/0.6.0: |
9499 | - resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} | 9499 | + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} |
9500 | dependencies: | 9500 | dependencies: |
9501 | safe-buffer: 5.2.1 | 9501 | safe-buffer: 5.2.1 |
9502 | dev: true | 9502 | dev: true |
@@ -9681,14 +9681,14 @@ packages: | @@ -9681,14 +9681,14 @@ packages: | ||
9681 | dev: true | 9681 | dev: true |
9682 | 9682 | ||
9683 | /url-parse-lax/3.0.0: | 9683 | /url-parse-lax/3.0.0: |
9684 | - resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} | 9684 | + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} |
9685 | engines: {node: '>=4'} | 9685 | engines: {node: '>=4'} |
9686 | dependencies: | 9686 | dependencies: |
9687 | prepend-http: 2.0.0 | 9687 | prepend-http: 2.0.0 |
9688 | dev: true | 9688 | dev: true |
9689 | 9689 | ||
9690 | /url-to-options/1.0.1: | 9690 | /url-to-options/1.0.1: |
9691 | - resolution: {integrity: sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=} | 9691 | + resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==} |
9692 | engines: {node: '>= 4'} | 9692 | engines: {node: '>= 4'} |
9693 | dev: true | 9693 | dev: true |
9694 | 9694 | ||
@@ -9816,7 +9816,7 @@ packages: | @@ -9816,7 +9816,7 @@ packages: | ||
9816 | - supports-color | 9816 | - supports-color |
9817 | dev: true | 9817 | dev: true |
9818 | 9818 | ||
9819 | - /vite-plugin-mock/2.9.6_qiwm6q27tfokd2mntem6ma7w4y: | 9819 | + /vite-plugin-mock/2.9.6_822ccf435f995ca1e98d9919e603f6e6: |
9820 | resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==} | 9820 | resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==} |
9821 | engines: {node: '>=12.0.0'} | 9821 | engines: {node: '>=12.0.0'} |
9822 | peerDependencies: | 9822 | peerDependencies: |
@@ -10202,7 +10202,7 @@ packages: | @@ -10202,7 +10202,7 @@ packages: | ||
10202 | '@babel/core': 7.17.9 | 10202 | '@babel/core': 7.17.9 |
10203 | '@babel/preset-env': 7.16.11_@babel+core@7.17.9 | 10203 | '@babel/preset-env': 7.16.11_@babel+core@7.17.9 |
10204 | '@babel/runtime': 7.17.9 | 10204 | '@babel/runtime': 7.17.9 |
10205 | - '@rollup/plugin-babel': 5.3.1_6m6vi5xreq5wlqqwvo3xvcrttm | 10205 | + '@rollup/plugin-babel': 5.3.1_@babel+core@7.17.9+rollup@2.70.2 |
10206 | '@rollup/plugin-node-resolve': 11.2.1_rollup@2.70.2 | 10206 | '@rollup/plugin-node-resolve': 11.2.1_rollup@2.70.2 |
10207 | '@rollup/plugin-replace': 2.4.2_rollup@2.70.2 | 10207 | '@rollup/plugin-replace': 2.4.2_rollup@2.70.2 |
10208 | '@surma/rollup-plugin-off-main-thread': 2.2.3 | 10208 | '@surma/rollup-plugin-off-main-thread': 2.2.3 |
@@ -10385,7 +10385,7 @@ packages: | @@ -10385,7 +10385,7 @@ packages: | ||
10385 | dev: true | 10385 | dev: true |
10386 | 10386 | ||
10387 | /yallist/2.1.2: | 10387 | /yallist/2.1.2: |
10388 | - resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} | 10388 | + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} |
10389 | dev: true | 10389 | dev: true |
10390 | 10390 | ||
10391 | /yallist/4.0.0: | 10391 | /yallist/4.0.0: |
@@ -10459,7 +10459,7 @@ packages: | @@ -10459,7 +10459,7 @@ packages: | ||
10459 | dev: true | 10459 | dev: true |
10460 | 10460 | ||
10461 | /yauzl/2.10.0: | 10461 | /yauzl/2.10.0: |
10462 | - resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} | 10462 | + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} |
10463 | dependencies: | 10463 | dependencies: |
10464 | buffer-crc32: 0.2.13 | 10464 | buffer-crc32: 0.2.13 |
10465 | fd-slicer: 1.1.0 | 10465 | fd-slicer: 1.1.0 |
src/enums/appEnum.ts
@@ -30,14 +30,18 @@ export enum SessionTimeoutProcessingEnum { | @@ -30,14 +30,18 @@ export enum SessionTimeoutProcessingEnum { | ||
30 | */ | 30 | */ |
31 | export enum PermissionModeEnum { | 31 | export enum PermissionModeEnum { |
32 | // role | 32 | // role |
33 | + // 角色权限 | ||
33 | ROLE = 'ROLE', | 34 | ROLE = 'ROLE', |
34 | // black | 35 | // black |
36 | + // 后端 | ||
35 | BACK = 'BACK', | 37 | BACK = 'BACK', |
36 | // route mapping | 38 | // route mapping |
39 | + // 路由映射 | ||
37 | ROUTE_MAPPING = 'ROUTE_MAPPING', | 40 | ROUTE_MAPPING = 'ROUTE_MAPPING', |
38 | } | 41 | } |
39 | 42 | ||
40 | -// Route switching animation | 43 | +// Route switching animation |
44 | +// 路由切换动画 | ||
41 | export enum RouterTransitionEnum { | 45 | export enum RouterTransitionEnum { |
42 | ZOOM_FADE = 'zoom-fade', | 46 | ZOOM_FADE = 'zoom-fade', |
43 | ZOOM_OUT = 'zoom-out', | 47 | ZOOM_OUT = 'zoom-out', |
src/hooks/web/usePermission.ts
@@ -39,6 +39,7 @@ export function usePermission() { | @@ -39,6 +39,7 @@ export function usePermission() { | ||
39 | 39 | ||
40 | /** | 40 | /** |
41 | * Reset and regain authority resource information | 41 | * Reset and regain authority resource information |
42 | + * 重置和重新获得权限资源信息 | ||
42 | * @param id | 43 | * @param id |
43 | */ | 44 | */ |
44 | async function resume() { | 45 | async function resume() { |
src/router/helper/menuHelper.ts
@@ -11,14 +11,18 @@ export function getAllParentPath<T = Recordable>(treeData: T[], path: string) { | @@ -11,14 +11,18 @@ export function getAllParentPath<T = Recordable>(treeData: T[], path: string) { | ||
11 | return (menuList || []).map((item) => item.path); | 11 | return (menuList || []).map((item) => item.path); |
12 | } | 12 | } |
13 | 13 | ||
14 | +// 路径处理 | ||
14 | function joinParentPath(menus: Menu[], parentPath = '') { | 15 | function joinParentPath(menus: Menu[], parentPath = '') { |
15 | for (let index = 0; index < menus.length; index++) { | 16 | for (let index = 0; index < menus.length; index++) { |
16 | const menu = menus[index]; | 17 | const menu = menus[index]; |
17 | // https://next.router.vuejs.org/guide/essentials/nested-routes.html | 18 | // https://next.router.vuejs.org/guide/essentials/nested-routes.html |
18 | // Note that nested paths that start with / will be treated as a root path. | 19 | // Note that nested paths that start with / will be treated as a root path. |
20 | + // 请注意,以 / 开头的嵌套路径将被视为根路径。 | ||
19 | // This allows you to leverage the component nesting without having to use a nested URL. | 21 | // This allows you to leverage the component nesting without having to use a nested URL. |
22 | + // 这允许你利用组件嵌套,而无需使用嵌套 URL。 | ||
20 | if (!(menu.path.startsWith('/') || isUrl(menu.path))) { | 23 | if (!(menu.path.startsWith('/') || isUrl(menu.path))) { |
21 | // path doesn't start with /, nor is it a url, join parent path | 24 | // path doesn't start with /, nor is it a url, join parent path |
25 | + // 路径不以 / 开头,也不是 url,加入父路径 | ||
22 | menu.path = `${parentPath}/${menu.path}`; | 26 | menu.path = `${parentPath}/${menu.path}`; |
23 | } | 27 | } |
24 | if (menu?.children?.length) { | 28 | if (menu?.children?.length) { |
@@ -37,14 +41,18 @@ export function transformMenuModule(menuModule: MenuModule): Menu { | @@ -37,14 +41,18 @@ export function transformMenuModule(menuModule: MenuModule): Menu { | ||
37 | return menuList[0]; | 41 | return menuList[0]; |
38 | } | 42 | } |
39 | 43 | ||
44 | +// 将路由转换成菜单 | ||
40 | export function transformRouteToMenu(routeModList: AppRouteModule[], routerMapping = false) { | 45 | export function transformRouteToMenu(routeModList: AppRouteModule[], routerMapping = false) { |
46 | + // 借助 lodash 深拷贝 | ||
41 | const cloneRouteModList = cloneDeep(routeModList); | 47 | const cloneRouteModList = cloneDeep(routeModList); |
42 | const routeList: AppRouteRecordRaw[] = []; | 48 | const routeList: AppRouteRecordRaw[] = []; |
43 | 49 | ||
50 | + // 对路由项进行修改 | ||
44 | cloneRouteModList.forEach((item) => { | 51 | cloneRouteModList.forEach((item) => { |
45 | if (routerMapping && item.meta.hideChildrenInMenu && typeof item.redirect === 'string') { | 52 | if (routerMapping && item.meta.hideChildrenInMenu && typeof item.redirect === 'string') { |
46 | item.path = item.redirect; | 53 | item.path = item.redirect; |
47 | } | 54 | } |
55 | + | ||
48 | if (item.meta?.single) { | 56 | if (item.meta?.single) { |
49 | const realItem = item?.children?.[0]; | 57 | const realItem = item?.children?.[0]; |
50 | realItem && routeList.push(realItem); | 58 | realItem && routeList.push(realItem); |
@@ -52,6 +60,7 @@ export function transformRouteToMenu(routeModList: AppRouteModule[], routerMappi | @@ -52,6 +60,7 @@ export function transformRouteToMenu(routeModList: AppRouteModule[], routerMappi | ||
52 | routeList.push(item); | 60 | routeList.push(item); |
53 | } | 61 | } |
54 | }); | 62 | }); |
63 | + // 提取树指定结构 | ||
55 | const list = treeMap(routeList, { | 64 | const list = treeMap(routeList, { |
56 | conversion: (node: AppRouteRecordRaw) => { | 65 | conversion: (node: AppRouteRecordRaw) => { |
57 | const { meta: { title, hideMenu = false } = {} } = node; | 66 | const { meta: { title, hideMenu = false } = {} } = node; |
@@ -66,6 +75,7 @@ export function transformRouteToMenu(routeModList: AppRouteModule[], routerMappi | @@ -66,6 +75,7 @@ export function transformRouteToMenu(routeModList: AppRouteModule[], routerMappi | ||
66 | }; | 75 | }; |
67 | }, | 76 | }, |
68 | }); | 77 | }); |
78 | + // 路径处理 | ||
69 | joinParentPath(list); | 79 | joinParentPath(list); |
70 | return cloneDeep(list); | 80 | return cloneDeep(list); |
71 | } | 81 | } |
@@ -74,6 +84,7 @@ export function transformRouteToMenu(routeModList: AppRouteModule[], routerMappi | @@ -74,6 +84,7 @@ export function transformRouteToMenu(routeModList: AppRouteModule[], routerMappi | ||
74 | * config menu with given params | 84 | * config menu with given params |
75 | */ | 85 | */ |
76 | const menuParamRegex = /(?::)([\s\S]+?)((?=\/)|$)/g; | 86 | const menuParamRegex = /(?::)([\s\S]+?)((?=\/)|$)/g; |
87 | + | ||
77 | export function configureDynamicParamsMenu(menu: Menu, params: RouteParams) { | 88 | export function configureDynamicParamsMenu(menu: Menu, params: RouteParams) { |
78 | const { path, paramPath } = toRaw(menu); | 89 | const { path, paramPath } = toRaw(menu); |
79 | let realPath = paramPath ? paramPath : path; | 90 | let realPath = paramPath ? paramPath : path; |
src/router/helper/routeHelper.ts
@@ -68,6 +68,7 @@ function dynamicImport( | @@ -68,6 +68,7 @@ function dynamicImport( | ||
68 | } | 68 | } |
69 | 69 | ||
70 | // Turn background objects into routing objects | 70 | // Turn background objects into routing objects |
71 | +// 将背景对象变成路由对象 | ||
71 | export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModule[]): T[] { | 72 | export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModule[]): T[] { |
72 | routeList.forEach((route) => { | 73 | routeList.forEach((route) => { |
73 | const component = route.component as string; | 74 | const component = route.component as string; |
@@ -94,35 +95,46 @@ export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModul | @@ -94,35 +95,46 @@ export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModul | ||
94 | 95 | ||
95 | /** | 96 | /** |
96 | * Convert multi-level routing to level 2 routing | 97 | * Convert multi-level routing to level 2 routing |
98 | + * 将多级路由转换为 2 级路由 | ||
97 | */ | 99 | */ |
98 | export function flatMultiLevelRoutes(routeModules: AppRouteModule[]) { | 100 | export function flatMultiLevelRoutes(routeModules: AppRouteModule[]) { |
99 | const modules: AppRouteModule[] = cloneDeep(routeModules); | 101 | const modules: AppRouteModule[] = cloneDeep(routeModules); |
102 | + | ||
100 | for (let index = 0; index < modules.length; index++) { | 103 | for (let index = 0; index < modules.length; index++) { |
101 | const routeModule = modules[index]; | 104 | const routeModule = modules[index]; |
105 | + // 判断级别是否 多级 路由 | ||
102 | if (!isMultipleRoute(routeModule)) { | 106 | if (!isMultipleRoute(routeModule)) { |
107 | + // 声明终止当前循环, 即跳过此次循环,进行下一轮 | ||
103 | continue; | 108 | continue; |
104 | } | 109 | } |
110 | + // 路由等级提升 | ||
105 | promoteRouteLevel(routeModule); | 111 | promoteRouteLevel(routeModule); |
106 | } | 112 | } |
107 | return modules; | 113 | return modules; |
108 | } | 114 | } |
109 | 115 | ||
110 | // Routing level upgrade | 116 | // Routing level upgrade |
117 | +// 路由等级提升 | ||
111 | function promoteRouteLevel(routeModule: AppRouteModule) { | 118 | function promoteRouteLevel(routeModule: AppRouteModule) { |
112 | // Use vue-router to splice menus | 119 | // Use vue-router to splice menus |
120 | + // 使用vue-router拼接菜单 | ||
121 | + // createRouter 创建一个可以被 Vue 应用程序使用的路由实例 | ||
113 | let router: Router | null = createRouter({ | 122 | let router: Router | null = createRouter({ |
114 | routes: [routeModule as unknown as RouteRecordNormalized], | 123 | routes: [routeModule as unknown as RouteRecordNormalized], |
115 | history: createWebHashHistory(), | 124 | history: createWebHashHistory(), |
116 | }); | 125 | }); |
117 | - | 126 | + // getRoutes: 获取所有 路由记录的完整列表。 |
118 | const routes = router.getRoutes(); | 127 | const routes = router.getRoutes(); |
128 | + // 将所有子路由添加到二级路由 | ||
119 | addToChildren(routes, routeModule.children || [], routeModule); | 129 | addToChildren(routes, routeModule.children || [], routeModule); |
120 | router = null; | 130 | router = null; |
121 | 131 | ||
132 | + // omit lodash的函数 对传入的item对象的children进行删除 | ||
122 | routeModule.children = routeModule.children?.map((item) => omit(item, 'children')); | 133 | routeModule.children = routeModule.children?.map((item) => omit(item, 'children')); |
123 | } | 134 | } |
124 | 135 | ||
125 | // Add all sub-routes to the secondary route | 136 | // Add all sub-routes to the secondary route |
137 | +// 将所有子路由添加到二级路由 | ||
126 | function addToChildren( | 138 | function addToChildren( |
127 | routes: RouteRecordNormalized[], | 139 | routes: RouteRecordNormalized[], |
128 | children: AppRouteRecordRaw[], | 140 | children: AppRouteRecordRaw[], |
@@ -145,7 +157,9 @@ function addToChildren( | @@ -145,7 +157,9 @@ function addToChildren( | ||
145 | } | 157 | } |
146 | 158 | ||
147 | // Determine whether the level exceeds 2 levels | 159 | // Determine whether the level exceeds 2 levels |
160 | +// 判断级别是否超过2级 | ||
148 | function isMultipleRoute(routeModule: AppRouteModule) { | 161 | function isMultipleRoute(routeModule: AppRouteModule) { |
162 | + // Reflect.has 与 in 操作符 相同, 用于检查一个对象(包括它原型链上)是否拥有某个属性 | ||
149 | if (!routeModule || !Reflect.has(routeModule, 'children') || !routeModule.children?.length) { | 163 | if (!routeModule || !Reflect.has(routeModule, 'children') || !routeModule.children?.length) { |
150 | return false; | 164 | return false; |
151 | } | 165 | } |
src/router/index.ts
@@ -36,6 +36,7 @@ export function resetRouter() { | @@ -36,6 +36,7 @@ export function resetRouter() { | ||
36 | } | 36 | } |
37 | 37 | ||
38 | // config router | 38 | // config router |
39 | +// 配置路由器 | ||
39 | export function setupRouter(app: App<Element>) { | 40 | export function setupRouter(app: App<Element>) { |
40 | app.use(router); | 41 | app.use(router); |
41 | } | 42 | } |
src/router/routes/index.ts
@@ -6,10 +6,11 @@ import { mainOutRoutes } from './mainOut'; | @@ -6,10 +6,11 @@ import { mainOutRoutes } from './mainOut'; | ||
6 | import { PageEnum } from '/@/enums/pageEnum'; | 6 | import { PageEnum } from '/@/enums/pageEnum'; |
7 | import { t } from '/@/hooks/web/useI18n'; | 7 | import { t } from '/@/hooks/web/useI18n'; |
8 | 8 | ||
9 | +// import.meta.globEager() 直接引入所有的模块 Vite 独有的功能 | ||
9 | const modules = import.meta.globEager('./modules/**/*.ts'); | 10 | const modules = import.meta.globEager('./modules/**/*.ts'); |
10 | - | ||
11 | const routeModuleList: AppRouteModule[] = []; | 11 | const routeModuleList: AppRouteModule[] = []; |
12 | 12 | ||
13 | +// 加入到路由集合中 | ||
13 | Object.keys(modules).forEach((key) => { | 14 | Object.keys(modules).forEach((key) => { |
14 | const mod = modules[key].default || {}; | 15 | const mod = modules[key].default || {}; |
15 | const modList = Array.isArray(mod) ? [...mod] : [mod]; | 16 | const modList = Array.isArray(mod) ? [...mod] : [mod]; |
@@ -18,6 +19,7 @@ Object.keys(modules).forEach((key) => { | @@ -18,6 +19,7 @@ Object.keys(modules).forEach((key) => { | ||
18 | 19 | ||
19 | export const asyncRoutes = [PAGE_NOT_FOUND_ROUTE, ...routeModuleList]; | 20 | export const asyncRoutes = [PAGE_NOT_FOUND_ROUTE, ...routeModuleList]; |
20 | 21 | ||
22 | +// 根路由 | ||
21 | export const RootRoute: AppRouteRecordRaw = { | 23 | export const RootRoute: AppRouteRecordRaw = { |
22 | path: '/', | 24 | path: '/', |
23 | name: 'Root', | 25 | name: 'Root', |
src/store/modules/permission.ts
@@ -26,26 +26,37 @@ import { PageEnum } from '/@/enums/pageEnum'; | @@ -26,26 +26,37 @@ import { PageEnum } from '/@/enums/pageEnum'; | ||
26 | 26 | ||
27 | interface PermissionState { | 27 | interface PermissionState { |
28 | // Permission code list | 28 | // Permission code list |
29 | + // 权限代码列表 | ||
29 | permCodeList: string[] | number[]; | 30 | permCodeList: string[] | number[]; |
30 | // Whether the route has been dynamically added | 31 | // Whether the route has been dynamically added |
32 | + // 路由是否动态添加 | ||
31 | isDynamicAddedRoute: boolean; | 33 | isDynamicAddedRoute: boolean; |
32 | // To trigger a menu update | 34 | // To trigger a menu update |
35 | + // 触发菜单更新 | ||
33 | lastBuildMenuTime: number; | 36 | lastBuildMenuTime: number; |
34 | // Backstage menu list | 37 | // Backstage menu list |
38 | + // 后台菜单列表 | ||
35 | backMenuList: Menu[]; | 39 | backMenuList: Menu[]; |
40 | + // 菜单列表 | ||
36 | frontMenuList: Menu[]; | 41 | frontMenuList: Menu[]; |
37 | } | 42 | } |
43 | + | ||
38 | export const usePermissionStore = defineStore({ | 44 | export const usePermissionStore = defineStore({ |
39 | id: 'app-permission', | 45 | id: 'app-permission', |
40 | state: (): PermissionState => ({ | 46 | state: (): PermissionState => ({ |
47 | + // 权限代码列表 | ||
41 | permCodeList: [], | 48 | permCodeList: [], |
42 | // Whether the route has been dynamically added | 49 | // Whether the route has been dynamically added |
50 | + // 路由是否动态添加 | ||
43 | isDynamicAddedRoute: false, | 51 | isDynamicAddedRoute: false, |
44 | // To trigger a menu update | 52 | // To trigger a menu update |
53 | + // 触发菜单更新 | ||
45 | lastBuildMenuTime: 0, | 54 | lastBuildMenuTime: 0, |
46 | // Backstage menu list | 55 | // Backstage menu list |
56 | + // 后台菜单列表 | ||
47 | backMenuList: [], | 57 | backMenuList: [], |
48 | // menu List | 58 | // menu List |
59 | + // 菜单列表 | ||
49 | frontMenuList: [], | 60 | frontMenuList: [], |
50 | }), | 61 | }), |
51 | getters: { | 62 | getters: { |
@@ -96,6 +107,8 @@ export const usePermissionStore = defineStore({ | @@ -96,6 +107,8 @@ export const usePermissionStore = defineStore({ | ||
96 | const codeList = await getPermCode(); | 107 | const codeList = await getPermCode(); |
97 | this.setPermCodeList(codeList); | 108 | this.setPermCodeList(codeList); |
98 | }, | 109 | }, |
110 | + | ||
111 | + // 构建路由 | ||
99 | async buildRoutesAction(): Promise<AppRouteRecordRaw[]> { | 112 | async buildRoutesAction(): Promise<AppRouteRecordRaw[]> { |
100 | const { t } = useI18n(); | 113 | const { t } = useI18n(); |
101 | const userStore = useUserStore(); | 114 | const userStore = useUserStore(); |
@@ -105,16 +118,21 @@ export const usePermissionStore = defineStore({ | @@ -105,16 +118,21 @@ export const usePermissionStore = defineStore({ | ||
105 | const roleList = toRaw(userStore.getRoleList) || []; | 118 | const roleList = toRaw(userStore.getRoleList) || []; |
106 | const { permissionMode = projectSetting.permissionMode } = appStore.getProjectConfig; | 119 | const { permissionMode = projectSetting.permissionMode } = appStore.getProjectConfig; |
107 | 120 | ||
121 | + // 路由过滤器 在 函数filter 作为回调传入遍历使用 | ||
108 | const routeFilter = (route: AppRouteRecordRaw) => { | 122 | const routeFilter = (route: AppRouteRecordRaw) => { |
109 | const { meta } = route; | 123 | const { meta } = route; |
124 | + // 抽出角色 | ||
110 | const { roles } = meta || {}; | 125 | const { roles } = meta || {}; |
111 | if (!roles) return true; | 126 | if (!roles) return true; |
127 | + // 进行角色权限判断 | ||
112 | return roleList.some((role) => roles.includes(role)); | 128 | return roleList.some((role) => roles.includes(role)); |
113 | }; | 129 | }; |
114 | 130 | ||
115 | const routeRemoveIgnoreFilter = (route: AppRouteRecordRaw) => { | 131 | const routeRemoveIgnoreFilter = (route: AppRouteRecordRaw) => { |
116 | const { meta } = route; | 132 | const { meta } = route; |
133 | + // ignoreRoute 为true 则路由仅用于菜单生成,不会在实际的路由表中出现 | ||
117 | const { ignoreRoute } = meta || {}; | 134 | const { ignoreRoute } = meta || {}; |
135 | + // arr.filter 返回 true 表示该元素通过测试 | ||
118 | return !ignoreRoute; | 136 | return !ignoreRoute; |
119 | }; | 137 | }; |
120 | 138 | ||
@@ -124,6 +142,7 @@ export const usePermissionStore = defineStore({ | @@ -124,6 +142,7 @@ export const usePermissionStore = defineStore({ | ||
124 | const patchHomeAffix = (routes: AppRouteRecordRaw[]) => { | 142 | const patchHomeAffix = (routes: AppRouteRecordRaw[]) => { |
125 | if (!routes || routes.length === 0) return; | 143 | if (!routes || routes.length === 0) return; |
126 | let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME; | 144 | let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME; |
145 | + | ||
127 | function patcher(routes: AppRouteRecordRaw[], parentPath = '') { | 146 | function patcher(routes: AppRouteRecordRaw[], parentPath = '') { |
128 | if (parentPath) parentPath = parentPath + '/'; | 147 | if (parentPath) parentPath = parentPath + '/'; |
129 | routes.forEach((route: AppRouteRecordRaw) => { | 148 | routes.forEach((route: AppRouteRecordRaw) => { |
@@ -140,6 +159,7 @@ export const usePermissionStore = defineStore({ | @@ -140,6 +159,7 @@ export const usePermissionStore = defineStore({ | ||
140 | children && children.length > 0 && patcher(children, currentPath); | 159 | children && children.length > 0 && patcher(children, currentPath); |
141 | }); | 160 | }); |
142 | } | 161 | } |
162 | + | ||
143 | try { | 163 | try { |
144 | patcher(routes); | 164 | patcher(routes); |
145 | } catch (e) { | 165 | } catch (e) { |
@@ -149,29 +169,44 @@ export const usePermissionStore = defineStore({ | @@ -149,29 +169,44 @@ export const usePermissionStore = defineStore({ | ||
149 | }; | 169 | }; |
150 | 170 | ||
151 | switch (permissionMode) { | 171 | switch (permissionMode) { |
172 | + // 角色权限 | ||
152 | case PermissionModeEnum.ROLE: | 173 | case PermissionModeEnum.ROLE: |
174 | + // 对非一级路由进行过滤 | ||
153 | routes = filter(asyncRoutes, routeFilter); | 175 | routes = filter(asyncRoutes, routeFilter); |
176 | + // 对一级路由根据角色权限过滤 | ||
154 | routes = routes.filter(routeFilter); | 177 | routes = routes.filter(routeFilter); |
155 | // Convert multi-level routing to level 2 routing | 178 | // Convert multi-level routing to level 2 routing |
179 | + // 将多级路由转换为 2 级路由 | ||
156 | routes = flatMultiLevelRoutes(routes); | 180 | routes = flatMultiLevelRoutes(routes); |
157 | break; | 181 | break; |
158 | 182 | ||
183 | + // 路由映射, 默认进入该case | ||
159 | case PermissionModeEnum.ROUTE_MAPPING: | 184 | case PermissionModeEnum.ROUTE_MAPPING: |
185 | + // 对非一级路由进行过滤 | ||
160 | routes = filter(asyncRoutes, routeFilter); | 186 | routes = filter(asyncRoutes, routeFilter); |
187 | + // 对一级路由再次根据角色权限过滤 | ||
161 | routes = routes.filter(routeFilter); | 188 | routes = routes.filter(routeFilter); |
189 | + // 将路由转换成菜单 | ||
162 | const menuList = transformRouteToMenu(routes, true); | 190 | const menuList = transformRouteToMenu(routes, true); |
191 | + // 移除掉 ignoreRoute: true 的路由 非一级路由 | ||
163 | routes = filter(routes, routeRemoveIgnoreFilter); | 192 | routes = filter(routes, routeRemoveIgnoreFilter); |
193 | + // 移除掉 ignoreRoute: true 的路由 一级路由; | ||
164 | routes = routes.filter(routeRemoveIgnoreFilter); | 194 | routes = routes.filter(routeRemoveIgnoreFilter); |
195 | + // 对菜单进行排序 | ||
165 | menuList.sort((a, b) => { | 196 | menuList.sort((a, b) => { |
166 | return (a.meta?.orderNo || 0) - (b.meta?.orderNo || 0); | 197 | return (a.meta?.orderNo || 0) - (b.meta?.orderNo || 0); |
167 | }); | 198 | }); |
168 | 199 | ||
200 | + // 设置菜单列表 | ||
169 | this.setFrontMenuList(menuList); | 201 | this.setFrontMenuList(menuList); |
202 | + | ||
170 | // Convert multi-level routing to level 2 routing | 203 | // Convert multi-level routing to level 2 routing |
204 | + // 将多级路由转换为 2 级路由 | ||
171 | routes = flatMultiLevelRoutes(routes); | 205 | routes = flatMultiLevelRoutes(routes); |
172 | break; | 206 | break; |
173 | 207 | ||
174 | // If you are sure that you do not need to do background dynamic permissions, please comment the entire judgment below | 208 | // If you are sure that you do not need to do background dynamic permissions, please comment the entire judgment below |
209 | + // 如果确定不需要做后台动态权限,请在下方评论整个判断 | ||
175 | case PermissionModeEnum.BACK: | 210 | case PermissionModeEnum.BACK: |
176 | const { createMessage } = useMessage(); | 211 | const { createMessage } = useMessage(); |
177 | 212 | ||
@@ -181,23 +216,28 @@ export const usePermissionStore = defineStore({ | @@ -181,23 +216,28 @@ export const usePermissionStore = defineStore({ | ||
181 | }); | 216 | }); |
182 | 217 | ||
183 | // !Simulate to obtain permission codes from the background, | 218 | // !Simulate to obtain permission codes from the background, |
219 | + // 模拟从后台获取权限码, | ||
184 | // this function may only need to be executed once, and the actual project can be put at the right time by itself | 220 | // this function may only need to be executed once, and the actual project can be put at the right time by itself |
221 | + // 这个功能可能只需要执行一次,实际项目可以自己放在合适的时间 | ||
185 | let routeList: AppRouteRecordRaw[] = []; | 222 | let routeList: AppRouteRecordRaw[] = []; |
186 | try { | 223 | try { |
187 | - this.changePermissionCode(); | 224 | + await this.changePermissionCode(); |
188 | routeList = (await getMenuList()) as AppRouteRecordRaw[]; | 225 | routeList = (await getMenuList()) as AppRouteRecordRaw[]; |
189 | } catch (error) { | 226 | } catch (error) { |
190 | console.error(error); | 227 | console.error(error); |
191 | } | 228 | } |
192 | 229 | ||
193 | // Dynamically introduce components | 230 | // Dynamically introduce components |
231 | + // 动态引入组件 | ||
194 | routeList = transformObjToRoute(routeList); | 232 | routeList = transformObjToRoute(routeList); |
195 | 233 | ||
196 | // Background routing to menu structure | 234 | // Background routing to menu structure |
235 | + // 后台路由到菜单结构 | ||
197 | const backMenuList = transformRouteToMenu(routeList); | 236 | const backMenuList = transformRouteToMenu(routeList); |
198 | this.setBackMenuList(backMenuList); | 237 | this.setBackMenuList(backMenuList); |
199 | 238 | ||
200 | // remove meta.ignoreRoute item | 239 | // remove meta.ignoreRoute item |
240 | + // 删除 meta.ignoreRoute 项 | ||
201 | routeList = filter(routeList, routeRemoveIgnoreFilter); | 241 | routeList = filter(routeList, routeRemoveIgnoreFilter); |
202 | routeList = routeList.filter(routeRemoveIgnoreFilter); | 242 | routeList = routeList.filter(routeRemoveIgnoreFilter); |
203 | 243 | ||
@@ -214,6 +254,7 @@ export const usePermissionStore = defineStore({ | @@ -214,6 +254,7 @@ export const usePermissionStore = defineStore({ | ||
214 | }); | 254 | }); |
215 | 255 | ||
216 | // Need to be used outside the setup | 256 | // Need to be used outside the setup |
257 | +// 需要在设置之外使用 | ||
217 | export function usePermissionStoreWithOut() { | 258 | export function usePermissionStoreWithOut() { |
218 | return usePermissionStore(store); | 259 | return usePermissionStore(store); |
219 | } | 260 | } |
src/utils/helper/treeHelper.ts
@@ -3,15 +3,19 @@ interface TreeHelperConfig { | @@ -3,15 +3,19 @@ interface TreeHelperConfig { | ||
3 | children: string; | 3 | children: string; |
4 | pid: string; | 4 | pid: string; |
5 | } | 5 | } |
6 | + | ||
7 | +// 默认配置 | ||
6 | const DEFAULT_CONFIG: TreeHelperConfig = { | 8 | const DEFAULT_CONFIG: TreeHelperConfig = { |
7 | id: 'id', | 9 | id: 'id', |
8 | children: 'children', | 10 | children: 'children', |
9 | pid: 'pid', | 11 | pid: 'pid', |
10 | }; | 12 | }; |
11 | 13 | ||
14 | +// 获取配置。 Object.assign 从一个或多个源对象复制到目标对象 | ||
12 | const getConfig = (config: Partial<TreeHelperConfig>) => Object.assign({}, DEFAULT_CONFIG, config); | 15 | const getConfig = (config: Partial<TreeHelperConfig>) => Object.assign({}, DEFAULT_CONFIG, config); |
13 | 16 | ||
14 | // tree from list | 17 | // tree from list |
18 | +// 列表中的树 | ||
15 | export function listToTree<T = any>(list: any[], config: Partial<TreeHelperConfig> = {}): T[] { | 19 | export function listToTree<T = any>(list: any[], config: Partial<TreeHelperConfig> = {}): T[] { |
16 | const conf = getConfig(config) as TreeHelperConfig; | 20 | const conf = getConfig(config) as TreeHelperConfig; |
17 | const nodeMap = new Map(); | 21 | const nodeMap = new Map(); |
@@ -123,18 +127,24 @@ export function findPathAll(tree: any, func: Fn, config: Partial<TreeHelperConfi | @@ -123,18 +127,24 @@ export function findPathAll(tree: any, func: Fn, config: Partial<TreeHelperConfi | ||
123 | export function filter<T = any>( | 127 | export function filter<T = any>( |
124 | tree: T[], | 128 | tree: T[], |
125 | func: (n: T) => boolean, | 129 | func: (n: T) => boolean, |
130 | + // Partial 将 T 中的所有属性设为可选 | ||
126 | config: Partial<TreeHelperConfig> = {}, | 131 | config: Partial<TreeHelperConfig> = {}, |
127 | ): T[] { | 132 | ): T[] { |
133 | + // 获取配置 | ||
128 | config = getConfig(config); | 134 | config = getConfig(config); |
129 | const children = config.children as string; | 135 | const children = config.children as string; |
136 | + | ||
130 | function listFilter(list: T[]) { | 137 | function listFilter(list: T[]) { |
131 | return list | 138 | return list |
132 | .map((node: any) => ({ ...node })) | 139 | .map((node: any) => ({ ...node })) |
133 | .filter((node) => { | 140 | .filter((node) => { |
141 | + // 递归调用 对含有children项 进行再次调用自身函数 listFilter | ||
134 | node[children] = node[children] && listFilter(node[children]); | 142 | node[children] = node[children] && listFilter(node[children]); |
143 | + // 执行传入的回调 func 进行过滤 | ||
135 | return func(node) || (node[children] && node[children].length); | 144 | return func(node) || (node[children] && node[children].length); |
136 | }); | 145 | }); |
137 | } | 146 | } |
147 | + | ||
138 | return listFilter(tree); | 148 | return listFilter(tree); |
139 | } | 149 | } |
140 | 150 | ||
@@ -157,6 +167,7 @@ export function forEach<T = any>( | @@ -157,6 +167,7 @@ export function forEach<T = any>( | ||
157 | 167 | ||
158 | /** | 168 | /** |
159 | * @description: Extract tree specified structure | 169 | * @description: Extract tree specified structure |
170 | + * @description: 提取树指定结构 | ||
160 | */ | 171 | */ |
161 | export function treeMap<T = any>(treeData: T[], opt: { children?: string; conversion: Fn }): T[] { | 172 | export function treeMap<T = any>(treeData: T[], opt: { children?: string; conversion: Fn }): T[] { |
162 | return treeData.map((item) => treeMapEach(item, opt)); | 173 | return treeData.map((item) => treeMapEach(item, opt)); |
@@ -164,6 +175,7 @@ export function treeMap<T = any>(treeData: T[], opt: { children?: string; conver | @@ -164,6 +175,7 @@ export function treeMap<T = any>(treeData: T[], opt: { children?: string; conver | ||
164 | 175 | ||
165 | /** | 176 | /** |
166 | * @description: Extract tree specified structure | 177 | * @description: Extract tree specified structure |
178 | + * @description: 提取树指定结构 | ||
167 | */ | 179 | */ |
168 | export function treeMapEach( | 180 | export function treeMapEach( |
169 | data: any, | 181 | data: any, |
src/utils/http/axios/Axios.ts
@@ -61,7 +61,7 @@ export class VAxios { | @@ -61,7 +61,7 @@ export class VAxios { | ||
61 | } | 61 | } |
62 | 62 | ||
63 | /** | 63 | /** |
64 | - * @description: Interceptor configuration | 64 | + * @description: Interceptor configuration 拦截器配置 |
65 | */ | 65 | */ |
66 | private setupInterceptors() { | 66 | private setupInterceptors() { |
67 | const transform = this.getTransform(); | 67 | const transform = this.getTransform(); |
src/utils/http/axios/index.ts
@@ -204,6 +204,7 @@ const transform: AxiosTransform = { | @@ -204,6 +204,7 @@ const transform: AxiosTransform = { | ||
204 | 204 | ||
205 | function createAxios(opt?: Partial<CreateAxiosOptions>) { | 205 | function createAxios(opt?: Partial<CreateAxiosOptions>) { |
206 | return new VAxios( | 206 | return new VAxios( |
207 | + // 深度合并 | ||
207 | deepMerge( | 208 | deepMerge( |
208 | { | 209 | { |
209 | // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes | 210 | // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes |
src/utils/index.ts
@@ -32,6 +32,7 @@ export function setObjToUrlParams(baseUrl: string, obj: any): string { | @@ -32,6 +32,7 @@ export function setObjToUrlParams(baseUrl: string, obj: any): string { | ||
32 | return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, '?') + parameters; | 32 | return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, '?') + parameters; |
33 | } | 33 | } |
34 | 34 | ||
35 | +// 深度合并 | ||
35 | export function deepMerge<T = any>(src: any = {}, target: any = {}): T { | 36 | export function deepMerge<T = any>(src: any = {}, target: any = {}): T { |
36 | let key: string; | 37 | let key: string; |
37 | for (key in target) { | 38 | for (key in target) { |