@vxe-ui/plugin-render-element 4.4.1 → 4.4.4
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/dist/index.umd.js +98 -17
- package/dist/index.umd.min.js +1 -1
- package/es/index.esm.js +3 -3
- package/es/index.js +3 -3
- package/es/table/index.js +80 -2
- package/lib/index.common.js +3 -3
- package/lib/index.js +3 -3
- package/lib/index.umd.js +98 -17
- package/lib/index.umd.min.js +1 -1
- package/lib/table/index.js +95 -14
- package/package.json +16 -15
- package/src/table/index.ts +80 -3
package/src/table/index.ts
CHANGED
|
@@ -234,9 +234,69 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
-
function
|
|
237
|
+
function handleFormatSelect (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, renderParams: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
|
|
238
|
+
const { cellValue } = renderParams
|
|
239
|
+
return handleSelectCellValue(cellValue, renderOpts, renderParams)
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function handleSetSelectValue (renderOpts: VxeGlobalRendererHandles.RenderTableDefaultOptions, renderParams: VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
|
|
243
|
+
const { row, column, cellValue } = renderParams
|
|
244
|
+
const { field } = column
|
|
245
|
+
if (field) {
|
|
246
|
+
const { options, optionGroups, optionProps = {}, optionGroupProps = {}, props } = renderOpts
|
|
247
|
+
if (isEmptyValue(cellValue)) {
|
|
248
|
+
XEUtils.set(row, field, props && props.multiple ? [] : null)
|
|
249
|
+
return
|
|
250
|
+
}
|
|
251
|
+
const isMultiVal = XEUtils.indexOf(`${cellValue}`, ',') > -1
|
|
252
|
+
const labelProp = optionProps.label || 'label'
|
|
253
|
+
const valueProp = optionProps.value || 'value'
|
|
254
|
+
const labelMpas: Record<string, any> = {}
|
|
255
|
+
if (optionGroups && optionGroups.length) {
|
|
256
|
+
const groupOptions = optionGroupProps.options || 'options'
|
|
257
|
+
for (let i = 0; i < optionGroups.length; i++) {
|
|
258
|
+
const opts = optionGroups[i][groupOptions] || {}
|
|
259
|
+
for (let j = 0; j < opts.length; j++) {
|
|
260
|
+
const item = opts[j]
|
|
261
|
+
if (isMultiVal) {
|
|
262
|
+
labelMpas[item[labelProp]] = item
|
|
263
|
+
/* eslint-disable eqeqeq */
|
|
264
|
+
} else if (item[labelProp] == cellValue) {
|
|
265
|
+
XEUtils.set(row, field, item[valueProp])
|
|
266
|
+
return
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
} else {
|
|
271
|
+
if (options) {
|
|
272
|
+
for (let i = 0; i < options.length; i++) {
|
|
273
|
+
const item = options[i]
|
|
274
|
+
if (isMultiVal) {
|
|
275
|
+
labelMpas[item[labelProp]] = item
|
|
276
|
+
/* eslint-disable eqeqeq */
|
|
277
|
+
} else if (item[labelProp] == cellValue) {
|
|
278
|
+
XEUtils.set(row, field, item[valueProp])
|
|
279
|
+
return
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (isMultiVal) {
|
|
285
|
+
XEUtils.set(row, field, (isMultiVal
|
|
286
|
+
? cellValue.split(',')
|
|
287
|
+
: [cellValue]).map((label: any) => {
|
|
288
|
+
const item = labelMpas[label]
|
|
289
|
+
return item ? item[valueProp] : label
|
|
290
|
+
}))
|
|
291
|
+
} else {
|
|
292
|
+
XEUtils.set(row, field, cellValue)
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
function handleSelectCellValue (cellValue: any, renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions, renderParams: VxeGlobalRendererHandles.RenderTableCellParams | VxeGlobalRendererHandles.TableCellFormatterParams | VxeGlobalRendererHandles.TableCellCopyMethodParams) {
|
|
238
298
|
const { options = [], optionGroups, props = {}, optionProps = {}, optionGroupProps = {} } = renderOpts
|
|
239
|
-
const { $table,
|
|
299
|
+
const { $table, row, column } = renderParams
|
|
240
300
|
const { filterable, multiple } = props
|
|
241
301
|
const labelProp = optionProps.label || 'label'
|
|
242
302
|
const valueProp = optionProps.value || 'value'
|
|
@@ -246,6 +306,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
246
306
|
if (filterable) {
|
|
247
307
|
const { internalData } = $table
|
|
248
308
|
const { fullAllDataRowIdData } = internalData
|
|
309
|
+
const rowid = (renderParams as any).rowid || $table.getRowid(row)
|
|
249
310
|
const rest: any = fullAllDataRowIdData[rowid]
|
|
250
311
|
if (rest) {
|
|
251
312
|
cellData = rest.cellData
|
|
@@ -475,11 +536,18 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
475
536
|
]
|
|
476
537
|
}
|
|
477
538
|
|
|
539
|
+
function handleDefaultCellValue (renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions, renderParams: VxeGlobalRendererHandles.RenderTableCellParams) {
|
|
540
|
+
const { row, column } = renderParams
|
|
541
|
+
const cellValue = XEUtils.get(row, column.field)
|
|
542
|
+
return formatText(cellValue)
|
|
543
|
+
}
|
|
544
|
+
|
|
478
545
|
VxeUI.renderer.mixin({
|
|
479
546
|
ElAutocomplete: {
|
|
480
547
|
tableAutoFocus: 'input',
|
|
481
548
|
renderTableDefault: createEditRender(),
|
|
482
549
|
renderTableEdit: createEditRender(),
|
|
550
|
+
renderTableCell: handleDefaultCellValue,
|
|
483
551
|
createTableFilterOptions: defaultFilterOptions,
|
|
484
552
|
renderTableFilter: createFilterRender(),
|
|
485
553
|
tableFilterDefaultMethod: defaultExactFilterMethod
|
|
@@ -488,6 +556,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
488
556
|
tableAutoFocus: 'input',
|
|
489
557
|
renderTableDefault: createEditRender(),
|
|
490
558
|
renderTableEdit: createEditRender(),
|
|
559
|
+
renderTableCell: handleDefaultCellValue,
|
|
491
560
|
createTableFilterOptions: defaultFilterOptions,
|
|
492
561
|
renderTableFilter: createFilterRender(),
|
|
493
562
|
renderTableFloatingFilter: createFloatingFilterRender(),
|
|
@@ -497,6 +566,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
497
566
|
tableAutoFocus: 'input',
|
|
498
567
|
renderTableDefault: createEditRender(),
|
|
499
568
|
renderTableEdit: createEditRender(),
|
|
569
|
+
renderTableCell: handleDefaultCellValue,
|
|
500
570
|
createTableFilterOptions: defaultFilterOptions,
|
|
501
571
|
renderTableFilter: createFilterRender(),
|
|
502
572
|
renderTableFloatingFilter: createFloatingFilterRender(),
|
|
@@ -623,6 +693,9 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
623
693
|
}))
|
|
624
694
|
]
|
|
625
695
|
},
|
|
696
|
+
tableCellFormatter: handleFormatSelect,
|
|
697
|
+
tableCellCopyMethod: handleFormatSelect,
|
|
698
|
+
tableCellPasteMethod: handleSetSelectValue,
|
|
626
699
|
tableFilterDefaultMethod (params) {
|
|
627
700
|
const { option, row, column } = params
|
|
628
701
|
const { data } = option
|
|
@@ -708,11 +781,13 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
708
781
|
},
|
|
709
782
|
ElTimeSelect: {
|
|
710
783
|
tableAutoFocus: 'input',
|
|
711
|
-
renderTableEdit: createEditRender()
|
|
784
|
+
renderTableEdit: createEditRender(),
|
|
785
|
+
renderTableCell: handleDefaultCellValue
|
|
712
786
|
},
|
|
713
787
|
ElRate: {
|
|
714
788
|
renderTableDefault: createEditRender(),
|
|
715
789
|
renderTableEdit: createEditRender(),
|
|
790
|
+
renderTableCell: handleDefaultCellValue,
|
|
716
791
|
createTableFilterOptions: defaultFilterOptions,
|
|
717
792
|
renderTableFilter: createFilterRender(),
|
|
718
793
|
tableFilterDefaultMethod: defaultExactFilterMethod
|
|
@@ -720,6 +795,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
720
795
|
ElSwitch: {
|
|
721
796
|
renderTableDefault: createEditRender(),
|
|
722
797
|
renderTableEdit: createEditRender(),
|
|
798
|
+
renderTableCell: handleDefaultCellValue,
|
|
723
799
|
renderTableFilter (renderOpts, params) {
|
|
724
800
|
const { column } = params
|
|
725
801
|
const { name, attrs } = renderOpts
|
|
@@ -745,6 +821,7 @@ export function defineTableRender (VxeUI: VxeUIExport) {
|
|
|
745
821
|
ElSlider: {
|
|
746
822
|
renderTableDefault: createEditRender(),
|
|
747
823
|
renderTableEdit: createEditRender(),
|
|
824
|
+
renderTableCell: handleDefaultCellValue,
|
|
748
825
|
createTableFilterOptions: defaultFilterOptions,
|
|
749
826
|
renderTableFilter: createFilterRender(),
|
|
750
827
|
tableFilterDefaultMethod: defaultExactFilterMethod
|