vxe-table 4.10.3 → 4.10.4

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 (35) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/src/cell.js +23 -11
  6. package/es/table/src/table.js +12 -5
  7. package/es/table/src/util.js +6 -5
  8. package/es/ui/index.js +1 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/lib/index.css +1 -1
  11. package/lib/index.min.css +1 -1
  12. package/lib/index.umd.js +47 -15
  13. package/lib/index.umd.min.js +1 -1
  14. package/lib/style.css +1 -1
  15. package/lib/style.min.css +1 -1
  16. package/lib/table/src/cell.js +20 -3
  17. package/lib/table/src/cell.min.js +1 -1
  18. package/lib/table/src/table.js +17 -5
  19. package/lib/table/src/table.min.js +1 -1
  20. package/lib/table/src/util.js +8 -5
  21. package/lib/table/src/util.min.js +1 -1
  22. package/lib/ui/index.js +1 -1
  23. package/lib/ui/index.min.js +1 -1
  24. package/lib/ui/src/log.js +1 -1
  25. package/lib/ui/src/log.min.js +1 -1
  26. package/package.json +2 -2
  27. package/packages/table/src/cell.ts +23 -11
  28. package/packages/table/src/table.ts +13 -6
  29. package/packages/table/src/util.ts +6 -5
  30. /package/es/{iconfont.1736327177051.ttf → iconfont.1736406719113.ttf} +0 -0
  31. /package/es/{iconfont.1736327177051.woff → iconfont.1736406719113.woff} +0 -0
  32. /package/es/{iconfont.1736327177051.woff2 → iconfont.1736406719113.woff2} +0 -0
  33. /package/lib/{iconfont.1736327177051.ttf → iconfont.1736406719113.ttf} +0 -0
  34. /package/lib/{iconfont.1736327177051.woff → iconfont.1736406719113.woff} +0 -0
  35. /package/lib/{iconfont.1736327177051.woff2 → iconfont.1736406719113.woff2} +0 -0
@@ -447,6 +447,9 @@ function rowToVisible($xeTable, row) {
447
447
  scrollYStore,
448
448
  fullAllDataRowIdData
449
449
  } = internalData;
450
+ const {
451
+ rowHeight
452
+ } = scrollYStore;
450
453
  const tableBody = refTableBody.value;
