@dt-frames/ui 1.0.13 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/es/components/curd/src/components/dialog.d.ts +20 -21
  2. package/es/components/curd/src/components/props.d.ts +2 -1
  3. package/es/components/curd/src/hooks/useCurd.d.ts +1 -0
  4. package/es/components/curd/src/types/curd.type.d.ts +2 -2
  5. package/es/components/forms/src/components/formButton.d.ts +1 -2
  6. package/es/components/forms/src/components/formIcon.d.ts +15 -15
  7. package/es/components/forms/src/hooks/helper.d.ts +2 -0
  8. package/es/components/forms/src/hooks/useFormActions.d.ts +2 -2
  9. package/es/components/forms/src/index.d.ts +2 -3
  10. package/es/components/forms/src/types/form.type.d.ts +3 -17
  11. package/es/components/index.d.ts +1 -1
  12. package/es/components/modal/src/components/modal.d.ts +2 -2
  13. package/es/components/modal/src/components/modalFooter.d.ts +1 -1
  14. package/es/components/modal/src/index.d.ts +15 -15
  15. package/es/components/modal/src/props.d.ts +1 -1
  16. package/es/components/source/src/hooks/useFetch.d.ts +1 -1
  17. package/es/components/table/src/components/editable/EditTableCell.d.ts +3 -0
  18. package/es/components/table/src/components/editable/index.d.ts +1 -1
  19. package/es/components/table/src/index.d.ts +6 -3
  20. package/es/components/table/src/props.d.ts +1 -2
  21. package/es/components/table/src/types/table.type.d.ts +2 -0
  22. package/es/components/tree/src/props.d.ts +8 -1
  23. package/es/components/upload/src/upload.d.ts +6 -3
  24. package/es/index.js +196 -39
  25. package/es/style/components/icons/index.less +1 -1
  26. package/es/style/components/table/index.less +4 -0
  27. package/package.json +1 -10
  28. package/vite.config.js +10 -0
  29. package/es/components/upload/src/index.d.ts +0 -2811
  30. package/src/assets/data/icons/actions.ts +0 -427
  31. package/src/assets/data/icons/code.ts +0 -10
  32. package/src/assets/data/icons/commuticate.ts +0 -190
  33. package/src/assets/data/icons/currency.ts +0 -46
  34. package/src/assets/data/icons/devices.ts +0 -128
  35. package/src/assets/data/icons/edit.ts +0 -165
  36. package/src/assets/data/icons/file.ts +0 -104
  37. package/src/assets/data/icons/math.ts +0 -53
  38. package/src/assets/data/icons/message.ts +0 -75
  39. package/src/assets/data/icons/navigate.ts +0 -181
  40. package/src/assets/data/icons/other.ts +0 -333
  41. package/src/assets/data/icons.ts +0 -58
  42. package/src/assets/imgs/header/avatar.png +0 -0
  43. package/src/assets/imgs/logo/logo.png +0 -0
  44. package/src/assets/locales/en_US.json +0 -3
  45. package/src/assets/locales/zh_CN.json +0 -3
  46. package/src/assets/style/index.less +0 -10
  47. package/src/assets/style/reset.less +0 -17
  48. package/src/components/container/index.less +0 -85
  49. package/src/components/container/index.ts +0 -8
  50. package/src/components/container/src/bar.ts +0 -107
  51. package/src/components/container/src/lazy-container.vue +0 -9
  52. package/src/components/container/src/scroll-bar.vue +0 -117
  53. package/src/components/container/src/scroll-container.vue +0 -61
  54. package/src/components/curd/index.ts +0 -5
  55. package/src/components/curd/src/components/dialog.vue +0 -73
  56. package/src/components/curd/src/components/props.ts +0 -32
  57. package/src/components/curd/src/hooks/useCurd.tsx +0 -87
  58. package/src/components/curd/src/types/curd.type.ts +0 -32
  59. package/src/components/excel/index.ts +0 -6
  60. package/src/components/excel/src/export2Excel.ts +0 -44
  61. package/src/components/forms/index.less +0 -107
  62. package/src/components/forms/index.ts +0 -11
  63. package/src/components/forms/src/componentMap.ts +0 -46
  64. package/src/components/forms/src/components/formButton.vue +0 -150
  65. package/src/components/forms/src/components/formIcon.vue +0 -51
  66. package/src/components/forms/src/components/formInputUseDialog.vue +0 -43
  67. package/src/components/forms/src/components/formItem.vue +0 -420
  68. package/src/components/forms/src/components/radioButton.vue +0 -58
  69. package/src/components/forms/src/const/form.const.ts +0 -7
  70. package/src/components/forms/src/hooks/helper.ts +0 -70
  71. package/src/components/forms/src/hooks/useForm.ts +0 -130
  72. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  73. package/src/components/forms/src/hooks/useFormEvents.ts +0 -248
  74. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  75. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  76. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  77. package/src/components/forms/src/index.vue +0 -310
  78. package/src/components/forms/src/prop.ts +0 -80
  79. package/src/components/forms/src/types/form.type.ts +0 -275
  80. package/src/components/icons/index.less +0 -101
  81. package/src/components/icons/index.ts +0 -7
  82. package/src/components/icons/src/pick-icon.vue +0 -119
  83. package/src/components/icons/src/svg-icon.vue +0 -117
  84. package/src/components/iframe/index.less +0 -3
  85. package/src/components/iframe/index.ts +0 -5
  86. package/src/components/iframe/src/index.less +0 -3
  87. package/src/components/iframe/src/index.vue +0 -38
  88. package/src/components/index.ts +0 -53
  89. package/src/components/modal/index.less +0 -60
  90. package/src/components/modal/index.ts +0 -8
  91. package/src/components/modal/src/components/close-icon.vue +0 -46
  92. package/src/components/modal/src/components/modal-wrap.vue +0 -128
  93. package/src/components/modal/src/components/modal.tsx +0 -30
  94. package/src/components/modal/src/components/modalFooter.vue +0 -46
  95. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  96. package/src/components/modal/src/hooks/useFullScreen.ts +0 -29
  97. package/src/components/modal/src/hooks/useModal.ts +0 -200
  98. package/src/components/modal/src/index.vue +0 -184
  99. package/src/components/modal/src/props.ts +0 -44
  100. package/src/components/modal/src/types/modal.type.ts +0 -30
  101. package/src/components/router/base-router.vue +0 -11
  102. package/src/components/router/index.ts +0 -3
  103. package/src/components/source/index.ts +0 -1
  104. package/src/components/source/src/hooks/useFetch.ts +0 -42
  105. package/src/components/source/src/hooks/usePage.ts +0 -3
  106. package/src/components/source/src/hooks/useSource.ts +0 -214
  107. package/src/components/source/src/index.ts +0 -5
  108. package/src/components/source/src/types/source.type.ts +0 -58
  109. package/src/components/source/src/types/table.type.ts +0 -8
  110. package/src/components/table/index.less +0 -179
  111. package/src/components/table/index.ts +0 -7
  112. package/src/components/table/src/components/TableActions.vue +0 -108
  113. package/src/components/table/src/components/TableHeader.vue +0 -78
  114. package/src/components/table/src/components/TableRender.vue +0 -76
  115. package/src/components/table/src/components/editable/CellComponent.ts +0 -57
  116. package/src/components/table/src/components/editable/EditTableCell.vue +0 -181
  117. package/src/components/table/src/components/editable/componentMap.ts +0 -18
  118. package/src/components/table/src/components/editable/index.ts +0 -58
  119. package/src/components/table/src/components/setting/Column.vue +0 -354
  120. package/src/components/table/src/components/setting/Download.vue +0 -55
  121. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  122. package/src/components/table/src/components/setting/Size.vue +0 -42
  123. package/src/components/table/src/components/setting/index.vue +0 -64
  124. package/src/components/table/src/const.ts +0 -13
  125. package/src/components/table/src/hooks/useColumns.ts +0 -326
  126. package/src/components/table/src/hooks/useCustomRow.ts +0 -86
  127. package/src/components/table/src/hooks/useDataSource.ts +0 -97
  128. package/src/components/table/src/hooks/useHeaderCode.ts +0 -89
  129. package/src/components/table/src/hooks/useLoading.ts +0 -29
  130. package/src/components/table/src/hooks/usePagination.ts +0 -76
  131. package/src/components/table/src/hooks/useRowSelection.ts +0 -145
  132. package/src/components/table/src/hooks/useRows.ts +0 -30
  133. package/src/components/table/src/hooks/useTable.ts +0 -90
  134. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  135. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  136. package/src/components/table/src/hooks/useTableScroll.ts +0 -229
  137. package/src/components/table/src/index.vue +0 -212
  138. package/src/components/table/src/props.ts +0 -160
  139. package/src/components/table/src/types/table.type.ts +0 -160
  140. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  141. package/src/components/tree/index.less +0 -41
  142. package/src/components/tree/index.ts +0 -5
  143. package/src/components/tree/src/components/TreeHeader.vue +0 -97
  144. package/src/components/tree/src/hooks/useTree.ts +0 -239
  145. package/src/components/tree/src/index.vue +0 -392
  146. package/src/components/tree/src/props.ts +0 -133
  147. package/src/components/tree/src/type/tree.ts +0 -105
  148. package/src/components/tree/src/utils/tree.ts +0 -73
  149. package/src/components/type.ts +0 -0
  150. package/src/components/upload/index.less +0 -35
  151. package/src/components/upload/index.ts +0 -5
  152. package/src/components/upload/src/helper.ts +0 -60
  153. package/src/components/upload/src/props.ts +0 -51
  154. package/src/components/upload/src/upload.vue +0 -191
  155. package/src/directives/icon.ts +0 -36
  156. package/src/directives/index.ts +0 -26
  157. package/src/directives/permission.ts +0 -20
  158. package/src/global.d.ts +0 -8
  159. package/src/index.ts +0 -4
  160. package/src/theme/content/index.vue +0 -37
  161. package/src/theme/feature/back-top.vue +0 -11
  162. package/src/theme/feature/index.vue +0 -7
  163. package/src/theme/footer/index.less +0 -16
  164. package/src/theme/footer/index.vue +0 -24
  165. package/src/theme/header/components/bread-crumb.vue +0 -26
  166. package/src/theme/header/components/fullscreen.vue +0 -12
  167. package/src/theme/header/components/handler.ts +0 -81
  168. package/src/theme/header/components/index.ts +0 -21
  169. package/src/theme/header/components/lang-picker.vue +0 -36
  170. package/src/theme/header/components/logo.vue +0 -35
  171. package/src/theme/header/components/menu-search.vue +0 -62
  172. package/src/theme/header/components/notify.vue +0 -22
  173. package/src/theme/header/components/setting-theme.vue +0 -123
  174. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  175. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  176. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  177. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  178. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  179. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  180. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  181. package/src/theme/header/components/trigger.vue +0 -14
  182. package/src/theme/header/components/user-info.vue +0 -60
  183. package/src/theme/header/const/index.ts +0 -40
  184. package/src/theme/header/helper/menu-tree.ts +0 -64
  185. package/src/theme/header/index.less +0 -442
  186. package/src/theme/header/index.ts +0 -0
  187. package/src/theme/header/index.vue +0 -96
  188. package/src/theme/header/multiple-header.vue +0 -67
  189. package/src/theme/header/set-theme.less +0 -68
  190. package/src/theme/index.ts +0 -3
  191. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  192. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  193. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  194. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  195. package/src/theme/sider/components/drag-bar.vue +0 -26
  196. package/src/theme/sider/components/layout-menu.vue +0 -132
  197. package/src/theme/sider/components/props.ts +0 -97
  198. package/src/theme/sider/components/sider-trigger.vue +0 -24
  199. package/src/theme/sider/helper/sider.ts +0 -52
  200. package/src/theme/sider/helper/split-menu.ts +0 -146
  201. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  202. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  203. package/src/theme/sider/index.less +0 -203
  204. package/src/theme/sider/index.vue +0 -88
  205. package/src/theme/tabs/components/TabContent.vue +0 -36
  206. package/src/theme/tabs/components/TabRedo.vue +0 -18
  207. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  208. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  209. package/src/theme/tabs/index.less +0 -165
  210. package/src/theme/tabs/index.vue +0 -98
  211. package/src/theme/tabs/types/tabs.type.ts +0 -8
  212. package/src/theme/theme.less +0 -67
  213. package/src/theme/theme.vue +0 -90
  214. package/src/theme/transition.less +0 -99
