vxe-table 3.5.9-beta.5 → 3.5.9-beta.8

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 (90) hide show
  1. package/README.md +1 -1
  2. package/lib/edit/src/mixin.js +3 -3
  3. package/lib/edit/src/mixin.min.js +1 -1
  4. package/lib/export/src/mixin.js +1 -1
  5. package/lib/export/src/mixin.min.js +1 -1
  6. package/lib/filter/src/mixin.js +8 -5
  7. package/lib/filter/src/mixin.min.js +1 -1
  8. package/lib/filter/src/panel.js +6 -2
  9. package/lib/filter/src/panel.min.js +1 -1
  10. package/lib/form/src/form-config-item.js +2 -1
  11. package/lib/form/src/form-config-item.min.js +1 -1
  12. package/lib/form/src/form-item.js +3 -1
  13. package/lib/form/src/form-item.min.js +1 -1
  14. package/lib/form/src/render.js +1 -0
  15. package/lib/form/src/render.min.js +1 -1
  16. package/lib/grid/src/grid.js +2 -1
  17. package/lib/grid/src/grid.min.js +1 -1
  18. package/lib/index.css +1 -1
  19. package/lib/index.umd.js +356 -133
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/input/src/input.js +20 -15
  22. package/lib/input/src/input.min.js +1 -1
  23. package/lib/locale/lang/en-US.js +2 -0
  24. package/lib/locale/lang/en-US.min.js +1 -1
  25. package/lib/locale/lang/en-US.umd.js +2 -0
  26. package/lib/locale/lang/ja-JP.js +2 -0
  27. package/lib/locale/lang/ja-JP.min.js +1 -1
  28. package/lib/locale/lang/ja-JP.umd.js +2 -0
  29. package/lib/locale/lang/zh-CN.js +2 -0
  30. package/lib/locale/lang/zh-CN.min.js +1 -1
  31. package/lib/locale/lang/zh-CN.umd.js +2 -0
  32. package/lib/locale/lang/zh-HK.min.js +1 -1
  33. package/lib/locale/lang/zh-HK.umd.js +2 -0
  34. package/lib/locale/lang/zh-MO.min.js +1 -1
  35. package/lib/locale/lang/zh-MO.umd.js +2 -0
  36. package/lib/locale/lang/zh-TC.js +2 -0
  37. package/lib/locale/lang/zh-TC.min.js +1 -1
  38. package/lib/locale/lang/zh-TC.umd.js +2 -0
  39. package/lib/locale/lang/zh-TW.min.js +1 -1
  40. package/lib/locale/lang/zh-TW.umd.js +2 -0
  41. package/lib/select/src/select.js +213 -33
  42. package/lib/select/src/select.min.js +1 -1
  43. package/lib/select/style/style.css +17 -3
  44. package/lib/select/style/style.min.css +1 -1
  45. package/lib/style.css +1 -1
  46. package/lib/style.min.css +1 -1
  47. package/lib/table/src/body.js +6 -3
  48. package/lib/table/src/body.min.js +1 -1
  49. package/lib/table/src/cell.js +3 -3
  50. package/lib/table/src/cell.min.js +1 -1
  51. package/lib/table/src/columnInfo.js +1 -1
  52. package/lib/table/src/columnInfo.min.js +1 -1
  53. package/lib/table/src/methods.js +79 -60
  54. package/lib/table/src/methods.min.js +1 -1
  55. package/lib/toolbar/style/style.css +1 -1
  56. package/lib/toolbar/style/style.min.css +1 -1
  57. package/lib/tools/log.js +1 -1
  58. package/lib/tools/log.min.js +1 -1
  59. package/lib/tools/utils.js +2 -2
  60. package/lib/tools/utils.min.js +1 -1
  61. package/lib/v-x-e-table/index.js +1 -1
  62. package/lib/v-x-e-table/index.min.js +1 -1
  63. package/lib/v-x-e-table/src/conf.js +2 -2
  64. package/lib/v-x-e-table/src/conf.min.js +1 -1
  65. package/package.json +1 -1
  66. package/packages/edit/src/mixin.js +4 -4
  67. package/packages/export/src/mixin.js +2 -2
  68. package/packages/filter/src/mixin.js +5 -5
  69. package/packages/filter/src/panel.js +13 -6
  70. package/packages/form/src/form-config-item.js +17 -9
  71. package/packages/form/src/form-item.js +16 -8
  72. package/packages/form/src/render.js +1 -1
  73. package/packages/grid/src/grid.js +1 -2
  74. package/packages/input/src/input.js +17 -13
  75. package/packages/locale/lang/en-US.js +2 -0
  76. package/packages/locale/lang/ja-JP.js +2 -0
  77. package/packages/locale/lang/zh-CN.js +2 -0
  78. package/packages/locale/lang/zh-TC.js +2 -0
  79. package/packages/select/src/select.js +139 -16
  80. package/packages/table/src/body.js +39 -24
  81. package/packages/table/src/cell.js +3 -3
  82. package/packages/table/src/columnInfo.js +1 -1
  83. package/packages/table/src/methods.js +64 -55
  84. package/packages/tools/utils.js +2 -2
  85. package/packages/v-x-e-table/src/conf.js +2 -2
  86. package/styles/select.scss +24 -5
  87. package/styles/toolbar.scss +1 -1
  88. package/types/form-item.d.ts +11 -8
  89. package/types/form.d.ts +5 -2
  90. package/types/v-x-e-table/renderer.d.ts +13 -1