451
454
  const {
452
455
  leftList,
@@ -480,19 +483,19 @@ function rowToVisible($xeTable, row) {
480
483
  // 如果是虚拟渲染滚动
481
484
  if (scrollYLoad) {
482
485
  if (showOverflow) {
483
- return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * scrollYStore.rowHeight);
486
+ return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * rowHeight);
484
487
  }
485
488
  let scrollTop = 0;
486
- const rest = fullAllDataRowIdData[rowid];
487
- const rHeight = rest ? rest.height : 0;
489
+ const rowRest = fullAllDataRowIdData[rowid];
490
+ const rHeight = rowRest ? rowRest.height || rowHeight : rowHeight;
488
491
  for (let i = 0; i < afterFullData.length; i++) {
489
492
  const currRow = afterFullData[i];
490
493
  const currRowid = getRowid($xeTable, currRow);
491
494
  if (currRow === row || currRowid === rowid) {
492
495
  break;
493
496
  }
494
- const rest = fullAllDataRowIdData[currRowid];
495
- scrollTop += rest ? rest.height : 0;
497
+ const rowRest = fullAllDataRowIdData[currRowid];
498
+ scrollTop += rowRest ? rowRest.height || rowHeight : rowHeight;
496
499
  }
497
500
  if (scrollTop < bodyScrollTop) {
498
501
  return $xeTable.scrollTo(null, scrollTop - offsetFixedLeft - 1);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=void 0,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getAllConvertColumns=(e,l)=>{let t=[];return e.forEach(e=>{e.parentId=l?l.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(t.push(e),t.push(...getAllConvertColumns(e.children,e))):t.push(e))}),t},convertHeaderColumnToRows=e=>{let l=1,r=(t,e)=>{if(e&&(t.level=e.level+1,l<t.level)&&(l=t.level),t.children&&t.children.length&&t.children.some(e=>e.visible)){let l=0;t.children.forEach(e=>{e.visible&&(r(e,t),l+=e.colSpan)}),t.colSpan=l}else t.colSpan=1},t=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<l;e++)t.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=l-e.level+1,t[e.level-1].push(e)}),t};function restoreScrollLocation(e,l,t){let r=e.internalData;return e.clearScroll().then(()=>{if(l||t)return r.lastScrollLeft=0,r.lastScrollTop=0,r.inVirtualScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.bodyScrollType="",e.scrollTo(l,t)})}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var l=e.props,e=e.getComputeMaps().computeRowOpts,l=l.rowId,e=e.value;return l||e.keyField||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let handleFieldOrColumn=(e,l)=>l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null;function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginWidth(e){var l,t;return e?(t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight),e.offsetWidth+l+t):0}function queryCellElement(e,l){return e.querySelector(".vxe-cell"+l)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:l,data:t,resetValue:r,checked:o})=>({label:e,value:l,data:t,resetValue:r,checked:!!o,_checked:!!o})):e}function toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getCellValue(e,l){return _xeUtils.default.get(e,l.field)}function setCellValue(e,l,t){return _xeUtils.default.set(e,l.field,t)}function getRefElem(e){if(e){e=e.value;if(e)return e.$el||e}return null}function getColReMaxWidth(e){var l=e.$table,l=l.getComputeMaps().computeResizableOpts,l=l.value.maxWidth;if(l){e=_xeUtils.default.isFunction(l)?l(e):l;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,o=l.props,n=l.getComputeMaps().computeResizableOpts,n=n.value.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,a,u,n=o.showHeaderOverflow,{showHeaderOverflow:e,minWidth:o}=t,t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?n:e,n="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let s=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(n&&(e=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),t=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),n=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),c=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),i=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),s+=e+t+n+c+i+a+r+u),o){var c,e=l.getRefMaps().refTableBody,t=e.value,n=t?t.$el:null;if(n){if((0,_dom.isScale)(o))return c=(n.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(o)*c));if((0,_dom.isPx)(o))return Math.max(s,_xeUtils.default.toInteger(o))}}return s}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function createColumn(e,l,t){return isColumnInfo(l)?l:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,l,t))}function watchColumn(t,e,r){Object.keys(e).forEach(l=>{(0,_vue.watch)(()=>e[l],e=>{r.update(l,e),t&&("filters"===l?(t.setFilter(r,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(l)&&t.handleRefreshColumnQueue())})})}function assembleColumn(e,l,t,r){var e=e.reactData,o=e.staticColumns,n=l.parentNode,r=r?r.columnConfig:null,r=r?r.children:o;n&&r&&(r.splice(_xeUtils.default.arrayIndexOf(n.children,l),0,t),e.staticColumns=o.slice(0))}function destroyColumn(e,l){var e=e.reactData,t=e.staticColumns,r=_xeUtils.default.findTree(t,e=>e.id===l.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=t.slice(0)}function getRootColumn(e,l){var e=e.internalData,t=e.fullColumnIdData;if(!l)return null;let r=l.parentId;for(;t[r];){let e=t[r].column;if(!(r=e.parentId))return e}return l}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:a}=l[e];if(-1<n&&-1<o&&i&&a){if(o===t&&n===r)return{rowspan:i,colspan:a};if(o<=t&&t<o+i&&n<=r&&r<n+a)return{rowspan:0,colspan:0}}}}function clearTableDefaultStatus(e){var{props:l,internalData:t}=e;return t.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(l.keyboardConfig||l.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&l.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(t,r){var{reactData:e,internalData:o}=t,n=t.props.showOverflow,i=t.getRefMaps().refTableBody,{columnStore:e,scrollYLoad:l}=e,{afterFullData:a,scrollYStore:o,fullAllDataRowIdData:u}=o,i=i.value,{leftList:e,rightList:s}=e,i=i?i.$el:null,c=getRowid(t,r);let d=0,f=(e.forEach(e=>{d+=e.renderWidth}),0);if(s.forEach(e=>{f+=e.renderWidth}),i){e=i.clientHeight,s=i.scrollTop,i=i.querySelector(`[rowid="${c}"]`);if(i){var m=i.offsetParent,m=i.offsetTop+(m?m.offsetTop:0),i=i.clientHeight;if(m<s||s+e<m)return t.scrollTo(null,m);if(e+s<=m+i)return t.scrollTo(null,s+i)}else if(l){if(n)return t.scrollTo(null,(t.findRowIndexOf(a,r)-1)*o.rowHeight);let l=0;m=u[c],i=m?m.height:0;for(let e=0;e<a.length;e++){var h=a[e],g=getRowid(t,h);if(h===r||g===c)break;h=u[g];l+=h?h.height:0}return l<s?t.scrollTo(null,l-d-1):t.scrollTo(null,l+i-(e-f-1))}}return Promise.resolve()}function colToVisible(o,n,l){var{reactData:i,internalData:a}=o,u=o.getRefMaps().refTableBody,{columnStore:i,scrollXLoad:s}=i,c=a.visibleColumn,{leftList:a,rightList:i}=i,u=u.value,u=u?u.$el:null;if(!n.fixed){let t=0,r=(a.forEach(e=>{t+=e.renderWidth}),0);if(i.forEach(e=>{r+=e.renderWidth}),u){a=u.clientWidth,i=u.scrollLeft;let e=null;if(l&&(l=getRowid(o,l),e=u.querySelector(`[rowid="${l}"] .`+n.id)),e=e||u.querySelector("."+n.id)){l=e.offsetParent,u=e.offsetLeft+(l?l.offsetLeft:0),l=e.clientWidth;if(u<i+t)return o.scrollTo(u-t-1);if(u+l-i>a-r)return o.scrollTo(u+l-(a-r-1))}else if(s){let l=0;u=n.renderWidth;for(let e=0;e<c.length;e++){var d=c[e];if(d===n||d.id===n.id)break;l+=d.renderWidth}return l<i?o.scrollTo(l-t-1):o.scrollTo(l+u-(a-r-1))}}}return Promise.resolve()}exports.handleFieldOrColumn=handleFieldOrColumn;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=void 0,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getAllConvertColumns=(e,l)=>{let t=[];return e.forEach(e=>{e.parentId=l?l.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(t.push(e),t.push(...getAllConvertColumns(e.children,e))):t.push(e))}),t},convertHeaderColumnToRows=e=>{let l=1,r=(t,e)=>{if(e&&(t.level=e.level+1,l<t.level)&&(l=t.level),t.children&&t.children.length&&t.children.some(e=>e.visible)){let l=0;t.children.forEach(e=>{e.visible&&(r(e,t),l+=e.colSpan)}),t.colSpan=l}else t.colSpan=1},t=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<l;e++)t.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=l-e.level+1,t[e.level-1].push(e)}),t};function restoreScrollLocation(e,l,t){let r=e.internalData;return e.clearScroll().then(()=>{if(l||t)return r.lastScrollLeft=0,r.lastScrollTop=0,r.inVirtualScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.bodyScrollType="",e.scrollTo(l,t)})}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var l=e.props,e=e.getComputeMaps().computeRowOpts,l=l.rowId,e=e.value;return l||e.keyField||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let handleFieldOrColumn=(e,l)=>l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null;function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginWidth(e){var l,t;return e?(t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight),e.offsetWidth+l+t):0}function queryCellElement(e,l){return e.querySelector(".vxe-cell"+l)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:l,data:t,resetValue:r,checked:o})=>({label:e,value:l,data:t,resetValue:r,checked:!!o,_checked:!!o})):e}function toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getCellValue(e,l){return _xeUtils.default.get(e,l.field)}function setCellValue(e,l,t){return _xeUtils.default.set(e,l.field,t)}function getRefElem(e){if(e){e=e.value;if(e)return e.$el||e}return null}function getColReMaxWidth(e){var l=e.$table,l=l.getComputeMaps().computeResizableOpts,l=l.value.maxWidth;if(l){e=_xeUtils.default.isFunction(l)?l(e):l;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,o=l.props,n=l.getComputeMaps().computeResizableOpts,n=n.value.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,a,u,n=o.showHeaderOverflow,{showHeaderOverflow:e,minWidth:o}=t,t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?n:e,n="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let s=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(n&&(e=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),t=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),n=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),c=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),i=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),s+=e+t+n+c+i+a+r+u),o){var c,e=l.getRefMaps().refTableBody,t=e.value,n=t?t.$el:null;if(n){if((0,_dom.isScale)(o))return c=(n.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(o)*c));if((0,_dom.isPx)(o))return Math.max(s,_xeUtils.default.toInteger(o))}}return s}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function createColumn(e,l,t){return isColumnInfo(l)?l:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,l,t))}function watchColumn(t,e,r){Object.keys(e).forEach(l=>{(0,_vue.watch)(()=>e[l],e=>{r.update(l,e),t&&("filters"===l?(t.setFilter(r,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(l)&&t.handleRefreshColumnQueue())})})}function assembleColumn(e,l,t,r){var e=e.reactData,o=e.staticColumns,n=l.parentNode,r=r?r.columnConfig:null,r=r?r.children:o;n&&r&&(r.splice(_xeUtils.default.arrayIndexOf(n.children,l),0,t),e.staticColumns=o.slice(0))}function destroyColumn(e,l){var e=e.reactData,t=e.staticColumns,r=_xeUtils.default.findTree(t,e=>e.id===l.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=t.slice(0)}function getRootColumn(e,l){var e=e.internalData,t=e.fullColumnIdData;if(!l)return null;let r=l.parentId;for(;t[r];){let e=t[r].column;if(!(r=e.parentId))return e}return l}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:a}=l[e];if(-1<n&&-1<o&&i&&a){if(o===t&&n===r)return{rowspan:i,colspan:a};if(o<=t&&t<o+i&&n<=r&&r<n+a)return{rowspan:0,colspan:0}}}}function clearTableDefaultStatus(e){var{props:l,internalData:t}=e;return t.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(l.keyboardConfig||l.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&l.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(t,r){var{reactData:e,internalData:o}=t,n=t.props.showOverflow,i=t.getRefMaps().refTableBody,{columnStore:e,scrollYLoad:l}=e,{afterFullData:a,scrollYStore:o,fullAllDataRowIdData:u}=o,s=o.rowHeight,o=i.value,{leftList:i,rightList:e}=e,o=o?o.$el:null,c=getRowid(t,r);let d=0,f=(i.forEach(e=>{d+=e.renderWidth}),0);if(e.forEach(e=>{f+=e.renderWidth}),o){i=o.clientHeight,e=o.scrollTop,o=o.querySelector(`[rowid="${c}"]`);if(o){var m=o.offsetParent,m=o.offsetTop+(m?m.offsetTop:0),o=o.clientHeight;if(m<e||e+i<m)return t.scrollTo(null,m);if(i+e<=m+o)return t.scrollTo(null,e+o)}else if(l){if(n)return t.scrollTo(null,(t.findRowIndexOf(a,r)-1)*s);let l=0;m=u[c],o=m&&m.height||s;for(let e=0;e<a.length;e++){var h=a[e],g=getRowid(t,h);if(h===r||g===c)break;h=u[g];l+=h&&h.height||s}return l<e?t.scrollTo(null,l-d-1):t.scrollTo(null,l+o-(i-f-1))}}return Promise.resolve()}function colToVisible(o,n,l){var{reactData:i,internalData:a}=o,u=o.getRefMaps().refTableBody,{columnStore:i,scrollXLoad:s}=i,c=a.visibleColumn,{leftList:a,rightList:i}=i,u=u.value,u=u?u.$el:null;if(!n.fixed){let t=0,r=(a.forEach(e=>{t+=e.renderWidth}),0);if(i.forEach(e=>{r+=e.renderWidth}),u){a=u.clientWidth,i=u.scrollLeft;let e=null;if(l&&(l=getRowid(o,l),e=u.querySelector(`[rowid="${l}"] .`+n.id)),e=e||u.querySelector("."+n.id)){l=e.offsetParent,u=e.offsetLeft+(l?l.offsetLeft:0),l=e.clientWidth;if(u<i+t)return o.scrollTo(u-t-1);if(u+l-i>a-r)return o.scrollTo(u+l-(a-r-1))}else if(s){let l=0;u=n.renderWidth;for(let e=0;e<c.length;e++){var d=c[e];if(d===n||d.id===n.id)break;l+=d.renderWidth}return l<i?o.scrollTo(l-t-1):o.scrollTo(l+u-(a-r-1))}}}return Promise.resolve()}exports.handleFieldOrColumn=handleFieldOrColumn;
package/lib/ui/index.js CHANGED
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
13
13
  exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.hooks = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
14
14
  var _core = require("@vxe-ui/core");
15
15
  var _utils = require("./src/utils");
16
- const version = exports.version = "4.10.3";
16
+ const version = exports.version = "4.10.4";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.10.3",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{gt:60},scrollY:{gt:100}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.10.4",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{gt:60},scrollY:{gt:100}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
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${"4.10.3"}`;
11
+ const version = `table v${"4.10.4"}`;
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 v4.10.3",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 v4.10.4",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": "4.10.3",
3
+ "version": "4.10.4",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
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": "^4.3.67"
31
+ "vxe-pc-ui": "^4.3.68"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.11",
@@ -45,14 +45,18 @@ function renderTitleSuffixIcon (params: VxeTableDefines.CellRenderHeaderParams &
45
45
  }
46
46
 
47
47
  function renderCellDragIcon (params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }) {
48
- const { $table } = params
48
+ const { $table, column } = params
49
+ const { context } = $table
50
+ const tableSlots = context.slots
49
51
  const tableProps = $table.props
52
+ const { slots } = column
50
53
  const { dragConfig } = tableProps
51
54
  const { computeRowDragOpts } = $table.getComputeMaps()
52
55
  const rowDragOpts = computeRowDragOpts.value
53
56
  const { icon, trigger, disabledMethod } = rowDragOpts
54
57
  const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null)
55
58
  const isDisabled = rDisabledMethod && rDisabledMethod(params)
59
+ const rowDragIconSlot = (slots ? slots.rowDragIcon || slots['row-drag-icon'] : null) || tableSlots.rowDragIcon || tableSlots['row-drag-icon']
56
60
  const ons: Record<string, any> = {}
57
61
  if (trigger !== 'cell') {
58
62
  ons.onMousedown = (evnt: MouseEvent) => {
@@ -68,11 +72,13 @@ function renderCellDragIcon (params: VxeTableDefines.CellRenderBodyParams & { $t
68
72
  'is--disabled': isDisabled
69
73
  }],
70
74
  ...ons
71
- }, [
72
- h('i', {
73
- class: icon || (dragConfig ? dragConfig.rowIcon : '') || getIcon().TABLE_DRAG_ROW
74
- })
75
- ])
75
+ }, rowDragIconSlot
76
+ ? $table.callSlot(rowDragIconSlot, params)
77
+ : [
78
+ h('i', {
79
+ class: icon || (dragConfig ? dragConfig.rowIcon : '') || getIcon().TABLE_DRAG_ROW
80
+ })
81
+ ])
76
82
  }
77
83
 
78
84
  function renderCellBaseVNs (params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }, content: VxeComponentSlotType | VxeComponentSlotType[]) {
@@ -104,6 +110,9 @@ function renderCellBaseVNs (params: VxeTableDefines.CellRenderBodyParams & { $ta
104
110
 
105
111
  function renderHeaderCellDragIcon (params: VxeTableDefines.CellRenderHeaderParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }) {
106
112
  const { $table, column } = params
113
+ const { context } = $table
114
+ const tableSlots = context.slots
115
+ const { slots } = column
107
116
  const { computeColumnOpts, computeColumnDragOpts } = $table.getComputeMaps()
108
117
  const columnOpts = computeColumnOpts.value
109
118
  const columnDragOpts = computeColumnDragOpts.value
@@ -111,6 +120,7 @@ function renderHeaderCellDragIcon (params: VxeTableDefines.CellRenderHeaderParam
111
120
  if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
112
121
  if (!column.fixed && (isPeerDrag || isCrossDrag || !column.parentId)) {
113
122
  const isDisabled = disabledMethod && disabledMethod(params)
123
+ const columnDragIconSlot = (slots ? slots.columnDragIcon || slots['column-drag-icon'] : null) || tableSlots.columnDragIcon || tableSlots['column-drag-icon']
114
124
  const ons: Record<string, any> = {}
115
125
  if (trigger !== 'cell') {
116
126
  ons.onMousedown = (evnt: MouseEvent) => {
@@ -126,11 +136,13 @@ function renderHeaderCellDragIcon (params: VxeTableDefines.CellRenderHeaderParam
126
136
  'is--disabled': isDisabled
127
137
  }],
128
138
  ...ons
129
- }, [
130
- h('i', {
131
- class: icon || getIcon().TABLE_DRAG_COLUMN
132
- })
133
- ])
139
+ }, columnDragIconSlot
140
+ ? $table.callSlot(columnDragIconSlot, params)
141
+ : [
142
+ h('i', {
143
+ class: icon || getIcon().TABLE_DRAG_COLUMN
144
+ })
145
+ ])
134
146
  }
135
147
  }
136
148
  return renderEmptyElement($table)
@@ -894,10 +894,7 @@ export default defineComponent({
894
894
  const row = afterFullData[rIndex]
895
895
  const rowid = getRowid($xeTable, row)
896
896
  const rowRest = fullAllDataRowIdData[rowid]
897
- if (!rowRest) {
898
- break
899
- }
900
- offsetTop += rowRest.height || rowHeight
897
+ offsetTop += rowRest ? (rowRest.height || rowHeight) : rowHeight
901
898
  if (toVisibleIndex === -1 && scrollTop < offsetTop) {
902
899
  toVisibleIndex = rIndex
903
900
  }
@@ -5146,7 +5143,7 @@ export default defineComponent({
5146
5143
  * @param {Number} scrollLeft 左距离
5147
5144
  * @param {Number} scrollTop 上距离
5148
5145
  */
5149
- scrollTo (scrollLeft: number, scrollTop?: number) {
5146
+ scrollTo (scrollLeft, scrollTop) {
5150
5147
  const tableBody = refTableBody.value
5151
5148
  const tableHeader = refTableHeader.value
5152
5149
  const tableFooter = refTableFooter.value
@@ -5196,6 +5193,8 @@ export default defineComponent({
5196
5193
  * @param {ColumnInfo} fieldOrColumn 列配置
5197
5194
  */
5198
5195
  scrollToRow (row, fieldOrColumn) {
5196
+ const { showOverflow } = props
5197
+ const { scrollYLoad, scrollXLoad } = reactData
5199
5198
  const rest = []
5200
5199
  if (row) {
5201
5200
  if (props.treeConfig) {
@@ -5207,7 +5206,15 @@ export default defineComponent({
5207
5206
  if (fieldOrColumn) {
5208
5207
  rest.push(handleScrollToRowColumn(fieldOrColumn, row))
5209
5208
  }
5210
- return Promise.all(rest)
5209
+ return Promise.all(rest).then(() => {
5210
+ if (row) {
5211
+ if (!showOverflow && (scrollYLoad || scrollXLoad)) {
5212
+ calcCellHeight()
5213
+ calcCellWidth()
5214
+ }
5215
+ return nextTick()
5216
+ }
5217
+ })
5211
5218
  },
5212
5219
  /**
5213
5220
  * 如果有滚动条,则滚动到对应的列
@@ -385,6 +385,7 @@ export function rowToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMet
385
385
  const { refTableBody } = $xeTable.getRefMaps()
386
386
  const { columnStore, scrollYLoad } = reactData
387
387
  const { afterFullData, scrollYStore, fullAllDataRowIdData } = internalData
388
+ const { rowHeight } = scrollYStore
388
389
  const tableBody = refTableBody.value
389
390
  const { leftList, rightList } = columnStore
390
391
  const bodyElem = tableBody ? tableBody.$el as HTMLDivElement : null
@@ -415,19 +416,19 @@ export function rowToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMet
415
416
  // 如果是虚拟渲染滚动
416
417
  if (scrollYLoad) {
417
418
  if (showOverflow) {
418
- return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * scrollYStore.rowHeight)
419
+ return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * rowHeight)
419
420
  }
420
421
  let scrollTop = 0
421
- const rest = fullAllDataRowIdData[rowid]
422
- const rHeight = rest ? rest.height : 0
422
+ const rowRest = fullAllDataRowIdData[rowid]
423
+ const rHeight = rowRest ? (rowRest.height || rowHeight) : rowHeight
423
424
  for (let i = 0; i < afterFullData.length; i++) {
424
425
  const currRow = afterFullData[i]
425
426
  const currRowid = getRowid($xeTable, currRow)
426
427
  if (currRow === row || currRowid === rowid) {
427
428
  break
428
429
  }
429
- const rest = fullAllDataRowIdData[currRowid]
430
- scrollTop += rest ? rest.height : 0
430
+ const rowRest = fullAllDataRowIdData[currRowid]
431
+ scrollTop += rowRest ? (rowRest.height || rowHeight) : rowHeight
431
432
  }
432
433
  if (scrollTop < bodyScrollTop) {
433
434
  return $xeTable.scrollTo(null, scrollTop - offsetFixedLeft - 1)