@dt-frames/ui 1.0.11 → 1.0.15

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 (219) hide show
  1. package/es/components/curd/src/components/dialog.d.ts +34 -25
  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/components/formInputUseDialog.d.ts +903 -0
  8. package/es/components/forms/src/hooks/useFormActions.d.ts +2 -2
  9. package/es/components/forms/src/index.d.ts +2 -2
  10. package/es/components/forms/src/types/form.type.d.ts +6 -18
  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/modal/src/types/modal.type.d.ts +4 -1
  17. package/es/components/source/src/hooks/useFetch.d.ts +1 -1
  18. package/es/components/table/src/hooks/useCustomRow.d.ts +19 -0
  19. package/es/components/table/src/hooks/useTable.d.ts +2 -2
  20. package/es/components/table/src/index.d.ts +24 -5
  21. package/es/components/table/src/props.d.ts +5 -2
  22. package/es/components/table/src/types/table.type.d.ts +2 -2
  23. package/es/components/tree/src/props.d.ts +8 -1
  24. package/es/components/upload/index.d.ts +1 -2
  25. package/es/components/upload/src/helper.d.ts +1 -0
  26. package/es/components/upload/src/index.d.ts +34 -11
  27. package/es/components/upload/src/props.d.ts +4 -1
  28. package/es/components/upload/src/upload.d.ts +42 -11
  29. package/es/index.js +356 -200
  30. package/es/style/components/forms/index.less +23 -0
  31. package/es/style/components/icons/index.less +1 -1
  32. package/es/style/components/upload/index.less +3 -11
  33. package/package.json +1 -10
  34. package/vite.config.js +10 -0
  35. package/src/assets/data/icons/actions.ts +0 -427
  36. package/src/assets/data/icons/code.ts +0 -10
  37. package/src/assets/data/icons/commuticate.ts +0 -190
  38. package/src/assets/data/icons/currency.ts +0 -46
  39. package/src/assets/data/icons/devices.ts +0 -128
  40. package/src/assets/data/icons/edit.ts +0 -165
  41. package/src/assets/data/icons/file.ts +0 -104
  42. package/src/assets/data/icons/math.ts +0 -53
  43. package/src/assets/data/icons/message.ts +0 -75
  44. package/src/assets/data/icons/navigate.ts +0 -181
  45. package/src/assets/data/icons/other.ts +0 -333
  46. package/src/assets/data/icons.ts +0 -58
  47. package/src/assets/imgs/header/avatar.png +0 -0
  48. package/src/assets/imgs/logo/logo.png +0 -0
  49. package/src/assets/locales/en_US.json +0 -3
  50. package/src/assets/locales/zh_CN.json +0 -3
  51. package/src/assets/style/index.less +0 -10
  52. package/src/assets/style/reset.less +0 -17
  53. package/src/components/container/index.less +0 -85
  54. package/src/components/container/index.ts +0 -8
  55. package/src/components/container/src/bar.ts +0 -107
  56. package/src/components/container/src/lazy-container.vue +0 -9
  57. package/src/components/container/src/scroll-bar.vue +0 -117
  58. package/src/components/container/src/scroll-container.vue +0 -61
  59. package/src/components/curd/index.ts +0 -5
  60. package/src/components/curd/src/components/dialog.vue +0 -73
  61. package/src/components/curd/src/components/props.ts +0 -32
  62. package/src/components/curd/src/hooks/useCurd.tsx +0 -87
  63. package/src/components/curd/src/types/curd.type.ts +0 -31
  64. package/src/components/excel/index.ts +0 -6
  65. package/src/components/excel/src/export2Excel.ts +0 -44
  66. package/src/components/forms/index.less +0 -84
  67. package/src/components/forms/index.ts +0 -11
  68. package/src/components/forms/src/componentMap.ts +0 -44
  69. package/src/components/forms/src/components/formButton.vue +0 -150
  70. package/src/components/forms/src/components/formIcon.vue +0 -51
  71. package/src/components/forms/src/components/formItem.vue +0 -420
  72. package/src/components/forms/src/components/radioButton.vue +0 -58
  73. package/src/components/forms/src/const/form.const.ts +0 -7
  74. package/src/components/forms/src/hooks/helper.ts +0 -70
  75. package/src/components/forms/src/hooks/useForm.ts +0 -130
  76. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  77. package/src/components/forms/src/hooks/useFormEvents.ts +0 -248
  78. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  79. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  80. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  81. package/src/components/forms/src/index.vue +0 -310
  82. package/src/components/forms/src/prop.ts +0 -80
  83. package/src/components/forms/src/types/form.type.ts +0 -269
  84. package/src/components/icons/index.less +0 -101
  85. package/src/components/icons/index.ts +0 -7
  86. package/src/components/icons/src/pick-icon.vue +0 -119
  87. package/src/components/icons/src/svg-icon.vue +0 -117
  88. package/src/components/iframe/index.less +0 -3
  89. package/src/components/iframe/index.ts +0 -5
  90. package/src/components/iframe/src/index.less +0 -3
  91. package/src/components/iframe/src/index.vue +0 -38
  92. package/src/components/index.ts +0 -54
  93. package/src/components/modal/index.less +0 -60
  94. package/src/components/modal/index.ts +0 -8
  95. package/src/components/modal/src/components/close-icon.vue +0 -46
  96. package/src/components/modal/src/components/modal-wrap.vue +0 -128
  97. package/src/components/modal/src/components/modal.tsx +0 -30
  98. package/src/components/modal/src/components/modalFooter.vue +0 -38
  99. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  100. package/src/components/modal/src/hooks/useFullScreen.ts +0 -29
  101. package/src/components/modal/src/hooks/useModal.ts +0 -194
  102. package/src/components/modal/src/index.vue +0 -173
  103. package/src/components/modal/src/props.ts +0 -43
  104. package/src/components/modal/src/types/modal.type.ts +0 -27
  105. package/src/components/router/base-router.vue +0 -11
  106. package/src/components/router/index.ts +0 -3
  107. package/src/components/source/index.ts +0 -1
  108. package/src/components/source/src/hooks/useFetch.ts +0 -42
  109. package/src/components/source/src/hooks/usePage.ts +0 -3
  110. package/src/components/source/src/hooks/useSource.ts +0 -214
  111. package/src/components/source/src/index.ts +0 -5
  112. package/src/components/source/src/types/source.type.ts +0 -58
  113. package/src/components/source/src/types/table.type.ts +0 -8
  114. package/src/components/table/index.less +0 -179
  115. package/src/components/table/index.ts +0 -7
  116. package/src/components/table/src/components/TableActions.vue +0 -108
  117. package/src/components/table/src/components/TableHeader.vue +0 -78
  118. package/src/components/table/src/components/TableRender.vue +0 -76
  119. package/src/components/table/src/components/editable/CellComponent.ts +0 -57
  120. package/src/components/table/src/components/editable/EditTableCell.vue +0 -181
  121. package/src/components/table/src/components/editable/componentMap.ts +0 -18
  122. package/src/components/table/src/components/editable/index.ts +0 -58
  123. package/src/components/table/src/components/setting/Column.vue +0 -354
  124. package/src/components/table/src/components/setting/Download.vue +0 -55
  125. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  126. package/src/components/table/src/components/setting/Size.vue +0 -42
  127. package/src/components/table/src/components/setting/index.vue +0 -64
  128. package/src/components/table/src/const.ts +0 -13
  129. package/src/components/table/src/hooks/useColumns.ts +0 -326
  130. package/src/components/table/src/hooks/useCustomRow.ts +0 -0
  131. package/src/components/table/src/hooks/useDataSource.ts +0 -97
  132. package/src/components/table/src/hooks/useHeaderCode.ts +0 -89
  133. package/src/components/table/src/hooks/useLoading.ts +0 -29
  134. package/src/components/table/src/hooks/usePagination.ts +0 -76
  135. package/src/components/table/src/hooks/useRowSelection.ts +0 -145
  136. package/src/components/table/src/hooks/useRows.ts +0 -30
  137. package/src/components/table/src/hooks/useTable.ts +0 -90
  138. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  139. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  140. package/src/components/table/src/hooks/useTableScroll.ts +0 -229
  141. package/src/components/table/src/index.vue +0 -200
  142. package/src/components/table/src/props.ts +0 -157
  143. package/src/components/table/src/types/table.type.ts +0 -160
  144. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  145. package/src/components/tree/index.less +0 -41
  146. package/src/components/tree/index.ts +0 -5
  147. package/src/components/tree/src/components/TreeHeader.vue +0 -97
  148. package/src/components/tree/src/hooks/useTree.ts +0 -239
  149. package/src/components/tree/src/index.vue +0 -392
  150. package/src/components/tree/src/props.ts +0 -133
  151. package/src/components/tree/src/type/tree.ts +0 -105
  152. package/src/components/tree/src/utils/tree.ts +0 -73
  153. package/src/components/type.ts +0 -0
  154. package/src/components/upload/index.less +0 -43
  155. package/src/components/upload/index.ts +0 -7
  156. package/src/components/upload/src/helper.ts +0 -32
  157. package/src/components/upload/src/index.vue +0 -38
  158. package/src/components/upload/src/props.ts +0 -48
  159. package/src/components/upload/src/upload.vue +0 -166
  160. package/src/directives/icon.ts +0 -36
  161. package/src/directives/index.ts +0 -26
  162. package/src/directives/permission.ts +0 -20
  163. package/src/global.d.ts +0 -8
  164. package/src/index.ts +0 -4
  165. package/src/theme/content/index.vue +0 -37
  166. package/src/theme/feature/back-top.vue +0 -11
  167. package/src/theme/feature/index.vue +0 -7
  168. package/src/theme/footer/index.less +0 -16
  169. package/src/theme/footer/index.vue +0 -24
  170. package/src/theme/header/components/bread-crumb.vue +0 -26
  171. package/src/theme/header/components/fullscreen.vue +0 -12
  172. package/src/theme/header/components/handler.ts +0 -81
  173. package/src/theme/header/components/index.ts +0 -21
  174. package/src/theme/header/components/lang-picker.vue +0 -36
  175. package/src/theme/header/components/logo.vue +0 -35
  176. package/src/theme/header/components/menu-search.vue +0 -62
  177. package/src/theme/header/components/notify.vue +0 -22
  178. package/src/theme/header/components/setting-theme.vue +0 -123
  179. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  180. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  181. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  182. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  183. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  184. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  185. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  186. package/src/theme/header/components/trigger.vue +0 -14
  187. package/src/theme/header/components/user-info.vue +0 -60
  188. package/src/theme/header/const/index.ts +0 -40
  189. package/src/theme/header/helper/menu-tree.ts +0 -64
  190. package/src/theme/header/index.less +0 -442
  191. package/src/theme/header/index.ts +0 -0
  192. package/src/theme/header/index.vue +0 -96
  193. package/src/theme/header/multiple-header.vue +0 -67
  194. package/src/theme/header/set-theme.less +0 -68
  195. package/src/theme/index.ts +0 -3
  196. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  197. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  198. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  199. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  200. package/src/theme/sider/components/drag-bar.vue +0 -26
  201. package/src/theme/sider/components/layout-menu.vue +0 -132
  202. package/src/theme/sider/components/props.ts +0 -97
  203. package/src/theme/sider/components/sider-trigger.vue +0 -24
  204. package/src/theme/sider/helper/sider.ts +0 -52
  205. package/src/theme/sider/helper/split-menu.ts +0 -146
  206. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  207. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  208. package/src/theme/sider/index.less +0 -203
  209. package/src/theme/sider/index.vue +0 -88
  210. package/src/theme/tabs/components/TabContent.vue +0 -36
  211. package/src/theme/tabs/components/TabRedo.vue +0 -18
  212. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  213. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  214. package/src/theme/tabs/index.less +0 -165
  215. package/src/theme/tabs/index.vue +0 -98
  216. package/src/theme/tabs/types/tabs.type.ts +0 -8
  217. package/src/theme/theme.less +0 -67
  218. package/src/theme/theme.vue +0 -90
  219. 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,269 +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
