form-create-wot 0.1.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.
@@ -0,0 +1,151 @@
1
+ /**
2
+ * form-create JSON Rule 类型定义
3
+ * 兼容 @form-create/ant-design-vue 的规则格式
4
+ */
5
+
6
+ /** 校验规则 */
7
+ export interface ValidateRule {
8
+ /** 是否必填 */
9
+ required?: boolean
10
+ /** 错误提示信息 */
11
+ message?: string
12
+ /** 触发方式 */
13
+ trigger?: 'blur' | 'change' | string
14
+ /** 正则匹配 */
15
+ pattern?: string | RegExp
16
+ /** 值类型 */
17
+ type?: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'email' | 'url'
18
+ /** 最小值/最小长度 */
19
+ min?: number
20
+ /** 最大值/最大长度 */
21
+ max?: number
22
+ /** 精确长度 */
23
+ len?: number
24
+ /** 自定义校验函数名(JSON中传函数名,需预注册) */
25
+ validatorName?: string
26
+ }
27
+
28
+ /** 联动控制规则 */
29
+ export interface ControlRule {
30
+ /** 监听的值 */
31
+ value?: any
32
+ /** 条件处理函数名 */
33
+ handle?: string
34
+ /** 条件满足时追加的规则 */
35
+ rule?: FormRule[]
36
+ /** 条件满足时追加的子规则 */
37
+ append?: string
38
+ /** 条件满足时prepend的规则 */
39
+ prepend?: string
40
+ /** 触发条件 */
41
+ condition?: string
42
+ }
43
+
44
+ /** 表单选项 */
45
+ export interface OptionItem {
46
+ /** 显示文本 */
47
+ label: string
48
+ /** 值 */
49
+ value: any
50
+ /** 是否禁用 */
51
+ disabled?: boolean
52
+ /** 子选项(级联) */
53
+ children?: OptionItem[]
54
+ }
55
+
56
+ /** 表单规则(单个字段) */
57
+ export interface FormRule {
58
+ /** 组件类型 */
59
+ type: string
60
+ /** 字段名 */
61
+ field?: string
62
+ /** 标签文字 */
63
+ title?: string
64
+ /** 默认值 */
65
+ value?: any
66
+ /** 传递给组件的 props */
67
+ props?: Record<string, any>
68
+ /** 选项数据(select/radio/checkbox等) */
69
+ options?: OptionItem[]
70
+ /** 校验规则 */
71
+ validate?: ValidateRule[]
72
+ /** 事件名映射(JSON中传函数名) */
73
+ on?: Record<string, string>
74
+ /** 插槽 */
75
+ slot?: string
76
+ /** 子规则 */
77
+ children?: FormRule[] | string
78
+ /** 联动控制 */
79
+ control?: ControlRule[]
80
+ /** 是否隐藏 */
81
+ hidden?: boolean
82
+ /** 是否显示 */
83
+ display?: boolean
84
+ /** 原生属性 */
85
+ attrs?: Record<string, any>
86
+ /** 样式 */
87
+ style?: Record<string, any> | string
88
+ /** CSS class */
89
+ class?: string | string[]
90
+ /** 组件 ref 名称 */
91
+ name?: string
92
+ /** 布局:col 的 span */
93
+ col?: { span?: number } | number
94
+ /** wrap 配置 */
95
+ wrap?: Record<string, any>
96
+ /** 表单项是否必填(独立于校验规则) */
97
+ required?: boolean
98
+ /** 额外配置 */
99
+ effect?: Record<string, any>
100
+ /** 前缀 */
101
+ prefix?: string
102
+ /** 后缀 */
103
+ suffix?: string
104
+ /** 说明信息 */
105
+ info?: string | { type?: string; content?: string }
106
+ /** emit 事件 */
107
+ emit?: string[]
108
+ /** 原始 key */
109
+ key?: string
110
+ /** 内部使用:运行时 ID */
111
+ _id?: string
112
+ }
113
+
114
+ /** 表单配置 */
115
+ export interface FormOption {
116
+ /** 表单整体配置 */
117
+ form?: {
118
+ /** 标签位置 */
119
+ labelPosition?: 'left' | 'right' | 'top'
120
+ /** 标签宽度 */
121
+ labelWidth?: string | number
122
+ /** 是否禁用 */
123
+ disabled?: boolean
124
+ /** 表单尺寸 */
125
+ size?: string
126
+ }
127
+ /** 提交按钮 */
128
+ submitBtn?: {
129
+ /** 按钮文字 */
130
+ text?: string
131
+ /** 是否显示 */
132
+ show?: boolean
133
+ /** 是否禁用 */
134
+ disabled?: boolean
135
+ /** 按钮类型 */
136
+ type?: string
137
+ }
138
+ /** 重置按钮 */
139
+ resetBtn?: {
140
+ /** 按钮文字 */
141
+ text?: string
142
+ /** 是否显示 */
143
+ show?: boolean
144
+ }
145
+ /** 行配置 */
146
+ row?: Record<string, any>
147
+ /** 全局事件处理器注册表 */
148
+ onSubmit?: (formData: Record<string, any>, api: any) => void
149
+ /** 全局规则 */
150
+ global?: Record<string, any>
151
+ }