vxe-table 3.20.13 → 3.21.0-beta.1

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 (61) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/module/edit/mixin.js +33 -12
  3. package/es/table/module/keyboard/mixin.js +2 -2
  4. package/es/table/src/cell.js +3 -3
  5. package/es/table/src/column.js +10 -5
  6. package/es/table/src/group.js +10 -5
  7. package/es/table/src/methods.js +382 -169
  8. package/es/table/src/props.js +2 -2
  9. package/es/table/src/table.js +13 -6
  10. package/es/table/src/util.js +12 -3
  11. package/es/toolbar/src/toolbar.js +3 -2
  12. package/es/ui/index.js +3 -3
  13. package/es/ui/src/dom.js +4 -0
  14. package/es/ui/src/log.js +1 -1
  15. package/lib/index.umd.js +377 -310
  16. package/lib/index.umd.min.js +1 -1
  17. package/lib/style.css +1 -1
  18. package/lib/table/module/edit/mixin.js +39 -12
  19. package/lib/table/module/edit/mixin.min.js +1 -1
  20. package/lib/table/module/keyboard/mixin.js +2 -2
  21. package/lib/table/module/keyboard/mixin.min.js +1 -1
  22. package/lib/table/src/cell.js +3 -3
  23. package/lib/table/src/column.js +10 -5
  24. package/lib/table/src/column.min.js +1 -1
  25. package/lib/table/src/group.js +10 -5
  26. package/lib/table/src/group.min.js +1 -1
  27. package/lib/table/src/methods.js +37 -31
  28. package/lib/table/src/methods.min.js +1 -1
  29. package/lib/table/src/props.js +2 -2
  30. package/lib/table/src/props.min.js +1 -1
  31. package/lib/table/src/table.js +15 -6
  32. package/lib/table/src/table.min.js +1 -1
  33. package/lib/table/src/util.js +12 -3
  34. package/lib/table/src/util.min.js +1 -1
  35. package/lib/toolbar/src/toolbar.js +3 -2
  36. package/lib/toolbar/src/toolbar.min.js +1 -1
  37. package/lib/ui/index.js +3 -3
  38. package/lib/ui/index.min.js +1 -1
  39. package/lib/ui/src/dom.js +5 -0
  40. package/lib/ui/src/dom.min.js +1 -1
  41. package/lib/ui/src/log.js +1 -1
  42. package/lib/ui/src/log.min.js +1 -1
  43. package/package.json +3 -3
  44. package/packages/table/module/edit/mixin.ts +47 -12
  45. package/packages/table/module/keyboard/mixin.ts +2 -2
  46. package/packages/table/src/cell.ts +5 -5
  47. package/packages/table/src/column.ts +16 -9
  48. package/packages/table/src/group.ts +16 -8
  49. package/packages/table/src/methods.ts +397 -167
  50. package/packages/table/src/props.ts +3 -3
  51. package/packages/table/src/table.ts +13 -6
  52. package/packages/table/src/util.ts +16 -6
  53. package/packages/toolbar/src/toolbar.ts +4 -2
  54. package/packages/ui/index.ts +2 -2
  55. package/packages/ui/src/dom.ts +5 -0
  56. /package/es/{iconfont.1776926445391.ttf → iconfont.1778035421318.ttf} +0 -0
  57. /package/es/{iconfont.1776926445391.woff → iconfont.1778035421318.woff} +0 -0
  58. /package/es/{iconfont.1776926445391.woff2 → iconfont.1778035421318.woff2} +0 -0
  59. /package/lib/{iconfont.1776926445391.ttf → iconfont.1778035421318.ttf} +0 -0
  60. /package/lib/{iconfont.1776926445391.woff → iconfont.1778035421318.woff} +0 -0
  61. /package/lib/{iconfont.1776926445391.woff2 → iconfont.1778035421318.woff2} +0 -0