@@ -138,12 +138,12 @@ function calculateMergerOffserIndex (list, offsetItem, type) {
138
138
  function setMerges (_vm, merges, mList, rowList) {
139
139
  if (merges) {
140
140
  const { treeConfig, visibleColumn } = _vm
141
- if (treeConfig) {
142
- throw new Error(UtilTools.getLog('vxe.error.noTree', ['merge-footer-items']))
143
- }
144
141
  if (!XEUtils.isArray(merges)) {
145
142
  merges = [merges]
146
143
  }
144
+ if (treeConfig && merges.length) {
145
+ errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
146
+ }
147
147
  merges.forEach(item => {
148
148
  let { row, col, rowspan, colspan } = item
149
149
  if (rowList && XEUtils.isNumber(row)) {
@@ -187,12 +187,12 @@ function removeMerges (_vm, merges, mList, rowList) {
187
187
  const rest = []
188
188
  if (merges) {
189
189
  const { treeConfig, visibleColumn } = _vm
190
- if (treeConfig) {
191
- throw new Error(UtilTools.getLog('vxe.error.noTree', ['merge-cells']))
192
- }
193
190
  if (!XEUtils.isArray(merges)) {
194
191
  merges = [merges]
195
192
  }
193
+ if (treeConfig && merges.length) {
194
+ errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
195
+ }
196
196
  merges.forEach(item => {
197
197
  let { row, col } = item
198
198
  if (rowList && XEUtils.isNumber(row)) {
@@ -351,7 +351,7 @@ const Methods = {
351
351
  * @param {Array} datas 数据
352
352
  */
353
353
  loadTableData (datas) {
354
- const { keepSource, treeConfig, treeOpts, editStore, scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop, scrollYLoad: oldScrollYLoad } = this
354
+ const { keepSource, treeConfig, treeOpts, editStore, scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop, scrollYLoad: oldScrollYLoad, sXOpts, sYOpts } = this
355
355
  let treeData = []
356
356
  let fullData = datas ? datas.slice(0) : []
357
357
  if (treeConfig) {
@@ -446,11 +446,20 @@ const Methods = {
446
446
  this.$nextTick()
447
447
  .then(() => this.recalculate())
448
448
  .then(() => {
449
+ let targetScrollLeft = lastScrollLeft
450
+ let targetScrollTop = lastScrollTop
451
+ // 是否在更新数据之后自动滚动重置滚动条
452
+ if (sXOpts.scrollToLeftOnChange) {
453
+ targetScrollLeft = 0
454
+ }
455
+ if (sYOpts.scrollToTopOnChange) {
456
+ targetScrollTop = 0
457
+ }
449
458
  // 是否变更虚拟滚动
450
459
  if (oldScrollYLoad === sYLoad) {
451
- restoreScrollLocation(this, lastScrollLeft, lastScrollTop).then(resolve)
460
+ restoreScrollLocation(this, targetScrollLeft, targetScrollTop).then(resolve)
452
461
  } else {
453
- setTimeout(() => restoreScrollLocation(this, lastScrollLeft, lastScrollTop).then(resolve))
462
+ setTimeout(() => restoreScrollLocation(this, targetScrollLeft, targetScrollTop).then(resolve))
454
463
  }
455
464
  })
456
465
  })
@@ -654,15 +663,15 @@ const Methods = {
654
663
  let radioColumn
655
664
  let hasFixed
656
665
  const handleFunc = (column, index, items, path, parent) => {
657
- const { id: colid, property, fixed, type, treeNode } = column
666
+ const { id: colid, field, fixed, type, treeNode } = column
658
667
  const rest = { column, colid, index, items, parent }
659
- if (property) {
668
+ if (field) {
660
669
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
661
- if (fullColumnFieldData[property]) {
662
- warnLog('vxe.error.colRepet', ['field', property])
670
+ if (fullColumnFieldData[field]) {
671
+ warnLog('vxe.error.colRepet', ['field', field])
663
672
  }
664
673
  }
665
- fullColumnFieldData[property] = rest
674
+ fullColumnFieldData[field] = rest
666
675
  }
667
676
  if (!hasFixed && fixed) {
668
677
  hasFixed = fixed
@@ -874,8 +883,8 @@ const Methods = {
874
883
  const { radioOpts, checkboxOpts, treeConfig, treeOpts, expandOpts } = this
875
884
  const rowkey = getRowkey(this)
876
885
  this.tableFullColumn.forEach(column => {
877
- const { property, editRender } = column
878
- if (property && !XEUtils.has(record, property)) {
886
+ const { field, editRender } = column
887
+ if (field && !XEUtils.has(record, field)) {
879
888
  let cellValue = null
880
889
  if (editRender) {
881
890
  const { defaultValue } = editRender
@@ -885,7 +894,7 @@ const Methods = {
885
894
  cellValue = defaultValue
886
895
  }
887
896
  }
888
- XEUtils.set(record, property, cellValue)
897
+ XEUtils.set(record, field, cellValue)
889
898
  }
890
899
  })
891
900
  const otherFields = [radioOpts.labelField, checkboxOpts.checkField, checkboxOpts.labelField, expandOpts.labelField]
@@ -954,7 +963,7 @@ const Methods = {
954
963
  if (!this.isInsertByRow(row)) {
955
964
  const rowIndex = this.getRowIndex(row)
956
965
  if (treeConfig && rowIndex === -1) {
957
- throw new Error(UtilTools.getLog('vxe.error.noTree', ['revertData']))
966
+ errLog('vxe.error.noTree', ['revertData'])
958
967
  }
959
968
  const oRow = tableSourceData[rowIndex]
960
969
  if (oRow && row) {
@@ -993,7 +1002,7 @@ const Methods = {
993
1002
  } else {
994
1003
  rows.forEach(row => {
995
1004
  visibleColumn.forEach(column => {
996
- if (column.property) {
1005
+ if (column.field) {
997
1006
  setCellValue(row, column, null)
998
1007
  }
999
1008
  })
@@ -1045,7 +1054,7 @@ const Methods = {
1045
1054
  return !eqCellValue(oRow, row, field)
1046
1055
  }
1047
1056
  for (let index = 0, len = visibleColumn.length; index < len; index++) {
1048
- property = visibleColumn[index].property
1057
+ property = visibleColumn[index].field
1049
1058
  if (property && !eqCellValue(oRow, row, property)) {
1050
1059
  return true
1051
1060
  }
@@ -1103,14 +1112,14 @@ const Methods = {
1103
1112
  getCheckboxRecords (isFull) {
1104
1113
  const { tableFullData, afterFullData, treeConfig, treeOpts, checkboxOpts, tableFullTreeData, afterTreeFullData } = this
1105
1114
  const { transform, children, mapChildren } = treeOpts
1106
- const { checkField: property } = checkboxOpts
1115
+ const { checkField } = checkboxOpts
1107
1116
  const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData)
1108
1117
  let rowList = []
1109
- if (property) {
1118
+ if (checkField) {
1110
1119
  if (treeConfig) {
1111
- rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, property), { children: transform ? mapChildren : children })
1120
+ rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, checkField), { children: transform ? mapChildren : children })
1112
1121
  } else {
1113
- rowList = currTableData.filter(row => XEUtils.get(row, property))
1122
+ rowList = currTableData.filter(row => XEUtils.get(row, checkField))
1114
1123
  }
1115
1124
  } else {
1116
1125
  const { selection } = this
@@ -1157,7 +1166,7 @@ const Methods = {
1157
1166
  const filterColumns = []
1158
1167
  let orderColumns = []
1159
1168
  tableFullColumn.forEach(column => {
1160
- const { property, sortable, order, filters } = column
1169
+ const { field, sortable, order, filters } = column
1161
1170
  if (!allRemoteFilter && filters && filters.length) {
1162
1171
  const valueList = []
1163
1172
  const itemList = []
@@ -1172,7 +1181,7 @@ const Methods = {
1172
1181
  }
1173
1182
  }
1174
1183
  if (!allRemoteSort && sortable && order) {
1175
- orderColumns.push({ column, field: column.property, property, order, sortTime: column.sortTime })
1184
+ orderColumns.push({ column, field, property: field, order, sortTime: column.sortTime })
1176
1185
  }
1177
1186
  })
1178
1187
  if (sortMultiple && chronological && orderColumns.length > 1) {
@@ -1182,7 +1191,7 @@ const Methods = {
1182
1191
  const handleFilter = (row) => {
1183
1192
  return filterColumns.every(({ column, valueList, itemList }) => {
1184
1193
  if (valueList.length && !allRemoteFilter) {
1185
- const { filterMethod, filterRender } = column
1194
+ const { filterMethod, filterRender, field } = column
1186
1195
  const compConf = filterRender ? VXETable.renderer.get(filterRender.name) : null
1187
1196
  const compFilterMethod = compConf && compConf.renderFilter ? compConf.filterMethod : null
1188
1197
  const defaultFilterMethod = compConf ? compConf.defaultFilterMethod : null
@@ -1196,7 +1205,7 @@ const Methods = {
1196
1205
  } else if (defaultFilterMethod) {
1197
1206
  return itemList.some((item) => defaultFilterMethod({ value: item.value, option: item, cellValue, row, column, $table: this }))
1198
1207
  }
1199
- return valueList.indexOf(XEUtils.get(row, column.property)) > -1
1208
+ return valueList.indexOf(XEUtils.get(row, field)) > -1
1200
1209
  }
1201
1210
  return true
1202
1211
  })
@@ -1232,7 +1241,7 @@ const Methods = {
1232
1241
  tableData = tableTree
1233
1242
  } else {
1234
1243
  if (allSortMethod) {
1235
- const sortRests = allSortMethod({ data: tableData, column: firstOrderColumn.column, property: firstOrderColumn.property, order: firstOrderColumn.order, sortList: orderColumns, $table: this })
1244
+ const sortRests = allSortMethod({ data: tableData, column: firstOrderColumn.column, property: firstOrderColumn.field, field: firstOrderColumn.field, order: firstOrderColumn.order, sortList: orderColumns, $table: this })
1236
1245
  tableData = XEUtils.isArray(sortRests) ? sortRests : tableData
1237
1246
  } else {
1238
1247
  // 兼容 v4
@@ -2752,9 +2761,9 @@ const Methods = {
2752
2761
  return this.$nextTick()
2753
2762
  },
2754
2763
  isCheckedByCheckboxRow (row) {
2755
- const { checkField: property } = this.checkboxOpts
2756
- if (property) {
2757
- return XEUtils.get(row, property)
2764
+ const { checkField } = this.checkboxOpts
2765
+ if (checkField) {
2766
+ return XEUtils.get(row, checkField)
2758
2767
  }
2759
2768
  return this.selection.indexOf(row) > -1
2760
2769
  },
@@ -2767,19 +2776,19 @@ const Methods = {
2767
2776
  */
2768
2777
  handleSelectRow ({ row }, value) {
2769
2778
  const { selection, afterFullData, treeConfig, treeOpts, treeIndeterminates, checkboxOpts } = this
2770
- const { checkField: property, checkStrictly, checkMethod } = checkboxOpts
2771
- if (property) {
2779
+ const { checkField, checkStrictly, checkMethod } = checkboxOpts
2780
+ if (checkField) {
2772
2781
  if (treeConfig && !checkStrictly) {
2773
2782
  if (value === -1) {
2774
2783
  if (treeIndeterminates.indexOf(row) === -1) {
2775
2784
  treeIndeterminates.push(row)
2776
2785
  }
2777
- XEUtils.set(row, property, false)
2786
+ XEUtils.set(row, checkField, false)
2778
2787
  } else {
2779
2788
  // 更新子节点状态
2780
2789
  XEUtils.eachTree([row], (item) => {
2781
2790
  if (row === item || (!checkMethod || checkMethod({ row: item }))) {
2782
- XEUtils.set(item, property, value)
2791
+ XEUtils.set(item, checkField, value)
2783
2792
  XEUtils.remove(treeIndeterminates, half => half === item)
2784
2793
  this.handleCheckboxReserveRow(row, value)
2785
2794
  }
@@ -2794,14 +2803,14 @@ const Methods = {
2794
2803
  if (indeterminatesItem) {
2795
2804
  parentStatus = -1
2796
2805
  } else {
2797
- const selectItems = matchObj.items.filter(item => XEUtils.get(item, property))
2806
+ const selectItems = matchObj.items.filter(item => XEUtils.get(item, checkField))
2798
2807
  parentStatus = selectItems.filter(item => vItems.indexOf(item) > -1).length === vItems.length ? true : (selectItems.length || value === -1 ? -1 : false)
2799
2808
  }
2800
2809
  return this.handleSelectRow({ row: matchObj.parent }, parentStatus)
2801
2810
  }
2802
2811
  } else {
2803
2812
  if (!checkMethod || checkMethod({ row })) {
2804
- XEUtils.set(row, property, value)
2813
+ XEUtils.set(row, checkField, value)
2805
2814
  this.handleCheckboxReserveRow(row, value)
2806
2815
  }
2807
2816
  }
@@ -2857,9 +2866,9 @@ const Methods = {
2857
2866
  },
2858
2867
  handleToggleCheckRowEvent (evnt, params) {
2859
2868
  const { selection, checkboxOpts } = this
2860
- const { checkField: property } = checkboxOpts
2869
+ const { checkField } = checkboxOpts
2861
2870
  const { row } = params
2862
- const value = property ? !XEUtils.get(row, property) : selection.indexOf(row) === -1
2871
+ const value = checkField ? !XEUtils.get(row, checkField) : selection.indexOf(row) === -1
2863
2872
  if (evnt) {
2864
2873
  this.triggerCheckRowEvent(evnt, params, value)
2865
2874
  } else {
@@ -2886,7 +2895,7 @@ const Methods = {
2886
2895
  */
2887
2896
  setAllCheckboxRow (value) {
2888
2897
  const { afterFullData, treeConfig, treeOpts, selection, checkboxReserveRowMap, checkboxOpts } = this
2889
- const { checkField: property, reserve, checkStrictly, checkMethod } = checkboxOpts
2898
+ const { checkField, reserve, checkStrictly, checkMethod } = checkboxOpts
2890
2899
  let selectRows = []
2891
2900
  const beforeSelection = treeConfig ? [] : selection.filter(row => afterFullData.indexOf(row) === -1)
2892
2901
  if (checkStrictly) {
@@ -2896,13 +2905,13 @@ const Methods = {
2896
2905
  * 绑定属性方式(高性能,有污染)
2897
2906
  * 必须在行数据存在对应的属性,否则将不响应
2898
2907
  */
2899
- if (property) {
2908
+ if (checkField) {
2900
2909
  const checkValFn = (row) => {
2901
2910
  if (!checkMethod || checkMethod({ row })) {
2902
2911
  if (value) {
2903
2912
  selectRows.push(row)
2904
2913
  }
2905
- XEUtils.set(row, property, value)
2914
+ XEUtils.set(row, checkField, value)
2906
2915
  }
2907
2916
  }
2908
2917
  // 如果存在选中方法
@@ -2974,7 +2983,7 @@ const Methods = {
2974
2983
  afterFullData.forEach(row => this.handleCheckboxReserveRow(row, false))
2975
2984
  }
2976
2985
  }
2977
- this.selection = property ? [] : beforeSelection.concat(selectRows)
2986
+ this.selection = checkField ? [] : beforeSelection.concat(selectRows)
2978
2987
  }
2979
2988
  this.treeIndeterminates = []
2980
2989
  this.checkSelectionStatus()
@@ -3185,12 +3194,12 @@ const Methods = {
3185
3194
  */
3186
3195
  clearCheckboxRow () {
3187
3196
  const { tableFullData, treeConfig, treeOpts, checkboxOpts } = this
3188
- const { checkField: property, reserve } = checkboxOpts
3189
- if (property) {
3197
+ const { checkField, reserve } = checkboxOpts
3198
+ if (checkField) {
3190
3199
  if (treeConfig) {
3191
- XEUtils.eachTree(tableFullData, item => XEUtils.set(item, property, false), treeOpts)
3200
+ XEUtils.eachTree(tableFullData, item => XEUtils.set(item, checkField, false), treeOpts)
3192
3201
  } else {
3193
- tableFullData.forEach(item => XEUtils.set(item, property, false))
3202
+ tableFullData.forEach(item => XEUtils.set(item, checkField, false))
3194
3203
  }
3195
3204
  }
3196
3205
  if (reserve) {
@@ -3538,14 +3547,14 @@ const Methods = {
3538
3547
  */
3539
3548
  triggerSortEvent (evnt, column, order) {
3540
3549
  const { sortOpts } = this
3541
- const property = column.property
3542
- if (column.sortable || column.remoteSort) {
3550
+ const { field, sortable, remoteSort } = column
3551
+ if (sortable || remoteSort) {
3543
3552
  if (!order || column.order === order) {
3544
3553
  this.clearSort(sortOpts.multiple ? column : null)
3545
3554
  } else {
3546
- this.sort({ field: property, order })
3555
+ this.sort({ field, order })
3547
3556
  }
3548
- const params = { column, property, order: column.order, sortList: this.getSortColumns() }
3557
+ const params = { column, field, property: field, order: column.order, sortList: this.getSortColumns() }
3549
3558
  this.emitEvent('sort-change', params, evnt)
3550
3559
  }
3551
3560
  },
@@ -3632,9 +3641,9 @@ const Methods = {
3632
3641
  const { multiple, chronological } = this.sortOpts
3633
3642
  const sortList = []
3634
3643
  this.tableFullColumn.forEach((column) => {
3635
- const { property, order } = column
3644
+ const { field, order } = column
3636
3645
  if ((column.sortable || column.remoteSort) && order) {
3637
- sortList.push({ column, field: column.property, property, order, sortTime: column.sortTime })
3646
+ sortList.push({ column, field, property: field, order, sortTime: column.sortTime })
3638
3647
  }
3639
3648
  })
3640
3649
  if (multiple && chronological && sortList.length > 1) {
@@ -3656,7 +3665,7 @@ const Methods = {
3656
3665
  visible: false
3657
3666
  })
3658
3667
  if (visible) {
3659
- this.emitEvent('filter-visible', { column, property: column.property, filterList: this.getCheckedFilters(), visible: false }, null)
3668
+ this.emitEvent('filter-visible', { column, field: column.field, property: column.field, filterList: this.getCheckedFilters(), visible: false }, null)
3660
3669
  }
3661
3670
  return this.$nextTick()
3662
3671
  },
@@ -45,10 +45,10 @@ export const UtilTools = {
45
45
  return '' + (value === '' || value === null || value === undefined ? (placeholder ? GlobalConfig.emptyCell : '') : value)
46
46
  },
47
47
  getCellValue (row, column) {
48
- return XEUtils.get(row, column.property)
48
+ return XEUtils.get(row, column.field)
49
49
  },
50
50
  setCellValue (row, column, value) {
51
- return XEUtils.set(row, column.property, value)
51
+ return XEUtils.set(row, column.field, value)
52
52
  },
53
53
  // 组装列配置
54
54
  assemColumn (_vm) {
@@ -264,8 +264,8 @@ export default {
264
264
  // parseFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
265
265
  // labelFormat: '',
266
266
  // valueFormat: '',
267
- minDate: new Date(1900, 0, 1),
268
- maxDate: new Date(2100, 0, 1),
267
+ startDate: new Date(1900, 0, 1),
268
+ endDate: new Date(2100, 0, 1),
269
269
  startDay: 1,
270
270
  selectDay: 1,
271
271
  digits: 2,
@@ -33,9 +33,11 @@
33
33
  }
34
34
  }
35
35
  &.is--active {
36
- & > .vxe-input {
37
- .vxe-input--inner {
38
- border: 1px solid $vxe-primary-color;
36
+ &:not(.is--filter) {
37
+ & > .vxe-input {
38
+ .vxe-input--inner {
39
+ border: 1px solid $vxe-primary-color;
40
+ }
39
41
  }
40
42
  }
41
43
  }
@@ -76,7 +78,15 @@
76
78
  }
77
79
  }
78
80
 
81
+ .vxe-select-filter--wrapper {
82
+ display: block;
83
+ .vxe-select-filter--input {
84
+ width: 100%;
85
+ }
86
+ }
87
+
79
88
  .vxe-select-option--wrapper {
89
+ position: relative;
80
90
  overflow-x: hidden;
81
91
  overflow-y: auto;
82
92
  padding: 4px 0;
@@ -102,7 +112,7 @@
102
112
  }
103
113
 
104
114
  .vxe-select-option {
105
- padding: 0 10px;
115
+ padding: 0 0.6em;
106
116
  max-width: 600px;
107
117
  white-space: nowrap;
108
118
  overflow: hidden;
@@ -125,8 +135,13 @@
125
135
  }
126
136
  }
127
137
 
138
+ .vxe-select--search-icon {
139
+ margin-right: 0.5em;
140
+ }
141
+
142
+ .vxe-select--search-loading,
128
143
  .vxe-select--empty-placeholder {
129
- padding: 0 10px;
144
+ padding: 0 0.6em;
130
145
  text-align: center;
131
146
  color: $vxe-select-empty-color;
132
147
  }
@@ -152,6 +167,7 @@
152
167
  }
153
168
  .vxe-optgroup--title,
154
169
  .vxe-select-option,
170
+ .vxe-select--search-loading,
155
171
  .vxe-select--empty-placeholder {
156
172
  line-height: $vxe-select-option-height-default;
157
173
  }
@@ -162,6 +178,7 @@
162
178
  }
163
179
  .vxe-optgroup--title,
164
180
  .vxe-select-option,
181
+ .vxe-select--search-loading,
165
182
  .vxe-select--empty-placeholder {
166
183
  line-height: $vxe-select-option-height-medium;
167
184
  }
@@ -173,6 +190,7 @@
173
190
  }
174
191
  .vxe-optgroup--title,
175
192
  .vxe-select-option,
193
+ .vxe-select--search-loading,
176
194
  .vxe-select--empty-placeholder {
177
195
  line-height: $vxe-select-option-height-small;
178
196
  }
@@ -184,6 +202,7 @@
184
202
  }
185
203
  .vxe-optgroup--title,
186
204
  .vxe-select-option,
205
+ .vxe-select--search-loading,
187
206
  .vxe-select--empty-placeholder {
188
207
  line-height: $vxe-select-option-height-mini;
189
208
  }
@@ -7,7 +7,7 @@
7
7
  display: flex;
8
8
  flex-direction: row;
9
9
  align-items: center;
10
- margin: 0.6em 0;
10
+ padding: 0.6em 0;
11
11
  color: $vxe-font-color;
12
12
  font-family: $vxe-font-family;
13
13
  background-color: $vxe-toolbar-background-color;
@@ -45,7 +45,7 @@ export class FormItem extends VXETableComponent {
45
45
  /**
46
46
  * 该方法的返回值用来决定该项是否显示
47
47
  */
48
- visibleMethod?(params: { data: any, property: string }): boolean;
48
+ visibleMethod?(params: { data: any, field: string }): boolean;
49
49
  /**
50
50
  * 默认收起
51
51
  */
@@ -100,7 +100,7 @@ export interface FormItemOptions {
100
100
  /**
101
101
  * 该方法的返回值用来决定该项是否显示
102
102
  */
103
- visibleMethod?(params: { data: any, property: string }): boolean;
103
+ visibleMethod?(params: { data: any, field: string }): boolean;
104
104
  /**
105
105
  * 默认收起
106
106
  */
@@ -164,10 +164,11 @@ export interface FormItemRenderParams extends RenderParams {
164
164
  * 表单数据
165
165
  */
166
166
  data: any;
167
+ field: string
167
168
  /**
168
- * 字段名
169
+ * @deprecated
169
170
  */
170
- property: string;
171
+ property: string
171
172
  }
172
173
 
173
174
  /**
@@ -182,10 +183,11 @@ export interface FormItemVisibleParams extends RenderParams {
182
183
  * 表单数据
183
184
  */
184
185
  data: any;
186
+ field: string
185
187
  /**
186
- * 字段名
188
+ * @deprecated
187
189
  */
188
- property: string;
190
+ property: string
189
191
  }
190
192
 
191
193
  /**
@@ -200,8 +202,9 @@ export interface FormItemResetParams extends RenderParams {
200
202
  * 表单数据
201
203
  */
202
204
  data: any;
205
+ field: string
203
206
  /**
204
- * 字段名
207
+ * @deprecated
205
208
  */
206
- property: string;
209
+ property: string
207
210
  }
package/types/form.d.ts CHANGED
@@ -107,8 +107,11 @@ export interface FormValidErrParams {
107
107
  rule: FormRule;
108
108
  rules: FormRule[];
109
109
  data: any;
110
- property: string;
111
- field: string;
110
+ field: string
111
+ /**
112
+ * @deprecated
113
+ */
114
+ property: string
112
115
  }
113
116
 
114
117
  export interface FormValidErrMapParams {
@@ -21,9 +21,19 @@ export interface VxeGlobalRenderer {
21
21
  }
22
22
 
23
23
  export interface RendererMapOptions {
24
- // 筛选渲染
24
+ /**
25
+ * 请使用 filterClassName
26
+ * @deprecated
27
+ */
25
28
  className?: string;
29
+ /**
30
+ * 请使用 showFilterFooter
31
+ * @deprecated
32
+ */
26
33
  isFooter?: boolean;
34
+ // 筛选渲染
35
+ filterClassName?: string | ((params: ColumnFilterRenderParams) => string | { [key: string]: boolean })
36
+ showFilterFooter?: boolean;
27
37
  renderFilter?(h: CreateElement, renderOpts: ColumnFilterRenderOptions, params: ColumnFilterRenderParams): VNode[] | string[];
28
38
  filterMethod?(params: ColumnFilterMethodParams): boolean;
29
39
  filterResetMethod?(params: ColumnFilterResetParams): void;
@@ -31,6 +41,7 @@ export interface RendererMapOptions {
31
41
  defaultFilterMethod?(params: ColumnFilterMethodParams): boolean;
32
42
 
33
43
  // 单元格渲染
44
+ cellClassName?: string | ((params: ColumnCellRenderParams | ColumnEditRenderParams) => string | { [key: string]: boolean })
34
45
  renderHeader?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
35
46
  renderDefault?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
36
47
  renderFooter?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnFooterRenderParams): VNode[] | string[];
@@ -50,6 +61,7 @@ export interface RendererMapOptions {
50
61
  renderToolbarTool?(h: CreateElement, renderOpts: ToolbarToolRenderOptions, params: ToolbarToolRenderParams): VNode[] | string[];
51
62
 
52
63
  // 表单-项渲染
64
+ itemClassName?: string | ((params: FormItemRenderParams) => string | { [key: string]: boolean })
53
65
  renderItemTitle?(h: CreateElement, renderOpts: FormItemRenderOptions, params: FormItemRenderParams): VNode[] | string[];
54
66
  renderItemContent?(h: CreateElement, renderOpts: FormItemRenderOptions, params: FormItemRenderParams): VNode[] | string[];
55
67
  itemVisibleMethod?(params: FormItemVisibleParams): boolean;