@vxe-ui/plugin-render-antd 4.4.0 → 4.4.2

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.
@@ -156,6 +156,66 @@ export function defineTableRender (VxeUI: VxeUIExport) {
156
156
  }
157
157
  }
158
158
 
159
+ function handleFormatSelect (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, renderParams: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
160
+ const { cellValue } = renderParams
161
+ return handleSelectCellValue(cellValue, renderOpts)
162
+ }
163
+
164
+ function handleSetSelectValue (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, renderParams: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
165
+ const { row, column, cellValue } = renderParams
166
+ const { field } = column
167
+ if (field) {
168
+ const { options, optionGroups, optionProps = {}, optionGroupProps = {}, props } = renderOpts
169
+ if (isEmptyValue(cellValue)) {
170
+ XEUtils.set(row, field, props && props.mode === 'multiple' ? [] : null)
171
+ return
172
+ }
173
+ const isMultiVal = XEUtils.indexOf(`${cellValue}`, ',') > -1
174
+ const labelProp = optionProps.label || 'label'
175
+ const valueProp = optionProps.value || 'value'
176
+ const labelMpas: Record<string, any> = {}
177
+ if (optionGroups && optionGroups.length) {
178
+ const groupOptions = optionGroupProps.options || 'options'
179
+ for (let i = 0; i < optionGroups.length; i++) {
180
+ const opts = optionGroups[i][groupOptions] || {}
181
+ for (let j = 0; j < opts.length; j++) {
182
+ const item = opts[j]
183
+ if (isMultiVal) {
184
+ labelMpas[item[labelProp]] = item
185
+ /* eslint-disable eqeqeq */
186
+ } else if (item[labelProp] == cellValue) {
187
+ XEUtils.set(row, field, item[valueProp])
188
+ return
189
+ }
190
+ }
191
+ }
192
+ } else {
193
+ if (options) {
194
+ for (let i = 0; i < options.length; i++) {
195
+ const item = options[i]
196
+ if (isMultiVal) {
197
+ labelMpas[item[labelProp]] = item
198
+ /* eslint-disable eqeqeq */
199
+ } else if (item[labelProp] == cellValue) {
200
+ XEUtils.set(row, field, item[valueProp])
201
+ return
202
+ }
203
+ }
204
+ }
205
+ }
206
+ if (isMultiVal) {
207
+ XEUtils.set(row, field, (isMultiVal
208
+ ? cellValue.split(',')
209
+ : [cellValue]).map((label: any) => {
210
+ const item = labelMpas[label]
211
+ return item ? item[valueProp] : label
212
+ }))
213
+ } else {
214
+ XEUtils.set(row, field, cellValue)
215
+ }
216
+ }
217
+ }
218
+
159
219
  function handleSelectCellValue (cellValue: any, renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions) {
160
220
  const { options = [], optionGroups, props = {}, optionProps = {}, optionGroupProps = {} } = renderOpts
161
221
  const labelProp = optionProps.label || 'label'
@@ -356,11 +416,18 @@ export function defineTableRender (VxeUI: VxeUIExport) {
356
416
  }
357
417
  }
358
418
 
419
+ function handleDefaultCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions, renderParams: VxeGlobalRendererHandles.RenderTableCellParams) {
420
+ const { row, column } = renderParams
421
+ const cellValue = XEUtils.get(row, column.field)
422
+ return formatText(cellValue)
423
+ }
424
+
359
425
  VxeUI.renderer.mixin({
360
426
  AAutoComplete: {
361
427
  tableAutoFocus: 'input',
362
428
  renderTableDefault: createEditRender(),
363
429
  renderTableEdit: createEditRender(),
430
+ renderTableCell: handleDefaultCellValue,
364
431
  renderTableFilter: createFilterRender(),
365
432
  tableFilterDefaultMethod: defaultExactFilterMethod
366
433
  },
@@ -368,6 +435,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
368
435
  tableAutoFocus: 'input',
369
436
  renderTableDefault: createEditRender(),
370
437
  renderTableEdit: createEditRender(),
438
+ renderTableCell: handleDefaultCellValue,
371
439
  renderTableFilter: createFilterRender(),
372
440
  tableFilterDefaultMethod: defaultFuzzyFilterMethod
373
441
  },
@@ -375,6 +443,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
375
443
  tableAutoFocus: 'input',
376
444
  renderTableDefault: createEditRender(),
377
445
  renderTableEdit: createEditRender(),
446
+ renderTableCell: handleDefaultCellValue,
378
447
  renderTableFilter: createFilterRender(),
379
448
  tableFilterDefaultMethod: defaultFuzzyFilterMethod
380
449
  },
@@ -467,6 +536,9 @@ export function defineTableRender (VxeUI: VxeUIExport) {
467
536
  }))
468
537
  ]
469
538
  },
539
+ tableCellFormatter: handleFormatSelect,
540
+ tableCellCopyMethod: handleFormatSelect,
541
+ tableCellPasteMethod: handleSetSelectValue,
470
542
  tableFilterDefaultMethod (params) {
471
543
  const { option, row, column } = params
472
544
  const { data } = option
@@ -528,12 +600,14 @@ export function defineTableRender (VxeUI: VxeUIExport) {
528
600
  ARate: {
529
601
  renderTableDefault: createEditRender(),
530
602
  renderTableEdit: createEditRender(),
603
+ renderTableCell: handleDefaultCellValue,
531
604
  renderTableFilter: createFilterRender(),
532
605
  tableFilterDefaultMethod: defaultExactFilterMethod
533
606
  },
534
607
  ASwitch: {
535
608
  renderTableDefault: createEditRender(),
536
609
  renderTableEdit: createEditRender(),
610
+ renderTableCell: handleDefaultCellValue,
537
611
  renderTableFilter (renderOpts, params) {
538
612
  const { column } = params
539
613
  const { name, attrs } = renderOpts