- | 'InputGroup'
23
- | 'InputPassword'
24
- | 'InputSearch'
25
- | 'InputTextArea'
26
- | 'InputNumber'
27
- | 'InputCountDown'
28
- | 'Select'
29
- | 'TreeSelect'
30
- | 'ApiTree'
31
- | 'ApiTreeSelect'
32
- | 'Radio'
33
- | 'RadioButtonGroup'
34
- | 'RadioGroup'
35
- | 'Checkbox'
36
- | 'CheckboxGroup'
37
- | 'AutoComplete'
38
- | 'Cascader'
39
- | 'DatePicker'
40
- | 'MonthPicker'
41
- | 'RangePicker'
42
- | 'WeekPicker'
43
- | 'TimePicker'
44
- | 'Switch'
45
- | 'Upload'
46
- | 'IconPicker'
47
- | 'Render'
48
- | 'Slider'
49
- | 'Rate'
50
- | 'Divider'
51
- | 'Icon'
52
-
53
- // 对表单元素进行拓展
54
- export type ColEx = {
55
- // 样式
56
- style?: any
57
- // 占用空间大小
58
- span?: number | string
59
- // 排序
60
- order?: number | string
61
- // 偏移量
62
- offset?: number | string
63
- // 中等屏幕
64
- md?: number | string
65
- // 小电脑屏幕
66
- xl?: number | string
67
- // 大屏幕
68
- xxl?: number | string
69
- }
70
-
71
- export type ToolTipProps = {
72
- color: string;
73
- placement: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom'
74
- }
75
-
76
- // 按钮属性
77
- export type ButtonProps = {
78
- // 按钮名称
79
- name?: string
80
- // 按钮风格
81
- color?: 'error' | 'warning' | 'success' | ''
82
- // 按钮类型
83
- type?: 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default' | undefined
84
- // 按钮class
85
- class?: string
86
- // 是否禁用
87
- disabled?: boolean
88
- // 是否显示
89
- show?: boolean
90
- // 按钮前面图标
91
- preIcon?: string
92
- // 按钮后面图标
93
- postIcon?: string
94
- // 按钮权限
95
- auth?: string
96
- // 按钮标识
97
- flag?: ButtonFlag
98
- // 是否处于加载中
99
- loading?: boolean
100
- // 按钮点击事件
101
- onClick?: (...args) => any
102
- }
103
-
104
- // 整个表单配置项
105
- export type FormProps = {
106
- mode?: 'search' | 'dialog',
107
- // 是否默认查询
108
- autoFetch?: boolean
109
- // 对齐方式
110
- layout?: 'vertical' | 'inline' | 'horizontal'
111
- // 绑定的model
112
- model?: Recordable
113
- // 定义标签的宽度
114
- labelWidth?: number | string
115
- // 对齐方式
116
- labelAlign?: 'left' | 'right'
117
- // 标签设置
118
- labelCol?: Partial<ColEx>
119
- // 包裹设置
120
- wrapperCol?: Partial<ColEx>
121
- // 行样式
122
- rowProps?: RowProps
123
- // col相关的配置
124
- colProps?: Partial<ColEx>
125
- // 表单数据配置
126
- schemas?: FormSchema[]
127
- // 尺寸
128
- size?: 'default' | 'small' | 'large'
129
- // 是否禁用
130
- disabled?: boolean
131
- // 回车键搜索
132
- autoSubmitOnEnter?: boolean
133
- // 是否一直显示所有条目
134
- alwaysShowLines?: number
135
- // 是否使用紧凑布局
136
- compact?: boolean
137
-
138
- // 提交 只有当mode为查询时候有
139
- onSearch?: Function
140
- onReset?: Function
141
- // 最小显示的条目
142
- minShowColumn?: number
143
- // 是否显示折叠按钮
144
- showAdvancedButton?: boolean
145
- enterToSearch?: boolean
146
-
147
- // form 按钮
148
- buttons?: ButtonProps[]
149
- // 加载状态
150
- loading?: Recordable,
151
- // css样式
152
- style?: Recordable
153
- }
154
-
155
- // 表单当个元素配置项
156
- export type FormSchema = {
157
- // 表单绑定的属性,亦作为name属性,用于后期自动化测试
158
- name?: string | string[]
159
- // 值发生变化触发的函数名
160
- changeEvent?: string
161
- // 绑定v-model的值
162
- valueField?: string
163
- // 标签名
164
- label?: string | VNode
165
- // 标签描述 如 这是标签(subLable): ***
166
- subLabel?: string
167
- // 标签宽度
168
- labelWidth?: string | number
169
- // 标签对齐方式
170
- labelAlign?: 'left' | 'right'
171
-
172
- // 帮助信息
173
- toolTip?:
174
- | string
175
- | (( parms: FormCallBackParams ) => string | string[])
176
- // tooltip 配置信息
177
- toolTipProps?: ToolTipProps
178
- // 表单控件类型
179
- component?: ComponentType
180
- // 表单控件参数
181
- props?:
182
- | ((opt: {
183
- schema?: FormSchema
184
- // tableAction: TableActionType
185
- formActions?: any
186
- formActionType?: FormActionType
187
- formModel?: Recordable
188
- }) => Recordable)
189
- | object
190
- required?: boolean | ( ( parms: FormCallBackParams ) => boolean )
191
- // // 输入框的后缀
192
- suffix?: string | number | ( ( parms: FormCallBackParams ) => boolean )
193
- // 验证规则
194
- rules?: Rule[]
195
- // 提示信息是否带上lable
196
- rulesMessageJoinLabel?: boolean
197
-
198
- // 默认值
199
- defaultValue?: any;
200
-
201
- // 占用多少格子
202
- span?: number
203
-
204
- // 是否显示
205
- show?: boolean | ( ( parms: FormCallBackParams ) => boolean )
206
-
207
- // 渲染item
208
- render?: (parms?: FormCallBackParams) => VNode | VNode[] | string
209
-
210
- // 渲染col
211
- renderCol?: (parms: FormCallBackParams) => VNode | VNode[] | string
212
-
213
- // col相关的配置
214
- colProps?: Partial<ColEx>
215
-
216
- // 表单的前后缀、禁用启用, 日期格式
217
- renderComponent?:
218
- | ((parms: FormCallBackParams) => Recordable)
219
- | VNode
220
- | VNode[]
221
- | string
222
-
223
- slot?: string
224
- colSlot?: string
225
-
226
- dynamicDisabled?: boolean | ((parms: FormCallBackParams) => boolean)
227
- dynamicRules?: (parms: FormCallBackParams) => Rule[]
228
-
229
- // lable后面是否有冒号
230
- colon?: boolean
231
-
232
- // 标签宽度
233
- labelCol?: Partial<ColEx>
234
- // 内容宽度
235
- wrapperCol?: Partial<ColEx>
236
-
237
- // 是否处于收缩状态 仅在 search 模式下使用
238
- isAdvanced?: boolean
239
- }
240
-
241
-
242
- // 表单操作类型
243
- export type FormActionType = {
244
- setProps: ( props: FormProps ) => Promise<void>
245
- updateSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => Promise<void>,
246
- resetSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => Promise<void>,
247
- clearValidate: (name?: string | string[]) => Promise<void>
248
- resetForms: (data: Partial<FormSchema> | Partial<FormSchema>[]) => void,
249
- removeFormByName: (name: string | string[]) => void,
250
- setFormValues: (values: Recordable) => Promise<void>,
251
- appendFormItems: (
252
- schema: FormSchema,
253
- prefixField: string | undefined,
254
- first?: boolean | undefined,
255
- ) => void,
256
- validate: (nameList?: (string | number)[]) => Promise<any>,
257
- validateFields: (nameList?: (string | number)[]) => Promise<any>,
258
- getFormValues: () => Recordable,
259
-
260
- }
261
-
262
- // 按钮收缩相关的操作
263
- export type AdvanceState = {
264
- isAdvanced: boolean
265
- hideAdvanceBtn: boolean
266
- isLoad: boolean
267
- actionSpan: number
268
- }
269
-