@veltra/desktop 1.1.36 → 1.2.0

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 (191) hide show
  1. package/dist/components/action/action-group.vue.d.ts +1 -1
  2. package/dist/components/action/action.vue.d.ts +1 -1
  3. package/dist/components/auto-complete/auto-complete.js +1 -0
  4. package/dist/components/auto-complete/auto-complete.js.map +1 -1
  5. package/dist/components/batch-edit/batch-edit-form.js +12 -5
  6. package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
  7. package/dist/components/batch-edit/batch-edit.js +8 -3
  8. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  9. package/dist/components/batch-edit/batch-edit.vue.d.ts +40 -35
  10. package/dist/components/batch-edit/di.js.map +1 -1
  11. package/dist/components/batch-edit/use-edit.js +41 -23
  12. package/dist/components/batch-edit/use-edit.js.map +1 -1
  13. package/dist/components/cascade/cascade.js +1 -0
  14. package/dist/components/cascade/cascade.js.map +1 -1
  15. package/dist/components/cascade/cascade.vue.d.ts +4 -4
  16. package/dist/components/checkbox/checkbox-button.js +1 -0
  17. package/dist/components/checkbox/checkbox-button.js.map +1 -1
  18. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  19. package/dist/components/checkbox/checkbox.js +1 -0
  20. package/dist/components/checkbox/checkbox.js.map +1 -1
  21. package/dist/components/checkbox-group/checkbox-group.js +1 -0
  22. package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
  23. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
  24. package/dist/components/code-editor/code-editor.js +1 -0
  25. package/dist/components/code-editor/code-editor.js.map +1 -1
  26. package/dist/components/condition-editor/core/evaluator.js +3 -3
  27. package/dist/components/condition-editor/core/evaluator.js.map +1 -1
  28. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  29. package/dist/components/date-picker/date-picker.js +1 -0
  30. package/dist/components/date-picker/date-picker.js.map +1 -1
  31. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  32. package/dist/components/date-range-picker/date-range-picker.js +2 -0
  33. package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
  34. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  35. package/dist/components/empty/empty.vue.d.ts +1 -1
  36. package/dist/components/expression-editor/expression-editor.js +1 -0
  37. package/dist/components/expression-editor/expression-editor.js.map +1 -1
  38. package/dist/components/file-picker/file-picker.js +1 -0
  39. package/dist/components/file-picker/file-picker.js.map +1 -1
  40. package/dist/components/form/form.js.map +1 -1
  41. package/dist/components/form/form.vue.d.ts +11 -19
  42. package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js +24 -26
  43. package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  44. package/dist/components/form/index.d.ts +0 -3
  45. package/dist/components/form/use-form-fields.js +88 -0
  46. package/dist/components/form/use-form-fields.js.map +1 -0
  47. package/dist/components/form/use-node-interceptor.js +19 -30
  48. package/dist/components/form/use-node-interceptor.js.map +1 -1
  49. package/dist/components/form-item/form-item.js.map +1 -1
  50. package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +44 -18
  51. package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  52. package/dist/components/form-item/helper.js +4 -1
  53. package/dist/components/form-item/helper.js.map +1 -1
  54. package/dist/components/form-item/validate.d.ts +26 -0
  55. package/dist/components/form-item/validate.js +97 -0
  56. package/dist/components/form-item/validate.js.map +1 -0
  57. package/dist/components/group-input/group-input.js +1 -0
  58. package/dist/components/group-input/group-input.js.map +1 -1
  59. package/dist/components/index.d.ts +0 -3
  60. package/dist/components/index.js +0 -7
  61. package/dist/components/input/input.vue.d.ts +4 -4
  62. package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js +1 -0
  63. package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/multi-select/multi-select.js +1 -0
  65. package/dist/components/multi-select/multi-select.js.map +1 -1
  66. package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
  67. package/dist/components/multi-tree-select/multi-tree-select.js +1 -0
  68. package/dist/components/multi-tree-select/multi-tree-select.js.map +1 -1
  69. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +4 -4
  70. package/dist/components/number-input/number-input.js +1 -0
  71. package/dist/components/number-input/number-input.js.map +1 -1
  72. package/dist/components/number-range-input/number-range-input.js +1 -0
  73. package/dist/components/number-range-input/number-range-input.js.map +1 -1
  74. package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
  75. package/dist/components/palette/palette.js +1 -0
  76. package/dist/components/palette/palette.js.map +1 -1
  77. package/dist/components/password-input/password-input.js +1 -0
  78. package/dist/components/password-input/password-input.js.map +1 -1
  79. package/dist/components/radio/radio.js +1 -0
  80. package/dist/components/radio/radio.js.map +1 -1
  81. package/dist/components/radio-group/radio-group.js +1 -0
  82. package/dist/components/radio-group/radio-group.js.map +1 -1
  83. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  84. package/dist/components/rich-text-editor/rich-text-editor.js +3 -2
  85. package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
  86. package/dist/components/rich-text-editor/toolbar.js +10 -7
  87. package/dist/components/rich-text-editor/toolbar.js.map +1 -1
  88. package/dist/components/select/select.js +6 -3
  89. package/dist/components/select/select.js.map +1 -1
  90. package/dist/components/select/select.vue.d.ts +2 -2
  91. package/dist/components/slider/slider.js +15 -2
  92. package/dist/components/slider/slider.js.map +1 -1
  93. package/dist/components/switch/switch.js +1 -0
  94. package/dist/components/switch/switch.js.map +1 -1
  95. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  96. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  97. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  98. package/dist/components/textarea/textarea.js +1 -0
  99. package/dist/components/textarea/textarea.js.map +1 -1
  100. package/dist/components/tip/tip.vue.d.ts +3 -3
  101. package/dist/components/tree-select/tree-select.js +1 -0
  102. package/dist/components/tree-select/tree-select.js.map +1 -1
  103. package/dist/components/tree-select/tree-select.vue.d.ts +4 -4
  104. package/dist/index.d.ts +5 -6
  105. package/dist/index.js +1 -4
  106. package/dist/types/auto-complete.d.ts +3 -2
  107. package/dist/types/batch-edit.d.ts +4 -5
  108. package/dist/types/cascade.d.ts +3 -2
  109. package/dist/types/checkbox-group.d.ts +2 -2
  110. package/dist/types/checkbox.d.ts +4 -3
  111. package/dist/types/code-editor.d.ts +3 -2
  112. package/dist/types/date-picker.d.ts +3 -2
  113. package/dist/types/date-range-picker.d.ts +3 -2
  114. package/dist/types/expression-editor.d.ts +3 -2
  115. package/dist/types/file-picker.d.ts +3 -2
  116. package/dist/types/form-field.d.ts +12 -0
  117. package/dist/types/form-item.d.ts +2 -2
  118. package/dist/types/form.d.ts +9 -48
  119. package/dist/types/group-input.d.ts +3 -2
  120. package/dist/types/index.d.ts +4 -2
  121. package/dist/types/input.d.ts +3 -2
  122. package/dist/types/multi-select.d.ts +3 -2
  123. package/dist/types/multi-tree-select.d.ts +3 -2
  124. package/dist/types/palette.d.ts +3 -2
  125. package/dist/types/radio-group.d.ts +3 -2
  126. package/dist/types/radio.d.ts +3 -2
  127. package/dist/types/rich-text-editor.d.ts +3 -2
  128. package/dist/types/select.d.ts +3 -2
  129. package/dist/types/slider.d.ts +3 -2
  130. package/dist/types/switch.d.ts +3 -2
  131. package/dist/types/text-editor.d.ts +3 -2
  132. package/dist/types/textarea.d.ts +3 -2
  133. package/dist/types/tree-select.d.ts +3 -2
  134. package/package.json +6 -6
  135. package/src/components/batch-edit/batch-edit-form.vue +20 -13
  136. package/src/components/batch-edit/batch-edit.vue +7 -8
  137. package/src/components/batch-edit/di.ts +1 -2
  138. package/src/components/batch-edit/use-edit.ts +58 -36
  139. package/src/components/date-range-picker/date-range-picker.vue +2 -0
  140. package/src/components/form/form.vue +22 -38
  141. package/src/components/form/index.ts +0 -6
  142. package/src/components/form/use-form-fields.ts +126 -0
  143. package/src/components/form/use-node-interceptor.ts +27 -56
  144. package/src/components/form-item/form-item.vue +69 -18
  145. package/src/components/form-item/helper.ts +10 -4
  146. package/src/components/form-item/validate.ts +155 -0
  147. package/src/components/rich-text-editor/rich-text-editor.vue +28 -25
  148. package/src/components/rich-text-editor/toolbar.vue +23 -19
  149. package/src/components/select/select.vue +6 -4
  150. package/src/components/slider/slider.vue +12 -2
  151. package/src/types/auto-complete.ts +4 -2
  152. package/src/types/batch-edit.ts +4 -5
  153. package/src/types/cascade.ts +4 -2
  154. package/src/types/checkbox-group.ts +2 -2
  155. package/src/types/checkbox.ts +5 -3
  156. package/src/types/code-editor.ts +4 -2
  157. package/src/types/date-picker.ts +4 -2
  158. package/src/types/date-range-picker.ts +4 -2
  159. package/src/types/expression-editor.ts +4 -2
  160. package/src/types/file-picker.ts +4 -2
  161. package/src/types/form-field.ts +11 -0
  162. package/src/types/form-item.ts +2 -2
  163. package/src/types/form.ts +9 -82
  164. package/src/types/group-input.ts +4 -2
  165. package/src/types/index.ts +1 -0
  166. package/src/types/input.ts +4 -2
  167. package/src/types/multi-select.ts +4 -2
  168. package/src/types/multi-tree-select.ts +5 -2
  169. package/src/types/palette.ts +4 -2
  170. package/src/types/radio-group.ts +4 -2
  171. package/src/types/radio.ts +4 -2
  172. package/src/types/rich-text-editor.ts +4 -2
  173. package/src/types/select.ts +4 -2
  174. package/src/types/slider.ts +4 -2
  175. package/src/types/switch.ts +4 -2
  176. package/src/types/text-editor.ts +4 -2
  177. package/src/types/textarea.ts +4 -2
  178. package/src/types/tree-select.ts +5 -2
  179. package/dist/components/form/dynamic-form-model.d.ts +0 -73
  180. package/dist/components/form/dynamic-form-model.js +0 -184
  181. package/dist/components/form/dynamic-form-model.js.map +0 -1
  182. package/dist/components/form/form-model.d.ts +0 -73
  183. package/dist/components/form/form-model.js +0 -179
  184. package/dist/components/form/form-model.js.map +0 -1
  185. package/dist/components/form/helper.d.ts +0 -16
  186. package/dist/components/form/helper.js +0 -20
  187. package/dist/components/form/helper.js.map +0 -1
  188. package/src/components/form/__test__/form-model.test.ts +0 -190
  189. package/src/components/form/dynamic-form-model.ts +0 -258
  190. package/src/components/form/form-model.ts +0 -255
  191. package/src/components/form/helper.ts +0 -23
