@dt-frames/ui 1.0.12 → 1.0.16

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 (217) hide show
  1. package/es/components/curd/src/components/dialog.d.ts +27 -23
  2. package/es/components/curd/src/components/props.d.ts +6 -5
  3. package/es/components/curd/src/hooks/useCurd.d.ts +1 -0
  4. package/es/components/curd/src/types/curd.type.d.ts +4 -3
  5. package/es/components/forms/src/components/formButton.d.ts +1 -2
  6. package/es/components/forms/src/components/formIcon.d.ts +16 -11
  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 +2 -2
  12. package/es/components/modal/src/components/modal.d.ts +2 -2
  13. package/es/components/modal/src/components/modalFooter.d.ts +10 -5
  14. package/es/components/modal/src/index.d.ts +16 -11
  15. package/es/components/modal/src/props.d.ts +2 -1
  16. package/es/components/source/src/hooks/useFetch.d.ts +1 -1
  17. package/es/components/table/src/hooks/useTable.d.ts +2 -2
  18. package/es/components/table/src/index.d.ts +3 -3
  19. package/es/components/table/src/props.d.ts +1 -2
  20. package/es/components/table/src/types/table.type.d.ts +2 -2
  21. package/es/components/tree/src/props.d.ts +8 -1
  22. package/es/components/upload/index.d.ts +1 -2
  23. package/es/components/upload/src/helper.d.ts +1 -0
  24. package/es/components/upload/src/index.d.ts +13 -9
  25. package/es/components/upload/src/props.d.ts +4 -1
  26. package/es/components/upload/src/upload.d.ts +21 -9
  27. package/es/index.js +391 -232
  28. package/es/style/components/icons/index.less +1 -1
  29. package/es/style/components/upload/index.less +3 -11
  30. package/package.json +1 -10
  31. package/vite.config.js +10 -0
  32. package/src/assets/data/icons/actions.ts +0 -427
  33. package/src/assets/data/icons/code.ts +0 -10
  34. package/src/assets/data/icons/commuticate.ts +0 -190
  35. package/src/assets/data/icons/currency.ts +0 -46
  36. package/src/assets/data/icons/devices.ts +0 -128
  37. package/src/assets/data/icons/edit.ts +0 -165
  38. package/src/assets/data/icons/file.ts +0 -104
  39. package/src/assets/data/icons/math.ts +0 -53
  40. package/src/assets/data/icons/message.ts +0 -75
  41. package/src/assets/data/icons/navigate.ts +0 -181
  42. package/src/assets/data/icons/other.ts +0 -333
  43. package/src/assets/data/icons.ts +0 -58
  44. package/src/assets/imgs/header/avatar.png +0 -0
  45. package/src/assets/imgs/logo/logo.png +0 -0
  46. package/src/assets/locales/en_US.json +0 -3
  47. package/src/assets/locales/zh_CN.json +0 -3
  48. package/src/assets/style/index.less +0 -10
  49. package/src/assets/style/reset.less +0 -17
  50. package/src/components/container/index.less +0 -85
  51. package/src/components/container/index.ts +0 -8
  52. package/src/components/container/src/bar.ts +0 -107
  53. package/src/components/container/src/lazy-container.vue +0 -9
  54. package/src/components/container/src/scroll-bar.vue +0 -117
  55. package/src/components/container/src/scroll-container.vue +0 -61
  56. package/src/components/curd/index.ts +0 -5
  57. package/src/components/curd/src/components/dialog.vue +0 -74
  58. package/src/components/curd/src/components/props.ts +0 -32
  59. package/src/components/curd/src/hooks/useCurd.tsx +0 -87
  60. package/src/components/curd/src/types/curd.type.ts +0 -31
  61. package/src/components/excel/index.ts +0 -6
  62. package/src/components/excel/src/export2Excel.ts +0 -44
  63. package/src/components/forms/index.less +0 -107
  64. package/src/components/forms/index.ts +0 -11
  65. package/src/components/forms/src/componentMap.ts +0 -46
  66. package/src/components/forms/src/components/formButton.vue +0 -150
  67. package/src/components/forms/src/components/formIcon.vue +0 -51
  68. package/src/components/forms/src/components/formInputUseDialog.vue +0 -43
  69. package/src/components/forms/src/components/formItem.vue +0 -420
  70. package/src/components/forms/src/components/radioButton.vue +0 -58
  71. package/src/components/forms/src/const/form.const.ts +0 -7
  72. package/src/components/forms/src/hooks/helper.ts +0 -70
  73. package/src/components/forms/src/hooks/useForm.ts +0 -130
  74. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  75. package/src/components/forms/src/hooks/useFormEvents.ts +0 -248
  76. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  77. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  78. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  79. package/src/components/forms/src/index.vue +0 -310
  80. package/src/components/forms/src/prop.ts +0 -80
  81. package/src/components/forms/src/types/form.type.ts +0 -275
  82. package/src/components/icons/index.less +0 -101
  83. package/src/components/icons/index.ts +0 -7
  84. package/src/components/icons/src/pick-icon.vue +0 -119
  85. package/src/components/icons/src/svg-icon.vue +0 -117
  86. package/src/components/iframe/index.less +0 -3
  87. package/src/components/iframe/index.ts +0 -5
  88. package/src/components/iframe/src/index.less +0 -3
  89. package/src/components/iframe/src/index.vue +0 -38
  90. package/src/components/index.ts +0 -54
  91. package/src/components/modal/index.less +0 -60
  92. package/src/components/modal/index.ts +0 -8
  93. package/src/components/modal/src/components/close-icon.vue +0 -46
  94. package/src/components/modal/src/components/modal-wrap.vue +0 -128
  95. package/src/components/modal/src/components/modal.tsx +0 -30
  96. package/src/components/modal/src/components/modalFooter.vue +0 -38
  97. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  98. package/src/components/modal/src/hooks/useFullScreen.ts +0 -29
  99. package/src/components/modal/src/hooks/useModal.ts +0 -200
  100. package/src/components/modal/src/index.vue +0 -173
  101. package/src/components/modal/src/props.ts +0 -43
  102. package/src/components/modal/src/types/modal.type.ts +0 -30
  103. package/src/components/router/base-router.vue +0 -11
  104. package/src/components/router/index.ts +0 -3
  105. package/src/components/source/index.ts +0 -1
  106. package/src/components/source/src/hooks/useFetch.ts +0 -42
  107. package/src/components/source/src/hooks/usePage.ts +0 -3
  108. package/src/components/source/src/hooks/useSource.ts +0 -214
  109. package/src/components/source/src/index.ts +0 -5
  110. package/src/components/source/src/types/source.type.ts +0 -58
  111. package/src/components/source/src/types/table.type.ts +0 -8
  112. package/src/components/table/index.less +0 -179
  113. package/src/components/table/index.ts +0 -7
  114. package/src/components/table/src/components/TableActions.vue +0 -108
  115. package/src/components/table/src/components/TableHeader.vue +0 -78
  116. package/src/components/table/src/components/TableRender.vue +0 -76
  117. package/src/components/table/src/components/editable/CellComponent.ts +0 -57
  118. package/src/components/table/src/components/editable/EditTableCell.vue +0 -181
  119. package/src/components/table/src/components/editable/componentMap.ts +0 -18
  120. package/src/components/table/src/components/editable/index.ts +0 -58
  121. package/src/components/table/src/components/setting/Column.vue +0 -354
  122. package/src/components/table/src/components/setting/Download.vue +0 -55
  123. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  124. package/src/components/table/src/components/setting/Size.vue +0 -42
  125. package/src/components/table/src/components/setting/index.vue +0 -64
  126. package/src/components/table/src/const.ts +0 -13
  127. package/src/components/table/src/hooks/useColumns.ts +0 -326
  128. package/src/components/table/src/hooks/useCustomRow.ts +0 -86
  129. package/src/components/table/src/hooks/useDataSource.ts +0 -97
  130. package/src/components/table/src/hooks/useHeaderCode.ts +0 -89
  131. package/src/components/table/src/hooks/useLoading.ts +0 -29
  132. package/src/components/table/src/hooks/usePagination.ts +0 -76
  133. package/src/components/table/src/hooks/useRowSelection.ts +0 -145
  134. package/src/components/table/src/hooks/useRows.ts +0 -30
  135. package/src/components/table/src/hooks/useTable.ts +0 -90
  136. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  137. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  138. package/src/components/table/src/hooks/useTableScroll.ts +0 -229
  139. package/src/components/table/src/index.vue +0 -212
  140. package/src/components/table/src/props.ts +0 -160
  141. package/src/components/table/src/types/table.type.ts +0 -160
  142. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  143. package/src/components/tree/index.less +0 -41
  144. package/src/components/tree/index.ts +0 -5
  145. package/src/components/tree/src/components/TreeHeader.vue +0 -97
  146. package/src/components/tree/src/hooks/useTree.ts +0 -239
  147. package/src/components/tree/src/index.vue +0 -392
  148. package/src/components/tree/src/props.ts +0 -133
  149. package/src/components/tree/src/type/tree.ts +0 -105
  150. package/src/components/tree/src/utils/tree.ts +0 -73
  151. package/src/components/type.ts +0 -0
  152. package/src/components/upload/index.less +0 -43
  153. package/src/components/upload/index.ts +0 -7
  154. package/src/components/upload/src/helper.ts +0 -32
  155. package/src/components/upload/src/index.vue +0 -38
  156. package/src/components/upload/src/props.ts +0 -48
  157. package/src/components/upload/src/upload.vue +0 -166
  158. package/src/directives/icon.ts +0 -36
  159. package/src/directives/index.ts +0 -26
  160. package/src/directives/permission.ts +0 -20
  161. package/src/global.d.ts +0 -8
  162. package/src/index.ts +0 -4
  163. package/src/theme/content/index.vue +0 -37
  164. package/src/theme/feature/back-top.vue +0 -11
  165. package/src/theme/feature/index.vue +0 -7
  166. package/src/theme/footer/index.less +0 -16
  167. package/src/theme/footer/index.vue +0 -24
  168. package/src/theme/header/components/bread-crumb.vue +0 -26
  169. package/src/theme/header/components/fullscreen.vue +0 -12
  170. package/src/theme/header/components/handler.ts +0 -81
  171. package/src/theme/header/components/index.ts +0 -21
  172. package/src/theme/header/components/lang-picker.vue +0 -36
  173. package/src/theme/header/components/logo.vue +0 -35
  174. package/src/theme/header/components/menu-search.vue +0 -62
  175. package/src/theme/header/components/notify.vue +0 -22
  176. package/src/theme/header/components/setting-theme.vue +0 -123
  177. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  178. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  179. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  180. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  181. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  182. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  183. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  184. package/src/theme/header/components/trigger.vue +0 -14
  185. package/src/theme/header/components/user-info.vue +0 -60
  186. package/src/theme/header/const/index.ts +0 -40
  187. package/src/theme/header/helper/menu-tree.ts +0 -64
  188. package/src/theme/header/index.less +0 -442
  189. package/src/theme/header/index.ts +0 -0
  190. package/src/theme/header/index.vue +0 -96
  191. package/src/theme/header/multiple-header.vue +0 -67
  192. package/src/theme/header/set-theme.less +0 -68
  193. package/src/theme/index.ts +0 -3
  194. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  195. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  196. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  197. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  198. package/src/theme/sider/components/drag-bar.vue +0 -26
  199. package/src/theme/sider/components/layout-menu.vue +0 -132
  200. package/src/theme/sider/components/props.ts +0 -97
  201. package/src/theme/sider/components/sider-trigger.vue +0 -24
  202. package/src/theme/sider/helper/sider.ts +0 -52
  203. package/src/theme/sider/helper/split-menu.ts +0 -146
  204. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  205. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  206. package/src/theme/sider/index.less +0 -203
  207. package/src/theme/sider/index.vue +0 -88
  208. package/src/theme/tabs/components/TabContent.vue +0 -36
  209. package/src/theme/tabs/components/TabRedo.vue +0 -18
  210. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  211. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  212. package/src/theme/tabs/index.less +0 -165
  213. package/src/theme/tabs/index.vue +0 -98
  214. package/src/theme/tabs/types/tabs.type.ts +0 -8
  215. package/src/theme/theme.less +0 -67
  216. package/src/theme/theme.vue +0 -90
  217. 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
- }