package/lib/ui/src/dom.js CHANGED
@@ -15,6 +15,7 @@ exports.getPropClass = getPropClass;
15
15
  exports.getTpImg = getTpImg;
16
16
  exports.hasClass = hasClass;
17
17
  exports.hasControlKey = hasControlKey;
18
+ exports.hasEventInputTarget = hasEventInputTarget;
18
19
  exports.initTpImg = initTpImg;
19
20
  exports.isNodeElement = isNodeElement;
20
21
  exports.isPx = isPx;
@@ -216,6 +217,10 @@ function getAbsolutePos(elem) {
216
217
  visibleWidth
217
218
  };
218
219
  }
220
+ function hasEventInputTarget(target) {
221
+ const tagName = target ? target.tagName : '';
222
+ return tagName && ['input', 'textarea'].includes(tagName.toLowerCase());
223
+ }
219
224
  const scrollIntoViewIfNeeded = 'scrollIntoViewIfNeeded';
220
225
  const scrollIntoView = 'scrollIntoView';
221
226
  function scrollToView(elem) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.addClass=addClass,exports.checkTargetElement=checkTargetElement,exports.getAbsolutePos=getAbsolutePos,exports.getDomNode=getDomNode,exports.getEventTargetNode=getEventTargetNode,exports.getOffsetHeight=getOffsetHeight,exports.getOffsetPos=getOffsetPos,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.getPropClass=getPropClass,exports.getTpImg=getTpImg,exports.hasClass=hasClass,exports.hasControlKey=hasControlKey,exports.initTpImg=initTpImg,exports.isNodeElement=isNodeElement,exports.isPx=isPx,exports.isScale=isScale,exports.queryElement=queryElement,exports.removeClass=removeClass,exports.scrollToView=scrollToView,exports.setScrollLeft=setScrollLeft,exports.setScrollTop=setScrollTop,exports.toCssUnit=toCssUnit,exports.triggerEvent=triggerEvent,exports.updateCellTitle=updateCellTitle,exports.wheelScrollLeftTo=wheelScrollLeftTo,exports.wheelScrollTopTo=wheelScrollTopTo;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let reClsMap={},tpImgEl;function initTpImg(){return tpImgEl||((tpImgEl=new Image).src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),tpImgEl}function getTpImg(){return tpImgEl||initTpImg()}function getPropClass(e,t){return e?_xeUtils.default.isFunction(e)?e(t):e:""}function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g")),reClsMap[e]}function getNodeOffset(e,t,o){if(e){var l=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,l&&l!==document.documentElement&&l!==document.body&&(o.top-=l.scrollTop,o.left-=l.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}function isPx(e){return e&&/^\d+(\.\d+)?(px)?$/.test(e)}function isScale(e){return e&&/^\d+(\.\d+)?%$/.test(e)}function hasClass(e,t){return!!(e&&e.className&&e.className.match&&e.className.match(getClsRE(t)))}function removeClass(e,t){e&&hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))}function addClass(e,t){e&&!hasClass(e,t)&&(removeClass(e,t),e.className=e.className+" "+t)}function hasControlKey(e){return e.ctrlKey||e.metaKey}function toCssUnit(e,t="px"){return _xeUtils.default.isNumber(e)||/^\d+$/.test(""+e)?""+e+t:""+(e||"")}function queryElement(e,t){return e?e.querySelector(t):null}function getDomNode(){var e=document.documentElement,t=document.body;return{scrollTop:e.scrollTop||t.scrollTop,scrollLeft:e.scrollLeft||t.scrollLeft,visibleHeight:e.clientHeight||t.clientHeight,visibleWidth:e.clientWidth||t.clientWidth}}function getOffsetHeight(e){return e?e.offsetHeight:0}function getPaddingTopBottomSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)):0}function setScrollTop(e,t){e&&(e.scrollTop=t)}function setScrollLeft(e,t){e&&(e.scrollLeft=t)}function updateCellTitle(e,t){t="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==t&&e.setAttribute("title",t)}function checkTargetElement(e,t,o){let l=e;if(t&&t.length)for(var[r,s,n]=t;l;){if(r===l||s&&l===s||n&&l===n)return!0;if(o&&l===o)return!1;l=l.parentElement}return!1}function getEventTargetNode(e,t,o,l){let r,s=e.target.shadowRoot&&e.composed&&e.composedPath()[0]||e.target;for(;s&&s.nodeType&&s!==document;){if(o&&hasClass(s,o)&&(!l||l(s)))r=s;else if(s===t)return{flag:!o||!!r,container:t,targetElem:r};s=s.parentNode}return{flag:!1}}function getOffsetPos(e,t){return getNodeOffset(e,t,{left:0,top:0})}function getAbsolutePos(e){var e=e.getBoundingClientRect(),t=e.top,e=e.left,{scrollTop:o,scrollLeft:l,visibleHeight:r,visibleWidth:s}=getDomNode();return{boundingTop:t,top:o+t,boundingLeft:e,left:l+e,visibleHeight:r,visibleWidth:s}}let scrollIntoViewIfNeeded="scrollIntoViewIfNeeded",scrollIntoView="scrollIntoView";function scrollToView(e){e&&(e[scrollIntoViewIfNeeded]?e[scrollIntoViewIfNeeded]():e[scrollIntoView]&&e[scrollIntoView]())}function triggerEvent(e,t){e&&e.dispatchEvent(new Event(t))}function isNodeElement(e){return e&&1===e.nodeType}let wtlFrame;function wheelScrollLeftTo(e,t){wtlFrame&&cancelAnimationFrame(wtlFrame),wtlFrame=requestAnimationFrame(()=>{t(e),wtlFrame=null})}let wtaFrame;function wheelScrollTopTo(e,t){wtaFrame&&cancelAnimationFrame(wtaFrame),wtaFrame=requestAnimationFrame(()=>{t(e),wtaFrame=null})}
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.addClass=addClass,exports.checkTargetElement=checkTargetElement,exports.getAbsolutePos=getAbsolutePos,exports.getDomNode=getDomNode,exports.getEventTargetNode=getEventTargetNode,exports.getOffsetHeight=getOffsetHeight,exports.getOffsetPos=getOffsetPos,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.getPropClass=getPropClass,exports.getTpImg=getTpImg,exports.hasClass=hasClass,exports.hasControlKey=hasControlKey,exports.hasEventInputTarget=hasEventInputTarget,exports.initTpImg=initTpImg,exports.isNodeElement=isNodeElement,exports.isPx=isPx,exports.isScale=isScale,exports.queryElement=queryElement,exports.removeClass=removeClass,exports.scrollToView=scrollToView,exports.setScrollLeft=setScrollLeft,exports.setScrollTop=setScrollTop,exports.toCssUnit=toCssUnit,exports.triggerEvent=triggerEvent,exports.updateCellTitle=updateCellTitle,exports.wheelScrollLeftTo=wheelScrollLeftTo,exports.wheelScrollTopTo=wheelScrollTopTo;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let reClsMap={},tpImgEl;function initTpImg(){return tpImgEl||((tpImgEl=new Image).src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),tpImgEl}function getTpImg(){return tpImgEl||initTpImg()}function getPropClass(e,t){return e?_xeUtils.default.isFunction(e)?e(t):e:""}function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g")),reClsMap[e]}function getNodeOffset(e,t,o){if(e){var l=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,l&&l!==document.documentElement&&l!==document.body&&(o.top-=l.scrollTop,o.left-=l.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}function isPx(e){return e&&/^\d+(\.\d+)?(px)?$/.test(e)}function isScale(e){return e&&/^\d+(\.\d+)?%$/.test(e)}function hasClass(e,t){return!!(e&&e.className&&e.className.match&&e.className.match(getClsRE(t)))}function removeClass(e,t){e&&hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))}function addClass(e,t){e&&!hasClass(e,t)&&(removeClass(e,t),e.className=e.className+" "+t)}function hasControlKey(e){return e.ctrlKey||e.metaKey}function toCssUnit(e,t="px"){return _xeUtils.default.isNumber(e)||/^\d+$/.test(""+e)?""+e+t:""+(e||"")}function queryElement(e,t){return e?e.querySelector(t):null}function getDomNode(){var e=document.documentElement,t=document.body;return{scrollTop:e.scrollTop||t.scrollTop,scrollLeft:e.scrollLeft||t.scrollLeft,visibleHeight:e.clientHeight||t.clientHeight,visibleWidth:e.clientWidth||t.clientWidth}}function getOffsetHeight(e){return e?e.offsetHeight:0}function getPaddingTopBottomSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)):0}function setScrollTop(e,t){e&&(e.scrollTop=t)}function setScrollLeft(e,t){e&&(e.scrollLeft=t)}function updateCellTitle(e,t){t="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==t&&e.setAttribute("title",t)}function checkTargetElement(e,t,o){let l=e;if(t&&t.length)for(var[r,s,n]=t;l;){if(r===l||s&&l===s||n&&l===n)return!0;if(o&&l===o)return!1;l=l.parentElement}return!1}function getEventTargetNode(e,t,o,l){let r,s=e.target.shadowRoot&&e.composed&&e.composedPath()[0]||e.target;for(;s&&s.nodeType&&s!==document;){if(o&&hasClass(s,o)&&(!l||l(s)))r=s;else if(s===t)return{flag:!o||!!r,container:t,targetElem:r};s=s.parentNode}return{flag:!1}}function getOffsetPos(e,t){return getNodeOffset(e,t,{left:0,top:0})}function getAbsolutePos(e){var e=e.getBoundingClientRect(),t=e.top,e=e.left,{scrollTop:o,scrollLeft:l,visibleHeight:r,visibleWidth:s}=getDomNode();return{boundingTop:t,top:o+t,boundingLeft:e,left:l+e,visibleHeight:r,visibleWidth:s}}function hasEventInputTarget(e){e=e?e.tagName:"";return e&&["input","textarea"].includes(e.toLowerCase())}let scrollIntoViewIfNeeded="scrollIntoViewIfNeeded",scrollIntoView="scrollIntoView";function scrollToView(e){e&&(e[scrollIntoViewIfNeeded]?e[scrollIntoViewIfNeeded]():e[scrollIntoView]&&e[scrollIntoView]())}function triggerEvent(e,t){e&&e.dispatchEvent(new Event(t))}function isNodeElement(e){return e&&1===e.nodeType}let wtlFrame;function wheelScrollLeftTo(e,t){wtlFrame&&cancelAnimationFrame(wtlFrame),wtlFrame=requestAnimationFrame(()=>{t(e),wtlFrame=null})}let wtaFrame;function wheelScrollTopTo(e,t){wtaFrame&&cancelAnimationFrame(wtaFrame),wtaFrame=requestAnimationFrame(()=>{t(e),wtaFrame=null})}
package/lib/ui/src/log.js CHANGED
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
8
8
  const {
9
9
  log
10
10
  } = _core.VxeUI;
