vxe-table 4.1.0 → 4.1.3

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.
Files changed (72) hide show
  1. package/README.md +1 -0
  2. package/README.zh-TW.md +1 -0
  3. package/es/edit/src/hook.js +2 -2
  4. package/es/export/src/hook.js +24 -0
  5. package/es/export/src/util.js +20 -8
  6. package/es/footer/src/footer.js +4 -4
  7. package/es/form/src/form.js +13 -6
  8. package/es/form/src/render.js +4 -4
  9. package/es/grid/src/grid.js +48 -1
  10. package/es/header/src/header.js +7 -5
  11. package/es/select/src/select.js +5 -5
  12. package/es/table/src/body.js +18 -14
  13. package/es/table/src/cell.js +70 -54
  14. package/es/table/src/props.js +4 -1
  15. package/es/table/src/table.js +208 -97
  16. package/es/v-x-e-table/src/conf.js +2 -3
  17. package/es/validator/src/hook.js +12 -5
  18. package/helper/vetur/attributes.json +16 -8
  19. package/helper/vetur/tags.json +2 -0
  20. package/lib/edit/src/hook.js +2 -2
  21. package/lib/edit/src/hook.min.js +1 -1
  22. package/lib/export/src/hook.js +28 -0
  23. package/lib/export/src/hook.min.js +1 -1
  24. package/lib/export/src/util.js +21 -7
  25. package/lib/export/src/util.min.js +1 -1
  26. package/lib/footer/src/footer.js +4 -4
  27. package/lib/footer/src/footer.min.js +1 -1
  28. package/lib/form/src/form.js +23 -6
  29. package/lib/form/src/form.min.js +1 -1
  30. package/lib/form/src/render.js +4 -4
  31. package/lib/form/src/render.min.js +1 -1
  32. package/lib/grid/src/grid.js +56 -1
  33. package/lib/grid/src/grid.min.js +1 -1
  34. package/lib/header/src/header.js +7 -5
  35. package/lib/header/src/header.min.js +1 -1
  36. package/lib/index.umd.js +536 -220
  37. package/lib/index.umd.min.js +1 -1
  38. package/lib/select/src/select.js +5 -5
  39. package/lib/table/src/body.js +18 -14
  40. package/lib/table/src/body.min.js +1 -1
  41. package/lib/table/src/cell.js +92 -35
  42. package/lib/table/src/cell.min.js +1 -1
  43. package/lib/table/src/props.js +4 -1
  44. package/lib/table/src/props.min.js +1 -1
  45. package/lib/table/src/table.js +265 -133
  46. package/lib/table/src/table.min.js +1 -1
  47. package/lib/v-x-e-table/src/conf.js +2 -3
  48. package/lib/v-x-e-table/src/conf.min.js +1 -1
  49. package/lib/validator/src/hook.js +12 -5
  50. package/lib/validator/src/hook.min.js +1 -1
  51. package/package.json +2 -2
  52. package/packages/edit/src/hook.ts +2 -2
  53. package/packages/export/src/hook.ts +24 -0
  54. package/packages/export/src/util.ts +17 -5
  55. package/packages/footer/src/footer.ts +4 -4
  56. package/packages/form/src/form.ts +10 -6
  57. package/packages/form/src/render.ts +4 -4
  58. package/packages/grid/src/grid.ts +48 -1
  59. package/packages/header/src/header.ts +7 -5
  60. package/packages/select/src/select.ts +5 -5
  61. package/packages/table/src/body.ts +18 -14
  62. package/packages/table/src/cell.ts +77 -44
  63. package/packages/table/src/props.ts +4 -1
  64. package/packages/table/src/table.ts +211 -96
  65. package/packages/v-x-e-table/src/conf.ts +2 -3
  66. package/packages/validator/src/hook.ts +9 -5
  67. package/types/column.d.ts +5 -1
  68. package/types/form-item.d.ts +5 -1
  69. package/types/form.d.ts +5 -1
  70. package/types/modal.d.ts +4 -5
  71. package/types/table.d.ts +49 -14
  72. package/types/validator.d.ts +5 -1
