@dazhicheng/ui 1.5.33 → 1.5.35

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 (189) hide show
  1. package/dist/components/tt-area/TtArea.vue.d.ts +2 -0
  2. package/dist/components/tt-area/index.d.ts +1 -0
  3. package/dist/components/tt-button/components/AddButton.vue.d.ts +2 -0
  4. package/dist/components/tt-button/index.d.ts +1740 -0
  5. package/dist/components/tt-button/index.vue.d.ts +1004 -0
  6. package/dist/components/tt-checkbox/index.d.ts +36 -0
  7. package/dist/components/tt-checkbox/index.vue.d.ts +28 -0
  8. package/dist/components/tt-checkbox/type.d.ts +9 -0
  9. package/dist/components/tt-drawer/index.d.ts +3703 -0
  10. package/dist/components/tt-drawer/src/RenderDrawer.vue.d.ts +2121 -0
  11. package/dist/components/tt-drawer/src/components/DrawerFooter.vue.d.ts +94 -0
  12. package/dist/components/tt-drawer/src/components/DrawerHeader.vue.d.ts +27 -0
  13. package/dist/components/tt-drawer/src/hooks/useDrawerRender.d.ts +10 -0
  14. package/dist/components/tt-drawer/src/hooks/useResizable.d.ts +9 -0
  15. package/dist/components/tt-drawer/src/index.d.ts +10 -0
  16. package/dist/components/tt-drawer/src/props.d.ts +99 -0
  17. package/dist/components/tt-drawer/src/typing.d.ts +154 -0
  18. package/dist/components/tt-drawer/src/utils/drawer-api.d.ts +87 -0
  19. package/dist/components/tt-empty/index.d.ts +18 -0
  20. package/dist/components/tt-form/index.d.ts +15 -0
  21. package/dist/components/tt-form/src/components/ExpandableArrow.vue.d.ts +33 -0
  22. package/dist/components/tt-form/src/components/FormActions.vue.d.ts +34 -0
  23. package/dist/components/tt-form/src/components/Slot.d.ts +7 -0
  24. package/dist/components/tt-form/src/config.d.ts +6 -0
  25. package/dist/components/tt-form/src/form/FormControl.vue.d.ts +19 -0
  26. package/dist/components/tt-form/src/form/FormDescription.vue.d.ts +23 -0
  27. package/dist/components/tt-form/src/form/FormItem.vue.d.ts +23 -0
  28. package/dist/components/tt-form/src/form/FormLabel.vue.d.ts +23 -0
  29. package/dist/components/tt-form/src/form/FormMessage.vue.d.ts +2 -0
  30. package/dist/components/tt-form/src/form/FormMessageToolTip.vue.d.ts +8 -0
  31. package/dist/components/tt-form/src/form/FormWarnMessage.vue.d.ts +25 -0
  32. package/dist/components/tt-form/src/form/RenderContent.vue.d.ts +23 -0
  33. package/dist/components/tt-form/src/form/index.d.ts +10 -0
  34. package/dist/components/tt-form/src/form/injectionKeys.d.ts +2 -0
  35. package/dist/components/tt-form/src/form/useFormField.d.ts +11 -0
  36. package/dist/components/tt-form/src/form-render/FormField.vue.d.ts +28 -0
  37. package/dist/components/tt-form/src/form-render/FormLabel.vue.d.ts +27 -0
  38. package/dist/components/tt-form/src/form-render/context.d.ts +7 -0
  39. package/dist/components/tt-form/src/form-render/dependencies.d.ts +361 -0
  40. package/dist/components/tt-form/src/form-render/expandable.d.ts +9 -0
  41. package/dist/components/tt-form/src/form-render/form.vue.d.ts +41 -0
  42. package/dist/components/tt-form/src/form-render/helper.d.ts +11 -0
  43. package/dist/components/tt-form/src/form-render/index.d.ts +3 -0
  44. package/dist/components/tt-form/src/formApi.d.ts +71 -0
  45. package/dist/components/tt-form/src/group-form/FieldRenderer.d.ts +81 -0
  46. package/dist/components/tt-form/src/group-form/GroupForm.vue.d.ts +49 -0
  47. package/dist/components/tt-form/src/group-form/GroupSection.vue.d.ts +25 -0
  48. package/dist/components/tt-form/src/group-form/LazyFormField.vue.d.ts +13 -0
  49. package/dist/components/tt-form/src/group-form/index.d.ts +3 -0
  50. package/dist/components/tt-form/src/group-form/lazyContext.d.ts +37 -0
  51. package/dist/components/tt-form/src/group-form/types.d.ts +147 -0
  52. package/dist/components/tt-form/src/group-form/useGroupForm.d.ts +5 -0
  53. package/dist/components/tt-form/src/group-form/utils.d.ts +93 -0
  54. package/dist/components/tt-form/src/hooks/useEmitAsProps.d.ts +7 -0
  55. package/dist/components/tt-form/src/hooks/useFormFieldBus.d.ts +14 -0
  56. package/dist/components/tt-form/src/hooks/useForwardPriorityValues.d.ts +14 -0
  57. package/dist/components/tt-form/src/hooks/useForwardProps.d.ts +7 -0
  58. package/dist/components/tt-form/src/hooks/useForwardPropsEmits.d.ts +8 -0
  59. package/dist/components/tt-form/src/index.vue.d.ts +27 -0
  60. package/dist/components/tt-form/src/shared/createContext.d.ts +8 -0
  61. package/dist/components/tt-form/src/shared/global-state.d.ts +17 -0
  62. package/dist/components/tt-form/src/shared/store.d.ts +1 -0
  63. package/dist/components/tt-form/src/shared/zod-defaults.d.ts +54 -0
  64. package/dist/components/tt-form/src/types/common.d.ts +11 -0
  65. package/dist/components/tt-form/src/types/forms.d.ts +280 -0
  66. package/dist/components/tt-form/src/types/index.d.ts +3 -0
  67. package/dist/components/tt-form/src/types/paths.d.ts +142 -0
  68. package/dist/components/tt-form/src/types/shared.d.ts +19 -0
  69. package/dist/components/tt-form/src/types.d.ts +452 -0
  70. package/dist/components/tt-form/src/useForm.d.ts +2 -0
  71. package/dist/components/tt-form/src/useFormContext.d.ts +12 -0
  72. package/dist/components/tt-form-item-error-tooltip/index.d.ts +1549 -0
  73. package/dist/components/tt-form-item-error-tooltip/index.vue.d.ts +784 -0
  74. package/dist/components/tt-icon/components/AddIcon.vue.d.ts +7 -0
  75. package/dist/components/tt-icon/components/SubIcon.vue.d.ts +7 -0
  76. package/dist/components/tt-icon/index.d.ts +124 -0
  77. package/dist/components/tt-icon/index.vue.d.ts +32 -0
  78. package/dist/components/tt-image/index.d.ts +127 -0
  79. package/dist/components/tt-image/src/components/ImageViewer.d.ts +89 -0
  80. package/dist/components/tt-image/tt-image.d.ts +126 -0
  81. package/dist/components/tt-loading/index.d.ts +16 -0
  82. package/dist/components/tt-loading/src/directive.d.ts +9 -0
  83. package/dist/components/tt-loading/src/loading.vue.d.ts +12 -0
  84. package/dist/components/tt-loading/src/service.d.ts +25 -0
  85. package/dist/components/tt-loading/src/type.d.ts +20 -0
  86. package/dist/components/tt-modal/index.d.ts +1809 -0
  87. package/dist/components/tt-modal/src/RenderModal.vue.d.ts +1008 -0
  88. package/dist/components/tt-modal/src/components/ModalFooter.vue.d.ts +210 -0
  89. package/dist/components/tt-modal/src/components/ModalHeader.vue.d.ts +31 -0
  90. package/dist/components/tt-modal/src/components/ModalWrapper.vue.d.ts +224 -0
  91. package/dist/components/tt-modal/src/hooks/useModalRender.d.ts +110 -0
  92. package/dist/components/tt-modal/src/index.d.ts +5 -0
  93. package/dist/components/tt-modal/src/props.d.ts +161 -0
  94. package/dist/components/tt-modal/src/typing.d.ts +188 -0
  95. package/dist/components/tt-modal/src/utils/modal-api.d.ts +97 -0
  96. package/dist/components/tt-modal-form/hooks/useModalFormSlot.d.ts +6 -0
  97. package/dist/components/tt-modal-form/index.d.ts +2 -0
  98. package/dist/components/tt-modal-form/index.vue.d.ts +43 -0
  99. package/dist/components/tt-modal-form/props.d.ts +38 -0
  100. package/dist/components/tt-modal-form/useModalForm.d.ts +6 -0
  101. package/dist/components/tt-nav-anchor/index.d.ts +19 -0
  102. package/dist/components/tt-nav-anchor/src/TtNavAnchor.vue.d.ts +19 -0
  103. package/dist/components/tt-nav-anchor/src/types.d.ts +29 -0
  104. package/dist/components/tt-select/index.d.ts +7 -0
  105. package/dist/components/tt-select/src/Select.vue.d.ts +861 -0
  106. package/dist/components/tt-select/src/components/SelectTable.vue.d.ts +111 -0
  107. package/dist/components/tt-select/src/components/Table.vue.d.ts +250 -0
  108. package/dist/components/tt-select/src/const.d.ts +16 -0
  109. package/dist/components/tt-select/src/hooks/useDataSource.d.ts +115 -0
  110. package/dist/components/tt-select/src/hooks/useGrid.d.ts +32 -0
  111. package/dist/components/tt-select/src/hooks/useKeyboard.d.ts +59 -0
  112. package/dist/components/tt-select/src/hooks/usePagination.d.ts +16 -0
  113. package/dist/components/tt-select/src/hooks/useSelect.d.ts +87 -0
  114. package/dist/components/tt-select/src/hooks/useSelectTableEvent.d.ts +178 -0
  115. package/dist/components/tt-select/src/props.d.ts +190 -0
  116. package/dist/components/tt-select/src/types/index.d.ts +142 -0
  117. package/dist/components/tt-select/src/utils/index.d.ts +9 -0
  118. package/dist/components/tt-table/index.d.ts +127 -0
  119. package/dist/components/tt-table/src/Table.vue.d.ts +1685 -0
  120. package/dist/components/tt-table/src/componentMap.d.ts +8 -0
  121. package/dist/components/tt-table/src/components/RowContext.d.ts +24 -0
  122. package/dist/components/tt-table/src/components/TableAction.vue.d.ts +79 -0
  123. package/dist/components/tt-table/src/components/TableButtons.d.ts +30 -0
  124. package/dist/components/tt-table/src/components/TableColumnModal.vue.d.ts +26 -0
  125. package/dist/components/tt-table/src/components/TableToobalTools.vue.d.ts +1531 -0
  126. package/dist/components/tt-table/src/emits.d.ts +1 -0
  127. package/dist/components/tt-table/src/enum.d.ts +2 -0
  128. package/dist/components/tt-table/src/hooks/useCellArea.d.ts +15 -0
  129. package/dist/components/tt-table/src/hooks/useColumns.d.ts +27 -0
  130. package/dist/components/tt-table/src/hooks/useCustomColumns.d.ts +20 -0
  131. package/dist/components/tt-table/src/hooks/useDataSource.d.ts +29 -0
  132. package/dist/components/tt-table/src/hooks/useLeftRightSlot.d.ts +1082 -0
  133. package/dist/components/tt-table/src/hooks/usePagination.d.ts +102 -0
  134. package/dist/components/tt-table/src/hooks/useRowSelection.d.ts +30 -0
  135. package/dist/components/tt-table/src/hooks/useTable.d.ts +7 -0
  136. package/dist/components/tt-table/src/hooks/useTableContext.d.ts +43 -0
  137. package/dist/components/tt-table/src/hooks/useTableEvent.d.ts +101 -0
  138. package/dist/components/tt-table/src/hooks/useTableForm.d.ts +15 -0
  139. package/dist/components/tt-table/src/hooks/useTableFormEvent.d.ts +10 -0
  140. package/dist/components/tt-table/src/hooks/useTableHeight.d.ts +15 -0
  141. package/dist/components/tt-table/src/hooks/useTableRender.d.ts +93 -0
  142. package/dist/components/tt-table/src/hooks/useTableSlot.d.ts +11 -0
  143. package/dist/components/tt-table/src/props.d.ts +433 -0
  144. package/dist/components/tt-table/src/toolProps.d.ts +19 -0
  145. package/dist/components/tt-table/src/types/table.d.ts +489 -0
  146. package/dist/components/tt-table/src/types/tableAction.d.ts +26 -0
  147. package/dist/components/tt-table/src/types/tableForm.d.ts +64 -0
  148. package/dist/components/tt-table/src/types/tableTools.d.ts +10 -0
  149. package/dist/components/tt-table/src/utils/context.d.ts +18 -0
  150. package/dist/components/tt-table/src/utils/filters.d.ts +109 -0
  151. package/dist/components/tt-table/src/utils/table-api.d.ts +250 -0
  152. package/dist/components/tt-table/src/utils/table-form-api.d.ts +88 -0
  153. package/dist/components/tt-table/src/utils/vxeTable.d.ts +28 -0
  154. package/dist/components/tt-text/index.d.ts +76 -0
  155. package/dist/components/tt-text/index.vue.d.ts +50 -0
  156. package/dist/components/tt-tree-select/index.d.ts +5 -0
  157. package/dist/components/tt-tree-select/src/TtTreeSelect.vue.d.ts +6 -0
  158. package/dist/components/tt-tree-select/src/cache-options.d.ts +35 -0
  159. package/dist/components/tt-tree-select/src/select.d.ts +10 -0
  160. package/dist/components/tt-tree-select/src/tree.d.ts +23 -0
  161. package/dist/components/tt-tree-select/src/utils.d.ts +10 -0
  162. package/dist/components/tt-upload/index.d.ts +428 -0
  163. package/dist/components/tt-upload/src/TtUpload.d.ts +449 -0
  164. package/dist/components/tt-upload/src/typing.d.ts +251 -0
  165. package/dist/components/types.d.ts +230 -0
  166. package/dist/directives/auto-tip/index.d.ts +3 -0
  167. package/dist/directives/dialog-resize/index.d.ts +25 -0
  168. package/dist/directives/dialog-resize/use-css-variable.d.ts +1 -0
  169. package/dist/directives/dialog-resize/use-draggable.d.ts +4 -0
  170. package/dist/directives/dialog-resize/use-fullscreen.d.ts +1 -0
  171. package/dist/directives/dialog-resize/use-parse-translate.d.ts +4 -0
  172. package/dist/directives/dialog-resize/use-resizer.d.ts +2 -0
  173. package/dist/directives/disabled-tip/index.d.ts +17 -0
  174. package/dist/directives/index.d.ts +3 -0
  175. package/dist/hooks/useFormat.d.ts +73 -0
  176. package/dist/hooks/useLoading.d.ts +9 -0
  177. package/dist/hooks/useSetup.d.ts +8 -0
  178. package/dist/hooks/useTable.d.ts +5 -0
  179. package/dist/hooks/useTemplateSlot.d.ts +9 -0
  180. package/dist/{index-CMjNBMj5.js → index-NG5FNCLD.js} +2 -3
  181. package/dist/index.d.ts +47 -0
  182. package/dist/index.js +10239 -9224
  183. package/dist/{index.modern-BfZxYaPy.js → index.modern-DfItAsVf.js} +1 -1
  184. package/dist/plugins/index.d.ts +1 -0
  185. package/dist/plugins/vxeTable/switchStatus.d.ts +7 -0
  186. package/dist/plugins.d.ts +2 -0
  187. package/dist/plugins.js +29 -30
  188. package/dist/style.css +1 -1
  189. package/package.json +3 -10