11
- const version = `table v${"3.20.13"}`;
11
+ const version = `table v${"3.21.0-beta.1"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v3.20.13",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v3.21.0-beta.1",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "3.20.13",
3
+ "version": "3.21.0-beta.1",
4
4
  "description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
28
28
  "style": "lib/style.css",
29
29
  "typings": "types/index.d.ts",
30
30
  "dependencies": {
31
- "vxe-pc-ui": "^3.13.0"
31
+ "vxe-pc-ui": "^3.14.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/plugin-transform-modules-commonjs": "^7.25.7",
@@ -68,7 +68,7 @@
68
68
  "vue-i18n": "^8.15.1",
69
69
  "vue-router": "^3.5.1",
70
70
  "vue-template-compiler": "2.6.14",
71
- "vxe-pc-ui": "3.13.26"
71
+ "vxe-pc-ui": "3.14.1"
72
72
  },
73
73
  "vetur": {
74
74
  "tags": "helper/vetur/tags.json",
@@ -45,7 +45,7 @@ function syncActivedCell ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
45
45
  const editOpts = $xeTable.computeEditOpts
46
46
  const { actived } = editStore
47
47
  const { row, column } = actived
48
- if (row || column) {
48
+ if (row && column) {
49
49
  if (editOpts.mode === 'row') {
50
50
  tableColumn.forEach((column) => setEditColumnModel(row, column))
51
51
  } else {
@@ -94,6 +94,7 @@ function insertTreeRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
94
94
  fullAllDataRowIdData[rowid] = rest
95
95
  }
96
96
  })
97
+ $xeTable.handleClearStack()
97
98
  }
98
99
 
99
100
  // function insertGroupRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, newRecords: any[], isAppend: boolean) {
@@ -153,6 +154,7 @@ function handleInsertRowAt ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
153
154
  mergeItem.row = mergeRowIndex + newRecords.length
154
155
  }
155
156
  })
157
+ $xeTable.handleClearStack()
156
158
  }
157
159
  } else {
158
160
  if (targetRow === -1) {
@@ -175,6 +177,7 @@ function handleInsertRowAt ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
175
177
  afterFullData.push(item)
176
178
  tableFullData.push(item)
177
179
  })
180
+ $xeTable.handleClearStack()
178
181
  }
179
182
  } else {
180
183
  // 如果为虚拟树
@@ -226,6 +229,7 @@ function handleInsertRowAt ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
226
229
  parentChilds.splice(targetIndex, 0, ...treeRecords)
227
230
  }
228
231
  }
232
+ $xeTable.handleClearStack()
229
233
  } else {
230
234
  warnLog('vxe.error.unableInsert')
231
235
  insertTreeRow($xeTable, newRecords, true)
@@ -272,6 +276,7 @@ function handleInsertRowAt ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
272
276
  mergeItem.rowspan = mergeRowspan + newRecords.length
273
277
  }
274
278
  })
279
+ $xeTable.handleClearStack()
275
280
  }
276
281
  }
277
282
  }
@@ -358,10 +363,10 @@ function handleClearEdit ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
358
363
  return $xeTable.$nextTick()
359
364
  }
360
365
  syncActivedCell($xeTable)
366
+ $xeTable.updateFooter()
361
367
  actived.args = null
362
368
  actived.row = null
363
369
  actived.column = null
364
- $xeTable.updateFooter()
365
370
  $xeTable.dispatchEvent('edit-closed', {
366
371
  row,
367
372
  rowIndex: $xeTable.getRowIndex(row),
@@ -383,7 +388,11 @@ function handleClearEdit ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
383
388
  return $xeTable.$nextTick().then(() => $xeTable.updateCellAreas())
384
389
  }
385
390
 
386
- function handleEditActive ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, params: any, evnt: Event | null, isFocus: boolean, isPos: boolean) {
391
+ function handleEditActive ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, params: any, evnt: Event | null, options: {
392
+ isClear?: boolean
393
+ isFocus?: boolean
394
+ isPos?: boolean
395
+ }) {
387
396
  const props = $xeTable
388
397
  const reactData = $xeTable as unknown as TableReactData
389
398
  const $xeGrid = $xeTable.$xeGrid
@@ -395,6 +404,7 @@ function handleEditActive ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
395
404
  const { actived, focused } = editStore
396
405
  const { row, column } = params
397
406
  const { editRender } = column
407
+ const { isFocus, isPos, isClear } = options
398
408
  const cell = (params.cell || $xeTable.getCellElement(row, column))
399
409
  const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod
400
410
  params.cell = cell
@@ -421,6 +431,10 @@ function handleEditActive ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
421
431
  actived.args = params
422
432
  actived.row = row
423
433
  actived.column = column
434
+ $xeTable.handlePushStack()
435
+ if (isClear) {
436
+ setCellValue(row, column, null)
437
+ }
424
438
  if (mode === 'row') {
425
439
  tableColumn.forEach((column: any) => getEditColumnModel(row, column))
426
440
  } else {
@@ -465,7 +479,7 @@ function handleEditActive ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
465
479
  $xeTable.clearCopyCellArea()
466
480
  }
467
481
  }
468
- if (oldColumn !== column) {
482
+ if (oldColumn && oldColumn !== column) {
469
483
  const { model: oldModel } = oldColumn
470
484
  if (oldModel.update) {
471
485
  setCellValue(row, oldColumn, oldModel.value)
@@ -491,11 +505,16 @@ function handleEditActive ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
491
505
  return $xeTable.$nextTick()
492
506
  }
493
507
 
494
- function handleEditCell ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo, isPos: boolean) {
508
+ function handleEditCell ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo | null, options: {
509
+ isClear?: boolean | undefined;
510
+ isFocus?: boolean | undefined;
511
+ isPos?: boolean | undefined;
512
+ }) {
495
513
  const props = $xeTable
496
514
  const internalData = $xeTable as unknown as TableInternalData
497
515
 
498
516
  const { editConfig } = props
517
+ const { isPos } = options
499
518
  const column = XEUtils.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn
500
519
  if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender) && !$xeTable.isAggregateRecord(row)) {
501
520
  return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
@@ -508,7 +527,7 @@ function handleEditCell ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
508
527
  columnIndex: $xeTable.getColumnIndex(column),
509
528
  cell,
510
529
  $table: $xeTable
511
- }, null, isPos, isPos)
530
+ }, null, options)
512
531
  internalData._lastCallTime = Date.now()
513
532
  }
514
533
  return $xeTable.$nextTick()
@@ -661,6 +680,7 @@ export default {
661
680
  reactData.removeRowFlag++
662
681
  reactData.insertRowFlag++
663
682
  reactData.pendingRowFlag++
683
+ $xeTable.handleClearStack()
664
684
  $xeTable.cacheRowMap(false)
665
685
  $xeTable.handleTableData(treeConfig && transform)
666
686
  $xeTable.updateFooter()
@@ -789,10 +809,15 @@ export default {
789
809
  /**
790
810
  * 处理激活编辑
791
811
  */
792
- handleEdit (params: any, evnt: any) {
812
+ handleEdit (params: any, evnt: any, options?: {
813
+ isClear?: boolean
814
+ }) {
793
815
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
794
816
 
795
- return handleEditActive($xeTable, params, evnt, true, true)
817
+ return handleEditActive($xeTable, params, evnt, Object.assign({
818
+ isFocus: true,
819
+ isPos: true
820
+ }, options))
796
821
  },
797
822
  /**
798
823
  * @deprecated
@@ -967,7 +992,9 @@ export default {
967
992
  /**
968
993
  * 激活行编辑
969
994
  */
970
- _setEditRow (row: any, fieldOrColumn: any) {
995
+ _setEditRow (row: any, fieldOrColumn?: boolean | string | VxeTableDefines.ColumnInfo<any> | null, options?: {
996
+ isClear?: boolean
997
+ }) {
971
998
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
972
999
  const internalData = $xeTable as unknown as TableInternalData
973
1000
 
@@ -980,7 +1007,10 @@ export default {
980
1007
  column = XEUtils.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn
981
1008
  }
982
1009
  }
983
- return handleEditCell($xeTable, row, column, isPos)
1010
+ return handleEditCell($xeTable, row, column, Object.assign({
1011
+ isPos,
1012
+ isFocus: isPos
1013
+ }, options))
984
1014
  },
985
1015
  _setActiveCell (row: any, fieldOrColumn: any) {
986
1016
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
@@ -992,10 +1022,15 @@ export default {
992
1022
  /**
993
1023
  * 激活单元格编辑
994
1024
  */
995
- _setEditCell (row: any, fieldOrColumn: any) {
1025
+ _setEditCell (row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo<any> | null, options?: {
1026
+ isClear?: boolean
1027
+ }) {
996
1028
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
997
1029
 
998
- return handleEditCell($xeTable, row, fieldOrColumn, true)
1030
+ return handleEditCell($xeTable, row, fieldOrColumn, Object.assign({
1031
+ isFocus: true,
1032
+ isPos: true
1033
+ }, options))
999
1034
  },
1000
1035
  /**
1001
1036
  * 只对 trigger=dblclick 有效,选中单元格
@@ -494,8 +494,8 @@ export default {
494
494
  const checkboxOpts = $xeTable.computeCheckboxOpts
495
495
  const mouseOpts = $xeTable.computeMouseOpts
496
496
  const editOpts = $xeTable.computeEditOpts
497
- if (mouseConfig && mouseOpts.area && $xeTable.triggerClAreaModnEvent) {
498
- return $xeTable.triggerClAreaModnEvent(evnt, params)
497
+ if (mouseConfig && mouseOpts.area && $xeTable.triggerCelllAreaMnEvent) {
498
+ return $xeTable.triggerCelllAreaMnEvent(evnt, params)
499
499
  } else {
500
500
  if (checkboxConfig && checkboxOpts.range) {
501
501
  handleCheckboxRangeEvent($xeTable, evnt, params)
@@ -344,8 +344,8 @@ function renderFooterHandle (h: CreateElement, params: VxeTableDefines.CellRende
344
344
  }
345
345
 
346
346
  export const Cell = {
347
- createColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, _vm: any) {
348
- const { type } = _vm
347
+ createColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, columnOpts: VxeTableDefines.ColumnOptions | VxeTableDefines.ColumnInfo) {
348
+ const { type } = columnOpts
349
349
  const renConfs: any = {
350
350
  renderHeader: renderHeaderHandle,
351
351
  renderCell: renderCellHandle,
@@ -354,7 +354,7 @@ export const Cell = {
354
354
  if (type === 'expand') {
355
355
  renConfs.renderData = Cell.renderExpandData
356
356
  }
357
- return createColumn($xeTable, _vm, renConfs)
357
+ return createColumn($xeTable, columnOpts, renConfs)
358
358
  },
359
359
  /**
360
360
  * 列头标题
@@ -376,7 +376,7 @@ export const Cell = {
376
376
  const compConf = renderer.get(renderOpts.name)
377
377
  const rtHeader = compConf ? (compConf.renderTableHeader || compConf.renderHeader) : null
378
378
  if (rtHeader) {
379
- return getSlotVNs(renderTitleContent(h, params, rtHeader.call($table, h, renderOpts, params)))
379
+ return getSlotVNs(renderTitleContent(h, params, rtHeader.call($table, h, renderOpts, params))) as VNode[]
380
380
  }
381
381
  }
382
382
  return renderTitleContent(h, params, formatText(column.getTitle(), 1))
@@ -1280,6 +1280,6 @@ export const Cell = {
1280
1280
  }
1281
1281
  return Cell.renderDefaultCell(h, cellParams)
1282
1282
  }
1283
- } as any
1283
+ }
1284
1284
 
1285
1285
  export default Cell
@@ -1,7 +1,7 @@
1
- import { PropType } from 'vue'
2
- import Cell from './cell'
1
+ import { PropType, CreateElement } from 'vue'
3
2
  import { defineVxeComponent } from '../../ui/src/comp'
4
3
  import { assembleColumn, destroyColumn } from './util'
4
+ import Cell from './cell'
5
5
 
6
6
  import type { VxeColumnPropTypes, VxeTableConstructor, VxeTablePrivateMethods } from '../../../types'
7
7
 
@@ -171,8 +171,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
171
171
  name: 'VxeColumn',
172
172
  props: columnProps,
173
173
  provide () {
174
+ const $xeColumn = this
174
175
  return {
175
- $xeColumn: this,
176
+ $xeColumn,
176
177
  $xeGrid: null,
177
178
  $xeGantt: null
178
179
  }
@@ -186,20 +187,26 @@ export default /* define-vxe-component start */ defineVxeComponent({
186
187
  }
187
188
  },
188
189
  watch: columnWatch,
189
- created (this: any) {
190
+ created () {
191
+ const $xeColumn = this
192
+ const props = $xeColumn
190
193
  const $xeTable = this.$xeTable as VxeTableConstructor & VxeTablePrivateMethods
191
194
 
192
- this.columnConfig = this.createColumn($xeTable, this)
195
+ this.columnConfig = Cell.createColumn($xeTable, props)
193
196
  },
194
197
  mounted () {
198
+ const $xeColumn = this
199
+
195
200
  this.columnConfig.slots = this.$scopedSlots
196
- assembleColumn(this)
201
+ assembleColumn($xeColumn)
197
202
  },
198
203
  destroyed () {
199
- destroyColumn(this)
204
+ const $xeColumn = this
205
+
206
+ destroyColumn($xeColumn)
200
207
  },
201
- render (this: any, h: any) {
208
+ render (h: CreateElement) {
202
209
  return h('div', this.$slots.default)
203
210
  },
204
- methods: Cell
211
+ methods: Cell as any
205
212
  }) /* define-vxe-component end */
@@ -1,7 +1,8 @@
1
- import Cell from './cell'
1
+ import { CreateElement } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { assembleColumn, destroyColumn } from './util'
4
4
  import { columnProps, columnWatch } from './column'
5
+ import Cell from './cell'
5
6
 
6
7
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types'
7
8
 
@@ -9,8 +10,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
9
10
  name: 'VxeColgroup',
10
11
  props: columnProps,
11
12
  provide () {
13
+ const $xeColgroup = this
12
14
  return {
13
- $xeColumn: this,
15
+ $xeColumn: $xeColgroup,
14
16
  $xeGrid: null,
15
17
  $xeGantt: null
16
18
  }
@@ -24,12 +26,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
24
26
  }
25
27
  },
26
28
  watch: columnWatch,
27
- created (this: any) {
29
+ created () {
30
+ const $xeColgroup = this
31
+ const props = $xeColgroup
28
32
  const $xeTable = this.$xeTable as VxeTableConstructor & VxeTablePrivateMethods
29
33
 
30
- this.columnConfig = this.createColumn($xeTable, this)
34
+ this.columnConfig = Cell.createColumn($xeTable, props)
31
35
  },
32
36
  mounted () {
37
+ const $xeColgroup = this
38
+
33
39
  const { $scopedSlots } = this
34
40
  const columnSlots: {
35
41
  header?: any
@@ -39,13 +45,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
39
45
  columnSlots.header = $scopedSlots.header
40
46
  }
41
47
  this.columnConfig.slots = columnSlots
42
- assembleColumn(this)
48
+ assembleColumn($xeColgroup)
43
49
  },
44
50
  destroyed () {
45
- destroyColumn(this)
51
+ const $xeColgroup = this
52
+
53
+ destroyColumn($xeColgroup)
46
54
  },
47
- render (this: any, h: any) {
55
+ render (h: CreateElement) {
48
56
  return h('div', this.$slots.default)
49
57
  },
50
- methods: Cell
58
+ methods: Cell as any
51
59
  }) /* define-vxe-component end */