vxe-table 4.9.26 → 4.9.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 (60) hide show
  1. package/es/grid/src/grid.js +7 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/edit/hook.js +10 -3
  7. package/es/table/module/keyboard/hook.js +2 -31
  8. package/es/table/src/body.js +16 -4
  9. package/es/table/src/cell.js +21 -21
  10. package/es/table/src/header.js +21 -5
  11. package/es/table/src/table.js +106 -39
  12. package/es/table/style.css +36 -0
  13. package/es/table/style.min.css +1 -1
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-table/style.css +36 -0
  17. package/es/vxe-table/style.min.css +1 -1
  18. package/lib/grid/src/grid.js +7 -1
  19. package/lib/grid/src/grid.min.js +1 -1
  20. package/lib/index.css +1 -1
  21. package/lib/index.min.css +1 -1
  22. package/lib/index.umd.js +207 -110
  23. package/lib/index.umd.min.js +1 -1
  24. package/lib/style.css +1 -1
  25. package/lib/style.min.css +1 -1
  26. package/lib/table/module/edit/hook.js +10 -4
  27. package/lib/table/module/edit/hook.min.js +1 -1
  28. package/lib/table/module/keyboard/hook.js +1 -36
  29. package/lib/table/module/keyboard/hook.min.js +1 -1
  30. package/lib/table/src/body.js +18 -4
  31. package/lib/table/src/body.min.js +1 -1
  32. package/lib/table/src/cell.js +27 -19
  33. package/lib/table/src/cell.min.js +1 -1
  34. package/lib/table/src/header.js +23 -7
  35. package/lib/table/src/header.min.js +1 -1
  36. package/lib/table/src/table.js +122 -39
  37. package/lib/table/src/table.min.js +1 -1
  38. package/lib/table/style/style.css +36 -0
  39. package/lib/table/style/style.min.css +1 -1
  40. package/lib/ui/index.js +1 -1
  41. package/lib/ui/index.min.js +1 -1
  42. package/lib/ui/src/log.js +1 -1
  43. package/lib/ui/src/log.min.js +1 -1
  44. package/lib/vxe-table/style/style.css +36 -0
  45. package/lib/vxe-table/style/style.min.css +1 -1
  46. package/package.json +2 -2
  47. package/packages/grid/src/grid.ts +8 -1
  48. package/packages/table/module/edit/hook.ts +10 -3
  49. package/packages/table/module/keyboard/hook.ts +2 -31
  50. package/packages/table/src/body.ts +16 -4
  51. package/packages/table/src/cell.ts +23 -15
  52. package/packages/table/src/header.ts +20 -6
  53. package/packages/table/src/table.ts +107 -42
  54. package/styles/components/table.scss +36 -0
  55. /package/es/{iconfont.1734150615727.ttf → iconfont.1734331313492.ttf} +0 -0
  56. /package/es/{iconfont.1734150615727.woff → iconfont.1734331313492.woff} +0 -0
  57. /package/es/{iconfont.1734150615727.woff2 → iconfont.1734331313492.woff2} +0 -0
  58. /package/lib/{iconfont.1734150615727.ttf → iconfont.1734331313492.ttf} +0 -0
  59. /package/lib/{iconfont.1734150615727.woff → iconfont.1734331313492.woff} +0 -0
  60. /package/lib/{iconfont.1734150615727.woff2 → iconfont.1734331313492.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -1998,7 +1998,7 @@ function eqEmptyValue(cellValue) {
1998
1998
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
1999
1999
 
2000
2000
 
2001
- const version = "4.9.26";
2001
+ const version = "4.9.28";
2002
2002
  core_.VxeUI.version = version;
2003
2003
  core_.VxeUI.tableVersion = version;
2004
2004
  core_.VxeUI.setConfig({
@@ -2409,7 +2409,7 @@ var es_array_push = __webpack_require__(4114);
2409
2409
  const {
2410
2410
  log: log_log
2411
2411
  } = core_.VxeUI;
2412
- const log_version = `table v${"4.9.26"}`;
2412
+ const log_version = `table v${"4.9.28"}`;
2413
2413
  const warnLog = log_log.create('warn', log_version);
2414
2414
  const errLog = log_log.create('error', log_version);
2415
2415
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3405,21 +3405,26 @@ function renderCellDragIcon(params) {
3405
3405
  const rowDragOpts = computeRowDragOpts.value;
3406
3406
  const {
3407
3407
  icon,
3408
+ trigger,
3408
3409
  disabledMethod
3409
3410
  } = rowDragOpts;
3410
3411
  const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null);
3411
3412
  const isDisabled = rDisabledMethod && rDisabledMethod(params);
3413
+ const ons = {};
3414
+ if (trigger !== 'cell') {
3415
+ ons.onMousedown = evnt => {
3416
+ if (!isDisabled) {
3417
+ $table.handleCellDragMousedownEvent(evnt, params);
3418
+ }
3419
+ };
3420
+ ons.onMouseup = $table.handleCellDragMouseupEvent;
3421
+ }
3412
3422
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
3413
3423
  key: 'dg',
3414
3424
  class: ['vxe-cell--drag-handle', {
3415
3425
  'is--disabled': isDisabled
3416
3426
  }],
3417
- onMousedown(evnt) {
3418
- if (!isDisabled) {
3419
- $table.handleCellDragMousedownEvent(evnt, params);
3420
- }
3421
- },
3422
- onMouseup: $table.handleCellDragMouseupEvent
3427
+ ...ons
3423
3428
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
3424
3429
  class: icon || (dragConfig ? dragConfig.rowIcon : '') || cell_getIcon().TABLE_DRAG_ROW
3425
3430
  })]);
