@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,173 +0,0 @@
1
- <template>
2
- <Modal v-bind="getBindValue" @cancel="handleCancel">
3
- <template #closeIcon v-if="!$slots.closeIcon">
4
- <CloseIcon
5
- :canFullscreen="getBindValue.canFullscreen"
6
- :fullScreen="fullScreenRef"
7
- @cancel="handleCancel"
8
- @fullscreen="toggleFullScreen"
9
- />
10
- </template>
11
-
12
- <template #title v-if="!$slots.title">
13
- {{ getMergeProps.title }}
14
- </template>
15
-
16
- <template #footer v-if="!$slots.footer">
17
- <!-- 默认的footer内容 -->
18
- <ModalFooter :showSave="getBindValue.showSave" @handle-save="handleSave" @handle-cancel="handleCancel">
19
- <template #[item]="data" v-for="item in Object.keys($slots)">
20
- <slot :name="item" v-bind="data || {}"></slot>
21
- </template>
22
- </ModalFooter>
23
- </template>
24
-
25
- <ModalWrapper
26
- :useWrapper="getBindValue.useWrapper"
27
- :footerOffset="wrapperFooterOffset"
28
- :fullScreen="fullScreenRef"
29
- ref="modalWrapperRef"
30
- :loading="getBindValue.loading"
31
- :loading-tip="getBindValue.loadingTip"
32
- :minHeight="getBindValue.minHeight"
33
- :height="getWrapperHeight"
34
- :visible="visibleRef"
35
- :modalFooterHeight="footer !== undefined && !footer ? 0 : undefined"
36
- v-bind="omit(getBindValue.wrapperProps, 'visible', 'height', 'modalFooterHeight')"
37
- @ext-height="handleExtHeight"
38
- @height-change="handleHeightChange"
39
- >
40
- <slot></slot>
41
- </ModalWrapper>
42
-
43
- <template #[item]="data" v-for="item in Object.keys(omit($slots, 'default'))">
44
- <slot :name="item" v-bind="data || {}"></slot>
45
- </template>
46
- </Modal>
47
- </template>
48
-
49
- <script lang="ts" setup>
50
- import { computed, unref, ref, watch, getCurrentInstance, nextTick } from 'vue';
51
- import Modal from './components/modal';
52
- import { omit } from 'lodash-es';
53
- import { useFullScreen } from './hooks/useFullScreen';
54
- import { basicProps } from './props';
55
- import ModalWrapper from './components/modal-wrap.vue';
56
- import ModalFooter from './components/modalFooter.vue'
57
-
58
- import CloseIcon from './components/close-icon.vue';
59
- import { isFunction, deepMerge, ModalProps, ModalMethods } from '@dt-frames/core';
60
-
61
- const visibleRef = ref(false);
62
- const propsRef = ref<Partial<ModalProps>>();
63
- const modalWrapperRef = ref(null);
64
- const extHeightRef = ref(0);
65
-
66
- const props = defineProps( basicProps );
67
- const emits = defineEmits(['visible-change', 'height-change', 'cancel', 'save', 'register', 'update:visible'])
68
-
69
-
70
- const modalMethods: ModalMethods = {
71
- setModalProps,
72
- emitVisible: undefined,
73
- redoModalHeight: () => {
74
- nextTick(() => {
75
- if (unref(modalWrapperRef)) {
76
- (unref(modalWrapperRef) as any).setModalHeight();
77
- }
78
- });
79
- },
80
- }
81
-
82
- const { getWrapClassName, toggleFullScreen, fullScreenRef } = useFullScreen({
83
- wrapClassName: computed(() => props.wrapClassName),
84
- extHeightRef,
85
- modalWrapperRef
86
- });
87
-
88
- const getMergeProps = computed(() => {
89
- return {
90
- ...props,
91
- ...(unref(propsRef) as any)
92
- }
93
- })
94
-
95
- const getBindValue = computed(() => {
96
- const bindValue = {
97
- ...unref(getMergeProps),
98
- ...(unref(propsRef) as any),
99
- visible: unref(visibleRef),
100
- wrapClassName: unref(getWrapClassName),
101
- }
102
-
103
- return omit(bindValue, unref(fullScreenRef) ? ['height', 'title'] : 'title');
104
- });
105
-
106
- const getWrapperHeight = computed(() => {
107
- if (unref(fullScreenRef)) return undefined;
108
- return unref(getBindValue).height;
109
- });
110
-
111
- const instance = getCurrentInstance();
112
- if (instance) { emits('register', modalMethods, instance.uid); }
113
-
114
- watch(() => unref(visibleRef), (v) => {
115
- emits('visible-change', v);
116
- emits('update:visible', v);
117
- instance && modalMethods.emitVisible?.(v, instance.uid);
118
- nextTick(() => {
119
- if (props.scrollTop && v && unref(modalWrapperRef)) {
120
- (unref(modalWrapperRef).$el as any).scrollTop = 0;
121
- }
122
- });
123
- },{
124
- immediate: false,
125
- })
126
-
127
- function handleHeightChange(height: string) {
128
- emits('height-change', height);
129
- }
130
-
131
- function handleExtHeight(height: number) {
132
- extHeightRef.value = height;
133
- }
134
-
135
-
136
- function setModalProps(props: Partial<ModalProps>) {
137
-
138
- propsRef.value = deepMerge(unref(propsRef) || ({} as any), props);
139
-
140
- if (Reflect.has(props, 'visible')) {
141
- visibleRef.value = !!props.visible;
142
- }
143
- if (Reflect.has(props, 'defaultFullscreen')) {
144
- fullScreenRef.value = !!props.defaultFullscreen;
145
- }
146
- }
147
-
148
- // 弹框保存
149
- function handleSave() {
150
- emits('save')
151
- handleCancel()
152
- }
153
-
154
- // 弹框关闭
155
- async function handleCancel(e: Event = null) {
156
- if( e ) {
157
- e?.stopPropagation();
158
-
159
- // 过滤自定义关闭按钮的空白区域
160
- if ((e.target as HTMLElement)?.classList?.contains('dt-basic-modal-close--custom')) return;
161
-
162
- if (props.closeFunc && isFunction(props.closeFunc)) {
163
- const isClose: boolean = await props.closeFunc();
164
- visibleRef.value = !isClose;
165
- return;
166
- }
167
- }
168
-
169
- visibleRef.value = false;
170
-
171
- emits('cancel', e)
172
- }
173
- </script>
@@ -1,43 +0,0 @@
1
- import { CSSProperties, PropType, VNodeChild } from "vue";
2
-
3
- // 支持设置的属性
4
- const modalProps = {
5
- visible : { type: Boolean },
6
- scrollTop : { type: Boolean, default: true },
7
- height : { type: Number },
8
- minHeight : { type: Number },
9
- draggable : { type: Boolean, default: true },
10
- closeFunc : Function
11
- };
12
-
13
- export const basicProps = Object.assign({}, modalProps, {
14
- defaultFullscreen : { type: Boolean },
15
- canFullscreen : { type: Boolean, default: true },
16
- wrapperFooterOffset : { type: Number, default: 0 },
17
- useWrapper : { type: Boolean, default: true },
18
- loading : { type: Boolean },
19
- loadingTip : { type: String },
20
- closable : { type: Boolean, default: true },
21
- destroyOnClose : { type: Boolean },
22
- title : { type: String },
23
- visible : { type: Boolean },
24
- width : { type: String as PropType<Number | String> },
25
- wrapClassName : { type: String },
26
- zIndex : { type: Number },
27
- centered : { type: Boolean },
28
- showSave : { type: Boolean },
29
-
30
- // 掩膜
31
- mask : { type: Boolean, default: true },
32
- maskClosable : { type: Boolean, default: true },
33
- keyboard : { type: Boolean, default: true },
34
- maskStyle : Object as PropType<CSSProperties>,
35
-
36
- footer : Object as PropType<VNodeChild | JSX.Element>,
37
-
38
- bodyStyle : Object as PropType<CSSProperties>,
39
-
40
- wrapperProps : Object,
41
- afterClose : Function,
42
- getContainer : Function as PropType<() => any>
43
- })
@@ -1,27 +0,0 @@
1
- import { ModalProps } from "@dt-frames/core"
2
- import { ComputedRef } from "vue"
3
-
4
- export type ModalMethods = {
5
- setModalProps: ( props: Partial<ModalProps> ) => void
6
- emitVisible?: ( visable: boolean, uid: number ) => void
7
- redoModalHeight?: () => void
8
- }
9
-
10
- export interface ReturnMethods extends ModalMethods{
11
- openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void
12
- closeModal: () => void
13
- getVisible?: ComputedRef<boolean>
14
- }
15
-
16
- export interface ReturnInnerMethods extends ModalMethods {
17
- openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void
18
- closeModal: () => void
19
- changeLoading: (loading: boolean) => void
20
- getVisible?: ComputedRef<boolean>
21
- redoModalHeight: () => void
22
- }
23
-
24
- export type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void
25
-
26
- export type UseModalReturnType = [RegisterFn, ReturnMethods]
27
- export type UseModalInnerReturnType = [RegisterFn, ReturnInnerMethods];
@@ -1,11 +0,0 @@
1
- <template>
2
- <router-view></router-view>
3
- </template>
4
-
5
- <script lang="ts">
6
- import { defineComponent } from 'vue'
7
-
8
- export default defineComponent({
9
- name: 'dt-base-router'
10
- })
11
- </script>
@@ -1,3 +0,0 @@
1
- import DtBaseRouter from './base-router.vue'
2
-
3
- export { DtBaseRouter }
@@ -1 +0,0 @@
1
- export * from './src/index'
@@ -1,70 +0,0 @@
1
- import { ApiType } from "../types/source.type";
2
- import { message } from 'ant-design-vue'
3
- import { http, isBoolean, isFunction, isString, JsonResult, Recordable } from "@dt-frames/core";
4
-
5
- export function useFetch(api: string | ApiType, baseUrl: string = '') {
6
-
7
- const getApiObj= () => {
8
- if( isString(api) ) {
9
- return { api }
10
- }
11
-
12
- return { ...api }
13
- }
14
-
15
- /**
16
- * 是否可以向服务器发送请求
17
- * 如果beforeFetch返回的是false, 则停止请求
18
- * */
19
- const getParams = (params: Recordable = { }) => {
20
- const { model, beforeFetch } = getApiObj()
21
-
22
- if( !api ) {
23
- message.error('请求的url不能为空')
24
- return false
25
- }
26
-
27
- return beforeFetch && isFunction( beforeFetch )
28
- ? beforeFetch( Object.assign({}, model, params) )
29
- : params
30
- }
31
-
32
-
33
-
34
- /**
35
- * 发送请求
36
- * handleParams 记录返回的值
37
- */
38
- function fetch(params: Recordable = { }) {
39
- const handleParams = getParams( params )
40
-
41
- if( isBoolean( handleParams ) && handleParams === false)
42
- return Promise.resolve()
43
-
44
- const { api: _api, type = 'post', header = { }, afterFetch } = getApiObj()
45
-
46
- return new Promise(( resolve, reject ) => {
47
- http[type]( `${ baseUrl }${_api}`, handleParams, {
48
- ...header,
49
- ...{ onlyData: false }
50
- }).then(
51
- (data: JsonResult) => {
52
- if( afterFetch && isFunction(afterFetch) ) {
53
- data = afterFetch( data )
54
- }
55
- if( data.status ) {
56
- resolve( data.data )
57
- }
58
- },
59
- (error) => {
60
- reject( error )
61
- }
62
- )
63
- })
64
- }
65
-
66
- return {
67
- fetch
68
- }
69
-
70
- }
@@ -1,3 +0,0 @@
1
- export function usePage() {
2
-
3
- }
@@ -1,178 +0,0 @@
1
- import { computed, ref, reactive, toRaw, Ref } from 'vue'
2
- import { http, isFunction, isString, JsonResult, Recordable } from "@dt-frames/core"
3
- import { BaseDataType, SourceType } from "../types/source.type"
4
- import { useFetch } from './useFetch'
5
- import { TableParamsType } from '../types/table.type'
6
- import { DownloadType } from '../../../table/src/types/tableHeader.type'
7
- import { handleDownloadPage } from '../../../excel/index'
8
- import { useAppStore } from '@dt-frames/core'
9
-
10
- export function useSource(opt: SourceType) {
11
- const loading: {
12
- [key: string]: Ref<boolean>
13
- } = {
14
- onSearch: ref(false),
15
- onReset: ref(false)
16
- }
17
- const { baseUrl = '', api = {}, exportName = '' } = opt
18
- const { add, deletes, update, queryById, queryPage } = api
19
-
20
- // 定义加载状态
21
- for( let it in api ) {
22
- loading['on' + it.slice(0,1).toUpperCase() + it.slice(1).toLowerCase()] = ref(false)
23
- }
24
-
25
- // 定义分页数据
26
- const { appConf } = useAppStore()
27
- const pagination = ref({
28
- current: appConf?.ui?.table?.defaultPageNo || 1,
29
- pageSize: appConf?.ui?.table?.defaultPageSize || 10,
30
- total: 0
31
- })
32
-
33
- const dataSource = ref([])
34
- const baseData = reactive<BaseDataType>({
35
- entityDTO: {},
36
- pageDTO: {
37
- pageNo: 0,
38
- pageSize: 10
39
- },
40
- orderDTOs: {}
41
- })
42
-
43
-
44
- /**
45
- * 分页查询
46
- */
47
- function onSearch(model: Recordable) {
48
- baseData.entityDTO = { ...model }
49
- baseData.pageDTO.pageNo = 0
50
- loading.onSearch.value = true
51
-
52
- search()
53
- }
54
-
55
- // 重置
56
- function onReset(model: Recordable) {
57
- baseData.entityDTO = { ...model }
58
- baseData.pageDTO.pageNo = 0
59
- loading.onReset.value = true
60
-
61
- search()
62
- }
63
-
64
-
65
- /**
66
- * table 表单发生改变时, 进行分页查询
67
- * 如果为首次 则为数据初始化 不需要查询
68
- */
69
- function onTableChange( params: TableParamsType, needSearch: boolean = true ) {
70
- const { pagination, showBtnLoading, sort = [], filter } = params
71
-
72
- baseData.pageDTO = {
73
- pageNo: pagination.current - 1,
74
- pageSize: pagination.pageSize
75
- }
76
-
77
- baseData.orderDTOs = sort
78
-
79
- if( needSearch ) search()
80
- }
81
-
82
-
83
- // 查询
84
- function search() {
85
- const { fetch } = useFetch(queryPage, baseUrl)
86
- loading.onQuerypage.value = true
87
-
88
- fetch(
89
- toRaw(baseData)
90
- ).then( (rsp: any) => {
91
- const { records, pageDTO } = rsp
92
-
93
- dataSource.value = records
94
-
95
- pagination.value = {
96
- current: (pageDTO?.pageNo??0) + 1,
97
- pageSize: (pageDTO?.pageSize??10),
98
- total: pageDTO?.totalCount??0
99
- }
100
- } )
101
- .finally(() => {
102
- loading.onSearch.value = false
103
- loading.onQuerypage.value = false
104
- loading.onReset.value = false
105
- })
106
- }
107
-
108
-
109
- // 新增
110
- function onAdd(model: Recordable) {
111
- const { fetch } = useFetch(add, baseUrl)
112
-
113
- fetch(model).then( (rsp: any) => {
114
- search()
115
- } )
116
- }
117
-
118
-
119
- // 根据id查询
120
- async function onQueryById(id: string) {
121
- const { fetch } = useFetch(queryById, baseUrl)
122
- return await fetch( { id } )
123
- }
124
-
125
-
126
- // 修改
127
- function onUpdate(model: Recordable) {
128
- const { fetch } = useFetch(update, baseUrl)
129
- fetch(model).then( (rsp: any) => {
130
- search()
131
- } )
132
- }
133
-
134
-
135
- // 删除
136
- function onDeletes(ids: any) {
137
- const { fetch } = useFetch(deletes, baseUrl)
138
-
139
- fetch(ids).then( (rsp: any) => {
140
- search()
141
- } )
142
- }
143
-
144
-
145
- // 导出
146
- function onDownload( excelData: DownloadType ) {
147
- handleDownloadPage(excelData, exportName)
148
- }
149
-
150
- const form = {
151
- onSearch,
152
- onReset,
153
- loading
154
- }
155
-
156
- const table = {
157
- dataSource,
158
- pagination,
159
- onTableChange,
160
- onDownload,
161
- loading: loading.onQuerypage
162
- }
163
-
164
- const curd = {
165
- onAdd,
166
- onQueryById,
167
- onUpdate,
168
- onDeletes
169
- }
170
-
171
- return {
172
- api,
173
- form,
174
- table,
175
- curd,
176
- onSearch
177
- }
178
- }
@@ -1,5 +0,0 @@
1
- import { useSource } from './hooks/useSource'
2
-
3
- export {
4
- useSource
5
- }
@@ -1,68 +0,0 @@
1
- import { Recordable } from "@dt-frames/core"
2
-
3
- export type ApiType = {
4
- // api接口
5
- api: string
6
-
7
- // 请求类型
8
- type?: 'get' | 'post' | 'put' | 'delete',
9
-
10
- // 请求头信息
11
- header?: any
12
-
13
- // 默认的基础数据
14
- model?: Recordable
15
-
16
- // 请求之前
17
- beforeFetch?: ( params: Recordable ) => boolean
18
-
19
- // 请求之后
20
- afterFetch?: <T = any>( data: any) => T
21
- }
22
-
23
-
24
- export type ApiObjType = {
25
- // 新增
26
- add?: string | ApiType
27
-
28
- // 修改
29
- update?: string | ApiType
30
-
31
- // 保存
32
- save?: string | ApiType
33
-
34
- // 删除
35
- deletes?: string | ApiType
36
-
37
- // 查找
38
- queryById?: string | ApiType
39
-
40
- // 分页查询
41
- queryPage?: string | ApiType
42
-
43
- // 其它接口
44
- [key: string]: string | ApiType
45
- }
46
-
47
-
48
- export type SourceType = {
49
- // 基础路径
50
- baseUrl?: string
51
-
52
- // 文件导出名称
53
- exportName?: string
54
-
55
- // api接口
56
- api: ApiObjType
57
- }
58
-
59
- export type BaseDataType = {
60
- entityDTO?: any
61
-
62
- pageDTO?: {
63
- pageNo: Number
64
- pageSize: Number
65
- } | null
66
-
67
- orderDTOs: any
68
- }
@@ -1,8 +0,0 @@
1
- import { Recordable } from "@dt-frames/core";
2
-
3
- export type TableParamsType = {
4
- pagination: any,
5
- showBtnLoading: boolean,
6
- sort: Recordable,
7
- filter: any
8
- }
@@ -1,7 +0,0 @@
1
- import { useTable } from './src/hooks/useTable';
2
- import DtTable from "./src/index.vue"
3
-
4
- export {
5
- DtTable,
6
- useTable
7
- }