@@ -0,0 +1,452 @@
1
+ import { ButtonProps, CheckboxProps, CheckboxGroupProps, DatePickerProps, InputProps, InputNumberProps, RadioProps, RadioGroupProps, SelectProps, SelectV2Props, SwitchProps, TimePickerDefaultProps, UploadProps, CascaderProps, ColorPickerProps } from 'element-plus';
2
+ import { FieldOptions, FormContext, GenericObject } from 'vee-validate';
3
+ import { Component, HtmlHTMLAttributes, MaybeRefOrGetter, Ref, VNode } from 'vue';
4
+ import { ZodTypeAny } from 'zod';
5
+ import { TtTextProps } from '../../tt-text';
6
+ import { TtSelectProp } from '../../tt-select';
7
+ import { TtUploadProps } from '../../tt-upload';
8
+ import { FormApi } from './formApi';
9
+ export type FormLayout = "horizontal" | "inline" | "vertical";
10
+ export interface BaseFormComponentMap {
11
+ TtSelect: TtSelectProp;
12
+ ElCheckbox: CheckboxProps;
13
+ ElCheckboxButton: CheckboxProps;
14
+ ElCheckboxGroup: CheckboxGroupProps;
15
+ ElDatePicker: DatePickerProps;
16
+ ElInput: InputProps;
17
+ ElInputNumber: InputNumberProps;
18
+ ElRadio: RadioProps;
19
+ ElRadioGroup: RadioGroupProps;
20
+ ElSelect: SelectProps;
21
+ ElSelectV2: SelectV2Props;
22
+ ElSwitch: SwitchProps;
23
+ ElTimePicker: TimePickerDefaultProps;
24
+ ElTreeSelect: Record<string, any>;
25
+ ElUpload: UploadProps;
26
+ ElCascader: CascaderProps;
27
+ TtUpload: TtUploadProps;
28
+ ElColorPicker: ColorPickerProps;
29
+ }
30
+ /**
31
+ * 表单组件类型字符串联合类型
32
+ * 基于 BaseFormComponentMap 接口的键名
33
+ */
34
+ export type BaseFormComponentType = keyof BaseFormComponentMap;
35
+ type Breakpoints = "2xl:" | "3xl:" | "" | "lg:" | "md:" | "sm:" | "xl:";
36
+ type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;
37
+ export type WrapperClassType = `${Breakpoints}grid-cols-${GridCols}` | (Record<never, never> & string);
38
+ export type FormItemClassType = `${Breakpoints}cols-end-${"auto" | GridCols}` | `${Breakpoints}cols-span-${"auto" | "full" | GridCols}` | `${Breakpoints}cols-start-${"auto" | GridCols}` | (Record<never, never> & string) | WrapperClassType;
39
+ export type FormFieldOptions = Partial<FieldOptions & {
40
+ validateOnBlur?: boolean;
41
+ validateOnChange?: boolean;
42
+ validateOnInput?: boolean;
43
+ validateOnModelUpdate?: boolean;
44
+ }>;
45
+ export interface FormShape {
46
+ /** 默认值 */
47
+ default?: any;
48
+ /** 字段名 */
49
+ fieldName: string;
50
+ /** 是否必填 */
51
+ required?: boolean;
52
+ rules?: ZodTypeAny;
53
+ }
54
+ export type MaybeComponentPropKey = "options" | "placeholder" | "title" | keyof HtmlHTMLAttributes | (Record<never, never> & string);
55
+ export type MaybeComponentProps = {
56
+ [K in MaybeComponentPropKey]?: any;
57
+ };
58
+ export type FormActions = FormContext<GenericObject>;
59
+ export type CustomRenderType = (() => Component | string) | string;
60
+ export type FormSchemaRuleType = "required" | "selectRequired" | null | (Record<never, never> & string) | ZodTypeAny;
61
+ type FormItemDependenciesCondition<T = boolean | PromiseLike<boolean>> = (value: Partial<Record<string, any>>, actions: FormActions) => T;
62
+ type FormItemDependenciesConditionWithRules = (value: Partial<Record<string, any>>, actions: FormActions) => FormSchemaRuleType | PromiseLike<FormSchemaRuleType>;
63
+ type FormItemDependenciesConditionWithProps = (value: Partial<Record<string, any>>, actions: FormActions) => MaybeComponentProps | PromiseLike<MaybeComponentProps>;
64
+ export interface FormItemDependencies {
65
+ /**
66
+ * 组件参数
67
+ * @returns 组件参数
68
+ */
69
+ componentProps?: FormItemDependenciesConditionWithProps;
70
+ /**
71
+ * 是否禁用
72
+ * @returns 是否禁用
73
+ */
74
+ disabled?: boolean | FormItemDependenciesCondition;
75
+ /**
76
+ * 是否渲染(删除dom)
77
+ * @returns 是否渲染
78
+ */
79
+ if?: boolean | FormItemDependenciesCondition;
80
+ /**
81
+ * 是否必填
82
+ * @returns 是否必填
83
+ */
84
+ required?: FormItemDependenciesCondition;
85
+ /**
86
+ * 字段规则
87
+ */
88
+ rules?: FormItemDependenciesConditionWithRules;
89
+ /**
90
+ * 是否隐藏(Css)
91
+ * @returns 是否隐藏
92
+ */
93
+ show?: boolean | FormItemDependenciesCondition;
94
+ /**
95
+ * 任意触发都会执行
96
+ */
97
+ trigger?: FormItemDependenciesCondition<void>;
98
+ /**
99
+ * 触发字段
100
+ */
101
+ triggerFields: string[];
102
+ }
103
+ type ComponentProps = ((value: Partial<Record<string, any>>, actions: FormActions) => MaybeComponentProps) | MaybeComponentProps;
104
+ export interface FormCommonConfig {
105
+ /**
106
+ * 在Label后显示一个冒号
107
+ */
108
+ colon?: boolean;
109
+ /**
110
+ * 所有表单项的props
111
+ */
112
+ componentProps?: ComponentProps;
113
+ /**
114
+ * 所有表单项的控件样式
115
+ */
116
+ controlClass?: string;
117
+ /**
118
+ * 所有表单项的禁用状态
119
+ * @default false
120
+ */
121
+ disabled?: boolean;
122
+ /**
123
+ * 是否禁用所有表单项的change事件监听
124
+ * @default true
125
+ */
126
+ disabledOnChangeListener?: boolean;
127
+ /**
128
+ * 是否禁用所有表单项的input事件监听
129
+ * @default true
130
+ */
131
+ disabledOnInputListener?: boolean;
132
+ /**
133
+ * 所有表单项的空状态值,默认都是undefined,naive-ui的空状态值是null
134
+ */
135
+ emptyStateValue?: null | undefined;
136
+ /**
137
+ * 所有表单项的控件样式
138
+ * @default {}
139
+ */
140
+ formFieldProps?: FormFieldOptions;
141
+ /**
142
+ * 所有表单项的栅格布局,支持函数形式
143
+ * @default ""
144
+ */
145
+ formItemClass?: (() => string) | string;
146
+ /**
147
+ * 隐藏所有表单项label
148
+ * @default false
149
+ */
150
+ hideLabel?: boolean;
151
+ /**
152
+ * 是否隐藏必填标记
153
+ * @default false
154
+ */
155
+ hideRequiredMark?: boolean;
156
+ /**
157
+ * 所有表单项的label样式
158
+ * @default ""
159
+ */
160
+ labelClass?: string;
161
+ /**
162
+ * 所有表单项的label宽度
163
+ */
164
+ labelWidth?: number;
165
+ /**
166
+ * 所有表单项的model属性名
167
+ * @default "modelValue"
168
+ */
169
+ modelPropName?: string;
170
+ /**
171
+ * 所有表单项的wrapper样式
172
+ */
173
+ wrapperClass?: string;
174
+ }
175
+ type RenderComponentContentType = (value: Partial<Record<string, any>>, api: FormActions) => Record<string, any>;
176
+ export type HandleSubmitFn = (values: Record<string, any>) => Promise<void> | void;
177
+ export type HandleResetFn = (values: Record<string, any>) => Promise<void> | void;
178
+ export type FieldMappingTime = [
179
+ string,
180
+ [
181
+ string,
182
+ string
183
+ ],
184
+ (((value: any, fieldName: string) => any) | [string, string] | null | string)?
185
+ ][];
186
+ export type ArrayToStringFields = Array<[string[], string?] | string | string[]>;
187
+ export interface FormSchema<T extends BaseFormComponentType = BaseFormComponentType> extends FormCommonConfig {
188
+ /** 组件 */
189
+ component: Component | T;
190
+ /** 组件参数 */
191
+ componentProps?: ComponentProps;
192
+ /** 默认值 */
193
+ defaultValue?: any;
194
+ /** 依赖 */
195
+ dependencies?: FormItemDependencies;
196
+ /** 描述 */
197
+ description?: CustomRenderType;
198
+ /** 字段名 */
199
+ fieldName: string;
200
+ /** 帮助信息 */
201
+ help?: CustomRenderType;
202
+ /** 是否隐藏表单项 */
203
+ hide?: boolean;
204
+ /** 表单项 */
205
+ label?: CustomRenderType;
206
+ renderComponentContent?: RenderComponentContentType;
207
+ /** 字段规则 */
208
+ rules?: FormSchemaRuleType;
209
+ /** 后缀 */
210
+ suffix?: CustomRenderType;
211
+ /** 帮助信息触发器 */
212
+ helpTrigger?: "hover" | "click" | "focus" | "contextmenu";
213
+ /** label本身文字气泡设置 */
214
+ toolTip?: TtTextProps;
215
+ /** 非label文字气泡设置 */
216
+ toolTipText?: CustomRenderType;
217
+ }
218
+ /** 插槽 scope 参数,传递给渲染函数或具名插槽 */
219
+ export interface FormSlotScope {
220
+ /** 当前表单所有字段的值 */
221
+ values: Record<string, any>;
222
+ /** 表单操作方法(validate / resetForm / getValues 等) */
223
+ formActions: FormActions;
224
+ }
225
+ /**
226
+ * 自定义插槽 schema,在表单字段之间插入任意自定义内容。
227
+ * content 为字符串时作为具名插槽名,在模板中用 `<template #slotName="{ values, formActions }">` 编写;
228
+ * content 为函数时直接返回 VNode。
229
+ * @property {"slot"} type - 固定为 "slot"
230
+ * @property {string | ((scope: FormSlotScope) => VNode)} content - 插槽名或渲染函数
231
+ * @property {WrapperClassType} [wrapperClass] - 容器额外 class(如 col-span-full)
232
+ */
233
+ export interface FormSlotSchema {
234
+ /** 类型标识 */
235
+ type: "slot";
236
+ /** 插槽名(字符串)或渲染函数 */
237
+ content: string | ((scope: FormSlotScope) => VNode);
238
+ /** 容器额外 class */
239
+ wrapperClass?: WrapperClassType;
240
+ /**
241
+ * 是否显示,支持布尔值或函数 (values, actions) => boolean | Promise<boolean>,默认 true。
242
+ * 仅在 GroupForm 场景下生效。
243
+ */
244
+ ifShow?: boolean | ((values: Record<string, any>, actions: FormActions) => boolean | PromiseLike<boolean>);
245
+ }
246
+ export interface FormFieldProps extends FormSchema {
247
+ required?: boolean;
248
+ }
249
+ export interface FormRenderProps<T extends BaseFormComponentType = BaseFormComponentType> {
250
+ /**
251
+ * 表单字段数组映射字符串配置 默认使用","
252
+ */
253
+ arrayToStringFields?: ArrayToStringFields;
254
+ /**
255
+ * 是否折叠,在showCollapseButton=true下生效
256
+ * true:折叠 false:展开
257
+ */
258
+ collapsed?: boolean;
259
+ /**
260
+ * 折叠时保持行数
261
+ * @default 1
262
+ */
263
+ collapsedRows?: number;
264
+ /**
265
+ * 是否触发resize事件
266
+ * @default false
267
+ */
268
+ collapseTriggerResize?: boolean;
269
+ /**
270
+ * 表单项通用后备配置,当子项目没配置时使用这里的配置,子项目配置优先级高于此配置
271
+ */
272
+ commonConfig?: FormCommonConfig;
273
+ /**
274
+ * 紧凑模式(移除表单每一项底部为校验信息预留的空间)
275
+ */
276
+ compact?: boolean;
277
+ /**
278
+ * 组件v-model事件绑定
279
+ */
280
+ componentBindEventMap?: Partial<Record<BaseFormComponentType, string>>;
281
+ /**
282
+ * 组件集合
283
+ */
284
+ componentMap: Record<BaseFormComponentType, Component>;
285
+ /**
286
+ * 表单字段映射到时间格式
287
+ */
288
+ fieldMappingTime?: FieldMappingTime;
289
+ /**
290
+ * 表单实例
291
+ */
292
+ form?: FormContext<GenericObject>;
293
+ /**
294
+ * 表单项布局
295
+ */
296
+ layout?: FormLayout;
297
+ /**
298
+ * 表单定义,支持普通字段和自定义插槽混合
299
+ */
300
+ schema?: (FormSchema<T> | FormSlotSchema)[];
301
+ /**
302
+ * 是否显示展开/折叠
303
+ */
304
+ showCollapseButton?: boolean;
305
+ /**
306
+ * 格式化日期
307
+ */
308
+ /**
309
+ * 表单栅格布局
310
+ * @default "grid-cols-1"
311
+ */
312
+ wrapperClass?: WrapperClassType;
313
+ }
314
+ export type ActionButtonOptions = {
315
+ [key: string]: any;
316
+ content?: MaybeRefOrGetter<string>;
317
+ show?: boolean;
318
+ customFn?: (value: Record<string, any>) => Record<string, any>;
319
+ } & Partial<ButtonProps>;
320
+ export interface TtFormProps<T extends BaseFormComponentType = BaseFormComponentType> extends Omit<FormRenderProps<T>, "componentBindEventMap" | "componentMap" | "form"> {
321
+ /**
322
+ * 操作按钮是否反转(提交按钮前置)
323
+ */
324
+ actionButtonsReverse?: boolean;
325
+ /**
326
+ * 操作按钮组的样式
327
+ * newLine: 在新行显示。rowEnd: 在行内显示,靠右对齐(默认)。inline: 使用grid默认样式
328
+ */
329
+ actionLayout?: "inline" | "newLine" | "rowEnd";
330
+ /**
331
+ * 操作按钮组显示位置,默认靠右显示
332
+ */
333
+ actionPosition?: "center" | "left" | "right";
334
+ /**
335
+ * 表单操作区域class
336
+ */
337
+ actionWrapperClass?: Array<object | string> | object | string;
338
+ /**
339
+ * 表单字段数组映射字符串配置 默认使用","
340
+ */
341
+ arrayToStringFields?: ArrayToStringFields;
342
+ /**
343
+ * 表单字段映射
344
+ */
345
+ fieldMappingTime?: FieldMappingTime;
346
+ /**
347
+ * 表单收起展开状态变化回调
348
+ */
349
+ handleCollapsedChange?: (collapsed: boolean) => void;
350
+ /**
351
+ * 表单重置回调
352
+ */
353
+ handleReset?: HandleResetFn;
354
+ /**
355
+ * 表单提交回调
356
+ */
357
+ handleSubmit?: HandleSubmitFn;
358
+ /**
359
+ * 表单值变化回调
360
+ */
361
+ handleValuesChange?: (values: Record<string, any>, fieldsChanged: string[]) => void;
362
+ /**
363
+ * 重置按钮参数
364
+ */
365
+ resetButtonOptions?: ActionButtonOptions;
366
+ /**
367
+ * 验证失败时是否自动滚动到第一个错误字段
368
+ * @default false
369
+ */
370
+ scrollToFirstError?: boolean;
371
+ /**
372
+ * 是否显示默认操作按钮
373
+ * @default true
374
+ */
375
+ showDefaultActions?: boolean;
376
+ /**
377
+ * 提交按钮参数
378
+ */
379
+ submitButtonOptions?: ActionButtonOptions;
380
+ /**
381
+ * 是否在字段值改变时提交表单
382
+ * @default false
383
+ */
384
+ submitOnChange?: boolean;
385
+ /**
386
+ * 是否在回车时提交表单
387
+ * @default false
388
+ */
389
+ submitOnEnter?: boolean;
390
+ }
391
+ export type ExtendedFormApi = Omit<FormApi, "getValues" | "validate"> & {
392
+ /**
393
+ * 校验表单,支持通过第二个参数控制是否滚动到第一个错误分组
394
+ * @param {any} [opts] - 原始 validate 选项
395
+ * @param {boolean} [scrollToError] - 是否滚动到第一个错误分组,不传时使用全局配置 scrollToFirstError
396
+ */
397
+ validate: (opts?: any, scrollToError?: boolean) => Promise<{
398
+ valid: boolean;
399
+ errors: Record<string, string>;
400
+ results?: any;
401
+ }>;
402
+ /**
403
+ * 获取表单值
404
+ * @param {boolean} [isGroup] - 为 true 时返回按分组 key 嵌套的对象,默认 false 返回扁平值
405
+ * @returns {Promise<T>} 表单值
406
+ */
407
+ getValues: <T = Record<string, any>>(isGroup?: boolean) => Promise<T>;
408
+ useStore: <T = NoInfer<TtFormProps>>(selector?: (state: NoInfer<TtFormProps>) => T) => Readonly<Ref<T>>;
409
+ /** 滚动到指定分组(仅 useGroupForm 场景下可用) */
410
+ scrollToGroup?: (key: string) => void;
411
+ /**
412
+ * 动态更新分组 schema(同时更新 UI 渲染和底层字段注册),仅 useGroupForm 场景下可用
413
+ * @param {any[]} newSchema - 新的分组 schema(实际类型为 GroupFormSchema[],此处用 any[] 避免循环依赖)
414
+ */
415
+ updateGroupSchema?: (newSchema: any[]) => void;
416
+ /**
417
+ * 在指定分组中增量插入字段,无需全量重建 schema
418
+ * @param {string} groupKey - 目标分组的 key
419
+ * @param {any[]} fields - 要插入的字段或子结构(实际类型为 GroupFormSchema[])
420
+ * @param {InsertPosition} [position] - 插入位置:before/after 匹配 fieldName、slot content 或 group key;省略则追加到末尾
421
+ */
422
+ appendFields?: (groupKey: string, fields: any[], position?: {
423
+ before?: string;
424
+ after?: string;
425
+ }) => void;
426
+ /**
427
+ * 按字段名从 groupSchema 树中移除字段,无需全量重建 schema
428
+ * @param {string[]} fieldNames - 要移除的字段名列表
429
+ */
430
+ removeFields?: (fieldNames: string[]) => void;
431
+ };
432
+ export interface TtFormAdapterOptions<T extends BaseFormComponentType = BaseFormComponentType> {
433
+ config?: {
434
+ baseModelPropName?: string;
435
+ disabledOnChangeListener?: boolean;
436
+ disabledOnInputListener?: boolean;
437
+ emptyStateValue?: null | undefined;
438
+ modelPropNameMap?: Partial<Record<T, string>>;
439
+ };
440
+ defineRules?: {
441
+ required?: (value: any, params: any, ctx: Record<string, any>) => boolean | string;
442
+ selectRequired?: (value: any, params: any, ctx: Record<string, any>) => boolean | string;
443
+ };
444
+ }
445
+ /**
446
+ * 根据组件类型推断组件参数类型的基础类型
447
+ * Base type for component props based on component type
448
+ * @template T - 组件类型(内置组件名或自定义组件)
449
+ * @template P - 自定义组件的 Props 类型(可选,用于自定义组件类型推断)
450
+ */
451
+ export type InferredComponentPropsType<T extends BaseFormComponentType | Component, P = never> = T extends BaseFormComponentType ? Partial<BaseFormComponentMap[T]> & MaybeComponentProps : [P] extends [never] ? MaybeComponentProps : Partial<P> & MaybeComponentProps;
452
+ export {};
@@ -0,0 +1,2 @@
1
+ import { BaseFormComponentType, ExtendedFormApi, TtFormProps } from './types';
2
+ export declare function useForm<T extends BaseFormComponentType = BaseFormComponentType>(options: TtFormProps<T>): readonly [import('vue').DefineSetupFnComponent<TtFormProps<keyof import('./types').BaseFormComponentMap>, {}, {}, TtFormProps<keyof import('./types').BaseFormComponentMap> & {}, import('vue').PublicProps>, ExtendedFormApi];
@@ -0,0 +1,12 @@
1
+ import { ComputedRef } from 'vue';
2
+ import { ExtendedFormApi, FormActions, TtFormProps } from './types';
3
+ type ExtendFormProps = TtFormProps & {
4
+ formApi?: ExtendedFormApi;
5
+ };
6
+ export declare const injectFormProps: <T extends [ExtendFormProps | ComputedRef<ExtendFormProps>, FormActions] | null | undefined = [ExtendFormProps | ComputedRef<ExtendFormProps>, FormActions]>(fallback?: T | undefined) => T extends null ? [ExtendFormProps | ComputedRef<ExtendFormProps>, FormActions] | null : [ExtendFormProps | ComputedRef<ExtendFormProps>, FormActions], provideFormProps: (contextValue: [ExtendFormProps | ComputedRef<ExtendFormProps>, FormActions]) => [ExtendFormProps | ComputedRef<ExtendFormProps>, FormActions];
7
+ export declare const injectComponentRefMap: <T extends Map<string, unknown> | null | undefined = Map<string, unknown>>(fallback?: T | undefined) => T extends null ? Map<string, unknown> | null : Map<string, unknown>, provideComponentRefMap: (contextValue: Map<string, unknown>) => Map<string, unknown>;
8
+ export declare function useFormInitial(props: ComputedRef<TtFormProps> | TtFormProps): {
9
+ delegatedSlots: ComputedRef<string[]>;
10
+ form: import('vee-validate').FormContext<Record<string, any>, Record<string, any>>;
11
+ };
12
+ export {};