@@ -1,14 +1,15 @@
1
- import { ColorType, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { ColorType } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/checkbox.d.ts
4
5
  /** 复选框组件属性 */
5
- interface CheckboxProps extends FormComponentProps {
6
+ interface CheckboxProps extends FormFieldComponentProps {
6
7
  /** 部分选中 */
7
8
  indeterminate?: boolean;
8
9
  /** 是否选中 */
9
10
  modelValue?: boolean;
10
11
  }
11
- interface CheckboxButtonProps extends FormComponentProps {
12
+ interface CheckboxButtonProps extends FormFieldComponentProps {
12
13
  /** 是否选中 */
13
14
  modelValue?: boolean;
14
15
  /** 是否圆角 */
@@ -1,9 +1,10 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/code-editor.d.ts
4
5
  type CodeEditorLang = 'js' | 'sql' | 'java' | 'json';
5
6
  /** 代码编辑器组件属性(不支持 `size`) */
6
- interface CodeEditorProps extends Omit<FormComponentProps, 'size'> {
7
+ interface CodeEditorProps extends Omit<FormFieldComponentProps, 'size'> {
7
8
  modelValue?: string;
8
9
  /** 定义语言 */
9
10
  language?: CodeEditorLang;
@@ -1,9 +1,10 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
  import { Dater } from "@cat-kit/core";
3
4
 
4
5
  //#region src/types/date-picker.d.ts
5
6
  /** date-picker组件属性 */
6
- interface DatePickerProps extends FormComponentProps {
7
+ interface DatePickerProps extends FormFieldComponentProps {
7
8
  modelValue?: string | number | Date;
8
9
  /** 占位 */
9
10
  placeholder?: string;
@@ -1,9 +1,10 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
  import { Dater } from "@cat-kit/core";
3
4
 
4
5
  //#region src/types/date-range-picker.d.ts
5
6
  /** date-range-picker组件属性 */
6
- interface DateRangePickerProps extends FormComponentProps {
7
+ interface DateRangePickerProps extends FormFieldComponentProps {
7
8
  modelValue?: [string, string];
8
9
  /** 占位 */
9
10
  placeholder?: [string, string];
@@ -1,4 +1,5 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/expression-editor.d.ts
4
5
  interface VariableItem {
@@ -12,7 +13,7 @@ interface VariableItem {
12
13
  /** 选中范围:仅叶子节点,或允许任意层级(含分支) */
13
14
  type ExpressionSelectableLevels = 'leaf' | 'any';
14
15
  /** 表达式编辑器组件属性 */
15
- interface ExpressionEditorProps extends FormComponentProps {
16
+ interface ExpressionEditorProps extends FormFieldComponentProps {
16
17
  modelValue?: string;
17
18
  placeholder?: string;
18
19
  /** 变量列表 */
@@ -1,8 +1,9 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/file-picker.d.ts
4
5
  /** 文件上传器组件属性 */
5
- interface UploaderProps extends FormComponentProps {
6
+ interface UploaderProps extends FormFieldComponentProps {
6
7
  /** 渲染标签 */
7
8
  tag?: string;
8
9
  /** 允许上传的文件类型 */
@@ -0,0 +1,12 @@
1
+ import { PresetRule, ValidateRule } from "../components/form-item/validate.js";
2
+ import { FormComponentProps } from "@veltra/utils";
3
+
4
+ //#region src/types/form-field.d.ts
5
+ /** 带校验规则的表单控件通用属性 */
6
+ interface FormFieldComponentProps extends FormComponentProps {
7
+ /** 校验规则 */
8
+ rules?: ValidateRule;
9
+ }
10
+ //#endregion
11
+ export { FormFieldComponentProps };
12
+ //# sourceMappingURL=form-field.d.ts.map
@@ -1,8 +1,8 @@
1
- import { FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
2
 
3
3
  //#region src/types/form-item.d.ts
4
4
  /** 组件项组件属性 */
5
- interface FormItemProps extends FormComponentProps {
5
+ interface FormItemProps extends FormFieldComponentProps {
6
6
  /** 标签宽度 */
7
7
  labelWidth?: string | number;
8
8
  }
@@ -1,59 +1,16 @@
1
- import { NestedFieldMarker } from "../components/form/helper.js";
2
1
  import { ShallowRef } from "vue";
3
- import { ComponentProps, DeconstructValue, ValidateRule } from "@veltra/utils";
2
+ import { ComponentProps, DeconstructValue } from "@veltra/utils";
4
3
 
5
4
  //#region src/types/form.d.ts
6
- interface FormModelItem<Val = any> extends ValidateRule {
7
- /** 模型值 */
8
- value?: Val;
9
- }
10
- type FormModelField = FormModelItem | NestedFieldMarker;
11
- type ModelData<Fields extends Record<string, any>> = { [key in keyof Fields]: Fields[key] extends NestedFieldMarker<infer SubFields> ? ModelData<SubFields> : Fields[key] extends FormModelItem ? Fields[key]['value'] extends (() => infer T) ? T : Fields[key]['value'] : never };
12
- type AllKeys<Fields extends Record<string, any>> = { [K in keyof Fields]: K extends string ? Fields[K] extends NestedFieldMarker<infer SubFields> ? `${K}.${AllKeys<SubFields>}` : K : never }[keyof Fields];
13
- type ModelRules<Fields extends Record<string, FormModelItem>> = { [key in keyof Fields]: Omit<Fields[key], 'value'> };
14
- interface DataSettingConfig {
15
- /**
16
- * 是否校验
17
- * @default true
18
- */
19
- validate?: boolean;
20
- }
21
- type IFormModel<Fields extends Record<string, any> = Record<string, any>> = {
22
- /** 表单数据 */readonly data: ModelData<Fields>; /** 字段校验规则 */
23
- readonly fields: Fields;
24
- /**
25
- * 字段键
26
- */
27
- readonly allKeys: string[]; /** 需要校验的key */
28
- formKeys: Map<number, string[]>; /** 错误 */
29
- readonly errors: Map<string, string[] | undefined>;
30
- /**
31
- * 字段校验
32
- * @param fields 字段, 如果不传入时将会使用keyFields来进行校验
33
- */
34
- validate: (fields?: string | string[]) => Promise<boolean>; /** 重置数据 */
35
- resetData(fields?: string | string[]): void;
36
- /**
37
- * 设置数据
38
- * @param formData 表单值
39
- * @param options 配置
40
- */
41
- setData(formData: Partial<Record<string, any>>, config?: DataSettingConfig): void; /** 清除校验 */
42
- clearValidate(): void; /** 监听值变更 */
43
- onChange(cb: (field: string, val: any) => void): void; /** 关闭监听值变更 */
44
- offChange(cb: (field: string, val: any) => void): void;
45
- };
46
5
  /** 表单组件属性 */
47
- interface FormProps<Model extends IFormModel = IFormModel> extends ComponentProps {
6
+ interface FormProps extends ComponentProps {
48
7
  /**
49
8
  * 自定义表单列数
50
9
  * - 默认根据尺寸断点自动排列
51
10
  */
52
11
  cols?: number;
53
- /** 是否显示初始数据 */
54
- showInitialData?: boolean;
55
- /** 表单数据模型 */
56
- model: Model;
12
+ /** 表单数据 */
13
+ model?: Record<string, any>;
57
14
  /** 表单项label宽度 */
58
15
  labelWidth?: string | number;
59
16
  /** 是否不显示tips */
@@ -65,8 +22,12 @@ interface FormProps<Model extends IFormModel = IFormModel> extends ComponentProp
65
22
  }
66
23
  interface _FormExposed {
67
24
  el: ShallowRef<HTMLElement | null | undefined>;
25
+ validate: (keys?: string[]) => Promise<boolean>;
26
+ clearValidate: () => void;
27
+ /** 将 model 恢复为最近一次 props.model 引用变更时的快照,并清除校验 */
28
+ reset: () => void;
68
29
  }
69
30
  type FormExposed = DeconstructValue<_FormExposed>;
70
31
  //#endregion
71
- export { AllKeys, DataSettingConfig, FormExposed, FormModelField, FormModelItem, FormProps, IFormModel, ModelData, ModelRules, _FormExposed };
32
+ export { FormExposed, FormProps, _FormExposed };
72
33
  //# sourceMappingURL=form.d.ts.map
@@ -1,9 +1,10 @@
1
+ import { FormFieldComponentProps } from "./form-field.js";
1
2
  import { StyleValue } from "vue";
2
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
3
+ import { DeconstructValue } from "@veltra/utils";
3
4
 
4
5
  //#region src/types/group-input.d.ts
5
6
  /** 分组输入组件属性 */
6
- interface GroupInputProps<GroupItem extends Record<string, any> = Record<string, any>> extends FormComponentProps {
7
+ interface GroupInputProps<GroupItem extends Record<string, any> = Record<string, any>> extends FormFieldComponentProps {
7
8
  modelValue?: GroupItem[];
8
9
  /** 最大数量 */
9
10
  max?: number;
@@ -1,3 +1,5 @@
1
+ import { PresetRule, ValidateRule } from "../components/form-item/validate.js";
2
+ import { FormFieldComponentProps } from "./form-field.js";
1
3
  import { CascadeEmits, CascadeExposed, CascadeNode, CascadeProps, PanelItem, _CascadeExposed } from "./cascade.js";
2
4
  import { Message, MessageEmits, MessageExposed, MessageInstance, MessageOptions, MessageProps, MessageType, _MessageExposed } from "./message.js";
3
5
  import { MultiSelectEmits, MultiSelectExposed, MultiSelectProps, _MultiSelectExposed } from "./multi-select.js";
@@ -23,7 +25,6 @@ import { ButtonEmits, ButtonExposed, ButtonProps, ButtonType, _ButtonExposed } f
23
25
  import { DatePanelEmits, DatePanelProps, PanelType } from "./date-panel.js";
24
26
  import { DialogEmits, DialogExposed, DialogProps, DialogTransition, _DialogExposed } from "./dialog.js";
25
27
  import { ActionEmits, ActionExposed, ActionGroupExposed, ActionGroupProps, ActionProps, _ActionExposed, _ActionGroupExposed } from "./action.js";
26
- import { AllKeys, DataSettingConfig, FormExposed, FormModelField, FormModelItem, FormProps, IFormModel, ModelData, ModelRules, _FormExposed } from "./form.js";
27
28
  import { TableColumn, TableColumnAlign, TableColumnNode, TableColumnRenderContext, TableColumnSlotsScope, TableEmits, TableExposed, TableProps, TableRow, TableRowSlotsScope, TableSummaryContext, _TableExposed } from "./table.js";
28
29
  import { BatchEditColumn, BatchEditEmits, BatchEditExposed, BatchEditFeature, BatchEditProps, _BatchEditExposed } from "./batch-edit.js";
29
30
  import { BreadcrumbEmits, BreadcrumbExposed, BreadcrumbItem, BreadcrumbProps, BreadcrumbSlotScope, _BreadcrumbExposed } from "./breadcrumb.js";
@@ -34,6 +35,7 @@ import { FloatButtonEmits, FloatButtonExposed, FloatButtonItem, FloatButtonProps
34
35
  import { CalendarDay, CalendarEmits, CalendarExposed, CalendarMonth, CalendarProps, CalendarYear, _CalendarExposed } from "./calendar.js";
35
36
  import { PaletteColorType, PaletteEmits, PaletteExposed, PaletteHSV, PaletteProps, PaletteRGB, _PaletteExposed } from "./palette.js";
36
37
  import { InputEmits, InputExposed, InputProps, _InputExposed } from "./input.js";
38
+ import { FormExposed, FormProps, _FormExposed } from "./form.js";
37
39
  import { UploaderEmits, UploaderExposed, UploaderProps, _UploaderExposed } from "./file-picker.js";
38
40
  import { PopEmits, PopExposed, PopProps, _PopExposed } from "./pop.js";
39
41
  import { GridInputEmits, GridInputExposed, GridInputProps, _GridInputExposed } from "./grid-input.js";
@@ -81,7 +83,7 @@ export type * from "@veltra/utils";
81
83
 
82
84
  //#region src/types/index.d.ts
83
85
  declare namespace index_d_exports {
84
- export { ActionEmits, ActionExposed, ActionGroupExposed, ActionGroupProps, ActionProps, AllKeys, AnimationEmits, AnimationExposed, AnimationProps, AutoCompleteEmits, AutoCompleteExposed, AutoCompleteProps, BadgeEmits, BadgeExposed, BadgeProps, BarType, BatchEditColumn, BatchEditEmits, BatchEditExposed, BatchEditFeature, BatchEditProps, BreadcrumbEmits, BreadcrumbExposed, BreadcrumbItem, BreadcrumbProps, BreadcrumbSlotScope, BreakCols, Breakpoint, ButtonEmits, ButtonExposed, ButtonProps, ButtonType, CalendarDay, CalendarEmits, CalendarExposed, CalendarMonth, CalendarProps, CalendarYear, CardActionProps, CardContentProps, CardCoverProps, CardEmits, CardExposed, CardProps, CascadeEmits, CascadeExposed, CascadeNode, CascadeProps, CheckTagEmits, CheckTagExposed, CheckTagProps, CheckboxButtonEmits, CheckboxButtonProps, CheckboxEmits, CheckboxExposed, CheckboxGroupEmits, CheckboxGroupExposed, CheckboxGroupProps, CheckboxProps, CodeEditorEmits, CodeEditorExposed, CodeEditorLang, CodeEditorProps, CollapseEmits, CollapseItemProps, CollapseModelValue, CollapseProps, CollapseValue, ConditionConnector, ConditionEditorEmits, ConditionEditorExposed, ConditionEditorProps, ConditionExpression, ConditionField, ConditionGroup, ConditionLeaf, ConditionNode, ConditionValue, ContextmenuEmits, ContextmenuExposed, ContextmenuItem, ContextmenuProps, CssTransitionEmits, CssTransitionExposed, CssTransitionProps, DataSettingConfig, DatePanelEmits, DatePanelProps, DatePickerEmits, DatePickerExposed, DatePickerProps, DateRangePickerEmits, DateRangePickerExposed, DateRangePickerProps, DialogEmits, DialogExposed, DialogProps, DialogTransition, DrawerDirection, DrawerEmits, DrawerExposed, DrawerMode, DrawerProps, DropdownEmits, DropdownExposed, DropdownProps, EmptyEmits, EmptyExposed, EmptyProps, ExpressionEditorEmits, ExpressionEditorExposed, ExpressionEditorProps, ExpressionSelectableLevels, FileViewerEmits, FileViewerExposed, FileViewerItem, FileViewerKind, FileViewerProps, FloatButtonEmits, FloatButtonExposed, FloatButtonItem, FloatButtonProps, FormExposed, FormItemEmits, FormItemExposed, FormItemProps, FormModelField, FormModelItem, FormProps, GanttChartEmits, GanttChartExposed, GanttChartProps, GridEmits, GridExposed, GridInputEmits, GridInputExposed, GridInputProps, GridItemProps, GridProps, GroupInputEmits, GroupInputExposed, GroupInputProps, IFormModel, IconEmits, IconExposed, IconProps, InputEmits, InputExposed, InputProps, LayoutEmits, LayoutExposed, LayoutProps, ListEmits, ListExposed, ListProps, LoadingEmits, LoadingExposed, LoadingProps, LoadingType, MenuEmits, MenuExposed, MenuItem, MenuProps, Message, MessageConfirmEmits, MessageConfirmExposed, MessageConfirmProps, MessageEmits, MessageExposed, MessageInstance, MessageOptions, MessageProps, MessageType, ModelData, ModelRules, MultiAutoCompleteEmits, MultiAutoCompleteExposed, MultiAutoCompleteProps, MultiSelectEmits, MultiSelectExposed, MultiSelectProps, MultiTreeSelectEmits, MultiTreeSelectExposed, MultiTreeSelectProps, NodeRenderExposed, NodeRenderProps, NotificationEmits, NotificationExposed, NotificationProps, NumberEmits, NumberExposed, NumberInputEmits, NumberInputExposed, NumberInputProps, NumberProps, NumberRangeInputEmits, NumberRangeInputExposed, NumberRangeInputProps, NumberRangeTuple, PaginatorEmits, PaginatorExposed, PaginatorProps, PaletteColorType, PaletteEmits, PaletteExposed, PaletteHSV, PaletteProps, PaletteRGB, PanelItem, PanelType, PasswordInputEmits, PasswordInputExposed, PasswordInputProps, PopConfirmEmits, PopConfirmExposed, PopConfirmProps, PopEmits, PopExposed, PopProps, ProgressEmits, ProgressExposed, ProgressNodesEmits, ProgressNodesExposed, ProgressNodesProps, ProgressProps, QuickBatchEditEmits, QuickBatchEditExposed, QuickBatchEditProps, RadioEmits, RadioExposed, RadioGroupEmits, RadioGroupExposed, RadioGroupProps, RadioProps, RichTextEditorEmits, RichTextEditorExposed, RichTextEditorProps, RichTextFormat, ScrollEmits, ScrollExposed, ScrollPosition, ScrollProps, SelectEmits, SelectExposed, SelectProps, SliderEmits, SliderExposed, SliderProps, StepsEmits, StepsExposed, StepsProps, StepsSlotScope, SwitchEmits, SwitchExposed, SwitchProps, TabItem, TableColumn, TableColumnAlign, TableColumnNode, TableColumnRenderContext, TableColumnSlotsScope, TableEditorEmits, TableEditorExposed, TableEditorProps, TableEmits, TableExposed, TableProps, TableRow, TableRowSlotsScope, TableSummaryContext, TabsEmits, TabsExposed, TabsHorizontalEmits, TabsHorizontalExposed, TabsHorizontalProps, TabsProps, TabsVerticalEmits, TabsVerticalExposed, TabsVerticalProps, TagEmits, TagExposed, TagProps, TextEditorEmits, TextEditorExposed, TextEditorProps, TextEmits, TextExposed, TextProps, TextareaEmits, TextareaExposed, TextareaProps, ThemeExposed, ThemeProps, TipAlign, TipDirection, TipEmits, TipExposed, TipProps, ToolbarItem, TreeEmit, TreeExposed, TreeNode, TreeNodeProps, TreeProps, TreeSelectEmits, TreeSelectExposed, TreeSelectProps, UploaderEmits, UploaderExposed, UploaderProps, VariableItem, WatermarkEmits, WatermarkExposed, WatermarkProps, _ActionExposed, _ActionGroupExposed, _AnimationExposed, _AutoCompleteExposed, _BadgeExposed, _BatchEditExposed, _BreadcrumbExposed, _ButtonExposed, _CalendarExposed, _CardExposed, _CascadeExposed, _CheckTagExposed, _CodeEditorExposed, _ConditionEditorExposed, _ContextmenuExposed, _CssTransitionExposed, _DatePickerExposed, _DateRangePickerExposed, _DialogExposed, _DrawerExposed, _DropdownExposed, _EmptyExposed, _ExpressionEditorExposed, _FileViewerExposed, _FloatButtonExposed, _FormExposed, _GanttChartExposed, _GridExposed, _GridInputExposed, _GroupInputExposed, _InputExposed, _LayoutExposed, _ListExposed, _LoadingExposed, _MenuExposed, _MessageConfirmExposed, _MessageExposed, _MultiAutoCompleteExposed, _MultiSelectExposed, _MultiTreeSelectExposed, _NotificationExposed, _PaginatorExposed, _PaletteExposed, _PasswordInputExposed, _PopConfirmExposed, _PopExposed, _ProgressExposed, _ProgressNodesExposed, _QuickBatchEditExposed, _RadioExposed, _RadioGroupExposed, _RichTextEditorExposed, _ScrollExposed, _SelectExposed, _SliderExposed, _StepsExposed, _SwitchExposed, _TableEditorExposed, _TableExposed, _TabsExposed, _TabsHorizontalExposed, _TabsVerticalExposed, _TextEditorExposed, _TextExposed, _TextareaExposed, _ThemeExposed, _TipExposed, _TreeExposed, _TreeSelectExposed, _UploaderExposed, _WatermarkExposed };
86
+ export { ActionEmits, ActionExposed, ActionGroupExposed, ActionGroupProps, ActionProps, AnimationEmits, AnimationExposed, AnimationProps, AutoCompleteEmits, AutoCompleteExposed, AutoCompleteProps, BadgeEmits, BadgeExposed, BadgeProps, BarType, BatchEditColumn, BatchEditEmits, BatchEditExposed, BatchEditFeature, BatchEditProps, BreadcrumbEmits, BreadcrumbExposed, BreadcrumbItem, BreadcrumbProps, BreadcrumbSlotScope, BreakCols, Breakpoint, ButtonEmits, ButtonExposed, ButtonProps, ButtonType, CalendarDay, CalendarEmits, CalendarExposed, CalendarMonth, CalendarProps, CalendarYear, CardActionProps, CardContentProps, CardCoverProps, CardEmits, CardExposed, CardProps, CascadeEmits, CascadeExposed, CascadeNode, CascadeProps, CheckTagEmits, CheckTagExposed, CheckTagProps, CheckboxButtonEmits, CheckboxButtonProps, CheckboxEmits, CheckboxExposed, CheckboxGroupEmits, CheckboxGroupExposed, CheckboxGroupProps, CheckboxProps, CodeEditorEmits, CodeEditorExposed, CodeEditorLang, CodeEditorProps, CollapseEmits, CollapseItemProps, CollapseModelValue, CollapseProps, CollapseValue, ConditionConnector, ConditionEditorEmits, ConditionEditorExposed, ConditionEditorProps, ConditionExpression, ConditionField, ConditionGroup, ConditionLeaf, ConditionNode, ConditionValue, ContextmenuEmits, ContextmenuExposed, ContextmenuItem, ContextmenuProps, CssTransitionEmits, CssTransitionExposed, CssTransitionProps, DatePanelEmits, DatePanelProps, DatePickerEmits, DatePickerExposed, DatePickerProps, DateRangePickerEmits, DateRangePickerExposed, DateRangePickerProps, DialogEmits, DialogExposed, DialogProps, DialogTransition, DrawerDirection, DrawerEmits, DrawerExposed, DrawerMode, DrawerProps, DropdownEmits, DropdownExposed, DropdownProps, EmptyEmits, EmptyExposed, EmptyProps, ExpressionEditorEmits, ExpressionEditorExposed, ExpressionEditorProps, ExpressionSelectableLevels, FileViewerEmits, FileViewerExposed, FileViewerItem, FileViewerKind, FileViewerProps, FloatButtonEmits, FloatButtonExposed, FloatButtonItem, FloatButtonProps, FormExposed, FormFieldComponentProps, FormItemEmits, FormItemExposed, FormItemProps, FormProps, GanttChartEmits, GanttChartExposed, GanttChartProps, GridEmits, GridExposed, GridInputEmits, GridInputExposed, GridInputProps, GridItemProps, GridProps, GroupInputEmits, GroupInputExposed, GroupInputProps, IconEmits, IconExposed, IconProps, InputEmits, InputExposed, InputProps, LayoutEmits, LayoutExposed, LayoutProps, ListEmits, ListExposed, ListProps, LoadingEmits, LoadingExposed, LoadingProps, LoadingType, MenuEmits, MenuExposed, MenuItem, MenuProps, Message, MessageConfirmEmits, MessageConfirmExposed, MessageConfirmProps, MessageEmits, MessageExposed, MessageInstance, MessageOptions, MessageProps, MessageType, MultiAutoCompleteEmits, MultiAutoCompleteExposed, MultiAutoCompleteProps, MultiSelectEmits, MultiSelectExposed, MultiSelectProps, MultiTreeSelectEmits, MultiTreeSelectExposed, MultiTreeSelectProps, NodeRenderExposed, NodeRenderProps, NotificationEmits, NotificationExposed, NotificationProps, NumberEmits, NumberExposed, NumberInputEmits, NumberInputExposed, NumberInputProps, NumberProps, NumberRangeInputEmits, NumberRangeInputExposed, NumberRangeInputProps, NumberRangeTuple, PaginatorEmits, PaginatorExposed, PaginatorProps, PaletteColorType, PaletteEmits, PaletteExposed, PaletteHSV, PaletteProps, PaletteRGB, PanelItem, PanelType, PasswordInputEmits, PasswordInputExposed, PasswordInputProps, PopConfirmEmits, PopConfirmExposed, PopConfirmProps, PopEmits, PopExposed, PopProps, PresetRule, ProgressEmits, ProgressExposed, ProgressNodesEmits, ProgressNodesExposed, ProgressNodesProps, ProgressProps, QuickBatchEditEmits, QuickBatchEditExposed, QuickBatchEditProps, RadioEmits, RadioExposed, RadioGroupEmits, RadioGroupExposed, RadioGroupProps, RadioProps, RichTextEditorEmits, RichTextEditorExposed, RichTextEditorProps, RichTextFormat, ScrollEmits, ScrollExposed, ScrollPosition, ScrollProps, SelectEmits, SelectExposed, SelectProps, SliderEmits, SliderExposed, SliderProps, StepsEmits, StepsExposed, StepsProps, StepsSlotScope, SwitchEmits, SwitchExposed, SwitchProps, TabItem, TableColumn, TableColumnAlign, TableColumnNode, TableColumnRenderContext, TableColumnSlotsScope, TableEditorEmits, TableEditorExposed, TableEditorProps, TableEmits, TableExposed, TableProps, TableRow, TableRowSlotsScope, TableSummaryContext, TabsEmits, TabsExposed, TabsHorizontalEmits, TabsHorizontalExposed, TabsHorizontalProps, TabsProps, TabsVerticalEmits, TabsVerticalExposed, TabsVerticalProps, TagEmits, TagExposed, TagProps, TextEditorEmits, TextEditorExposed, TextEditorProps, TextEmits, TextExposed, TextProps, TextareaEmits, TextareaExposed, TextareaProps, ThemeExposed, ThemeProps, TipAlign, TipDirection, TipEmits, TipExposed, TipProps, ToolbarItem, TreeEmit, TreeExposed, TreeNode, TreeNodeProps, TreeProps, TreeSelectEmits, TreeSelectExposed, TreeSelectProps, UploaderEmits, UploaderExposed, UploaderProps, ValidateRule, VariableItem, WatermarkEmits, WatermarkExposed, WatermarkProps, _ActionExposed, _ActionGroupExposed, _AnimationExposed, _AutoCompleteExposed, _BadgeExposed, _BatchEditExposed, _BreadcrumbExposed, _ButtonExposed, _CalendarExposed, _CardExposed, _CascadeExposed, _CheckTagExposed, _CodeEditorExposed, _ConditionEditorExposed, _ContextmenuExposed, _CssTransitionExposed, _DatePickerExposed, _DateRangePickerExposed, _DialogExposed, _DrawerExposed, _DropdownExposed, _EmptyExposed, _ExpressionEditorExposed, _FileViewerExposed, _FloatButtonExposed, _FormExposed, _GanttChartExposed, _GridExposed, _GridInputExposed, _GroupInputExposed, _InputExposed, _LayoutExposed, _ListExposed, _LoadingExposed, _MenuExposed, _MessageConfirmExposed, _MessageExposed, _MultiAutoCompleteExposed, _MultiSelectExposed, _MultiTreeSelectExposed, _NotificationExposed, _PaginatorExposed, _PaletteExposed, _PasswordInputExposed, _PopConfirmExposed, _PopExposed, _ProgressExposed, _ProgressNodesExposed, _QuickBatchEditExposed, _RadioExposed, _RadioGroupExposed, _RichTextEditorExposed, _ScrollExposed, _SelectExposed, _SliderExposed, _StepsExposed, _SwitchExposed, _TableEditorExposed, _TableExposed, _TabsExposed, _TabsHorizontalExposed, _TabsVerticalExposed, _TextEditorExposed, _TextExposed, _TextareaExposed, _ThemeExposed, _TipExposed, _TreeExposed, _TreeSelectExposed, _UploaderExposed, _WatermarkExposed };
85
87
  }
86
88
  import * as import__veltra_utils from "@veltra/utils";
87
89
  //#endregion
@@ -1,9 +1,10 @@
1
+ import { FormFieldComponentProps } from "./form-field.js";
1
2
  import { ShallowRef } from "vue";
2
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
3
+ import { DeconstructValue } from "@veltra/utils";
3
4
 
4
5
  //#region src/types/input.d.ts
5
6
  /** 输入框组件属性 */
6
- interface InputProps extends FormComponentProps {
7
+ interface InputProps extends FormFieldComponentProps {
7
8
  /** modelValue */
8
9
  modelValue?: string;
9
10
  /** 占位符 */
@@ -1,9 +1,10 @@
1
+ import { FormFieldComponentProps } from "./form-field.js";
1
2
  import { CSSProperties } from "vue";
2
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
3
+ import { DeconstructValue } from "@veltra/utils";
3
4
 
4
5
  //#region src/types/multi-select.d.ts
5
6
  /** multi-select组件属性 */
6
- interface MultiSelectProps extends FormComponentProps {
7
+ interface MultiSelectProps extends FormFieldComponentProps {
7
8
  /** 绑定值 */
8
9
  modelValue?: Array<any>;
9
10
  /** 列表选项 */
@@ -1,10 +1,11 @@
1
+ import { FormFieldComponentProps } from "./form-field.js";
1
2
  import { TreeProps } from "./tree.js";
2
3
  import { CSSProperties } from "vue";
3
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
4
+ import { DeconstructValue } from "@veltra/utils";
4
5
 
5
6
  //#region src/types/multi-tree-select.d.ts
6
7
  /** 树形多选组件组件属性 */
7
- interface MultiTreeSelectProps extends FormComponentProps, Omit<TreeProps, 'selected' | 'checked' | 'selectable' | 'checkable'> {
8
+ interface MultiTreeSelectProps extends FormFieldComponentProps, Omit<TreeProps, 'selected' | 'checked' | 'selectable' | 'checkable'> {
8
9
  modelValue?: (string | number)[];
9
10
  /**自定义占位文字 */
10
11
  placeholder?: string;
@@ -1,4 +1,5 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/palette.d.ts
4
5
  /** 色调 */
@@ -16,7 +17,7 @@ interface PaletteHSV {
16
17
  /** 调色盘组件颜色类型 */
17
18
  type PaletteColorType = 'HEX' | 'RGB';
18
19
  /** 调色盘组件属性 */
19
- interface PaletteProps extends FormComponentProps {
20
+ interface PaletteProps extends FormFieldComponentProps {
20
21
  modelValue?: string;
21
22
  disabled?: boolean;
22
23
  readonly?: boolean;
@@ -1,8 +1,9 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/radio-group.d.ts
4
5
  /** 单选框默认父组件组件属性 */
5
- interface RadioGroupProps extends FormComponentProps {
6
+ interface RadioGroupProps extends FormFieldComponentProps {
6
7
  /** 值 */
7
8
  modelValue?: any;
8
9
  /** 单选框项 */
@@ -1,8 +1,9 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/radio.d.ts
4
5
  /** 单选框组件属性 */
5
- interface RadioProps extends FormComponentProps {
6
+ interface RadioProps extends FormFieldComponentProps {
6
7
  /** 单选框值 */
7
8
  value?: any;
8
9
  /** 文本 */
@@ -1,4 +1,5 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/rich-text-editor.d.ts
4
5
  /** 富文本数据格式 */
@@ -6,7 +7,7 @@ type RichTextFormat = 'html' | 'json';
6
7
  /** 工具栏项 */
7
8
  type ToolbarItem = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'code' | 'heading' | 'bullet-list' | 'ordered-list' | 'blockquote' | 'code-block' | 'link' | 'undo' | 'redo' | '|';
8
9
  /** 富文本编辑器组件属性 */
9
- interface RichTextEditorProps extends FormComponentProps {
10
+ interface RichTextEditorProps extends FormFieldComponentProps {
10
11
  modelValue?: string;
11
12
  /** 数据格式:html 或 json */
12
13
  format?: RichTextFormat;
@@ -1,9 +1,10 @@
1
+ import { FormFieldComponentProps } from "./form-field.js";
1
2
  import { CSSProperties, ShallowRef } from "vue";
2
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
3
+ import { DeconstructValue } from "@veltra/utils";
3
4
 
4
5
  //#region src/types/select.d.ts
5
6
  /** 选择器组件属性 */
6
- interface SelectProps extends FormComponentProps {
7
+ interface SelectProps extends FormFieldComponentProps {
7
8
  /** 绑定值 */
8
9
  modelValue?: any;
9
10
  /** 文本内容 */
@@ -1,8 +1,9 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/slider.d.ts
4
5
  /** 滑块组件属性 */
5
- interface SliderProps<T extends number | [number, number]> extends FormComponentProps {
6
+ interface SliderProps<T extends number | [number, number]> extends FormFieldComponentProps {
6
7
  modelValue?: T;
7
8
  /**
8
9
  * 最小值
@@ -1,8 +1,9 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/switch.d.ts
4
5
  /** 开关组件属性 */
5
- interface SwitchProps extends FormComponentProps {
6
+ interface SwitchProps extends FormFieldComponentProps {
6
7
  /** 开关状态 */
7
8
  modelValue?: boolean;
8
9
  /** 打开时显示的文字 */
@@ -1,4 +1,5 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/text-editor.d.ts
4
5
  /** text-editor组件属性 */
@@ -6,7 +7,7 @@ interface BarType {
6
7
  content: string;
7
8
  bar: string;
8
9
  }
9
- interface TextEditorProps extends FormComponentProps {
10
+ interface TextEditorProps extends FormFieldComponentProps {
10
11
  modelValue?: string;
11
12
  placeholder?: string;
12
13
  toolbar?: BarType[];
@@ -1,8 +1,9 @@
1
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
1
+ import { FormFieldComponentProps } from "./form-field.js";
2
+ import { DeconstructValue } from "@veltra/utils";
2
3
 
3
4
  //#region src/types/textarea.d.ts
4
5
  /** textarea组件属性 */
5
- interface TextareaProps extends FormComponentProps {
6
+ interface TextareaProps extends FormFieldComponentProps {
6
7
  /**
7
8
  * 文本域的值
8
9
  */
@@ -1,10 +1,11 @@
1
+ import { FormFieldComponentProps } from "./form-field.js";
1
2
  import { TreeProps } from "./tree.js";
2
3
  import { CSSProperties } from "vue";
3
- import { DeconstructValue, FormComponentProps } from "@veltra/utils";
4
+ import { DeconstructValue } from "@veltra/utils";
4
5
 
5
6
  //#region src/types/tree-select.d.ts
6
7
  /** 树形选择器组件属性 */
7
- interface TreeSelectProps extends FormComponentProps, Omit<TreeProps, 'selected' | 'checked' | 'selectable' | 'checkable'> {
8
+ interface TreeSelectProps extends FormFieldComponentProps, Omit<TreeProps, 'selected' | 'checked' | 'selectable' | 'checkable'> {
8
9
  modelValue?: string | number;
9
10
  /** 自定义占位文字 */
10
11
  placeholder?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veltra/desktop",
3
- "version": "1.1.36",
3
+ "version": "1.2.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "src"
@@ -68,11 +68,11 @@
68
68
  "@cat-kit/core": ">=1.1.6",
69
69
  "@cat-kit/excel": ">=1.0.0",
70
70
  "@cat-kit/fe": "^1.1.6",
71
- "@veltra/compositions": "1.1.36",
72
- "@veltra/directives": "1.1.36",
73
- "@veltra/icons": "1.1.36",
74
- "@veltra/styles": "1.1.36",
75
- "@veltra/utils": "1.1.36",
71
+ "@veltra/compositions": "1.2.0",
72
+ "@veltra/directives": "1.2.0",
73
+ "@veltra/icons": "1.2.0",
74
+ "@veltra/styles": "1.2.0",
75
+ "@veltra/utils": "1.2.0",
76
76
  "vue": ">=3.5.0"
77
77
  }
78
78
  }
@@ -26,23 +26,20 @@
26
26
  <u-scroll always :class="cls.e('form-body')" :key="bodyKey">
27
27
  <transition name="fade" appear mode="out-in">
28
28
  <u-form
29
+ ref="formComponentRef"
29
30
  :model="props.model"
30
31
  :readonly="props.readonly"
31
32
  @keydown="handleFormKeydown"
32
33
  :label-width="props.labelWidth"
33
34
  >
34
- <template #default="{ data, model }">
35
- <slot
36
- v-bind="{
37
- data,
38
- model,
39
- row: state.row,
40
- depth: state.depth,
41
- indexes: insertIndexes,
42
- index: state.row?.index
43
- }"
44
- />
45
- </template>
35
+ <slot
36
+ v-bind="{
37
+ row: state.row,
38
+ depth: state.depth,
39
+ indexes: insertIndexes,
40
+ index: state.row?.index
41
+ }"
42
+ />
46
43
  </u-form>
47
44
  </transition>
48
45
  </u-scroll>
@@ -75,8 +72,9 @@
75
72
  <script lang="ts" setup>
76
73
  import { AddChild, Close, EditPen, Plus, View } from '@veltra/icons/normal'
77
74
  import { bem } from '@veltra/utils'
78
- import { computed, inject, type Component } from 'vue'
75
+ import { computed, inject, shallowRef, toRef, type Component } from 'vue'
79
76
 
77
+ import type { _FormExposed, FormExposed } from '../../types/form'
80
78
  import { UButton } from '../button'
81
79
  import { UForm } from '../form'
82
80
  import { UIcon } from '../icon'
@@ -97,6 +95,15 @@ const {
97
95
  dynamicFeatures
98
96
  } = inject(BatchEditDIKey)!
99
97
 
98
+ const formComponentRef = shallowRef<FormExposed>()
99
+
100
+ defineExpose<_FormExposed>({
101
+ el: toRef(() => formComponentRef.value?.el),
102
+ validate: () => formComponentRef.value?.validate() ?? Promise.resolve(true),
103
+ clearValidate: () => formComponentRef.value?.clearValidate(),
104
+ reset: () => formComponentRef.value?.reset()
105
+ })
106
+
100
107
  const creatable = computed(() => {
101
108
  return (
102
109
  state.type === 'create' &&
@@ -12,14 +12,14 @@
12
12
  <BatchEditList :slots="slots" />
13
13
 
14
14
  <!-- 编辑表单 -->
15
- <BatchEditForm v-slot="scoped">
15
+ <BatchEditForm ref="formRef" v-slot="scoped">
16
16
  <!-- @vue-ignore -->
17
17
  <slot name="form" v-bind="scoped" />
18
18
  </BatchEditForm>
19
19
  </u-layout>
20
20
  </template>
21
21
 
22
- <script lang="ts" setup generic="Model extends IFormModel">
22
+ <script lang="ts" setup>
23
23
  import { bem } from '@veltra/utils'
24
24
  import { computed, inject, provide, shallowRef, watch } from 'vue'
25
25
 
@@ -27,11 +27,11 @@ import type {
27
27
  BatchEditEmits,
28
28
  BatchEditFeature,
29
29
  BatchEditProps,
30
- IFormModel,
31
30
  TableColumnSlotsScope,
32
31
  TableExposed,
33
32
  TableRow
34
33
  } from '../../types'
34
+ import type { FormExposed } from '../../types/form'
35
35
  import { DialogDIKey } from '../dialog/di'
36
36
  import { ULayout } from '../layout'
37
37
  import BatchEditForm from './batch-edit-form.vue'
@@ -41,7 +41,7 @@ import { useEdit } from './use-edit'
41
41
 
42
42
  defineOptions({ name: 'BatchEdit' })
43
43
 
44
- const props = withDefaults(defineProps<BatchEditProps<Model>>(), {
44
+ const props = withDefaults(defineProps<BatchEditProps>(), {
45
45
  cols: () => ['1fr', '420px'],
46
46
  mode: 'normal'
47
47
  })
@@ -99,9 +99,7 @@ const slots = defineSlots<
99
99
  {
100
100
  form?: (props: {
101
101
  /** 表单数据 */
102
- data: Model['data']
103
- /** 表单模型 */
104
- model: Model
102
+ data: Record<string, any> | undefined
105
103
  /** 当前编辑的层级 */
106
104
  depth?: number
107
105
  /** 当前编辑的行 */
@@ -119,8 +117,9 @@ const slots = defineSlots<
119
117
  const cls = bem('batch-edit')
120
118
 
121
119
  const tableRef = shallowRef<TableExposed>()
120
+ const formRef = shallowRef<FormExposed>()
122
121
 
123
- const editCtx = useEdit({ props, emit, tableRef })
122
+ const editCtx = useEdit({ props, emit, tableRef, formRef })
124
123
 
125
124
  const { state, handleClose, handleSave, handleDelete, handleCreate } = editCtx
126
125
 
@@ -5,7 +5,6 @@ import type {
5
5
  BatchEditEmits,
6
6
  BatchEditFeature,
7
7
  BatchEditProps,
8
- IFormModel,
9
8
  TableExposed,
10
9
  TableRow
11
10
  } from '../../types'
@@ -13,7 +12,7 @@ import type { EditReturned } from './use-edit'
13
12
  export const BatchEditDIKey: InjectionKey<
14
13
  {
15
14
  cls: BEM<'batch-edit', 'u-'>
16
- props: BatchEditProps<IFormModel>
15
+ props: BatchEditProps
17
16
  emit: BatchEditEmits
18
17
  tableRef: ShallowRef<TableExposed | undefined>
19
18
  staticFeatures: ComputedRef<Set<BatchEditFeature>>