@@ -309,17 +309,18 @@ export var Cell = {
309
309
  var selectRow = reactData.selectRow;
310
310
  var radioOpts = computeRadioOpts.value;
311
311
  var slots = column.slots;
312
- var labelField = radioOpts.labelField, checkMethod = radioOpts.checkMethod;
312
+ var labelField = radioOpts.labelField, checkMethod = radioOpts.checkMethod, visibleMethod = radioOpts.visibleMethod;
313
313
  var row = params.row;
314
314
  var defaultSlot = slots ? slots.default : null;
315
315
  var radioSlot = slots ? slots.radio : null;
316
316
  var isChecked = row === selectRow;
317
+ var isVisible = !visibleMethod || visibleMethod({ row: row });
317
318
  var isDisabled = !!checkMethod;
318
319
  var ons;
319
320
  if (!isHidden) {
320
321
  ons = {
321
322
  onClick: function (evnt) {
322
- if (!isDisabled) {
323
+ if (!isDisabled && isVisible) {
323
324
  $table.triggerRadioRowEvent(evnt, params);
324
325
  }
325
326
  }
@@ -328,23 +329,28 @@ export var Cell = {
328
329
  isDisabled = !checkMethod({ row: row });
329
330
  }
330
331
  }
331
- var radioParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled });
332
- return radioSlot ? $table.callSlot(radioSlot, radioParams) : [
332
+ var radioParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible });
333
+ if (radioSlot) {
334
+ return $table.callSlot(radioSlot, radioParams);
335
+ }
336
+ var radioVNs = [];
337
+ if (isVisible) {
338
+ radioVNs.push(h('span', {
339
+ class: 'vxe-radio--icon vxe-radio--checked-icon'
340
+ }), h('span', {
341
+ class: 'vxe-radio--icon vxe-radio--unchecked-icon'
342
+ }));
343
+ }
344
+ if (defaultSlot || labelField) {
345
+ radioVNs.push(h('span', {
346
+ class: 'vxe-radio--label'
347
+ }, defaultSlot ? $table.callSlot(defaultSlot, radioParams) : XEUtils.get(row, labelField)));
348
+ }
349
+ return [
333
350
  h('span', __assign({ class: ['vxe-cell--radio', {
334
351
  'is--checked': isChecked,
335
352
  'is--disabled': isDisabled
336
- }] }, ons), [
337
- h('span', {
338
- class: 'vxe-radio--icon vxe-radio--checked-icon'
339
- }),
340
- h('span', {
341
- class: 'vxe-radio--icon vxe-radio--unchecked-icon'
342
- })
343
- ].concat(defaultSlot || labelField ? [
344
- h('span', {
345
- class: 'vxe-radio--label'
346
- }, defaultSlot ? $table.callSlot(defaultSlot, radioParams) : XEUtils.get(row, labelField))
347
- ] : []))
353
+ }] }, ons), radioVNs)
348
354
  ];
349
355
  },
350
356
  renderTreeRadioCell: function (params) {
@@ -416,19 +422,20 @@ export var Cell = {
416
422
  var selection = reactData.selection, treeIndeterminates = reactData.treeIndeterminates;
417
423
  var computeCheckboxOpts = $table.getComputeMaps().computeCheckboxOpts;
418
424
  var checkboxOpts = computeCheckboxOpts.value;
419
- var labelField = checkboxOpts.labelField, checkMethod = checkboxOpts.checkMethod;
425
+ var labelField = checkboxOpts.labelField, checkMethod = checkboxOpts.checkMethod, visibleMethod = checkboxOpts.visibleMethod;
420
426
  var slots = column.slots;
421
427
  var defaultSlot = slots ? slots.default : null;
422
428
  var checkboxSlot = slots ? slots.checkbox : null;
423
429
  var indeterminate = false;
424
430
  var isChecked = false;
431
+ var isVisible = !visibleMethod || visibleMethod({ row: row });
425
432
  var isDisabled = !!checkMethod;
426
433
  var ons;
427
434
  if (!isHidden) {
428
435
  isChecked = $table.findRowIndexOf(selection, row) > -1;
429
436
  ons = {
430
437
  onClick: function (evnt) {
431
- if (!isDisabled) {
438
+ if (!isDisabled && isVisible) {
432
439
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
433
440
  }
434
441
  }
@@ -440,27 +447,31 @@ export var Cell = {
440
447
  indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
441
448
  }
442
449
  }
443
- var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, indeterminate: indeterminate });
444
- return checkboxSlot ? $table.callSlot(checkboxSlot, checkboxParams) : [
450
+ var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate: indeterminate });
451
+ if (checkboxSlot) {
452
+ return $table.callSlot(checkboxSlot, checkboxParams);
453
+ }
454
+ var checkVNs = [];
455
+ if (isVisible) {
456
+ checkVNs.push(h('span', {
457
+ class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
458
+ }), h('span', {
459
+ class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
460
+ }), h('span', {
461
+ class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
462
+ }));
463
+ }
464
+ if (defaultSlot || labelField) {
465
+ checkVNs.push(h('span', {
466
+ class: 'vxe-checkbox--label'
467
+ }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField)));
468
+ }
469
+ return [
445
470
  h('span', __assign({ class: ['vxe-cell--checkbox', {
446
471
  'is--checked': isChecked,
447
472
  'is--disabled': isDisabled,
448
473
  'is--indeterminate': indeterminate
449
- }] }, ons), [
450
- h('span', {
451
- class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
452
- }),
453
- h('span', {
454
- class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
455
- }),
456
- h('span', {
457
- class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
458
- })
459
- ].concat(defaultSlot || labelField ? [
460
- h('span', {
461
- class: 'vxe-checkbox--label'
462
- }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField))
463
- ] : []))
474
+ }] }, ons), checkVNs)
464
475
  ];
