统一调整 defineProps 以及默认值的写法

This commit is contained in:
Hooray Hu 2023-05-13 00:35:32 +08:00
parent c2e1b97e5a
commit f59151289f
14 changed files with 293 additions and 370 deletions

View File

@ -29,7 +29,7 @@
"pinia": "^2.0.36",
"qs": "^6.11.1",
"vconsole": "^3.15.0",
"vue": "^3.3.1",
"vue": "^3.3.2",
"vue-router": "^4.2.0"
},
"devDependencies": {
@ -40,7 +40,7 @@
"@types/path-browserify": "^1.0.0",
"@types/qs": "^6.9.7",
"@vitejs/plugin-legacy": "^4.0.3",
"@vitejs/plugin-vue": "^4.2.2",
"@vitejs/plugin-vue": "^4.2.3",
"@vitejs/plugin-vue-jsx": "^3.0.1",
"autoprefixer": "^10.4.14",
"eslint": "^8.40.0",

View File

@ -3,10 +3,10 @@ lockfileVersion: '6.0'
dependencies:
'@vueuse/core':
specifier: ^10.1.2
version: 10.1.2(vue@3.3.1)
version: 10.1.2(vue@3.3.2)
'@vueuse/integrations':
specifier: ^10.1.2
version: 10.1.2(axios@1.4.0)(nprogress@0.2.0)(vue@3.3.1)
version: 10.1.2(axios@1.4.0)(nprogress@0.2.0)(vue@3.3.2)
axios:
specifier: ^1.4.0
version: 1.4.0
@ -15,7 +15,7 @@ dependencies:
version: 1.11.7
element-plus:
specifier: ^2.3.4
version: 2.3.4(vue@3.3.1)
version: 2.3.4(vue@3.3.2)
eruda:
specifier: ^3.0.0
version: 3.0.0
@ -42,7 +42,7 @@ dependencies:
version: 6.2.1
pinia:
specifier: ^2.0.36
version: 2.0.36(typescript@5.0.4)(vue@3.3.1)
version: 2.0.36(typescript@5.0.4)(vue@3.3.2)
qs:
specifier: ^6.11.1
version: 6.11.1
@ -50,11 +50,11 @@ dependencies:
specifier: ^3.15.0
version: 3.15.0
vue:
specifier: ^3.3.1
version: 3.3.1
specifier: ^3.3.2
version: 3.3.2
vue-router:
specifier: ^4.2.0
version: 4.2.0(vue@3.3.1)
version: 4.2.0(vue@3.3.2)
devDependencies:
'@antfu/eslint-config':
@ -65,7 +65,7 @@ devDependencies:
version: 1.1.10
'@iconify/vue':
specifier: ^4.1.1
version: 4.1.1(vue@3.3.1)
version: 4.1.1(vue@3.3.2)
'@types/nprogress':
specifier: ^0.2.0
version: 0.2.0
@ -79,11 +79,11 @@ devDependencies:
specifier: ^4.0.3
version: 4.0.3(terser@5.17.3)(vite@4.3.5)
'@vitejs/plugin-vue':
specifier: ^4.2.2
version: 4.2.2(vite@4.3.5)(vue@3.3.1)
specifier: ^4.2.3
version: 4.2.3(vite@4.3.5)(vue@3.3.2)
'@vitejs/plugin-vue-jsx':
specifier: ^3.0.1
version: 3.0.1(vite@4.3.5)(vue@3.3.1)
version: 3.0.1(vite@4.3.5)(vue@3.3.2)
autoprefixer:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.23)
@ -149,7 +149,7 @@ devDependencies:
version: 0.15.3(@vueuse/core@10.1.2)
unplugin-vue-components:
specifier: ^0.24.1
version: 0.24.1(vue@3.3.1)
version: 0.24.1(vue@3.3.2)
vite:
specifier: ^4.3.5
version: 4.3.5(sass@1.62.1)(terser@5.17.3)
@ -563,14 +563,14 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.20.7
'@babel/types': 7.21.5
'@babel/types': 7.21.3
dev: true
/@babel/helper-hoist-variables@7.18.6:
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
'@babel/types': 7.21.3
dev: true
/@babel/helper-member-expression-to-functions@7.21.0:
@ -697,12 +697,7 @@ packages:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
dev: true
/@babel/helper-string-parser@7.19.4:
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
engines: {node: '>=6.9.0'}
'@babel/types': 7.21.3
dev: true
/@babel/helper-string-parser@7.21.5:
@ -1685,8 +1680,8 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.21.4
'@babel/parser': 7.21.8
'@babel/types': 7.21.5
'@babel/parser': 7.21.3
'@babel/types': 7.21.3
dev: true
/@babel/traverse@7.21.3:
@ -1729,7 +1724,7 @@ packages:
resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.19.4
'@babel/helper-string-parser': 7.21.5
'@babel/helper-validator-identifier': 7.19.1
to-fast-properties: 2.0.0
dev: true
@ -1781,12 +1776,12 @@ packages:
engines: {node: '>=10'}
dev: false
/@element-plus/icons-vue@2.1.0(vue@3.3.1):
/@element-plus/icons-vue@2.1.0(vue@3.3.2):
resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==}
peerDependencies:
vue: ^3.2.0
dependencies:
vue: 3.3.1
vue: 3.3.2
dev: false
/@esbuild-kit/cjs-loader@2.4.0:
@ -2112,13 +2107,13 @@ packages:
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
dev: true
/@iconify/vue@4.1.1(vue@3.3.1):
/@iconify/vue@4.1.1(vue@3.3.2):
resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==}
peerDependencies:
vue: '>=3'
dependencies:
'@iconify/types': 2.0.0
vue: 3.3.1
vue: 3.3.2
dev: true
/@jridgewell/gen-mapping@0.1.1:
@ -2477,7 +2472,7 @@ packages:
- supports-color
dev: true
/@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.5)(vue@3.3.1):
/@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.5)(vue@3.3.2):
resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@ -2488,20 +2483,20 @@ packages:
'@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.3)
'@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.3)
vite: 4.3.5(sass@1.62.1)(terser@5.17.3)
vue: 3.3.1
vue: 3.3.2
transitivePeerDependencies:
- supports-color
dev: true
/@vitejs/plugin-vue@4.2.2(vite@4.3.5)(vue@3.3.1):
resolution: {integrity: sha512-kNH4wMAqs13UiZe/2If1ioO0Mjz71rr2oALTl2c5ajBIox9Vz/UGW/wGkr7GA3SC6Eb29c1HtzAtxdGfbXAkfQ==}
/@vitejs/plugin-vue@4.2.3(vite@4.3.5)(vue@3.3.2):
resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
vite: 4.3.5(sass@1.62.1)(terser@5.17.3)
vue: 3.3.1
vue: 3.3.2
dev: true
/@volar/language-core@1.4.1:
@ -2530,10 +2525,10 @@ packages:
dependencies:
'@volar/language-core': 1.4.1
'@volar/source-map': 1.4.1
'@vue/compiler-dom': 3.3.1
'@vue/compiler-sfc': 3.3.1
'@vue/reactivity': 3.3.0-beta.4
'@vue/shared': 3.3.1
'@vue/compiler-dom': 3.3.2
'@vue/compiler-sfc': 3.3.2
'@vue/reactivity': 3.3.2
'@vue/shared': 3.3.2
minimatch: 9.0.0
muggle-string: 0.2.2
vue-template-compiler: 2.7.14
@ -2594,109 +2589,119 @@ packages:
'@vue/shared': 3.3.1
estree-walker: 2.0.2
source-map-js: 1.0.2
dev: true
/@vue/compiler-core@3.3.2:
resolution: {integrity: sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==}
dependencies:
'@babel/parser': 7.21.8
'@vue/shared': 3.3.2
estree-walker: 2.0.2
source-map-js: 1.0.2
/@vue/compiler-dom@3.3.1:
resolution: {integrity: sha512-VmgIsoLivCft3+oNc5KM7b9wd0nZxP/g2qilMwi1hJyGA624KWnNKHn4hzBQs4FpzydUVpNy+TWVT8KiRCh3MQ==}
dependencies:
'@vue/compiler-core': 3.3.1
'@vue/shared': 3.3.1
dev: true
/@vue/compiler-sfc@3.3.1:
resolution: {integrity: sha512-G+FPwBbXSLaA4+Ry5/bdD9Oda+sRslQcE9o6JSZaougRiT4OjVL0vtkbQHPrGRTULZV28OcrAjRfSZOSB0OTXQ==}
/@vue/compiler-dom@3.3.2:
resolution: {integrity: sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==}
dependencies:
'@vue/compiler-core': 3.3.2
'@vue/shared': 3.3.2
/@vue/compiler-sfc@3.3.2:
resolution: {integrity: sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==}
dependencies:
'@babel/parser': 7.21.8
'@vue/compiler-core': 3.3.1
'@vue/compiler-dom': 3.3.1
'@vue/compiler-ssr': 3.3.1
'@vue/reactivity-transform': 3.3.1
'@vue/shared': 3.3.1
'@vue/compiler-core': 3.3.2
'@vue/compiler-dom': 3.3.2
'@vue/compiler-ssr': 3.3.2
'@vue/reactivity-transform': 3.3.2
'@vue/shared': 3.3.2
estree-walker: 2.0.2
magic-string: 0.30.0
postcss: 8.4.23
source-map-js: 1.0.2
/@vue/compiler-ssr@3.3.1:
resolution: {integrity: sha512-QOQWGNCWuSeyKx4KvWSJlnIMGg+/2oCHgkFUYo7aJ+9Uaaz45yRgKQ+FNigy50NYBQIhpXn2e4OSR8GXh4knrQ==}
/@vue/compiler-ssr@3.3.2:
resolution: {integrity: sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==}
dependencies:
'@vue/compiler-dom': 3.3.1
'@vue/shared': 3.3.1
'@vue/compiler-dom': 3.3.2
'@vue/shared': 3.3.2
/@vue/devtools-api@6.5.0:
resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
/@vue/reactivity-transform@3.3.1:
resolution: {integrity: sha512-MkOrJauAGH4MNdxGW/PmrDegMyOGX0wGIdKUZJRBXOTpotDONg7/TPJe2QeGeBCow/5v9iOqZOWCfvmOWIaDMg==}
/@vue/reactivity-transform@3.3.2:
resolution: {integrity: sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==}
dependencies:
'@babel/parser': 7.21.8
'@vue/compiler-core': 3.3.1
'@vue/shared': 3.3.1
'@vue/compiler-core': 3.3.2
'@vue/shared': 3.3.2
estree-walker: 2.0.2
magic-string: 0.30.0
/@vue/reactivity@3.3.0-beta.4:
resolution: {integrity: sha512-Cun0yLgiNz+tqWzOVTIr7R8cv2vtyHk3mQssWMgR6PpgC+91FEUyNvDNkc98L2jJxgVsOhC/ayXWfQR31+Hp9g==}
/@vue/reactivity@3.3.2:
resolution: {integrity: sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==}
dependencies:
'@vue/shared': 3.3.0-beta.4
dev: true
'@vue/shared': 3.3.2
/@vue/reactivity@3.3.1:
resolution: {integrity: sha512-zCfmazOtyUdC1NS/EPiSYJ4RqojqmTAviJyBbyVvY8zAv5NhK44Yfw0E1tt+m5vz0ZO1ptI9jDKBr3MWIEkpgw==}
/@vue/runtime-core@3.3.2:
resolution: {integrity: sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==}
dependencies:
'@vue/shared': 3.3.1
'@vue/reactivity': 3.3.2
'@vue/shared': 3.3.2
/@vue/runtime-core@3.3.1:
resolution: {integrity: sha512-Ljb37LYafhQqKIasc0r32Cva8gIh6VeSMjlwO6V03tCjHd18gmjP0F4UD+8/a59sGTysAgA8Rb9lIC2DVxRz2Q==}
/@vue/runtime-dom@3.3.2:
resolution: {integrity: sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==}
dependencies:
'@vue/reactivity': 3.3.1
'@vue/shared': 3.3.1
/@vue/runtime-dom@3.3.1:
resolution: {integrity: sha512-NBjYbQPtMklb7lsJsM2Juv5Ygry6mvZP7PdH1GZqrzfLkvlplQT3qCtQMd/sib6yiy8t9m/Y4hVU7X9nzb9Oeg==}
dependencies:
'@vue/runtime-core': 3.3.1
'@vue/shared': 3.3.1
'@vue/runtime-core': 3.3.2
'@vue/shared': 3.3.2
csstype: 3.1.2
/@vue/server-renderer@3.3.1(vue@3.3.1):
resolution: {integrity: sha512-sod8ggOwbkQXw3lBjfzrbdxRS9lw/lNHoMaXghHawNYowf+4WoaLWD5ouz6fPZadUqNKAsqK95p8DYb1vcVfPA==}
/@vue/server-renderer@3.3.2(vue@3.3.2):
resolution: {integrity: sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==}
peerDependencies:
vue: 3.3.1
vue: 3.3.2
dependencies:
'@vue/compiler-ssr': 3.3.1
'@vue/shared': 3.3.1
vue: 3.3.1
/@vue/shared@3.3.0-beta.4:
resolution: {integrity: sha512-yRrdT1FUWhuLNgj3UUasmToYZ0zR0SOdmVyLa0FHIzbnn00LOiK4lZoPRELMRMnyPy6wwwWHRNmItUeWc2ZGPQ==}
dev: true
'@vue/compiler-ssr': 3.3.2
'@vue/shared': 3.3.2
vue: 3.3.2
/@vue/shared@3.3.1:
resolution: {integrity: sha512-ybDBtQ+479HL/bkeIOIAwgpeAEACzztkvulJLbK3JMFuTOv4qDivmV3AIsR8RHYJ+RD9tQxcHWBsX4GqEcYrfw==}
dev: true
/@vueuse/core@10.1.2(vue@3.3.1):
/@vue/shared@3.3.2:
resolution: {integrity: sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==}
/@vueuse/core@10.1.2(vue@3.3.2):
resolution: {integrity: sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==}
dependencies:
'@types/web-bluetooth': 0.0.17
'@vueuse/metadata': 10.1.2
'@vueuse/shared': 10.1.2(vue@3.3.1)
vue-demi: 0.14.0(vue@3.3.1)
'@vueuse/shared': 10.1.2(vue@3.3.2)
vue-demi: 0.14.0(vue@3.3.2)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
/@vueuse/core@9.13.0(vue@3.3.1):
/@vueuse/core@9.13.0(vue@3.3.2):
resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
'@vueuse/shared': 9.13.0(vue@3.3.1)
vue-demi: 0.14.1(vue@3.3.1)
'@vueuse/shared': 9.13.0(vue@3.3.2)
vue-demi: 0.14.1(vue@3.3.2)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
/@vueuse/integrations@10.1.2(axios@1.4.0)(nprogress@0.2.0)(vue@3.3.1):
/@vueuse/integrations@10.1.2(axios@1.4.0)(nprogress@0.2.0)(vue@3.3.2):
resolution: {integrity: sha512-wUpG3Wv6LiWerOwCzOAM0iGhNQ4vfFUTkhj/xQy7TLXduh2M3D8N08aS0KqlxsejY6R8NLxydDIM+68QfHZZ8Q==}
peerDependencies:
async-validator: '*'
@ -2737,11 +2742,11 @@ packages:
universal-cookie:
optional: true
dependencies:
'@vueuse/core': 10.1.2(vue@3.3.1)
'@vueuse/shared': 10.1.2(vue@3.3.1)
'@vueuse/core': 10.1.2(vue@3.3.2)
'@vueuse/shared': 10.1.2(vue@3.3.2)
axios: 1.4.0
nprogress: 0.2.0
vue-demi: 0.14.0(vue@3.3.1)
vue-demi: 0.14.0(vue@3.3.2)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@ -2754,18 +2759,18 @@ packages:
resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
dev: false
/@vueuse/shared@10.1.2(vue@3.3.1):
/@vueuse/shared@10.1.2(vue@3.3.2):
resolution: {integrity: sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==}
dependencies:
vue-demi: 0.14.0(vue@3.3.1)
vue-demi: 0.14.0(vue@3.3.2)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
/@vueuse/shared@9.13.0(vue@3.3.1):
/@vueuse/shared@9.13.0(vue@3.3.2):
resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
dependencies:
vue-demi: 0.14.1(vue@3.3.1)
vue-demi: 0.14.1(vue@3.3.2)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@ -4016,18 +4021,18 @@ packages:
resolution: {integrity: sha512-DIk2H4g/3ZhjgiABJjVdQvUdMlSABOsjeCm6gmUzIdKxAuFrGiJ8QXMm3i09grZdDBMC/d8MELMrdwYRC0+YHg==}
dev: true
/element-plus@2.3.4(vue@3.3.1):
/element-plus@2.3.4(vue@3.3.2):
resolution: {integrity: sha512-SQr0J9z7N4z48WYk/l9NE2tizl8Q7j2OhqlpTc42k4pGncry3+rVX6dsmcsglFynn6vt3NzYxWJqmLFyDKQq+g==}
peerDependencies:
vue: ^3.2.0
dependencies:
'@ctrl/tinycolor': 3.6.0
'@element-plus/icons-vue': 2.1.0(vue@3.3.1)
'@element-plus/icons-vue': 2.1.0(vue@3.3.2)
'@floating-ui/dom': 1.2.7
'@popperjs/core': /@sxzz/popperjs-es@2.11.7
'@types/lodash': 4.14.194
'@types/lodash-es': 4.17.7
'@vueuse/core': 9.13.0(vue@3.3.1)
'@vueuse/core': 9.13.0(vue@3.3.2)
async-validator: 4.2.5
dayjs: 1.11.7
escape-html: 1.0.3
@ -4036,7 +4041,7 @@ packages:
lodash-unified: 1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21)
memoize-one: 6.0.0
normalize-wheel-es: 1.2.0
vue: 3.3.1
vue: 3.3.2
transitivePeerDependencies:
- '@vue/composition-api'
dev: false
@ -7666,7 +7671,7 @@ packages:
engines: {node: '>=4'}
dev: true
/pinia@2.0.36(typescript@5.0.4)(vue@3.3.1):
/pinia@2.0.36(typescript@5.0.4)(vue@3.3.2):
resolution: {integrity: sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==}
peerDependencies:
'@vue/composition-api': ^1.4.0
@ -7680,8 +7685,8 @@ packages:
dependencies:
'@vue/devtools-api': 6.5.0
typescript: 5.0.4
vue: 3.3.1
vue-demi: 0.14.1(vue@3.3.1)
vue: 3.3.2
vue-demi: 0.14.1(vue@3.3.2)
dev: false
/pixelsmith@2.6.0:
@ -9370,7 +9375,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.2
'@rollup/pluginutils': 5.0.2
'@vueuse/core': 10.1.2(vue@3.3.1)
'@vueuse/core': 10.1.2(vue@3.3.2)
local-pkg: 0.4.3
magic-string: 0.30.0
minimatch: 9.0.0
@ -9380,7 +9385,7 @@ packages:
- rollup
dev: true
/unplugin-vue-components@0.24.1(vue@3.3.1):
/unplugin-vue-components@0.24.1(vue@3.3.2):
resolution: {integrity: sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==}
engines: {node: '>=14'}
peerDependencies:
@ -9403,7 +9408,7 @@ packages:
minimatch: 7.4.2
resolve: 1.22.1
unplugin: 1.2.0
vue: 3.3.1
vue: 3.3.2
transitivePeerDependencies:
- rollup
- supports-color
@ -9668,7 +9673,7 @@ packages:
dependencies:
local-pkg: 0.4.3
vite: 4.3.5(sass@1.62.1)(terser@5.17.3)
vue-router: 4.2.0(vue@3.3.1)
vue-router: 4.2.0(vue@3.3.2)
dev: true
/vite@4.3.5(sass@1.62.1)(terser@5.17.3):
@ -9705,7 +9710,7 @@ packages:
fsevents: 2.3.2
dev: true
/vue-demi@0.14.0(vue@3.3.1):
/vue-demi@0.14.0(vue@3.3.2):
resolution: {integrity: sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==}
engines: {node: '>=12'}
hasBin: true
@ -9717,9 +9722,9 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
vue: 3.3.1
vue: 3.3.2
/vue-demi@0.14.1(vue@3.3.1):
/vue-demi@0.14.1(vue@3.3.2):
resolution: {integrity: sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==}
engines: {node: '>=12'}
hasBin: true
@ -9731,7 +9736,7 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
vue: 3.3.1
vue: 3.3.2
dev: false
/vue-eslint-parser@9.2.1(eslint@8.40.0):
@ -9752,13 +9757,13 @@ packages:
- supports-color
dev: true
/vue-router@4.2.0(vue@3.3.1):
/vue-router@4.2.0(vue@3.3.2):
resolution: {integrity: sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==}
peerDependencies:
vue: ^3.2.0
dependencies:
'@vue/devtools-api': 6.5.0
vue: 3.3.1
vue: 3.3.2
/vue-template-compiler@2.7.14:
resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
@ -9779,14 +9784,14 @@ packages:
typescript: 5.0.4
dev: true
/vue@3.3.1:
resolution: {integrity: sha512-3Rwy4I5idbPVSDZu6I+fFh6tdDSZbauImCTqLxE7y0LpHtiDvPeY01OI7RkFPbva1nk4hoO0sv/NzosH2h60sg==}
/vue@3.3.2:
resolution: {integrity: sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==}
dependencies:
'@vue/compiler-dom': 3.3.1
'@vue/compiler-sfc': 3.3.1
'@vue/runtime-dom': 3.3.1
'@vue/server-renderer': 3.3.1(vue@3.3.1)
'@vue/shared': 3.3.1
'@vue/compiler-dom': 3.3.2
'@vue/compiler-sfc': 3.3.2
'@vue/runtime-dom': 3.3.2
'@vue/server-renderer': 3.3.2(vue@3.3.2)
'@vue/shared': 3.3.2
/wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}

