mirror of
https://github.com/chansee97/nova-admin.git
synced 2025-04-05 04:22:49 +08:00
feat: add dict page
This commit is contained in:
parent
e7c6f7c177
commit
cf76ef71f7
@ -84,9 +84,9 @@
|
||||
"searchPlaceholder": "搜索图标",
|
||||
"clearIcon": "清除图标"
|
||||
},
|
||||
"copyText":{
|
||||
"tooltip":"复制",
|
||||
"message":"复制成功"
|
||||
"copyText": {
|
||||
"tooltip": "复制",
|
||||
"message": "复制成功"
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
|
288
pnpm-lock.yaml
generated
288
pnpm-lock.yaml
generated
@ -26,9 +26,6 @@ dependencies:
|
||||
pinia:
|
||||
specifier: ^2.1.7
|
||||
version: 2.1.7(typescript@5.5.2)(vue@3.4.30)
|
||||
pinia-plugin-persist:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0(pinia@2.1.7)(vue@3.4.30)
|
||||
pinia-plugin-persistedstate:
|
||||
specifier: ^3.2.1
|
||||
version: 3.2.1(pinia@2.1.7)
|
||||
@ -60,7 +57,7 @@ devDependencies:
|
||||
version: 4.1.2(vue@3.4.30)
|
||||
'@types/node':
|
||||
specifier: ^20.14.2
|
||||
version: 20.14.8
|
||||
version: 20.14.9
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: ^5.0.5
|
||||
version: 5.0.5(vite@5.3.1)(vue@3.4.30)
|
||||
@ -96,10 +93,10 @@ devDependencies:
|
||||
version: 0.19.0(@vue/compiler-sfc@3.4.30)
|
||||
unplugin-vue-components:
|
||||
specifier: ^0.27.0
|
||||
version: 0.27.0(vue@3.4.30)
|
||||
version: 0.27.1(vue@3.4.30)
|
||||
vite:
|
||||
specifier: ^5.3.1
|
||||
version: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
version: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
vite-bundle-visualizer:
|
||||
specifier: ^1.2.1
|
||||
version: 1.2.1
|
||||
@ -175,9 +172,9 @@ packages:
|
||||
dependencies:
|
||||
'@antfu/install-pkg': 0.3.3
|
||||
'@clack/prompts': 0.7.0
|
||||
'@stylistic/eslint-plugin': 2.2.2(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@stylistic/eslint-plugin': 2.3.0(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
eslint-config-flat-gitignore: 0.1.5
|
||||
eslint-flat-config-utils: 0.2.5
|
||||
@ -193,10 +190,10 @@ packages:
|
||||
eslint-plugin-no-only-tests: 3.1.0
|
||||
eslint-plugin-perfectionist: 2.11.0(eslint@9.5.0)(typescript@5.5.2)(vue-eslint-parser@9.4.3)
|
||||
eslint-plugin-regexp: 2.6.0(eslint@9.5.0)
|
||||
eslint-plugin-toml: 0.11.0(eslint@9.5.0)
|
||||
eslint-plugin-toml: 0.11.1(eslint@9.5.0)
|
||||
eslint-plugin-unicorn: 53.0.0(eslint@9.5.0)
|
||||
eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.13.1)(eslint@9.5.0)
|
||||
eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.13.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.14.1)(eslint@9.5.0)
|
||||
eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.14.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint-plugin-vue: 9.26.0(eslint@9.5.0)
|
||||
eslint-plugin-yml: 1.14.0(eslint@9.5.0)
|
||||
eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.30)(eslint@9.5.0)
|
||||
@ -230,8 +227,8 @@ packages:
|
||||
'@jsdevtools/ez-spawn': 3.0.4
|
||||
dev: true
|
||||
|
||||
/@antfu/utils@0.7.8:
|
||||
resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==}
|
||||
/@antfu/utils@0.7.10:
|
||||
resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
|
||||
dev: true
|
||||
|
||||
/@babel/code-frame@7.24.7:
|
||||
@ -981,7 +978,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/eslint': 8.56.10
|
||||
'@types/estree': 1.0.5
|
||||
'@typescript-eslint/types': 7.13.1
|
||||
'@typescript-eslint/types': 7.14.1
|
||||
comment-parser: 1.4.1
|
||||
esquery: 1.5.0
|
||||
jsdoc-type-pratt-parser: 4.0.0
|
||||
@ -1271,7 +1268,7 @@ packages:
|
||||
resolution: {integrity: sha512-Y+iGko8uv/Fz5bQLLJyNSZGOdMW0G7cnlEX1CiNcKsRXX9cq/y/vwxrIAtLCZhKHr3m0VJmsjVPsvnM4uX8YLg==}
|
||||
dependencies:
|
||||
'@antfu/install-pkg': 0.1.1
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
'@iconify/types': 2.0.0
|
||||
debug: 4.3.5
|
||||
kolorist: 1.8.0
|
||||
@ -1662,8 +1659,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@stylistic/eslint-plugin-js@2.2.2(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-Vj2Q1YHVvJw+ThtOvmk5Yx7wZanVrIBRUTT89horLDb4xdP9GA1um9XOYQC6j67VeUC2gjZQnz5/RVJMzaOhtw==}
|
||||
/@stylistic/eslint-plugin-js@2.3.0(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-lQwoiYb0Fs6Yc5QS3uT8+T9CPKK2Eoxc3H8EnYJgM26v/DgtW+1lvy2WNgyBflU+ThShZaHm3a6CdD9QeKx23w==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: '>=8.40.0'
|
||||
@ -1675,57 +1672,57 @@ packages:
|
||||
espree: 10.1.0
|
||||
dev: true
|
||||
|
||||
/@stylistic/eslint-plugin-jsx@2.2.2(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-xfIMdLivoMV1wV+5Tl0PtkLN/oUwjIt7LuIu48vhrZfJ2jCXwjlTGPGSoM7dnLZYD65XjtrHHIFAvPuvvvjlaw==}
|
||||
/@stylistic/eslint-plugin-jsx@2.3.0(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-tsQ0IEKB195H6X9A4iUSgLLLKBc8gUBWkBIU8tp1/3g2l8stu+PtMQVV/VmK1+3bem5FJCyvfcZIQ/WF1fsizA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: '>=8.40.0'
|
||||
dependencies:
|
||||
'@stylistic/eslint-plugin-js': 2.2.2(eslint@9.5.0)
|
||||
'@stylistic/eslint-plugin-js': 2.3.0(eslint@9.5.0)
|
||||
'@types/eslint': 8.56.10
|
||||
eslint: 9.5.0
|
||||
estraverse: 5.3.0
|
||||
picomatch: 4.0.2
|
||||
dev: true
|
||||
|
||||
/@stylistic/eslint-plugin-plus@2.2.2(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-oeqPs01yAH4ad4bSchGtx8Jf5XTbxRx++A0joNYiOoq3EBTAUHE/ZB7dVv3BhNuCKiwojOQduLkUCXI5UMHoSw==}
|
||||
/@stylistic/eslint-plugin-plus@2.3.0(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-xboPWGUU5yaPlR+WR57GwXEuY4PSlPqA0C3IdNA/+1o2MuBi95XgDJcZiJ9N+aXsqBXAPIpFFb+WQ7QEHo4f7g==}
|
||||
peerDependencies:
|
||||
eslint: '*'
|
||||
dependencies:
|
||||
'@types/eslint': 8.56.10
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/@stylistic/eslint-plugin-ts@2.2.2(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-n6cYMSWTDDcrQLLxEKIrL/ihQ1lyyq6+gGp0g5VdstBElmImSRsQkCq+g3jRoDJIUo7tGO9lwQtGnuJ7oGB4kg==}
|
||||
/@stylistic/eslint-plugin-ts@2.3.0(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-wqOR38/uz/0XPnHX68ftp8sNMSAqnYGjovOTN7w00xnjS6Lxr3Sk7q6AaxWWqbMvOj7V2fQiMC5HWAbTruJsCg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: '>=8.40.0'
|
||||
dependencies:
|
||||
'@stylistic/eslint-plugin-js': 2.2.2(eslint@9.5.0)
|
||||
'@stylistic/eslint-plugin-js': 2.3.0(eslint@9.5.0)
|
||||
'@types/eslint': 8.56.10
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/@stylistic/eslint-plugin@2.2.2(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-GNRtyhhPsc9I9FNTaU2L0V/4LdSPAciQNEdYo6NBRdAz7sdiaxgEJKLNSXeXSQAuO9JBWWjZBs/57+WvrU0Iug==}
|
||||
/@stylistic/eslint-plugin@2.3.0(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-rtiz6u5gRyyEZp36FcF1/gHJbsbT3qAgXZ1qkad6Nr/xJ9wrSJkiSFFQhpYVTIZ7FJNRJurEcumZDCwN9dEI4g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: '>=8.40.0'
|
||||
dependencies:
|
||||
'@stylistic/eslint-plugin-js': 2.2.2(eslint@9.5.0)
|
||||
'@stylistic/eslint-plugin-jsx': 2.2.2(eslint@9.5.0)
|
||||
'@stylistic/eslint-plugin-plus': 2.2.2(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@stylistic/eslint-plugin-ts': 2.2.2(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@stylistic/eslint-plugin-js': 2.3.0(eslint@9.5.0)
|
||||
'@stylistic/eslint-plugin-jsx': 2.3.0(eslint@9.5.0)
|
||||
'@stylistic/eslint-plugin-plus': 2.3.0(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@stylistic/eslint-plugin-ts': 2.3.0(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@types/eslint': 8.56.10
|
||||
eslint: 9.5.0
|
||||
transitivePeerDependencies:
|
||||
@ -1783,8 +1780,8 @@ packages:
|
||||
resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
|
||||
dev: false
|
||||
|
||||
/@types/node@20.14.8:
|
||||
resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==}
|
||||
/@types/node@20.14.9:
|
||||
resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==}
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
dev: true
|
||||
@ -1800,8 +1797,8 @@ packages:
|
||||
/@types/web-bluetooth@0.0.20:
|
||||
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||
|
||||
/@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1)(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==}
|
||||
/@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1)(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^7.0.0
|
||||
@ -1812,11 +1809,11 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.10.1
|
||||
'@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/scope-manager': 7.13.1
|
||||
'@typescript-eslint/type-utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/visitor-keys': 7.13.1
|
||||
'@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/scope-manager': 7.14.1
|
||||
'@typescript-eslint/type-utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/visitor-keys': 7.14.1
|
||||
eslint: 9.5.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.1
|
||||
@ -1827,8 +1824,8 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==}
|
||||
/@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0
|
||||
@ -1837,10 +1834,10 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 7.13.1
|
||||
'@typescript-eslint/types': 7.13.1
|
||||
'@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2)
|
||||
'@typescript-eslint/visitor-keys': 7.13.1
|
||||
'@typescript-eslint/scope-manager': 7.14.1
|
||||
'@typescript-eslint/types': 7.14.1
|
||||
'@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2)
|
||||
'@typescript-eslint/visitor-keys': 7.14.1
|
||||
debug: 4.3.5
|
||||
eslint: 9.5.0
|
||||
typescript: 5.5.2
|
||||
@ -1848,16 +1845,16 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/scope-manager@7.13.1:
|
||||
resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==}
|
||||
/@typescript-eslint/scope-manager@7.14.1:
|
||||
resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.13.1
|
||||
'@typescript-eslint/visitor-keys': 7.13.1
|
||||
'@typescript-eslint/types': 7.14.1
|
||||
'@typescript-eslint/visitor-keys': 7.14.1
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/type-utils@7.13.1(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==}
|
||||
/@typescript-eslint/type-utils@7.14.1(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0
|
||||
@ -1866,8 +1863,8 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
debug: 4.3.5
|
||||
eslint: 9.5.0
|
||||
ts-api-utils: 1.3.0(typescript@5.5.2)
|
||||
@ -1876,13 +1873,13 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/types@7.13.1:
|
||||
resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==}
|
||||
/@typescript-eslint/types@7.14.1:
|
||||
resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree@7.13.1(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==}
|
||||
/@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
@ -1890,12 +1887,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.13.1
|
||||
'@typescript-eslint/visitor-keys': 7.13.1
|
||||
'@typescript-eslint/types': 7.14.1
|
||||
'@typescript-eslint/visitor-keys': 7.14.1
|
||||
debug: 4.3.5
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
minimatch: 9.0.4
|
||||
minimatch: 9.0.5
|
||||
semver: 7.6.2
|
||||
ts-api-utils: 1.3.0(typescript@5.5.2)
|
||||
typescript: 5.5.2
|
||||
@ -1903,27 +1900,27 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/utils@7.13.1(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==}
|
||||
/@typescript-eslint/utils@7.14.1(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
|
||||
'@typescript-eslint/scope-manager': 7.13.1
|
||||
'@typescript-eslint/types': 7.13.1
|
||||
'@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2)
|
||||
'@typescript-eslint/scope-manager': 7.14.1
|
||||
'@typescript-eslint/types': 7.14.1
|
||||
'@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/visitor-keys@7.13.1:
|
||||
resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==}
|
||||
/@typescript-eslint/visitor-keys@7.14.1:
|
||||
resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.13.1
|
||||
'@typescript-eslint/types': 7.14.1
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
@ -1938,7 +1935,7 @@ packages:
|
||||
'@unocss/core': 0.61.0
|
||||
'@unocss/reset': 0.61.0
|
||||
'@unocss/vite': 0.61.0(vite@5.3.1)
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
dev: true
|
||||
@ -2136,7 +2133,7 @@ packages:
|
||||
chokidar: 3.6.0
|
||||
fast-glob: 3.3.2
|
||||
magic-string: 0.30.10
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
dev: true
|
||||
@ -2155,7 +2152,7 @@ packages:
|
||||
'@babel/core': 7.24.7
|
||||
'@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
|
||||
'@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7)
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
vue: 3.4.30(typescript@5.5.2)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -2168,24 +2165,24 @@ packages:
|
||||
vite: ^5.0.0
|
||||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
vue: 3.4.30(typescript@5.5.2)
|
||||
dev: true
|
||||
|
||||
/@volar/language-core@2.3.3:
|
||||
resolution: {integrity: sha512-Blu4NQaRszEsgK/QvWFRSQPRAhPDbYef+peFV9Gb86swxRCs01q7h673/HYstaPsTbjh/F5mXjozoOFxQ8tLYw==}
|
||||
/@volar/language-core@2.3.4:
|
||||
resolution: {integrity: sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==}
|
||||
dependencies:
|
||||
'@volar/source-map': 2.3.3
|
||||
'@volar/source-map': 2.3.4
|
||||
dev: true
|
||||
|
||||
/@volar/source-map@2.3.3:
|
||||
resolution: {integrity: sha512-eFRHA13hxiGPt+Xa0EX3yNd50ozctnW5KzQj/IllKmSK/KuBEkSAsIhBdOxCpv1YhV4GmI3iKG9peOs6k9LtnA==}
|
||||
/@volar/source-map@2.3.4:
|
||||
resolution: {integrity: sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==}
|
||||
dev: true
|
||||
|
||||
/@volar/typescript@2.3.3:
|
||||
resolution: {integrity: sha512-cwGMSwqIR54Hngu5dYmUJPHFpo6KGj7BlpwT2G9WTKwEjFlH4g/0IPeq064428DAi/VMP42vqAQSBiEHi5Gc4A==}
|
||||
/@volar/typescript@2.3.4:
|
||||
resolution: {integrity: sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==}
|
||||
dependencies:
|
||||
'@volar/language-core': 2.3.3
|
||||
'@volar/language-core': 2.3.4
|
||||
path-browserify: 1.0.1
|
||||
vscode-uri: 3.0.8
|
||||
dev: true
|
||||
@ -2311,11 +2308,11 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@volar/language-core': 2.3.3
|
||||
'@volar/language-core': 2.3.4
|
||||
'@vue/compiler-dom': 3.4.30
|
||||
'@vue/shared': 3.4.30
|
||||
computeds: 0.0.1
|
||||
minimatch: 9.0.4
|
||||
minimatch: 9.0.5
|
||||
muggle-string: 0.4.1
|
||||
path-browserify: 1.0.1
|
||||
typescript: 5.5.2
|
||||
@ -2504,8 +2501,8 @@ packages:
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001636
|
||||
electron-to-chromium: 1.4.810
|
||||
caniuse-lite: 1.0.30001637
|
||||
electron-to-chromium: 1.4.812
|
||||
node-releases: 2.0.14
|
||||
update-browserslist-db: 1.0.16(browserslist@4.23.1)
|
||||
dev: true
|
||||
@ -2541,8 +2538,8 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/caniuse-lite@1.0.30001636:
|
||||
resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==}
|
||||
/caniuse-lite@1.0.30001637:
|
||||
resolution: {integrity: sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==}
|
||||
dev: true
|
||||
|
||||
/chalk@2.4.2:
|
||||
@ -2874,8 +2871,8 @@ packages:
|
||||
zrender: 5.5.0
|
||||
dev: false
|
||||
|
||||
/electron-to-chromium@1.4.810:
|
||||
resolution: {integrity: sha512-Kaxhu4T7SJGpRQx99tq216gCq2nMxJo+uuT6uzz9l8TVN2stL7M06MIIXAtr9jsrLs2Glflgf2vMQRepxawOdQ==}
|
||||
/electron-to-chromium@1.4.812:
|
||||
resolution: {integrity: sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==}
|
||||
dev: true
|
||||
|
||||
/emoji-regex@10.3.0:
|
||||
@ -3010,7 +3007,7 @@ packages:
|
||||
peerDependencies:
|
||||
eslint: '*'
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
eslint: 9.5.0
|
||||
dev: true
|
||||
|
||||
@ -3052,14 +3049,14 @@ packages:
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0 || ^9.0.0-0
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
debug: 4.3.5
|
||||
doctrine: 3.0.0
|
||||
eslint: 9.5.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
get-tsconfig: 4.7.5
|
||||
is-glob: 4.0.3
|
||||
minimatch: 9.0.4
|
||||
minimatch: 9.0.5
|
||||
semver: 7.6.2
|
||||
tslib: 2.6.3
|
||||
transitivePeerDependencies:
|
||||
@ -3129,7 +3126,7 @@ packages:
|
||||
get-tsconfig: 4.7.5
|
||||
globals: 15.6.0
|
||||
ignore: 5.3.1
|
||||
minimatch: 9.0.4
|
||||
minimatch: 9.0.5
|
||||
semver: 7.6.2
|
||||
dev: true
|
||||
|
||||
@ -3156,9 +3153,9 @@ packages:
|
||||
vue-eslint-parser:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
minimatch: 9.0.4
|
||||
minimatch: 9.0.5
|
||||
natural-compare-lite: 1.4.0
|
||||
vue-eslint-parser: 9.4.3(eslint@9.5.0)
|
||||
transitivePeerDependencies:
|
||||
@ -3182,8 +3179,8 @@ packages:
|
||||
scslre: 0.3.0
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-toml@0.11.0(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-sau+YvPU4fWTjB+qtBt3n8WS87aoDCs+BVbSUAemGaIsRNbvR9uEk+Tt892iLHTGvp/DPWYoCX4/8DoyAbB+sQ==}
|
||||
/eslint-plugin-toml@0.11.1(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: '>=6.0.0'
|
||||
@ -3192,7 +3189,7 @@ packages:
|
||||
eslint: 9.5.0
|
||||
eslint-compat-utils: 0.5.1(eslint@9.5.0)
|
||||
lodash: 4.17.21
|
||||
toml-eslint-parser: 0.9.3
|
||||
toml-eslint-parser: 0.10.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@ -3224,7 +3221,7 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.13.1)(eslint@9.5.0):
|
||||
/eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.14.1)(eslint@9.5.0):
|
||||
resolution: {integrity: sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@ -3234,12 +3231,12 @@ packages:
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
eslint-rule-composer: 0.3.0
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.13.1)(eslint@9.5.0)(typescript@5.5.2):
|
||||
/eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.14.1)(eslint@9.5.0)(typescript@5.5.2):
|
||||
resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==}
|
||||
engines: {node: ^18.0.0 || >= 20.0.0}
|
||||
peerDependencies:
|
||||
@ -3252,8 +3249,8 @@ packages:
|
||||
vitest:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@9.5.0)(typescript@5.5.2)
|
||||
'@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2)
|
||||
eslint: 9.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -4247,8 +4244,8 @@ packages:
|
||||
brace-expansion: 1.1.11
|
||||
dev: true
|
||||
|
||||
/minimatch@9.0.4:
|
||||
resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==}
|
||||
/minimatch@9.0.5:
|
||||
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
@ -4571,21 +4568,6 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/pinia-plugin-persist@1.0.0(pinia@2.1.7)(vue@3.4.30):
|
||||
resolution: {integrity: sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==}
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.0.0
|
||||
pinia: ^2.0.0
|
||||
vue: ^2.0.0 || >=3.0.0
|
||||
peerDependenciesMeta:
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
pinia: 2.1.7(typescript@5.5.2)(vue@3.4.30)
|
||||
vue: 3.4.30(typescript@5.5.2)
|
||||
vue-demi: 0.12.5(vue@3.4.30)
|
||||
dev: false
|
||||
|
||||
/pinia-plugin-persistedstate@3.2.1(pinia@2.1.7):
|
||||
resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==}
|
||||
peerDependencies:
|
||||
@ -5127,6 +5109,13 @@ packages:
|
||||
resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
|
||||
dev: false
|
||||
|
||||
/toml-eslint-parser@0.10.0:
|
||||
resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
/toml-eslint-parser@0.9.3:
|
||||
resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
@ -5203,7 +5192,7 @@ packages:
|
||||
/unconfig@0.3.13:
|
||||
resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==}
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
defu: 6.1.4
|
||||
jiti: 1.21.6
|
||||
dev: true
|
||||
@ -5280,7 +5269,7 @@ packages:
|
||||
'@unocss/transformer-directives': 0.61.0
|
||||
'@unocss/transformer-variant-group': 0.61.0
|
||||
'@unocss/vite': 0.61.0(vite@5.3.1)
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
transitivePeerDependencies:
|
||||
- postcss
|
||||
- rollup
|
||||
@ -5299,13 +5288,13 @@ packages:
|
||||
'@vueuse/core':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
'@rollup/pluginutils': 5.1.0
|
||||
'@vueuse/core': 10.11.0(vue@3.4.30)
|
||||
fast-glob: 3.3.2
|
||||
local-pkg: 0.5.0
|
||||
magic-string: 0.30.10
|
||||
minimatch: 9.0.4
|
||||
minimatch: 9.0.5
|
||||
unimport: 3.7.2
|
||||
unplugin: 1.10.1
|
||||
transitivePeerDependencies:
|
||||
@ -5333,7 +5322,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@antfu/install-pkg': 0.3.3
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
'@iconify/utils': 2.1.25
|
||||
'@vue/compiler-sfc': 3.4.30
|
||||
debug: 4.3.5
|
||||
@ -5344,8 +5333,8 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/unplugin-vue-components@0.27.0(vue@3.4.30):
|
||||
resolution: {integrity: sha512-77eTEy23sQ0UpzGWnZ9I2mY3cnmXwklz4ITcn3JfxjCoX643ghImkiZ4nFm58sxbdVcc4Fo/o4LIoFnlqEqsSg==}
|
||||
/unplugin-vue-components@0.27.1(vue@3.4.30):
|
||||
resolution: {integrity: sha512-ximoYPwT9A5fc0ozy40IZbXR/XMRlTy69u4JfeqBMlsyuKHckQRisRqgzqve6m/ZeOh7eCHjEQP1WnBPW+YI+g==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@babel/parser': ^7.15.8
|
||||
@ -5357,15 +5346,15 @@ packages:
|
||||
'@nuxt/kit':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
'@rollup/pluginutils': 5.1.0
|
||||
chokidar: 3.6.0
|
||||
debug: 4.3.5
|
||||
fast-glob: 3.3.2
|
||||
local-pkg: 0.5.0
|
||||
magic-string: 0.30.10
|
||||
minimatch: 9.0.4
|
||||
resolve: 1.22.8
|
||||
minimatch: 9.0.5
|
||||
mlly: 1.7.1
|
||||
unplugin: 1.10.1
|
||||
vue: 3.4.30(typescript@5.5.2)
|
||||
transitivePeerDependencies:
|
||||
@ -5439,7 +5428,7 @@ packages:
|
||||
peerDependencies:
|
||||
vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
||||
dependencies:
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
dev: true
|
||||
|
||||
/vite-plugin-compression@0.5.1(vite@5.3.1):
|
||||
@ -5450,7 +5439,7 @@ packages:
|
||||
chalk: 4.1.2
|
||||
debug: 4.3.5
|
||||
fs-extra: 10.1.0
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@ -5465,7 +5454,7 @@ packages:
|
||||
'@nuxt/kit':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.8
|
||||
'@antfu/utils': 0.7.10
|
||||
'@rollup/pluginutils': 5.1.0
|
||||
debug: 4.3.5
|
||||
error-stack-parser-es: 0.1.4
|
||||
@ -5474,7 +5463,7 @@ packages:
|
||||
perfect-debounce: 1.0.0
|
||||
picocolors: 1.0.1
|
||||
sirv: 2.0.4
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
@ -5491,7 +5480,7 @@ packages:
|
||||
'@vue/devtools-shared': 7.3.4
|
||||
execa: 8.0.1
|
||||
sirv: 2.0.4
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
vite-plugin-inspect: 0.8.4(vite@5.3.1)
|
||||
vite-plugin-vue-inspector: 5.1.2(vite@5.3.1)
|
||||
transitivePeerDependencies:
|
||||
@ -5515,12 +5504,12 @@ packages:
|
||||
'@vue/compiler-dom': 3.4.30
|
||||
kolorist: 1.8.0
|
||||
magic-string: 0.30.10
|
||||
vite: 5.3.1(@types/node@20.14.8)(sass@1.77.6)
|
||||
vite: 5.3.1(@types/node@20.14.9)(sass@1.77.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vite@5.3.1(@types/node@20.14.8)(sass@1.77.6):
|
||||
/vite@5.3.1(@types/node@20.14.9)(sass@1.77.6):
|
||||
resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
@ -5548,7 +5537,7 @@ packages:
|
||||
terser:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 20.14.8
|
||||
'@types/node': 20.14.9
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.38
|
||||
rollup: 4.18.0
|
||||
@ -5570,21 +5559,6 @@ packages:
|
||||
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
|
||||
dev: true
|
||||
|
||||
/vue-demi@0.12.5(vue@3.4.30):
|
||||
resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.0.0-rc.1
|
||||
vue: ^3.0.0-0 || ^2.6.0
|
||||
peerDependenciesMeta:
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.4.30(typescript@5.5.2)
|
||||
dev: false
|
||||
|
||||
/vue-demi@0.14.8(vue@3.4.30):
|
||||
resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==}
|
||||
engines: {node: '>=12'}
|
||||
@ -5651,7 +5625,7 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
dependencies:
|
||||
'@volar/typescript': 2.3.3
|
||||
'@volar/typescript': 2.3.4
|
||||
'@vue/language-core': 2.0.22(typescript@5.5.2)
|
||||
semver: 7.6.2
|
||||
typescript: 5.5.2
|
||||
|
@ -9,7 +9,7 @@ const props = defineProps<Props>()
|
||||
<template>
|
||||
<n-tooltip :show-arrow="false" trigger="hover">
|
||||
<template #trigger>
|
||||
<icon-park-outline-help class="op-50 cursor-help"/>
|
||||
<icon-park-outline-help class="op-50 cursor-help" />
|
||||
</template>
|
||||
{{ props.message }}
|
||||
</n-tooltip>
|
||||
|
@ -46,7 +46,7 @@ function getLocalIcon(icon: string) {
|
||||
<template v-else>
|
||||
<Icon :icon="icon" />
|
||||
</template>
|
||||
</n-icon>
|
||||
</n-icon>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
|
@ -79,7 +79,8 @@ export function useEcharts(el: Ref<HTMLElement | null>, chartOptions: Ref<ECOpti
|
||||
|
||||
async function render() {
|
||||
// 宽或高不存在时不渲染
|
||||
if (!width || !height) return
|
||||
if (!width || !height)
|
||||
return
|
||||
|
||||
const chartTheme = appStore.colorMode ? 'dark' : 'light'
|
||||
await nextTick()
|
||||
|
@ -52,7 +52,7 @@ onMounted(() => {
|
||||
|
||||
const sideMenu = ref<MenuOption[]>([])
|
||||
function handleSideMenu(key: string) {
|
||||
// @ts-ignore
|
||||
// @ts-expect-error no error at here
|
||||
const targetMenu = routeStore.menus.find(i => i.key === key)
|
||||
if (targetMenu) {
|
||||
sideMenu.value = targetMenu.children ? targetMenu.children : [targetMenu]
|
||||
|
@ -5,8 +5,8 @@ interface Ilogin {
|
||||
password: string
|
||||
}
|
||||
|
||||
export function fetchLogin(params: Ilogin) {
|
||||
const methodInstance = request.Post<Service.ResponseResult<Api.Login.Info>>('/login', params)
|
||||
export function fetchLogin(data: Ilogin) {
|
||||
const methodInstance = request.Post<Service.ResponseResult<Api.Login.Info>>('/login', data)
|
||||
methodInstance.meta = {
|
||||
authRole: null,
|
||||
}
|
||||
|
@ -2,14 +2,25 @@ import { request } from '../http'
|
||||
|
||||
// 获取所有路由信息
|
||||
export function fetchAllRoutes() {
|
||||
return request.Get<Service.ResponseResult<AppRoute.RowRoute[]> >('/getUserRoutes')
|
||||
return request.Get<Service.ResponseResult<AppRoute.RowRoute[]>>('/getUserRoutes')
|
||||
}
|
||||
|
||||
// 获取所有用户信息
|
||||
export function fetchUserPage() {
|
||||
return request.Get<Service.ResponseResult<Entity.User[]> >('/userPage')
|
||||
return request.Get<Service.ResponseResult<Entity.User[]>>('/userPage')
|
||||
}
|
||||
// 获取所有角色列表
|
||||
export function fetchRoleList() {
|
||||
return request.Get<Service.ResponseResult<Entity.Role[]> >('/role/list')
|
||||
return request.Get<Service.ResponseResult<Entity.Role[]>>('/role/list')
|
||||
}
|
||||
|
||||
// 获取所有字典列表
|
||||
export function fetchDictList() {
|
||||
return request.Get<Service.ResponseResult<Entity.Dict[]>>('/dict/list')
|
||||
}
|
||||
|
||||
// 获取所有字典列表
|
||||
export function fetchDictContent(id: number) {
|
||||
const params = { id }
|
||||
return request.Get<Service.ResponseResult<Entity.Dict[]>>('/dict/contentById', { params })
|
||||
}
|
||||
|
12
src/typings/entities/dict.d.ts
vendored
Normal file
12
src/typings/entities/dict.d.ts
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
/// <reference path="../global.d.ts"/>
|
||||
|
||||
/* 字典数据库表字段 */
|
||||
namespace Entity {
|
||||
|
||||
interface Dict {
|
||||
id?: number
|
||||
pid?: number
|
||||
dictLabel?: string
|
||||
dictValue?: number
|
||||
}
|
||||
}
|
@ -199,19 +199,20 @@ const treeData = ref([
|
||||
</n-card>
|
||||
|
||||
<n-card class="flex-1">
|
||||
<NSpace vertical size="large">
|
||||
<div class="flex gap-4">
|
||||
<NButton type="primary" @click="modalRef.openModal('add')">
|
||||
<template #icon>
|
||||
<icon-park-outline-add-one />
|
||||
</template>
|
||||
新建用户
|
||||
</NButton>
|
||||
</div>
|
||||
<template #header>
|
||||
<NButton type="primary" @click="modalRef.openModal('add')">
|
||||
<template #icon>
|
||||
<icon-park-outline-add-one />
|
||||
</template>
|
||||
新建用户
|
||||
</NButton>
|
||||
</template>
|
||||
<NSpace vertical>
|
||||
<n-data-table :columns="columns" :data="listData" :loading="loading" />
|
||||
<Pagination :count="count" @change="changePage" />
|
||||
<TableModal ref="modalRef" modal-name="用户" />
|
||||
</NSpace>
|
||||
|
||||
<TableModal ref="modalRef" modal-name="用户" />
|
||||
</n-card>
|
||||
</NSpace>
|
||||
</n-flex>
|
||||
|
143
src/views/setting/dictionary/components/TableModal.vue
Normal file
143
src/views/setting/dictionary/components/TableModal.vue
Normal file
@ -0,0 +1,143 @@
|
||||
<script setup lang="ts">
|
||||
import { useBoolean } from '@/hooks'
|
||||
|
||||
interface Props {
|
||||
modalName?: string
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
modalName: '',
|
||||
})
|
||||
|
||||
const emit = defineEmits<{
|
||||
open: []
|
||||
close: []
|
||||
}>()
|
||||
|
||||
const { bool: modalVisible, setTrue: showModal, setFalse: hiddenModal } = useBoolean(false)
|
||||
|
||||
const { bool: submitLoading, setTrue: startLoading, setFalse: endLoading } = useBoolean(false)
|
||||
|
||||
const formDefault: Entity.Dict = {
|
||||
dictLabel: '',
|
||||
dictValue: -1,
|
||||
}
|
||||
const formModel = ref<Entity.Dict>({ ...formDefault })
|
||||
|
||||
type ModalType = 'add' | 'view' | 'edit'
|
||||
const modalType = shallowRef<ModalType>('add')
|
||||
const modalTitle = computed(() => {
|
||||
const titleMap: Record<ModalType, string> = {
|
||||
add: '添加',
|
||||
view: '查看',
|
||||
edit: '编辑',
|
||||
}
|
||||
return `${titleMap[modalType.value]}${props.modalName}`
|
||||
})
|
||||
|
||||
async function openModal(type: ModalType = 'add', data: any) {
|
||||
emit('open')
|
||||
modalType.value = type
|
||||
showModal()
|
||||
const handlers = {
|
||||
async add() {
|
||||
formModel.value = { ...formDefault }
|
||||
},
|
||||
async view() {
|
||||
if (!data)
|
||||
return
|
||||
formModel.value = { ...data }
|
||||
},
|
||||
async edit() {
|
||||
if (!data)
|
||||
return
|
||||
formModel.value = { ...data }
|
||||
},
|
||||
}
|
||||
await handlers[type]()
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
hiddenModal()
|
||||
endLoading()
|
||||
emit('close')
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
openModal,
|
||||
})
|
||||
|
||||
const formRef = ref()
|
||||
async function submitModal() {
|
||||
const handlers = {
|
||||
async add() {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
window.$message.success('模拟新增成功')
|
||||
resolve(true)
|
||||
}, 2000)
|
||||
})
|
||||
},
|
||||
async edit() {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
window.$message.success('模拟编辑成功')
|
||||
resolve(true)
|
||||
}, 2000)
|
||||
})
|
||||
},
|
||||
async view() {
|
||||
return true
|
||||
},
|
||||
}
|
||||
await formRef.value?.validate()
|
||||
startLoading()
|
||||
await handlers[modalType.value]() && closeModal()
|
||||
}
|
||||
|
||||
const rules = {
|
||||
dictLabel: {
|
||||
required: true,
|
||||
message: '请输入字典名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
aaa: {
|
||||
required: true,
|
||||
message: '请输入字典值',
|
||||
trigger: 'blur',
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<n-modal
|
||||
v-model:show="modalVisible"
|
||||
:mask-closable="false"
|
||||
preset="card"
|
||||
:title="modalTitle"
|
||||
class="w-700px"
|
||||
:segmented="{
|
||||
content: true,
|
||||
action: true,
|
||||
}"
|
||||
>
|
||||
<n-form ref="formRef" :rules="rules" label-placement="left" :model="formModel" :label-width="100" :disabled="modalType === 'view'">
|
||||
<n-form-item label="字典名称" path="dictLabel">
|
||||
<n-input v-model:value="formModel.dictLabel" />
|
||||
</n-form-item>
|
||||
<n-form-item label="字典值" path="dictValue">
|
||||
<n-input-number v-model:value="formModel.dictValue" />
|
||||
</n-form-item>
|
||||
</n-form>
|
||||
<template #action>
|
||||
<n-space justify="center">
|
||||
<n-button @click="closeModal">
|
||||
取消
|
||||
</n-button>
|
||||
<n-button type="primary" :loading="submitLoading" @click="submitModal">
|
||||
提交
|
||||
</n-button>
|
||||
</n-space>
|
||||
</template>
|
||||
</n-modal>
|
||||
</template>
|
@ -1,7 +1,183 @@
|
||||
<script setup lang="ts"></script>
|
||||
<script setup lang="tsx">
|
||||
import type { DataTableColumns } from 'naive-ui'
|
||||
import { NButton, NFlex, NPopconfirm } from 'naive-ui'
|
||||
import TableModal from './components/TableModal.vue'
|
||||
import { fetchDictContent, fetchDictList } from '@/service'
|
||||
import { useBoolean } from '@/hooks'
|
||||
|
||||
const { bool: dictLoading, setTrue: startDictLoading, setFalse: endDictLoading } = useBoolean(false)
|
||||
const { bool: contentLoading, setTrue: startContentLoading, setFalse: endContentLoading } = useBoolean(false)
|
||||
|
||||
const modalRef = ref<InstanceType<typeof TableModal>>()
|
||||
|
||||
onMounted(() => {
|
||||
getDictList()
|
||||
})
|
||||
|
||||
const dictData = ref<Entity.Dict[]>([])
|
||||
const dictContentData = ref<Entity.Dict[]>([])
|
||||
|
||||
async function getDictList() {
|
||||
startDictLoading()
|
||||
const { data, isSuccess } = await fetchDictList()
|
||||
if (isSuccess) {
|
||||
dictData.value = data
|
||||
}
|
||||
endDictLoading()
|
||||
}
|
||||
|
||||
let lastDictId: number
|
||||
async function getDictContent(id: number) {
|
||||
startContentLoading()
|
||||
const { data, isSuccess } = await fetchDictContent(id)
|
||||
if (isSuccess) {
|
||||
lastDictId = id
|
||||
dictContentData.value = data
|
||||
}
|
||||
endContentLoading()
|
||||
}
|
||||
|
||||
const dictColumns: DataTableColumns<Entity.Dict> = [
|
||||
{
|
||||
title: '字典名称',
|
||||
key: 'dictLabel',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'actions',
|
||||
align: 'center',
|
||||
render: (row) => {
|
||||
return (
|
||||
<NFlex justify="center">
|
||||
<NButton
|
||||
size="small"
|
||||
onClick={() => getDictContent(row.id!)}
|
||||
>
|
||||
查看字典
|
||||
</NButton>
|
||||
<NButton
|
||||
size="small"
|
||||
onClick={() => modalRef.value!.openModal('edit', row)}
|
||||
>
|
||||
编辑
|
||||
</NButton>
|
||||
<NPopconfirm onPositiveClick={() => deleteDict(row.id!)}>
|
||||
{{
|
||||
default: () => (
|
||||
<span>
|
||||
确认删除字典
|
||||
<b>{row.dictLabel}</b>
|
||||
{' '}
|
||||
?
|
||||
</span>
|
||||
),
|
||||
trigger: () => <NButton size="small" type="error">删除</NButton>,
|
||||
}}
|
||||
</NPopconfirm>
|
||||
</NFlex>
|
||||
)
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
const contentColumns: DataTableColumns<Entity.Dict> = [
|
||||
{
|
||||
title: '字典名称',
|
||||
key: 'dictLabel',
|
||||
},
|
||||
{
|
||||
title: '字典值',
|
||||
key: 'dictValue',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'actions',
|
||||
align: 'center',
|
||||
width: '15em',
|
||||
render: (row) => {
|
||||
return (
|
||||
<NFlex justify="center">
|
||||
<NButton
|
||||
size="small"
|
||||
onClick={() => modalRef.value!.openModal('edit', row)}
|
||||
>
|
||||
编辑
|
||||
</NButton>
|
||||
<NPopconfirm onPositiveClick={() => deleteDict(row.id!)}>
|
||||
{{
|
||||
default: () => (
|
||||
<span>
|
||||
确认删除字典值
|
||||
<b>{row.dictLabel}</b>
|
||||
{' '}
|
||||
?
|
||||
</span>
|
||||
),
|
||||
trigger: () => <NButton size="small" type="error">删除</NButton>,
|
||||
}}
|
||||
</NPopconfirm>
|
||||
</NFlex>
|
||||
)
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
function deleteDict(id: number) {
|
||||
window.$message.error(`删除字典${id}`)
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>字典设置</div>
|
||||
<NFlex>
|
||||
<div class="basis-1/3">
|
||||
<n-card>
|
||||
<template #header>
|
||||
<NButton type="primary">
|
||||
<template #icon>
|
||||
<icon-park-outline-add-one />
|
||||
</template>
|
||||
新建
|
||||
</NButton>
|
||||
</template>
|
||||
<template #header-extra>
|
||||
<NFlex>
|
||||
<NButton type="primary" secondary @click="getDictList">
|
||||
<template #icon>
|
||||
<icon-park-outline-refresh />
|
||||
</template>
|
||||
刷新
|
||||
</NButton>
|
||||
</NFlex>
|
||||
</template>
|
||||
<n-data-table :columns="dictColumns" :data="dictData" :loading="dictLoading" :pagination="false" :bordered="false" />
|
||||
</n-card>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<n-card>
|
||||
<template #header>
|
||||
<NButton type="primary">
|
||||
<template #icon>
|
||||
<icon-park-outline-add-one />
|
||||
</template>
|
||||
新建
|
||||
</NButton>
|
||||
</template>
|
||||
<template #header-extra>
|
||||
<NFlex>
|
||||
<NButton type="primary" secondary @click="getDictContent(lastDictId)">
|
||||
<template #icon>
|
||||
<icon-park-outline-refresh />
|
||||
</template>
|
||||
刷新
|
||||
</NButton>
|
||||
</NFlex>
|
||||
</template>
|
||||
<n-data-table :columns="contentColumns" :data="dictContentData" :loading="contentLoading" :pagination="false" :bordered="false" />
|
||||
</n-card>
|
||||
</div>
|
||||
|
||||
<TableModal ref="modalRef" modal-name="字典" />
|
||||
</NFlex>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
|
@ -133,22 +133,23 @@ async function handlePositiveClick() {
|
||||
|
||||
<template>
|
||||
<n-card>
|
||||
<n-flex vertical>
|
||||
<div class="flex gap-4">
|
||||
<NButton type="primary" @click="tableModalRef.openModal('add')">
|
||||
<template #icon>
|
||||
<icon-park-outline-add-one />
|
||||
</template>
|
||||
新建
|
||||
</NButton>
|
||||
<template #header>
|
||||
<NButton type="primary" @click="tableModalRef.openModal('add')">
|
||||
<template #icon>
|
||||
<icon-park-outline-add-one />
|
||||
</template>
|
||||
新建
|
||||
</NButton>
|
||||
</template>
|
||||
|
||||
<NButton type="primary" secondary class="ml-auto" @click="getAllRoutes">
|
||||
<template #header-extra>
|
||||
<n-flex>
|
||||
<NButton type="primary" secondary @click="getAllRoutes">
|
||||
<template #icon>
|
||||
<icon-park-outline-refresh />
|
||||
</template>
|
||||
刷新
|
||||
</NButton>
|
||||
|
||||
<NPopconfirm
|
||||
@positive-click="handlePositiveClick"
|
||||
>
|
||||
@ -162,15 +163,15 @@ async function handlePositiveClick() {
|
||||
</template>
|
||||
确认删除所有选中菜单?
|
||||
</NPopconfirm>
|
||||
</div>
|
||||
<n-data-table
|
||||
v-model:checked-row-keys="checkedRowKeys"
|
||||
:row-key="(row:AppRoute.RowRoute) => row.id" :columns="columns" :data="tableData"
|
||||
:loading="loading"
|
||||
size="small"
|
||||
:scroll-x="1200"
|
||||
/>
|
||||
<TableModal ref="tableModalRef" :all-routes="tableData" modal-name="菜单" />
|
||||
</n-flex>
|
||||
</n-flex>
|
||||
</template>
|
||||
<n-data-table
|
||||
v-model:checked-row-keys="checkedRowKeys"
|
||||
:row-key="(row:AppRoute.RowRoute) => row.id" :columns="columns" :data="tableData"
|
||||
:loading="loading"
|
||||
size="small"
|
||||
:scroll-x="1200"
|
||||
/>
|
||||
<TableModal ref="tableModalRef" :all-routes="tableData" modal-name="菜单" />
|
||||
</n-card>
|
||||
</template>
|
||||
|
Loading…
x
Reference in New Issue
Block a user