diff --git a/.github/ISSUE_TEMPLATE/1-bug.md b/.github/ISSUE_TEMPLATE/1-bug.md index 0f5e1e0ae..f446a2b55 100644 --- a/.github/ISSUE_TEMPLATE/1-bug.md +++ b/.github/ISSUE_TEMPLATE/1-bug.md @@ -36,4 +36,4 @@ Please describe the steps of the problem in detail to ensure that we can restore - Operating System: - Node version: -- Package manager (npm/yarn/pnpm) and version: +- pnpm version: diff --git a/.github/ISSUE_TEMPLATE/3-bug-cn.md b/.github/ISSUE_TEMPLATE/3-bug-cn.md index fade42ad2..90572314e 100644 --- a/.github/ISSUE_TEMPLATE/3-bug-cn.md +++ b/.github/ISSUE_TEMPLATE/3-bug-cn.md @@ -25,4 +25,4 @@ assignees: '' - 操作系统: - Node 版本: -- 包管理器 (npm/yarn/pnpm) 及其版本: +- pnpm 版本: diff --git a/CHANGELOG.md b/CHANGELOG.md index ff041f3db..3b15287d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## [2.11.3](https://github.com/vbenjs/vue-vben-admin/compare/v2.11.2...v2.11.3) (2024-04-24) + +### Bug Fixes + +- **deps:** lock vue version to 3.4.23 ([#3785](https://github.com/vbenjs/vue-vben-admin/issues/3785)) ([2f655c2](https://github.com/vbenjs/vue-vben-admin/commit/2f655c2127753c0cde1cb29834314e961ce0930e)), closes [#3783](https://github.com/vbenjs/vue-vben-admin/issues/3783) +- **upload:** disabled prop not effect to upload in the form ([#3780](https://github.com/vbenjs/vue-vben-admin/issues/3780)) ([69a6e90](https://github.com/vbenjs/vue-vben-admin/commit/69a6e9023ef80a5504178d0887119f8e7bbd5113)) + +### Features + +- **BasicForm->Components:** add beforeFetch & afterFetch to apicomp && perf the code ([#3786](https://github.com/vbenjs/vue-vben-admin/issues/3786)) ([7ae2ec0](https://github.com/vbenjs/vue-vben-admin/commit/7ae2ec03a773c2223feabbd1e341e90f012f8b7e)) +- **demo:** use Tour component replace dirverjs ([#3777](https://github.com/vbenjs/vue-vben-admin/issues/3777)) ([49c4dc6](https://github.com/vbenjs/vue-vben-admin/commit/49c4dc646a9d123527577f02ee0d92865da9988e)) + ## [2.11.2](https://github.com/vbenjs/vue-vben-admin/compare/v2.11.1...v2.11.2) (2024-04-23) ### Bug Fixes diff --git a/package.json b/package.json index f5dd56d57..2cbd158d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vben-admin", - "version": "2.11.2", + "version": "2.11.3", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": { "url": "https://github.com/vbenjs/vue-vben-admin/issues" @@ -75,7 +75,7 @@ "@logicflow/core": "^1.2.26", "@logicflow/extension": "^1.2.26", "@vben/hooks": "workspace:*", - "@vue/shared": "^3.4.24", + "@vue/shared": "3.4.23", "@vueuse/core": "^10.9.0", "@zxcvbn-ts/core": "^3.0.4", "ant-design-vue": "^4.2.0", @@ -101,7 +101,7 @@ "tinymce": "^5.10.9", "unocss": "^0.59.4", "vditor": "^3.10.4", - "vue": "^3.4.24", + "vue": "3.4.23", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", "vue-router": "^4.3.2", @@ -131,7 +131,7 @@ "@vben/ts-config": "workspace:*", "@vben/types": "workspace:*", "@vben/vite-config": "workspace:*", - "@vue/compiler-sfc": "^3.4.24", + "@vue/compiler-sfc": "3.4.23", "@vue/test-utils": "^2.4.5", "conventional-changelog-cli": "^4.1.0", "cross-env": "^7.0.3", diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 504e3be0a..7d7a43b84 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -32,7 +32,7 @@ "dependencies": { "@vueuse/core": "^10.9.0", "lodash-es": "^4.17.21", - "vue": "^3.4.24" + "vue": "3.4.23" }, "devDependencies": { "@vben/types": "workspace:*" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5c5c10a7..2470f8f27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@ant-design/icons-vue': specifier: ^7.0.1 - version: 7.0.1(vue@3.4.24(typescript@5.4.5)) + version: 7.0.1(vue@3.4.23(typescript@5.4.5)) '@iconify/iconify': specifier: ^3.1.1 version: 3.1.1 @@ -24,17 +24,17 @@ importers: specifier: workspace:* version: link:packages/hooks '@vue/shared': - specifier: ^3.4.24 - version: 3.4.24 + specifier: 3.4.23 + version: 3.4.23 '@vueuse/core': specifier: ^10.9.0 - version: 10.9.0(vue@3.4.24(typescript@5.4.5)) + version: 10.9.0(vue@3.4.23(typescript@5.4.5)) '@zxcvbn-ts/core': specifier: ^3.0.4 version: 3.0.4 ant-design-vue: specifier: ^4.2.0 - version: 4.2.0(vue@3.4.24(typescript@5.4.5)) + version: 4.2.0(vue@3.4.23(typescript@5.4.5)) axios: specifier: ^1.6.8 version: 1.6.8 @@ -70,10 +70,10 @@ importers: version: 6.2.2 pinia: specifier: 2.1.7 - version: 2.1.7(typescript@5.4.5)(vue@3.4.24(typescript@5.4.5)) + version: 2.1.7(typescript@5.4.5)(vue@3.4.23(typescript@5.4.5)) pinia-plugin-persistedstate: specifier: ^3.2.1 - version: 3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.24(typescript@5.4.5))) + version: 3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.23(typescript@5.4.5))) print-js: specifier: ^1.6.0 version: 1.6.0 @@ -102,29 +102,29 @@ importers: specifier: ^3.10.4 version: 3.10.4 vue: - specifier: ^3.4.24 - version: 3.4.24(typescript@5.4.5) + specifier: 3.4.23 + version: 3.4.23(typescript@5.4.5) vue-i18n: specifier: ^9.13.1 - version: 9.13.1(vue@3.4.24(typescript@5.4.5)) + version: 9.13.1(vue@3.4.23(typescript@5.4.5)) vue-json-pretty: specifier: ^2.4.0 - version: 2.4.0(vue@3.4.24(typescript@5.4.5)) + version: 2.4.0(vue@3.4.23(typescript@5.4.5)) vue-router: specifier: ^4.3.2 - version: 4.3.2(vue@3.4.24(typescript@5.4.5)) + version: 4.3.2(vue@3.4.23(typescript@5.4.5)) vue-types: specifier: ^5.1.1 - version: 5.1.1(vue@3.4.24(typescript@5.4.5)) + version: 5.1.1(vue@3.4.23(typescript@5.4.5)) vuedraggable: specifier: ^4.1.0 - version: 4.1.0(vue@3.4.24(typescript@5.4.5)) + version: 4.1.0(vue@3.4.23(typescript@5.4.5)) vxe-table: specifier: ^4.6.0 - version: 4.6.0(vue@3.4.24(typescript@5.4.5)) + version: 4.6.0(vue@3.4.23(typescript@5.4.5)) vxe-table-plugin-export-xlsx: specifier: ^4.0.1 - version: 4.0.1(vxe-table@4.6.0(vue@3.4.24(typescript@5.4.5))) + version: 4.0.1(vxe-table@4.6.0(vue@3.4.23(typescript@5.4.5))) xe-utils: specifier: ^3.5.25 version: 3.5.25 @@ -187,8 +187,8 @@ importers: specifier: workspace:* version: link:internal/vite-config '@vue/compiler-sfc': - specifier: ^3.4.24 - version: 3.4.24 + specifier: 3.4.23 + version: 3.4.23 '@vue/test-utils': specifier: ^2.4.5 version: 2.4.5 @@ -457,13 +457,13 @@ importers: dependencies: '@vueuse/core': specifier: ^10.9.0 - version: 10.9.0(vue@3.4.24(typescript@5.4.5)) + version: 10.9.0(vue@3.4.23(typescript@5.4.5)) lodash-es: specifier: ^4.17.21 version: 4.17.21 vue: - specifier: ^3.4.24 - version: 3.4.24(typescript@5.4.5) + specifier: 3.4.23 + version: 3.4.23(typescript@5.4.5) devDependencies: '@vben/types': specifier: workspace:* @@ -1943,9 +1943,15 @@ packages: '@vue/compiler-dom@3.4.24': resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} + '@vue/compiler-sfc@3.4.23': + resolution: {integrity: sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==} + '@vue/compiler-sfc@3.4.24': resolution: {integrity: sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==} + '@vue/compiler-ssr@3.4.23': + resolution: {integrity: sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==} + '@vue/compiler-ssr@3.4.24': resolution: {integrity: sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==} @@ -1968,15 +1974,29 @@ packages: typescript: optional: true + '@vue/reactivity@3.4.23': + resolution: {integrity: sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==} + '@vue/reactivity@3.4.24': resolution: {integrity: sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==} + '@vue/runtime-core@3.4.23': + resolution: {integrity: sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==} + '@vue/runtime-core@3.4.24': resolution: {integrity: sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==} + '@vue/runtime-dom@3.4.23': + resolution: {integrity: sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==} + '@vue/runtime-dom@3.4.24': resolution: {integrity: sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ==} + '@vue/server-renderer@3.4.23': + resolution: {integrity: sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==} + peerDependencies: + vue: 3.4.23 + '@vue/server-renderer@3.4.24': resolution: {integrity: sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow==} peerDependencies: @@ -6960,6 +6980,14 @@ packages: vue: optional: true + vue@3.4.23: + resolution: {integrity: sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + vue@3.4.24: resolution: {integrity: sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==} peerDependencies: @@ -7237,6 +7265,12 @@ snapshots: '@ant-design/icons-svg@4.4.2': {} + '@ant-design/icons-vue@7.0.1(vue@3.4.23(typescript@5.4.5))': + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-svg': 4.4.2 + vue: 3.4.23(typescript@5.4.5) + '@ant-design/icons-vue@7.0.1(vue@3.4.24(typescript@5.4.5))': dependencies: '@ant-design/colors': 6.0.0 @@ -9009,7 +9043,7 @@ snapshots: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 '@babel/parser': 7.24.4 - '@vue/compiler-sfc': 3.4.24 + '@vue/compiler-sfc': 3.4.23 '@vue/compiler-core@3.4.23': dependencies: @@ -9037,6 +9071,18 @@ snapshots: '@vue/compiler-core': 3.4.24 '@vue/shared': 3.4.24 + '@vue/compiler-sfc@3.4.23': + dependencies: + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.23 + '@vue/compiler-dom': 3.4.23 + '@vue/compiler-ssr': 3.4.23 + '@vue/shared': 3.4.23 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + '@vue/compiler-sfc@3.4.24': dependencies: '@babel/parser': 7.24.4 @@ -9049,6 +9095,11 @@ snapshots: postcss: 8.4.38 source-map-js: 1.2.0 + '@vue/compiler-ssr@3.4.23': + dependencies: + '@vue/compiler-dom': 3.4.23 + '@vue/shared': 3.4.23 + '@vue/compiler-ssr@3.4.24': dependencies: '@vue/compiler-dom': 3.4.24 @@ -9060,8 +9111,8 @@ snapshots: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.23 - '@vue/shared': 3.4.24 + '@vue/compiler-dom': 3.4.24 + '@vue/shared': 3.4.23 computeds: 0.0.1 minimatch: 9.0.4 muggle-string: 0.3.1 @@ -9073,8 +9124,8 @@ snapshots: '@vue/language-core@2.0.14(typescript@5.4.5)': dependencies: '@volar/language-core': 2.2.0-alpha.10 - '@vue/compiler-dom': 3.4.23 - '@vue/shared': 3.4.24 + '@vue/compiler-dom': 3.4.24 + '@vue/shared': 3.4.23 computeds: 0.0.1 minimatch: 9.0.4 path-browserify: 1.0.1 @@ -9082,21 +9133,42 @@ snapshots: optionalDependencies: typescript: 5.4.5 + '@vue/reactivity@3.4.23': + dependencies: + '@vue/shared': 3.4.23 + '@vue/reactivity@3.4.24': dependencies: '@vue/shared': 3.4.24 + '@vue/runtime-core@3.4.23': + dependencies: + '@vue/reactivity': 3.4.23 + '@vue/shared': 3.4.23 + '@vue/runtime-core@3.4.24': dependencies: '@vue/reactivity': 3.4.24 '@vue/shared': 3.4.24 + '@vue/runtime-dom@3.4.23': + dependencies: + '@vue/runtime-core': 3.4.23 + '@vue/shared': 3.4.23 + csstype: 3.1.3 + '@vue/runtime-dom@3.4.24': dependencies: '@vue/runtime-core': 3.4.24 '@vue/shared': 3.4.24 csstype: 3.1.3 + '@vue/server-renderer@3.4.23(vue@3.4.23(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.4.23 + '@vue/shared': 3.4.23 + vue: 3.4.23(typescript@5.4.5) + '@vue/server-renderer@3.4.24(vue@3.4.24(typescript@5.4.5))': dependencies: '@vue/compiler-ssr': 3.4.24 @@ -9112,21 +9184,21 @@ snapshots: js-beautify: 1.15.1 vue-component-type-helpers: 2.0.13 - '@vueuse/core@10.9.0(vue@3.4.24(typescript@5.4.5))': + '@vueuse/core@10.9.0(vue@3.4.23(typescript@5.4.5))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.9.0 - '@vueuse/shared': 10.9.0(vue@3.4.24(typescript@5.4.5)) - vue-demi: 0.14.7(vue@3.4.24(typescript@5.4.5)) + '@vueuse/shared': 10.9.0(vue@3.4.23(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.23(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue '@vueuse/metadata@10.9.0': {} - '@vueuse/shared@10.9.0(vue@3.4.24(typescript@5.4.5))': + '@vueuse/shared@10.9.0(vue@3.4.23(typescript@5.4.5))': dependencies: - vue-demi: 0.14.7(vue@3.4.24(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.23(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -9232,6 +9304,32 @@ snapshots: ansi-styles@6.2.1: {} + ant-design-vue@4.2.0(vue@3.4.23(typescript@5.4.5)): + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-vue': 7.0.1(vue@3.4.23(typescript@5.4.5)) + '@babel/runtime': 7.24.4 + '@ctrl/tinycolor': 3.6.1 + '@emotion/hash': 0.9.1 + '@emotion/unitless': 0.8.1 + '@simonwep/pickr': 1.8.2 + array-tree-filter: 2.1.0 + async-validator: 4.2.5 + csstype: 3.1.3 + dayjs: 1.11.10 + dom-align: 1.12.4 + dom-scroll-into-view: 2.0.1 + lodash: 4.17.21 + lodash-es: 4.17.21 + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.31 + shallow-equal: 1.2.1 + stylis: 4.3.1 + throttle-debounce: 5.0.0 + vue: 3.4.23(typescript@5.4.5) + vue-types: 3.0.2(vue@3.4.23(typescript@5.4.5)) + warning: 4.0.3 + ant-design-vue@4.2.0(vue@3.4.24(typescript@5.4.5)): dependencies: '@ant-design/colors': 6.0.0 @@ -9420,7 +9518,7 @@ snapshots: axios@1.6.8: dependencies: - follow-redirects: 1.15.6 + follow-redirects: 1.15.6(debug@4.3.4) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -10972,8 +11070,6 @@ snapshots: flatted@3.3.1: {} - follow-redirects@1.15.6: {} - follow-redirects@1.15.6(debug@4.3.4): optionalDependencies: debug: 4.3.4 @@ -12947,15 +13043,15 @@ snapshots: pify@4.0.1: optional: true - pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.24(typescript@5.4.5))): + pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.23(typescript@5.4.5))): dependencies: - pinia: 2.1.7(typescript@5.4.5)(vue@3.4.24(typescript@5.4.5)) + pinia: 2.1.7(typescript@5.4.5)(vue@3.4.23(typescript@5.4.5)) - pinia@2.1.7(typescript@5.4.5)(vue@3.4.24(typescript@5.4.5)): + pinia@2.1.7(typescript@5.4.5)(vue@3.4.23(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.24(typescript@5.4.5) - vue-demi: 0.14.7(vue@3.4.24(typescript@5.4.5)) + vue: 3.4.23(typescript@5.4.5) + vue-demi: 0.14.7(vue@3.4.23(typescript@5.4.5)) optionalDependencies: typescript: 5.4.5 @@ -14743,9 +14839,9 @@ snapshots: vue-component-type-helpers@2.0.13: {} - vue-demi@0.14.7(vue@3.4.24(typescript@5.4.5)): + vue-demi@0.14.7(vue@3.4.23(typescript@5.4.5)): dependencies: - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) vue-eslint-parser@9.4.2(eslint@8.57.0): dependencies: @@ -14760,21 +14856,21 @@ snapshots: transitivePeerDependencies: - supports-color - vue-i18n@9.13.1(vue@3.4.24(typescript@5.4.5)): + vue-i18n@9.13.1(vue@3.4.23(typescript@5.4.5)): dependencies: '@intlify/core-base': 9.13.1 '@intlify/shared': 9.13.1 '@vue/devtools-api': 6.6.1 - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) - vue-json-pretty@2.4.0(vue@3.4.24(typescript@5.4.5)): + vue-json-pretty@2.4.0(vue@3.4.23(typescript@5.4.5)): dependencies: - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) - vue-router@4.3.2(vue@3.4.24(typescript@5.4.5)): + vue-router@4.3.2(vue@3.4.23(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) vue-template-compiler@2.7.16: dependencies: @@ -14795,16 +14891,31 @@ snapshots: semver: 7.6.0 typescript: 5.4.5 + vue-types@3.0.2(vue@3.4.23(typescript@5.4.5)): + dependencies: + is-plain-object: 3.0.1 + vue: 3.4.23(typescript@5.4.5) + vue-types@3.0.2(vue@3.4.24(typescript@5.4.5)): dependencies: is-plain-object: 3.0.1 vue: 3.4.24(typescript@5.4.5) - vue-types@5.1.1(vue@3.4.24(typescript@5.4.5)): + vue-types@5.1.1(vue@3.4.23(typescript@5.4.5)): dependencies: is-plain-object: 5.0.0 optionalDependencies: - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) + + vue@3.4.23(typescript@5.4.5): + dependencies: + '@vue/compiler-dom': 3.4.23 + '@vue/compiler-sfc': 3.4.23 + '@vue/runtime-dom': 3.4.23 + '@vue/server-renderer': 3.4.23(vue@3.4.23(typescript@5.4.5)) + '@vue/shared': 3.4.23 + optionalDependencies: + typescript: 5.4.5 vue@3.4.24(typescript@5.4.5): dependencies: @@ -14816,19 +14927,19 @@ snapshots: optionalDependencies: typescript: 5.4.5 - vuedraggable@4.1.0(vue@3.4.24(typescript@5.4.5)): + vuedraggable@4.1.0(vue@3.4.23(typescript@5.4.5)): dependencies: sortablejs: 1.14.0 - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) - vxe-table-plugin-export-xlsx@4.0.1(vxe-table@4.6.0(vue@3.4.24(typescript@5.4.5))): + vxe-table-plugin-export-xlsx@4.0.1(vxe-table@4.6.0(vue@3.4.23(typescript@5.4.5))): dependencies: - vxe-table: 4.6.0(vue@3.4.24(typescript@5.4.5)) + vxe-table: 4.6.0(vue@3.4.23(typescript@5.4.5)) - vxe-table@4.6.0(vue@3.4.24(typescript@5.4.5)): + vxe-table@4.6.0(vue@3.4.23(typescript@5.4.5)): dependencies: dom-zindex: 1.0.1 - vue: 3.4.24(typescript@5.4.5) + vue: 3.4.23(typescript@5.4.5) xe-utils: 3.5.25 w3c-hr-time@1.0.2: diff --git a/src/components/Form/src/components/ApiCascader.vue b/src/components/Form/src/components/ApiCascader.vue index 6ac121ec5..6f148db8c 100644 --- a/src/components/Form/src/components/ApiCascader.vue +++ b/src/components/Form/src/components/ApiCascader.vue @@ -69,6 +69,14 @@ displayRenderArray: { type: Array, }, + beforeFetch: { + type: Function as PropType, + default: null, + }, + afterFetch: { + type: Function as PropType, + default: null, + }, }); const emit = defineEmits(['change', 'defaultChange']); @@ -112,19 +120,25 @@ }, [] as Option[]); } - async function initialFetch() { - const api = props.api; + async function fetch() { + let { api, beforeFetch, initFetchParams, afterFetch, resultField } = props; if (!api || !isFunction(api)) return; apiData.value = []; loading.value = true; try { - const res = await api(props.initFetchParams); + if (beforeFetch && isFunction(beforeFetch)) { + initFetchParams = (await beforeFetch(initFetchParams)) || initFetchParams; + } + let res = await api(initFetchParams); + if (afterFetch && isFunction(afterFetch)) { + res = (await afterFetch(res)) || res; + } if (Array.isArray(res)) { apiData.value = res; return; } - if (props.resultField) { - apiData.value = get(res, props.resultField) || []; + if (resultField) { + apiData.value = get(res, resultField) || []; } } catch (error) { console.warn(error); @@ -136,20 +150,26 @@ const loadData: CascaderProps['loadData'] = async (selectedOptions) => { const targetOption = selectedOptions[selectedOptions.length - 1]; targetOption.loading = true; - - const api = props.api; + let { api, beforeFetch, afterFetch, resultField, apiParamKey } = props; if (!api || !isFunction(api)) return; try { - const res = await api({ - [props.apiParamKey]: Reflect.get(targetOption, 'value'), - }); + let param = { + [apiParamKey]: Reflect.get(targetOption, 'value'), + }; + if (beforeFetch && isFunction(beforeFetch)) { + param = (await beforeFetch(param)) || param; + } + let res = await api(param); + if (afterFetch && isFunction(afterFetch)) { + res = (await afterFetch(res)) || res; + } if (Array.isArray(res)) { const children = generatorOptions(res); targetOption.children = children; return; } - if (props.resultField) { - const children = generatorOptions(get(res, props.resultField) || []); + if (resultField) { + const children = generatorOptions(get(res, resultField) || []); targetOption.children = children; } } catch (e) { @@ -162,7 +182,7 @@ watch( () => props.immediate, () => { - props.immediate && initialFetch(); + props.immediate && fetch(); }, { immediate: true, @@ -172,7 +192,7 @@ watch( () => props.initFetchParams, () => { - !unref(isFirstLoad) && initialFetch(); + !unref(isFirstLoad) && fetch(); }, { deep: true }, ); diff --git a/src/components/Form/src/components/ApiRadioGroup.vue b/src/components/Form/src/components/ApiRadioGroup.vue index dc6b9a60b..f90daa260 100644 --- a/src/components/Form/src/components/ApiRadioGroup.vue +++ b/src/components/Form/src/components/ApiRadioGroup.vue @@ -57,6 +57,14 @@ labelField: propTypes.string.def('label'), valueField: propTypes.string.def('value'), immediate: propTypes.bool.def(true), + beforeFetch: { + type: Function as PropType, + default: null, + }, + afterFetch: { + type: Function as PropType, + default: null, + }, }); const emit = defineEmits(['options-change', 'change', 'update:value']); @@ -95,19 +103,25 @@ ); async function fetch() { - const api = props.api; + let { api, beforeFetch, afterFetch, params, resultField } = props; if (!api || !isFunction(api)) return; options.value = []; try { loading.value = true; - const res = await api(props.params); + if (beforeFetch && isFunction(beforeFetch)) { + params = (await beforeFetch(params)) || params; + } + let res = await api(params); + if (afterFetch && isFunction(afterFetch)) { + res = (await afterFetch(res)) || res; + } if (Array.isArray(res)) { options.value = res; emitChange(); return; } - if (props.resultField) { - options.value = get(res, props.resultField) || []; + if (resultField) { + options.value = get(res, resultField) || []; } emitChange(); } catch (error) { diff --git a/src/components/Form/src/components/ApiSelect.vue b/src/components/Form/src/components/ApiSelect.vue index 5127c2c15..463157bcf 100644 --- a/src/components/Form/src/components/ApiSelect.vue +++ b/src/components/Form/src/components/ApiSelect.vue @@ -55,6 +55,14 @@ default: [], }, labelWithCode: propTypes.bool, + beforeFetch: { + type: Function as PropType, + default: null, + }, + afterFetch: { + type: Function as PropType, + default: null, + }, }); const emit = defineEmits(['options-change', 'change', 'update:value']); @@ -104,20 +112,26 @@ ); async function fetch() { - const api = props.api; + let { api, beforeFetch, afterFetch, params, resultField } = props; if (!api || !isFunction(api) || loading.value) return; optionsRef.value = []; try { loading.value = true; - const res = await api(props.params); + if (beforeFetch && isFunction(beforeFetch)) { + params = (await beforeFetch(params)) || params; + } + let res = await api(params); + if (afterFetch && isFunction(afterFetch)) { + res = (await afterFetch(res)) || res; + } isFirstLoaded.value = true; if (Array.isArray(res)) { optionsRef.value = res; emitChange(); return; } - if (props.resultField) { - optionsRef.value = get(res, props.resultField) || []; + if (resultField) { + optionsRef.value = get(res, resultField) || []; } emitChange(); } catch (error) { diff --git a/src/components/Form/src/components/ApiTransfer.vue b/src/components/Form/src/components/ApiTransfer.vue index df5395648..11edd865d 100644 --- a/src/components/Form/src/components/ApiTransfer.vue +++ b/src/components/Form/src/components/ApiTransfer.vue @@ -32,7 +32,14 @@ dataSource: { type: Array as PropType> }, immediate: propTypes.bool.def(true), alwaysLoad: propTypes.bool.def(false), - afterFetch: { type: Function }, + beforeFetch: { + type: Function as PropType, + default: null, + }, + afterFetch: { + type: Function as PropType, + default: null, + }, resultField: propTypes.string.def(''), labelField: propTypes.string.def('title'), valueField: propTypes.string.def('key'), @@ -98,23 +105,29 @@ ); async function fetch() { - const api = props.api; + let { api, beforeFetch, afterFetch, params, resultField, dataSource } = props; if (!api || !isFunction(api)) { - if (Array.isArray(props.dataSource)) { - _dataSource.value = props.dataSource; + if (Array.isArray(dataSource)) { + _dataSource.value = dataSource; } return; } _dataSource.value = []; try { - const res = await api(props.params); + if (beforeFetch && isFunction(beforeFetch)) { + params = (await beforeFetch(params)) || params; + } + let res = await api(params); + if (afterFetch && isFunction(afterFetch)) { + res = (await afterFetch(res)) || res; + } if (Array.isArray(res)) { _dataSource.value = res; emitChange(); return; } - if (props.resultField) { - _dataSource.value = get(res, props.resultField) || []; + if (resultField) { + _dataSource.value = get(res, resultField) || []; } emitChange(); } catch (error) { diff --git a/src/components/Form/src/components/ApiTree.vue b/src/components/Form/src/components/ApiTree.vue index d2b9597c9..56f93580b 100644 --- a/src/components/Form/src/components/ApiTree.vue +++ b/src/components/Form/src/components/ApiTree.vue @@ -7,10 +7,10 @@