@@ -3476,24 +3481,29 @@ function renderHeaderCellDragIcon(params) {
3476
3481
  const {
3477
3482
  showIcon,
3478
3483
  icon,
3484
+ trigger,
3479
3485
  isCrossDrag,
3480
3486
  visibleMethod,
3481
3487
  disabledMethod
3482
3488
  } = columnDragOpts;
3483
- const isDisabled = disabledMethod && disabledMethod(params);
3484
3489
  if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
3485
3490
  if (!column.fixed && (isCrossDrag || !column.parentId)) {
3491
+ const isDisabled = disabledMethod && disabledMethod(params);
3492
+ const ons = {};
3493
+ if (trigger !== 'cell') {
3494
+ ons.onMousedown = evnt => {
3495
+ if (!isDisabled) {
3496
+ $table.handleHeaderCellDragMousedownEvent(evnt, params);
3497
+ }
3498
+ };
3499
+ ons.onMouseup = $table.handleHeaderCellDragMouseupEvent;
3500
+ }
3486
3501
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
3487
3502
  key: 'dg',
3488
3503
  class: ['vxe-cell--drag-handle', {
3489
3504
  'is--disabled': isDisabled
3490
3505
  }],
3491
- onMousedown(evnt) {
3492
- if (!isDisabled) {
3493
- $table.handleHeaderCellDragMousedownEvent(evnt, params);
3494
- }
3495
- },
3496
- onMouseup: $table.handleHeaderCellDragMouseupEvent
3506
+ ...ons
3497
3507
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
3498
3508
  class: icon || cell_getIcon().TABLE_DRAG_COLUMN
3499
3509
  })]);
@@ -4882,7 +4892,8 @@ const lineOffsetSizes = {
4882
4892
  computeCellOpts,
4883
4893
  computeValidOpts,
4884
4894
  computeRowOpts,
4885
- computeColumnOpts
4895
+ computeColumnOpts,
4896
+ computeRowDragOpts
4886
4897
  } = $xeTable.getComputeMaps();
4887
4898
  const refElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
4888
4899
  const refBodyTable = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
