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.
- package/README.md +182 -0
- package/package.json +110 -0
- package/src/fc/adapter/config.ts +245 -0
- package/src/fc/adapter/fc-checkbox.vue +44 -0
- package/src/fc/adapter/fc-date-picker.vue +55 -0
- package/src/fc/adapter/fc-radio.vue +44 -0
- package/src/fc/adapter/fc-select.vue +62 -0
- package/src/fc/components/FcForm.vue +408 -0
- package/src/fc/components/FcFormItem.vue +267 -0
- package/src/fc/core/parser.ts +132 -0
- package/src/fc/core/validator.ts +122 -0
- package/src/fc/index.ts +34 -0
- package/src/fc/types/api.ts +49 -0
- package/src/fc/types/index.ts +2 -0
- package/src/fc/types/rule.ts +151 -0
|
@@ -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
|
+
}
|