@dckj-npm/dc-material 0.1.379 → 0.1.381
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/build/docs/colorful-button.html +3 -3
- package/build/docs/colorful-input.html +3 -3
- package/build/docs/custom-form/requirements.html +3 -3
- package/build/docs/custom-form.html +3 -3
- package/build/docs/index.html +3 -3
- package/build/docs/teletext-list.html +3 -3
- package/build/docs/{umi.80bcbda5.js → umi.b55ee37b.js} +1 -1
- package/build/docs/~demos/colorful-button-demo.html +3 -3
- package/build/docs/~demos/colorful-input-demo.html +3 -3
- package/build/docs/~demos/teletext-list-demo-1.html +3 -3
- package/build/docs/~demos/teletext-list-demo.html +3 -3
- package/build/lowcode/assets-daily.json +13 -13
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +13 -13
- package/build/lowcode/meta.design.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.js +1 -1
- package/build/lowcode/view.js +1 -1
- package/dist/BizComps.js +2 -2
- package/dist/BizComps.js.map +1 -1
- package/es/components/custom-form/custom-form.d.ts +13 -0
- package/es/components/custom-form/custom-form.js +158 -44
- package/es/components/custom-form/schema.json +1373 -1373
- package/lib/components/custom-form/custom-form.d.ts +13 -0
- package/lib/components/custom-form/custom-form.js +157 -43
- package/lib/components/custom-form/schema.json +1373 -1373
- package/lowcode/custom-form/meta.ts +55 -26
- package/lowcode_es/custom-form/meta.js +279 -241
- package/lowcode_es/meta.js +1 -1
- package/lowcode_lib/custom-form/meta.js +279 -241
- package/lowcode_lib/meta.js +1 -1
- package/package.json +3 -3
- package/es/components/custom-form/CUSTOM_FORM_OPERATION_MANUAL.md +0 -284
- package/lib/components/custom-form/CUSTOM_FORM_OPERATION_MANUAL.md +0 -284
package/lowcode_lib/meta.js
CHANGED
|
@@ -122,7 +122,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
|
|
|
122
122
|
packageName = '@dckj-npm/dc-material';
|
|
123
123
|
}
|
|
124
124
|
if (version === void 0) {
|
|
125
|
-
version = '0.1.
|
|
125
|
+
version = '0.1.381';
|
|
126
126
|
}
|
|
127
127
|
if (basicLibraryVersion === void 0) {
|
|
128
128
|
basicLibraryVersion = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dckj-npm/dc-material",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.381",
|
|
4
4
|
"description": "dc低代码物料",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -114,10 +114,10 @@
|
|
|
114
114
|
},
|
|
115
115
|
"componentConfig": {
|
|
116
116
|
"isComponentLibrary": true,
|
|
117
|
-
"materialSchema": "https://unpkg.com/@dckj-npm/dc-material@0.1.
|
|
117
|
+
"materialSchema": "https://unpkg.com/@dckj-npm/dc-material@0.1.381/build/lowcode/assets-prod.json"
|
|
118
118
|
},
|
|
119
119
|
"lcMeta": {
|
|
120
120
|
"type": "component"
|
|
121
121
|
},
|
|
122
|
-
"homepage": "https://unpkg.com/@dckj-npm/dc-material@0.1.
|
|
122
|
+
"homepage": "https://unpkg.com/@dckj-npm/dc-material@0.1.381/build/index.html"
|
|
123
123
|
}
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
# CustomForm 操作使用手册(宴请预订)
|
|
2
|
-
|
|
3
|
-
适用范围:
|
|
4
|
-
- 组件目录:lowcode-react-material/src/components/custom-form
|
|
5
|
-
- 对照页面配置:lowcode-react-material/src/components/custom-form/schema.json
|
|
6
|
-
|
|
7
|
-
目标:
|
|
8
|
-
- 按照现有 schema.json 的业务口径,使用 CustomForm 还原“宴请预订表单”
|
|
9
|
-
- 你可以按本文逐项配置并逐项测试
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 1. 对照关系(schema.json -> CustomForm)
|
|
14
|
-
|
|
15
|
-
### 1.1 旧 schema 的关键业务点
|
|
16
|
-
|
|
17
|
-
1. 字段状态(state)
|
|
18
|
-
- banquet_date
|
|
19
|
-
- banquet_time
|
|
20
|
-
- guest_count
|
|
21
|
-
- package_name
|
|
22
|
-
- package_name_text
|
|
23
|
-
- package_price
|
|
24
|
-
- user_name
|
|
25
|
-
- user_mobile
|
|
26
|
-
- memo
|
|
27
|
-
- order_desc
|
|
28
|
-
- order_status(默认值:待处理)
|
|
29
|
-
|
|
30
|
-
2. 数据源
|
|
31
|
-
- 套餐列表查询:node_ocmk24smc2g
|
|
32
|
-
- POST /source/api/dynamicFormTableRecord/page/1203689394066821120
|
|
33
|
-
- 提交预订:node_ocmk24smc3g
|
|
34
|
-
- POST /source/api/dynamicFormTableRecord/1203690686210248704/
|
|
35
|
-
|
|
36
|
-
3. 旧逻辑方法
|
|
37
|
-
- onPackageNameChange:根据套餐 id 回填 package_price、package_name_text
|
|
38
|
-
- onSubmitClick:拼接 order_desc,组装 itemList,调用提交数据源
|
|
39
|
-
|
|
40
|
-
### 1.2 在 CustomForm 中的对应能力
|
|
41
|
-
|
|
42
|
-
1. 字段状态维护
|
|
43
|
-
- 由 CustomForm 内部统一管理,不再手写多个 onXxxChange
|
|
44
|
-
|
|
45
|
-
2. 套餐联动
|
|
46
|
-
- 用 fieldLinkage 替代 onPackageNameChange
|
|
47
|
-
- 通过 dataSource + fillFields 一次回填多个字段
|
|
48
|
-
|
|
49
|
-
3. 订单描述拼接
|
|
50
|
-
- 用 computedFields 替代手动拼接 order_desc
|
|
51
|
-
|
|
52
|
-
4. 提交参数组装
|
|
53
|
-
- 用 submitMapping 替代 onSubmitClick 中手动 itemList
|
|
54
|
-
|
|
55
|
-
5. 提交动作
|
|
56
|
-
- 提交按钮绑定数据源(对应 node_ocmk24smc3g)
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 2. 宴请预订表单配置清单(按顺序)
|
|
61
|
-
|
|
62
|
-
以下步骤在低代码设计器中,对 CustomForm 组件进行配置。
|
|
63
|
-
|
|
64
|
-
### 步骤 1:放置 CustomForm
|
|
65
|
-
|
|
66
|
-
1. 拖入 CustomForm 到页面
|
|
67
|
-
2. 推荐布局:
|
|
68
|
-
- columns:2
|
|
69
|
-
- labelAlign:left
|
|
70
|
-
- fullWidth:true
|
|
71
|
-
|
|
72
|
-
### 步骤 2:配置表单项 formItems
|
|
73
|
-
|
|
74
|
-
按下面字段建立表单项:
|
|
75
|
-
|
|
76
|
-
1. 宴请日期
|
|
77
|
-
- field:banquet_date
|
|
78
|
-
- label:宴请日期
|
|
79
|
-
- required:true
|
|
80
|
-
- componentType:DatePicker 或 Input(若要与旧 schema 完全一致可选 Input)
|
|
81
|
-
|
|
82
|
-
2. 宴请时间
|
|
83
|
-
- field:banquet_time
|
|
84
|
-
- label:宴请时间
|
|
85
|
-
- required:true
|
|
86
|
-
- componentType:Input
|
|
87
|
-
|
|
88
|
-
3. 宴请人数
|
|
89
|
-
- field:guest_count
|
|
90
|
-
- label:宴请人数
|
|
91
|
-
- required:true
|
|
92
|
-
- componentType:NumberPicker(或 Input)
|
|
93
|
-
|
|
94
|
-
4. 套餐名称
|
|
95
|
-
- field:package_name
|
|
96
|
-
- label:套餐名称
|
|
97
|
-
- required:true
|
|
98
|
-
- componentType:Select
|
|
99
|
-
- optionsBind:绑定套餐列表数据,value=套餐id,label=套餐名
|
|
100
|
-
|
|
101
|
-
5. 套餐名称文本(可不展示)
|
|
102
|
-
- field:package_name_text
|
|
103
|
-
- label:套餐名称文本
|
|
104
|
-
- componentType:Input
|
|
105
|
-
- formItemProps.invisible:true(若你希望隐藏)
|
|
106
|
-
|
|
107
|
-
6. 套餐价格
|
|
108
|
-
- field:package_price
|
|
109
|
-
- label:套餐价格
|
|
110
|
-
- componentType:Input
|
|
111
|
-
- componentProps.readOnly:true
|
|
112
|
-
|
|
113
|
-
7. 预订人名称
|
|
114
|
-
- field:user_name
|
|
115
|
-
- label:预订人名称
|
|
116
|
-
- required:true
|
|
117
|
-
- componentType:Input
|
|
118
|
-
|
|
119
|
-
8. 预订人联系方式
|
|
120
|
-
- field:user_mobile
|
|
121
|
-
- label:预订人联系方式
|
|
122
|
-
- required:true
|
|
123
|
-
- componentType:Input
|
|
124
|
-
|
|
125
|
-
9. 备注
|
|
126
|
-
- field:memo
|
|
127
|
-
- label:备注
|
|
128
|
-
- componentType:TextArea
|
|
129
|
-
- columnSpan:2
|
|
130
|
-
|
|
131
|
-
### 步骤 3:配置字段初始化 initialValues
|
|
132
|
-
|
|
133
|
-
建议添加:
|
|
134
|
-
- field:order_status
|
|
135
|
-
- valueType:fixed
|
|
136
|
-
- value:待处理
|
|
137
|
-
|
|
138
|
-
### 步骤 4:配置计算字段 computedFields
|
|
139
|
-
|
|
140
|
-
添加一条:
|
|
141
|
-
- targetField:order_desc
|
|
142
|
-
- template:{package_name_text},{package_price},预订日期时间:{banquet_date} {banquet_time},宴请人数:{guest_count}人
|
|
143
|
-
|
|
144
|
-
### 步骤 5:配置字段联动 fieldLinkage
|
|
145
|
-
|
|
146
|
-
使用数据源模式,添加一条规则:
|
|
147
|
-
- watchField:package_name
|
|
148
|
-
- linkageMode:dataSource
|
|
149
|
-
- dataSource:绑定套餐列表数据源(与 optionsBind 同源)
|
|
150
|
-
- matchKey:id
|
|
151
|
-
- fillFields:
|
|
152
|
-
- package_price -> package_price
|
|
153
|
-
- package_name_text -> package_name
|
|
154
|
-
|
|
155
|
-
说明:
|
|
156
|
-
- 旧 schema 中 package_name 存的是套餐 id,因此 matchKey 要和数据源主键一致(常见为 id)
|
|
157
|
-
|
|
158
|
-
### 步骤 6:配置提交映射 submitMapping
|
|
159
|
-
|
|
160
|
-
1. targetField:itemList
|
|
161
|
-
2. items 按下列顺序添加:
|
|
162
|
-
- columnName=banquet_time,template={banquet_date} {banquet_time}
|
|
163
|
-
- columnName=guest_count,field=guest_count
|
|
164
|
-
- columnName=package_name,field=package_name
|
|
165
|
-
- columnName=package_name_text,field=package_name_text
|
|
166
|
-
- columnName=package_price,field=package_price
|
|
167
|
-
- columnName=user_name,field=user_name
|
|
168
|
-
- columnName=user_mobile,field=user_mobile
|
|
169
|
-
- columnName=memo,field=memo
|
|
170
|
-
- columnName=order_desc,field=order_desc
|
|
171
|
-
- columnName=order_status,field=order_status
|
|
172
|
-
|
|
173
|
-
### 步骤 7:配置操作按钮 operations
|
|
174
|
-
|
|
175
|
-
建议保留两按钮:
|
|
176
|
-
|
|
177
|
-
1. 提交按钮
|
|
178
|
-
- text:提交预订
|
|
179
|
-
- action:submit
|
|
180
|
-
- type:primary
|
|
181
|
-
- submitValidate:true
|
|
182
|
-
- dataSource:绑定提交接口(原 schema 的 node_ocmk24smc3g)
|
|
183
|
-
|
|
184
|
-
2. 重置按钮
|
|
185
|
-
- text:重置
|
|
186
|
-
- action:reset
|
|
187
|
-
- type:normal
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## 3. 测试流程(可直接照测)
|
|
192
|
-
|
|
193
|
-
### 用例 1:套餐数据加载
|
|
194
|
-
|
|
195
|
-
步骤:
|
|
196
|
-
1. 进入页面
|
|
197
|
-
2. 打开“套餐名称”下拉
|
|
198
|
-
|
|
199
|
-
期望:
|
|
200
|
-
- 能看到套餐选项
|
|
201
|
-
- 每个选项展示套餐名,提交值为套餐 id
|
|
202
|
-
|
|
203
|
-
### 用例 2:套餐联动回填
|
|
204
|
-
|
|
205
|
-
步骤:
|
|
206
|
-
1. 选择任意套餐
|
|
207
|
-
|
|
208
|
-
期望:
|
|
209
|
-
- package_price 自动回填
|
|
210
|
-
- package_name_text 自动回填
|
|
211
|
-
|
|
212
|
-
### 用例 3:计算字段生成
|
|
213
|
-
|
|
214
|
-
步骤:
|
|
215
|
-
1. 填写 banquet_date、banquet_time、guest_count
|
|
216
|
-
2. 选择套餐并完成联动
|
|
217
|
-
|
|
218
|
-
期望:
|
|
219
|
-
- order_desc 自动生成
|
|
220
|
-
- 格式为:套餐名称文本,套餐价格,预订日期时间:日期 时间,宴请人数:X人
|
|
221
|
-
|
|
222
|
-
### 用例 4:必填校验
|
|
223
|
-
|
|
224
|
-
步骤:
|
|
225
|
-
1. 不填必填项直接点“提交预订”
|
|
226
|
-
|
|
227
|
-
期望:
|
|
228
|
-
- 不触发提交接口
|
|
229
|
-
- 展示对应字段错误提示
|
|
230
|
-
|
|
231
|
-
### 用例 5:提交参数结构
|
|
232
|
-
|
|
233
|
-
步骤:
|
|
234
|
-
1. 完整填写表单后点击“提交预订”
|
|
235
|
-
2. 在网络面板或接口日志查看请求体
|
|
236
|
-
|
|
237
|
-
期望:
|
|
238
|
-
- 请求中包含 itemList 数组
|
|
239
|
-
- itemList 中 columnName/columnValue 与 submitMapping 配置一致
|
|
240
|
-
- 包含 order_desc 和 order_status
|
|
241
|
-
|
|
242
|
-
### 用例 6:重置按钮
|
|
243
|
-
|
|
244
|
-
步骤:
|
|
245
|
-
1. 先填写多个字段
|
|
246
|
-
2. 点击“重置”
|
|
247
|
-
|
|
248
|
-
期望:
|
|
249
|
-
- 可编辑字段被清空
|
|
250
|
-
- 若配置了 order_status 的初始值,可按设计预期保留或恢复
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## 4. 快速排错
|
|
255
|
-
|
|
256
|
-
1. 选套餐后价格不回填
|
|
257
|
-
- 检查 fieldLinkage.matchKey 是否和数据源主键一致
|
|
258
|
-
- 检查 optionsBind 的 value 是否就是该主键
|
|
259
|
-
|
|
260
|
-
2. 提交后没有 itemList
|
|
261
|
-
- 检查 submitMapping.targetField 是否为 itemList
|
|
262
|
-
- 检查 items 是否至少有一条有效映射
|
|
263
|
-
|
|
264
|
-
3. order_desc 为空
|
|
265
|
-
- 检查 computedFields 的模板字段名是否与 formItems.field 完全一致
|
|
266
|
-
|
|
267
|
-
4. 提交按钮没调接口
|
|
268
|
-
- 检查 operations 中 submit 按钮是否绑定了 dataSource
|
|
269
|
-
- 检查 submitValidate 打开时是否存在校验失败
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
## 5. 推荐对照检查表
|
|
274
|
-
|
|
275
|
-
每次提测前可按下列核对:
|
|
276
|
-
|
|
277
|
-
1. 表单项字段名与 submitMapping 字段名完全一致
|
|
278
|
-
2. 套餐下拉 optionsBind 和 fieldLinkage.dataSource 同源
|
|
279
|
-
3. matchKey 与 optionsBind 的 value 字段一致
|
|
280
|
-
4. order_status 有初始值 待处理
|
|
281
|
-
5. 提交按钮绑定正确数据源(提交接口)
|
|
282
|
-
6. 必填项都设置了 required
|
|
283
|
-
|
|
284
|
-
完成以上 6 项,基本可覆盖 schema.json 中宴请预订主流程。
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
# CustomForm 操作使用手册(宴请预订)
|
|
2
|
-
|
|
3
|
-
适用范围:
|
|
4
|
-
- 组件目录:lowcode-react-material/src/components/custom-form
|
|
5
|
-
- 对照页面配置:lowcode-react-material/src/components/custom-form/schema.json
|
|
6
|
-
|
|
7
|
-
目标:
|
|
8
|
-
- 按照现有 schema.json 的业务口径,使用 CustomForm 还原“宴请预订表单”
|
|
9
|
-
- 你可以按本文逐项配置并逐项测试
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 1. 对照关系(schema.json -> CustomForm)
|
|
14
|
-
|
|
15
|
-
### 1.1 旧 schema 的关键业务点
|
|
16
|
-
|
|
17
|
-
1. 字段状态(state)
|
|
18
|
-
- banquet_date
|
|
19
|
-
- banquet_time
|
|
20
|
-
- guest_count
|
|
21
|
-
- package_name
|
|
22
|
-
- package_name_text
|
|
23
|
-
- package_price
|
|
24
|
-
- user_name
|
|
25
|
-
- user_mobile
|
|
26
|
-
- memo
|
|
27
|
-
- order_desc
|
|
28
|
-
- order_status(默认值:待处理)
|
|
29
|
-
|
|
30
|
-
2. 数据源
|
|
31
|
-
- 套餐列表查询:node_ocmk24smc2g
|
|
32
|
-
- POST /source/api/dynamicFormTableRecord/page/1203689394066821120
|
|
33
|
-
- 提交预订:node_ocmk24smc3g
|
|
34
|
-
- POST /source/api/dynamicFormTableRecord/1203690686210248704/
|
|
35
|
-
|
|
36
|
-
3. 旧逻辑方法
|
|
37
|
-
- onPackageNameChange:根据套餐 id 回填 package_price、package_name_text
|
|
38
|
-
- onSubmitClick:拼接 order_desc,组装 itemList,调用提交数据源
|
|
39
|
-
|
|
40
|
-
### 1.2 在 CustomForm 中的对应能力
|
|
41
|
-
|
|
42
|
-
1. 字段状态维护
|
|
43
|
-
- 由 CustomForm 内部统一管理,不再手写多个 onXxxChange
|
|
44
|
-
|
|
45
|
-
2. 套餐联动
|
|
46
|
-
- 用 fieldLinkage 替代 onPackageNameChange
|
|
47
|
-
- 通过 dataSource + fillFields 一次回填多个字段
|
|
48
|
-
|
|
49
|
-
3. 订单描述拼接
|
|
50
|
-
- 用 computedFields 替代手动拼接 order_desc
|
|
51
|
-
|
|
52
|
-
4. 提交参数组装
|
|
53
|
-
- 用 submitMapping 替代 onSubmitClick 中手动 itemList
|
|
54
|
-
|
|
55
|
-
5. 提交动作
|
|
56
|
-
- 提交按钮绑定数据源(对应 node_ocmk24smc3g)
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 2. 宴请预订表单配置清单(按顺序)
|
|
61
|
-
|
|
62
|
-
以下步骤在低代码设计器中,对 CustomForm 组件进行配置。
|
|
63
|
-
|
|
64
|
-
### 步骤 1:放置 CustomForm
|
|
65
|
-
|
|
66
|
-
1. 拖入 CustomForm 到页面
|
|
67
|
-
2. 推荐布局:
|
|
68
|
-
- columns:2
|
|
69
|
-
- labelAlign:left
|
|
70
|
-
- fullWidth:true
|
|
71
|
-
|
|
72
|
-
### 步骤 2:配置表单项 formItems
|
|
73
|
-
|
|
74
|
-
按下面字段建立表单项:
|
|
75
|
-
|
|
76
|
-
1. 宴请日期
|
|
77
|
-
- field:banquet_date
|
|
78
|
-
- label:宴请日期
|
|
79
|
-
- required:true
|
|
80
|
-
- componentType:DatePicker 或 Input(若要与旧 schema 完全一致可选 Input)
|
|
81
|
-
|
|
82
|
-
2. 宴请时间
|
|
83
|
-
- field:banquet_time
|
|
84
|
-
- label:宴请时间
|
|
85
|
-
- required:true
|
|
86
|
-
- componentType:Input
|
|
87
|
-
|
|
88
|
-
3. 宴请人数
|
|
89
|
-
- field:guest_count
|
|
90
|
-
- label:宴请人数
|
|
91
|
-
- required:true
|
|
92
|
-
- componentType:NumberPicker(或 Input)
|
|
93
|
-
|
|
94
|
-
4. 套餐名称
|
|
95
|
-
- field:package_name
|
|
96
|
-
- label:套餐名称
|
|
97
|
-
- required:true
|
|
98
|
-
- componentType:Select
|
|
99
|
-
- optionsBind:绑定套餐列表数据,value=套餐id,label=套餐名
|
|
100
|
-
|
|
101
|
-
5. 套餐名称文本(可不展示)
|
|
102
|
-
- field:package_name_text
|
|
103
|
-
- label:套餐名称文本
|
|
104
|
-
- componentType:Input
|
|
105
|
-
- formItemProps.invisible:true(若你希望隐藏)
|
|
106
|
-
|
|
107
|
-
6. 套餐价格
|
|
108
|
-
- field:package_price
|
|
109
|
-
- label:套餐价格
|
|
110
|
-
- componentType:Input
|
|
111
|
-
- componentProps.readOnly:true
|
|
112
|
-
|
|
113
|
-
7. 预订人名称
|
|
114
|
-
- field:user_name
|
|
115
|
-
- label:预订人名称
|
|
116
|
-
- required:true
|
|
117
|
-
- componentType:Input
|
|
118
|
-
|
|
119
|
-
8. 预订人联系方式
|
|
120
|
-
- field:user_mobile
|
|
121
|
-
- label:预订人联系方式
|
|
122
|
-
- required:true
|
|
123
|
-
- componentType:Input
|
|
124
|
-
|
|
125
|
-
9. 备注
|
|
126
|
-
- field:memo
|
|
127
|
-
- label:备注
|
|
128
|
-
- componentType:TextArea
|
|
129
|
-
- columnSpan:2
|
|
130
|
-
|
|
131
|
-
### 步骤 3:配置字段初始化 initialValues
|
|
132
|
-
|
|
133
|
-
建议添加:
|
|
134
|
-
- field:order_status
|
|
135
|
-
- valueType:fixed
|
|
136
|
-
- value:待处理
|
|
137
|
-
|
|
138
|
-
### 步骤 4:配置计算字段 computedFields
|
|
139
|
-
|
|
140
|
-
添加一条:
|
|
141
|
-
- targetField:order_desc
|
|
142
|
-
- template:{package_name_text},{package_price},预订日期时间:{banquet_date} {banquet_time},宴请人数:{guest_count}人
|
|
143
|
-
|
|
144
|
-
### 步骤 5:配置字段联动 fieldLinkage
|
|
145
|
-
|
|
146
|
-
使用数据源模式,添加一条规则:
|
|
147
|
-
- watchField:package_name
|
|
148
|
-
- linkageMode:dataSource
|
|
149
|
-
- dataSource:绑定套餐列表数据源(与 optionsBind 同源)
|
|
150
|
-
- matchKey:id
|
|
151
|
-
- fillFields:
|
|
152
|
-
- package_price -> package_price
|
|
153
|
-
- package_name_text -> package_name
|
|
154
|
-
|
|
155
|
-
说明:
|
|
156
|
-
- 旧 schema 中 package_name 存的是套餐 id,因此 matchKey 要和数据源主键一致(常见为 id)
|
|
157
|
-
|
|
158
|
-
### 步骤 6:配置提交映射 submitMapping
|
|
159
|
-
|
|
160
|
-
1. targetField:itemList
|
|
161
|
-
2. items 按下列顺序添加:
|
|
162
|
-
- columnName=banquet_time,template={banquet_date} {banquet_time}
|
|
163
|
-
- columnName=guest_count,field=guest_count
|
|
164
|
-
- columnName=package_name,field=package_name
|
|
165
|
-
- columnName=package_name_text,field=package_name_text
|
|
166
|
-
- columnName=package_price,field=package_price
|
|
167
|
-
- columnName=user_name,field=user_name
|
|
168
|
-
- columnName=user_mobile,field=user_mobile
|
|
169
|
-
- columnName=memo,field=memo
|
|
170
|
-
- columnName=order_desc,field=order_desc
|
|
171
|
-
- columnName=order_status,field=order_status
|
|
172
|
-
|
|
173
|
-
### 步骤 7:配置操作按钮 operations
|
|
174
|
-
|
|
175
|
-
建议保留两按钮:
|
|
176
|
-
|
|
177
|
-
1. 提交按钮
|
|
178
|
-
- text:提交预订
|
|
179
|
-
- action:submit
|
|
180
|
-
- type:primary
|
|
181
|
-
- submitValidate:true
|
|
182
|
-
- dataSource:绑定提交接口(原 schema 的 node_ocmk24smc3g)
|
|
183
|
-
|
|
184
|
-
2. 重置按钮
|
|
185
|
-
- text:重置
|
|
186
|
-
- action:reset
|
|
187
|
-
- type:normal
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## 3. 测试流程(可直接照测)
|
|
192
|
-
|
|
193
|
-
### 用例 1:套餐数据加载
|
|
194
|
-
|
|
195
|
-
步骤:
|
|
196
|
-
1. 进入页面
|
|
197
|
-
2. 打开“套餐名称”下拉
|
|
198
|
-
|
|
199
|
-
期望:
|
|
200
|
-
- 能看到套餐选项
|
|
201
|
-
- 每个选项展示套餐名,提交值为套餐 id
|
|
202
|
-
|
|
203
|
-
### 用例 2:套餐联动回填
|
|
204
|
-
|
|
205
|
-
步骤:
|
|
206
|
-
1. 选择任意套餐
|
|
207
|
-
|
|
208
|
-
期望:
|
|
209
|
-
- package_price 自动回填
|
|
210
|
-
- package_name_text 自动回填
|
|
211
|
-
|
|
212
|
-
### 用例 3:计算字段生成
|
|
213
|
-
|
|
214
|
-
步骤:
|
|
215
|
-
1. 填写 banquet_date、banquet_time、guest_count
|
|
216
|
-
2. 选择套餐并完成联动
|
|
217
|
-
|
|
218
|
-
期望:
|
|
219
|
-
- order_desc 自动生成
|
|
220
|
-
- 格式为:套餐名称文本,套餐价格,预订日期时间:日期 时间,宴请人数:X人
|
|
221
|
-
|
|
222
|
-
### 用例 4:必填校验
|
|
223
|
-
|
|
224
|
-
步骤:
|
|
225
|
-
1. 不填必填项直接点“提交预订”
|
|
226
|
-
|
|
227
|
-
期望:
|
|
228
|
-
- 不触发提交接口
|
|
229
|
-
- 展示对应字段错误提示
|
|
230
|
-
|
|
231
|
-
### 用例 5:提交参数结构
|
|
232
|
-
|
|
233
|
-
步骤:
|
|
234
|
-
1. 完整填写表单后点击“提交预订”
|
|
235
|
-
2. 在网络面板或接口日志查看请求体
|
|
236
|
-
|
|
237
|
-
期望:
|
|
238
|
-
- 请求中包含 itemList 数组
|
|
239
|
-
- itemList 中 columnName/columnValue 与 submitMapping 配置一致
|
|
240
|
-
- 包含 order_desc 和 order_status
|
|
241
|
-
|
|
242
|
-
### 用例 6:重置按钮
|
|
243
|
-
|
|
244
|
-
步骤:
|
|
245
|
-
1. 先填写多个字段
|
|
246
|
-
2. 点击“重置”
|
|
247
|
-
|
|
248
|
-
期望:
|
|
249
|
-
- 可编辑字段被清空
|
|
250
|
-
- 若配置了 order_status 的初始值,可按设计预期保留或恢复
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## 4. 快速排错
|
|
255
|
-
|
|
256
|
-
1. 选套餐后价格不回填
|
|
257
|
-
- 检查 fieldLinkage.matchKey 是否和数据源主键一致
|
|
258
|
-
- 检查 optionsBind 的 value 是否就是该主键
|
|
259
|
-
|
|
260
|
-
2. 提交后没有 itemList
|
|
261
|
-
- 检查 submitMapping.targetField 是否为 itemList
|
|
262
|
-
- 检查 items 是否至少有一条有效映射
|
|
263
|
-
|
|
264
|
-
3. order_desc 为空
|
|
265
|
-
- 检查 computedFields 的模板字段名是否与 formItems.field 完全一致
|
|
266
|
-
|
|
267
|
-
4. 提交按钮没调接口
|
|
268
|
-
- 检查 operations 中 submit 按钮是否绑定了 dataSource
|
|
269
|
-
- 检查 submitValidate 打开时是否存在校验失败
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
## 5. 推荐对照检查表
|
|
274
|
-
|
|
275
|
-
每次提测前可按下列核对:
|
|
276
|
-
|
|
277
|
-
1. 表单项字段名与 submitMapping 字段名完全一致
|
|
278
|
-
2. 套餐下拉 optionsBind 和 fieldLinkage.dataSource 同源
|
|
279
|
-
3. matchKey 与 optionsBind 的 value 字段一致
|
|
280
|
-
4. order_status 有初始值 待处理
|
|
281
|
-
5. 提交按钮绑定正确数据源(提交接口)
|
|
282
|
-
6. 必填项都设置了 required
|
|
283
|
-
|
|
284
|
-
完成以上 6 项,基本可覆盖 schema.json 中宴请预订主流程。
|