@dt-frames/ui 1.0.0 → 1.0.1

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 (165) hide show
  1. package/package.json +1 -10
  2. package/src/assets/data/icons/actions.ts +0 -427
  3. package/src/assets/data/icons/code.ts +0 -10
  4. package/src/assets/data/icons/commuticate.ts +0 -190
  5. package/src/assets/data/icons/currency.ts +0 -46
  6. package/src/assets/data/icons/devices.ts +0 -128
  7. package/src/assets/data/icons/edit.ts +0 -165
  8. package/src/assets/data/icons/file.ts +0 -104
  9. package/src/assets/data/icons/math.ts +0 -53
  10. package/src/assets/data/icons/message.ts +0 -75
  11. package/src/assets/data/icons/navigate.ts +0 -181
  12. package/src/assets/data/icons/other.ts +0 -333
  13. package/src/assets/data/icons.ts +0 -58
  14. package/src/assets/imgs/logo/logo.png +0 -0
  15. package/src/assets/locales/en_US.json +0 -3
  16. package/src/assets/locales/zh_CN.json +0 -3
  17. package/src/assets/style/index.less +0 -10
  18. package/src/assets/style/reset.less +0 -20
  19. package/src/components/container/index.less +0 -85
  20. package/src/components/container/index.ts +0 -8
  21. package/src/components/container/src/bar.ts +0 -107
  22. package/src/components/container/src/lazy-container.vue +0 -9
  23. package/src/components/container/src/scroll-bar.vue +0 -117
  24. package/src/components/container/src/scroll-container.vue +0 -61
  25. package/src/components/curd/index.ts +0 -5
  26. package/src/components/curd/src/components/dialog.vue +0 -65
  27. package/src/components/curd/src/components/props.ts +0 -32
  28. package/src/components/curd/src/hooks/useCurd.tsx +0 -72
  29. package/src/components/curd/src/types/curd.type.ts +0 -29
  30. package/src/components/excel/index.ts +0 -6
  31. package/src/components/excel/src/export2Excel.ts +0 -44
  32. package/src/components/forms/index.ts +0 -12
  33. package/src/components/forms/src/componentMap.ts +0 -44
  34. package/src/components/forms/src/components/formButton.vue +0 -150
  35. package/src/components/forms/src/components/formIcon.vue +0 -50
  36. package/src/components/forms/src/components/formItem.vue +0 -407
  37. package/src/components/forms/src/components/radioButton.vue +0 -58
  38. package/src/components/forms/src/const/form.const.ts +0 -7
  39. package/src/components/forms/src/hooks/helper.ts +0 -70
  40. package/src/components/forms/src/hooks/useForm.ts +0 -130
  41. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  42. package/src/components/forms/src/hooks/useFormEvents.ts +0 -247
  43. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  44. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  45. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  46. package/src/components/forms/src/index.less +0 -82
  47. package/src/components/forms/src/index.vue +0 -306
  48. package/src/components/forms/src/prop.ts +0 -80
  49. package/src/components/forms/src/types/form.type.ts +0 -269
  50. package/src/components/icons/index.ts +0 -7
  51. package/src/components/icons/src/index.less +0 -96
  52. package/src/components/icons/src/pick-icon.vue +0 -117
  53. package/src/components/icons/src/svg-icon.vue +0 -117
  54. package/src/components/iframe/index.ts +0 -5
  55. package/src/components/iframe/src/index.less +0 -3
  56. package/src/components/iframe/src/index.vue +0 -38
  57. package/src/components/index.ts +0 -46
  58. package/src/components/modal/index.ts +0 -8
  59. package/src/components/modal/src/components/close-icon.vue +0 -47
  60. package/src/components/modal/src/components/modal-wrap.vue +0 -118
  61. package/src/components/modal/src/components/modal.tsx +0 -30
  62. package/src/components/modal/src/components/modalFooter.vue +0 -38
  63. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  64. package/src/components/modal/src/hooks/useFullScreen.ts +0 -27
  65. package/src/components/modal/src/hooks/useModal.ts +0 -177
  66. package/src/components/modal/src/index.less +0 -60
  67. package/src/components/modal/src/index.vue +0 -173
  68. package/src/components/modal/src/props.ts +0 -43
  69. package/src/components/modal/src/types/modal.type.ts +0 -27
  70. package/src/components/router/base-router.vue +0 -11
  71. package/src/components/router/index.ts +0 -3
  72. package/src/components/source/index.ts +0 -1
  73. package/src/components/source/src/hooks/useFetch.ts +0 -70
  74. package/src/components/source/src/hooks/usePage.ts +0 -3
  75. package/src/components/source/src/hooks/useSource.ts +0 -178
  76. package/src/components/source/src/index.ts +0 -5
  77. package/src/components/source/src/types/source.type.ts +0 -68
  78. package/src/components/source/src/types/table.type.ts +0 -8
  79. package/src/components/table/index.ts +0 -7
  80. package/src/components/table/src/components/TableActions.vue +0 -108
  81. package/src/components/table/src/components/TableHeader.vue +0 -77
  82. package/src/components/table/src/components/TableRender.vue +0 -76
  83. package/src/components/table/src/components/setting/Column.vue +0 -355
  84. package/src/components/table/src/components/setting/Download.vue +0 -55
  85. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  86. package/src/components/table/src/components/setting/Size.vue +0 -42
  87. package/src/components/table/src/components/setting/index.vue +0 -64
  88. package/src/components/table/src/const.ts +0 -13
  89. package/src/components/table/src/hooks/useColumns.ts +0 -319
  90. package/src/components/table/src/hooks/useCustomRow.ts +0 -0
  91. package/src/components/table/src/hooks/useDataSource.ts +0 -99
  92. package/src/components/table/src/hooks/useLoading.ts +0 -29
  93. package/src/components/table/src/hooks/usePagination.ts +0 -76
  94. package/src/components/table/src/hooks/useRowSelection.ts +0 -146
  95. package/src/components/table/src/hooks/useRows.ts +0 -30
  96. package/src/components/table/src/hooks/useTable.ts +0 -77
  97. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  98. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  99. package/src/components/table/src/hooks/useTableScroll.ts +0 -227
  100. package/src/components/table/src/index.less +0 -162
  101. package/src/components/table/src/index.vue +0 -198
  102. package/src/components/table/src/props.ts +0 -152
  103. package/src/components/table/src/types/table.type.ts +0 -133
  104. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  105. package/src/components/type.ts +0 -0
  106. package/src/directives/icon.ts +0 -36
  107. package/src/directives/index.ts +0 -26
  108. package/src/directives/permission.ts +0 -21
  109. package/src/global.d.ts +0 -8
  110. package/src/index.ts +0 -4
  111. package/src/theme/content/index.vue +0 -37
  112. package/src/theme/feature/back-top.vue +0 -11
  113. package/src/theme/feature/index.vue +0 -7
  114. package/src/theme/footer/index.less +0 -16
  115. package/src/theme/footer/index.vue +0 -24
  116. package/src/theme/header/components/bread-crumb.vue +0 -26
  117. package/src/theme/header/components/fullscreen.vue +0 -14
  118. package/src/theme/header/components/handler.ts +0 -81
  119. package/src/theme/header/components/index.ts +0 -21
  120. package/src/theme/header/components/lang-picker.vue +0 -36
  121. package/src/theme/header/components/logo.vue +0 -33
  122. package/src/theme/header/components/menu-search.vue +0 -62
  123. package/src/theme/header/components/notify.vue +0 -23
  124. package/src/theme/header/components/setting-theme.vue +0 -123
  125. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  126. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  127. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  128. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  129. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  130. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  131. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  132. package/src/theme/header/components/trigger.vue +0 -14
  133. package/src/theme/header/components/user-info.vue +0 -43
  134. package/src/theme/header/const/index.ts +0 -40
  135. package/src/theme/header/helper/menu-tree.ts +0 -67
  136. package/src/theme/header/index.less +0 -438
  137. package/src/theme/header/index.ts +0 -0
  138. package/src/theme/header/index.vue +0 -96
  139. package/src/theme/header/multiple-header.vue +0 -67
  140. package/src/theme/header/set-theme.less +0 -68
  141. package/src/theme/index.ts +0 -3
  142. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  143. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  144. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  145. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  146. package/src/theme/sider/components/drag-bar.vue +0 -26
  147. package/src/theme/sider/components/layout-menu.vue +0 -132
  148. package/src/theme/sider/components/props.ts +0 -97
  149. package/src/theme/sider/components/sider-trigger.vue +0 -24
  150. package/src/theme/sider/helper/sider.ts +0 -52
  151. package/src/theme/sider/helper/split-menu.ts +0 -147
  152. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  153. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  154. package/src/theme/sider/index.less +0 -203
  155. package/src/theme/sider/index.vue +0 -88
  156. package/src/theme/tabs/components/TabContent.vue +0 -37
  157. package/src/theme/tabs/components/TabRedo.vue +0 -18
  158. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  159. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  160. package/src/theme/tabs/index.less +0 -165
  161. package/src/theme/tabs/index.vue +0 -98
  162. package/src/theme/tabs/types/tabs.type.ts +0 -8
  163. package/src/theme/theme.less +0 -66
  164. package/src/theme/theme.vue +0 -89
  165. package/src/theme/transition.less +0 -99
