vxe-table 4.1.6 → 4.1.9

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 (53) hide show
  1. package/es/button/src/button.js +14 -14
  2. package/es/edit/src/hook.js +3 -3
  3. package/es/export/src/hook.js +17 -6
  4. package/es/filter/src/hook.js +20 -1
  5. package/es/grid/src/grid.js +6 -2
  6. package/es/table/src/body.js +11 -14
  7. package/es/table/src/cell.js +16 -14
  8. package/es/table/src/props.js +6 -6
  9. package/es/table/src/table.js +102 -89
  10. package/es/table/src/util.js +3 -0
  11. package/es/tools/dom.js +2 -8
  12. package/es/v-x-e-table/src/conf.js +3 -0
  13. package/lib/button/src/button.js +15 -14
  14. package/lib/button/src/button.min.js +1 -1
  15. package/lib/edit/src/hook.js +3 -0
  16. package/lib/edit/src/hook.min.js +1 -1
  17. package/lib/export/src/hook.js +25 -10
  18. package/lib/export/src/hook.min.js +1 -1
  19. package/lib/filter/src/hook.js +23 -0
  20. package/lib/filter/src/hook.min.js +1 -1
  21. package/lib/grid/src/grid.js +6 -3
  22. package/lib/grid/src/grid.min.js +1 -1
  23. package/lib/index.umd.js +307 -208
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/table/src/body.js +8 -16
  26. package/lib/table/src/body.min.js +1 -1
  27. package/lib/table/src/cell.js +16 -16
  28. package/lib/table/src/cell.min.js +1 -1
  29. package/lib/table/src/props.js +6 -6
  30. package/lib/table/src/table.js +158 -114
  31. package/lib/table/src/table.min.js +1 -1
  32. package/lib/table/src/util.js +7 -0
  33. package/lib/table/src/util.min.js +1 -1
  34. package/lib/tools/dom.js +2 -9
  35. package/lib/tools/dom.min.js +1 -1
  36. package/lib/v-x-e-table/src/conf.js +3 -0
  37. package/lib/v-x-e-table/src/conf.min.js +1 -1
  38. package/package.json +1 -1
  39. package/packages/button/src/button.ts +14 -14
  40. package/packages/edit/src/hook.ts +3 -3
  41. package/packages/export/src/hook.ts +17 -6
  42. package/packages/filter/src/hook.ts +20 -1
  43. package/packages/grid/src/grid.ts +6 -2
  44. package/packages/table/src/body.ts +11 -14
  45. package/packages/table/src/cell.ts +16 -14
  46. package/packages/table/src/props.ts +6 -6
  47. package/packages/table/src/table.ts +102 -89
  48. package/packages/table/src/util.ts +4 -0
  49. package/packages/tools/dom.ts +2 -7
  50. package/packages/v-x-e-table/src/conf.ts +3 -0
  51. package/types/filter.d.ts +5 -0
  52. package/types/plugins/pro.d.ts +5 -0
  53. package/types/table.d.ts +12 -2
@@ -27,7 +27,7 @@ import Cell from './cell';
27
27
  import TableBodyComponent from './body';
28
28
  import tableProps from './props';
29
29
  import tableEmits from './emits';
30
- import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, restoreScrollLocation, restoreScrollListener } from './util';
30
+ import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, restoreScrollListener } from './util';
31
31
  var isWebkit = browse['-webkit'] && !browse.edge;
32
32
  var resizableStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_WIDTH';
33
33
  var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