View File

@ -1,45 +1,28 @@
<script lang="ts" setup>
import { ElMessage } from 'element-plus'
import type { UploadProps, UploadUserFile } from 'element-plus'
import { ElMessage } from 'element-plus'
const props = defineProps({
action: {
type: String,
required: true,
const props = withDefaults(
defineProps<{
action: UploadProps['action']
headers?: UploadProps['headers']
data?: UploadProps['data']
name?: UploadProps['name']
size?: number
max?: number
files?: UploadUserFile[]
notip?: boolean
ext?: string[]
}>(),
{
name: 'file',
size: 2,
max: 3,
files: () => [],
notip: false,
ext: () => ['zip', 'rar'],
},
headers: {
type: Object,
default: () => {},
},
data: {
type: Object,
default: () => {},
},
name: {
type: String,
default: 'file',
},
size: {
type: Number,
default: 2,
},
max: {
type: Number,
default: 3,
},
files: {
type: Array,
default: () => [],
},
notip: {
type: Boolean,
default: false,
},
ext: {
type: Array,
default: () => ['zip', 'rar'],
},
})
)
const emit = defineEmits(['onSuccess'])
@ -49,7 +32,7 @@ defineOptions({
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
const fileName = file.name.split('.')
const fileExt = fileName.at(-1)
const fileExt = fileName.at(-1) ?? ''
const isTypeOk = props.ext.includes(fileExt)
const isSizeOk = file.size / 1024 / 1024 < props.size
if (!isTypeOk) {

View File

@ -1,18 +1,15 @@
<script lang="ts" setup>
const props = defineProps({
src: {
type: String,
required: true,
const props = withDefaults(
defineProps<{
src: string
width?: number | string
height?: number | string
}>(),
{
width: 200,
height: 200,
},
width: {
type: [Number, String],
default: '',
},
height: {
type: [Number, String],
default: '',
},
})
)
defineOptions({
name: 'ImagePreview',

View File

@ -2,52 +2,31 @@
import type { UploadProps } from 'element-plus'
import { ElMessage } from 'element-plus'
const props = defineProps({
action: {
type: String,
required: true,
const props = withDefaults(
defineProps<{
action: UploadProps['action']
headers?: UploadProps['headers']
data?: UploadProps['data']
name?: UploadProps['name']
url?: string
size?: number
width?: number
height?: number
placeholder?: string
notip?: boolean
ext?: string[]
}>(),
{
name: 'file',
url: '',
size: 2,
width: 150,
height: 150,
placeholder: '',
notip: false,
ext: () => ['jpg', 'png', 'gif', 'bmp'],
},
headers: {
type: Object,
default: () => {},
},
data: {
type: Object,
default: () => {},
},
name: {
type: String,
default: 'file',
},
url: {
type: String,
default: '',
},
size: {
type: Number,
default: 2,
},
width: {
type: Number,
default: 150,
},
height: {
type: Number,
default: 150,
},
placeholder: {
type: String,
default: '',
},
notip: {
type: Boolean,
default: false,
},
ext: {
type: Array,
default: () => ['jpg', 'png', 'gif', 'bmp'],
},
})
)
const emit = defineEmits(['update:url', 'onSuccess'])
@ -77,7 +56,7 @@ function remove() {
}
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
const fileName = file.name.split('.')
const fileExt = fileName.at(-1)
const fileExt = fileName.at(-1) ?? ''
const isTypeOk = props.ext.includes(fileExt)
const isSizeOk = file.size / 1024 / 1024 < props.size
if (!isTypeOk) {

View File

@ -2,56 +2,33 @@
import type { UploadProps } from 'element-plus'
import { ElMessage } from 'element-plus'
const props = defineProps({
action: {
type: String,
required: true,
const props = withDefaults(
defineProps<{
action: UploadProps['action']
headers?: UploadProps['headers']
data?: UploadProps['data']
name?: UploadProps['name']
url?: string[]
size?: number
max?: number
width?: number
height?: number
placeholder?: string
notip?: boolean
ext?: string[]
}>(),
{
name: 'file',
url: () => [],
size: 2,
max: 3,
width: 150,
height: 150,
placeholder: '',
notip: false,
ext: () => ['jpg', 'png', 'gif', 'bmp'],
},
headers: {
type: Object,
default: () => {},
},
data: {
type: Object,
default: () => {},
},
name: {
type: String,
default: 'file',
},
url: {
type: Array,
default: () => [],
},
max: {
type: Number,
default: 3,
},
size: {
type: Number,
default: 2,
},
width: {
type: Number,
default: 150,
},
height: {
type: Number,
default: 150,
},
placeholder: {
type: String,
default: '',
},
notip: {
type: Boolean,
default: false,
},
ext: {
type: Array,
default: () => ['jpg', 'png', 'gif', 'bmp'],
},
})
)
const emit = defineEmits(['update:url', 'onSuccess'])
@ -97,7 +74,7 @@ function move(index: number, type: 'left' | 'right') {
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
const fileName = file.name.split('.')
const fileExt = fileName.at(-1)
const fileExt = fileName.at(-1) ?? ''
const isTypeOk = props.ext.includes(fileExt)
const isSizeOk = file.size / 1024 / 1024 < props.size
if (!isTypeOk) {

View File

@ -1,14 +1,13 @@
<script lang="ts" setup>
defineProps({
title: {
type: String,
required: true,
withDefaults(
defineProps<{
title: string
content?: string
}>(),
{
content: '',
},
content: {
type: String,
default: '',
},
})
)
defineOptions({
name: 'PageHeader',

View File

@ -1,18 +1,16 @@
<script lang="ts" setup>
const props = defineProps({
title: {
type: String,
default: '',
const props = withDefaults(
defineProps<{
title?: string
collaspe?: boolean
height?: string
}>(),
{
title: '',
collaspe: false,
height: '',
},
collaspe: {
type: Boolean,
default: false,
},
height: {
type: String,
default: '',
},
})
)
defineOptions({
name: 'PageMain',

View File

@ -2,24 +2,22 @@
// https://github.com/modood/Administrative-divisions-of-China
import pcasRaw from './pcas-code.json'
const props = defineProps({
modelValue: {
type: Array,
default: () => [],
const props = withDefaults(
defineProps<{
modelValue: string[] | {
code: string
name: string
}[]
disabled?: boolean
type?: 'pc' | 'pca' | 'pcas'
format?: 'code' | 'name' | 'both'
}>(),
{
disabled: false,
type: 'pca',
format: 'code',
},
disabled: {
type: Boolean,
default: false,
},
type: {
type: String as () => 'pc' | 'pca' | 'pcas',
default: 'pca',
},
format: {
type: String as () => 'code' | 'name' | 'both',
default: 'code',
},
})
)
const emit = defineEmits(['update:modelValue'])

View File

@ -1,18 +1,16 @@
<script lang="ts" setup>
const props = defineProps({
fold: {
type: Boolean,
default: true,
const props = withDefaults(
defineProps<{
fold?: boolean
showToggle?: boolean
background?: boolean
}>(),
{
fold: true,
showToggle: true,
background: false,
},
showToggle: {
type: Boolean,
default: true,
},
background: {
type: Boolean,
default: false,
},
})
)
const emit = defineEmits<{
(event: 'update:fold', value: boolean): void

View File

@ -1,20 +1,17 @@
<script lang="ts" setup>
import { Icon } from '@iconify/vue'
const props = defineProps({
name: {
type: String,
required: true,
const props = withDefaults(
defineProps<{
name: string
flip?: 'horizontal' | 'vertical' | 'both' | ''
rotate?: number
}>(),
{
flip: '',
rotate: 0,
},
flip: {
type: String as () => 'horizontal' | 'vertical' | 'both' | '',
default: '',
},
rotate: {
type: Number,
default: 0,
},
})
)
defineOptions({
name: 'SvgIcon',

View File

@ -1,26 +1,19 @@
<script lang="ts" setup>
const props = defineProps({
value: {
type: String,
required: true,
const props = withDefaults(
defineProps<{
value: string
type?: 'up' | 'down'
prefix?: string
suffix?: string
reverse?: boolean
}>(),
{
type: 'up',
prefix: '',
suffix: '',
reverse: false,
},
type: {
type: String as () => 'up' | 'down',
default: 'up',
},
prefix: {
type: String,
default: '',
},
suffix: {
type: String,
default: '',
},
reverse: {
type: Boolean,
default: false,
},
})
)
defineOptions({
name: 'Trend',

View File

@ -2,16 +2,16 @@
import imgLogo from '@/assets/images/logo.png'
import useSettingsStore from '@/store/modules/settings'
defineProps({
showLogo: {
type: Boolean,
default: true,
withDefaults(
defineProps<{
showLogo?: boolean
showTitle?: boolean
}>(),
{
showLogo: true,
showTitle: true,
},
showTitle: {
type: Boolean,
default: true,
},
})
)
defineOptions({
name: 'Logo',

View File

@ -3,16 +3,15 @@ import { resolveRoutePath } from '@/utils'
import useSettingsStore from '@/store/modules/settings'
import type { Menu } from '#/global'
const props = defineProps({
item: {
type: Object as () => Menu.recordRaw,
required: true,
const props = withDefaults(
defineProps<{
item: Menu.recordRaw
basePath?: string
}>(),
{
basePath: '',
},
basePath: {
type: String,
default: '',
},
})
)
defineOptions({
name: 'SidebarItem',