@@ -5019,6 +5030,10 @@ const lineOffsetSizes = {
5019
5030
  const editOpts = computeEditOpts.value;
5020
5031
  const tooltipOpts = computeTooltipOpts.value;
5021
5032
  const rowOpts = computeRowOpts.value;
5033
+ const rowDragOpts = computeRowDragOpts.value;
5034
+ const {
5035
+ disabledMethod: dragDisabledMethod
5036
+ } = rowDragOpts;
5022
5037
  const sYOpts = computeSYOpts.value;
5023
5038
  const columnOpts = computeColumnOpts.value;
5024
5039
  const mouseOpts = computeMouseOpts.value;
@@ -5095,6 +5110,14 @@ const lineOffsetSizes = {
5095
5110
  data: tableData,
5096
5111
  items
5097
5112
  };
5113
+ let isColDragCell = false;
5114
+ let isDisabledDrag = false;
5115
+ if (rowOpts.drag) {
5116
+ isColDragCell = rowDragOpts.trigger === 'row' || column.dragSort && rowDragOpts.trigger === 'cell';
5117
+ }
5118
+ if (isColDragCell) {
5119
+ isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
5120
+ }
5098
5121
  // hover 进入事件
5099
5122
  if (showTitle || showTooltip || showAllTip || tooltipConfig) {
5100
5123
  tdOns.onMouseenter = evnt => {
@@ -5127,7 +5150,7 @@ const lineOffsetSizes = {
5127
5150
  };
5128
5151
  }
5129
5152
  // 按下事件处理
5130
- if (checkboxOpts.range || mouseConfig) {
5153
+ if (isColDragCell || checkboxOpts.range || mouseConfig) {
5131
5154
  tdOns.onMousedown = evnt => {
5132
5155
  $xeTable.triggerCellMousedownEvent(evnt, params);
5133
5156
  };
@@ -5254,6 +5277,8 @@ const lineOffsetSizes = {
5254
5277
  'col--edit': isEdit,
5255
5278
  'col--ellipsis': hasEllipsis,
5256
5279
  'fixed--hidden': fixedHiddenColumn,
5280
+ 'is--drag-cell': isColDragCell,
5281
+ 'is--drag-disabled': isDisabledDrag,
5257
5282
  'col--dirty': isDirty,
5258
5283
  'col--active': editConfig && isEdit && actived.row === row && (actived.column === column || editOpts.mode === 'row'),
5259
5284
  'col--valid-error': !!errorValidItem,
@@ -5286,7 +5311,6 @@ const lineOffsetSizes = {
5286
5311
  expandColumn,
5287
5312
  selectRadioRow,
5288
5313
  pendingRowMaps,
5289
- pendingRowList,
5290
5314
  isDragColMove
5291
5315
  } = tableReactData;
5292
5316
  const {
@@ -5380,7 +5404,7 @@ const lineOffsetSizes = {
5380
5404
  'row--new': isNewRow && (editOpts.showStatus || editOpts.showInsertStatus),
5381
5405
  'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
5382
5406
  'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
5383
- 'row--pending': pendingRowList.length && !!pendingRowMaps[rowid]
5407
+ 'row--pending': !!pendingRowMaps[rowid]
5384
5408
  }, getPropClass(rowClassName, params)];
5385
5409
  const tdVNs = tableColumn.map((column, $columnIndex) => {
5386
5410
  return renderColumn(seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
@@ -5886,6 +5910,7 @@ const header_renderType = 'header';
5886
5910
  } = $xeTable.getRefMaps();
5887
5911
  const {
5888
5912
  computeColumnOpts,
5913
+ computeColumnDragOpts,
5889
5914
  computeResizableOpts
5890
5915
  } = $xeTable.getComputeMaps();
5891
5916
  const headerColumn = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)([]);
@@ -6051,6 +6076,10 @@ const header_renderType = 'header';
6051
6076
  scrollbarWidth
6052
6077
  } = tableReactData;
6053
6078
  const columnOpts = computeColumnOpts.value;
6079
+ const columnDragOpts = computeColumnDragOpts.value;
6080
+ const {
6081
+ disabledMethod: dragDisabledMethod
6082
+ } = columnDragOpts;
6054
6083
  return cols.map((column, $columnIndex) => {
6055
6084
  const {
6056
6085
  type,
@@ -6088,6 +6117,11 @@ const header_renderType = 'header';
6088
6117
  isHidden: fixedHiddenColumn,
6089
6118
  hasFilter
6090
6119
  };
6120
+ const thAttrs = {
6121
+ colid,
6122
+ colspan: column.colSpan > 1 ? column.colSpan : null,
6123
+ rowspan: column.rowSpan > 1 ? column.rowSpan : null
6124
+ };
6091
6125
  const thOns = {
6092
6126
  onClick: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
6093
6127
  onDblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
@@ -6096,15 +6130,23 @@ const header_renderType = 'header';
6096
6130
  if (scrollXLoad && !hasEllipsis) {
6097
6131
  showEllipsis = hasEllipsis = true;
6098
6132
  }
6133
+ const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
6134
+ let isDisabledDrag = false;
6135
+ if (isColDragCell) {
6136
+ isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
6137
+ }
6099
6138
  // 按下事件处理
6100
- if (mouseConfig) {
6139
+ if (mouseConfig || isColDragCell) {
6101
6140
  thOns.onMousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
6102
6141
  }
6103
- // 拖拽行事件
6142
+ // 拖拽列事件
6104
6143
  if (columnOpts.drag) {
6105
6144
  thOns.onDragstart = $xeTable.handleHeaderCellDragDragstartEvent;
6106
6145
  thOns.onDragend = $xeTable.handleHeaderCellDragDragendEvent;
6107
6146
  thOns.onDragover = $xeTable.handleHeaderCellDragDragoverEvent;
6147
+ if (isColDragCell) {
6148
+ thOns.onMouseup = $xeTable.handleHeaderCellDragMouseupEvent;
6149
+ }
6108
6150
  }
6109
6151
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('th', {
6110
6152
  class: ['vxe-header--column', colid, {
@@ -6118,12 +6160,11 @@ const header_renderType = 'header';
6118
6160
  'is--sortable': column.sortable,
6119
6161
  'col--filter': !!column.filters,
6120
6162
  'is--filter-active': hasFilter,
6163
+ 'is--drag-disabled': isDisabledDrag,
6121
6164
  'col--current': currentColumn === column
6122
6165
  }, headerClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerClassName) ? headerClassName(params) : headerClassName : '', headerCellClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerCellClassName) ? headerCellClassName(params) : headerCellClassName : ''],
6123
- colid,
6124
- colspan: column.colSpan > 1 ? column.colSpan : null,
6125
- rowspan: column.rowSpan > 1 ? column.rowSpan : null,
6126
6166
  style: headerCellStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null,
6167
+ ...thAttrs,
6127
6168
  ...thOns,
6128
6169
  key: columnKey || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
6129
6170
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
@@ -9122,8 +9163,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
9122
9163
  reColumnFlag: 0,
9123
9164
  // 已标记的对象集
9124
9165
  pendingRowMaps: {},
9125
- // 已标记的行
9126
- pendingRowList: [],
9127
9166
  // 初始化标识
9128
9167
  initStore: {
9129
9168
  filter: false,
@@ -12708,7 +12747,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
12708
12747
  */
12709
12748
  loadData(datas) {
12710
12749
  const {
12711
- inited,
12712
12750
  initStatus
12713
12751
  } = internalData;
12714
12752
  return loadTableData(datas).then(() => {
@@ -12717,9 +12755,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
12717
12755
  if (!initStatus) {
12718
12756
  handleLoadDefaults();
12719
12757
  }
12720
- if (!inited) {
12721
- handleInitDefaults();
12722
- }
12723
12758
  return tableMethods.recalculate();
12724
12759
  });
12725
12760
  },
@@ -12728,18 +12763,12 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
12728
12763
  * @param {Array} datas 数据
12729
12764
  */
12730
12765
  reloadData(datas) {
12731
- const {
12732
- inited
12733
- } = internalData;
12734
12766
  return tableMethods.clearAll().then(() => {
12735
12767
  internalData.inited = true;
12736
12768
  internalData.initStatus = true;
12737
12769
  return loadTableData(datas);
12738
12770
  }).then(() => {
12739
12771
  handleLoadDefaults();
12740
- if (!inited) {
12741
- handleInitDefaults();
12742
- }
12743
12772
  return tableMethods.recalculate();
12744
12773
  });
12745
12774
  },
@@ -14147,10 +14176,7 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14147
14176
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
14148
14177
  },
14149
14178
  setPendingRow(rows, status) {
14150
- const pendingMaps = {
14151
- ...reactData.pendingRowMaps
14152
- };
14153
- const pendingList = [...reactData.pendingRowList];
14179
+ const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
14154
14180
  if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
14155
14181
  rows = [rows];
14156
14182
  }
@@ -14158,7 +14184,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14158
14184
  rows.forEach(row => {
14159
14185
  const rowid = getRowid($xeTable, row);
14160
14186
  if (rowid && !pendingMaps[rowid]) {
14161
- pendingList.push(row);
14162
14187
  pendingMaps[rowid] = row;
14163
14188
  }
14164
14189
  });
@@ -14166,23 +14191,15 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14166
14191
  rows.forEach(row => {
14167
14192
  const rowid = getRowid($xeTable, row);
14168
14193
  if (rowid && pendingMaps[rowid]) {
14169
- const pendingIndex = $xeTable.findRowIndexOf(pendingList, row);
14170
- if (pendingIndex > -1) {
14171
- pendingList.splice(pendingIndex, 1);
14172
- }
14173
14194
  delete pendingMaps[rowid];
14174
14195
  }
14175
14196
  });
14176
14197
  }
14177
14198
  reactData.pendingRowMaps = pendingMaps;
14178
- reactData.pendingRowList = pendingList;
14179
14199
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
14180
14200
  },
14181
14201
  togglePendingRow(rows) {
14182
- const pendingMaps = {
14183
- ...reactData.pendingRowMaps
14184
- };
14185
- const pendingList = [...reactData.pendingRowList];
14202
+ const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
14186
14203
  if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
14187
14204
  rows = [rows];
14188
14205
  }
@@ -14190,19 +14207,13 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14190
14207
  const rowid = getRowid($xeTable, row);
14191
14208
  if (rowid) {
14192
14209
  if (pendingMaps[rowid]) {
14193
- const pendingIndex = $xeTable.findRowIndexOf(pendingList, row);
14194
- if (pendingIndex > -1) {
14195
- pendingList.splice(pendingIndex, 1);
14196
- }
14197
14210
  delete pendingMaps[rowid];
14198
14211
  } else {
14199
- pendingList.push(row);
14200
14212
  pendingMaps[rowid] = row;
14201
14213
  }
14202
14214
  }
14203
14215
  });
14204
14216
  reactData.pendingRowMaps = pendingMaps;
14205
- reactData.pendingRowList = pendingList;
14206
14217
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
14207
14218
  },
14208
14219
  hasPendingByRow(row) {
@@ -14217,13 +14228,21 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14217
14228
  },
14218
14229
  getPendingRecords() {
14219
14230
  const {
14220
- pendingRowList
14231
+ pendingRowMaps
14221
14232
  } = reactData;
14222
- return pendingRowList.slice(0);
14233
+ const {
14234
+ fullAllDataRowIdData
14235
+ } = internalData;
14236
+ const insertRecords = [];
14237
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(pendingRowMaps, (row, rowid) => {
14238
+ if (fullAllDataRowIdData[rowid]) {
14239
+ insertRecords.push(row);
14240
+ }
14241
+ });
14242
+ return insertRecords;
14223
14243
  },
14224
14244
  clearPendingRow() {
14225
14245
  reactData.pendingRowMaps = {};
14226
- reactData.pendingRowList = [];
14227
14246
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
14228
14247
  },
14229
14248
  sort(sortConfs, sortOrder) {
@@ -16984,6 +17003,20 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
16984
17003
  }
16985
17004
  }
16986
17005
  }
17006
+ // 如果是双击编辑模式
17007
+ if (isEnableConf(editConfig) && editOpts.trigger === 'dblclick') {
17008
+ if (actived.row && actived.column) {
17009
+ if (editOpts.mode === 'row') {
17010
+ if (!$xeTable.eqRow(actived.row, row)) {
17011
+ $xeTable.handleClearEdit(evnt);
17012
+ }
17013
+ } else if (editOpts.mode === 'cell') {
17014
+ if (!$xeTable.eqRow(actived.row, row) || actived.column.id !== column.id) {
17015
+ $xeTable.handleClearEdit(evnt);
17016
+ }
17017
+ }
17018
+ }
17019
+ }
16987
17020
  dispatchEvent('cell-click', params, evnt);
16988
17021
  },
16989
17022
  /**
@@ -17303,6 +17336,91 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
17303
17336
  $xeTable.handleColumnSortEvent(evnt, column);
17304
17337
  }
17305
17338
  },
17339
+ /**
17340
+ * 表头单元格按下事件
17341
+ */
17342
+ triggerHeaderCellMousedownEvent(evnt, params) {
17343
+ const {
17344
+ mouseConfig
17345
+ } = props;
17346
+ const mouseOpts = computeMouseOpts.value;
17347
+ const columnOpts = computeColumnOpts.value;
17348
+ const columnDragOpts = computeColumnDragOpts.value;
17349
+ const {
17350
+ trigger,
17351
+ disabledMethod
17352
+ } = columnDragOpts;
17353
+ const cell = evnt.currentTarget;
17354
+ const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
17355
+ const triggerCheckbox = getEventTargetNode(evnt, cell, 'vxe-cell--checkbox').flag;
17356
+ const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
17357
+ const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
17358
+ let triggerDrag = false;
17359
+ if (!(triggerInput || triggerCheckbox || triggerSort || triggerFilter)) {
17360
+ if (columnOpts.drag && trigger === 'cell' && !(disabledMethod && disabledMethod(params))) {
17361
+ triggerDrag = true;
17362
+ $xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
17363
+ }
17364
+ }
17365
+ if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaEvent) {
17366
+ $xeTable.handleHeaderCellAreaEvent(evnt, Object.assign({
17367
+ cell,
17368
+ triggerSort,
17369
+ triggerFilter
17370
+ }, params));
17371
+ }
17372
+ $xeTable.focus();
17373
+ if ($xeTable.closeMenu) {
17374
+ $xeTable.closeMenu();
17375
+ }
17376
+ },
17377
+ /**
17378
+ * 单元格按下事件
17379
+ */
17380
+ triggerCellMousedownEvent(evnt, params) {
17381
+ const {
17382
+ column
17383
+ } = params;
17384
+ const {
17385
+ type,
17386
+ treeNode
17387
+ } = column;
17388
+ const isRadioType = type === 'radio';
17389
+ const isCheckboxType = type === 'checkbox';
17390
+ const isExpandType = type === 'expand';
17391
+ const rowOpts = computeRowOpts.value;
17392
+ const rowDragOpts = computeRowDragOpts.value;
17393
+ const {
17394
+ trigger,
17395
+ disabledMethod
17396
+ } = rowDragOpts;
17397
+ const cell = evnt.currentTarget;
17398
+ params.cell = cell;
17399
+ const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
17400
+ const triggerRadio = isRadioType && getEventTargetNode(evnt, cell, 'vxe-cell--radio').flag;
17401
+ const triggerCheckbox = isCheckboxType && getEventTargetNode(evnt, cell, 'vxe-cell--checkbox').flag;
17402
+ const triggerTreeNode = treeNode && getEventTargetNode(evnt, cell, 'vxe-tree--btn-wrapper').flag;
17403
+ const triggerExpandNode = isExpandType && getEventTargetNode(evnt, cell, 'vxe-table--expanded').flag;
17404
+ let isColDragCell = false;
17405
+ if (rowOpts.drag) {
17406
+ isColDragCell = trigger === 'row' || column.dragSort && trigger === 'cell';
17407
+ }
17408
+ let triggerDrag = false;
17409
+ if (!(triggerInput || triggerRadio || triggerCheckbox || triggerTreeNode || triggerExpandNode)) {
17410
+ if (isColDragCell && !(disabledMethod && disabledMethod(params))) {
17411
+ triggerDrag = true;
17412
+ $xeTable.handleCellDragMousedownEvent(evnt, params);
17413
+ }
17414
+ }
17415
+ if (!triggerDrag && $xeTable.handleCellMousedownEvent) {
17416
+ $xeTable.handleCellMousedownEvent(evnt, params);
17417
+ }
17418
+ $xeTable.focus();
17419
+ $xeTable.closeFilter();
17420
+ if ($xeTable.closeMenu) {
17421
+ $xeTable.closeMenu();
17422
+ }
17423
+ },
17306
17424
  /**
17307
17425
  * 行拖拽
17308
17426
  */