@@ -1,122 +0,0 @@
1
- <template>
2
- <Menu
3
- :theme="theme"
4
- :selectedKeys="menuState.selectedKeys"
5
- :defaultSelectedKeys="menuState.defaultSelectedKeys"
6
- :openKeys="menuState.openKeys"
7
- :inlineIndent="inlineIndent"
8
- :subMenuOpenDelay="0.2"
9
- :mode="mode"
10
- collapsible
11
- @click="handleMenuClick"
12
- @open-change="handleOpenChange"
13
- :collapsed="getInlineCollapsed"
14
- >
15
- <template v-for="item in items" :key="item.id">
16
- <BasicSubMenuItem :item="item" :theme="theme" :isHorizontal="isHorizontal" />
17
- </template>
18
- </Menu>
19
- </template>
20
-
21
- <script setup lang="ts">
22
- import { isFunction, MenuMode, useMenu } from '@dt-frames/core';
23
- import { Menu } from 'ant-design-vue';
24
- import { computed, ref, unref, VNodeChild, watch, reactive, toRefs } from 'vue';
25
- import { useRouter } from 'vue-router';
26
- import { getBreadCrumb } from '../../../header/helper/menu-tree';
27
- import { BasicMenu } from '../props';
28
- import BasicSubMenuItem from './basic-sub-menu-item.vue'
29
- import { MenuState, useOpenKeys } from '../../hooks/useOpenKeys'
30
-
31
- type MenuInfo = {
32
- key: string;
33
- keyPath: string[]
34
- item: VNodeChild
35
- }
36
-
37
- const {
38
- theme,
39
- items,
40
- mode,
41
- type,
42
- isHorizontal,
43
- inlineIndent,
44
- mixSider,
45
- beforeClickFn
46
- } = defineProps( BasicMenu );
47
-
48
- const { getSplit } = useMenu()
49
-
50
- const { currentRoute } = useRouter();
51
-
52
- const menuState = reactive<MenuState>({
53
- defaultSelectedKeys: [],
54
- openKeys: [],
55
- selectedKeys: [],
56
- collapsedOpenKeys: []
57
- })
58
-
59
- const { handleOpenChange, setOpenKeys, getOpenKeys } = useOpenKeys(
60
- menuState,
61
- items,
62
- type
63
- )
64
-
65
- watch(
66
- () => currentRoute.value.path,
67
- (val) => {
68
- if( val === '/' ) return;
69
- handleMenuChange(val)
70
- },
71
- {
72
- immediate: true
73
- }
74
- )
75
-
76
- async function handleMenuChange(path) {
77
- // 设置展开的节点
78
- setOpenKeys(path)
79
-
80
- // 定义选中的节点
81
- if (isHorizontal && unref(getSplit)) {
82
- console.log(items, path)
83
- const parentPath = await getBreadCrumb(path, items);
84
- // console.log(parentPath, '-------------', route)
85
- // menuState.selectedKeys = [parentPath];
86
- } else {
87
- const parentPaths = await getBreadCrumb(path);
88
-
89
- menuState.selectedKeys = parentPaths.reduce( (keys, it) => {
90
- it.url && keys.push( it.url )
91
- return keys
92
- }, [] )
93
- }
94
-
95
- }
96
-
97
-
98
- const emits = defineEmits(['menuClick'])
99
-
100
- const { getCollapsed } = useMenu();
101
- const getInlineCollapsed = computed( () => {
102
- const isInline = unref(mode) === MenuMode.INLINE;
103
-
104
- if (isInline) {
105
- return mixSider ? false : unref(getCollapsed);
106
- }
107
-
108
- return false;
109
-
110
- } )
111
-
112
- async function handleMenuClick(item: MenuInfo) {
113
- if (beforeClickFn && isFunction(beforeClickFn)) {
114
- const flag = await beforeClickFn(item.key);
115
- if (!flag) return;
116
- }
117
-
118
- emits('menuClick', item.key);
119
-
120
- menuState.selectedKeys = [item.key];
121
- }
122
- </script>
@@ -1,46 +0,0 @@
1
- <template>
2
- <!-- 没有子节点 -->
3
- <BasicMenuItem v-if="!menuHasChildren(item) && getShowMenu" v-bind="props"/>
4
-
5
- <!-- 有子节点 -->
6
- <SubMenu
7
- v-if="menuHasChildren(item) && getShowMenu"
8
- :class="[ theme ]"
9
- :key="item.id"
10
- popupClassName="app-top-menu-popup"
11
- >
12
- <template #title>
13
- <MenuItemContent
14
- v-bind="props"
15
- :item="item" />
16
- </template>
17
-
18
- <template v-for="childrenItem in item.children" :key="childrenItem.id">
19
- <BasicSubMenuItem v-bind="props" :item="childrenItem" />
20
- </template>
21
- </SubMenu>
22
- </template>
23
-
24
- <script setup lang="ts">
25
- import { SubMenu } from 'ant-design-vue';
26
- import { useMenu } from '@dt-frames/core';
27
- import BasicMenuItem from './basic-menu-item.vue';
28
- import MenuItemContent from './menu-item-content.vue';
29
- import { ItemProp } from '../props';
30
-
31
-
32
- const { getShowMenu } = useMenu();
33
-
34
- const props = defineProps(ItemProp);
35
- const {
36
- theme,
37
- item,
38
- showTitle,
39
- isHorizontal
40
- } = props;
41
-
42
-
43
- const menuHasChildren = ( menu: any ) => {
44
- return !!menu.children && menu.children.length > 0;
45
- }
46
- </script>
@@ -1,13 +0,0 @@
1
- <template>
2
- <span class="dt-basic-menu-item-content-flex items-center dt-menu-item">
3
- <span class="menu-icon" v-icon="item.icon" :fontSize="16"></span>
4
- {{ item.label }}
5
- </span>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { contentProps } from "../props";
10
-
11
- const props = defineProps( contentProps );
12
-
13
- </script>
@@ -1,26 +0,0 @@
1
- <template>
2
- <div :class="getClass" :style="getDragBarStyle"></div>
3
- </template>
4
-
5
- <script lang="ts" setup>
6
- import { computed, unref } from 'vue'
7
- import { useMenu } from '@dt-frames/core';
8
-
9
- const { getMiniWidthNumber, getCollapsed, getCanDrag } = useMenu()
10
-
11
- const getDragBarStyle = computed(() => {
12
- if( unref(getCollapsed) ) {
13
- return { left: `${unref(getMiniWidthNumber)}px` }
14
- }
15
- return {}
16
- })
17
-
18
- const getClass = computed(() => {
19
- return [
20
- 'dt-darg-bar',
21
- {
22
- 'dt-darg-bar--hide': !unref(getCanDrag)
23
- }
24
- ]
25
- })
26
- </script>
@@ -1,132 +0,0 @@
1
-
2
-
3
- <script lang="tsx">
4
- import { computed, defineComponent, toRef, unref } from "vue"
5
- import { isUrl, MenuSplitTye, useMenu, useTheme, openWindow, useGo } from "@dt-frames/core"
6
- import { useSplitMenu } from "../helper/split-menu"
7
- import { DtLogo } from "../../header/components";
8
- import BasicMenu from './basic-menu/basic-menu.vue'
9
- import { ScrollContainer } from "../../../components/container";
10
-
11
-
12
- export default defineComponent({
13
- name: 'LayoutMenu',
14
-
15
- props: {
16
- theme: String,
17
- splitType: {
18
- type: Number,
19
- default: MenuSplitTye.NONE,
20
- },
21
- isHorizontal: Boolean,
22
- menuMode: String
23
- },
24
-
25
- setup(props) {
26
- const {
27
- getMenuType,
28
- getMenuMode,
29
- getMenuTheme,
30
- getCollapsed,
31
- getCollapsedShowTitle,
32
- getIsHorizontal,
33
- getIsSidebarType,
34
- getSplit
35
- } = useMenu();
36
-
37
- const { getShowLogo } = useTheme();
38
-
39
- const { menusRef } = useSplitMenu( toRef(props, 'splitType') );
40
-
41
- // 菜单的相关属性
42
- const getComputedTheme = computed( () => props.theme || unref( getMenuTheme ) );
43
- const getComputedMenuMode = computed(() => props.menuMode || unref(getMenuMode) );
44
- const getIsShowLogo = computed(() => unref(getShowLogo) && unref(getIsSidebarType));
45
-
46
- const getUseScroll = computed(() => {
47
- return (
48
- !unref(getIsHorizontal) &&
49
- (unref(getIsSidebarType) ||
50
- props.splitType === MenuSplitTye.LEFT ||
51
- props.splitType === MenuSplitTye.NONE)
52
- );
53
- });
54
-
55
- const getLogoClass = computed(() => [ `dt-menu-logo`, unref(getComputedTheme) ]);
56
-
57
- const getMenuProps = computed( () => {
58
- const menus = unref( menusRef );
59
-
60
- return {
61
- menus,
62
- beforeClickFn: beforeMenuClickFn,
63
- items: menus,
64
- theme: unref( getComputedTheme ),
65
- collapse: unref( getCollapsed ),
66
- collapsedShowTitle: unref( getCollapsedShowTitle ),
67
- onMenuClick: handleMenuClick,
68
- }
69
- } );
70
-
71
- // 跳转到指定页面
72
- const go = useGo();
73
-
74
- // 跳转之前需要做检测,部分系统需要跳转到第三方系统
75
- function beforeMenuClickFn( path: string ) {
76
- if (!isUrl(path)) {
77
- return true;
78
- }
79
-
80
- openWindow(path);
81
- return false;
82
- }
83
-
84
- // 按钮点击事件
85
- function handleMenuClick( path: string ) {
86
- go(path);
87
- }
88
-
89
-
90
- function renderHeader() {
91
- if( !unref(getIsShowLogo) ) return null;
92
-
93
- return (
94
- <DtLogo
95
- showTitle={!unref(getCollapsed)}
96
- class={unref(getLogoClass)}
97
- theme={unref(getComputedTheme) as string}
98
- />
99
- )
100
- }
101
-
102
- function renderMenu( ) {
103
- const { menus, ...menuProps } = unref( getMenuProps );
104
-
105
- if (!menus || !menus.length) return null;
106
-
107
- return <BasicMenu
108
- {...(menuProps as any)}
109
- isHorizontal={props.isHorizontal}
110
- type={unref(getMenuType)}
111
- showLogo={unref(getIsShowLogo)}
112
- mode={unref(getComputedMenuMode as any)}
113
- items={menus}
114
- ></BasicMenu>
115
- }
116
-
117
- return () => {
118
- return (
119
- <>
120
- { (renderHeader()) }
121
- {unref(getUseScroll) ? (
122
- <ScrollContainer>{() => renderMenu()}</ScrollContainer>
123
- ) : (
124
- renderMenu()
125
- )}
126
- </>
127
- )
128
- }
129
-
130
- }
131
- })
132
- </script>
@@ -1,97 +0,0 @@
1
-
2
- import { MenuTheme } from "ant-design-vue";
3
- import { PropType } from "vue";
4
- import { MenuMode, Menus, MenuType, Theme } from "@dt-frames/core";
5
-
6
- export const BasicMenu = {
7
- // 菜单
8
- items: {
9
- type: Array as PropType<Menus[]>
10
- },
11
-
12
- // 折叠是否显示标题
13
- collapsedShowTitle: Boolean,
14
-
15
- inlineIndent: {
16
- default: 20
17
- },
18
-
19
- // 菜单组件的mode属性
20
- mode: {
21
- type: String as PropType<MenuMode>,
22
- default: MenuMode.INLINE
23
- },
24
-
25
- // 菜单类型
26
- type: {
27
- type: String,
28
- default: MenuType.SIDE
29
- },
30
-
31
- // 主题
32
- theme: {
33
- default: Theme.DARK,
34
- },
35
-
36
- inlineCollapsed: Boolean,
37
-
38
- isHorizontal: Boolean,
39
-
40
- beforeClickFn: {
41
- type: Function
42
- },
43
-
44
- mixSider: Boolean
45
- }
46
-
47
- export const ItemProp = {
48
- item: {
49
- type: Object,
50
- default: {}
51
- },
52
-
53
- theme: {
54
- type: String as PropType<MenuTheme>,
55
- default: Theme.DARK
56
- },
57
-
58
- isHorizontal: Boolean,
59
-
60
- showTitle: Boolean,
61
-
62
- beforeClickFn: {
63
- type: Function
64
- }
65
- }
66
-
67
- export const contentProps = {
68
- item: {
69
- type: Object,
70
- default: {},
71
- },
72
-
73
- showTitle: Boolean,
74
-
75
- level: Number,
76
-
77
- isHorizontal: Boolean
78
- };
79
-
80
- export const SimpleMenu = {
81
- // 菜单
82
- items: {
83
- type: Array as PropType<MenuType[]>,
84
- default: (): any[] => []
85
- },
86
-
87
- collapse: Boolean,
88
- mixSider: Boolean,
89
- theme: {
90
- default: Theme.DARK
91
- },
92
- collapsedShowTitle: Boolean,
93
- beforeClickFn: {
94
- type: Function
95
- },
96
- isSplitMenu: Boolean
97
- }
@@ -1,24 +0,0 @@
1
- <template>
2
- <div @click.stop="toggleCollapsed">
3
- <DtIcon icon-class="ant-design:double-right-outlined" v-if="getCollapsed" />
4
- <DtIcon icon-class="ant-design:double-left-outlined" v-else />
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { useMenu } from '@dt-frames/core';
10
- import { DtIcon } from '../../../components';
11
-
12
-
13
- const { getCollapsed, toggleCollapsed } = useMenu();
14
-
15
- const props = defineProps({
16
- type: {
17
- type: String,
18
- default: null
19
- }
20
- })
21
-
22
-
23
-
24
- </script>
@@ -1,52 +0,0 @@
1
- /**
2
- * 这是layout-sider相关的业务处理
3
- * 函数命名已use开头
4
- */
5
-
6
- import { MenuTriggerPos, useMenu } from "@dt-frames/core";
7
- import { computed, h, ref, unref } from "vue";
8
- import Trigger from '../components/sider-trigger.vue'
9
-
10
-
11
- // 菜单展开折叠切换
12
- export function useMenuSwitch() {
13
- const brokenRef = ref( false );
14
-
15
- const { getMiniWidthNumber } = useMenu();
16
-
17
- const getCollapsedWidth = computed( () => {
18
- return unref( brokenRef ) ? 0 : unref( getMiniWidthNumber );
19
- } );
20
-
21
- function onBreakPointChange( broken: boolean ) {
22
- brokenRef.value = broken;
23
- }
24
-
25
- return { getCollapsedWidth, onBreakPointChange };
26
- }
27
-
28
-
29
- // 处理菜单展开折叠按钮
30
- export function useTrigger() {
31
- const { getTrigger, getSplit } = useMenu();
32
-
33
- const getShowTrigger = computed(() => {
34
- const trigger = unref(getTrigger) as unknown as String;
35
-
36
- return trigger && unref( getSplit )
37
- });
38
-
39
- const getTriggerAttr = computed(() => {
40
- if( unref(getShowTrigger) ) {
41
- return { }
42
- }
43
-
44
- return {
45
- trigger: null
46
- }
47
- });
48
-
49
- return { getTriggerAttr, getShowTrigger };
50
- }
51
-
52
-
@@ -1,146 +0,0 @@
1
- /** ======================================================
2
- * 菜单分割管理
3
- * ======================================================*/
4
-
5
- import { ref, computed, unref, watch, Ref } from "vue";
6
- import { useRouter } from "vue-router";
7
- import { useThrottleFn } from '@vueuse/core';
8
- import { CacheKey, DtCache, Menus, MenuSplitTye, useAuthStore, useMenu } from "@dt-frames/core";
9
-
10
- type MenusMap = {
11
- parentPath?: string,
12
- children?: MenusMap[] | undefined,
13
- includesPath?: string[]
14
- }
15
-
16
- export function useSplitMenu( splitType: Ref<MenuSplitTye> ) {
17
- const menusRef = ref<MenusMap[]>([]);
18
- const { currentRoute } = useRouter();
19
-
20
-
21
- const { getIsHorizontal, getSplit } = useMenu();
22
-
23
- const throttleHandleSplitLeftMenu = useThrottleFn(handleSplitLeftMenu, 50);
24
-
25
- const splitNotLeft = computed(
26
- () => unref(splitType) !== MenuSplitTye.LEFT && !unref(getIsHorizontal),
27
- );
28
-
29
- const getSplitLeft = computed(
30
- () => !unref( getSplit ) || unref(splitType) !== MenuSplitTye.LEFT
31
- );
32
-
33
- const getSplitTop = computed(
34
- () => unref( splitType ) === MenuSplitTye.TOP
35
- );
36
-
37
- const normalType = computed(
38
- () => !unref( getSplit ) || unref(splitType) === MenuSplitTye.NONE
39
- );
40
-
41
- watch(
42
- [() => (unref(currentRoute) as any).path, () => unref(splitType)],
43
- async ([path]) => {
44
- if (unref(splitNotLeft)) return;
45
-
46
- throttleHandleSplitLeftMenu(path);
47
- },
48
- {
49
- immediate: true,
50
- },
51
- )
52
-
53
- watch(
54
- () => getSplit.value,
55
- () => {
56
- if (unref(splitNotLeft)) return;
57
- getMenus();
58
- },
59
- );
60
-
61
- async function handleSplitLeftMenu(path: string) {
62
- if (unref(getSplitLeft)) return;
63
- const { menusMap } = await getMenusMap();
64
-
65
- menusRef.value = menusMap.filter( it => it.includesPath.includes(path) )[0]?.children
66
- }
67
-
68
- async function getMenus() {
69
- if (unref(normalType)) {
70
- menusRef.value = DtCache.getLocal(CacheKey.MENUS)?.children
71
- return;
72
- }
73
-
74
- if (unref(getSplitTop)) {
75
- const shallowMenus = await getShallowMenus();
76
-
77
- menusRef.value = shallowMenus;
78
- return;
79
- }
80
- }
81
-
82
- getMenus();
83
-
84
- return { menusRef };
85
- }
86
-
87
-
88
- async function getMenus() { return DtCache.getLocal(CacheKey.MENUS)?.children }
89
-
90
- function getFirstMenuPath(item: Menus) {
91
- let isFind = false, path = ''
92
-
93
- const getPath = (menu: Menus) => {
94
- if( isFind ) return
95
-
96
- if( menu.children && menu.children.length ) {
97
- menu.children.forEach( node => getPath( node ) )
98
- } else {
99
- path = menu.url
100
- isFind = true
101
- }
102
- }
103
-
104
- getPath(item)
105
-
106
- return path
107
- }
108
-
109
- // 获取菜单地图
110
- async function getMenusMap() {
111
- const menus = await getMenus();
112
- const menusMap: MenusMap[] = [];
113
-
114
- const getPaths = ( menu: Menus, path: string[] ) => {
115
- if( menu.children && menu.children.length ) {
116
- menu.children.forEach( node => getPaths( node, path ) )
117
- } else {
118
- path.push( menu.url )
119
- }
120
-
121
- return path;
122
- }
123
-
124
- menus.map((item: Menus) => {
125
- item.url = getFirstMenuPath(item);
126
-
127
- menusMap.push({
128
- parentPath: item.url,
129
- children: item.children || [],
130
- includesPath: getPaths( item, [] )
131
- })
132
- });
133
-
134
- return { menusMap };
135
- }
136
-
137
-
138
- export async function getShallowMenus() {
139
- const menus = await getMenus();
140
-
141
- const shallowMenuList = menus.map((item: Menus) => {
142
- item.url = getFirstMenuPath(item);
143
- return { ...item, children: undefined } as any
144
- });
145
- return shallowMenuList;
146
- }