@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,310 +0,0 @@
1
- <template>
2
- <Form
3
- v-bind="getFormBindValue"
4
- ref="formElRef"
5
- :class="getFormClass"
6
- :model="formModel"
7
- :layout="getLayout"
8
- >
9
- <Row v-bind="getProps.rowProps">
10
- <template v-for="schema in getSchema" :key="schema.prop">
11
- <FormItem
12
- :schema="schema"
13
- :formProps="getProps"
14
- :formModel="formModel"
15
- :defaultValues="defaultValue"
16
- :setFormModel="setFormModel"
17
- :formActionType="formActionMethods"
18
- >
19
- <template #[item]="data" v-for="item in Object.keys($slots)">
20
- <slot :name="item" v-bind="data || {}"></slot>
21
- </template>
22
- </FormItem>
23
- </template>
24
-
25
- <FormButtons
26
- v-if="getActionsProps.buttonList?.length && getProps.mode === 'search'"
27
- v-bind="getActionsProps"
28
- @handle-method="handleMethod"
29
- ></FormButtons>
30
- </Row>
31
- </Form>
32
- </template>
33
-
34
- <script lang="ts">
35
- import { computed, ref, reactive, unref, onMounted, Ref, watch, defineComponent, toRaw } from 'vue'
36
- import { Form, Row } from 'ant-design-vue'
37
- import { Nullable, Recordable, deepMerge, useAppStore, isFunction, useTimeoutFn } from '@dt-frames/core'
38
-
39
- import FormItem from './components/formItem.vue'
40
- import FormButtons from './components/formButton.vue'
41
- import { ButtonProps, FormActionType, FormProps, FormSchema } from './types/form.type'
42
- import { BasicProps } from './prop'
43
- import { useFormValues } from './hooks/useFormValues'
44
- import { useFormEvents } from './hooks/useFormEvents'
45
- import { useFormActions } from './hooks/useFormActions'
46
- import { SEARCH_BTNS, SEARCH_BTN_NAME } from './const/form.const'
47
-
48
-
49
- export default defineComponent({
50
- name: 'dt-form',
51
- components: {
52
- Form,
53
- Row,
54
- FormItem,
55
- FormButtons
56
- },
57
- props: BasicProps,
58
- emits: [ 'register', 'reset' ],
59
- setup(props, { emit, attrs }) {
60
- const { appConf } = useAppStore()
61
- const formElRef = ref(null)
62
-
63
- // 表单绑定的变量
64
- const formModel = reactive<Recordable>({})
65
- // 表单默认值
66
- const defaultValue = ref<Recordable>({})
67
- // 定义一个新的propref,防止污染原来的prop
68
- const propsRef = ref<Partial<FormProps>>({})
69
- // 表单条目
70
- const schemaRef = ref<Nullable<FormSchema[]>>(null)
71
-
72
- // 计算容器的css样式
73
- const formStyle = computed(() => {
74
- const { style, mode } = unref(getProps)
75
- return {
76
- style: deepMerge({
77
- padding: mode === 'dialog' ? '20px' : null
78
- }, style)
79
- }
80
- })
81
-
82
- // form绑定的属性
83
- const getFormBindValue = computed( () => ({
84
- ...attrs,
85
- ...props,
86
- ...unref(getProps),
87
- ...unref(formStyle)
88
- } as Recordable))
89
-
90
- /**
91
- * 获取form的所有配置信息
92
- */
93
- const getProps = computed( (): FormProps => {
94
- const { labelAlign, rowProps } = props
95
-
96
- // 全局设置
97
- const globalProps = {
98
- labelAlign: labelAlign || appConf.ui.form.labelAlign,
99
- rowProps: rowProps || appConf.ui.form.rowProps
100
- }
101
-
102
- return { ...props, ...globalProps, ...(unref(propsRef) as any) } as unknown as FormProps
103
- } )
104
-
105
- // 计算布局方式
106
- const getLayout = computed(() => {
107
- return unref(getProps).layout || appConf.ui.form.layout
108
- })
109
-
110
- // form表单样式[紧凑型 | 正常]
111
- const getFormClass = computed(() => {
112
- const { compact, mode } = unref(getProps)
113
-
114
- const getCompact = compact === null
115
- ? ( mode === 'dialog' ? false : true)
116
- : compact
117
-
118
- return [
119
- 'basic-form',
120
- {
121
- 'basic-form--compact': getCompact,
122
- 'basic-form--search': (mode === 'search' || mode === undefined) ? true : false
123
- },
124
- ];
125
- })
126
-
127
- const getSchema = computed(() => {
128
- const schemas = unref(schemaRef) || (unref(getProps).schemas as any)
129
- return schemas as FormSchema[];
130
- })
131
-
132
-
133
-
134
- /**
135
- * 处理表单的初始化数据
136
- */
137
- const { handleFormValues, initDefault } = useFormValues({
138
- getProps,
139
- defaultValue,
140
- getSchema,
141
- formModel,
142
- })
143
-
144
- /**
145
- * 处理表单函数
146
- */
147
- // 表单注册
148
- async function setProps(formProps: Partial<FormProps>): Promise<void> {
149
- propsRef.value = deepMerge(unref(propsRef) || {}, formProps);
150
- }
151
-
152
- // 设置formModel
153
- function setFormModel(key: string, value: any) {
154
- formModel[ key ] = value
155
- const { validateTrigger } = unref(getFormBindValue)
156
-
157
- if (!validateTrigger || validateTrigger === 'change') {
158
- validateFields([key]).catch((_) => {});
159
- }
160
- }
161
-
162
- const {
163
- updateSchema,
164
- resetSchema,
165
- clearValidate,
166
- resetForms,
167
- removeFormByName,
168
- setFormValues,
169
- appendFormItems,
170
- getFormValues,
171
- validate,
172
- validateFields
173
- } = useFormEvents({
174
- emit,
175
- getProps,
176
- getSchema,
177
- formModel,
178
- formElRef: formElRef as Ref<FormActionType>,
179
- defaultValue,
180
- schemaRef: schemaRef as unknown as Ref<FormSchema[]>,
181
- handleFormValues
182
- })
183
-
184
- const formActionMethods: FormActionType = {
185
- setProps,
186
- updateSchema,
187
- resetSchema,
188
- clearValidate,
189
- resetForms,
190
- removeFormByName,
191
- setFormValues,
192
- appendFormItems,
193
- getFormValues,
194
- validate,
195
- validateFields
196
- }
197
-
198
- // 操作按钮相关操作
199
- const [ handleMethod ] = useFormActions({
200
- getProps,
201
- getSchema,
202
- defaultValue,
203
- updateSchema,
204
- getFormValues,
205
- setFormValues
206
- })
207
-
208
-
209
- watch(
210
- () => unref(getProps).model,
211
- () => {
212
- const { model } = unref(getProps);
213
- if (!model) return;
214
- setFormValues(model);
215
- },
216
- {
217
- immediate: true,
218
- },
219
- )
220
-
221
- watch(
222
- () => unref(getProps).schemas,
223
- (schemas) => resetSchema(schemas ?? [])
224
- )
225
-
226
- watch(
227
- () => unref(getProps).onSearch,
228
- () => {
229
- useTimeoutFn(() => {
230
- // 如果有onSearch默认查询
231
- const { onSearch, autoFetch } = unref(getProps)
232
-
233
- if( autoFetch && onSearch && isFunction(onSearch) ) {
234
- onSearch(toRaw(defaultValue.value))
235
- }
236
- }, 1)
237
- }
238
- )
239
-
240
- onMounted(() => {
241
- // 每次加载 进行重置
242
- setFormValues( null )
243
- emit('register', formActionMethods)
244
- initDefault()
245
- })
246
-
247
- const getActionsProps = computed((): Recordable => {
248
- const {
249
- mode,
250
- minShowColumn = appConf.ui.form.minShowColumn || 2,
251
- schemas = [],
252
- showAdvancedButton: advanced,
253
- loading,
254
- buttons
255
- } = unref(getProps)
256
-
257
- let showAdvancedButton = mode === 'search' ? true : false
258
-
259
- if( advanced !== undefined ) {
260
- showAdvancedButton = advanced
261
- }
262
-
263
- if( schemas.length <= minShowColumn ) {
264
- showAdvancedButton = false
265
- }
266
-
267
- let buttonList: ButtonProps[] = []
268
- if( !buttons && mode === 'search' ) {
269
- SEARCH_BTNS.forEach((it: any) => {
270
- it.loading = it.name === SEARCH_BTN_NAME ? loading?.onSearch : loading?.onReset
271
- buttonList.push(it)
272
- })
273
- } else {
274
- buttonList = [...(buttons||[])]
275
- }
276
-
277
- let colspan = mode === 'search' ? appConf.ui.form.searchColspan : appConf.ui.form.dialogColspan
278
-
279
- return {
280
- ...colspan,
281
- ...{
282
- showAdvancedButton,
283
- buttonList
284
- },
285
- }
286
- })
287
-
288
- return {
289
- getFormBindValue,
290
- getFormClass,
291
- formModel,
292
- getLayout,
293
- getProps,
294
- getSchema,
295
- defaultValue,
296
- formActionMethods,
297
- formElRef,
298
- props,
299
- setFormModel,
300
- handleMethod,
301
- getActionsProps
302
- }
303
- }
304
- })
305
-
306
-
307
-
308
-
309
-
310
- </script>
@@ -1,80 +0,0 @@
1
- import { Recordable } from "@dt-frames/core"
2
- import { PropType } from "vue"
3
- import { ColEx, FormActionType, FormProps, FormSchema } from "./types/form.type"
4
- import type { RowProps } from 'ant-design-vue/lib/grid/Row'
5
-
6
-
7
- export const BasicProps = {
8
- mode: {
9
- type: String as PropType<'search' | 'dialog' | null>,
10
- default: 'search'
11
- },
12
- // 自动查询
13
- autoFetch: {
14
- type: Boolean,
15
- default: true
16
- },
17
- // 绑定的model
18
- model: {
19
- type: Object as PropType<Recordable>,
20
- default: {}
21
- },
22
- labelWidth: {
23
- type: Number, String,
24
- default: 100
25
- },
26
- // 表单配置规则
27
- schemas: {
28
- type: [Array] as PropType<FormSchema[]>,
29
- default: () => [],
30
- },
31
- // 是否使用紧凑布局
32
- compact: {
33
- type: Boolean,
34
- default: null
35
- },
36
- // 表单尺寸
37
- size: {
38
- type: String as PropType<'default' | 'small' | 'large'>
39
- },
40
- formActions: {
41
- type: Object as PropType<FormActionType>
42
- },
43
- labelAlign: {
44
- type: String as PropType<'left' | 'right'>
45
- },
46
- rowProps: Object as PropType<RowProps>,
47
- colProps: Object as PropType<ColEx>
48
- }
49
-
50
- export const FormItemProps = {
51
- // 配置参数
52
- schema: {
53
- type: Object as PropType<FormSchema>
54
- },
55
- // 表单属性
56
- formProps: {
57
- type: Object as PropType<FormProps>,
58
- default: () => ({})
59
- },
60
- // 默认值
61
- defaultValues: {
62
- type: Object as PropType<Recordable>,
63
- default: () => ({})
64
- },
65
- // 绑定的model
66
- formModel: {
67
- type: Object as PropType<Recordable>,
68
- default: () => ({})
69
- },
70
- // 设置formModel
71
- setFormModel: {
72
- type: Function as PropType<(key: string, value: any) => void>
73
- },
74
- formActionType: {
75
- type: Object as PropType<FormActionType>
76
- },
77
- style: {
78
- type: Object as PropType<Recordable>
79
- }
80
- }
@@ -1,275 +0,0 @@
1
- import { Recordable } from "@dt-frames/core"
2
- import { VNode } from "vue"
3
- import { RuleObject } from 'ant-design-vue/lib/form/interface'
4
- import type { RowProps } from 'ant-design-vue/lib/grid/Row'
5
-
6
- export type Rule = RuleObject & {
7
- trigger?: 'blur' | 'change' | ['change', 'blur'];
8
- };
9
-
10
- export type ButtonFlag = 'OK' | 'CANCEL'
11
-
12
- export type FormCallBackParams = {
13
- schema: Omit<FormSchema, 'props'>
14
- values: Recordable
15
- model: Recordable
16
- name: string
17
- }
18
-
19
- // 组件的类型
20
- export type ComponentType =
21
- | 'Input'
22
- | 'InputWithDialog'
23
- | 'InputGroup'
24
- | 'InputPassword'
25
- | 'InputSearch'
26
- | 'InputTextArea'
27
- | 'InputNumber'
28
- | 'InputCountDown'
29
- | 'Select'
30
- | 'TreeSelect'
31
- | 'ApiTree'
32
- | 'ApiTreeSelect'
33
- | 'Radio'
34
- | 'RadioButtonGroup'
35
- | 'RadioGroup'
36
- | 'Checkbox'
37
- | 'CheckboxGroup'
38
- | 'AutoComplete'
39
- | 'Cascader'
40
- | 'DatePicker'
41
- | 'MonthPicker'
42
- | 'RangePicker'
43
- | 'WeekPicker'
44
- | 'TimePicker'
45
- | 'Switch'
46
- | 'Upload'
47
- | 'IconPicker'
48
- | 'Render'
49
- | 'Slider'
50
- | 'Rate'
51
- | 'Divider'
52
- | 'Icon'
53
-
54
- // 对表单元素进行拓展
55
- export type ColEx = {
56
- // 样式
57
- style?: any
58
- // 占用空间大小
59
- span?: number | string
60
- // 排序
61
- order?: number | string
62
- // 偏移量
63
- offset?: number | string
64
- // 中等屏幕
65
- md?: number | string
66
- // 小电脑屏幕
67
- xl?: number | string
68
- // 大屏幕
69
- xxl?: number | string
70
- }
71
-
72
- export type ToolTipProps = {
73
- color: string;
74
- placement: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom'
75
- }
76
-
77
- // 按钮属性
78
- export type ButtonProps = {
79
- // 按钮名称
80
- name?: string
81
- // 按钮风格
82
- color?: 'error' | 'warning' | 'success' | ''
83
- // 按钮类型
84
- type?: 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default' | undefined
85
- // 按钮class
86
- class?: string
87
- // 是否禁用
88
- disabled?: boolean
89
- // 是否显示
90
- show?: boolean
91
- // 按钮前面图标
92
- preIcon?: string
93
- // 按钮后面图标
94
- postIcon?: string
95
- // 按钮权限
96
- auth?: string
97
- // 按钮标识
98
- flag?: ButtonFlag
99
- // 是否处于加载中
100
- loading?: boolean
101
- // 按钮点击事件
102
- onClick?: (...args) => any
103
- }
104
-
105
- // 整个表单配置项
106
- export type FormProps = {
107
- mode?: 'search' | 'dialog',
108
- // 是否默认查询
109
- autoFetch?: boolean
110
- // 对齐方式
111
- layout?: 'vertical' | 'inline' | 'horizontal'
112
- // 绑定的model
113
- model?: Recordable
114
- // 定义标签的宽度
115
- labelWidth?: number | string
116
- // 对齐方式
117
- labelAlign?: 'left' | 'right'
118
- // 标签设置
119
- labelCol?: Partial<ColEx>
120
- // 包裹设置
121
- wrapperCol?: Partial<ColEx>
122
- // 行样式
123
- rowProps?: RowProps
124
- // col相关的配置
125
- colProps?: Partial<ColEx>
126
- // 表单数据配置
127
- schemas?: FormSchema[]
128
- // 尺寸
129
- size?: 'default' | 'small' | 'large'
130
- // 是否禁用
131
- disabled?: boolean
132
- // 回车键搜索
133
- autoSubmitOnEnter?: boolean
134
- // 是否一直显示所有条目
135
- alwaysShowLines?: number
136
- // 是否使用紧凑布局
137
- compact?: boolean
138
-
139
- // 提交 只有当mode为查询时候有
140
- onSearch?: Function
141
- onReset?: Function
142
- // 最小显示的条目
143
- minShowColumn?: number
144
- // 是否显示折叠按钮
145
- showAdvancedButton?: boolean
146
- enterToSearch?: boolean
147
-
148
- // form 按钮
149
- buttons?: ButtonProps[]
150
- // 加载状态
151
- loading?: Recordable,
152
- // css样式
153
- style?: Recordable
154
- }
155
-
156
- // 表单当个元素配置项
157
- export type FormSchema = {
158
- // 表单绑定的属性,亦作为name属性,用于后期自动化测试
159
- name?: string | string[]
160
- // 值发生变化触发的函数名
161
- changeEvent?: string
162
- // 绑定v-model的值
163
- valueField?: string
164
- // 标签名
165
- label?: string | VNode
166
- // 标签描述 如 这是标签(subLable): ***
167
- subLabel?: string
168
- // 标签宽度
169
- labelWidth?: string | number
170
- // 标签对齐方式
171
- labelAlign?: 'left' | 'right'
172
-
173
- // 帮助信息
174
- toolTip?:
175
- | string
176
- | (( parms: FormCallBackParams ) => string | string[])
177
- // tooltip 配置信息
178
- toolTipProps?: ToolTipProps
179
- // 表单控件类型
180
- component?: ComponentType
181
- // 表单控件参数
182
- props?:
183
- | ((opt: {
184
- schema?: FormSchema
185
- // tableAction: TableActionType
186
- formActions?: any
187
- formActionType?: FormActionType
188
- formModel?: Recordable
189
- }) => Recordable)
190
- | object
191
- required?: boolean | ( ( parms: FormCallBackParams ) => boolean )
192
- // // 输入框的后缀
193
- suffix?: string | number | ( ( parms: FormCallBackParams ) => boolean )
194
- // 验证规则
195
- rules?: Rule[]
196
- // 提示信息是否带上lable
197
- rulesMessageJoinLabel?: boolean
198
-
199
- // 默认值
200
- defaultValue?: any;
201
-
202
- // 占用多少格子
203
- span?: number
204
-
205
- // 是否显示
206
- show?: boolean | ( ( parms: FormCallBackParams ) => boolean )
207
-
208
- // 渲染item
209
- render?: (parms?: FormCallBackParams) => VNode | VNode[] | string
210
-
211
- // 渲染col
212
- renderCol?: (parms: FormCallBackParams) => VNode | VNode[] | string
213
-
214
- // col相关的配置
215
- colProps?: Partial<ColEx>
216
-
217
- // 表单的前后缀、禁用启用, 日期格式
218
- renderComponent?:
219
- | ((parms: FormCallBackParams) => Recordable)
220
- | VNode
221
- | VNode[]
222
- | string
223
-
224
- slot?: string
225
- colSlot?: string
226
-
227
- dynamicDisabled?: boolean | ((parms: FormCallBackParams) => boolean)
228
- dynamicRules?: (parms: FormCallBackParams) => Rule[]
229
-
230
- // lable后面是否有冒号
231
- colon?: boolean
232
-
233
- // 标签宽度
234
- labelCol?: Partial<ColEx>
235
- // 内容宽度
236
- wrapperCol?: Partial<ColEx>
237
-
238
- // 是否处于收缩状态 仅在 search 模式下使用
239
- isAdvanced?: boolean
240
-
241
- // 只有当类型为inputWithDialog 是否才有此属性
242
- openDialog?: (parms: Recordable) => void
243
- // 点击删除按钮需要清空的属性
244
- linkProps?: string[]
245
- }
246
-
247
-
248
- // 表单操作类型
249
- export type FormActionType = {
250
- setProps: ( props: FormProps ) => Promise<void>
251
- updateSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => Promise<void>,
252
- resetSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => Promise<void>,
253
- clearValidate: (name?: string | string[]) => Promise<void>
254
- resetForms: (data: Partial<FormSchema> | Partial<FormSchema>[]) => void,
255
- removeFormByName: (name: string | string[]) => void,
256
- setFormValues: (values: Recordable) => Promise<void>,
257
- appendFormItems: (
258
- schema: FormSchema,
259
- prefixField: string | undefined,
260
- first?: boolean | undefined,
261
- ) => void,
262
- validate: (nameList?: (string | number)[]) => Promise<any>,
263
- validateFields: (nameList?: (string | number)[]) => Promise<any>,
264
- getFormValues: () => Recordable,
265
-
266
- }
267
-
268
- // 按钮收缩相关的操作
269
- export type AdvanceState = {
270
- isAdvanced: boolean
271
- hideAdvanceBtn: boolean
272
- isLoad: boolean
273
- actionSpan: number
274
- }
275
-