465
476
  },
466
477
  renderTreeSelectionCell: function (params) {
@@ -473,19 +484,20 @@ export var Cell = {
473
484
  var treeIndeterminates = reactData.treeIndeterminates;
474
485
  var computeCheckboxOpts = $table.getComputeMaps().computeCheckboxOpts;
475
486
  var checkboxOpts = computeCheckboxOpts.value;
476
- var labelField = checkboxOpts.labelField, property = checkboxOpts.checkField, halfField = checkboxOpts.halfField, checkMethod = checkboxOpts.checkMethod;
487
+ var labelField = checkboxOpts.labelField, property = checkboxOpts.checkField, halfField = checkboxOpts.halfField, checkMethod = checkboxOpts.checkMethod, visibleMethod = checkboxOpts.visibleMethod;
477
488
  var slots = column.slots;
478
489
  var defaultSlot = slots ? slots.default : null;
479
490
  var checkboxSlot = slots ? slots.checkbox : null;
480
491
  var indeterminate = false;
481
492
  var isChecked = false;
493
+ var isVisible = !visibleMethod || visibleMethod({ row: row });
482
494
  var isDisabled = !!checkMethod;
483
495
  var ons;
484
496
  if (!isHidden) {
485
497
  isChecked = XEUtils.get(row, property);
486
498
  ons = {
487
499
  onClick: function (evnt) {
488
- if (!isDisabled) {
500
+ if (!isDisabled && isVisible) {
489
501
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
490
502
  }
491
503
  }
@@ -497,27 +509,31 @@ export var Cell = {
497
509
  indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
498
510
  }
499
511
  }
500
- var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, indeterminate: indeterminate });
501
- return checkboxSlot ? $table.callSlot(checkboxSlot, checkboxParams) : [
512
+ var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate: indeterminate });
513
+ if (checkboxSlot) {
514
+ return $table.callSlot(checkboxSlot, checkboxParams);
515
+ }
516
+ var checkVNs = [];
517
+ if (isVisible) {
518
+ checkVNs.push(h('span', {
519
+ class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
520
+ }), h('span', {
521
+ class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
522
+ }), h('span', {
523
+ class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
524
+ }));
525
+ if (defaultSlot || labelField) {
526
+ checkVNs.push(h('span', {
527
+ class: 'vxe-checkbox--label'
528
+ }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField)));
529
+ }
530
+ }
531
+ return [
502
532
  h('span', __assign({ class: ['vxe-cell--checkbox', {
503
533
  'is--checked': isChecked,
504
534
  'is--disabled': isDisabled,
505
535
  'is--indeterminate': halfField && !isChecked ? row[halfField] : indeterminate
506
- }] }, ons), [
507
- h('span', {
508
- class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
509
- }),
510
- h('span', {
511
- class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
512
- }),
513
- h('span', {
514
- class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
515
- })
516
- ].concat(defaultSlot || labelField ? [
517
- h('span', {
518
- class: 'vxe-checkbox--label'
519
- }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField))
520
- ] : []))
536
+ }] }, ons), checkVNs)
521
537
  ];
522
538
  },
523
539
  renderTreeSelectionCellByProp: function (params) {
@@ -94,8 +94,11 @@ export default {
94
94
  autoResize: { type: Boolean, default: function () { return GlobalConfig.table.autoResize; } },
95
95
  // 是否自动根据状态属性去更新响应式表格宽高
96
96
  syncResize: [Boolean, String, Number],
97
- // 设置列的默认参数,仅对部分支持的属性有效
97
+ // 列配置信息
98
98
  columnConfig: Object,
99
+ // 行配置信息
100
+ rowConfig: Object,
101
+ // 列调整配置项
99
102
  resizableConfig: Object,
100
103
  // 序号配置项
101
104
  seqConfig: Object,