@@ -17552,21 +17670,22 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
17552
17670
  }
17553
17671
  },
17554
17672
  handleCellDragMousedownEvent(evnt, params) {
17673
+ evnt.stopPropagation();
17555
17674
  const {
17556
17675
  dragConfig
17557
17676
  } = props;
17558
17677
  const rowDragOpts = computeRowDragOpts.value;
17559
17678
  const {
17679
+ trigger,
17560
17680
  dragStartMethod
17561
17681
  } = rowDragOpts;
17562
17682
  const {
17563
17683
  row
17564
17684
  } = params;
17565
17685
  const dragEl = evnt.currentTarget;
17566
- const tdEl = dragEl.parentElement?.parentElement;
17686
+ const tdEl = trigger === 'cell' || trigger === 'row' ? dragEl : dragEl.parentElement?.parentElement;
17567
17687
  const trEl = tdEl.parentElement;
17568
17688
  const dStartMethod = dragStartMethod || (dragConfig ? dragConfig.dragStartMethod : null);
17569
- reactData.isDragRowMove = false;
17570
17689
  clearRowDropOrigin();
17571
17690
  if (dStartMethod && !dStartMethod(params)) {
17572
17691
  trEl.draggable = false;
@@ -17820,15 +17939,17 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
17820
17939
  }
17821
17940
  },
