Commit 762e5dee140f9643764bc84f35a365da93b798ba

Authored by vben
1 parent fa18365c

fix: 修复循环依赖问题

Showing 52 changed files with 86 additions and 99 deletions
internal/eslint-config/build.config.ts
@@ -2,7 +2,7 @@ import { defineBuildConfig } from 'unbuild'; @@ -2,7 +2,7 @@ import { defineBuildConfig } from 'unbuild';
2 2
3 export default defineBuildConfig({ 3 export default defineBuildConfig({
4 clean: true, 4 clean: true,
5 - entries: ['src/index'], 5 + entries: ['src/index', 'src/strict'],
6 declaration: true, 6 declaration: true,
7 rollup: { 7 rollup: {
8 emitCJS: true, 8 emitCJS: true,
internal/eslint-config/package.json
@@ -17,6 +17,11 @@ @@ -17,6 +17,11 @@
17 "types": "./dist/index.d.ts", 17 "types": "./dist/index.d.ts",
18 "import": "./dist/index.mjs", 18 "import": "./dist/index.mjs",
19 "require": "./dist/index.cjs" 19 "require": "./dist/index.cjs"
  20 + },
  21 + "./strict": {
  22 + "types": "./dist/strict.d.ts",
  23 + "import": "./dist/strict.mjs",
  24 + "require": "./dist/strict.cjs"
20 } 25 }
21 }, 26 },
22 "main": "./dist/index.cjs", 27 "main": "./dist/index.cjs",
@@ -38,7 +43,6 @@ @@ -38,7 +43,6 @@
38 "eslint-plugin-import": "^2.27.5", 43 "eslint-plugin-import": "^2.27.5",
39 "eslint-plugin-prettier": "^4.2.1", 44 "eslint-plugin-prettier": "^4.2.1",
40 "eslint-plugin-simple-import-sort": "^10.0.0", 45 "eslint-plugin-simple-import-sort": "^10.0.0",
41 - "eslint-plugin-unused-imports": "^2.0.0",  
42 "eslint-plugin-vue": "^9.10.0", 46 "eslint-plugin-vue": "^9.10.0",
43 "vue-eslint-parser": "^9.1.1" 47 "vue-eslint-parser": "^9.1.1"
44 } 48 }
internal/eslint-config/src/index.ts
@@ -17,14 +17,7 @@ export default { @@ -17,14 +17,7 @@ export default {
17 createDefaultProgram: false, 17 createDefaultProgram: false,
18 extraFileExtensions: ['.vue'], 18 extraFileExtensions: ['.vue'],
19 }, 19 },
20 - plugins: [  
21 - 'vue',  
22 - '@typescript-eslint',  
23 - 'import',  
24 - // TODO: 改造完成后开启  
25 - // 'unused-imports',  
26 - // 'simple-import-sort',  
27 - ], 20 + plugins: ['vue', '@typescript-eslint', 'import'],
28 extends: [ 21 extends: [
29 'eslint:recommended', 22 'eslint:recommended',
30 'plugin:vue/vue3-recommended', 23 'plugin:vue/vue3-recommended',
@@ -37,19 +30,10 @@ export default { @@ -37,19 +30,10 @@ export default {
37 'no-use-before-define': 'off', 30 'no-use-before-define': 'off',
38 'space-before-function-paren': 'off', 31 'space-before-function-paren': 'off',
39 32
40 - // TODO: 改造完成后开启  
41 - // 'simple-import-sort/imports': 'error',  
42 - // 'simple-import-sort/exports': 'error',  
43 -  
44 'import/first': 'error', 33 'import/first': 'error',
45 'import/newline-after-import': 'error', 34 'import/newline-after-import': 'error',
46 'import/no-duplicates': 'error', 35 'import/no-duplicates': 'error',
47 36
48 - // 'unused-imports/no-unused-imports': 'error',  
49 - // 'unused-imports/no-unused-vars': [  
50 - // 'warn',  
51 - // { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' },  
52 - // ],  
53 '@typescript-eslint/no-unused-vars': [ 37 '@typescript-eslint/no-unused-vars': [
54 'error', 38 'error',
55 { 39 {
@@ -58,13 +42,13 @@ export default { @@ -58,13 +42,13 @@ export default {
58 }, 42 },
59 ], 43 ],
60 '@typescript-eslint/ban-ts-ignore': 'off', 44 '@typescript-eslint/ban-ts-ignore': 'off',
  45 + '@typescript-eslint/ban-ts-comment': 'off',
  46 + '@typescript-eslint/ban-types': 'off',
61 '@typescript-eslint/explicit-function-return-type': 'off', 47 '@typescript-eslint/explicit-function-return-type': 'off',
62 '@typescript-eslint/no-explicit-any': 'off', 48 '@typescript-eslint/no-explicit-any': 'off',
63 '@typescript-eslint/no-var-requires': 'off', 49 '@typescript-eslint/no-var-requires': 'off',
64 '@typescript-eslint/no-empty-function': 'off', 50 '@typescript-eslint/no-empty-function': 'off',
65 '@typescript-eslint/no-use-before-define': 'off', 51 '@typescript-eslint/no-use-before-define': 'off',
66 - '@typescript-eslint/ban-ts-comment': 'off',  
67 - '@typescript-eslint/ban-types': 'off',  
68 '@typescript-eslint/no-non-null-assertion': 'off', 52 '@typescript-eslint/no-non-null-assertion': 'off',
69 '@typescript-eslint/explicit-module-boundary-types': 'off', 53 '@typescript-eslint/explicit-module-boundary-types': 'off',
70 'vue/script-setup-uses-vars': 'error', 54 'vue/script-setup-uses-vars': 'error',
internal/eslint-config/src/strict.ts 0 → 100644
  1 +import baseLintConfig from './index';
  2 +
  3 +export default {
  4 + extends: [baseLintConfig],
  5 + plugins: ['simple-import-sort'],
  6 + rules: {
  7 + 'simple-import-sort/imports': 'error',
  8 + 'simple-import-sort/exports': 'error',
  9 +
  10 + '@typescript-eslint/ban-types': 'error',
  11 + '@typescript-eslint/ban-ts-ignore': 'error',
  12 + '@typescript-eslint/ban-ts-comment': 'error',
  13 + '@typescript-eslint/no-explicit-any': 'error',
  14 +
  15 + 'vue/attributes-order': 'error',
  16 + 'vue/require-default-prop': 'error',
  17 + },
  18 +};
package.json
@@ -71,6 +71,7 @@ @@ -71,6 +71,7 @@
71 "@logicflow/core": "^1.2.1", 71 "@logicflow/core": "^1.2.1",
72 "@logicflow/extension": "^1.2.1", 72 "@logicflow/extension": "^1.2.1",
73 "@vben/hooks": "workspace:*", 73 "@vben/hooks": "workspace:*",
  74 + "@vue/shared": "^3.2.47",
74 "@vueuse/core": "^9.13.0", 75 "@vueuse/core": "^9.13.0",
75 "@vueuse/shared": "^9.13.0", 76 "@vueuse/shared": "^9.13.0",
76 "@zxcvbn-ts/core": "^2.2.1", 77 "@zxcvbn-ts/core": "^2.2.1",
pnpm-lock.yaml
@@ -19,6 +19,9 @@ importers: @@ -19,6 +19,9 @@ importers:
19 '@vben/hooks': 19 '@vben/hooks':
20 specifier: workspace:* 20 specifier: workspace:*
21 version: link:packages/hooks 21 version: link:packages/hooks
  22 + '@vue/shared':
  23 + specifier: ^3.2.47
  24 + version: 3.2.47
22 '@vueuse/core': 25 '@vueuse/core':
23 specifier: ^9.13.0 26 specifier: ^9.13.0
24 version: 9.13.0(vue@3.2.47) 27 version: 9.13.0(vue@3.2.47)
@@ -321,9 +324,6 @@ importers: @@ -321,9 +324,6 @@ importers:
321 eslint-plugin-simple-import-sort: 324 eslint-plugin-simple-import-sort:
322 specifier: ^10.0.0 325 specifier: ^10.0.0
323 version: 10.0.0(eslint@8.37.0) 326 version: 10.0.0(eslint@8.37.0)
324 - eslint-plugin-unused-imports:  
325 - specifier: ^2.0.0  
326 - version: 2.0.0(@typescript-eslint/eslint-plugin@5.57.1)(eslint@8.37.0)  
327 eslint-plugin-vue: 327 eslint-plugin-vue:
328 specifier: ^9.10.0 328 specifier: ^9.10.0
329 version: 9.10.0(eslint@8.37.0) 329 version: 9.10.0(eslint@8.37.0)
@@ -4483,21 +4483,6 @@ packages: @@ -4483,21 +4483,6 @@ packages:
4483 eslint: 8.37.0 4483 eslint: 8.37.0
4484 dev: true 4484 dev: true
4485 4485
4486 - /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.57.1)(eslint@8.37.0):  
4487 - resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}  
4488 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
4489 - peerDependencies:  
4490 - '@typescript-eslint/eslint-plugin': ^5.0.0  
4491 - eslint: ^8.0.0  
4492 - peerDependenciesMeta:  
4493 - '@typescript-eslint/eslint-plugin':  
4494 - optional: true  
4495 - dependencies:  
4496 - '@typescript-eslint/eslint-plugin': 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.37.0)(typescript@5.0.3)  
4497 - eslint: 8.37.0  
4498 - eslint-rule-composer: 0.3.0  
4499 - dev: true  
4500 -  
4501 /eslint-plugin-vue@9.10.0(eslint@8.37.0): 4486 /eslint-plugin-vue@9.10.0(eslint@8.37.0):
4502 resolution: {integrity: sha512-2MgP31OBf8YilUvtakdVMc8xVbcMp7z7/iQj8LHVpXrSXHPXSJRUIGSPFI6b6pyCx/buKaFJ45ycqfHvQRiW2g==} 4487 resolution: {integrity: sha512-2MgP31OBf8YilUvtakdVMc8xVbcMp7z7/iQj8LHVpXrSXHPXSJRUIGSPFI6b6pyCx/buKaFJ45ycqfHvQRiW2g==}
4503 engines: {node: ^14.17.0 || >=16.0.0} 4488 engines: {node: ^14.17.0 || >=16.0.0}
@@ -4516,11 +4501,6 @@ packages: @@ -4516,11 +4501,6 @@ packages:
4516 - supports-color 4501 - supports-color
4517 dev: true 4502 dev: true
4518 4503
4519 - /eslint-rule-composer@0.3.0:  
4520 - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}  
4521 - engines: {node: '>=4.0.0'}  
4522 - dev: true  
4523 -  
4524 /eslint-scope@5.1.1: 4504 /eslint-scope@5.1.1:
4525 resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 4505 resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
4526 engines: {node: '>=8.0.0'} 4506 engines: {node: '>=8.0.0'}
src/components/Application/src/AppLocalePicker.vue
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 import type { DropMenu } from '/@/components/Dropdown'; 22 import type { DropMenu } from '/@/components/Dropdown';
23 import { ref, watchEffect, unref, computed } from 'vue'; 23 import { ref, watchEffect, unref, computed } from 'vue';
24 import { Dropdown } from '/@/components/Dropdown'; 24 import { Dropdown } from '/@/components/Dropdown';
25 - import { Icon } from '/@/components/Icon'; 25 + import Icon from '@/components/Icon/Icon.vue';
26 import { useLocale } from '/@/locales/useLocale'; 26 import { useLocale } from '/@/locales/useLocale';
27 import { localeList } from '/@/settings/localeSetting'; 27 import { localeList } from '/@/settings/localeSetting';
28 28
src/components/Application/src/search/AppSearchKeyItem.vue
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 </span> 4 </span>
5 </template> 5 </template>
6 <script lang="ts" setup> 6 <script lang="ts" setup>
7 - import { Icon } from '/@/components/Icon'; 7 + import Icon from '@/components/Icon/Icon.vue';
8 8
9 defineProps({ 9 defineProps({
10 icon: String, 10 icon: String,
src/components/Application/src/search/AppSearchModal.vue
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 import { computed, unref, ref, watch, nextTick } from 'vue'; 61 import { computed, unref, ref, watch, nextTick } from 'vue';
62 import { SearchOutlined } from '@ant-design/icons-vue'; 62 import { SearchOutlined } from '@ant-design/icons-vue';
63 import AppSearchFooter from './AppSearchFooter.vue'; 63 import AppSearchFooter from './AppSearchFooter.vue';
64 - import { Icon } from '/@/components/Icon'; 64 + import Icon from '@/components/Icon/Icon.vue';
65 // @ts-ignore 65 // @ts-ignore
66 import vClickOutside from '/@/directives/clickOutside'; 66 import vClickOutside from '/@/directives/clickOutside';
67 import { useDesign } from '/@/hooks/web/useDesign'; 67 import { useDesign } from '/@/hooks/web/useDesign';
src/components/Basic/src/BasicArrow.vue
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 </template> 9 </template>
10 <script lang="ts" setup> 10 <script lang="ts" setup>
11 import { computed } from 'vue'; 11 import { computed } from 'vue';
12 - import { Icon } from '/@/components/Icon'; 12 + import Icon from '@/components/Icon/Icon.vue';
13 import { useDesign } from '/@/hooks/web/useDesign'; 13 import { useDesign } from '/@/hooks/web/useDesign';
14 14
15 const props = defineProps({ 15 const props = defineProps({
src/components/Button/src/BasicButton.vue
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 <script lang="ts" setup> 11 <script lang="ts" setup>
12 import { Button } from 'ant-design-vue'; 12 import { Button } from 'ant-design-vue';
13 import { computed, unref } from 'vue'; 13 import { computed, unref } from 'vue';
14 - import Icon from '/@/components/Icon/src/Icon.vue'; 14 + import Icon from '@/components/Icon/Icon.vue';
15 import { buttonProps } from './props'; 15 import { buttonProps } from './props';
16 import { useAttrs } from '@vben/hooks'; 16 import { useAttrs } from '@vben/hooks';
17 17
src/components/ContextMenu/src/ContextMenu.vue
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 import type { ContextMenuItem, ItemContentProps, Axis } from './typing'; 2 import type { ContextMenuItem, ItemContentProps, Axis } from './typing';
3 import type { FunctionalComponent, CSSProperties, PropType } from 'vue'; 3 import type { FunctionalComponent, CSSProperties, PropType } from 'vue';
4 import { defineComponent, nextTick, onMounted, computed, ref, unref, onUnmounted } from 'vue'; 4 import { defineComponent, nextTick, onMounted, computed, ref, unref, onUnmounted } from 'vue';
5 - import { Icon } from '/@/components/Icon'; 5 + import Icon from '@/components/Icon/Icon.vue';
6 import { Menu, Divider } from 'ant-design-vue'; 6 import { Menu, Divider } from 'ant-design-vue';
7 7
8 const prefixCls = 'context-menu'; 8 const prefixCls = 'context-menu';
src/components/Cropper/src/CropperAvatar.vue
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 import { useMessage } from '/@/hooks/web/useMessage'; 45 import { useMessage } from '/@/hooks/web/useMessage';
46 import { useI18n } from '/@/hooks/web/useI18n'; 46 import { useI18n } from '/@/hooks/web/useI18n';
47 import type { ButtonProps } from '/@/components/Button'; 47 import type { ButtonProps } from '/@/components/Button';
48 - import { Icon } from '/@/components/Icon'; 48 + import Icon from '@/components/Icon/Icon.vue';
49 49
50 const props = { 50 const props = {
51 width: { type: [String, Number], default: '200px' }, 51 width: { type: [String, Number], default: '200px' },
src/components/Dropdown/src/Dropdown.vue
@@ -37,9 +37,10 @@ @@ -37,9 +37,10 @@
37 37
38 <script lang="ts" setup> 38 <script lang="ts" setup>
39 import { computed, PropType } from 'vue'; 39 import { computed, PropType } from 'vue';
40 - import type { DropMenu } from './typing'; 40 + import { type Recordable } from '@vben/types';
  41 + import { type DropMenu } from './typing';
41 import { Dropdown, Menu, Popconfirm } from 'ant-design-vue'; 42 import { Dropdown, Menu, Popconfirm } from 'ant-design-vue';
42 - import { Icon } from '/@/components/Icon'; 43 + import Icon from '@/components/Icon/Icon.vue';
43 import { omit } from 'lodash-es'; 44 import { omit } from 'lodash-es';
44 import { isFunction } from '/@/utils/is'; 45 import { isFunction } from '/@/utils/is';
45 46
@@ -63,7 +64,7 @@ @@ -63,7 +64,7 @@
63 }, 64 },
64 }, 65 },
65 dropMenuList: { 66 dropMenuList: {
66 - type: Array as PropType<(DropMenu & Recordable)[]>, 67 + type: Array as PropType<(DropMenu & Recordable<any>)[]>,
67 default: () => [], 68 default: () => [],
68 }, 69 },
69 selectedKeys: { 70 selectedKeys: {
src/components/FlowChart/src/FlowChartToolbar.vue
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 19
20 import { defineComponent, ref, onUnmounted, unref, nextTick, watchEffect } from 'vue'; 20 import { defineComponent, ref, onUnmounted, unref, nextTick, watchEffect } from 'vue';
21 import { Divider, Tooltip } from 'ant-design-vue'; 21 import { Divider, Tooltip } from 'ant-design-vue';
22 - import { Icon } from '/@/components/Icon'; 22 + import Icon from '@/components/Icon/Icon.vue';
23 23
24 import { useFlowChartContext } from './useFlowContext'; 24 import { useFlowChartContext } from './useFlowContext';
25 import { ToolbarTypeEnum } from './enum'; 25 import { ToolbarTypeEnum } from './enum';
src/components/Icon/src/Icon.vue renamed to src/components/Icon/Icon.vue
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 computed, 25 computed,
26 CSSProperties, 26 CSSProperties,
27 } from 'vue'; 27 } from 'vue';
28 - import SvgIcon from './SvgIcon.vue'; 28 + import SvgIcon from './src/SvgIcon.vue';
29 import Iconify from '@purge-icons/generated'; 29 import Iconify from '@purge-icons/generated';
30 import { isString } from '/@/utils/is'; 30 import { isString } from '/@/utils/is';
31 import { propTypes } from '/@/utils/propTypes'; 31 import { propTypes } from '/@/utils/propTypes';
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 const update = async () => { 57 const update = async () => {
58 if (unref(isSvgIcon)) return; 58 if (unref(isSvgIcon)) return;
59 59
60 - const el = unref(elRef); 60 + const el: any = unref(elRef);
61 if (!el) return; 61 if (!el) return;
62 62
63 await nextTick(); 63 await nextTick();
src/components/Icon/index.ts
1 -import Icon from './src/Icon.vue';  
2 import SvgIcon from './src/SvgIcon.vue'; 1 import SvgIcon from './src/SvgIcon.vue';
3 import IconPicker from './src/IconPicker.vue'; 2 import IconPicker from './src/IconPicker.vue';
4 3
5 -export { Icon, IconPicker, SvgIcon }; 4 +export { IconPicker, SvgIcon };
src/components/Icon/src/IconPicker.vue
@@ -69,7 +69,7 @@ @@ -69,7 +69,7 @@
69 import { useDesign } from '/@/hooks/web/useDesign'; 69 import { useDesign } from '/@/hooks/web/useDesign';
70 import { ScrollContainer } from '/@/components/Container'; 70 import { ScrollContainer } from '/@/components/Container';
71 import { Input, Popover, Pagination, Empty } from 'ant-design-vue'; 71 import { Input, Popover, Pagination, Empty } from 'ant-design-vue';
72 - import Icon from './Icon.vue'; 72 + import Icon from '../Icon.vue';
73 import SvgIcon from './SvgIcon.vue'; 73 import SvgIcon from './SvgIcon.vue';
74 74
75 import iconsData from '../data/icons.data'; 75 import iconsData from '../data/icons.data';
@@ -167,7 +167,7 @@ @@ -167,7 +167,7 @@
167 } 167 }
168 } 168 }
169 169
170 - function handleSearchChange(e: ChangeEvent) { 170 + function handleSearchChange(e: Event) {
171 const value = e.target.value; 171 const value = e.target.value;
172 if (!value) { 172 if (!value) {
173 setCurrentPage(1); 173 setCurrentPage(1);
src/components/Menu/src/components/MenuItemContent.vue
@@ -6,8 +6,7 @@ @@ -6,8 +6,7 @@
6 </template> 6 </template>
7 <script lang="ts"> 7 <script lang="ts">
8 import { computed, defineComponent } from 'vue'; 8 import { computed, defineComponent } from 'vue';
9 -  
10 - import { Icon } from '/@/components/Icon/index'; 9 + import Icon from '@/components/Icon/Icon.vue';
11 import { useI18n } from '/@/hooks/web/useI18n'; 10 import { useI18n } from '/@/hooks/web/useI18n';
12 import { useDesign } from '/@/hooks/web/useDesign'; 11 import { useDesign } from '/@/hooks/web/useDesign';
13 import { contentProps } from '../props'; 12 import { contentProps } from '../props';
src/components/SimpleMenu/src/SimpleSubMenu.vue
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 48
49 import { defineComponent, computed } from 'vue'; 49 import { defineComponent, computed } from 'vue';
50 import { useDesign } from '/@/hooks/web/useDesign'; 50 import { useDesign } from '/@/hooks/web/useDesign';
51 - import { Icon } from '/@/components/Icon/index'; 51 + import Icon from '@/components/Icon/Icon.vue';
52 52
53 import MenuItem from './components/MenuItem.vue'; 53 import MenuItem from './components/MenuItem.vue';
54 import SubMenu from './components/SubMenuItem.vue'; 54 import SubMenu from './components/SubMenuItem.vue';
src/components/SimpleMenu/src/components/SubMenuItem.vue
@@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
75 import { useMenuItem } from './useMenu'; 75 import { useMenuItem } from './useMenu';
76 import { useSimpleRootMenuContext } from './useSimpleMenuContext'; 76 import { useSimpleRootMenuContext } from './useSimpleMenuContext';
77 import { CollapseTransition } from '/@/components/Transition'; 77 import { CollapseTransition } from '/@/components/Transition';
78 - import { Icon } from '/@/components/Icon'; 78 + import Icon from '@/components/Icon/Icon.vue';
79 import { Popover } from 'ant-design-vue'; 79 import { Popover } from 'ant-design-vue';
80 import { isBoolean, isObject } from '/@/utils/is'; 80 import { isBoolean, isObject } from '/@/utils/is';
81 import { mitt } from '/@/utils/mitt'; 81 import { mitt } from '/@/utils/mitt';
src/components/Table/src/components/TableAction.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 import { defineComponent, PropType, computed, toRaw, unref } from 'vue'; 34 import { defineComponent, PropType, computed, toRaw, unref } from 'vue';
35 import { MoreOutlined } from '@ant-design/icons-vue'; 35 import { MoreOutlined } from '@ant-design/icons-vue';
36 import { Divider, Tooltip, TooltipProps } from 'ant-design-vue'; 36 import { Divider, Tooltip, TooltipProps } from 'ant-design-vue';
37 - import { Icon } from '/@/components/Icon/index'; 37 + import Icon from '@/components/Icon/Icon.vue';
38 import { ActionItem, TableActionType } from '/@/components/Table'; 38 import { ActionItem, TableActionType } from '/@/components/Table';
39 import { PopConfirmButton } from '/@/components/Button'; 39 import { PopConfirmButton } from '/@/components/Button';
40 import { Dropdown } from '/@/components/Dropdown'; 40 import { Dropdown } from '/@/components/Dropdown';
src/components/Table/src/components/settings/ColumnSetting.vue
@@ -113,7 +113,7 @@ @@ -113,7 +113,7 @@
113 import { Tooltip, Popover, Checkbox, Divider } from 'ant-design-vue'; 113 import { Tooltip, Popover, Checkbox, Divider } from 'ant-design-vue';
114 import type { CheckboxChangeEvent } from 'ant-design-vue/lib/checkbox/interface'; 114 import type { CheckboxChangeEvent } from 'ant-design-vue/lib/checkbox/interface';
115 import { SettingOutlined, DragOutlined } from '@ant-design/icons-vue'; 115 import { SettingOutlined, DragOutlined } from '@ant-design/icons-vue';
116 - import { Icon } from '/@/components/Icon'; 116 + import Icon from '@/components/Icon/Icon.vue';
117 import { ScrollContainer } from '/@/components/Container'; 117 import { ScrollContainer } from '/@/components/Container';
118 import { useI18n } from '/@/hooks/web/useI18n'; 118 import { useI18n } from '/@/hooks/web/useI18n';
119 import { useTableContext } from '../../hooks/useTableContext'; 119 import { useTableContext } from '../../hooks/useTableContext';
src/components/Tree/src/TreeIcon.ts
1 import type { VNode, FunctionalComponent } from 'vue'; 1 import type { VNode, FunctionalComponent } from 'vue';
2 import { h } from 'vue'; 2 import { h } from 'vue';
3 import { isString } from 'lodash-es'; 3 import { isString } from 'lodash-es';
4 -import { Icon } from '/@/components/Icon'; 4 +import Icon from '@/components/Icon/Icon.vue';
5 5
6 export const TreeIcon: FunctionalComponent = ({ icon }: { icon: VNode | string }) => { 6 export const TreeIcon: FunctionalComponent = ({ icon }: { icon: VNode | string }) => {
7 if (!icon) return null; 7 if (!icon) return null;
src/components/Tree/src/components/TreeHeader.vue
@@ -33,9 +33,9 @@ @@ -33,9 +33,9 @@
33 </div> 33 </div>
34 </template> 34 </template>
35 <script lang="ts" setup> 35 <script lang="ts" setup>
36 - import { computed, ref, watch, useSlots } from 'vue'; 36 + import { type PropType, computed, ref, watch, useSlots } from 'vue';
37 import { Dropdown, Menu, MenuItem, MenuDivider, InputSearch } from 'ant-design-vue'; 37 import { Dropdown, Menu, MenuItem, MenuDivider, InputSearch } from 'ant-design-vue';
38 - import { Icon } from '/@/components/Icon'; 38 + import Icon from '@/components/Icon/Icon.vue';
39 import { BasicTitle } from '/@/components/Basic'; 39 import { BasicTitle } from '/@/components/Basic';
40 import { useI18n } from '/@/hooks/web/useI18n'; 40 import { useI18n } from '/@/hooks/web/useI18n';
41 import { useDebounceFn } from '@vueuse/core'; 41 import { useDebounceFn } from '@vueuse/core';
src/components/Upload/src/BasicUpload.vue
@@ -37,7 +37,8 @@ @@ -37,7 +37,8 @@
37 </template> 37 </template>
38 <script lang="ts"> 38 <script lang="ts">
39 import { defineComponent, ref, watch, unref, computed } from 'vue'; 39 import { defineComponent, ref, watch, unref, computed } from 'vue';
40 - import { Icon } from '/@/components/Icon'; 40 + import { Recordable } from '@vben/types';
  41 + import Icon from '@/components/Icon/Icon.vue';
41 import { Tooltip, Space } from 'ant-design-vue'; 42 import { Tooltip, Space } from 'ant-design-vue';
42 import { useModal } from '/@/components/Modal'; 43 import { useModal } from '/@/components/Modal';
43 import { uploadContainerProps } from './props'; 44 import { uploadContainerProps } from './props';
@@ -96,7 +97,7 @@ @@ -96,7 +97,7 @@
96 emit('change', fileList.value); 97 emit('change', fileList.value);
97 } 98 }
98 99
99 - function handleDelete(record: Recordable) { 100 + function handleDelete(record: Recordable<any>) {
100 emit('delete', record); 101 emit('delete', record);
101 } 102 }
102 103
src/layouts/default/header/components/Breadcrumb.vue
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 import { defineComponent, ref, watchEffect } from 'vue'; 21 import { defineComponent, ref, watchEffect } from 'vue';
22 22
23 import { Breadcrumb } from 'ant-design-vue'; 23 import { Breadcrumb } from 'ant-design-vue';
24 - import { Icon } from '/@/components/Icon'; 24 + import Icon from '@/components/Icon/Icon.vue';
25 25
26 import { useDesign } from '/@/hooks/web/useDesign'; 26 import { useDesign } from '/@/hooks/web/useDesign';
27 import { useRootSetting } from '/@/hooks/setting/useRootSetting'; 27 import { useRootSetting } from '/@/hooks/setting/useRootSetting';
src/layouts/default/header/components/ErrorAction.vue
@@ -13,8 +13,7 @@ @@ -13,8 +13,7 @@
13 <script lang="ts"> 13 <script lang="ts">
14 import { defineComponent, computed } from 'vue'; 14 import { defineComponent, computed } from 'vue';
15 import { Tooltip, Badge } from 'ant-design-vue'; 15 import { Tooltip, Badge } from 'ant-design-vue';
16 - import { Icon } from '/@/components/Icon';  
17 - 16 + import Icon from '@/components/Icon/Icon.vue';
18 import { useI18n } from '/@/hooks/web/useI18n'; 17 import { useI18n } from '/@/hooks/web/useI18n';
19 import { useErrorLogStore } from '/@/store/modules/errorLog'; 18 import { useErrorLogStore } from '/@/store/modules/errorLog';
20 import { PageEnum } from '/@/enums/pageEnum'; 19 import { PageEnum } from '/@/enums/pageEnum';
src/layouts/default/header/components/user-dropdown/DropMenuItem.vue
@@ -10,8 +10,8 @@ @@ -10,8 +10,8 @@
10 import { Menu } from 'ant-design-vue'; 10 import { Menu } from 'ant-design-vue';
11 11
12 import { computed, defineComponent, getCurrentInstance } from 'vue'; 12 import { computed, defineComponent, getCurrentInstance } from 'vue';
  13 + import Icon from '@/components/Icon/Icon.vue';
13 14
14 - import { Icon } from '/@/components/Icon/index';  
15 import { propTypes } from '/@/utils/propTypes'; 15 import { propTypes } from '/@/utils/propTypes';
16 16
17 export default defineComponent({ 17 export default defineComponent({
src/layouts/default/setting/index.vue
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <script lang="ts"> 7 <script lang="ts">
8 import { defineComponent } from 'vue'; 8 import { defineComponent } from 'vue';
9 import SettingDrawer from './SettingDrawer'; 9 import SettingDrawer from './SettingDrawer';
10 - import { Icon } from '/@/components/Icon'; 10 + import Icon from '@/components/Icon/Icon.vue';
11 11
12 import { useDrawer } from '/@/components/Drawer'; 12 import { useDrawer } from '/@/components/Drawer';
13 13
src/layouts/default/sider/MixSider.vue
@@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
84 import type { RouteLocationNormalized } from 'vue-router'; 84 import type { RouteLocationNormalized } from 'vue-router';
85 import { ScrollContainer } from '/@/components/Container'; 85 import { ScrollContainer } from '/@/components/Container';
86 import { SimpleMenu, SimpleMenuTag } from '/@/components/SimpleMenu'; 86 import { SimpleMenu, SimpleMenuTag } from '/@/components/SimpleMenu';
87 - import { Icon } from '/@/components/Icon'; 87 + import Icon from '@/components/Icon/Icon.vue';
88 import { AppLogo } from '/@/components/Application'; 88 import { AppLogo } from '/@/components/Application';
89 import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; 89 import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
90 import { usePermissionStore } from '/@/store/modules/permission'; 90 import { usePermissionStore } from '/@/store/modules/permission';
src/layouts/default/tabs/components/FoldButton.vue
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 </template> 5 </template>
6 <script lang="ts"> 6 <script lang="ts">
7 import { defineComponent, unref, computed } from 'vue'; 7 import { defineComponent, unref, computed } from 'vue';
8 - import { Icon } from '/@/components/Icon'; 8 + import Icon from '@/components/Icon/Icon.vue';
9 9
10 import { useDesign } from '/@/hooks/web/useDesign'; 10 import { useDesign } from '/@/hooks/web/useDesign';
11 import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; 11 import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
src/layouts/default/tabs/components/TabContent.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 20
21 import { defineComponent, computed, unref } from 'vue'; 21 import { defineComponent, computed, unref } from 'vue';
22 import { Dropdown } from '/@/components/Dropdown/index'; 22 import { Dropdown } from '/@/components/Dropdown/index';
23 - import { Icon } from '/@/components/Icon'; 23 + import Icon from '@/components/Icon/Icon.vue';
24 24
25 import { TabContentProps } from '../types'; 25 import { TabContentProps } from '../types';
26 26
src/views/dashboard/analysis/components/GrowCard.vue
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 </template> 27 </template>
28 <script lang="ts" setup> 28 <script lang="ts" setup>
29 import { CountTo } from '/@/components/CountTo/index'; 29 import { CountTo } from '/@/components/CountTo/index';
30 - import { Icon } from '/@/components/Icon'; 30 + import Icon from '@/components/Icon/Icon.vue';
31 import { Tag, Card } from 'ant-design-vue'; 31 import { Tag, Card } from 'ant-design-vue';
32 import { growCardList } from '../data'; 32 import { growCardList } from '../data';
33 33
src/views/dashboard/workbench/components/DynamicInfo.vue
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 <script lang="ts" setup> 24 <script lang="ts" setup>
25 import { Card, List } from 'ant-design-vue'; 25 import { Card, List } from 'ant-design-vue';
26 import { dynamicInfoItems } from './data'; 26 import { dynamicInfoItems } from './data';
27 - import { Icon } from '/@/components/Icon'; 27 + import Icon from '@/components/Icon/Icon.vue';
28 28
29 const ListItem = List.Item; 29 const ListItem = List.Item;
30 const ListItemMeta = List.Item.Meta; 30 const ListItemMeta = List.Item.Meta;
src/views/dashboard/workbench/components/ProjectCard.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <script lang="ts"> 20 <script lang="ts">
21 import { defineComponent } from 'vue'; 21 import { defineComponent } from 'vue';
22 import { Card, CardGrid } from 'ant-design-vue'; 22 import { Card, CardGrid } from 'ant-design-vue';
23 - import { Icon } from '/@/components/Icon'; 23 + import Icon from '@/components/Icon/Icon.vue';
24 import { groupItems } from './data'; 24 import { groupItems } from './data';
25 25
26 export default defineComponent({ 26 export default defineComponent({
src/views/dashboard/workbench/components/QuickNav.vue
@@ -11,5 +11,5 @@ @@ -11,5 +11,5 @@
11 <script lang="ts" setup> 11 <script lang="ts" setup>
12 import { Card, CardGrid } from 'ant-design-vue'; 12 import { Card, CardGrid } from 'ant-design-vue';
13 import { navItems } from './data'; 13 import { navItems } from './data';
14 - import { Icon } from '/@/components/Icon'; 14 + import Icon from '@/components/Icon/Icon.vue';
15 </script> 15 </script>
src/views/demo/feat/icon/index.vue
@@ -64,7 +64,8 @@ @@ -64,7 +64,8 @@
64 CodepenCircleFilled, 64 CodepenCircleFilled,
65 } from '@ant-design/icons-vue'; 65 } from '@ant-design/icons-vue';
66 66
67 - import { Icon, IconPicker, SvgIcon } from '/@/components/Icon/index'; 67 + import { IconPicker, SvgIcon } from '/@/components/Icon/index';
  68 + import Icon from '/@/components/Icon/Icon.vue';
68 69
69 import { openWindow } from '/@/utils'; 70 import { openWindow } from '/@/utils';
70 import { PageWrapper } from '/@/components/Page'; 71 import { PageWrapper } from '/@/components/Page';
src/views/demo/page/account/center/Application.vue
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 <script lang="ts"> 30 <script lang="ts">
31 import { defineComponent } from 'vue'; 31 import { defineComponent } from 'vue';
32 import { List, Card, Row, Col } from 'ant-design-vue'; 32 import { List, Card, Row, Col } from 'ant-design-vue';
33 - import { Icon } from '/@/components/Icon/index'; 33 + import Icon from '@/components/Icon/Icon.vue';
34 import { applicationList } from './data'; 34 import { applicationList } from './data';
35 35
36 export default defineComponent({ 36 export default defineComponent({
src/views/demo/page/account/center/Article.vue
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 <script lang="ts"> 42 <script lang="ts">
43 import { defineComponent } from 'vue'; 43 import { defineComponent } from 'vue';
44 import { List, Tag } from 'ant-design-vue'; 44 import { List, Tag } from 'ant-design-vue';
45 - import { Icon } from '/@/components/Icon/index'; 45 + import Icon from '@/components/Icon/Icon.vue';
46 import { actions, articleList } from './data'; 46 import { actions, articleList } from './data';
47 47
48 export default defineComponent({ 48 export default defineComponent({
src/views/demo/page/account/center/index.vue
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
56 import { Tag, Tabs, Row, Col } from 'ant-design-vue'; 56 import { Tag, Tabs, Row, Col } from 'ant-design-vue';
57 import { defineComponent, computed } from 'vue'; 57 import { defineComponent, computed } from 'vue';
58 import { CollapseContainer } from '/@/components/Container/index'; 58 import { CollapseContainer } from '/@/components/Container/index';
59 - import { Icon } from '/@/components/Icon/index'; 59 + import Icon from '@/components/Icon/Icon.vue';
60 import Article from './Article.vue'; 60 import Article from './Article.vue';
61 import Application from './Application.vue'; 61 import Application from './Application.vue';
62 import Project from './Project.vue'; 62 import Project from './Project.vue';
src/views/demo/page/account/setting/AccountBind.vue
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 import { List } from 'ant-design-vue'; 26 import { List } from 'ant-design-vue';
27 import { defineComponent } from 'vue'; 27 import { defineComponent } from 'vue';
28 import { CollapseContainer } from '/@/components/Container/index'; 28 import { CollapseContainer } from '/@/components/Container/index';
29 - import { Icon } from '/@/components/Icon/index'; 29 + import Icon from '@/components/Icon/Icon.vue';
30 30
31 import { accountBindList } from './data'; 31 import { accountBindList } from './data';
32 32
src/views/demo/page/list/basic/index.vue
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <script lang="ts"> 53 <script lang="ts">
54 import { Progress, Row, Col, List } from 'ant-design-vue'; 54 import { Progress, Row, Col, List } from 'ant-design-vue';
55 import { defineComponent } from 'vue'; 55 import { defineComponent } from 'vue';
56 - import { Icon } from '/@/components/Icon/index'; 56 + import Icon from '@/components/Icon/Icon.vue';
57 import { cardList } from './data'; 57 import { cardList } from './data';
58 import { PageWrapper } from '/@/components/Page'; 58 import { PageWrapper } from '/@/components/Page';
59 59
src/views/demo/page/list/card/index.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 </template> 34 </template>
35 <script lang="ts"> 35 <script lang="ts">
36 import { defineComponent } from 'vue'; 36 import { defineComponent } from 'vue';
37 - import { Icon } from '/@/components/Icon/index'; 37 + import Icon from '@/components/Icon/Icon.vue';
38 import { cardList } from './data'; 38 import { cardList } from './data';
39 import { PageWrapper } from '/@/components/Page'; 39 import { PageWrapper } from '/@/components/Page';
40 import { Card, Row, Col, List } from 'ant-design-vue'; 40 import { Card, Row, Col, List } from 'ant-design-vue';
src/views/demo/page/list/search/index.vue
@@ -55,7 +55,7 @@ @@ -55,7 +55,7 @@
55 <script lang="ts"> 55 <script lang="ts">
56 import { Tag, List } from 'ant-design-vue'; 56 import { Tag, List } from 'ant-design-vue';
57 import { defineComponent } from 'vue'; 57 import { defineComponent } from 'vue';
58 - import { Icon } from '/@/components/Icon/index'; 58 + import Icon from '@/components/Icon/Icon.vue';
59 import { BasicForm } from '/@/components/Form/index'; 59 import { BasicForm } from '/@/components/Form/index';
60 import { actions, searchList, schemas } from './data'; 60 import { actions, searchList, schemas } from './data';
61 import { PageWrapper } from '/@/components/Page'; 61 import { PageWrapper } from '/@/components/Page';
src/views/demo/system/menu/menu.data.ts
1 import { BasicColumn, FormSchema } from '/@/components/Table'; 1 import { BasicColumn, FormSchema } from '/@/components/Table';
2 import { h } from 'vue'; 2 import { h } from 'vue';
3 import { Tag } from 'ant-design-vue'; 3 import { Tag } from 'ant-design-vue';
4 -import { Icon } from '/@/components/Icon'; 4 +import Icon from '@/components/Icon/Icon.vue';
5 5
6 export const columns: BasicColumn[] = [ 6 export const columns: BasicColumn[] = [
7 { 7 {
src/views/form-design/components/VFormDesign/components/FormNodeOperate.vue
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import { IVFormComponent } from '../../../typings/v-form-component'; 17 import { IVFormComponent } from '../../../typings/v-form-component';
18 import { remove } from '../../../utils'; 18 import { remove } from '../../../utils';
19 import { useFormDesignState } from '../../../hooks/useFormDesignState'; 19 import { useFormDesignState } from '../../../hooks/useFormDesignState';
20 - import { Icon } from '/@/components/Icon/index'; 20 + import Icon from '@/components/Icon/Icon.vue';
21 21
22 export default defineComponent({ 22 export default defineComponent({
23 name: 'FormNodeOperate', 23 name: 'FormNodeOperate',
src/views/form-design/components/VFormDesign/components/FormOptions.vue
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 import { remove } from '../../../utils'; 38 import { remove } from '../../../utils';
39 import message from '../../../utils/message'; 39 import message from '../../../utils/message';
40 import { Input } from 'ant-design-vue'; 40 import { Input } from 'ant-design-vue';
41 - import { Icon } from '/@/components/Icon/index'; 41 + import Icon from '@/components/Icon/Icon.vue';
42 42
43 export default defineComponent({ 43 export default defineComponent({
44 name: 'FormOptions', 44 name: 'FormOptions',
src/views/form-design/components/VFormDesign/components/RuleProps.vue
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 import { useFormDesignState } from '../../../hooks/useFormDesignState'; 38 import { useFormDesignState } from '../../../hooks/useFormDesignState';
39 import { isArray } from 'lodash-es'; 39 import { isArray } from 'lodash-es';
40 import { Form, FormItem, AutoComplete, Input } from 'ant-design-vue'; 40 import { Form, FormItem, AutoComplete, Input } from 'ant-design-vue';
41 - import { Icon } from '/@/components/Icon'; 41 + import Icon from '@/components/Icon/Icon.vue';
42 42
43 export default defineComponent({ 43 export default defineComponent({
44 name: 'RuleProps', 44 name: 'RuleProps',
src/views/form-design/components/VFormDesign/modules/CollapseItem.vue
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 import { defineComponent, reactive } from 'vue'; 34 import { defineComponent, reactive } from 'vue';
35 import { IVFormComponent } from '../../../typings/v-form-component'; 35 import { IVFormComponent } from '../../../typings/v-form-component';
36 import draggable from 'vuedraggable'; 36 import draggable from 'vuedraggable';
37 - import { Icon } from '/@/components/Icon'; 37 + import Icon from '@/components/Icon/Icon.vue';
38 import { useDesign } from '/@/hooks/web/useDesign'; 38 import { useDesign } from '/@/hooks/web/useDesign';
39 39
40 export default defineComponent({ 40 export default defineComponent({
src/views/form-design/components/VFormDesign/modules/Toolbar.vue
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 import { UseRefHistoryReturn } from '@vueuse/core'; 31 import { UseRefHistoryReturn } from '@vueuse/core';
32 import { IFormConfig } from '../../../typings/v-form-component'; 32 import { IFormConfig } from '../../../typings/v-form-component';
33 import { Tooltip, Divider } from 'ant-design-vue'; 33 import { Tooltip, Divider } from 'ant-design-vue';
34 - import { Icon } from '/@/components/Icon/index'; 34 + import Icon from '@/components/Icon/Icon.vue';
35 35
36 interface IToolbarsConfig { 36 interface IToolbarsConfig {
37 type: string; 37 type: string;
src/views/form-design/components/VFormItem/index.vue
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 import { handleAsyncOptions } from '../../utils'; 48 import { handleAsyncOptions } from '../../utils';
49 import { omit } from 'lodash-es'; 49 import { omit } from 'lodash-es';
50 import { Tooltip, FormItem, Divider, Col } from 'ant-design-vue'; 50 import { Tooltip, FormItem, Divider, Col } from 'ant-design-vue';
51 - import { Icon } from '/@/components/Icon'; 51 + import Icon from '@/components/Icon/Icon.vue';
52 import { useFormModelState } from '../../hooks/useFormDesignState'; 52 import { useFormModelState } from '../../hooks/useFormDesignState';
53 53
54 export default defineComponent({ 54 export default defineComponent({