@@ -1,8 +0,0 @@
1
- import ScrollContainer from './src/scroll-container.vue';
2
- import LazyContainer from './src/lazy-container.vue';
3
-
4
-
5
- export {
6
- ScrollContainer,
7
- LazyContainer
8
- }
@@ -1,107 +0,0 @@
1
- import {
2
- defineComponent,
3
- h,
4
- computed,
5
- ref,
6
- getCurrentInstance,
7
- onUnmounted,
8
- inject,
9
- Ref,
10
- } from 'vue';
11
- import { off, on, renderThumbStyle, BAR_MAP, Nullable } from '@dt-frames/core';
12
-
13
- export default defineComponent({
14
- name: 'Bar',
15
-
16
- props: {
17
- vertical: Boolean,
18
- size: String,
19
- move: Number,
20
- },
21
-
22
- setup(props) {
23
- const instance = getCurrentInstance();
24
- const thumb = ref();
25
- const wrap = inject('scroll-bar-wrap', {} as Ref<Nullable<HTMLElement>>) as any;
26
- const bar = computed(() => {
27
- return BAR_MAP[props.vertical ? 'vertical' : 'horizontal'];
28
- });
29
- const barStore = ref({} as any);
30
- const cursorDown = ref();
31
- const clickThumbHandler = (e: any) => {
32
- if (e.ctrlKey || e.button === 2) {
33
- return;
34
- }
35
- window.getSelection()?.removeAllRanges();
36
- startDrag(e);
37
- barStore.value[bar.value.axis] =
38
- e.currentTarget[bar.value.offset] -
39
- (e[bar.value.client] - e.currentTarget.getBoundingClientRect()[bar.value.direction]);
40
- };
41
-
42
- const clickTrackHandler = (e: any) => {
43
- const offset = Math.abs(
44
- e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client],
45
- );
46
- const thumbHalf = thumb.value[bar.value.offset] / 2;
47
- const thumbPositionPercentage =
48
- ((offset - thumbHalf) * 100) / instance?.vnode.el?.[bar.value.offset];
49
-
50
- wrap.value[bar.value.scroll] =
51
- (thumbPositionPercentage * wrap.value[bar.value.scrollSize]) / 100;
52
- };
53
- const startDrag = (e: any) => {
54
- e.stopImmediatePropagation();
55
- cursorDown.value = true;
56
- on(document, 'mousemove', mouseMoveDocumentHandler);
57
- on(document, 'mouseup', mouseUpDocumentHandler);
58
- document.onselectstart = () => false;
59
- };
60
-
61
- const mouseMoveDocumentHandler = (e: any) => {
62
- if (cursorDown.value === false) return;
63
- const prevPage = barStore.value[bar.value.axis];
64
-
65
- if (!prevPage) return;
66
-
67
- const offset =
68
- (instance?.vnode.el?.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) *
69
- -1;
70
- const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
71
- const thumbPositionPercentage =
72
- ((offset - thumbClickPosition) * 100) / instance?.vnode.el?.[bar.value.offset];
73
- wrap.value[bar.value.scroll] =
74
- (thumbPositionPercentage * wrap.value[bar.value.scrollSize]) / 100;
75
- };
76
-
77
- function mouseUpDocumentHandler() {
78
- cursorDown.value = false;
79
- barStore.value[bar.value.axis] = 0;
80
- off(document, 'mousemove', mouseMoveDocumentHandler);
81
- document.onselectstart = null;
82
- }
83
-
84
- onUnmounted(() => {
85
- off(document, 'mouseup', mouseUpDocumentHandler);
86
- });
87
-
88
- return () =>
89
- h(
90
- 'div',
91
- {
92
- class: ['scrollbar__bar', 'is-' + bar.value.key],
93
- onMousedown: clickTrackHandler,
94
- },
95
- h('div', {
96
- ref: thumb,
97
- class: 'scrollbar__thumb',
98
- onMousedown: clickThumbHandler,
99
- style: renderThumbStyle({
100
- size: props.size,
101
- move: props.move,
102
- bar: bar.value,
103
- }),
104
- }),
105
- );
106
- },
107
- });
@@ -1,9 +0,0 @@
1
- <template>
2
- <div>
3
- 这是一个测试
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
-
9
- </script>
@@ -1,117 +0,0 @@
1
- <template>
2
- <div class="scrollbar">
3
- <div
4
- ref="wrap"
5
- :class="[wrapClass, 'scrollbar__wrap', native ? '' : 'scrollbar__wrap--hidden-default' ]"
6
- :style="style"
7
- @scroll="handleScroll"
8
- >
9
- <component
10
- :is="tag"
11
- ref="resize"
12
- :class="['scrollbar__view', viewClass]"
13
- :style="viewStyle"
14
- >
15
- <slot></slot>
16
- </component>
17
- </div>
18
-
19
- <template v-if="!native">
20
- <bar :move="moveX" :size="sizeWidth" />
21
- <bar vertical :move="moveY" :size="sizeHeight" />
22
- </template>
23
-
24
- </div>
25
- </template>
26
-
27
- <script setup lang="ts">
28
- import { computed, nextTick, onBeforeUnmount, onMounted, provide, ref, unref } from "vue";
29
- import { addResizeListener, removeResizeListener, useAppStore } from "@dt-frames/core";
30
- import Bar from './bar';
31
-
32
- const { getScrollConf } = useAppStore()
33
- const { native } = getScrollConf
34
-
35
- const sizeWidth = ref('0');
36
- const sizeHeight = ref('0');
37
- const moveX = ref(0);
38
- const moveY = ref(0);
39
- const wrap = ref();
40
- const resize = ref();
41
-
42
- const props = defineProps({
43
- wrapClass: {
44
- type: [String, Array],
45
- default: ''
46
- },
47
- wrapStyle: Array,
48
- viewClass: {
49
- type: [String, Array],
50
- default: '',
51
- },
52
- viewStyle: {
53
- type: [String, Array],
54
- default: '',
55
- },
56
- noresize: Boolean,
57
- tag: {
58
- type: String,
59
- default: 'div'
60
- }
61
- });
62
-
63
- provide('scroll-bar-wrap', wrap);
64
-
65
- // 设置容器style
66
- const style = computed(() => {
67
- let rsStyle = {};
68
-
69
- if( Array.isArray(props.wrapStyle) ) {
70
- props.wrapStyle.forEach( it => {
71
- if( it ) rsStyle = Object.assign( {}, rsStyle, it );
72
- } )
73
- }
74
-
75
- return rsStyle;
76
- });
77
-
78
-
79
- // 设置容器的滚动事件
80
- const handleScroll = () => {
81
- if (!native) {
82
- moveY.value = ( unref(wrap).scrollTop * 100 ) / unref( wrap ).clientHeight;
83
- moveX.value = ( unref(wrap).scrollLeft * 100 ) / unref( wrap ).clientWidth;
84
- }
85
- };
86
-
87
- const update = () => {
88
- if (!unref(wrap)) return;
89
-
90
- const heightPercentage = (unref(wrap).clientHeight * 100) / unref(wrap).scrollHeight;
91
- const widthPercentage = (unref(wrap).clientWidth * 100) / unref(wrap).scrollWidth;
92
-
93
- sizeHeight.value = heightPercentage < 100 ? heightPercentage + '%' : '';
94
- sizeWidth.value = widthPercentage < 100 ? widthPercentage + '%' : '';
95
- };
96
-
97
- onMounted(() => {
98
- if ( native ) return;
99
- nextTick(update);
100
-
101
- if (!props.noresize) {
102
- addResizeListener(unref(resize), update);
103
- addResizeListener(unref(wrap), update);
104
- addEventListener('resize', update);
105
- }
106
- });
107
-
108
- onBeforeUnmount(() => {
109
- if (native) return;
110
- if (!props.noresize) {
111
- removeResizeListener(unref(resize), update);
112
- removeResizeListener(unref(wrap), update);
113
- removeEventListener('resize', update);
114
- }
115
- });
116
-
117
- </script>
@@ -1,61 +0,0 @@
1
- <template>
2
- <Scrollbar ref="scrollbarRef" class="scroll-container" v-bind="$attrs">
3
- <slot></slot>
4
- </Scrollbar>
5
- </template>
6
-
7
- <script setup lang="ts">
8
-
9
- import { nextTick, ref, unref } from 'vue';
10
- import { useScrollTo } from '@dt-frames/core';
11
-
12
- import Scrollbar from './scroll-bar.vue';
13
-
14
-
15
- const scrollbarRef = ref(null);
16
-
17
- // 滚动到指定位置
18
- function scrollTo( to: number, duration = 500 ) {
19
- const scrollbar = unref(scrollbarRef);
20
- if (!scrollbar) return;
21
-
22
- nextTick(() => {
23
- const wrap = unref(scrollbar.wrap);
24
- if (!wrap) return;
25
-
26
- const { start } = useScrollTo({
27
- el: wrap,
28
- to,
29
- duration,
30
- });
31
-
32
- start();
33
- });
34
- }
35
-
36
-
37
- function getScrollWrap() {
38
- const scrollbar = unref(scrollbarRef);
39
- return !scrollbar ? null : scrollbar.wrap;
40
- }
41
-
42
-
43
- function scrollBottom() {
44
- const scrollbar = unref(scrollbarRef);
45
- if (!scrollbar) return;
46
-
47
- nextTick(() => {
48
- const wrap = unref(scrollbar.wrap) as any;
49
- if (!wrap) return;
50
-
51
- const scrollHeight = wrap.scrollHeight as number;
52
- const { start } = useScrollTo({
53
- el: wrap,
54
- to: scrollHeight,
55
- });
56
-
57
- start();
58
- });
59
- }
60
-
61
- </script>
@@ -1,5 +0,0 @@
1
- import { useCurd } from './src/hooks/useCurd'
2
-
3
- export {
4
- useCurd
5
- }
@@ -1,65 +0,0 @@
1
- <template>
2
- <!-- <a>打开弹框</a> -->
3
- <DtModal @register="registerDialog" @save="handleSave">
4
- <DtForm @register="registerForm" ></DtForm>
5
- </DtModal>
6
- </template>
7
-
8
- <script lang="ts" setup>
9
- import { isFunction, Recordable } from "@dt-frames/core";
10
- import { omit } from 'lodash-es'
11
- import { Ref, PropType, watch, toRaw, unref, watchEffect } from "vue";
12
- import { useForm, DtForm } from "../../../forms";
13
- import { DtModal, useModal } from "../../../modal"
14
- import { basicProps } from "./props";
15
-
16
- const props = defineProps( {
17
- ...basicProps,
18
- ...{
19
- onRegister: { type: Function },
20
- formProps: {
21
- type: Object as PropType<Ref<Recordable>>
22
- }
23
- }
24
- } )
25
-
26
- const [registerDialog, { }] = useModal({
27
- ...omit(toRaw(props), [
28
- 'actions',
29
- 'curd',
30
- 'formProps',
31
- 'onRegister',
32
- 'schemas'
33
- ])
34
- })
35
-
36
- const [ registerForm, { getFormValues, setFormValues } ] = useForm({
37
- schemas: props.schemas,
38
- mode: 'dialog'
39
- })
40
-
41
- watch(
42
- () => props.formProps.value,
43
- v => {
44
- if( v ) {
45
- setFormValues( toRaw(v) )
46
- }
47
- }
48
- )
49
-
50
-
51
- function handleSave() {
52
- if( props.curd && isFunction( props.curd?.onAdd ) ) {
53
-
54
- let obj = Object.assign(
55
- {},
56
- props.formProps.value || {},
57
- getFormValues()
58
- )
59
-
60
- obj.id
61
- ? props.curd.onUpdate( obj )
62
- : props.curd.onAdd( obj )
63
- }
64
- }
65
- </script>
@@ -1,32 +0,0 @@
1
- import { FormSchema, ButtonProps } from "../../../forms";
2
- import { PropType } from "vue";
3
-
4
- export const basicProps = {
5
- title: {
6
- type: String,
7
- default: ''
8
- },
9
- width: {
10
- type: String as PropType<number | string>,
11
- default: '50%'
12
- },
13
- schemas: {
14
- type: Array as PropType<FormSchema[]>,
15
- default: []
16
- },
17
- actions: {
18
- type: Array as PropType<ButtonProps[]>,
19
- default: []
20
- },
21
- canFullscreen: {
22
- type: Boolean,
23
- default: true
24
- },
25
- closable: {
26
- type: Boolean,
27
- default: true
28
- },
29
- curd: {
30
- type: Object as PropType<{[key: string]: Function}>
31
- }
32
- }
@@ -1,72 +0,0 @@
1
- import { DtCreateDialog, error, isFunction, Recordable } from "@dt-frames/core";
2
- import { DtForm, useForm } from "../../../forms";
3
- import { h, ref, unref } from "vue"
4
- import { useModal, useModalOut } from "../../../modal"
5
- import DtModal from "../components/dialog.vue";
6
- import { CrudOptType } from "../types/curd.type";
7
-
8
-
9
- export function useCurd(curdOpt: CrudOptType) {
10
- const formProps = ref<Recordable>()
11
- const [register, { closeModal, setModalProps, openModal }] = useModalOut()
12
-
13
- const DtCurdModal = () => {
14
- return h(
15
- <div class="curdModal">
16
- <DtModal
17
- { ...curdOpt }
18
- formProps = { formProps }
19
- onRegister = { register }
20
- ></DtModal>
21
- </div>
22
- )
23
- }
24
-
25
- // 新增弹框
26
- function add() {
27
- openModal()
28
- }
29
-
30
- // 删除
31
- function del({ row }: Recordable) {
32
- const { primaryKey = 'id', curd } = curdOpt
33
-
34
- if( curd && curd.onDeletes && isFunction( curd.onDeletes ) ) {
35
- curd.onDeletes( [row[ primaryKey ]] )
36
- } else {
37
- error(`缺少curd函数配置, 请将useSource中返回的curd参数传入useCurd配置项中!`)
38
- }
39
- }
40
-
41
- // 编辑弹框
42
- function update({ row }: Recordable) {
43
- const { primaryKey = 'id', curd } = curdOpt
44
-
45
- curd.onQueryById(row[primaryKey]).then( rsp => {
46
- formProps.value = rsp
47
- } )
48
-
49
- openModal()
50
- }
51
-
52
-
53
- // 批量删除
54
- function dels(ids: string[] = []) {
55
- const { curd } = curdOpt
56
-
57
- if( curd && curd.onDeletes && isFunction( curd.onDeletes ) ) {
58
- curd.onDeletes( ids )
59
- } else {
60
- error(`缺少curd函数配置, 请将useSource中返回的curd参数传入useCurd配置项中!`)
61
- }
62
- }
63
-
64
- return {
65
- DtCurdModal,
66
- add,
67
- del,
68
- dels,
69
- update
70
- }
71
-
72
- }
@@ -1,29 +0,0 @@
1
- import { Recordable } from "@dt-frames/core"
2
- import { FormSchema, ButtonProps } from "../../../forms/src/types/form.type"
3
-
4
- export type CrudOptType = {
5
- // 标题
6
- title?: string
7
- // 弹框宽度
8
- width?: string | number
9
- // 条目
10
- schemas: FormSchema[]
11
- // 操作栏
12
- actions?: ButtonProps[]
13
- // 是否显示全屏
14
- showFullscreen?: boolean
15
- // 是否显示关闭按钮
16
- showClose?: boolean
17
- // 物理主键
18
- primaryKey?: string
19
- // 增删改查接口
20
- curd?: {
21
- onAdd?: ( model: Recordable ) => void
22
- onUpdate?: ( model: Recordable ) => void
23
- onDeletes?: ( keys: string[] ) => void
24
- onExport?: () => void
25
- onQueryById?: ( id: string ) => Promise<Recordable>
26
- [key: string]: any
27
- }
28
-
29
- }
@@ -1,6 +0,0 @@
1
- import { handleDownloadPage, export2Excel } from './src/export2Excel'
2
-
3
- export {
4
- handleDownloadPage,
5
- export2Excel
6
- }
@@ -1,44 +0,0 @@
1
- import * as xlsx from 'xlsx'
2
- import type { WorkBook } from 'xlsx'
3
- import { DownloadType } from "../../table/src/types/tableHeader.type";
4
- import { dateFormat } from '@dt-frames/core';
5
-
6
- export function handleDownloadPage({
7
- columns = [],
8
- rows = []
9
- }: DownloadType,
10
- exportName: string = ''
11
- ) {
12
- const titles = columns.map( it => it.title )
13
-
14
- const content = rows.reduce( (total, it) => {
15
- const rowData = columns.map( column => it[column.dataIndex.toString()] )
16
-
17
- total.push( rowData )
18
- return total
19
- }, [] ) as string[][]
20
-
21
- export2Excel(
22
- [titles].concat(content) as string[][],
23
- exportName
24
- )
25
- }
26
-
27
-
28
- export function export2Excel(data: string[][] = [], exportName: string = '') {
29
- const worksheet = xlsx.utils.aoa_to_sheet(data)
30
- const fileName = exportName + '_' + dateFormat(new Date(), 'yyyyMMdd') + '.xlsx'
31
-
32
- const workbook: WorkBook = {
33
- SheetNames: [fileName],
34
- Sheets: {
35
- [fileName]: worksheet,
36
- },
37
- };
38
-
39
- xlsx.writeFile(
40
- workbook,
41
- fileName,
42
- { bookType: 'xlsx' }
43
- )
44
- }
@@ -1,12 +0,0 @@
1
- import DtForm from './src/index.vue'
2
- import { useForm } from './src/hooks/useForm'
3
- import { ButtonProps, FormSchema } from './src/types/form.type'
4
- import FormButtons from './src/components/formButton.vue'
5
-
6
- export {
7
- FormButtons,
8
- DtForm,
9
- useForm,
10
- FormSchema,
11
- ButtonProps
12
- }
@@ -1,44 +0,0 @@
1
- // 根据组件类型 定义一个组件map 方便使用
2
- import { Component } from "vue"
3
- import { Input, Select, Radio, Checkbox, AutoComplete, Cascader, DatePicker, InputNumber, Switch, TimePicker, TreeSelect, Slider, Rate, Divider } from 'ant-design-vue'
4
- import RadioButtonGroup from './components/radioButton.vue'
5
- import FormIcon from './components/formIcon.vue'
6
- import { ComponentType } from "./types/form.type"
7
-
8
- const components = {
9
- Input,
10
- InputTextArea: Input.TextArea,
11
- InputSearch: Input.Search,
12
- InputGroup: Input.Group,
13
- InputPassword: Input.Password,
14
- Select,
15
- TreeSelect,
16
- Radio,
17
- RadioGroup: Radio.Group,
18
- RadioButtonGroup,
19
- Checkbox,
20
- CheckboxGroup: Checkbox.Group,
21
- AutoComplete,
22
- Cascader,
23
- DatePicker,
24
- MonthPicker: DatePicker.MonthPicker,
25
- WeekPicker: DatePicker.WeekPicker,
26
- RangePicker: DatePicker.RangePicker,
27
- InputNumber,
28
- Switch,
29
- TimePicker,
30
- Slider,
31
- Rate,
32
- Divider,
33
- Icon: FormIcon
34
- }
35
-
36
- const componentMap = new Map<ComponentType, Component>()
37
-
38
- for( let item in components ) {
39
- componentMap.set( item as ComponentType, components[item] )
40
- }
41
-
42
- export {
43
- componentMap
44
- }