vxe-table 3.15.26 → 3.15.28

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 (41) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/index.js +11 -3
  3. package/es/table/module/filter/mixin.js +19 -8
  4. package/es/table/src/cell.js +3 -1
  5. package/es/table/src/methods.js +97 -9
  6. package/es/table/src/table.js +36 -4
  7. package/es/table/src/util.js +21 -17
  8. package/es/ui/index.js +1 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/lib/index.umd.js +226 -45
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/index.js +10 -3
  14. package/lib/table/index.min.js +1 -1
  15. package/lib/table/module/filter/mixin.js +25 -8
  16. package/lib/table/module/filter/mixin.min.js +1 -1
  17. package/lib/table/src/cell.js +3 -1
  18. package/lib/table/src/cell.min.js +1 -1
  19. package/lib/table/src/methods.js +114 -9
  20. package/lib/table/src/methods.min.js +1 -1
  21. package/lib/table/src/table.js +40 -5
  22. package/lib/table/src/table.min.js +1 -1
  23. package/lib/table/src/util.js +33 -17
  24. package/lib/table/src/util.min.js +1 -1
  25. package/lib/ui/index.js +1 -1
  26. package/lib/ui/index.min.js +1 -1
  27. package/lib/ui/src/log.js +1 -1
  28. package/lib/ui/src/log.min.js +1 -1
  29. package/package.json +1 -1
  30. package/packages/table/index.ts +10 -3
  31. package/packages/table/module/filter/mixin.ts +26 -12
  32. package/packages/table/src/cell.ts +3 -1
  33. package/packages/table/src/methods.ts +96 -10
  34. package/packages/table/src/table.ts +47 -10
  35. package/packages/table/src/util.ts +24 -19
  36. /package/es/{iconfont.1747024909816.ttf → iconfont.1747176212818.ttf} +0 -0
  37. /package/es/{iconfont.1747024909816.woff → iconfont.1747176212818.woff} +0 -0
  38. /package/es/{iconfont.1747024909816.woff2 → iconfont.1747176212818.woff2} +0 -0
  39. /package/lib/{iconfont.1747024909816.ttf → iconfont.1747176212818.ttf} +0 -0
  40. /package/lib/{iconfont.1747024909816.woff → iconfont.1747176212818.woff} +0 -0
  41. /package/lib/{iconfont.1747024909816.woff2 → iconfont.1747176212818.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.15.26";
2223
+ const version = "3.15.27";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2864,7 +2864,7 @@ function isNodeElement(elem) {
2864
2864
  const {
2865
2865
  log: log_log
2866
2866
  } = core_.VxeUI;
2867
- const log_version = `table v${"3.15.26"}`;
2867
+ const log_version = `table v${"3.15.27"}`;
2868
2868
  const warnLog = log_log.create('warn', log_version);
2869
2869
  const errLog = log_log.create('error', log_version);
2870
2870
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3129,36 +3129,51 @@ function toTreePathSeq(path) {
3129
3129
  function getRowUniqueId() {
3130
3130
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId('row_');
3131
3131
  }
3132
+ function hasDeepKey(rowKey) {
3133
+ return rowKey.indexOf('.') > -1;
3134
+ }
3132
3135
  // 行主键 key
3133
3136
  function getRowkey($xeTable) {
3134
- const props = $xeTable;
3135
- const rowOpts = $xeTable.computeRowOpts;
3136
- return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`;
3137
+ const internalData = $xeTable;
3138
+ const {
3139
+ currKeyField
3140
+ } = internalData;
3141
+ return currKeyField;
3137
3142
  }
3138
3143
  // 行主键 value
3139
3144
  function getRowid($xeTable, row) {
3140
- const rowid = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, getRowkey($xeTable));
3141
- return encodeRowid(rowid);
3145
+ const internalData = $xeTable;
3146
+ const {
3147
+ isCurrDeepKey,
3148
+ currKeyField
3149
+ } = internalData;
3150
+ return row ? encodeRowid((isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey)(row, currKeyField)) : '';
3142
3151
  }
3143
3152
  function createHandleUpdateRowId($xeTable) {
3144
- const rowKey = getRowkey($xeTable);
3145
- const isDeepKey = rowKey.indexOf('.') > -1;
3146
- const updateRId = isDeepKey ? updateDeepRowKey : updateFastRowKey;
3153
+ const internalData = $xeTable;
3154
+ const {
3155
+ isCurrDeepKey,
3156
+ currKeyField
3157
+ } = internalData;
3158
+ const updateRId = isCurrDeepKey ? updateDeepRowKey : updateFastRowKey;
3147
3159
  return {
3148
- rowKey,
3160
+ rowKey: currKeyField,
3149
3161
  handleUpdateRowId(row) {
3150
- return row ? updateRId(row, rowKey) : null;
3162
+ return row ? updateRId(row, currKeyField) : '';
3151
3163
  }
3152
3164
  };
3153
3165
  }
3154
3166
  function createHandleGetRowId($xeTable) {
3155
- const rowKey = getRowkey($xeTable);
3156
- const isDeepKey = rowKey.indexOf('.') > -1;
3157
- const getRId = isDeepKey ? getDeepRowIdByKey : getFastRowIdByKey;
3167
+ const internalData = $xeTable;
3168
+ const {
3169
+ isCurrDeepKey,
3170
+ currKeyField
3171
+ } = internalData;
3172
+ const getRId = isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey;
3158
3173
  return {
3159
- rowKey,
3174
+ rowKey: currKeyField,
3160
3175
  handleGetRowId(row) {
3161
- return row ? getRId(row, rowKey) : null;
3176
+ return row ? encodeRowid(getRId(row, currKeyField)) : '';
3162
3177
  }
3163
3178
  };
3164
3179
  }
@@ -3170,7 +3185,7 @@ function getDeepRowIdByKey(row, rowKey) {
3170
3185
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, rowKey);
3171
3186
  }
3172
3187
  function updateDeepRowKey(row, rowKey) {
3173
- let rowid = getDeepRowIdByKey(row, rowKey);
3188
+ let rowid = encodeRowid(getDeepRowIdByKey(row, rowKey));
3174
3189
  if (eqEmptyValue(rowid)) {
3175
3190
  rowid = getRowUniqueId();
3176
3191
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, rowKey, rowid);
@@ -3181,7 +3196,7 @@ function getFastRowIdByKey(row, rowKey) {
3181
3196
  return row[rowKey];
3182
3197
  }
3183
3198
  function updateFastRowKey(row, rowKey) {
3184
- let rowid = getFastRowIdByKey(row, rowKey);
3199
+ let rowid = encodeRowid(getFastRowIdByKey(row, rowKey));
3185
3200
  if (eqEmptyValue(rowid)) {
3186
3201
  rowid = getRowUniqueId();
3187
3202
  row[rowKey] = rowid;
@@ -4926,7 +4941,9 @@ const Cell = {
4926
4941
  class: 'vxe-cell--required-icon'
4927
4942
  })]) : renderEmptyElement($table), isEnableConf(editRender) && editOpts.showIcon ? h('i', {
4928
4943
  class: 'vxe-cell--edit-icon'
4929
- }, [h('i')]) : renderEmptyElement($table)];
4944
+ }, [h('i', {
4945
+ class: editOpts.icon || cell_getIcon().TABLE_EDIT
4946
+ })]) : renderEmptyElement($table)];
4930
4947
  }
4931
4948
  return renderHeaderCellBaseVNs(h, params, editIconVNs.concat(Cell.renderHeaderTitle(h, params)).concat(sortable ? Cell.renderSortIcon(h, params) : []).concat(filters ? Cell.renderFilterIcon(h, params) : []));
4932
4949
  },
@@ -10203,7 +10220,6 @@ const Methods = {
10203
10220
  },
10204
10221
  /**
10205
10222
  * 检查是否为临时行数据
10206
- * @param {Row} row 行对象
10207
10223
  */
10208
10224
  isInsertByRow(row) {
10209
10225
  const $xeTable = this;
@@ -10221,18 +10237,17 @@ const Methods = {
10221
10237
  },
10222
10238
  /**
10223
10239
  * 删除所有新增的临时数据
10224
- * @returns
10225
10240
  */
10226
10241
  removeInsertRow() {
10227
10242
  const $xeTable = this;
10228
10243
  const internalData = $xeTable;
10229
- internalData.insertRowMaps = {};
10230
- return $xeTable.remove($xeTable.getInsertRecords());
10244
+ const {
10245
+ insertRowMaps
10246
+ } = internalData;
10247
+ return $xeTable.remove(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(insertRowMaps));
10231
10248
  },
10232
10249
  /**
10233
10250
  * 检查行或列数据是否发生改变
10234
- * @param {Row} rowOrId 行对象
10235
- * @param {String} field 字段名
10236
10251
  */
10237
10252
  isUpdateByRow(rowOrId, field) {
10238
10253
  const $xeTable = this;
@@ -12520,7 +12535,12 @@ const Methods = {
12520
12535
  }
12521
12536
  }
12522
12537
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
12523
- handleTooltip($xeTable, evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
12538
+ const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
12539
+ let ovEl = null;
12540
+ if (column.treeNode) {
12541
+ ovEl = tdEl.querySelector('.vxe-tree-cell');
12542
+ }
12543
+ handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
12524
12544
  }
12525
12545
  },
12526
12546
  /**
@@ -13910,7 +13930,8 @@ const Methods = {
13910
13930
  const mouseOpts = $xeTable.computeMouseOpts;
13911
13931
  const {
13912
13932
  field,
13913
- sortable
13933
+ sortable,
13934
+ order
13914
13935
  } = column;
13915
13936
  if (sortable) {
13916
13937
  const params = {
@@ -13919,13 +13940,16 @@ const Methods = {
13919
13940
  column,
13920
13941
  field,
13921
13942
  property: field,
13922
- order: column.order,
13943
+ order,
13923
13944
  sortList: $xeTable.getSortColumns(),
13924
13945
  sortTime: column.sortTime
13925
13946
  };
13926
13947
  if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
13927
13948
  $xeTable.handleSortEvent(evnt, params);
13928
13949
  }
13950
+ if (!order) {
13951
+ $xeTable.dispatchEvent('clear-sort', params, evnt);
13952
+ }
13929
13953
  $xeTable.dispatchEvent('sort-change', params, evnt);
13930
13954
  }
13931
13955
  },
@@ -15023,6 +15047,49 @@ const Methods = {
15023
15047
  return updateStyle($xeTable);
15024
15048
  });
15025
15049
  },
15050
+ clearSortByEvent(evnt, fieldOrColumn) {
15051
+ const $xeTable = this;
15052
+ const internalData = $xeTable;
15053
+ const {
15054
+ tableFullColumn
15055
+ } = internalData;
15056
+ const sortOpts = $xeTable.computeSortOpts;
15057
+ const sortCols = [];
15058
+ let column = null;
15059
+ if (evnt) {
15060
+ if (fieldOrColumn) {
15061
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
15062
+ if (column) {
15063
+ column.order = null;
15064
+ }
15065
+ } else {
15066
+ tableFullColumn.forEach(column => {
15067
+ if (column.order) {
15068
+ column.order = null;
15069
+ sortCols.push(column);
15070
+ }
15071
+ });
15072
+ }
15073
+ if (!sortOpts.remote) {
15074
+ $xeTable.handleTableData(true);
15075
+ }
15076
+ if (sortCols.length) {
15077
+ const params = {
15078
+ $table: $xeTable,
15079
+ $event: evnt,
15080
+ cols: sortCols,
15081
+ sortList: []
15082
+ };
15083
+ $xeTable.dispatchEvent('clear-all-sort', params, evnt);
15084
+ } else if (column) {
15085
+ $xeTable.handleColumnSortEvent(evnt, column);
15086
+ }
15087
+ }
15088
+ return $xeTable.$nextTick().then(() => {
15089
+ updateRowOffsetTop($xeTable);
15090
+ return updateStyle($xeTable);
15091
+ });
15092
+ },
15026
15093
  // 在 v3 中废弃
15027
15094
  getSortColumn() {
15028
15095
  if (true) {
@@ -15107,6 +15174,61 @@ const Methods = {
15107
15174
  isFilter(fieldOrColumn) {
15108
15175
  return this.isActiveFilterByColumn(fieldOrColumn);
15109
15176
  },
15177
+ clearFilterByEvent(evnt, fieldOrColumn) {
15178
+ const $xeTable = this;
15179
+ const reactData = $xeTable;
15180
+ const internalData = $xeTable;
15181
+ const {
15182
+ filterStore
15183
+ } = reactData;
15184
+ const {
15185
+ tableFullColumn
15186
+ } = internalData;
15187
+ const filterOpts = $xeTable.computeFilterOpts;
15188
+ const filterCols = [];
15189
+ let column = null;
15190
+ if (fieldOrColumn) {
15191
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
15192
+ if (column) {
15193
+ $xeTable.handleClearFilter(column);
15194
+ }
15195
+ } else {
15196
+ tableFullColumn.forEach(column => {
15197
+ if (column.filters) {
15198
+ filterCols.push(column);
15199
+ $xeTable.handleClearFilter(column);
15200
+ }
15201
+ });
15202
+ }
15203
+ if (!fieldOrColumn || column !== filterStore.column) {
15204
+ Object.assign(filterStore, {
15205
+ isAllSelected: false,
15206
+ isIndeterminate: false,
15207
+ style: null,
15208
+ options: [],
15209
+ column: null,
15210
+ multiple: false,
15211
+ visible: false
15212
+ });
15213
+ }
15214
+ if (!filterOpts.remote) {
15215
+ $xeTable.updateData();
15216
+ }
15217
+ if (filterCols.length) {
15218
+ const params = {
15219
+ $table: $xeTable,
15220
+ $event: evnt,
15221
+ cols: filterCols,
15222
+ filterList: []
15223
+ };
15224
+ $xeTable.dispatchEvent('clear-all-filter', params, evnt);
15225
+ } else if (column) {
15226
+ $xeTable.dispatchEvent('clear-filter', {
15227
+ filterList: () => $xeTable.getCheckedFilters()
15228
+ }, evnt);
15229
+ }
15230
+ return $xeTable.$nextTick();
15231
+ },
15110
15232
  /**
15111
15233
  * 判断展开行是否懒加载完成
15112
15234
  * @param {Row} row 行对象
@@ -21933,8 +22055,18 @@ const {
21933
22055
  * @param {Event} evnt 事件
21934
22056
  */
21935
22057
  handleFilterResetFilter(evnt) {
21936
- this.handleClearFilter(this.filterStore.column);
21937
- this.confirmFilterEvent(evnt);
22058
+ const $xeTable = this;
22059
+ const reactData = $xeTable;
22060
+ const {
22061
+ filterStore
22062
+ } = reactData;
22063
+ $xeTable.handleClearFilter(filterStore.column);
22064
+ $xeTable.confirmFilterEvent(evnt);
22065
+ if (evnt) {
22066
+ $xeTable.dispatchEvent('clear-filter', {
22067
+ filterList: []
22068
+ }, evnt);
22069
+ }
21938
22070
  },
21939
22071
  /**
21940
22072
  * 清空指定列的筛选条件
@@ -21942,17 +22074,23 @@ const {
21942
22074
  * @param {String} fieldOrColumn 列
21943
22075
  */
21944
22076
  _clearFilter(fieldOrColumn) {
22077
+ const $xeTable = this;
22078
+ const reactData = $xeTable;
22079
+ const internalData = $xeTable;
21945
22080
  const {
21946
22081
  filterStore
21947
- } = this;
22082
+ } = reactData;
22083
+ const {
22084
+ tableFullColumn
22085
+ } = internalData;
21948
22086
  let column;
21949
22087
  if (fieldOrColumn) {
21950
- column = handleFieldOrColumn(this, fieldOrColumn);
22088
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
21951
22089
  if (column) {
21952
- this.handleClearFilter(column);
22090
+ $xeTable.handleClearFilter(column);
21953
22091
  }
21954
22092
  } else {
21955
- this.visibleColumn.forEach(this.handleClearFilter);
22093
+ tableFullColumn.forEach($xeTable.handleClearFilter);
21956
22094
  }
21957
22095
  if (!fieldOrColumn || column !== filterStore.column) {
21958
22096
  Object.assign(filterStore, {
@@ -21965,12 +22103,13 @@ const {
21965
22103
  visible: false
21966
22104
  });
21967
22105
  }
21968
- return this.updateData();
22106
+ return $xeTable.updateData();
21969
22107
  },
21970
22108
  _updateFilterOptionStatus(item, checked) {
22109
+ const $xeTable = this;
21971
22110
  item._checked = checked;
21972
22111
  item.checked = checked;
21973
- return this.$nextTick();
22112
+ return $xeTable.$nextTick();
21974
22113
  }
21975
22114
  }
21976
22115
  });
@@ -27097,6 +27236,12 @@ const {
27097
27236
  globalMixins: table_globalMixins,
27098
27237
  renderEmptyElement: table_renderEmptyElement
27099
27238
  } = core_.VxeUI;
27239
+ function handleKeyField($xeTable) {
27240
+ const internalData = $xeTable;
27241
+ const keyField = $xeTable.computeRowField;
27242
+ internalData.currKeyField = keyField;
27243
+ internalData.isCurrDeepKey = hasDeepKey(keyField);
27244
+ }
27100
27245
  /**
27101
27246
  * 渲染浮固定列
27102
27247
  * 分别渲染左边固定列和右边固定列
@@ -27758,6 +27903,12 @@ function renderBody(h, $xeTable) {
27758
27903
  }
27759
27904
  return '';
27760
27905
  },
27906
+ computeRowField() {
27907
+ const $xeTable = this;
27908
+ const props = $xeTable;
27909
+ const rowOpts = $xeTable.computeRowOpts;
27910
+ return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`;
27911
+ },
27761
27912
  validOpts() {
27762
27913
  return this.computeValidOpts;
27763
27914
  },
@@ -28442,6 +28593,23 @@ function renderBody(h, $xeTable) {
28442
28593
  computeRowGroupFields(val) {
28443
28594
  const $xeTable = this;
28444
28595
  $xeTable.handleUpdateRowGroup(val);
28596
+ },
28597
+ computeRowField() {
28598
+ const $xeTable = this;
28599
+ const reactData = $xeTable;
28600
+ const internalData = $xeTable;
28601
+ // 行主键被改变,重载表格
28602
+ const {
28603
+ inited,
28604
+ tableFullData
28605
+ } = internalData;
28606
+ if (inited) {
28607
+ handleKeyField($xeTable);
28608
+ reactData.tableData = [];
28609
+ $xeTable.$nextTick(() => {
28610
+ $xeTable.reloadData(tableFullData);
28611
+ });
28612
+ }
28445
28613
  }
28446
28614
  },
28447
28615
  created() {
@@ -28450,6 +28618,8 @@ function renderBody(h, $xeTable) {
28450
28618
  const internalData = $xeTable;
28451
28619
  Object.assign($xeTable, {
28452
28620
  tZindex: 0,
28621
+ currKeyField: '',
28622
+ isCurrDeepKey: false,
28453
28623
  elemStore: {},
28454
28624
  // 存放横向 X 虚拟滚动相关的信息
28455
28625
  scrollXStore: {
@@ -28556,6 +28726,7 @@ function renderBody(h, $xeTable) {
28556
28726
  swYInterval: 0,
28557
28727
  swYTotal: 0
28558
28728
  });
28729
+ handleKeyField($xeTable);
28559
28730
  const {
28560
28731
  data,
28561
28732
  exportConfig,
@@ -28805,6 +28976,7 @@ function renderBody(h, $xeTable) {
28805
28976
  const columnOpts = $xeTable.computeColumnOpts;
28806
28977
  const rowOpts = $xeTable.computeRowOpts;
28807
28978
  const customOpts = $xeTable.computeCustomOpts;
28979
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
28808
28980
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
28809
28981
  initTpImg();
28810
28982
  }
@@ -28844,11 +29016,13 @@ function renderBody(h, $xeTable) {
28844
29016
  resizeObserver.observe(this.getParentElem());
28845
29017
  this.$resize = resizeObserver;
28846
29018
  }
28847
- const tableViewportEl = $xeTable.$refs.refTableViewportElem;
28848
- if (tableViewportEl) {
28849
- tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, {
28850
- passive: false
28851
- });
29019
+ if (virtualYOpts.mode !== 'scroll') {
29020
+ const tableViewportEl = $xeTable.$refs.refTableViewportElem;
29021
+ if (tableViewportEl) {
29022
+ tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, {
29023
+ passive: false
29024
+ });
29025
+ }
28852
29026
  }
28853
29027
  this.preventEvent(null, 'mounted');
28854
29028
  },
@@ -32928,9 +33102,16 @@ render_renderer.mixin({
32928
33102
  let isReg = false;
32929
33103
  const VxeTable = Object.assign({}, table, {
32930
33104
  install(app) {
32931
- if (typeof window !== 'undefined' && window.VXETableMixin) {
32932
- table.mixins.push(window.VXETableMixin);
32933
- delete window.VXETableMixin;
33105
+ if (typeof window !== 'undefined') {
33106
+ if (window.VxeTableExtendCellArea && window.VxeTableExtendCellArea.use) {
33107
+ window.VxeTableExtendCellArea.use(core_.VxeUI);
33108
+ } else if (window.VXETableMixin) {
33109
+ table.mixins.push(window.VXETableMixin);
33110
+ delete window.VXETableMixin;
33111
+ }
33112
+ if (window.VxeTableExtendPivotTable && window.VxeTableExtendPivotTable.use) {
33113
+ window.VxeTableExtendPivotTable.use(core_.VxeUI);
33114
+ }
32934
33115
  }
32935
33116
  // 兼容老版本
32936
33117
  if (typeof window !== 'undefined' && window.VxeTableExtendCellArea && window.VxeTableExtendCellArea.init) {