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