@ebiz/designer-components 0.0.58 → 0.0.60
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 +29 -29
- package/dist/designer-components.css +1 -1
- package/dist/index.mjs +5925 -5923
- package/package.json +1 -1
- package/src/App.vue +26 -26
- package/src/apiService/SIMPLE_DATA_SERVICE.md +284 -284
- package/src/apiService/mockDataService.js +115 -115
- package/src/apiService/simpleDataService.js +297 -297
- package/src/assets/base.css +86 -86
- package/src/assets/logo.svg +1 -1
- package/src/components/Button.vue +149 -149
- package/src/components/DataContainer.vue +40 -40
- package/src/components/EbizApproval.vue +332 -338
- package/src/components/EbizAutoForm.vue +596 -596
- package/src/components/EbizAvatar.vue +115 -115
- package/src/components/EbizCheckbox.vue +93 -93
- package/src/components/EbizCheckboxGroup.vue +69 -69
- package/src/components/EbizDepartmentSelector.vue +144 -144
- package/src/components/EbizDescriptions.vue +340 -340
- package/src/components/EbizDescriptionsItem.vue +47 -47
- package/src/components/EbizDetailBlock.vue +81 -81
- package/src/components/EbizDialog.vue +260 -260
- package/src/components/EbizDiv.vue +32 -32
- package/src/components/EbizDivider.vue +96 -96
- package/src/components/EbizEmployeeInfo.vue +138 -138
- package/src/components/EbizEmployeeSelector.vue +1093 -1086
- package/src/components/EbizFileUpload.vue +238 -238
- package/src/components/EbizMap.vue +541 -541
- package/src/components/EbizOkrTree.vue +99 -99
- package/src/components/EbizPageHeader.vue +95 -95
- package/src/components/EbizPagination.vue +162 -162
- package/src/components/EbizPopconfirm.vue +47 -47
- package/src/components/EbizRadio.vue +86 -86
- package/src/components/EbizRadioGroup.vue +83 -83
- package/src/components/EbizRemoteSelect.vue +232 -232
- package/src/components/EbizRouteBreadcrumb.vue +46 -46
- package/src/components/EbizSelect.vue +85 -85
- package/src/components/EbizSpace.vue +100 -100
- package/src/components/EbizStatistic.vue +149 -149
- package/src/components/EbizStatsCard.vue +113 -113
- package/src/components/EbizSwiper.vue +113 -113
- package/src/components/EbizSwiperItem.vue +13 -13
- package/src/components/EbizSwitch.vue +85 -85
- package/src/components/EbizTabHeader.vue +132 -132
- package/src/components/EbizTabPanel.vue +22 -22
- package/src/components/EbizTable.vue +469 -469
- package/src/components/EbizTableColumn.vue +116 -116
- package/src/components/EbizTableSort.vue +179 -179
- package/src/components/EbizTabs.vue +142 -142
- package/src/components/EbizTdesignButtonDialog.vue +332 -332
- package/src/components/EbizTdesignLoading.vue +107 -107
- package/src/components/EbizTimePicker.vue +143 -143
- package/src/components/EbizTitle.vue +91 -91
- package/src/components/EbizTree.vue +152 -152
- package/src/components/EbizTreeMergeTable.vue +1414 -1414
- package/src/components/EbizTreeSelector.vue +418 -418
- package/src/components/EbizVxeTable.vue +290 -290
- package/src/components/Form.vue +28 -28
- package/src/components/Home.vue +7 -7
- package/src/components/MyComponent.vue +39 -39
- package/src/components/Table.vue +45 -45
- package/src/components/TdesignAlert.vue +115 -115
- package/src/components/TdesignButton.vue +135 -135
- package/src/components/TdesignCalendar/index.vue +145 -145
- package/src/components/TdesignCard.vue +195 -195
- package/src/components/TdesignCol.vue +101 -101
- package/src/components/TdesignCollapse.vue +142 -142
- package/src/components/TdesignCollapsePanel.vue +79 -79
- package/src/components/TdesignDatePicker.vue +124 -124
- package/src/components/TdesignDescriptions.vue +74 -74
- package/src/components/TdesignDescriptionsItem.vue +50 -50
- package/src/components/TdesignDialog.vue +225 -225
- package/src/components/TdesignForm.vue +138 -138
- package/src/components/TdesignFormItem.vue +105 -105
- package/src/components/TdesignGrid.vue +55 -55
- package/src/components/TdesignIcon.vue +67 -67
- package/src/components/TdesignImage.vue +162 -162
- package/src/components/TdesignImageViewer.vue +200 -200
- package/src/components/TdesignInput.vue +242 -242
- package/src/components/TdesignSelect.vue +444 -444
- package/src/components/TdesignTag.vue +117 -117
- package/src/components/TdesignTextarea.vue +142 -142
- package/src/components/TdesignTimeline.vue +58 -58
- package/src/components/TdesignTimelineItem.vue +71 -71
- package/src/components/TdesignUpload.vue +388 -388
- package/src/components/TdesignWatermark.vue +107 -107
- package/src/components/ebiz-form/components/cascader.vue +61 -61
- package/src/components/ebiz-form/components/checkbox.vue +37 -37
- package/src/components/ebiz-form/components/city.vue +137 -137
- package/src/components/ebiz-form/components/date-panel.vue +52 -52
- package/src/components/ebiz-form/components/date-range-panel.vue +52 -52
- package/src/components/ebiz-form/components/date-range.vue +56 -56
- package/src/components/ebiz-form/components/date.vue +52 -52
- package/src/components/ebiz-form/components/editor-multi-language.vue +47 -47
- package/src/components/ebiz-form/components/editor.vue +78 -78
- package/src/components/ebiz-form/components/file-multi-language.vue +52 -52
- package/src/components/ebiz-form/components/file.vue +149 -149
- package/src/components/ebiz-form/components/images-multi-language.vue +52 -52
- package/src/components/ebiz-form/components/images.vue +129 -129
- package/src/components/ebiz-form/components/img-multi-language.vue +51 -51
- package/src/components/ebiz-form/components/img.vue +129 -129
- package/src/components/ebiz-form/components/number.vue +50 -50
- package/src/components/ebiz-form/components/radio.vue +28 -28
- package/src/components/ebiz-form/components/select.vue +119 -119
- package/src/components/ebiz-form/components/switch.vue +23 -23
- package/src/components/ebiz-form/components/text-multi-language.vue +47 -47
- package/src/components/ebiz-form/components/text.vue +52 -52
- package/src/components/ebiz-form/components/textarea-multi-language.vue +48 -48
- package/src/components/ebiz-form/components/textarea.vue +29 -29
- package/src/components/ebiz-form/components/video-multi-language.vue +51 -51
- package/src/components/ebiz-form/components/video.vue +97 -97
- package/src/components/ebiz-form/index.vue +157 -157
- package/src/components/examples/PopconfirmExample.vue +149 -149
- package/src/components/icons/IconCommunity.vue +7 -7
- package/src/components/icons/IconDocumentation.vue +7 -7
- package/src/components/icons/IconEcosystem.vue +7 -7
- package/src/components/icons/IconSupport.vue +7 -7
- package/src/components/icons/IconTooling.vue +19 -19
- package/src/components/senior/EbizSData/index.vue +262 -260
- package/src/components/senior/EbizSDialog/index.vue +713 -713
- package/src/components/senior/EbizSForm/README.md +157 -157
- package/src/components/senior/EbizSForm/index.vue +668 -668
- package/src/components/senior/EbizSForm/item.vue +522 -522
- package/src/components/senior/EbizSForm/mItems/DateTimePicker.vue +51 -51
- package/src/components/senior/EbizSForm/mItems/Picker.vue +63 -63
- package/src/index.js +218 -218
- package/src/main.js +55 -55
- package/src/router/index.js +374 -374
- package/src/utils/formatCode.js +24 -24
- package/src/utils/generateImportStatement.js +52 -52
- package/src/utils/hasJsx.js +25 -25
- package/src/utils/index.js +166 -166
- package/src/utils/mergeOptions.js +29 -29
- package/src/utils/parseRequiredBlocks.js +18 -18
- package/src/utils/upload.ts +126 -126
- package/src/utils/vue-sfc-validator.js +155 -155
- package/src/views/Button.vue +23 -23
- package/src/views/CheckboxDemo.vue +104 -104
- package/src/views/DataContainer.vue +19 -19
- package/src/views/DialogDemo.vue +125 -125
- package/src/views/EbizApprovalDemo.vue +76 -76
- package/src/views/EbizAutoFormDemo.vue +129 -129
- package/src/views/EbizAvatar.vue +223 -223
- package/src/views/EbizDepartmentSelectorDemo.vue +169 -169
- package/src/views/EbizDetailBlockDemo.vue +30 -30
- package/src/views/EbizEmployeeInfo.vue +249 -249
- package/src/views/EbizEmployeeSelector.vue +83 -83
- package/src/views/EbizMap.vue +201 -201
- package/src/views/EbizRadioDemo.vue +151 -151
- package/src/views/EbizSDataDemo.vue +136 -136
- package/src/views/EbizSDialogDemo.vue +301 -301
- package/src/views/EbizSForm/index.vue +359 -359
- package/src/views/EbizSFormDemo.vue +420 -420
- package/src/views/EbizSpace.vue +185 -185
- package/src/views/EbizSwiper.vue +157 -157
- package/src/views/EbizTdesignButtonDialogExample.vue +437 -437
- package/src/views/Form.vue +19 -19
- package/src/views/GridDemo.vue +238 -238
- package/src/views/Home.vue +146 -146
- package/src/views/Mindmap.vue +17 -17
- package/src/views/MyComponent.vue +19 -19
- package/src/views/OkrTree.vue +19 -19
- package/src/views/PageHeaderDemo.vue +104 -104
- package/src/views/PaginationDemo.vue +96 -96
- package/src/views/PermissionBoxDemo.vue +85 -85
- package/src/views/PopconfirmDemo.vue +80 -80
- package/src/views/RemoteSelect.vue +350 -350
- package/src/views/StatisticDemo.vue +190 -190
- package/src/views/SwitchDemo.vue +79 -79
- package/src/views/Table.vue +19 -19
- package/src/views/TableDemo.vue +334 -334
- package/src/views/TableSortDemo.vue +143 -143
- package/src/views/TableView.vue +68 -68
- package/src/views/TabsDemo.vue +282 -282
- package/src/views/TagDemo.vue +101 -101
- package/src/views/TdesignAlert.vue +98 -98
- package/src/views/TdesignButton.vue +190 -190
- package/src/views/TdesignCalendar.vue +94 -94
- package/src/views/TdesignCard.vue +296 -296
- package/src/views/TdesignCollapse.vue +293 -293
- package/src/views/TdesignDatePicker.vue +187 -187
- package/src/views/TdesignDescriptions.vue +101 -101
- package/src/views/TdesignForm.vue +248 -248
- package/src/views/TdesignIcon.vue +203 -203
- package/src/views/TdesignImage.vue +215 -215
- package/src/views/TdesignImageViewer.vue +198 -198
- package/src/views/TdesignInput.vue +252 -252
- package/src/views/TdesignSelect.vue +473 -473
- package/src/views/TdesignSwiper.vue +157 -157
- package/src/views/TextareaDemo.vue +93 -93
- package/src/views/TimePickerDemo.vue +146 -146
- package/src/views/TimelineDemo.vue +160 -160
- package/src/views/Title.vue +19 -19
- package/src/views/TreeDemo.vue +254 -254
- package/src/views/TreeMergeTableDemo.vue +239 -239
- package/src/views/TreeSelectorDemo.vue +245 -245
- package/src/views/UploadDemo.vue +121 -121
- package/src/views/VxeTableDemo.vue +279 -279
- package/src/views/WatermarkDemo.vue +85 -85
@@ -1,158 +1,158 @@
|
|
1
|
-
# EbizSForm 高级表单组件
|
2
|
-
|
3
|
-
EbizSForm是一个基于TDesign Form封装的高级表单组件,提供了丰富的表单功能,包括本地表单数据管理、表单验证、API提交和详情数据加载等。
|
4
|
-
|
5
|
-
## 主要特性
|
6
|
-
|
7
|
-
1. **本地表单数据管理**:通过`localFormData`管理表单数据,实现数据的双向绑定
|
8
|
-
2. **详情接口支持**:通过`detailApiConfig`配置详情API,支持加载表单详情数据
|
9
|
-
3. **API调用机制**:使用`dataService.fetch(params, apiConfig)`方式调用API,符合系统规范
|
10
|
-
4. **表单验证**:支持完整的表单验证功能,并与API调用无缝衔接
|
11
|
-
5. **丰富的方法支持**:提供`openForm`、`loadDetailData`、`setFormData`等丰富的方法
|
12
|
-
|
13
|
-
## 基本用法
|
14
|
-
|
15
|
-
```vue
|
16
|
-
<template>
|
17
|
-
<EbizSForm
|
18
|
-
ref="formRef"
|
19
|
-
:data="formData"
|
20
|
-
:rules="formRules"
|
21
|
-
:api-config="apiConfig"
|
22
|
-
:detail-api-config="detailApiConfig"
|
23
|
-
@success="handleSuccess"
|
24
|
-
@error="handleError"
|
25
|
-
@detail-loaded="handleDetailLoaded"
|
26
|
-
>
|
27
|
-
<EbizSFormItem label="用户名" name="username" type="input" />
|
28
|
-
<EbizSFormItem label="密码" name="password" type="input" />
|
29
|
-
</EbizSForm>
|
30
|
-
</template>
|
31
|
-
|
32
|
-
<script setup>
|
33
|
-
import { ref, reactive } from 'vue';
|
34
|
-
import { EbizSForm, EbizSFormItem } from '@ebiz/designer-components';
|
35
|
-
|
36
|
-
const formRef = ref(null);
|
37
|
-
const formData = reactive({
|
38
|
-
username: '',
|
39
|
-
password: ''
|
40
|
-
});
|
41
|
-
|
42
|
-
const formRules = {
|
43
|
-
username: [
|
44
|
-
{ required: true, message: '请输入用户名', trigger: 'blur' }
|
45
|
-
],
|
46
|
-
password: [
|
47
|
-
{ required: true, message: '请输入密码', trigger: 'blur' }
|
48
|
-
]
|
49
|
-
};
|
50
|
-
|
51
|
-
// API配置
|
52
|
-
const apiConfig = {
|
53
|
-
key: 'userSubmit',
|
54
|
-
apiId: 'user.submit',
|
55
|
-
apiType: '3'
|
56
|
-
};
|
57
|
-
|
58
|
-
// 详情API配置
|
59
|
-
const detailApiConfig = {
|
60
|
-
key: 'userDetail',
|
61
|
-
apiId: 'user.detail',
|
62
|
-
apiType: '1'
|
63
|
-
};
|
64
|
-
|
65
|
-
// 加载详情数据
|
66
|
-
const loadDetail = (id) => {
|
67
|
-
formRef.value.loadDetailData(id);
|
68
|
-
};
|
69
|
-
|
70
|
-
// 事件处理
|
71
|
-
const handleSuccess = (response) => {
|
72
|
-
console.log('提交成功:', response);
|
73
|
-
};
|
74
|
-
|
75
|
-
const handleError = (error) => {
|
76
|
-
console.error('提交失败:', error);
|
77
|
-
};
|
78
|
-
|
79
|
-
const handleDetailLoaded = (data) => {
|
80
|
-
console.log('详情数据加载成功:', data);
|
81
|
-
};
|
82
|
-
</script>
|
83
|
-
```
|
84
|
-
|
85
|
-
## Props
|
86
|
-
|
87
|
-
| 属性名 | 类型 | 默认值 | 说明 |
|
88
|
-
| ----------------- | --------- | --------- | ----------------------------------- |
|
89
|
-
| data | Object | {} | 表单数据对象 |
|
90
|
-
| labelAlign | String | 'right' | 标签对齐方式:'left'/'right'/'top' |
|
91
|
-
| layout | String | 'vertical'| 表单布局方式:'vertical'/'inline' |
|
92
|
-
| labelWidth | String | '100px' | 标签宽度 |
|
93
|
-
| rules | Object | {} | 表单验证规则 |
|
94
|
-
| apiConfig | Object | null | API配置,用于表单提交 |
|
95
|
-
| detailApiConfig | Object | null | 详情API配置,用于加载表单数据 |
|
96
|
-
| resetOnSuccess | Boolean | false | 提交成功后是否重置表单 |
|
97
|
-
| showResultMessage | Boolean | true | 是否显示结果消息 |
|
98
|
-
|
99
|
-
## 事件
|
100
|
-
|
101
|
-
| 事件名 | 说明 | 参数 |
|
102
|
-
| ------------ | ----------------------- | ------------------------------ |
|
103
|
-
| submit | 表单提交时触发 | formData: 表单数据对象 |
|
104
|
-
| success | API调用成功时触发 | response: 成功响应数据 |
|
105
|
-
| error | API调用失败时触发 | error: 错误信息 |
|
106
|
-
| reset | 表单重置时触发 | context: 重置上下文 |
|
107
|
-
| validate | 表单验证时触发 | result: 验证结果 |
|
108
|
-
| detail-loaded| 详情数据加载成功时触发 | data: 详情数据 |
|
109
|
-
| detail-error | 详情数据加载失败时触发 | error: 错误信息 |
|
110
|
-
|
111
|
-
## 方法
|
112
|
-
|
113
|
-
通过ref可以调用组件实例的以下方法:
|
114
|
-
|
115
|
-
| 方法名 | 说明 | 参数 |
|
116
|
-
| -------------- | ------------------------ | ------------------------------ |
|
117
|
-
| submit | 提交表单 | 无 |
|
118
|
-
| reset | 重置表单 | 无 |
|
119
|
-
| validate | 验证表单 | 无 |
|
120
|
-
| validateFields | 验证指定字段 | fields: 字段名或字段名数组 |
|
121
|
-
| clearValidate | 清除验证结果 | fields: 字段名或字段名数组,可选 |
|
122
|
-
| openForm | 打开表单并设置参数 | params: 参数对象 |
|
123
|
-
| loadDetailData | 加载详情数据 | id: 记录ID |
|
124
|
-
| setFormData | 设置表单数据 | data: 要设置的数据对象 |
|
125
|
-
| getFormData | 获取表单数据 | 无 |
|
126
|
-
| clearFormData | 清空表单数据 | 无 |
|
127
|
-
|
128
|
-
## API配置对象说明
|
129
|
-
|
130
|
-
apiConfig和detailApiConfig的格式如下:
|
131
|
-
|
132
|
-
```javascript
|
133
|
-
{
|
134
|
-
key: 'apiKey', // API的键名
|
135
|
-
apiId: 'module.api', // API的标识ID
|
136
|
-
apiType: '3' // API类型,对应dataService中的类型
|
137
|
-
}
|
138
|
-
```
|
139
|
-
|
140
|
-
apiType常用值:
|
141
|
-
- '0': 列表查询
|
142
|
-
- '1': 详情查询
|
143
|
-
- '3': 数据新增
|
144
|
-
- '5': 数据修改
|
145
|
-
- '7': 数据删除
|
146
|
-
|
147
|
-
## 与EbizSDialog组件的比较
|
148
|
-
|
149
|
-
EbizSForm与EbizSDialog组件有相似的API调用和表单数据处理机制,两者都:
|
150
|
-
|
151
|
-
1. 使用本地表单数据管理(localFormData)
|
152
|
-
2. 支持详情数据加载(detailApiConfig)
|
153
|
-
3. 采用相同的API调用方式(dataService.fetch)
|
154
|
-
4. 不修改apiConfig对象
|
155
|
-
|
156
|
-
选择使用哪个组件取决于具体的场景需求:
|
157
|
-
- 如果需要在页面上直接显示表单,使用EbizSForm
|
1
|
+
# EbizSForm 高级表单组件
|
2
|
+
|
3
|
+
EbizSForm是一个基于TDesign Form封装的高级表单组件,提供了丰富的表单功能,包括本地表单数据管理、表单验证、API提交和详情数据加载等。
|
4
|
+
|
5
|
+
## 主要特性
|
6
|
+
|
7
|
+
1. **本地表单数据管理**:通过`localFormData`管理表单数据,实现数据的双向绑定
|
8
|
+
2. **详情接口支持**:通过`detailApiConfig`配置详情API,支持加载表单详情数据
|
9
|
+
3. **API调用机制**:使用`dataService.fetch(params, apiConfig)`方式调用API,符合系统规范
|
10
|
+
4. **表单验证**:支持完整的表单验证功能,并与API调用无缝衔接
|
11
|
+
5. **丰富的方法支持**:提供`openForm`、`loadDetailData`、`setFormData`等丰富的方法
|
12
|
+
|
13
|
+
## 基本用法
|
14
|
+
|
15
|
+
```vue
|
16
|
+
<template>
|
17
|
+
<EbizSForm
|
18
|
+
ref="formRef"
|
19
|
+
:data="formData"
|
20
|
+
:rules="formRules"
|
21
|
+
:api-config="apiConfig"
|
22
|
+
:detail-api-config="detailApiConfig"
|
23
|
+
@success="handleSuccess"
|
24
|
+
@error="handleError"
|
25
|
+
@detail-loaded="handleDetailLoaded"
|
26
|
+
>
|
27
|
+
<EbizSFormItem label="用户名" name="username" type="input" />
|
28
|
+
<EbizSFormItem label="密码" name="password" type="input" />
|
29
|
+
</EbizSForm>
|
30
|
+
</template>
|
31
|
+
|
32
|
+
<script setup>
|
33
|
+
import { ref, reactive } from 'vue';
|
34
|
+
import { EbizSForm, EbizSFormItem } from '@ebiz/designer-components';
|
35
|
+
|
36
|
+
const formRef = ref(null);
|
37
|
+
const formData = reactive({
|
38
|
+
username: '',
|
39
|
+
password: ''
|
40
|
+
});
|
41
|
+
|
42
|
+
const formRules = {
|
43
|
+
username: [
|
44
|
+
{ required: true, message: '请输入用户名', trigger: 'blur' }
|
45
|
+
],
|
46
|
+
password: [
|
47
|
+
{ required: true, message: '请输入密码', trigger: 'blur' }
|
48
|
+
]
|
49
|
+
};
|
50
|
+
|
51
|
+
// API配置
|
52
|
+
const apiConfig = {
|
53
|
+
key: 'userSubmit',
|
54
|
+
apiId: 'user.submit',
|
55
|
+
apiType: '3'
|
56
|
+
};
|
57
|
+
|
58
|
+
// 详情API配置
|
59
|
+
const detailApiConfig = {
|
60
|
+
key: 'userDetail',
|
61
|
+
apiId: 'user.detail',
|
62
|
+
apiType: '1'
|
63
|
+
};
|
64
|
+
|
65
|
+
// 加载详情数据
|
66
|
+
const loadDetail = (id) => {
|
67
|
+
formRef.value.loadDetailData(id);
|
68
|
+
};
|
69
|
+
|
70
|
+
// 事件处理
|
71
|
+
const handleSuccess = (response) => {
|
72
|
+
console.log('提交成功:', response);
|
73
|
+
};
|
74
|
+
|
75
|
+
const handleError = (error) => {
|
76
|
+
console.error('提交失败:', error);
|
77
|
+
};
|
78
|
+
|
79
|
+
const handleDetailLoaded = (data) => {
|
80
|
+
console.log('详情数据加载成功:', data);
|
81
|
+
};
|
82
|
+
</script>
|
83
|
+
```
|
84
|
+
|
85
|
+
## Props
|
86
|
+
|
87
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
88
|
+
| ----------------- | --------- | --------- | ----------------------------------- |
|
89
|
+
| data | Object | {} | 表单数据对象 |
|
90
|
+
| labelAlign | String | 'right' | 标签对齐方式:'left'/'right'/'top' |
|
91
|
+
| layout | String | 'vertical'| 表单布局方式:'vertical'/'inline' |
|
92
|
+
| labelWidth | String | '100px' | 标签宽度 |
|
93
|
+
| rules | Object | {} | 表单验证规则 |
|
94
|
+
| apiConfig | Object | null | API配置,用于表单提交 |
|
95
|
+
| detailApiConfig | Object | null | 详情API配置,用于加载表单数据 |
|
96
|
+
| resetOnSuccess | Boolean | false | 提交成功后是否重置表单 |
|
97
|
+
| showResultMessage | Boolean | true | 是否显示结果消息 |
|
98
|
+
|
99
|
+
## 事件
|
100
|
+
|
101
|
+
| 事件名 | 说明 | 参数 |
|
102
|
+
| ------------ | ----------------------- | ------------------------------ |
|
103
|
+
| submit | 表单提交时触发 | formData: 表单数据对象 |
|
104
|
+
| success | API调用成功时触发 | response: 成功响应数据 |
|
105
|
+
| error | API调用失败时触发 | error: 错误信息 |
|
106
|
+
| reset | 表单重置时触发 | context: 重置上下文 |
|
107
|
+
| validate | 表单验证时触发 | result: 验证结果 |
|
108
|
+
| detail-loaded| 详情数据加载成功时触发 | data: 详情数据 |
|
109
|
+
| detail-error | 详情数据加载失败时触发 | error: 错误信息 |
|
110
|
+
|
111
|
+
## 方法
|
112
|
+
|
113
|
+
通过ref可以调用组件实例的以下方法:
|
114
|
+
|
115
|
+
| 方法名 | 说明 | 参数 |
|
116
|
+
| -------------- | ------------------------ | ------------------------------ |
|
117
|
+
| submit | 提交表单 | 无 |
|
118
|
+
| reset | 重置表单 | 无 |
|
119
|
+
| validate | 验证表单 | 无 |
|
120
|
+
| validateFields | 验证指定字段 | fields: 字段名或字段名数组 |
|
121
|
+
| clearValidate | 清除验证结果 | fields: 字段名或字段名数组,可选 |
|
122
|
+
| openForm | 打开表单并设置参数 | params: 参数对象 |
|
123
|
+
| loadDetailData | 加载详情数据 | id: 记录ID |
|
124
|
+
| setFormData | 设置表单数据 | data: 要设置的数据对象 |
|
125
|
+
| getFormData | 获取表单数据 | 无 |
|
126
|
+
| clearFormData | 清空表单数据 | 无 |
|
127
|
+
|
128
|
+
## API配置对象说明
|
129
|
+
|
130
|
+
apiConfig和detailApiConfig的格式如下:
|
131
|
+
|
132
|
+
```javascript
|
133
|
+
{
|
134
|
+
key: 'apiKey', // API的键名
|
135
|
+
apiId: 'module.api', // API的标识ID
|
136
|
+
apiType: '3' // API类型,对应dataService中的类型
|
137
|
+
}
|
138
|
+
```
|
139
|
+
|
140
|
+
apiType常用值:
|
141
|
+
- '0': 列表查询
|
142
|
+
- '1': 详情查询
|
143
|
+
- '3': 数据新增
|
144
|
+
- '5': 数据修改
|
145
|
+
- '7': 数据删除
|
146
|
+
|
147
|
+
## 与EbizSDialog组件的比较
|
148
|
+
|
149
|
+
EbizSForm与EbizSDialog组件有相似的API调用和表单数据处理机制,两者都:
|
150
|
+
|
151
|
+
1. 使用本地表单数据管理(localFormData)
|
152
|
+
2. 支持详情数据加载(detailApiConfig)
|
153
|
+
3. 采用相同的API调用方式(dataService.fetch)
|
154
|
+
4. 不修改apiConfig对象
|
155
|
+
|
156
|
+
选择使用哪个组件取决于具体的场景需求:
|
157
|
+
- 如果需要在页面上直接显示表单,使用EbizSForm
|
158
158
|
- 如果需要在弹窗中显示表单,使用EbizSDialog
|