@vxe-ui/plugin-render-element 4.0.7 → 4.0.9

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/src/form/index.ts CHANGED
@@ -1,369 +1,322 @@
1
- import { h, resolveComponent, ComponentOptions } from 'vue'
2
- import XEUtils from 'xe-utils'
3
-
4
- import type { VxeUIExport, VxeGlobalRendererHandles, VxeGlobalInterceptorHandles } from 'vxe-pc-ui'
5
-
6
- /**
7
- * 表单 - 渲染器
8
- */
9
- export function defineFormRender (VxeUI: VxeUIExport) {
10
- function isEmptyValue (cellValue: any) {
11
- return cellValue === null || cellValue === undefined || cellValue === ''
12
- }
13
-
14
- function getOnName (type: string) {
15
- return 'on' + type.substring(0, 1).toLocaleUpperCase() + type.substring(1)
16
- }
17
-
18
- function getModelProp (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
19
- return 'modelValue'
20
- }
21
-
22
- function getModelEvent (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
23
- return 'update:modelValue'
24
- }
25
-
26
- function getChangeEvent (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
27
- let type = 'change'
28
- switch (renderOpts.name) {
29
- case 'ElAutocomplete':
30
- type = 'select'
31
- break
32
- case 'ElInput':
33
- case 'ElInputNumber':
34
- type = 'input'
35
- break
36
- }
37
- return type
38
- }
39
-
40
- function getItemProps (renderOpts: VxeGlobalRendererHandles.RenderOptions, params: any, value: any, defaultProps?: { [prop: string]: any }) {
41
- return XEUtils.assign({}, defaultProps, renderOpts.props, { [getModelProp(renderOpts)]: value })
42
- }
43
-
44
- function formatText (cellValue: any) {
45
- return '' + (isEmptyValue(cellValue) ? '' : cellValue)
46
- }
47
-
48
- function getOns (renderOpts: VxeGlobalRendererHandles.RenderOptions, params: VxeGlobalRendererHandles.RenderParams, inputFunc?: Function, changeFunc?: Function) {
49
- const { events } = renderOpts
50
- const modelEvent = getModelEvent(renderOpts)
51
- const changeEvent = getChangeEvent(renderOpts)
52
- const isSameEvent = changeEvent === modelEvent
53
- const ons: { [type: string]: Function } = {}
54
- XEUtils.objectEach(events, (func: Function, key: string) => {
55
- ons[getOnName(key)] = function (...args: any[]) {
56
- func(params, ...args)
57
- }
58
- })
59
- if (inputFunc) {
60
- ons[getOnName(modelEvent)] = function (targetEvnt: any) {
61
- inputFunc(targetEvnt)
62
- if (events && events[modelEvent]) {
63
- events[modelEvent](params, targetEvnt)
64
- }
65
- if (isSameEvent && changeFunc) {
66
- changeFunc(targetEvnt)
67
- }
68
- }
69
- }
70
- if (!isSameEvent && changeFunc) {
71
- ons[getOnName(changeEvent)] = function (...args: any[]) {
72
- changeFunc(...args)
73
- if (events && events[changeEvent]) {
74
- events[changeEvent](params, ...args)
75
- }
76
- }
77
- }
78
- return ons
79
- }
80
-
81
- function getItemOns (renderOpts: VxeGlobalRendererHandles.RenderOptions, params: any) {
82
- const { $form, data, field } = params
83
- return getOns(renderOpts, params, (value: any) => {
84
- // 处理 model 值双向绑定
85
- XEUtils.set(data, field, value)
86
- }, () => {
87
- // 处理 change 事件相关逻辑
88
- $form.updateStatus(params)
89
- })
90
- }
91
-
92
- function renderOptions (options: any[], optionProps: VxeGlobalRendererHandles.RenderOptionProps) {
93
- const labelProp = optionProps.label || 'label'
94
- const valueProp = optionProps.value || 'value'
95
- return XEUtils.map(options, (item, oIndex) => {
96
- return h(resolveComponent('el-option'), {
97
- key: oIndex,
98
- value: item[valueProp],
99
- label: item[labelProp],
100
- disabled: item.disabled
101
- })
102
- })
103
- }
104
-
105
- function cellText (cellValue: any): string[] {
106
- return [formatText(cellValue)]
107
- }
108
-
109
- function createFormItemRender (defaultProps?: { [key: string]: any }) {
110
- return function (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions & { name: string }, params: any) {
111
- const { data, field } = params
112
- const { name } = renderOpts
113
- const { attrs } = renderOpts
114
- const itemValue = XEUtils.get(data, field)
115
- return [
116
- h(resolveComponent(name), {
117
- ...attrs,
118
- ...getItemProps(renderOpts, params, itemValue, defaultProps),
119
- ...getItemOns(renderOpts, params)
120
- })
121
- ]
122
- }
123
- }
124
-
125
- function defaultButtonItemRender (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions, params: any) {
126
- const { attrs } = renderOpts
127
- const props = getItemProps(renderOpts, params, null)
128
- return [
129
- h(resolveComponent('el-button') as ComponentOptions, {
130
- ...attrs,
131
- ...props,
132
- ...getOns(renderOpts, params)
133
- }, {
134
- default: () => cellText(renderOpts.content || props.content)
135
- })
136
- ]
137
- }
138
-
139
- function defaultButtonsItemRender (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions, params: any) {
140
- const { children } = renderOpts
141
- if (children) {
142
- return children.map((childRenderOpts: VxeGlobalRendererHandles.RenderItemContentOptions) => defaultButtonItemRender(childRenderOpts, params)[0])
143
- }
144
- return []
145
- }
146
-
147
- /**
148
- * 已废弃
149
- * @deprecated
150
- */
151
- function createOldFormItemRadioAndCheckboxRender () {
152
- return function (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions & { name: string }, params: any) {
153
- const { name, options = [], optionProps = {}, attrs } = renderOpts
154
- const { data, field } = params
155
- const labelProp = optionProps.label || 'label'
156
- const valueProp = optionProps.value || 'value'
157
- const itemValue = XEUtils.get(data, field)
158
- return [
159
- h(resolveComponent(`${name}Group`) as ComponentOptions, {
160
- ...attrs,
161
- ...getItemProps(renderOpts, params, itemValue),
162
- ...getItemOns(renderOpts, params)
163
- }, {
164
- default: () => {
165
- return options.map((option, oIndex) => {
166
- return h(resolveComponent(name) as ComponentOptions, {
167
- key: oIndex,
168
- label: option[valueProp],
169
- disabled: option.disabled
170
- }, {
171
- default: () => cellText(option[labelProp])
172
- })
173
- })
174
- }
175
- })
176
- ]
177
- }
178
- }
179
-
180
- /**
181
- * 检查触发源是否属于目标节点
182
- */
183
- function getEventTargetNode (evnt: any, container: HTMLElement, className: string) {
184
- let targetElem
185
- let target = evnt.target
186
- while (target && target.nodeType && target !== document) {
187
- if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
188
- targetElem = target
189
- } else if (target === container) {
190
- return { flag: className ? !!targetElem : true, container, targetElem: targetElem }
191
- }
192
- target = target.parentNode
193
- }
194
- return { flag: false }
195
- }
196
-
197
- /**
198
- * 事件兼容性处理
199
- */
200
- function handleClearEvent (params: VxeGlobalInterceptorHandles.InterceptorClearFilterParams | VxeGlobalInterceptorHandles.InterceptorClearEditParams | VxeGlobalInterceptorHandles.InterceptorClearAreasParams) {
201
- const { $event } = params
202
- const bodyElem = document.body
203
- if (
204
- // 远程搜索
205
- getEventTargetNode($event, bodyElem, 'el-autocomplete-suggestion').flag ||
206
- // 下拉框
207
- getEventTargetNode($event, bodyElem, 'el-select-dropdown').flag ||
208
- // 级联
209
- getEventTargetNode($event, bodyElem, 'el-cascader__dropdown').flag ||
210
- getEventTargetNode($event, bodyElem, 'el-cascader-menus').flag ||
211
- // 日期
212
- getEventTargetNode($event, bodyElem, 'el-time-panel').flag ||
213
- getEventTargetNode($event, bodyElem, 'el-picker-panel').flag ||
214
- // 颜色
215
- getEventTargetNode($event, bodyElem, 'el-color-dropdown').flag
216
- ) {
217
- return false
218
- }
219
- }
220
-
221
- VxeUI.renderer.mixin({
222
- ElAutocomplete: {
223
- renderFormItemContent: createFormItemRender()
224
- },
225
- ElInput: {
226
- renderFormItemContent: createFormItemRender()
227
- },
228
- ElInputNumber: {
229
- renderFormItemContent: createFormItemRender()
230
- },
231
- ElSelect: {
232
- renderFormItemContent (renderOpts, params) {
233
- const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts
234
- const { data, field } = params
235
- const { attrs } = renderOpts
236
- const itemValue = XEUtils.get(data, field)
237
- const props = getItemProps(renderOpts, params, itemValue)
238
- const ons = getItemOns(renderOpts, params)
239
- if (optionGroups) {
240
- const groupOptions = optionGroupProps.options || 'options'
241
- const groupLabel = optionGroupProps.label || 'label'
242
- return [
243
- h(resolveComponent('el-select') as ComponentOptions, {
244
- ...attrs,
245
- ...props,
246
- ...ons
247
- }, {
248
- default: () => {
249
- return XEUtils.map(optionGroups, (group, gIndex) => {
250
- return h(resolveComponent('el-option-group') as ComponentOptions, {
251
- label: group[groupLabel],
252
- key: gIndex
253
- }, {
254
- default: () => renderOptions(group[groupOptions], optionProps)
255
- })
256
- })
257
- }
258
- })
259
- ]
260
- }
261
- return [
262
- h(resolveComponent('el-select') as ComponentOptions, {
263
- ...attrs,
264
- ...props,
265
- ...ons
266
- }, {
267
- default: () => renderOptions(options, optionProps)
268
- })
269
- ]
270
- }
271
- },
272
- ElCascader: {
273
- renderFormItemContent: createFormItemRender()
274
- },
275
- ElDatePicker: {
276
- renderFormItemContent: createFormItemRender()
277
- },
278
- ElTimePicker: {
279
- renderFormItemContent: createFormItemRender()
280
- },
281
- ElTimeSelect: {
282
- renderFormItemContent: createFormItemRender()
283
- },
284
- ElRate: {
285
- renderFormItemContent: createFormItemRender()
286
- },
287
- ElSwitch: {
288
- renderFormItemContent: createFormItemRender()
289
- },
290
- ElSlider: {
291
- renderFormItemContent: createFormItemRender()
292
- },
293
- ElRadioGroup: {
294
- renderFormItemContent (renderOpts, params) {
295
- const { options = [], optionProps = {}, attrs } = renderOpts
296
- const { data, field } = params
297
- const labelProp = optionProps.label || 'label'
298
- const valueProp = optionProps.value || 'value'
299
- const itemValue = XEUtils.get(data, field)
300
- return [
301
- h(resolveComponent('el-radio-group'), {
302
- ...attrs,
303
- ...getItemProps(renderOpts, params, itemValue),
304
- ...getItemOns(renderOpts, params)
305
- }, {
306
- default: () => {
307
- return options.map((option, oIndex) => {
308
- return h(resolveComponent('el-radio'), {
309
- key: oIndex,
310
- value: option[valueProp],
311
- disabled: option.disabled
312
- }, {
313
- default: () => cellText(option[labelProp])
314
- })
315
- })
316
- }
317
- })
318
- ]
319
- }
320
- },
321
- ElCheckboxGroup: {
322
- renderFormItemContent (renderOpts, params) {
323
- const { options = [], optionProps = {}, attrs } = renderOpts
324
- const { data, field } = params
325
- const labelProp = optionProps.label || 'label'
326
- const valueProp = optionProps.value || 'value'
327
- const itemValue = XEUtils.get(data, field)
328
- return [
329
- h(resolveComponent('el-checkbox-group'), {
330
- ...attrs,
331
- ...getItemProps(renderOpts, params, itemValue),
332
- ...getItemOns(renderOpts, params)
333
- }, {
334
- default: () => {
335
- return options.map((option, oIndex) => {
336
- return h(resolveComponent('el-checkbox'), {
337
- key: oIndex,
338
- value: option[valueProp],
339
- label: option[labelProp],
340
- disabled: option.disabled
341
- })
342
- })
343
- }
344
- })
345
- ]
346
- }
347
- },
348
- ElButton: {
349
- renderFormItemContent: defaultButtonItemRender
350
- },
351
-
352
- // 已废弃
353
- ElRadio: {
354
- renderFormItemContent: createOldFormItemRadioAndCheckboxRender()
355
- },
356
- ElCheckbox: {
357
- renderFormItemContent: createOldFormItemRadioAndCheckboxRender()
358
- },
359
- ElButtons: {
360
- renderFormItemContent: defaultButtonsItemRender
361
- }
362
- })
363
-
364
- VxeUI.interceptor.add('event.clearFilter', handleClearEvent)
365
- VxeUI.interceptor.add('event.clearEdit', handleClearEvent)
366
- VxeUI.interceptor.add('event.clearAreas', handleClearEvent)
367
- // 兼容老版本
368
- VxeUI.interceptor.add('event.clearActived', handleClearEvent)
369
- }
1
+ import { h, resolveComponent, ComponentOptions } from 'vue'
2
+ import XEUtils from 'xe-utils'
3
+
4
+ import type { VxeUIExport, VxeGlobalRendererHandles } from 'vxe-pc-ui'
5
+
6
+ /**
7
+ * 表单 - 渲染器
8
+ */
9
+ export function defineFormRender (VxeUI: VxeUIExport) {
10
+ function isEmptyValue (cellValue: any) {
11
+ return cellValue === null || cellValue === undefined || cellValue === ''
12
+ }
13
+
14
+ function getOnName (type: string) {
15
+ return 'on' + type.substring(0, 1).toLocaleUpperCase() + type.substring(1)
16
+ }
17
+
18
+ function getModelProp (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
19
+ return 'modelValue'
20
+ }
21
+
22
+ function getModelEvent (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
23
+ return 'update:modelValue'
24
+ }
25
+
26
+ function getChangeEvent (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
27
+ let type = 'change'
28
+ switch (renderOpts.name) {
29
+ case 'ElAutocomplete':
30
+ type = 'select'
31
+ break
32
+ case 'ElInput':
33
+ case 'ElInputNumber':
34
+ type = 'input'
35
+ break
36
+ }
37
+ return type
38
+ }
39
+
40
+ function getItemProps (renderOpts: VxeGlobalRendererHandles.RenderOptions, params: any, value: any, defaultProps?: { [prop: string]: any }) {
41
+ return XEUtils.assign({}, defaultProps, renderOpts.props, { [getModelProp(renderOpts)]: value })
42
+ }
43
+
44
+ function formatText (cellValue: any) {
45
+ return '' + (isEmptyValue(cellValue) ? '' : cellValue)
46
+ }
47
+
48
+ function getOns (renderOpts: VxeGlobalRendererHandles.RenderOptions, params: VxeGlobalRendererHandles.RenderParams, inputFunc?: Function, changeFunc?: Function) {
49
+ const { events } = renderOpts
50
+ const modelEvent = getModelEvent(renderOpts)
51
+ const changeEvent = getChangeEvent(renderOpts)
52
+ const isSameEvent = changeEvent === modelEvent
53
+ const ons: { [type: string]: Function } = {}
54
+ XEUtils.objectEach(events, (func: Function, key: string) => {
55
+ ons[getOnName(key)] = function (...args: any[]) {
56
+ func(params, ...args)
57
+ }
58
+ })
59
+ if (inputFunc) {
60
+ ons[getOnName(modelEvent)] = function (targetEvnt: any) {
61
+ inputFunc(targetEvnt)
62
+ if (events && events[modelEvent]) {
63
+ events[modelEvent](params, targetEvnt)
64
+ }
65
+ if (isSameEvent && changeFunc) {
66
+ changeFunc(targetEvnt)
67
+ }
68
+ }
69
+ }
70
+ if (!isSameEvent && changeFunc) {
71
+ ons[getOnName(changeEvent)] = function (...args: any[]) {
72
+ changeFunc(...args)
73
+ if (events && events[changeEvent]) {
74
+ events[changeEvent](params, ...args)
75
+ }
76
+ }
77
+ }
78
+ return ons
79
+ }
80
+
81
+ function getItemOns (renderOpts: VxeGlobalRendererHandles.RenderOptions, params: any) {
82
+ const { $form, data, field } = params
83
+ return getOns(renderOpts, params, (value: any) => {
84
+ // 处理 model 值双向绑定
85
+ XEUtils.set(data, field, value)
86
+ }, () => {
87
+ // 处理 change 事件相关逻辑
88
+ $form.updateStatus(params)
89
+ })
90
+ }
91
+
92
+ function renderOptions (options: any[], optionProps: VxeGlobalRendererHandles.RenderOptionProps) {
93
+ const labelProp = optionProps.label || 'label'
94
+ const valueProp = optionProps.value || 'value'
95
+ return XEUtils.map(options, (item, oIndex) => {
96
+ return h(resolveComponent('el-option'), {
97
+ key: oIndex,
98
+ value: item[valueProp],
99
+ label: item[labelProp],
100
+ disabled: item.disabled
101
+ })
102
+ })
103
+ }
104
+
105
+ function cellText (cellValue: any): string[] {
106
+ return [formatText(cellValue)]
107
+ }
108
+
109
+ function createFormItemRender (defaultProps?: { [key: string]: any }) {
110
+ return function (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions & { name: string }, params: any) {
111
+ const { data, field } = params
112
+ const { name } = renderOpts
113
+ const { attrs } = renderOpts
114
+ const itemValue = XEUtils.get(data, field)
115
+ return [
116
+ h(resolveComponent(name), {
117
+ ...attrs,
118
+ ...getItemProps(renderOpts, params, itemValue, defaultProps),
119
+ ...getItemOns(renderOpts, params)
120
+ })
121
+ ]
122
+ }
123
+ }
124
+
125
+ function defaultButtonItemRender (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions, params: any) {
126
+ const { attrs } = renderOpts
127
+ const props = getItemProps(renderOpts, params, null)
128
+ return [
129
+ h(resolveComponent('el-button') as ComponentOptions, {
130
+ ...attrs,
131
+ ...props,
132
+ ...getOns(renderOpts, params)
133
+ }, {
134
+ default: () => cellText(renderOpts.content || props.content)
135
+ })
136
+ ]
137
+ }
138
+
139
+ function defaultButtonsItemRender (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions, params: any) {
140
+ const { children } = renderOpts
141
+ if (children) {
142
+ return children.map((childRenderOpts: VxeGlobalRendererHandles.RenderItemContentOptions) => defaultButtonItemRender(childRenderOpts, params)[0])
143
+ }
144
+ return []
145
+ }
146
+
147
+ /**
148
+ * 已废弃
149
+ * @deprecated
150
+ */
151
+ function createOldFormItemRadioAndCheckboxRender () {
152
+ return function (renderOpts: VxeGlobalRendererHandles.RenderItemContentOptions & { name: string }, params: any) {
153
+ const { name, options = [], optionProps = {}, attrs } = renderOpts
154
+ const { data, field } = params
155
+ const labelProp = optionProps.label || 'label'
156
+ const valueProp = optionProps.value || 'value'
157
+ const itemValue = XEUtils.get(data, field)
158
+ return [
159
+ h(resolveComponent(`${name}Group`) as ComponentOptions, {
160
+ ...attrs,
161
+ ...getItemProps(renderOpts, params, itemValue),
162
+ ...getItemOns(renderOpts, params)
163
+ }, {
164
+ default: () => {
165
+ return options.map((option, oIndex) => {
166
+ return h(resolveComponent(name) as ComponentOptions, {
167
+ key: oIndex,
168
+ label: option[valueProp],
169
+ disabled: option.disabled
170
+ }, {
171
+ default: () => cellText(option[labelProp])
172
+ })
173
+ })
174
+ }
175
+ })
176
+ ]
177
+ }
178
+ }
179
+
180
+ VxeUI.renderer.mixin({
181
+ ElAutocomplete: {
182
+ renderFormItemContent: createFormItemRender()
183
+ },
184
+ ElInput: {
185
+ renderFormItemContent: createFormItemRender()
186
+ },
187
+ ElInputNumber: {
188
+ renderFormItemContent: createFormItemRender()
189
+ },
190
+ ElSelect: {
191
+ renderFormItemContent (renderOpts, params) {
192
+ const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts
193
+ const { data, field } = params
194
+ const { attrs } = renderOpts
195
+ const itemValue = XEUtils.get(data, field)
196
+ const props = getItemProps(renderOpts, params, itemValue)
197
+ const ons = getItemOns(renderOpts, params)
198
+ if (optionGroups) {
199
+ const groupOptions = optionGroupProps.options || 'options'
200
+ const groupLabel = optionGroupProps.label || 'label'
201
+ return [
202
+ h(resolveComponent('el-select') as ComponentOptions, {
203
+ ...attrs,
204
+ ...props,
205
+ ...ons
206
+ }, {
207
+ default: () => {
208
+ return XEUtils.map(optionGroups, (group, gIndex) => {
209
+ return h(resolveComponent('el-option-group') as ComponentOptions, {
210
+ label: group[groupLabel],
211
+ key: gIndex
212
+ }, {
213
+ default: () => renderOptions(group[groupOptions], optionProps)
214
+ })
215
+ })
216
+ }
217
+ })
218
+ ]
219
+ }
220
+ return [
221
+ h(resolveComponent('el-select') as ComponentOptions, {
222
+ ...attrs,
223
+ ...props,
224
+ ...ons
225
+ }, {
226
+ default: () => renderOptions(options, optionProps)
227
+ })
228
+ ]
229
+ }
230
+ },
231
+ ElCascader: {
232
+ renderFormItemContent: createFormItemRender()
233
+ },
234
+ ElDatePicker: {
235
+ renderFormItemContent: createFormItemRender()
236
+ },
237
+ ElTimePicker: {
238
+ renderFormItemContent: createFormItemRender()
239
+ },
240
+ ElTimeSelect: {
241
+ renderFormItemContent: createFormItemRender()
242
+ },
243
+ ElRate: {
244
+ renderFormItemContent: createFormItemRender()
245
+ },
246
+ ElSwitch: {
247
+ renderFormItemContent: createFormItemRender()
248
+ },
249
+ ElSlider: {
250
+ renderFormItemContent: createFormItemRender()
251
+ },
252
+ ElRadioGroup: {
253
+ renderFormItemContent (renderOpts, params) {
254
+ const { options = [], optionProps = {}, attrs } = renderOpts
255
+ const { data, field } = params
256
+ const labelProp = optionProps.label || 'label'
257
+ const valueProp = optionProps.value || 'value'
258
+ const itemValue = XEUtils.get(data, field)
259
+ return [
260
+ h(resolveComponent('el-radio-group'), {
261
+ ...attrs,
262
+ ...getItemProps(renderOpts, params, itemValue),
263
+ ...getItemOns(renderOpts, params)
264
+ }, {
265
+ default: () => {
266
+ return options.map((option, oIndex) => {
267
+ return h(resolveComponent('el-radio'), {
268
+ key: oIndex,
269
+ value: option[valueProp],
270
+ disabled: option.disabled
271
+ }, {
272
+ default: () => cellText(option[labelProp])
273
+ })
274
+ })
275
+ }
276
+ })
277
+ ]
278
+ }
279
+ },
280
+ ElCheckboxGroup: {
281
+ renderFormItemContent (renderOpts, params) {
282
+ const { options = [], optionProps = {}, attrs } = renderOpts
283
+ const { data, field } = params
284
+ const labelProp = optionProps.label || 'label'
285
+ const valueProp = optionProps.value || 'value'
286
+ const itemValue = XEUtils.get(data, field)
287
+ return [
288
+ h(resolveComponent('el-checkbox-group'), {
289
+ ...attrs,
290
+ ...getItemProps(renderOpts, params, itemValue),
291
+ ...getItemOns(renderOpts, params)
292
+ }, {
293
+ default: () => {
294
+ return options.map((option, oIndex) => {
295
+ return h(resolveComponent('el-checkbox'), {
296
+ key: oIndex,
297
+ value: option[valueProp],
298
+ label: option[labelProp],
299
+ disabled: option.disabled
300
+ })
301
+ })
302
+ }
303
+ })
304
+ ]
305
+ }
306
+ },
307
+ ElButton: {
308
+ renderFormItemContent: defaultButtonItemRender
309
+ },
310
+
311
+ // 已废弃
312
+ ElRadio: {
313
+ renderFormItemContent: createOldFormItemRadioAndCheckboxRender()
314
+ },
315
+ ElCheckbox: {
316
+ renderFormItemContent: createOldFormItemRadioAndCheckboxRender()
317
+ },
318
+ ElButtons: {
319
+ renderFormItemContent: defaultButtonsItemRender
320
+ }
321
+ })
322
+ }