17822
17941
  handleHeaderCellDragMousedownEvent(evnt, params) {
17942
+ evnt.stopPropagation();
17823
17943
  const columnDragOpts = computeColumnDragOpts.value;
17824
17944
  const {
17945
+ trigger,
17825
17946
  dragStartMethod
17826
17947
  } = columnDragOpts;
17827
17948
  const {
17828
17949
  column
17829
17950
  } = params;
17830
17951
  const dragEl = evnt.currentTarget;
17831
- const thEl = dragEl.parentElement?.parentElement;
17952
+ const thEl = trigger === 'cell' ? dragEl : dragEl.parentElement?.parentElement;
17832
17953
  reactData.isDragColMove = false;
17833
17954
  clearColDropOrigin();
17834
17955
  if (dragStartMethod && !dragStartMethod(params)) {
@@ -17917,6 +18038,8 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
17917
18038
  }
17918
18039
  internalData.lastScrollTop = scrollTop;
17919
18040
  }
18041
+ reactData.isDragColMove = false;
18042
+ reactData.isDragRowMove = false;
17920
18043
  reactData.lastScrollTime = Date.now();
17921
18044
  const evntParams = {
17922
18045
  scrollTop,
@@ -18425,6 +18548,7 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
18425
18548
  const resizableOpts = computeResizableOpts.value;
18426
18549
  const isArea = mouseConfig && mouseOpts.area;
18427
18550
  const tableStyle = computeTableStyle.value;
18551
+ const columnDragOpts = computeColumnDragOpts.value;
18428
18552
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
18429
18553
  ref: refElem,
18430
18554
  class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
@@ -18441,6 +18565,7 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
18441
18565
  'column--highlight': columnOpts.isHover || highlightHoverColumn,
18442
18566
  'checkbox--range': checkboxOpts.range,
18443
18567
  'column--calc': isCalcColumn,
18568
+ 'col--drag-cell': columnOpts.drag && columnDragOpts.trigger === 'cell',
18444
18569
  'is--header': showHeader,
18445
18570
  'is--footer': showFooter,
18446
18571
  'is--group': isGroup,
@@ -18661,7 +18786,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
18661
18786
  });
