Merge branch 'feature/dev'

pull/38/head
xingyu 2023-09-26 10:31:42 +08:00
commit f03fd74e52
27 changed files with 314 additions and 296 deletions

View File

@ -171,7 +171,10 @@
"*.ts": "$(capture).test.ts, $(capture).test.tsx",
"*.tsx": "$(capture).test.ts, $(capture).test.tsx",
"*.env": "$(capture).env.*",
"package.json": ".hintrc,pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.gitignore,prettier.config.js,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore"
"package.json": ".hintrc,pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.gitignore,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore"
},
"eslint.codeAction.showDocumentation": {
"enable": true
},
"eslint.codeAction.showDocumentation": {
"enable": true

View File

@ -1,6 +1,6 @@
{
"name": "yudao-ui-admin-vben",
"version": "1.8.1-snapshot",
"version": "1.8.2-snapshot",
"packageManager": "pnpm@8.6.0",
"author": {
"name": "xingyuv",
@ -56,7 +56,7 @@
"ant-design-vue": "^4.0.3",
"axios": "^1.5.0",
"benz-amr-recorder": "^1.1.5",
"codemirror": "^5.65.3",
"codemirror": "5.65.3",
"cron-parser": "^4.9.0",
"cropperjs": "^1.6.1",
"crypto-js": "^4.1.1",
@ -70,7 +70,7 @@
"qs": "^6.11.2",
"resize-observer-polyfill": "^1.5.1",
"sortablejs": "^1.15.0",
"tinymce": "^5.10.7",
"tinymce": "5.10.7",
"vditor": "^3.9.5",
"video-js": "^0.7.0",
"vue": "^3.3.4",
@ -84,18 +84,18 @@
"devDependencies": {
"@commitlint/cli": "^17.7.1",
"@commitlint/config-conventional": "^17.7.0",
"@iconify/json": "^2.2.119",
"@iconify/json": "^2.2.120",
"@purge-icons/generated": "^0.9.0",
"@types/codemirror": "^5.60.10",
"@types/crypto-js": "^4.1.2",
"@types/fs-extra": "^11.0.2",
"@types/inquirer": "^9.0.3",
"@types/lodash-es": "^4.17.9",
"@types/node": "^20.6.0",
"@types/node": "^20.7.0",
"@types/nprogress": "^0.2.1",
"@types/qs": "^6.9.8",
"@types/sortablejs": "^1.15.2",
"@unocss/eslint-config": "^0.56.1",
"@types/sortablejs": "^1.15.3",
"@unocss/eslint-config": "^0.56.2",
"@vitejs/plugin-vue": "4.3.4",
"@vitejs/plugin-vue-jsx": "^3.0.2",
"@vue/compiler-sfc": "^3.3.4",
@ -116,7 +116,7 @@
"postcss-html": "^1.5.0",
"postcss-less": "^6.0.0",
"prettier": "^3.0.3",
"rimraf": "^5.0.1",
"rimraf": "^5.0.4",
"rollup": "^3.29.3",
"rollup-plugin-visualizer": "^5.9.2",
"stylelint": "^15.10.3",
@ -128,7 +128,7 @@
"stylelint-prettier": "^4.0.2",
"terser": "^5.20.0",
"typescript": "^5.2.2",
"unocss": "^0.56.1",
"unocss": "^0.56.2",
"vite": "^4.4.9",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-mkcert": "^1.16.0",
@ -138,7 +138,7 @@
"vite-plugin-svg-icons": "^2.0.1",
"vite-vue-plugin-html": "^1.0.2",
"vue-eslint-parser": "^9.3.1",
"vue-tsc": "^1.8.13"
"vue-tsc": "^1.8.14"
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [

View File

@ -36,8 +36,8 @@ dependencies:
specifier: ^1.1.5
version: 1.1.5
codemirror:
specifier: ^5.65.3
version: 5.65.15
specifier: 5.65.3
version: 5.65.3
cron-parser:
specifier: ^4.9.0
version: 4.9.0
@ -78,7 +78,7 @@ dependencies:
specifier: ^1.15.0
version: 1.15.0
tinymce:
specifier: ^5.10.7
specifier: 5.10.7
version: 5.10.7
vditor:
specifier: ^3.9.5
@ -116,8 +116,8 @@ devDependencies:
specifier: ^17.7.0
version: 17.7.0
'@iconify/json':
specifier: ^2.2.119
version: 2.2.119
specifier: ^2.2.120
version: 2.2.120
'@purge-icons/generated':
specifier: ^0.9.0
version: 0.9.0
@ -137,8 +137,8 @@ devDependencies:
specifier: ^4.17.9
version: 4.17.9
'@types/node':
specifier: ^20.6.0
version: 20.6.4
specifier: ^20.7.0
version: 20.7.0
'@types/nprogress':
specifier: ^0.2.1
version: 0.2.1
@ -146,11 +146,11 @@ devDependencies:
specifier: ^6.9.8
version: 6.9.8
'@types/sortablejs':
specifier: ^1.15.2
version: 1.15.2
specifier: ^1.15.3
version: 1.15.3
'@unocss/eslint-config':
specifier: ^0.56.1
version: 0.56.1(eslint@8.50.0)(typescript@5.2.2)
specifier: ^0.56.2
version: 0.56.2(eslint@8.50.0)(typescript@5.2.2)
'@vitejs/plugin-vue':
specifier: 4.3.4
version: 4.3.4(vite@4.4.9)(vue@3.3.4)
@ -212,8 +212,8 @@ devDependencies:
specifier: ^3.0.3
version: 3.0.3
rimraf:
specifier: ^5.0.1
version: 5.0.1
specifier: ^5.0.4
version: 5.0.4
rollup:
specifier: ^3.29.3
version: 3.29.3
@ -248,11 +248,11 @@ devDependencies:
specifier: ^5.2.2
version: 5.2.2
unocss:
specifier: ^0.56.1
version: 0.56.1(postcss@8.4.30)(rollup@3.29.3)(vite@4.4.9)
specifier: ^0.56.2
version: 0.56.2(postcss@8.4.30)(rollup@3.29.3)(vite@4.4.9)
vite:
specifier: ^4.4.9
version: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
version: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
vite-plugin-compression:
specifier: ^0.5.1
version: 0.5.1(vite@4.4.9)
@ -278,8 +278,8 @@ devDependencies:
specifier: ^9.3.1
version: 9.3.1(eslint@8.50.0)
vue-tsc:
specifier: ^1.8.13
version: 1.8.13(typescript@5.2.2)
specifier: ^1.8.14
version: 1.8.14(typescript@5.2.2)
packages:
@ -1621,7 +1621,7 @@ packages:
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
resolve-from: 5.0.0
ts-node: 10.9.1(@types/node@20.6.4)(typescript@5.2.2)
ts-node: 10.9.1(@types/node@20.7.0)(typescript@5.2.2)
typescript: 5.2.2
transitivePeerDependencies:
- '@swc/core'
@ -2047,8 +2047,8 @@ packages:
dependencies:
'@iconify/types': 2.0.0
/@iconify/json@2.2.119:
resolution: {integrity: sha512-tYvxJpBds6UgXe6/iq2pW7hblsniDGWuKEwCr8PnSKLmZMilrtzHX7v+pg7FFmV2l2qA2Iw4toMRpe11tWBI4Q==}
/@iconify/json@2.2.120:
resolution: {integrity: sha512-vxE3fNGgQEEu2nvMuR/g4Cu/CxPpQWjc3cwsk/KY3iTN4hLKL0lnBsi1GmQL1ITSsyib2f72h329j+D9S9esbg==}
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.1
@ -2495,7 +2495,7 @@ packages:
resolution: {integrity: sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ==}
dependencies:
'@types/jsonfile': 6.1.2
'@types/node': 20.6.4
'@types/node': 20.7.0
dev: true
/@types/inquirer@9.0.3:
@ -2512,7 +2512,7 @@ packages:
/@types/jsonfile@6.1.2:
resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==}
dependencies:
'@types/node': 20.6.4
'@types/node': 20.7.0
dev: true
/@types/lodash-es@4.17.9:
@ -2543,8 +2543,8 @@ packages:
resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==}
dev: true
/@types/node@20.6.4:
resolution: {integrity: sha512-nU6d9MPY0NBUMiE/nXd2IIoC4OLvsLpwAjheoAeuzgvDZA1Cb10QYg+91AF6zQiKWRN5i1m07x6sMe0niBznoQ==}
/@types/node@20.7.0:
resolution: {integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==}
dev: true
/@types/normalize-package-data@2.4.2:
@ -2562,21 +2562,21 @@ packages:
/@types/resolve@1.17.1:
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
dependencies:
'@types/node': 20.6.4
'@types/node': 20.7.0
dev: true
/@types/semver@7.5.2:
resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==}
dev: true
/@types/sortablejs@1.15.2:
resolution: {integrity: sha512-mOIv/EnPMzAZAVbuh9uGjOZ1BBdimP9Y6IPGntsvQJtko5yapSDKB7GwB3AOlF5N3bkpk4sBwQRpS3aEkiUbaA==}
/@types/sortablejs@1.15.3:
resolution: {integrity: sha512-v+zh6TZP/cLeMUK0MDx1onp8e7Jk2/4iTQ7sb/n80rTAvBm14yJkpOEfJdrTCkHiF7IZbPjxGX2NRJfogRoYIg==}
dev: true
/@types/svgo@2.6.4:
resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
dependencies:
'@types/node': 20.6.4
'@types/node': 20.7.0
dev: true
/@types/tern@0.23.5:
@ -2588,7 +2588,7 @@ packages:
/@types/through@0.0.31:
resolution: {integrity: sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w==}
dependencies:
'@types/node': 20.6.4
'@types/node': 20.7.0
dev: true
/@types/trusted-types@2.0.4:
@ -2800,32 +2800,32 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
/@unocss/astro@0.56.1(rollup@3.29.3)(vite@4.4.9):
resolution: {integrity: sha512-ivWm69J76DRwCiEFM75qR4WPMCC6nyOrUM5iQDTypwKbBX26XlXcYYCN3DLoQTmWdp5f2BubZXAg3KIdgVxrYg==}
/@unocss/astro@0.56.2(rollup@3.29.3)(vite@4.4.9):
resolution: {integrity: sha512-IwkTODLjxeTZRM6vIU7neGglMt68nXXejRxDThDNzLZ0DfCUGkrfBr/K+k0c5oRGCu6389slphkhTwF/Zxt+jw==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
peerDependenciesMeta:
vite:
optional: true
dependencies:
'@unocss/core': 0.56.1
'@unocss/reset': 0.56.1
'@unocss/vite': 0.56.1(rollup@3.29.3)(vite@4.4.9)
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
'@unocss/core': 0.56.2
'@unocss/reset': 0.56.2
'@unocss/vite': 0.56.2(rollup@3.29.3)(vite@4.4.9)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- rollup
dev: true
/@unocss/cli@0.56.1(rollup@3.29.3):
resolution: {integrity: sha512-s7lRtPkNw7GXdej3uYKFgfyal3Bq0Ux9oJKQ3rV7ysvY5AMfHs+ayc1EC6vXsAunziJ39dloPrRY5cx1H7abkQ==}
/@unocss/cli@0.56.2(rollup@3.29.3):
resolution: {integrity: sha512-HLb2fC8waIxygG2/QTT0WEZjndwBHgRzEz+Vlb1s+mz4UGnmCA6hgsRLaop0Bdi+gVnmJv+bi2/nbJ+jlTFXYQ==}
engines: {node: '>=14'}
hasBin: true
dependencies:
'@ampproject/remapping': 2.2.1
'@rollup/pluginutils': 5.0.4(rollup@3.29.3)
'@unocss/config': 0.56.1
'@unocss/core': 0.56.1
'@unocss/preset-uno': 0.56.1
'@unocss/config': 0.56.2
'@unocss/core': 0.56.2
'@unocss/preset-uno': 0.56.2
cac: 6.7.14
chokidar: 3.5.3
colorette: 2.0.20
@ -2838,36 +2838,36 @@ packages:
- rollup
dev: true
/@unocss/config@0.56.1:
resolution: {integrity: sha512-ZwKWtbMfg38laUNwjERkiTo3JKCgpw+hZMBqbbr2N4Rhc1ZaT4EJyQmcc/+P05JoNNr+ueYMoCMOCOtn/wuheQ==}
/@unocss/config@0.56.2:
resolution: {integrity: sha512-dIm7ARnqSgyMs1urXTeqlLUAbifAhllnSh1ZiUmh7c+ThcXcTYAD6xtosSA2SXJU94D6pRCaMhuoRix9j6asZw==}
engines: {node: '>=14'}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
unconfig: 0.3.10
dev: true
/@unocss/core@0.56.1:
resolution: {integrity: sha512-2qmb/+hQ2CXmIgSqaeL6Pw2reO2MxsZlLMFuu71J8T3+UKrkI9NAwkZ4sdb38EoOisVIr2lvE48uc44XBfaOdg==}
/@unocss/core@0.56.2:
resolution: {integrity: sha512-44pqqOgO9Lxg9WHpz5RYJ8PvnuEyoc5WuntmPkIeQcoIBArgAleAMKuDQ53MLsF+M1fwz6oBeWDk8ASO6Wd/kw==}
dev: true
/@unocss/eslint-config@0.56.1(eslint@8.50.0)(typescript@5.2.2):
resolution: {integrity: sha512-ph1w2FO+wCHq0jz0iQyxUbjwLSVjSz6wQ2yd0fCsm6mHNlewWHmu6gD3Grs9j5XDyFJEwz4HZZRHspJanqSJyA==}
/@unocss/eslint-config@0.56.2(eslint@8.50.0)(typescript@5.2.2):
resolution: {integrity: sha512-63qzwai0DVArrjpabn6Em8jqsssIrWngqB53olDWCLJ7MzwFKMPWb6fsWkl3Eab7YYcUiOzxsdIeolFnmGIgtw==}
engines: {node: '>=14'}
dependencies:
'@unocss/eslint-plugin': 0.56.1(eslint@8.50.0)(typescript@5.2.2)
'@unocss/eslint-plugin': 0.56.2(eslint@8.50.0)(typescript@5.2.2)
transitivePeerDependencies:
- eslint
- supports-color
- typescript
dev: true
/@unocss/eslint-plugin@0.56.1(eslint@8.50.0)(typescript@5.2.2):
resolution: {integrity: sha512-WLTybFXK9FJUMmEdUBa4Yj6uZx4qTCThGVej5Rn3XA+5f58zNmcSbipUG5oz16Z/QqYKP8iKhtg5zAQJMi0erg==}
/@unocss/eslint-plugin@0.56.2(eslint@8.50.0)(typescript@5.2.2):
resolution: {integrity: sha512-dEH1JgILVnQ9RMjj5zurZ0LTwlgQMoIaLMn/ZDM3Htb5Rw3WllG0JwLGzxOQaWG4E0y9HRmuQSmuJZ/xCuSi8w==}
engines: {node: '>=14'}
dependencies:
'@typescript-eslint/utils': 6.7.2(eslint@8.50.0)(typescript@5.2.2)
'@unocss/config': 0.56.1
'@unocss/core': 0.56.1
'@unocss/config': 0.56.2
'@unocss/core': 0.56.2
magic-string: 0.30.3
synckit: 0.8.5
transitivePeerDependencies:
@ -2876,159 +2876,159 @@ packages:
- typescript
dev: true
/@unocss/extractor-arbitrary-variants@0.56.1:
resolution: {integrity: sha512-2vEcVwUTpC0yROjvKGjR3HSE8jaf1cwQqL+Ba5oP+Y4Vrjlf8hqvoSowgVT+wp/ecPH8z82xFNhS+XMOdgXpGA==}
/@unocss/extractor-arbitrary-variants@0.56.2:
resolution: {integrity: sha512-mDuCk5S2j3lmtflzibMUKtkdPXUycuNMw0FRtTobjl1p6V1TcJaN6SrL8+voIwLn+PffLWibuNljyal0BC/sMw==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/inspector@0.56.1:
resolution: {integrity: sha512-PJ3MEwOvUjLaiySPQQKlw0XgwpReNK7c+nDX0D8ZBmUyw3swSn8wSar2cCOLsKLRtKRRp4kz1brM/BaleyYyeg==}
/@unocss/inspector@0.56.2:
resolution: {integrity: sha512-VqmmFpHwlbRiQw5I//oF3o7xHtaZOk6m9xHW6hxVuAkRNFPNFR73hToilfQgkvrt0Qw/rEzDsLYMvI1LuWpvKg==}
dependencies:
'@unocss/rule-utils': 0.56.1
'@unocss/rule-utils': 0.56.2
gzip-size: 6.0.0
sirv: 2.0.3
dev: true
/@unocss/postcss@0.56.1(postcss@8.4.30):
resolution: {integrity: sha512-8jUS5ynopvMbZmdUQhGv+lvKziuAPHHl9LaZzCJ4uHgPOwITNXWTi4dmNbytdYC3iYPQ++8eOph93VPCxdqVsw==}
/@unocss/postcss@0.56.2(postcss@8.4.30):
resolution: {integrity: sha512-mqNEQflEGxaYeqEJuMlFrlnzj1I9O5yvUEhux4EDy0hkqojCldwtjAosJ9jeBU/Sutr/YjWDOQ2+SU0Ei58Rxg==}
engines: {node: '>=14'}
peerDependencies:
postcss: ^8.4.21
dependencies:
'@unocss/config': 0.56.1
'@unocss/core': 0.56.1
'@unocss/rule-utils': 0.56.1
'@unocss/config': 0.56.2
'@unocss/core': 0.56.2
'@unocss/rule-utils': 0.56.2
css-tree: 2.3.1
fast-glob: 3.3.1
magic-string: 0.30.3
postcss: 8.4.30
dev: true
/@unocss/preset-attributify@0.56.1:
resolution: {integrity: sha512-z+riyM9Fl+aYReg3cgxDRrI52teOL6ebj1UkMOje5sXuhneEQobUkg3k4Oi9NGTdalO5PU/jwcYCNfVksMPWZg==}
/@unocss/preset-attributify@0.56.2:
resolution: {integrity: sha512-kH7IMjShgkXfL6DMznsHyDIZ1NGRQK2CFZUUCyBORckhKd2mFTzeycnTkYnsGG0bDoakGiBcpIMzX4fS7vQrpw==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/preset-icons@0.56.1:
resolution: {integrity: sha512-Jwyy7i39Hvt4gf+/vtlIcKucNP2y7IV5nF9KPuDnikho4xS/D24z3lbUclrscbH8XGfRcsUzGHI/y+8gD7zZjQ==}
/@unocss/preset-icons@0.56.2:
resolution: {integrity: sha512-aXeClNH/3744cIhICT61PPpfsKX5c8J70p9nj2F2cTYE4K3XlfjyAbUnVpEYz0G/mkJsA5X36t1TWGRC8/L9Cg==}
dependencies:
'@iconify/utils': 2.1.10
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
ofetch: 1.3.3
transitivePeerDependencies:
- supports-color
dev: true
/@unocss/preset-mini@0.56.1:
resolution: {integrity: sha512-hOujmUN5kiA7KCkH1mUFf3cStsa3WZTi3g/I91VQ8EM4S6R7aRvME7LBXlb38z68+pckoDLhOhbN7gSg2iZTjA==}
/@unocss/preset-mini@0.56.2:
resolution: {integrity: sha512-vAVf6bkkg/rr3/xsTRJDNHHfhSr3ypzEf7pRX4ay9lZraCCF/L+WUPPY/ZppV6ZMqnBxoineGad2Ph82cONwFA==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/extractor-arbitrary-variants': 0.56.1
'@unocss/rule-utils': 0.56.1
'@unocss/core': 0.56.2
'@unocss/extractor-arbitrary-variants': 0.56.2
'@unocss/rule-utils': 0.56.2
dev: true
/@unocss/preset-tagify@0.56.1:
resolution: {integrity: sha512-cd1McbaEpoerduOt8dA6MOkVZQIutuF3dHyjrI/pXbDtoyzBWjT9MLEeV77Hlz3S09+9cqGZddBBkqo0WGsM0w==}
/@unocss/preset-tagify@0.56.2:
resolution: {integrity: sha512-Z9yj5LyF7pw9lFaxagEX6JxDm0P0/50GF3zXapVsAdNfqG+868vQxgu7VI2G556Kd3zeUNuQhiAWkv9PZY8UJw==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/preset-typography@0.56.1:
resolution: {integrity: sha512-3p+dWEtMDe8MSPbUZseS94OpdYbv/pMTs2K1NBysE5BjIEVlyxRNWcZ8FC6risAJ1U0Ouctb6BqP6IA8r9BiWQ==}
/@unocss/preset-typography@0.56.2:
resolution: {integrity: sha512-pyhH9M4yu0pzot0OWiZ0qRjVpVmIWppsuZw/mnrKzzD+FwfMRGfys885Fqu9E0vdCP3PnkkpSHqpLmm7L7S/Qg==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/preset-mini': 0.56.1
'@unocss/core': 0.56.2
'@unocss/preset-mini': 0.56.2
dev: true
/@unocss/preset-uno@0.56.1:
resolution: {integrity: sha512-rNnjpmnfrP/1P462dyELBQHe5NDlFSrJevwjCpAOeFXdO0XCCULpHokuaovZYwesNvzzWu+cZequya38n5hkSw==}
/@unocss/preset-uno@0.56.2:
resolution: {integrity: sha512-fHBc4eCDX8QBnypDVpUVxaZFtE7zkbry+lTBPqhTZZojX9bvInLv5+KJohDmWfONO3qFB0qYTXfSemuux2XwZw==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/preset-mini': 0.56.1
'@unocss/preset-wind': 0.56.1
'@unocss/rule-utils': 0.56.1
'@unocss/core': 0.56.2
'@unocss/preset-mini': 0.56.2
'@unocss/preset-wind': 0.56.2
'@unocss/rule-utils': 0.56.2
dev: true
/@unocss/preset-web-fonts@0.56.1:
resolution: {integrity: sha512-SO2ZjrcFSi02QgQT3UVUtIlZE59A92gB1pzmYTMGZhjhmxqq6aghvBKEC00LfnQ200MRtAawgiZ+5Xysi/XsGg==}
/@unocss/preset-web-fonts@0.56.2:
resolution: {integrity: sha512-ebrl3/UK3DLNwYfqR67zQG+3fWRazG08H4531C2ileYgwX5+j1Lg/H4OBWm9dz9is04+1hyyZB5glr9Gxlm20Q==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
ofetch: 1.3.3
dev: true
/@unocss/preset-wind@0.56.1:
resolution: {integrity: sha512-/fR0eYlmezu6R3wWvN5zVNAfOE6rcC1CsEZKH0SdwchMvNDjJNd0rmAechI2BnVBaa3++H2Cz+0AfCDEP8tsjg==}
/@unocss/preset-wind@0.56.2:
resolution: {integrity: sha512-wHkdgt8SGe2Xe8DUaXTf/FJKqAak5wLIr0wQlOT9yYBnFraUCSqPAcXykHcevxvPXAxnAof9C2oN58kPtk8NnA==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/preset-mini': 0.56.1
'@unocss/rule-utils': 0.56.1
'@unocss/core': 0.56.2
'@unocss/preset-mini': 0.56.2
'@unocss/rule-utils': 0.56.2
dev: true
/@unocss/reset@0.56.1:
resolution: {integrity: sha512-nfzLKv2W9Y3fZLny6lYTroa/YExczGYHsVPCBPGkVt0TrM0yDA+ZKOHbN93b5myY9hzJ3pHTEQmYFsFwzzr6Kg==}
/@unocss/reset@0.56.2:
resolution: {integrity: sha512-RFI5XXb0Oc0WyarL6x4gti3/bKPqY9LKB/kHoEx05aZhFFtz1GzUYzqFdDakieS6FM2Jc1IFWpeC6Y3b7xce8A==}
dev: true
/@unocss/rule-utils@0.56.1:
resolution: {integrity: sha512-mmmbx10eELAyhYZqBWlQFPOafnL1hHp2fo18rUbZLedvMJWds3Z23Q/u3VKEpJnCszNkr03BXVwscR5+ZdF4uw==}
/@unocss/rule-utils@0.56.2:
resolution: {integrity: sha512-cG2DtKSjaJOety1ELqbQeavQvpX6CZbrbrANR53671Y4SE+S1QAL/muqr61HI0gFveLidqws5dIQq/8SaZPCyg==}
engines: {node: '>=14'}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/scope@0.56.1:
resolution: {integrity: sha512-qIq/JuibrVOAJw/TCUm54XwHRcDImgrb1abZVuaicFh6fjmpdOi/iglYxoFqXS5gusp0m2vNnOLbaBB4LrPf5Q==}
/@unocss/scope@0.56.2:
resolution: {integrity: sha512-8QvO3HlUVe97faBNpkB9i0BVjjqAU0T4ohK/yhG1AIUYhqfXRY5vh22TJxPIqAsNXbF4cUfxvZg1oSi8S6gmqQ==}
dev: true
/@unocss/transformer-attributify-jsx-babel@0.56.1:
resolution: {integrity: sha512-8+l4tfifHiSnga3iaxqXfAMgEJG7yLphKPDSm6DHEMUqKeia9rn3V/bABx5KZxpMmnH6FoiYboJL4uf5W58a5Q==}
/@unocss/transformer-attributify-jsx-babel@0.56.2:
resolution: {integrity: sha512-lMv8YWVTPpioDVDc25FurJFvNuDLswoUjVobshQ3KhoLOlJUruQ2MX3admzBHvEtWqdi2SXWlwKQRRqKuZ69/A==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/transformer-attributify-jsx@0.56.1:
resolution: {integrity: sha512-2dQ7immRBnZJQ9aU+VIiAbcFCycXq8yXG2RPd82Pl0tAV8f5DtLbbuTC5mzo5lGOhuXJ+/u+IpuL9xchjOV7WQ==}
/@unocss/transformer-attributify-jsx@0.56.2:
resolution: {integrity: sha512-0k4uNM3tSTmDSPCW54/psSFCqF/ACpEGMHUTJaPzDNyHQZTjLe5JafytWJ0IgFKiycMkpvj8Xzzx+YVBNd6F/A==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/transformer-compile-class@0.56.1:
resolution: {integrity: sha512-v3ICzTWj3oQ1S6qkGzg/oyzrk05ZgdcvjYFSZlgBIu2iUJldBhO0+7ZMuDpniaT21GjJvukLwiWrOF4mYyJCyg==}
/@unocss/transformer-compile-class@0.56.2:
resolution: {integrity: sha512-iTagdlcnB3uvH40nGCsvxWNxt1ubEEfxOnCXM3jgfzNRmiqjMI6iRNp7X7+DwVPv3VeXratnWqOg9MZvp/TE3A==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/transformer-directives@0.56.1:
resolution: {integrity: sha512-Pwh+JUxxn8ECqpEWETeD38OON5Y2oYAOC1CFKAyXoK22J7f51THoS07z2rZpDNdQA2T/szxenNCdRt72/NJ/pg==}
/@unocss/transformer-directives@0.56.2:
resolution: {integrity: sha512-yZkGBfdp+HMAJaTqUF0tYV3aYMcBMJUl6AgACz2ziXLmcjlKHwqHmryqSDrBZBj8sdQieBfLvWlaAMQ7Zgjw+Q==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/rule-utils': 0.56.1
'@unocss/core': 0.56.2
'@unocss/rule-utils': 0.56.2
css-tree: 2.3.1
dev: true
/@unocss/transformer-variant-group@0.56.1:
resolution: {integrity: sha512-UwXNcW00R6MjHZajy8lmSfwWDwhnvd+rF9eRGfcJTEzWr+LtEmgw8SJBr7STCB4ZwRE37NIp4oLLl1jF8omGNg==}
/@unocss/transformer-variant-group@0.56.2:
resolution: {integrity: sha512-9d0z1Rr07rloQqeoCoM7ChhSzZJ+Pj/kcRhi8Jd5O27xEfopYnzf27+2KPYyLSumGay0TgJmSjmg5H2rx6/P6A==}
dependencies:
'@unocss/core': 0.56.1
'@unocss/core': 0.56.2
dev: true
/@unocss/vite@0.56.1(rollup@3.29.3)(vite@4.4.9):
resolution: {integrity: sha512-IztLc304zP2LYQMsP3yVHmLwXlLUgCY3q6Nkqw6Hpds7l5JXBsE7Q19DtNW+4nDOp9wvWhw7CjQLmoh8d+V0lQ==}
/@unocss/vite@0.56.2(rollup@3.29.3)(vite@4.4.9):
resolution: {integrity: sha512-kM+wc2JvhCIsU08sdyM7ho+nyJ+NfA1rfrsg/pQy2o7PY7pEjSl4ownDA4hDgX4PdmxHCQD/xZCK2/El9nLVlA==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
dependencies:
'@ampproject/remapping': 2.2.1
'@rollup/pluginutils': 5.0.4(rollup@3.29.3)
'@unocss/config': 0.56.1
'@unocss/core': 0.56.1
'@unocss/inspector': 0.56.1
'@unocss/scope': 0.56.1
'@unocss/transformer-directives': 0.56.1
'@unocss/config': 0.56.2
'@unocss/core': 0.56.2
'@unocss/inspector': 0.56.2
'@unocss/scope': 0.56.2
'@unocss/transformer-directives': 0.56.2
chokidar: 3.5.3
fast-glob: 3.3.1
magic-string: 0.30.3
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- rollup
dev: true
@ -3088,7 +3088,7 @@ packages:
'@babel/core': 7.22.20
'@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.22.20)
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.20)
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
vue: 3.3.4
transitivePeerDependencies:
- supports-color
@ -3101,7 +3101,7 @@ packages:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
vue: 3.3.4
dev: true
@ -3184,8 +3184,8 @@ packages:
resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
dev: false
/@vue/language-core@1.8.13(typescript@5.2.2):
resolution: {integrity: sha512-nata2fYBZAkl4QJrU+IcArJCMTHt1VP8ePL/Z7eUPC2AF+Cm7Qgo9ksNCPBzZRh1LYjCaSaqV7njqNogwpsMVg==}
/@vue/language-core@1.8.14(typescript@5.2.2):
resolution: {integrity: sha512-15GGOkUP/AgE/jzGdUMtOaQ+XPokrP+Q5Z0DS3aun3i72E6MjFvwB7E2k/ap0mABjdRCRjoVPnsMF1+TkzGqQg==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@ -3242,11 +3242,11 @@ packages:
/@vue/shared@3.3.4:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
/@vue/typescript@1.8.13(typescript@5.2.2):
resolution: {integrity: sha512-ALJjHFqQ3dgZVCI/ogAS/dZ7JEhIi1N0Em5I7uwabY1p9RDRK3odLsycMHyxZRjm5dLI15c07eeBloHiD2Otlg==}
/@vue/typescript@1.8.14(typescript@5.2.2):
resolution: {integrity: sha512-ZNV6MkYNCNNyYSty/uvlChxftOUhpeTr3TkoMkwhovjXQERM3IBCP2lcOLnT6gb7dQ9vdN7dI5kPf8PYPmbkUA==}
dependencies:
'@volar/typescript': 1.10.1
'@vue/language-core': 1.8.13(typescript@5.2.2)
'@vue/language-core': 1.8.14(typescript@5.2.2)
transitivePeerDependencies:
- typescript
dev: true
@ -4079,8 +4079,8 @@ packages:
engines: {node: '>=0.8'}
dev: true
/codemirror@5.65.15:
resolution: {integrity: sha512-YC4EHbbwQeubZzxLl5G4nlbLc1T21QTrKGaOal/Pkm9dVDMZXMH7+ieSPEOZCtO9I68i8/oteJKOxzHC2zR+0g==}
/codemirror@5.65.3:
resolution: {integrity: sha512-kCC0iwGZOVZXHEKW3NDTObvM7pTIyowjty4BUqeREROc/3I6bWbgZDA3fGDwlA+rbgRjvnRnfqs9SfXynel1AQ==}
dev: false
/codepage@1.15.0:
@ -4259,7 +4259,7 @@ packages:
dependencies:
'@types/node': 20.4.7
cosmiconfig: 8.3.6(typescript@5.2.2)
ts-node: 10.9.1(@types/node@20.6.4)(typescript@5.2.2)
ts-node: 10.9.1(@types/node@20.7.0)(typescript@5.2.2)
typescript: 5.2.2
dev: true
@ -5674,8 +5674,8 @@ packages:
is-glob: 4.0.3
dev: true
/glob@10.3.6:
resolution: {integrity: sha512-mEfImdc/fiYHEcF6pHFfD2b/KrdFB1qH9mRe5vI5HROF8G51SWxQJ2V56Ezl6ZL9y86gsxQ1Lgo2S746KGUPSQ==}
/glob@10.3.7:
resolution: {integrity: sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ==}
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
dependencies:
@ -6446,7 +6446,7 @@ packages:
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
engines: {node: '>= 10.13.0'}
dependencies:
'@types/node': 20.6.4
'@types/node': 20.7.0
merge-stream: 2.0.0
supports-color: 7.2.0
dev: true
@ -8050,12 +8050,12 @@ packages:
glob: 7.2.3
dev: true
/rimraf@5.0.1:
resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==}
/rimraf@5.0.4:
resolution: {integrity: sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==}
engines: {node: '>=14'}
hasBin: true
dependencies:
glob: 10.3.6
glob: 10.3.7
dev: true
/rollup-plugin-purge-icons@0.9.1:
@ -8960,7 +8960,7 @@ packages:
typescript: 5.2.2
dev: true
/ts-node@10.9.1(@types/node@20.6.4)(typescript@5.2.2):
/ts-node@10.9.1(@types/node@20.7.0)(typescript@5.2.2):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@ -8979,7 +8979,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 20.6.4
'@types/node': 20.7.0
acorn: 8.10.0
acorn-walk: 8.2.0
arg: 4.1.3
@ -9190,11 +9190,11 @@ packages:
engines: {node: '>= 10.0.0'}
dev: true
/unocss@0.56.1(postcss@8.4.30)(rollup@3.29.3)(vite@4.4.9):
resolution: {integrity: sha512-jjkcyXfW90CUjN4tBV6SrHX9ifi5GQgcwAQlMRB0copJEW3ejM/nyZnRgNexaV7hi7Ao76XMVqCKbOC5B+IuOA==}
/unocss@0.56.2(postcss@8.4.30)(rollup@3.29.3)(vite@4.4.9):
resolution: {integrity: sha512-ZEj8/9OVv6zyuwSVWRGDULHeUdFgTnUAN3Hn8prysfbCI4x06xzsu46xLV9SoHE4eOJ1eSUs7YaJHGKFOocsQQ==}
engines: {node: '>=14'}
peerDependencies:
'@unocss/webpack': 0.56.1
'@unocss/webpack': 0.56.2
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
peerDependenciesMeta:
'@unocss/webpack':
@ -9202,27 +9202,27 @@ packages:
vite:
optional: true
dependencies:
'@unocss/astro': 0.56.1(rollup@3.29.3)(vite@4.4.9)
'@unocss/cli': 0.56.1(rollup@3.29.3)
'@unocss/core': 0.56.1
'@unocss/extractor-arbitrary-variants': 0.56.1
'@unocss/postcss': 0.56.1(postcss@8.4.30)
'@unocss/preset-attributify': 0.56.1
'@unocss/preset-icons': 0.56.1
'@unocss/preset-mini': 0.56.1
'@unocss/preset-tagify': 0.56.1
'@unocss/preset-typography': 0.56.1
'@unocss/preset-uno': 0.56.1
'@unocss/preset-web-fonts': 0.56.1
'@unocss/preset-wind': 0.56.1
'@unocss/reset': 0.56.1
'@unocss/transformer-attributify-jsx': 0.56.1
'@unocss/transformer-attributify-jsx-babel': 0.56.1
'@unocss/transformer-compile-class': 0.56.1
'@unocss/transformer-directives': 0.56.1
'@unocss/transformer-variant-group': 0.56.1
'@unocss/vite': 0.56.1(rollup@3.29.3)(vite@4.4.9)
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
'@unocss/astro': 0.56.2(rollup@3.29.3)(vite@4.4.9)
'@unocss/cli': 0.56.2(rollup@3.29.3)
'@unocss/core': 0.56.2
'@unocss/extractor-arbitrary-variants': 0.56.2
'@unocss/postcss': 0.56.2(postcss@8.4.30)
'@unocss/preset-attributify': 0.56.2
'@unocss/preset-icons': 0.56.2
'@unocss/preset-mini': 0.56.2
'@unocss/preset-tagify': 0.56.2
'@unocss/preset-typography': 0.56.2
'@unocss/preset-uno': 0.56.2
'@unocss/preset-web-fonts': 0.56.2
'@unocss/preset-wind': 0.56.2
'@unocss/reset': 0.56.2
'@unocss/transformer-attributify-jsx': 0.56.2
'@unocss/transformer-attributify-jsx-babel': 0.56.2
'@unocss/transformer-compile-class': 0.56.2
'@unocss/transformer-directives': 0.56.2
'@unocss/transformer-variant-group': 0.56.2
'@unocss/vite': 0.56.2(rollup@3.29.3)(vite@4.4.9)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- postcss
- rollup
@ -9349,7 +9349,7 @@ packages:
chalk: 4.1.2
debug: 4.3.4
fs-extra: 10.1.0
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- supports-color
dev: true
@ -9364,7 +9364,7 @@ packages:
axios: 1.5.0(debug@4.3.4)
debug: 4.3.4
picocolors: 1.0.0
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- encoding
- supports-color
@ -9379,7 +9379,7 @@ packages:
picocolors: 1.0.0
progress: 2.0.3
rd: 2.0.1
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
dev: true
/vite-plugin-purge-icons@0.9.2(vite@4.4.9):
@ -9391,7 +9391,7 @@ packages:
'@purge-icons/core': 0.9.1
'@purge-icons/generated': 0.9.0
rollup-plugin-purge-icons: 0.9.1
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- encoding
- supports-color
@ -9408,7 +9408,7 @@ packages:
debug: 4.3.4
fast-glob: 3.3.1
pretty-bytes: 6.1.1
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
workbox-build: 7.0.0
workbox-window: 7.0.0
transitivePeerDependencies:
@ -9428,7 +9428,7 @@ packages:
pathe: 0.2.0
svg-baker: 1.7.0
svgo: 2.8.0
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- supports-color
dev: true
@ -9450,12 +9450,12 @@ packages:
html-minifier-terser: 7.2.0
node-html-parser: 6.1.10
pathe: 1.1.1
vite: 4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0)
vite: 4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0)
transitivePeerDependencies:
- rollup
dev: true
/vite@4.4.9(@types/node@20.6.4)(less@4.2.0)(terser@5.20.0):
/vite@4.4.9(@types/node@20.7.0)(less@4.2.0)(terser@5.20.0):
resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
@ -9483,7 +9483,7 @@ packages:
terser:
optional: true
dependencies:
'@types/node': 20.6.4
'@types/node': 20.7.0
esbuild: 0.18.20
less: 4.2.0
postcss: 8.4.30
@ -9563,14 +9563,14 @@ packages:
he: 1.2.0
dev: true
/vue-tsc@1.8.13(typescript@5.2.2):
resolution: {integrity: sha512-Hl8zUXPVK2KzPtbXeMCN0CSFkwvD96YOtYt9KvJPG9W8QGcNpGk9KHwPuGMxA8blWXSIli7gtsoC+clICEVdVg==}
/vue-tsc@1.8.14(typescript@5.2.2):
resolution: {integrity: sha512-nlxsS8pbTCVho2Yqc4fvygDrXsdzftYdBHH2EO5m9KHjJYwYo8LtGGJ3XVl9ayqZlt+WfuzUD6Hts7va7+wdUQ==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@vue/language-core': 1.8.13(typescript@5.2.2)
'@vue/typescript': 1.8.13(typescript@5.2.2)
'@vue/language-core': 1.8.14(typescript@5.2.2)
'@vue/typescript': 1.8.14(typescript@5.2.2)
semver: 7.5.4
typescript: 5.2.2
dev: true

View File

@ -1,20 +1,20 @@
<script lang="ts" setup>
import { Button } from 'ant-design-vue'
import { Button, theme } from 'ant-design-vue'
import { computed, unref } from 'vue'
import { buttonProps } from './props'
import { Icon } from '@/components/Icon'
import { useAttrs } from '@/hooks/core/useAttrs'
import { Icon } from '@/components/Icon'
defineOptions({ name: 'AButton', extends: Button, indeterminate: false })
const props = defineProps(buttonProps)
const { useToken } = theme
const { token } = useToken()
// get component class
const attrs = useAttrs({ excludeDefaultKeys: false })
const getButtonClass = computed(() => {
const { color, disabled } = props
const { disabled } = props
return [
{
[`ant-btn-${color}`]: !!color,
'is-disabled': disabled,
},
]
@ -25,7 +25,25 @@ const getBindValue = computed(() => ({ ...unref(attrs), ...props }))
</script>
<template>
<Button v-bind="getBindValue" :class="getButtonClass" @click="onClick">
<Button
v-bind="getBindValue" :style="{
backgroundColor: color
? (
color === 'primary'
? token.colorPrimary
: (
color === 'error'
? token.colorError
: (
color === 'warning'
? token.colorWarning
: (color === 'success' ? token.colorSuccess : '')
)
)
)
: '',
}" :class="getButtonClass" @click="onClick"
>
<template #default="data">
<Icon v-if="preIcon" :icon="preIcon" :size="iconSize" />
<slot v-bind="data || {}" />

View File

@ -11,7 +11,7 @@ const props = defineProps({
value: { type: [Object, Number, String, Array] },
count: { type: Number, default: 60 },
beforeStartFunc: {
type: Function as PropType<() => Promise<boolean>>,
type: Function as PropType<() => Promise<any>>,
default: null,
},
})
@ -38,7 +38,9 @@ async function handleStart() {
loading.value = true
try {
const canStart = await beforeStartFunc()
canStart && start()
if (canStart)
start()
}
finally {
loading.value = false

View File

@ -10,7 +10,7 @@ const props = defineProps({
size: { type: String, validator: (v: string) => ['default', 'large', 'small'].includes(v) },
count: { type: Number, default: 60 },
sendCodeApi: {
type: Function as PropType<() => Promise<boolean>>,
type: Function as PropType<() => Promise<any>>,
default: null,
},
})

View File

@ -8,7 +8,7 @@ interface UseAutoFocusContext {
isInitedDefault: Ref<boolean>
formElRef: Ref<FormActionType>
}
export async function useAutoFocus({ getSchema, getProps, formElRef, isInitedDefault }: UseAutoFocusContext) {
export function useAutoFocus({ getSchema, getProps, formElRef, isInitedDefault }: UseAutoFocusContext) {
watchEffect(async () => {
if (unref(isInitedDefault) || !unref(getProps).autoFocusFirstItem)
return

View File

@ -78,7 +78,7 @@ export function useForm(props?: Props): UseFormReturnType {
},
removeSchemaByField: async (field: string | string[]) => {
unref(formRef)?.removeSchemaByField(field)
await unref(formRef)?.removeSchemaByField(field)
},
// TODO promisify

View File

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/require-await */
import type { ComputedRef, Ref } from 'vue'
import type { NamePath } from 'ant-design-vue/lib/form/interface'
import { nextTick, toRaw, unref } from 'vue'
@ -89,6 +90,7 @@ export function useFormEvents({
const defaultValueObj = schema?.defaultValueObj
const fieldKeys = Object.keys(defaultValueObj || {})
if (fieldKeys.length) {
// eslint-disable-next-line array-callback-return
fieldKeys.map((field) => {
formModel[field] = defaultValueObj![field]
})

View File

@ -6,6 +6,7 @@ import { useDesign } from '@/hooks/web/useDesign'
import { propTypes } from '@/utils/propTypes'
import mitt from '@/utils/mitt'
// eslint-disable-next-line vue/no-reserved-component-names
defineOptions({ name: 'Menu' })
const props = defineProps({

View File

@ -1,3 +1,4 @@
<!-- eslint-disable no-useless-call -->
<script lang="ts" setup>
import { computed, inject, ref, toRaw, unref, useAttrs, useSlots, watchEffect } from 'vue'
import { Table } from 'ant-design-vue'

View File

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/await-thenable */
import type { WatchStopHandle } from 'vue'
import { onUnmounted, ref, toRaw, unref, watch } from 'vue'
import type { BasicColumn, BasicTableProps, FetchParams, TableActionType } from '../types/table'

View File

@ -104,7 +104,7 @@ export default defineComponent({
if (!wrapEl)
return 0
const height = Number.parseInt(props.height || 0, 10) || wrapEl.clientHeight
const height = Number.parseInt(`${props.height || 0}`, 10) || wrapEl.clientHeight
return first + Math.ceil(height / unref(getItemHeightRef))
}

View File

@ -6,7 +6,6 @@ import { computed, unref } from 'vue'
import { SettingButtonPositionEnum } from '@/enums/appEnum'
import { useHeaderSetting } from '@/hooks/setting/useHeaderSetting'
import { useRootSetting } from '@/hooks/setting/useRootSetting'
import { useDesign } from '@/hooks/web/useDesign'
import { useUserStoreWithOut } from '@/store/modules/user'
import { createAsyncComponent } from '@/utils/factory/createAsyncComponent'
import SessionTimeoutLogin from '@/views/base/login/SessionTimeoutLogin.vue'
@ -18,11 +17,10 @@ const LayoutLockPage = createAsyncComponent(() => import('@/views/base/lock/inde
const SettingDrawer = createAsyncComponent(() => import('@/layouts/default/setting/index.vue'))
const { getUseOpenBackTop, getShowSettingButton, getSettingButtonPosition, getFullContent }
= useRootSetting()
= useRootSetting()
const getTarget = () => document.body
const userStore = useUserStoreWithOut()
const { prefixCls } = useDesign('setting-drawer-feature')
const { getShowHeader } = useHeaderSetting()
const getIsSessionTimeout = computed(() => userStore.getSessionTimeout)
@ -44,41 +42,17 @@ const getIsFixedSettingDrawer = computed(() => {
<LayoutLockPage />
<FloatButton.BackTop v-if="getUseOpenBackTop" :target="getTarget" />
<FloatButton
shape="circle"
type="primary"
:badge="{ dot: true }"
:style="{
shape="circle" type="primary" :badge="{ dot: true }" :style="{
right: '64px',
}"
@click="openWindow(SITE_URL)"
}" @click="openWindow(SITE_URL)"
>
<template #icon>
<QuestionCircleOutlined />
</template>
</FloatButton>
<SettingDrawer v-if="getIsFixedSettingDrawer" :class="prefixCls" />
<SettingDrawer
v-if="getIsFixedSettingDrawer"
class="absolute top-[45%] z-10 flex cursor-pointer items-center justify-items-center rounded-l-md rounded-r-none p-2.5"
/>
<SessionTimeoutLogin v-if="getIsSessionTimeout" />
</template>
<style lang="less">
@prefix-cls: ~'@{namespace}-setting-drawer-feature';
.@{prefix-cls} {
position: absolute;
top: 45%;
right: 0;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
color: @white;
cursor: pointer;
border-radius: 6px 0 0 6px;
svg {
width: 1em;
height: 1em;
}
}
</style>

View File

@ -11,7 +11,7 @@ const [register, { openDrawer }] = useDrawer()
<template>
<div @click="openDrawer(true)">
<Icon icon="ion:settings-outline" />
<Icon class="h-4 w-4" icon="ion:settings-outline" />
<SettingDrawer @register="register" />
</div>
</template>

View File

@ -1,3 +1,4 @@
<!-- eslint-disable vue/no-side-effects-in-computed-properties -->
<script lang="ts" setup>
import type { CSSProperties } from 'vue'
import { computed, onMounted, ref, unref, watch } from 'vue'
@ -51,28 +52,26 @@ const permissionStore = usePermissionStore()
useDragLine(sideRef, dragBarRef, true)
const getMixSideWidth = computed(() => {
return unref(getCollapsed) ? SIDE_BAR_MINI_WIDTH : SIDE_BAR_SHOW_TIT_MINI_WIDTH
})
const getMenuStyle = computed((): CSSProperties => {
return {
width: unref(openMenu) ? `${unref(getMenuWidth)}px` : 0,
// eslint-disable-next-line @typescript-eslint/no-use-before-define
left: `${unref(getMixSideWidth)}px`,
}
})
const getIsFixed = computed(() => {
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
mixSideHasChildren.value = unref(childrenMenus).length > 0
const isFixed = unref(getMixSideFixed) && unref(mixSideHasChildren)
if (isFixed)
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
openMenu.value = true
return isFixed
})
const getMixSideWidth = computed(() => {
return unref(getCollapsed) ? SIDE_BAR_MINI_WIDTH : SIDE_BAR_SHOW_TIT_MINI_WIDTH
})
const getDomStyle = computed((): CSSProperties => {
const fixedWidth = unref(getIsFixed) ? unref(getRealWidth) : 0
@ -292,6 +291,7 @@ onClickOutside(wrap, () => {
<style lang="less">
@prefix-cls: ~'@{namespace}-layout-mix-sider';
@width: 80px;
.@{prefix-cls} {
position: fixed;
top: 0;
@ -326,7 +326,7 @@ onClickOutside(wrap, () => {
}
&.open {
> .scrollbar {
>.scrollbar {
border-right: 1px solid rgb(238 238 238);
}
}
@ -341,6 +341,7 @@ onClickOutside(wrap, () => {
}
}
}
.@{prefix-cls}-menu-list {
&__content {
box-shadow: 0 0 4px 0 rgb(0 0 0 / 10%);
@ -364,10 +365,11 @@ onClickOutside(wrap, () => {
border-bottom: 1px solid var(--sider-dark-lighten-bg-color);
}
> .scrollbar {
>.scrollbar {
border-right: 1px solid var(--sider-dark-lighten-bg-color);
}
}
.@{prefix-cls}-menu-list {
background-color: var(--sider-dark-bg-color);
@ -379,7 +381,7 @@ onClickOutside(wrap, () => {
}
}
> .scrollbar {
>.scrollbar {
height: calc(100% - @header-height - 38px);
}
@ -408,6 +410,7 @@ onClickOutside(wrap, () => {
&:hover {
color: @white;
}
// &:hover,
&--active {
font-weight: 700;

View File

@ -4,6 +4,7 @@ import type { RoleEnum } from '@/enums/roleEnum'
export type Component<T = any> = ReturnType<typeof defineComponent> | (() => Promise<typeof import('*.vue')>) | (() => Promise<T>)
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
export interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
keepAlive?: boolean

View File

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/unbound-method */
import type { RouteLocationNormalized, RouteLocationRaw, Router } from 'vue-router'
import { toRaw, unref } from 'vue'

View File

@ -158,13 +158,16 @@ export function once(el: HTMLElement, event: string, fn: EventListener): void {
export function useRafThrottle<T extends FunctionArgs>(fn: T): T {
let locked = false
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
return function (...args: any[]) {
if (locked)
return
locked = true
window.requestAnimationFrame(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
// eslint-disable-next-line @typescript-eslint/no-invalid-this
fn.apply(this, args)
locked = false
})

View File

@ -164,6 +164,9 @@ export function simpleDebounce(fn, delay = 100) {
clearTimeout(timer)
timer = setTimeout(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
// eslint-disable-next-line @typescript-eslint/no-invalid-this
fn.apply(this, args)
}, delay)
}

View File

@ -34,8 +34,7 @@ type _BuildPropType<T, V, C> =
export type BuildPropType<T, V, C> = _BuildPropType<IfUnknown<T, never>, IfUnknown<V, never>, IfUnknown<C, never>>
type _BuildPropDefault<T, D> = [T] extends [
// eslint-disable-next-line @typescript-eslint/ban-types
Record<string, unknown> | Array<any> | Function,
Record<string, unknown> | Array<any> | Fn,
]
? D
: D extends () => T

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { computed, reactive, ref, unref } from 'vue'
import { Button, Form, Input } from 'ant-design-vue'
import { Form, Input } from 'ant-design-vue'
import LoginFormTitle from './LoginFormTitle.vue'
import { LoginStateEnum, useFormRules, useLoginState } from './useLogin'
import { CountdownInput } from '@/components/CountDown'
@ -46,12 +46,12 @@ async function handleReset() {
</FormItem>
<FormItem class="enter-x">
<Button type="primary" size="large" block :loading="loading" @click="handleReset">
<a-button type="primary" size="large" block :loading="loading" @click="handleReset">
{{ t('common.resetText') }}
</Button>
<Button size="large" block class="mt-4" @click="handleBackLogin">
</a-button>
<a-button size="large" block class="mt-4" @click="handleBackLogin">
{{ t('sys.login.backSignIn') }}
</Button>
</a-button>
</FormItem>
</Form>
</template>

View File

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { computed, reactive, ref, unref } from 'vue'
import { Button, Checkbox, Col, Divider, Form, Input, Row } from 'ant-design-vue'
import { Checkbox, Col, Divider, Form, Input, Row } from 'ant-design-vue'
import { AlipayCircleFilled, GithubFilled, WechatFilled } from '@ant-design/icons-vue'
import LoginFormTitle from './LoginFormTitle.vue'
@ -112,7 +112,10 @@ async function handleLogin(params) {
<template>
<LoginFormTitle v-show="getShow" class="enter-x" />
<Form v-show="getShow" ref="formRef" class="enter-x p-4" :model="formData" :rules="getFormRules" @keypress.enter="handleLogin">
<Form
v-show="getShow" ref="formRef" class="enter-x p-4" :model="formData" :rules="getFormRules"
@keypress.enter="handleLogin"
>
<FormItem name="tenantName" class="enter-x">
<Input
v-if="tenantEnable === 'true'"
@ -123,7 +126,10 @@ async function handleLogin(params) {
/>
</FormItem>
<FormItem name="username" class="enter-x">
<Input v-model:value="formData.username" size="large" :placeholder="t('sys.login.userName')" class="fix-auto-fill" />
<Input
v-model:value="formData.username" size="large" :placeholder="t('sys.login.userName')"
class="fix-auto-fill"
/>
</FormItem>
<FormItem name="password" class="enter-x">
<InputPassword
@ -147,31 +153,31 @@ async function handleLogin(params) {
<Col :span="12">
<FormItem :style="{ 'text-align': 'right' }">
<!-- No logic, you need to deal with it yourself -->
<Button type="link" size="small" @click="setLoginState(LoginStateEnum.RESET_PASSWORD)">
<a-button type="link" size="small" @click="setLoginState(LoginStateEnum.RESET_PASSWORD)">
{{ t('sys.login.forgetPassword') }}
</Button>
</a-button>
</FormItem>
</Col>
</Row>
<FormItem class="enter-x">
<Button type="primary" size="large" block :loading="loading" @click="getCode">
<a-button type="primary" size="large" block :loading="loading" @click="getCode">
{{ t('sys.login.loginButton') }}
</Button>
<!-- <Button size="large" class="mt-4 enter-x" block @click="handleRegister">
</a-button>
<!-- <a-button size="large" class="mt-4 enter-x" block @click="handleRegister">
{{ t('sys.login.registerButton') }}
</Button> -->
</a-button> -->
</FormItem>
<Row class="enter-x" :gutter="[16, 16]">
<Col :md="8" :xs="24">
<Button block @click="setLoginState(LoginStateEnum.MOBILE)">
<a-button block @click="setLoginState(LoginStateEnum.MOBILE)">
{{ t('sys.login.mobileSignInFormTitle') }}
</Button>
</a-button>
</Col>
<Col :md="8" :xs="24">
<Button block @click="setLoginState(LoginStateEnum.QR_CODE)">
<a-button block @click="setLoginState(LoginStateEnum.QR_CODE)">
{{ t('sys.login.qrSignInFormTitle') }}
</Button>
</a-button>
</Col>
<Col :md="8" :xs="24">
<a-button block @click="setLoginState(LoginStateEnum.REGISTER)">
@ -197,18 +203,18 @@ async function handleLogin(params) {
萌新必读
</Divider>
<div class="enter-x flex justify-evenly" :class="`${prefixCls}-sign-in-way`">
<Button href="https://doc.iocoder.cn/" target="_blank">
<a-button href="https://doc.iocoder.cn/" target="_blank">
📚开发指南
</Button>
<Button href="https://doc.iocoder.cn/video/" target="_blank" style="padding-left: 10px">
</a-button>
<a-button href="https://doc.iocoder.cn/video/" target="_blank" class="pl-2">
🔥视频教程
</Button>
<Button href="https://www.iocoder.cn/Interview/good-collection/" target="_blank" style="padding-left: 10px">
</a-button>
<a-button href="https://www.iocoder.cn/Interview/good-collection/" target="_blank" class="pl-2">
面试手册
</Button>
<Button href="http://static.yudao.iocoder.cn/mp/xinyu370.jpeg" target="_blank" style="padding-left: 10px">
</a-button>
<a-button href="http://static.yudao.iocoder.cn/mp/xinyu370.jpeg" target="_blank" class="pl-2">
🤝外包咨询
</Button>
</a-button>
</div>
</Form>
<Verify ref="verify" mode="pop" :captcha-type="captchaType" :img-size="{ width: '400px', height: '200px' }" @success="handleLogin" />

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { computed, reactive, ref, unref } from 'vue'
import { Button, Form, Input } from 'ant-design-vue'
import { Form, Input } from 'ant-design-vue'
import LoginFormTitle from './LoginFormTitle.vue'
import { LoginStateEnum, useFormRules, useFormValid, useLoginState } from './useLogin'
import { CountdownInput } from '@/components/CountDown'
@ -142,12 +142,12 @@ async function getSmsCode() {
</FormItem>
<FormItem class="enter-x">
<Button type="primary" size="large" block :loading="loading" @click="getCode">
<a-button type="primary" size="large" block :loading="loading" @click="getCode">
{{ t('sys.login.loginButton') }}
</Button>
<Button size="large" block class="mt-4" @click="handleBackLogin">
</a-button>
<a-button size="large" block class="mt-4" @click="handleBackLogin">
{{ t('sys.login.backSignIn') }}
</Button>
</a-button>
</FormItem>
</Form>
<Verify ref="verify" mode="pop" :captcha-type="captchaType" :img-size="{ width: '400px', height: '200px' }" @success="handleLogin" />

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { computed, unref } from 'vue'
import { Button, Divider, Popover, QRCode } from 'ant-design-vue'
import { Divider, Popover, QRCode } from 'ant-design-vue'
import LoginFormTitle from './LoginFormTitle.vue'
import { LoginStateEnum, useLoginState } from './useLogin'
import { useI18n } from '@/hooks/web/useI18n'
@ -28,9 +28,9 @@ const getShow = computed(() => unref(getLoginState) === LoginStateEnum.QR_CODE)
<Divider class="enter-x">
{{ t('sys.login.scanSign') }}
</Divider>
<Button size="large" block class="enter-x mt-4" @click="handleBackLogin">
<a-button size="large" block class="enter-x mt-4" @click="handleBackLogin">
{{ t('sys.login.backSignIn') }}
</Button>
</a-button>
</div>
</div>
</template>

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { computed, reactive, ref, unref } from 'vue'
import { Button, Checkbox, Form, Input } from 'ant-design-vue'
import { Checkbox, Form, Input } from 'ant-design-vue'
import LoginFormTitle from './LoginFormTitle.vue'
import { LoginStateEnum, useFormRules, useFormValid, useLoginState } from './useLogin'
import { StrengthMeter } from '@/components/StrengthMeter'
@ -69,12 +69,12 @@ async function handleRegister() {
</Checkbox>
</FormItem>
<Button type="primary" class="enter-x" size="large" block :loading="loading" @click="handleRegister">
<a-button type="primary" class="enter-x" size="large" block :loading="loading" @click="handleRegister">
{{ t('sys.login.registerButton') }}
</Button>
<Button size="large" block class="enter-x mt-4" @click="handleBackLogin">
</a-button>
<a-button size="large" block class="enter-x mt-4" @click="handleBackLogin">
{{ t('sys.login.backSignIn') }}
</Button>
</a-button>
</Form>
</div>
</template>

View File

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { onMounted, reactive, ref } from 'vue'
import { useRoute } from 'vue-router'
import { Button, Checkbox, Col, Form, Row } from 'ant-design-vue'
import { Checkbox, Col, Form, Row } from 'ant-design-vue'
import { useFormValid, useLoginState } from './useLogin'
import { useI18n } from '@/hooks/web/useI18n'
@ -178,9 +178,9 @@ onMounted(() => {
<FormItem>
<!-- No logic, you need to deal with it yourself -->
<Checkbox :checked="scope" size="small">
<Button type="link" size="small">
<a-button type="link" size="small">
{{ formatScope(scope) }}
</Button>
</a-button>
</Checkbox>
</FormItem>
</template>
@ -188,12 +188,12 @@ onMounted(() => {
</Row>
<FormItem class="enter-x">
<Button type="primary" size="large" block :loading="loading" @click="handleAuthorize(true)">
<a-button type="primary" size="large" block :loading="loading" @click="handleAuthorize(true)">
{{ t('sys.login.loginButton') }}
</Button>
<Button size="large" class="enter-x mt-4" block @click="handleBackLogin">
</a-button>
<a-button size="large" class="enter-x mt-4" block @click="handleBackLogin">
{{ t('common.cancelText') }}
</Button>
</a-button>
</FormItem>
</Form>
</template>