@@ -276,8 +276,9 @@ export default defineComponent({
276
276
  tableFullColumn: [],
277
277
  // 渲染所有列
278
278
  visibleColumn: [],
279
- // 缓存数据集
279
+ // 总的缓存数据集
280
280
  fullAllDataRowIdData: {},
281
+ // 渲染中缓存数据
281
282
  fullDataRowIdData: {},
282
283
  fullColumnIdData: {},
283
284
  fullColumnFieldData: {},
@@ -1081,18 +1082,52 @@ export default defineComponent({
1081
1082
  return cellValue;
1082
1083
  };
1083
1084
  };
1085
+ /**
1086
+ * 预编译
1087
+ * 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
1088
+ */
1084
1089
  var updateAfterDataIndex = function () {
1085
- var afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData;
1086
- afterFullData.forEach(function (row, _index) {
1087
- var rowid = getRowid($xetable, row);
1088
- var rest = fullDataRowIdData[rowid];
1089
- if (rest) {
1090
- rest._index = _index;
1091
- }
1092
- else {
1093
- fullDataRowIdData[rowid] = { row: row, rowid: rowid, index: -1, $index: -1, _index: _index, items: [], parent: null, level: 0 };
1094
- }
1095
- });
1090
+ var treeConfig = props.treeConfig;
1091
+ var afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
1092
+ var treeFullData = internalData.treeFullData;
1093
+ var treeOpts = computeTreeOpts.value;
1094
+ if (treeConfig) {
1095
+ XEUtils.eachTree(treeFullData, function (row, index, items, path) {
1096
+ var rowid = getRowid($xetable, row);
1097
+ var allrest = fullAllDataRowIdData[rowid];
1098
+ var fullrest = fullDataRowIdData[rowid];
1099
+ var seq = path.map(function (num, i) { return i % 2 === 0 ? (Number(num) + 1) : '.'; }).join('');
1100
+ if (allrest) {
1101
+ allrest.seq = seq;
1102
+ }
1103
+ if (fullrest) {
1104
+ fullrest.seq = seq;
1105
+ }
1106
+ else {
1107
+ fullAllDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
1108
+ fullDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
1109
+ }
1110
+ }, treeOpts);
1111
+ }
1112
+ else {
1113
+ afterFullData.forEach(function (row, index) {
1114
+ var rowid = getRowid($xetable, row);
1115
+ var allrest = fullAllDataRowIdData[rowid];
1116
+ var fullrest = fullDataRowIdData[rowid];
1117
+ var seq = index + 1;
1118
+ if (allrest) {
1119
+ allrest.seq = seq;
1120
+ }
1121
+ if (fullrest) {
1122
+ fullrest.seq = seq;
1123
+ fullrest._index = index;
1124
+ }
1125
+ else {
1126
+ fullAllDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
1127
+ fullDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
1128
+ }
1129
+ });
1130
+ }
1096
1131
  };
1097
1132
  /**
1098
1133
  * 获取处理后全量的表格数据
@@ -2016,11 +2051,11 @@ export default defineComponent({
2016
2051
  tableMethods.clearMergeFooterItems();
2017
2052
  }
2018
2053
  reactData.scrollXLoad = scrollXLoad;
2019
- visibleColumn.forEach(function (column, _index) {
2054
+ visibleColumn.forEach(function (column, index) {
2020
2055
  var colid = column.id;
2021
2056
  var rest = fullColumnIdData[colid];
2022
2057
  if (rest) {
2023
- rest._index = _index;
2058
+ rest._index = index;
2024
2059
  }
2025
2060
  });
2026
2061
  internalData.visibleColumn = visibleColumn;
@@ -2173,6 +2208,31 @@ export default defineComponent({
2173
2208
  }
2174
2209
  }
2175
2210
  };
2211
+ var createGetRowCacheProp = function (prop) {
2212
+ return function (row) {
2213
+ var fullDataRowIdData = internalData.fullDataRowIdData;
2214
+ if (row) {
2215
+ var rowid = getRowid($xetable, row);
2216
+ var rest = fullDataRowIdData[rowid];
2217
+ if (rest) {
2218
+ return rest[prop];
2219
+ }
2220
+ }
2221
+ return -1;
2222
+ };
2223
+ };
2224
+ var createGetColumnCacheProp = function (prop) {
2225
+ return function (column) {
2226
+ var fullColumnIdData = internalData.fullColumnIdData;
2227
+ if (column) {
2228
+ var rest = fullColumnIdData[column.id];
2229
+ if (rest) {
2230
+ return rest[prop];
2231
+ }
2232
+ }
2233
+ return -1;
2234
+ };
2235
+ };
2176
2236
  var debounceScrollY = XEUtils.debounce(function (evnt) {
2177
2237
  loadScrollYData(evnt);
2178
2238
  }, 20, { leading: false, trailing: true });
@@ -2298,7 +2358,7 @@ export default defineComponent({
2298
2358
  }
2299
2359
  XEUtils.eachTree(rows, function (childRow, index, items, path, parent, nodes) {
2300
2360
  var rowid = getRowid($xetable, childRow);
2301
- var rest = { row: childRow, rowid: rowid, index: -1, _index: -1, $index: -1, items: items, parent: parent, level: parentLevel + nodes.length };
2361
+ var rest = { row: childRow, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: items, parent: parent, level: parentLevel + nodes.length };
2302
2362
  fullDataRowIdData[rowid] = rest;
2303
2363
  fullAllDataRowIdData[rowid] = rest;
2304
2364
  }, treeOpts);
@@ -2359,93 +2419,41 @@ export default defineComponent({
2359
2419
  }
2360
2420
  return null;
2361
2421
  },
2422
+ /**
2423
+ * 根据 row 获取序号
2424
+ * @param {Row} row 行对象
2425
+ */
2426
+ getRowSeq: createGetRowCacheProp('seq'),
2362
2427
  /**
2363
2428
  * 根据 row 获取相对于 data 中的索引
2364
2429
  * @param {Row} row 行对象
2365
2430
  */
2366
- getRowIndex: function (row) {
2367
- var fullDataRowIdData = internalData.fullDataRowIdData;
2368
- if (row) {
2369
- var rowid = getRowid($xetable, row);
2370
- var rest = fullDataRowIdData[rowid];
2371
- if (rest) {
2372
- return rest.index;
2373
- }
2374
- }
2375
- return -1;
2376
- },
2431
+ getRowIndex: createGetRowCacheProp('index'),
2377
2432
  /**
2378
2433
  * 根据 row 获取相对于当前数据中的索引
2379
2434
  * @param {Row} row 行对象
2380
2435
  */
2381
- getVTRowIndex: function (row) {
2382
- var fullDataRowIdData = internalData.fullDataRowIdData;
2383
- if (row) {
2384
- var rowid = getRowid($xetable, row);
2385
- var rest = fullDataRowIdData[rowid];
2386
- if (rest) {
2387
- return rest._index;
2388
- }
2389
- }
2390
- return -1;
2391
- },
2436
+ getVTRowIndex: createGetRowCacheProp('_index'),
2392
2437
  /**
2393
2438
  * 根据 row 获取渲染中的虚拟索引
2394
2439
  * @param {Row} row 行对象
2395
2440
  */
2396
- getVMRowIndex: function (row) {
2397
- var fullDataRowIdData = internalData.fullDataRowIdData;
2398
- if (row) {
2399
- var rowid = getRowid($xetable, row);
2400
- var rest = fullDataRowIdData[rowid];
2401
- if (rest) {
2402
- return rest.$index;
2403
- }
2404
- }
2405
- return -1;
2406
- },
2441
+ getVMRowIndex: createGetRowCacheProp('$index'),
2407
2442
  /**
2408
2443
  * 根据 column 获取相对于 columns 中的索引
2409
2444
  * @param {ColumnInfo} column 列配置
2410
2445
  */
2411
- getColumnIndex: function (column) {
2412
- var fullColumnIdData = internalData.fullColumnIdData;
2413
- if (column) {
2414
- var rest = fullColumnIdData[column.id];
2415
- if (rest) {
2416
- return rest.index;
2417
- }
2418
- }
2419
- return -1;
2420
- },
2446
+ getColumnIndex: createGetColumnCacheProp('index'),
2421
2447
  /**
2422
2448
  * 根据 column 获取相对于当前表格列中的索引
2423
2449
  * @param {ColumnInfo} column 列配置
2424
2450
  */
2425
- getVTColumnIndex: function (column) {
2426
- var fullColumnIdData = internalData.fullColumnIdData;
2427
- if (column) {
2428
- var rest = fullColumnIdData[column.id];
2429
- if (rest) {
2430
- return rest._index;
2431
- }
2432
- }
2433
- return -1;
2434
- },
2451
+ getVTColumnIndex: createGetColumnCacheProp('_index'),
2435
2452
  /**
2436
2453
  * 根据 column 获取渲染中的虚拟索引
2437
2454
  * @param {ColumnInfo} column 列配置
2438
2455
  */
2439
- getVMColumnIndex: function (column) {
2440
- var fullColumnIdData = internalData.fullColumnIdData;
2441
- if (column) {
2442
- var rest = fullColumnIdData[column.id];
2443
- if (rest) {
2444
- return rest.$index;
2445
- }
2446
- }
2447
- return -1;
2448
- },
2456
+ getVMColumnIndex: createGetColumnCacheProp('$index'),
2449
2457
  /**
2450
2458
  * 创建 data 对象
2451
2459
  * 对于某些特殊场景可能会用到,会自动对数据的字段名进行检测,如果不存在就自动定义
@@ -3203,7 +3211,7 @@ export default defineComponent({
3203
3211
  }
3204
3212
  }
3205
3213
  else {
3206
- if (afterFullData.indexOf(selectRow) > -1) {
3214
+ if ($xetable.findRowIndexOf(afterFullData, selectRow) > -1) {
3207
3215
  return selectRow;
3208
3216
  }
3209
3217
  }
@@ -3972,6 +3980,7 @@ export default defineComponent({
3972
3980
  var mouseConfig = props.mouseConfig, keyboardConfig = props.keyboardConfig;
3973
3981
  var filterStore = reactData.filterStore, ctxMenuStore = reactData.ctxMenuStore, editStore = reactData.editStore;
3974
3982
  var mouseOpts = computeMouseOpts.value;
3983
+ var keyboardOpts = computeKeyboardOpts.value;
3975
3984
  var actived = editStore.actived;
3976
3985
  var isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE);
3977
3986
  if (isEsc) {
@@ -3986,13 +3995,15 @@ export default defineComponent({
3986
3995
  $xetable.closeMenu();
3987
3996
  }
3988
3997
  tableMethods.closeFilter();
3989
- // 如果是激活编辑状态,则取消编辑
3990
- if (actived.row) {
3991
- var params_1 = actived.args;
3992
- $xetable.clearActived(evnt);
3993
- // 如果配置了选中功能,则为选中状态
3994
- if (mouseOpts.selected) {
3995
- nextTick(function () { return $xetable.handleSelected(params_1, evnt); });
3998
+ if (keyboardConfig && keyboardOpts.isEsc) {
3999
+ // 如果是激活编辑状态,则取消编辑
4000
+ if (actived.row) {
4001
+ var params_1 = actived.args;
4002
+ $xetable.clearActived(evnt);
4003
+ // 如果配置了选中功能,则为选中状态
4004
+ if (mouseOpts.selected) {
4005
+ nextTick(function () { return $xetable.handleSelected(params_1, evnt); });
4006
+ }
3996
4007
  }
3997
4008
  }
3998
4009
  }
@@ -4058,7 +4069,7 @@ export default defineComponent({
4058
4069
  $xetable.closeMenu();
4059
4070
  }
4060
4071
  tableMethods.closeFilter();
4061
- if (actived.row) {
4072
+ if (keyboardConfig && keyboardOpts.isEsc) {
4062
4073
  // 如果是激活编辑状态,则取消编辑
4063
4074
  if (actived.row) {
4064
4075
  var params_2 = actived.args;
@@ -4460,6 +4471,8 @@ export default defineComponent({
4460
4471
  var isLazy = treeConfig && treeOpts.lazy;
4461
4472
  var handleCache = function (row, index, items, path, parent, nodes) {
4462
4473
  var rowid = getRowid($xetable, row);
4474
+ var seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
4475
+ var level = nodes ? nodes.length - 1 : 0;
4463
4476
  if (eqEmptyValue(rowid)) {
4464
4477
  rowid = getRowUniqueId();
4465
4478
  XEUtils.set(row, rowkey, rowid);
@@ -4467,7 +4480,7 @@ export default defineComponent({
4467
4480
  if (isLazy && row[treeOpts.hasChild] && XEUtils.isUndefined(row[treeOpts.children])) {
4468
4481
  row[treeOpts.children] = null;
4469
4482
  }
4470
- var rest = { row: row, rowid: rowid, index: treeConfig && parent ? -1 : index, _index: -1, $index: -1, items: items, parent: parent, level: nodes ? nodes.length - 1 : 0 };
4483
+ var rest = { row: row, rowid: rowid, seq: seq, index: treeConfig && parent ? -1 : index, _index: -1, $index: -1, items: items, parent: parent, level: level };
4471
4484
  if (isSource) {
4472
4485
  fullDataRowIdData[rowid] = rest;
4473
4486
  }
@@ -77,6 +77,9 @@ export function toFilters(filters) {
77
77
  }
78
78
  return filters;
79
79
  }
80
+ export function toTreePathSeq(path) {
81
+ return path.map(function (num, i) { return i % 2 === 0 ? (Number(num) + 1) : '.'; }).join('');
82
+ }
80
83
  export function getCellValue(row, column) {
81
84
  return XEUtils.get(row, column.property);
82
85
  }
package/es/tools/dom.js CHANGED
@@ -123,13 +123,7 @@ export function scrollToView(elem) {
123
123
  }
124
124
  }
125
125
  export function triggerEvent(targetElem, type) {
126
- var evnt;
127
- if (typeof Event === 'function') {
128
- evnt = new Event(type);
126
+ if (targetElem) {
127
+ targetElem.dispatchEvent(new Event(type));
129
128
  }
130
- else {
131
- evnt = document.createEvent('Event');
132
- evnt.initEvent(type, true, true);
133
- }
134
- targetElem.dispatchEvent(evnt);
135
129
  }
@@ -90,6 +90,9 @@ var GlobalConfig = {
90
90
  mouseConfig: {
91
91
  extension: true
92
92
  },
93
+ keyboardConfig: {
94
+ isEsc: true
95
+ },
93
96
  areaConfig: {
94
97
  selectCellByHeader: true
95
98
  },
@@ -175,48 +175,49 @@ var _default2 = (0, _vue.defineComponent)({
175
175
  };
176
176
 
177
177
  var _a = (0, _dom.getAbsolutePos)(targetElem),
178
+ top_1 = _a.top,
179
+ left = _a.left,
178
180
  boundingTop = _a.boundingTop,
179
- boundingLeft = _a.boundingLeft,
180
181
  visibleHeight = _a.visibleHeight,
181
182
  visibleWidth = _a.visibleWidth;
182
183
 
183
184
  var panelPlacement = 'bottom';
184
185
 
185
186
  if (transfer) {
186
- var left = boundingLeft + targetWidth - panelWidth;
187
- var top_1 = boundingTop + targetHeight;
187
+ var btnLeft = left + targetWidth - panelWidth;
188
+ var btnTop = top_1 + targetHeight;
188
189
 
189
190
  if (placement === 'top') {
190
191
  panelPlacement = 'top';
191
- top_1 = boundingTop - panelHeight;
192
+ btnTop = top_1 - panelHeight;
192
193
  } else if (!placement) {
193
194
  // 如果下面不够放,则向上
194
- if (top_1 + panelHeight + marginSize > visibleHeight) {
195
+ if (boundingTop + targetHeight + panelHeight + marginSize > visibleHeight) {
195
196
  panelPlacement = 'top';
196
- top_1 = boundingTop - panelHeight;
197
+ btnTop = top_1 - panelHeight;
197
198
  } // 如果上面不够放,则向下(优先)
198
199
 
199
200
 
200
- if (top_1 < marginSize) {
201
+ if (btnTop < marginSize) {
201
202
  panelPlacement = 'bottom';
202
- top_1 = boundingTop + targetHeight;
203
+ btnTop = top_1 + targetHeight;
203
204
  }
204
205
  } // 如果溢出右边
205
206
 
206
207
 
207
- if (left + panelWidth + marginSize > visibleWidth) {
208
- left -= left + panelWidth + marginSize - visibleWidth;
208
+ if (btnLeft + panelWidth + marginSize > visibleWidth) {
209
+ btnLeft -= btnLeft + panelWidth + marginSize - visibleWidth;
209
210
  } // 如果溢出左边
210
211
 
211
212
 
212
- if (left < marginSize) {
213
- left = marginSize;
213
+ if (btnLeft < marginSize) {
214
+ btnLeft = marginSize;
214
215
  }
215
216
 
216
217
  Object.assign(panelStyle, {
217
- left: left + "px",
218
+ left: btnLeft + "px",
218
219
  right: 'auto',
219
- top: top_1 + "px",
220
+ top: btnTop + "px",
220
221
  minWidth: targetWidth + "px"
221
222
  });
222
223
  } else {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2=(0,_vue.defineComponent)({name:"VxeButton",props:{type:String,className:String,size:{type:String,default:function(){return _conf.default.button.size||_conf.default.size}},name:[String,Number],content:String,placement:String,status:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,destroyOnClose:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.button.transfer}}},emits:["click","dropdown-click"],setup:function(m,e){function _(e){u.dispatchEvent("click",{$event:e},e)}function b(e){0===e.button&&e.stopPropagation()}function h(e){var t=e.currentTarget,n=z.value,t=(o=(0,_dom.getEventTargetNode)(e,t,"vxe-button")).flag,o=o.targetElem;t&&(n&&(n.dataset.active="N"),P.showPanel=!1,setTimeout(function(){n&&"Y"===n.dataset.active||(P.animatVisible=!1)},350),u.dispatchEvent("dropdown-click",{name:o.getAttribute("name"),$event:e},e))}function x(){var e=z.value;e&&(e.dataset.active="Y",P.inited||(P.inited=!0),n.showTime=setTimeout(function(){"Y"===e.dataset.active?q():P.animatVisible=!1},250))}function g(){r()}function w(){var e=m.content,t=m.icon,n=[];return m.loading?n.push((0,_vue.h)("i",{class:["vxe-button--loading-icon",_conf.default.icon.BUTTON_LOADING]})):t&&n.push((0,_vue.h)("i",{class:["vxe-button--icon",t]})),T.default?n.push((0,_vue.h)("span",{class:"vxe-button--content"},T.default({}))):e&&n.push((0,_vue.h)("span",{class:"vxe-button--content"},(0,_utils.getFuncText)(e))),n}var T=e.slots,o=e.emit,t=_xeUtils.default.uniqueId(),y=(0,_size.useSize)(m),P=(0,_vue.reactive)({inited:!1,showPanel:!1,animatVisible:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),n={showTime:null},N=(0,_vue.ref)(),k=(0,_vue.ref)(),z=(0,_vue.ref)(),i={refElem:N},a={xID:t,props:m,context:e,reactData:P,internalData:n,getRefMaps:function(){return i}},u={},O=(0,_vue.computed)(function(){var e=m.type;return!!e&&-1<["submit","reset","button"].indexOf(e)}),S=(0,_vue.computed)(function(){var e=m.type;return e&&"text"===e?e:"button"}),s=function(){P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},l=function(){return(0,_vue.nextTick)().then(function(){var e=m.transfer,t=m.placement,n=P.panelIndex,o=k.value,i=z.value;if(i&&o){var a=o.offsetHeight,u=o.offsetWidth,s=i.offsetHeight,l=i.offsetWidth,r={zIndex:n},c=(0,_dom.getAbsolutePos)(o),d=c.boundingTop,i=c.boundingLeft,n=c.visibleHeight,o=c.visibleWidth,c="bottom";return e?(e=d+a,"top"===t?(c="top",e=d-s):t||(n<e+s+5&&(c="top",e=d-s),e<5&&(c="bottom",e=d+a)),o<(i=i+u-l)+l+5&&(i-=i+l+5-o),i<5&&(i=5),Object.assign(r,{left:i+"px",right:"auto",top:e+"px",minWidth:u+"px"})):"top"===t?(c="top",r.bottom=a+"px"):t||n<d+a+s&&5<d-a-s&&(c="top",r.bottom=a+"px"),P.panelStyle=r,P.panelPlacement=c,(0,_vue.nextTick)()}})},q=function(){var e=z.value;e&&(e.dataset.active="Y",P.animatVisible=!0,setTimeout(function(){"Y"===e.dataset.active&&(P.showPanel=!0,s(),l(),setTimeout(function(){P.showPanel&&l()},50))},20))},r=function(){var e=z.value;clearTimeout(n.showTime),e?(e.dataset.active="N",setTimeout(function(){"Y"!==e.dataset.active&&(P.showPanel=!1,setTimeout(function(){"Y"!==e.dataset.active&&(P.animatVisible=!1)},350))},100)):(P.animatVisible=!1,P.showPanel=!1)},u={dispatchEvent:function(e,t,n){o(e,Object.assign({$button:a,$event:n},t))},focus:function(){return k.value.focus(),(0,_vue.nextTick)()},blur:function(){return k.value.blur(),(0,_vue.nextTick)()}};Object.assign(a,u),(0,_vue.onMounted)(function(){_event.GlobalEvent.on(a,"mousewheel",function(e){var t=z.value;P.showPanel&&!(0,_dom.getEventTargetNode)(e,t).flag&&r()})}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(a,"mousewheel")});return a.renderVN=function(){var e=m.className,t=m.transfer,n=m.type,o=m.round,i=m.circle,a=m.destroyOnClose,u=m.status,s=m.name,l=m.disabled,r=m.loading,c=P.inited,d=P.showPanel,v=O.value,f=S.value,p=y.value;return T.dropdowns?(0,_vue.h)("div",{ref:N,class:["vxe-button--dropdown",e,((e={})["size--"+p]=p,e["is--active"]=d,e)]},[(0,_vue.h)("button",{ref:k,class:["vxe-button","type--"+f,((e={})["size--"+p]=p,e["theme--"+u]=u,e["is--round"]=o,e["is--circle"]=i,e["is--disabled"]=l||r,e["is--loading"]=r,e)],name:s,type:v?n:"button",disabled:l||r,onMouseenter:x,onMouseleave:g,onClick:_},w().concat([(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+_conf.default.icon.BUTTON_DROPDOWN})])),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!c},[(0,_vue.h)("div",{ref:z,class:["vxe-button--dropdown-panel",((t={})["size--"+p]=p,t["animat--leave"]=P.animatVisible,t["animat--enter"]=d,t)],placement:P.panelPlacement,style:P.panelStyle},c?[(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper",onMousedown:b,onClick:h,onMouseenter:q,onMouseleave:g},a&&!d?[]:T.dropdowns({}))]:[])])]):(0,_vue.h)("button",{ref:k,class:["vxe-button","type--"+f,((f={})["size--"+p]=p,f["theme--"+u]=u,f["is--round"]=o,f["is--circle"]=i,f["is--disabled"]=l||r,f["is--loading"]=r,f)],name:s,type:v?n:"button",disabled:l||r,onClick:_},w())},a},render:function(){return this.renderVN()}});exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2=(0,_vue.defineComponent)({name:"VxeButton",props:{type:String,className:String,size:{type:String,default:function(){return _conf.default.button.size||_conf.default.size}},name:[String,Number],content:String,placement:String,status:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,destroyOnClose:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.button.transfer}}},emits:["click","dropdown-click"],setup:function(m,e){function _(e){u.dispatchEvent("click",{$event:e},e)}function b(e){0===e.button&&e.stopPropagation()}function h(e){var t=e.currentTarget,n=z.value,t=(o=(0,_dom.getEventTargetNode)(e,t,"vxe-button")).flag,o=o.targetElem;t&&(n&&(n.dataset.active="N"),P.showPanel=!1,setTimeout(function(){n&&"Y"===n.dataset.active||(P.animatVisible=!1)},350),u.dispatchEvent("dropdown-click",{name:o.getAttribute("name"),$event:e},e))}function x(){var e=z.value;e&&(e.dataset.active="Y",P.inited||(P.inited=!0),n.showTime=setTimeout(function(){"Y"===e.dataset.active?q():P.animatVisible=!1},250))}function g(){r()}function w(){var e=m.content,t=m.icon,n=[];return m.loading?n.push((0,_vue.h)("i",{class:["vxe-button--loading-icon",_conf.default.icon.BUTTON_LOADING]})):t&&n.push((0,_vue.h)("i",{class:["vxe-button--icon",t]})),T.default?n.push((0,_vue.h)("span",{class:"vxe-button--content"},T.default({}))):e&&n.push((0,_vue.h)("span",{class:"vxe-button--content"},(0,_utils.getFuncText)(e))),n}var T=e.slots,o=e.emit,t=_xeUtils.default.uniqueId(),y=(0,_size.useSize)(m),P=(0,_vue.reactive)({inited:!1,showPanel:!1,animatVisible:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),n={showTime:null},N=(0,_vue.ref)(),k=(0,_vue.ref)(),z=(0,_vue.ref)(),i={refElem:N},a={xID:t,props:m,context:e,reactData:P,internalData:n,getRefMaps:function(){return i}},u={},O=(0,_vue.computed)(function(){var e=m.type;return!!e&&-1<["submit","reset","button"].indexOf(e)}),S=(0,_vue.computed)(function(){var e=m.type;return e&&"text"===e?e:"button"}),s=function(){P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},l=function(){return(0,_vue.nextTick)().then(function(){var e=m.transfer,t=m.placement,n=P.panelIndex,o=k.value,i=z.value;if(i&&o){var a=o.offsetHeight,u=o.offsetWidth,s=i.offsetHeight,l=i.offsetWidth,r={zIndex:n},c=(0,_dom.getAbsolutePos)(o),d=c.top,v=c.left,i=c.boundingTop,n=c.visibleHeight,o=c.visibleWidth,c="bottom";return e?(e=d+a,"top"===t?(c="top",e=d-s):t||(n<i+a+s+5&&(c="top",e=d-s),e<5&&(c="bottom",e=d+a)),o<(v=v+u-l)+l+5&&(v-=v+l+5-o),v<5&&(v=5),Object.assign(r,{left:v+"px",right:"auto",top:e+"px",minWidth:u+"px"})):"top"===t?(c="top",r.bottom=a+"px"):t||n<i+a+s&&5<i-a-s&&(c="top",r.bottom=a+"px"),P.panelStyle=r,P.panelPlacement=c,(0,_vue.nextTick)()}})},q=function(){var e=z.value;e&&(e.dataset.active="Y",P.animatVisible=!0,setTimeout(function(){"Y"===e.dataset.active&&(P.showPanel=!0,s(),l(),setTimeout(function(){P.showPanel&&l()},50))},20))},r=function(){var e=z.value;clearTimeout(n.showTime),e?(e.dataset.active="N",setTimeout(function(){"Y"!==e.dataset.active&&(P.showPanel=!1,setTimeout(function(){"Y"!==e.dataset.active&&(P.animatVisible=!1)},350))},100)):(P.animatVisible=!1,P.showPanel=!1)},u={dispatchEvent:function(e,t,n){o(e,Object.assign({$button:a,$event:n},t))},focus:function(){return k.value.focus(),(0,_vue.nextTick)()},blur:function(){return k.value.blur(),(0,_vue.nextTick)()}};Object.assign(a,u),(0,_vue.onMounted)(function(){_event.GlobalEvent.on(a,"mousewheel",function(e){var t=z.value;P.showPanel&&!(0,_dom.getEventTargetNode)(e,t).flag&&r()})}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(a,"mousewheel")});return a.renderVN=function(){var e=m.className,t=m.transfer,n=m.type,o=m.round,i=m.circle,a=m.destroyOnClose,u=m.status,s=m.name,l=m.disabled,r=m.loading,c=P.inited,d=P.showPanel,v=O.value,f=S.value,p=y.value;return T.dropdowns?(0,_vue.h)("div",{ref:N,class:["vxe-button--dropdown",e,((e={})["size--"+p]=p,e["is--active"]=d,e)]},[(0,_vue.h)("button",{ref:k,class:["vxe-button","type--"+f,((e={})["size--"+p]=p,e["theme--"+u]=u,e["is--round"]=o,e["is--circle"]=i,e["is--disabled"]=l||r,e["is--loading"]=r,e)],name:s,type:v?n:"button",disabled:l||r,onMouseenter:x,onMouseleave:g,onClick:_},w().concat([(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+_conf.default.icon.BUTTON_DROPDOWN})])),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!c},[(0,_vue.h)("div",{ref:z,class:["vxe-button--dropdown-panel",((t={})["size--"+p]=p,t["animat--leave"]=P.animatVisible,t["animat--enter"]=d,t)],placement:P.panelPlacement,style:P.panelStyle},c?[(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper",onMousedown:b,onClick:h,onMouseenter:q,onMouseleave:g},a&&!d?[]:T.dropdowns({}))]:[])])]):(0,_vue.h)("button",{ref:k,class:["vxe-button","type--"+f,((f={})["size--"+p]=p,f["theme--"+u]=u,f["is--round"]=o,f["is--circle"]=i,f["is--disabled"]=l||r,f["is--loading"]=r,f)],name:s,type:v?n:"button",disabled:l||r,onClick:_},w())},a},render:function(){return this.renderVN()}});exports.default=_default2;
@@ -141,6 +141,7 @@ var editHook = {
141
141
  var rest = {
142
142
  row: item,
143
143
  rowid: rowid,
144
+ seq: -1,
144
145
  index: -1,
145
146
  _index: -1,
146
147
  $index: -1,
@@ -162,6 +163,7 @@ var editHook = {
162
163
  var rest = {
163
164
  row: item,
164
165
  rowid: rowid,
166
+ seq: -1,
165
167
  index: -1,
166
168
  _index: -1,
167
169
  $index: -1,
@@ -283,6 +285,7 @@ var editHook = {
283
285
  var rest = {
284
286
  row: item,
285
287
  rowid: rowid,
288
+ seq: -1,
286
289
  index: -1,
287
290
  _index: -1,
288
291
  $index: -1,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(R){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var _=R.props,C=R.reactData,I=R.internalData,o=R.getRefMaps().refElem,e=R.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,m=e.computeCheckboxOpts,b=e.computeSYOpts,S=e.computeTreeOpts,h={},w={};function a(){var e=C.editStore,t=C.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function A(e,t){var a=I.treeFullData,i=I.afterFullData,u=I.fullDataRowIdData,c=I.fullAllDataRowIdData,d=S.value,s=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[d.parentField],n=(0,_util.getRowid)(R,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d.rowField]},d):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(R,t)])?r.level:0,r=t[d.children],(r=!_xeUtils.default.isArray(r)?t[d.children]=[]:r)[s](e),{row:e,rowid:n,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[s](e),a[s](e),{row:e,rowid:n,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e}),R.updateVirtualTreeData()}return h={insert:function(e){return h.insertAt(e,null)},insertAt:function(e,t){var r=_.treeConfig,l=C.mergeList,n=C.editStore,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=I.fullDataRowIdData,d=I.fullAllDataRowIdData,s=b.value,f=S.value,v=f.transform,p=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return R.defineField(Object.assign({},e))});if(t)if(-1===t)r&&v?A(p,!0):(i.push.apply(i,p),u.push.apply(u,p),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>i.length&&(e.rowspan=r+p.length)}));else if(r&&v){var w,g,m,h=_xeUtils.default.findTree(a,function(e){return t[f.rowField]===e[f.rowField]},f);h?(w=h.parent,g=h.items,a=d[(0,_util.getRowid)(R,w)],m=a?a.level:0,p.forEach(function(e,t){var r=(0,_util.getRowid)(R,e);"development"===process.env.NODE_ENV&&e[f.parentField]&&w&&e[f.parentField]!==w[f.rowField]&&(0,_utils.errLog)("vxe.error.errProp",[f.parentField+"="+e[f.parentField],f.parentField+"="+w[f.rowField]]),w&&(e[f.parentField]=w[f.rowField]),g.splice(h.index+t,0,e);e={row:e,rowid:r,index:-1,_index:-1,$index:-1,items:g,parent:w,level:m+1};c[r]=e,d[r]=e}),R.updateVirtualTreeData()):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),A(p,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var x=R.findRowIndexOf(i,t);if(-1===x)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));i.splice.apply(i,__spreadArray([x,0],p)),u.splice.apply(u,__spreadArray([R.findRowIndexOf(u,t),0],p)),l.forEach(function(e){var t=e.row,r=e.rowspan;x<t?e.row=t+p.length:x<t+r&&(e.rowspan=r+p.length)})}else r&&v?A(p,!1):(i.unshift.apply(i,p),u.unshift.apply(u,p),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+p.length)}));return(n=n.insertList).unshift.apply(n,p),C.scrollYLoad=!r&&-1<s.gt&&s.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(v),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},remove:function(e){var t=_.treeConfig,r=C.mergeList,l=C.editStore,n=C.selection,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=m.value,d=b.value,s=S.value,f=s.transform,v=l.actived,p=l.removeList,w=l.insertList,c=c.checkField,g=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=u,e.forEach(function(e){R.isInsertByRow(e)||p.push(e)}),c||e.forEach(function(e){e=R.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),u===e?(e=g=u.slice(0),I.tableFullData=[],I.afterFullData=[],R.clearMergeCells()):t&&f?e.forEach(function(e){var t=(0,_util.getRowid)(R,e),r=_xeUtils.default.findTree(a,function(e){return t===(0,_util.getRowid)(R,e)},s);r&&(r=r.items.splice(r.index,1),g.push(r[0]));e=R.findRowIndexOf(i,e);-1<e&&i.splice(e,1),R.updateVirtualTreeData()}):e.forEach(function(e){var t=R.findRowIndexOf(u,e);-1<t&&(t=u.splice(t,1),g.push(t[0]));var l=R.findRowIndexOf(i,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),i.splice(l,1))}),v.row&&-1<R.findRowIndexOf(e,v.row)&&h.clearActived(),e.forEach(function(e){e=R.findRowIndexOf(w,e);-1<e&&w.splice(e,1)}),C.scrollYLoad=!t&&-1<d.gt&&d.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(f),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:g.length?g[g.length-1]:null,rows:g}})},removeCheckboxRow:function(){return h.remove(R.getCheckboxRecords()).then(function(e){return R.clearCheckboxRow(),e})},removeRadioRow:function(){var e=R.getRadioRecord();return h.remove(e||[]).then(function(e){return R.clearRadioRow(),e})},removeCurrentRow:function(){var e=R.getCurrentRecord();return h.remove(e||[]).then(function(e){return R.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:h.getInsertRecords(),removeRecords:h.getRemoveRecords(),updateRecords:h.getUpdateRecords()}},getInsertRecords:function(){var e=_.treeConfig,t=C.editStore,r=I.treeFullData,l=I.tableFullData,n=S.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(R,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(R,e)},n)&&o.push(e)}):t.forEach(function(e){-1<R.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return C.editStore.removeList},getUpdateRecords:function(){var e=_.keepSource,t=_.treeConfig,r=I.tableFullData,l=S.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return R.isUpdateByRow(e)},l):r.filter(function(e){return R.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=C.editStore,t=I.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<R.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=C.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=C.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:r,rowIndex:R.getRowIndex(r),$rowIndex:R.getVMRowIndex(r),column:l,columnIndex:R.getColumnIndex(l),$columnIndex:R.getVMColumnIndex(l)},e||null)),(R.clearValidate?R.clearValidate():(0,_vue.nextTick)()).then(function(){return R.recalculate()})},clearSelected:function(){var e=C.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return C.editStore.actived.row===e},setActiveRow:function(e){var t=I.visibleColumn;return R.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=_.editConfig,l=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?R.scrollToRow(t,l).then(function(){var e=R.getCell(t,l);return e&&(w.handleActived({row:t,rowIndex:R.getRowIndex(t),column:l,columnIndex:R.getColumnIndex(l),cell:e,$table:R}),I._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=C.tableData,l=I.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=R.findRowIndexOf(r,e))&&t&&(r=R.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},R.handleSelected(r,{}))),(0,_vue.nextTick)()}},w={handleActived:function(e,t){var r,l=_.editConfig,n=_.mouseConfig,o=C.editStore,a=C.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||R.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),R.closeTooltip(),h.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){w.handleFocus(e,t)})),R.dispatchEvent(r,{row:s,rowIndex:R.getRowIndex(s),$rowIndex:R.getVMRowIndex(s),column:f,columnIndex:R.getColumnIndex(f),$columnIndex:R.getVMColumnIndex(f)},t)):(r=d.column,n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),R.clearValidate&&R.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){w.handleFocus(e,t)})),R.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):R.scrollToRow(l,n))},handleSelected:function(e,t){var r=_.mouseConfig,l=C.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(h.clearActived(t),h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&w.addCellSelectedClass(),R.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=C.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=R.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},h),w)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(R){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var _=R.props,C=R.reactData,I=R.internalData,o=R.getRefMaps().refElem,e=R.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,m=e.computeCheckboxOpts,b=e.computeSYOpts,S=e.computeTreeOpts,h={},w={};function a(){var e=C.editStore,t=C.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function A(e,t){var a=I.treeFullData,i=I.afterFullData,u=I.fullDataRowIdData,c=I.fullAllDataRowIdData,d=S.value,s=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[d.parentField],n=(0,_util.getRowid)(R,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d.rowField]},d):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(R,t)])?r.level:0,r=t[d.children],(r=!_xeUtils.default.isArray(r)?t[d.children]=[]:r)[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[s](e),a[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e}),R.updateVirtualTreeData()}return h={insert:function(e){return h.insertAt(e,null)},insertAt:function(e,t){var r=_.treeConfig,l=C.mergeList,n=C.editStore,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=I.fullDataRowIdData,d=I.fullAllDataRowIdData,s=b.value,f=S.value,v=f.transform,p=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return R.defineField(Object.assign({},e))});if(t)if(-1===t)r&&v?A(p,!0):(i.push.apply(i,p),u.push.apply(u,p),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>i.length&&(e.rowspan=r+p.length)}));else if(r&&v){var w,g,m,h=_xeUtils.default.findTree(a,function(e){return t[f.rowField]===e[f.rowField]},f);h?(w=h.parent,g=h.items,a=d[(0,_util.getRowid)(R,w)],m=a?a.level:0,p.forEach(function(e,t){var r=(0,_util.getRowid)(R,e);"development"===process.env.NODE_ENV&&e[f.parentField]&&w&&e[f.parentField]!==w[f.rowField]&&(0,_utils.errLog)("vxe.error.errProp",[f.parentField+"="+e[f.parentField],f.parentField+"="+w[f.rowField]]),w&&(e[f.parentField]=w[f.rowField]),g.splice(h.index+t,0,e);e={row:e,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:g,parent:w,level:m+1};c[r]=e,d[r]=e}),R.updateVirtualTreeData()):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),A(p,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var x=R.findRowIndexOf(i,t);if(-1===x)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));i.splice.apply(i,__spreadArray([x,0],p)),u.splice.apply(u,__spreadArray([R.findRowIndexOf(u,t),0],p)),l.forEach(function(e){var t=e.row,r=e.rowspan;x<t?e.row=t+p.length:x<t+r&&(e.rowspan=r+p.length)})}else r&&v?A(p,!1):(i.unshift.apply(i,p),u.unshift.apply(u,p),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+p.length)}));return(n=n.insertList).unshift.apply(n,p),C.scrollYLoad=!r&&-1<s.gt&&s.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(v),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},remove:function(e){var t=_.treeConfig,r=C.mergeList,l=C.editStore,n=C.selection,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=m.value,d=b.value,s=S.value,f=s.transform,v=l.actived,p=l.removeList,w=l.insertList,c=c.checkField,g=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=u,e.forEach(function(e){R.isInsertByRow(e)||p.push(e)}),c||e.forEach(function(e){e=R.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),u===e?(e=g=u.slice(0),I.tableFullData=[],I.afterFullData=[],R.clearMergeCells()):t&&f?e.forEach(function(e){var t=(0,_util.getRowid)(R,e),r=_xeUtils.default.findTree(a,function(e){return t===(0,_util.getRowid)(R,e)},s);r&&(r=r.items.splice(r.index,1),g.push(r[0]));e=R.findRowIndexOf(i,e);-1<e&&i.splice(e,1),R.updateVirtualTreeData()}):e.forEach(function(e){var t=R.findRowIndexOf(u,e);-1<t&&(t=u.splice(t,1),g.push(t[0]));var l=R.findRowIndexOf(i,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),i.splice(l,1))}),v.row&&-1<R.findRowIndexOf(e,v.row)&&h.clearActived(),e.forEach(function(e){e=R.findRowIndexOf(w,e);-1<e&&w.splice(e,1)}),C.scrollYLoad=!t&&-1<d.gt&&d.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(f),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:g.length?g[g.length-1]:null,rows:g}})},removeCheckboxRow:function(){return h.remove(R.getCheckboxRecords()).then(function(e){return R.clearCheckboxRow(),e})},removeRadioRow:function(){var e=R.getRadioRecord();return h.remove(e||[]).then(function(e){return R.clearRadioRow(),e})},removeCurrentRow:function(){var e=R.getCurrentRecord();return h.remove(e||[]).then(function(e){return R.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:h.getInsertRecords(),removeRecords:h.getRemoveRecords(),updateRecords:h.getUpdateRecords()}},getInsertRecords:function(){var e=_.treeConfig,t=C.editStore,r=I.treeFullData,l=I.tableFullData,n=S.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(R,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(R,e)},n)&&o.push(e)}):t.forEach(function(e){-1<R.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return C.editStore.removeList},getUpdateRecords:function(){var e=_.keepSource,t=_.treeConfig,r=I.tableFullData,l=S.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return R.isUpdateByRow(e)},l):r.filter(function(e){return R.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=C.editStore,t=I.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<R.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=C.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=C.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:r,rowIndex:R.getRowIndex(r),$rowIndex:R.getVMRowIndex(r),column:l,columnIndex:R.getColumnIndex(l),$columnIndex:R.getVMColumnIndex(l)},e||null)),(R.clearValidate?R.clearValidate():(0,_vue.nextTick)()).then(function(){return R.recalculate()})},clearSelected:function(){var e=C.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return C.editStore.actived.row===e},setActiveRow:function(e){var t=I.visibleColumn;return R.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=_.editConfig,l=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?R.scrollToRow(t,l).then(function(){var e=R.getCell(t,l);return e&&(w.handleActived({row:t,rowIndex:R.getRowIndex(t),column:l,columnIndex:R.getColumnIndex(l),cell:e,$table:R}),I._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=C.tableData,l=I.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=R.findRowIndexOf(r,e))&&t&&(r=R.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},R.handleSelected(r,{}))),(0,_vue.nextTick)()}},w={handleActived:function(e,t){var r,l=_.editConfig,n=_.mouseConfig,o=C.editStore,a=C.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||R.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),R.closeTooltip(),h.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){w.handleFocus(e,t)})),R.dispatchEvent(r,{row:s,rowIndex:R.getRowIndex(s),$rowIndex:R.getVMRowIndex(s),column:f,columnIndex:R.getColumnIndex(f),$columnIndex:R.getVMColumnIndex(f)},t)):(r=d.column,n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),R.clearValidate&&R.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){w.handleFocus(e,t)})),R.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):R.scrollToRow(l,n))},handleSelected:function(e,t){var r=_.mouseConfig,l=C.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(h.clearActived(t),h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&w.addCellSelectedClass(),R.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=C.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=R.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},h),w)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
@@ -121,6 +121,10 @@ function getFooterData(opts, footerTableData) {
121
121
 
122
122
  function getCsvCellTypeLabel(column, cellValue) {
123
123
  if (cellValue) {
124
+ if (column.type === 'seq') {
125
+ return "\t" + cellValue;
126
+ }
127
+
124
128
  switch (column.cellType) {
125
129
  case 'string':
126
130
  if (!isNaN(cellValue)) {
@@ -368,15 +372,24 @@ var tableExportHook = {
368
372
  return row[treeOpts.children] && row[treeOpts.children].length;
369
373
  };
370
374
 
371
- var getSeq = function getSeq(row, rowIndex, column, columnIndex) {
375
+ var getSeq = function getSeq(row, rowIndex, column, columnIndex, path) {
372
376
  var seqOpts = computeSeqOpts.value;
373
377
  var seqMethod = seqOpts.seqMethod || column.seqMethod;
374
- return seqMethod ? seqMethod({
375
- row: row,
376
- rowIndex: rowIndex,
377
- column: column,
378
- columnIndex: columnIndex
379
- }) : seqOpts.startIndex + rowIndex + 1;
378
+
379
+ if (seqMethod) {
380
+ return seqMethod({
381
+ row: row,
382
+ rowIndex: rowIndex,
383
+ column: column,
384
+ columnIndex: columnIndex
385
+ });
386
+ }
387
+
388
+ if (path) {
389
+ return (0, _util.toTreePathSeq)(path);
390
+ }
391
+
392
+ return seqOpts.startIndex + rowIndex + 1;
380
393
  };
381
394
 
382
395
  var toBooleanValue = function toBooleanValue(cellValue) {
@@ -397,12 +410,13 @@ var tableExportHook = {
397
410
  if (treeConfig) {
398
411
  // 如果是树表格只允许导出数据源
399
412
  var rest_1 = [];
413
+ var expandMaps_1 = new Map();
400
414
 
401
415
  _xeUtils.default.eachTree(datas, function (item, rowIndex, items, path, parent, nodes) {
402
416
  var row = item._row || item;
403
417
  var parentRow = parent && parent._row ? parent._row : parent;
404
418
 
405
- if (isAllExpand || !parentRow || $xetable.isTreeExpandByRow(parentRow)) {
419
+ if (isAllExpand || !parentRow || expandMaps_1.has(parentRow) && $xetable.isTreeExpandByRow(parentRow)) {
406
420
  var hasRowChild = hasTreeChildren(row);
407
421
  var item_3 = {
408
422
  _row: row,
@@ -433,7 +447,7 @@ var tableExportHook = {
433
447
  } else {
434
448
  switch (column.type) {
435
449
  case 'seq':
436
- cellValue = getSeq(row, rowIndex, column, columnIndex);
450
+ cellValue = getSeq(row, rowIndex, column, columnIndex, path);
437
451
  break;
438
452
 
439
453
  case 'checkbox':
@@ -475,6 +489,7 @@ var tableExportHook = {
475
489
 
476
490
  item_3[column.id] = _xeUtils.default.toValueString(cellValue);
477
491
  });
492
+ expandMaps_1.set(row, 1);
478
493
  rest_1.push(Object.assign(item_3, row));
479
494
  }
480
495
  }, treeOpts);
@@ -509,7 +524,7 @@ var tableExportHook = {
509
524
  } else {
510
525
  switch (column.type) {
511
526
  case 'seq':
512
- cellValue = getSeq(row, rowIndex, column, columnIndex);
527
+ cellValue = getSeq(row, rowIndex, column, columnIndex, []);
513
528
  break;
514
529
 
515
530
  case 'checkbox':