18662
18787
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(dataFlag, () => {
18663
18788
  const {
18664
- inited,
18665
18789
  initStatus
18666
18790
  } = internalData;
18667
18791
  loadTableData(props.data || []).then(() => {
@@ -18675,9 +18799,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
18675
18799
  if (!initStatus) {
18676
18800
  handleLoadDefaults();
18677
18801
  }
18678
- if (!inited) {
18679
- handleInitDefaults();
18680
- }
18681
18802
  if (true) {
18682
18803
  // const checkboxOpts = computeCheckboxOpts.value
18683
18804
  // const checkboxColumn = internalData.tableFullColumn.find(column => column.type === 'checkbox')
@@ -18953,7 +19074,7 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
18953
19074
  if (props.editRules && !$xeTable.validate) {
18954
19075
  errLog('vxe.error.reqModule', ['Validator']);
18955
19076
  }
18956
- if ((checkboxOpts.range || props.keyboardConfig || props.mouseConfig) && !$xeTable.triggerCellMousedownEvent) {
19077
+ if ((checkboxOpts.range || props.keyboardConfig || props.mouseConfig) && !$xeTable.handleCellMousedownEvent) {
18957
19078
  errLog('vxe.error.reqModule', ['Keyboard']);
18958
19079
  }
18959
19080
  if ((props.printConfig || props.importConfig || props.exportConfig) && !$xeTable.exportData) {
@@ -18976,8 +19097,8 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
18976
19097
  internalData.inited = true;
18977
19098
  internalData.initStatus = true;
18978
19099
  handleLoadDefaults();
18979
- handleInitDefaults();
18980
19100
  }
19101
+ handleInitDefaults();
18981
19102
  updateStyle();
18982
19103
  });
18983
19104
  if (props.autoResize) {
@@ -19021,7 +19142,6 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
19021
19142
  $table: $xeTable
19022
19143
  });
19023
19144
  });
19024
- window.aaaa = $xeTable;
19025
19145
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {
19026
19146
  if (resizeObserver) {
19027
19147
  resizeObserver.disconnect();
@@ -20441,9 +20561,10 @@ edit_hook_hooks.add('tableEditModule', {
20441
20561
  const childrenField = treeOpts.children || treeOpts.childrenField;
20442
20562
  const {
20443
20563
  actived,
20444
- removeMaps,
20445
- insertMaps
20564
+ removeMaps
20446
20565
  } = editStore;
20566
+ const insertDataRowMaps = Object.assign({}, editStore.insertMaps);
20567
+ const pendingDataRowMaps = Object.assign({}, reactData.pendingRowMaps);
20447
20568
  const {
20448
20569
  checkField
20449
20570
  } = checkboxOpts;
@@ -20535,10 +20656,15 @@ edit_hook_hooks.add('tableEditModule', {
20535
20656
  // 从新增中移除已删除的数据
20536
20657
  rows.forEach(row => {
20537
20658
  const rowid = getRowid($xeTable, row);
20538
- if (insertMaps[rowid]) {
20539
- delete insertMaps[rowid];
20659
+ if (insertDataRowMaps[rowid]) {
20660
+ delete insertDataRowMaps[rowid];
20661
+ }
20662
+ if (pendingDataRowMaps[rowid]) {
20663
+ delete pendingDataRowMaps[rowid];
20540
20664
  }
20541
20665
  });
20666
+ editStore.insertMaps = insertDataRowMaps;
20667
+ reactData.pendingRowMaps = pendingDataRowMaps;
20542
20668
  $xeTable.updateFooter();
20543
20669
  $xeTable.cacheRowMap();
20544
20670
  $xeTable.handleTableData(treeConfig && transform);
@@ -23216,42 +23342,7 @@ keyboard_hook_hooks.add('tableKeyboardModule', {
23216
23342
  $xeTable.handleSelected(params, evnt);
23217
23343
  });
23218
23344
  },
23219
- /**
23220
- * 表头单元格按下事件
23221
- */
23222
- triggerHeaderCellMousedownEvent(evnt, params) {
23223
- const {
23224
- mouseConfig
23225
- } = props;
23226
- const mouseOpts = computeMouseOpts.value;
23227
- if (mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaEvent) {
23228
- const cell = evnt.currentTarget;
23229
- const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
23230
- const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
23231
- $xeTable.handleHeaderCellAreaEvent(evnt, Object.assign({
23232
- cell,
23233
- triggerSort,
23234
- triggerFilter
23235
- }, params));
23236
- }
23237
- $xeTable.focus();
23238
- if ($xeTable.closeMenu) {
23239
- $xeTable.closeMenu();
23240
- }
23241
- },
23242
- /**
23243
- * 单元格按下事件
23244
- */
23245
- triggerCellMousedownEvent(evnt, params) {
23246
- const cell = evnt.currentTarget;
23247
- params.cell = cell;
23248
- handleCellMousedownEvent(evnt, params);
23249
- $xeTable.focus();
23250
- $xeTable.closeFilter();
23251
- if ($xeTable.closeMenu) {
23252
- $xeTable.closeMenu();
23253
- }
23254
- }
23345
+ handleCellMousedownEvent
23255
23346
  };
23256
23347
  return keyboardMethods;
23257
23348
  }
@@ -26074,6 +26165,10 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
26074
26165
  }
26075
26166
  return grid_getConfig().grid.layouts || ['Form', 'Toolbar', 'Top', 'Table', 'Bottom', 'Pager'];
26076
26167
  });
26168
+ const computePageConfFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
26169
+ const pagerOpts = computePagerOpts.value;
26170
+ return `${pagerOpts.currentPage}${pagerOpts.pageSize}`;
26171
+ });
26077
26172
  const refMaps = {
26078
26173
  refElem,
26079
26174
  refTable,
@@ -26293,7 +26388,9 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
26293
26388
  $event
26294
26389
  } = params;
26295
26390
  const proxyOpts = computeProxyOpts.value;
26391
+ const $xeTable = refTable.value;
26296
26392
  if (proxyConfig && isEnableConf(proxyOpts)) {
26393
+ $xeTable.clearScroll();
26297
26394
  gridMethods.commitProxy('reload').then(rest => {
26298
26395
  gridMethods.dispatchEvent('proxy-query', {
26299
26396
  ...rest,
@@ -27307,7 +27404,7 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
27307
27404
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.toolbarConfig, () => {
27308
27405
  initToolbar();
27309
27406
  });
27310
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.pagerConfig, () => {
27407
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computePageConfFlag, () => {
27311
27408
  initPages();
27312
27409
  });
27313
27410
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.proxyConfig, () => {