vxe-table 3.12.7 → 3.12.8

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.
@@ -405,6 +405,9 @@ function rowToVisible($xeTable, row) {
405
405
  scrollYStore,
406
406
  fullAllDataRowIdData
407
407
  } = internalData;
408
+ const {
409
+ rowHeight
410
+ } = scrollYStore;
408
411
  const {
409
412
  leftList,
410
413
  rightList
@@ -437,19 +440,19 @@ function rowToVisible($xeTable, row) {
437
440
  // 如果是虚拟渲染滚动
438
441
  if (scrollYLoad) {
439
442
  if (showOverflow) {
440
- return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * scrollYStore.rowHeight);
443
+ return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * rowHeight);
441
444
  }
442
445
  let scrollTop = 0;
443
- const rest = fullAllDataRowIdData[rowid];
444
- const rHeight = rest ? rest.height : 0;
446
+ const rowRest = fullAllDataRowIdData[rowid];
447
+ const rHeight = rowRest ? rowRest.height || rowHeight : rowHeight;
445
448
  for (let i = 0; i < afterFullData.length; i++) {
446
449
  const currRow = afterFullData[i];
447
450
  const currRowid = getRowid($xeTable, currRow);
448
451
  if (currRow === row || currRowid === rowid) {
449
452
  break;
450
453
  }
451
- const rest = fullAllDataRowIdData[currRowid];
452
- scrollTop += rest ? rest.height : 0;
454
+ const rowRest = fullAllDataRowIdData[currRowid];
455
+ scrollTop += rowRest ? rowRest.height || rowHeight : rowHeight;
453
456
  }
454
457
  if (scrollTop < bodyScrollTop) {
455
458
  return $xeTable.scrollTo(null, scrollTop - offsetFixedLeft - 1);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMinWidth=getColReMinWidth,exports.getOffsetSize=getOffsetSize,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_log=require("../../ui/src/log");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},lineOffsetSizes=(exports.convertHeaderColumnToRows=convertHeaderColumnToRows,{mini:3,small:2,medium:1});function restoreScrollLocation(e,l,t){let r=e;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 toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){return e.rowOpts.keyField||e.rowId||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}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 handleFieldOrColumn(e,l){return l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null}function assembleColumn(e){var{$el:e,$xetable:l,$xecolumn:t,columnConfig:r}=e,o=t?t.columnConfig:null;o?("development"===process.env.NODE_ENV&&("vxe-table-column"===t.$options._componentTag?(0,_log.errLog)("vxe.error.groupTag",[`<vxe-table-colgroup title=${t.title} ...>`,`<vxe-table-column title=${t.title} ...>`]):"vxe-column"===t.$options._componentTag&&(0,_log.warnLog)("vxe.error.groupTag",[`<vxe-colgroup title=${t.title} ...>`,`<vxe-column title=${t.title} ...>`])),o.children||(o.children=[]),o.children.splice(_xeUtils.default.arrayIndexOf(t.$el.children,e),0,r)):l.staticColumns.splice(_xeUtils.default.arrayIndexOf(l.$refs.hideColumn.children,e),0,r)}function destroyColumn(e){let{$xetable:l,columnConfig:t}=e;e=_xeUtils.default.findTree(l.staticColumns,e=>e===t);e&&e.items.splice(e.index,1)}function getRootColumn(e,l){var 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 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 getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,{showHeaderOverflow:o,resizableOpts:n}=l,n=n.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,u,a,s,{showHeaderOverflow:n,minWidth:e}=t,t=_xeUtils.default.isUndefined(n)||_xeUtils.default.isNull(n)?o:n,o="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let c=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(o&&(n=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),t=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),o=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),i=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),s=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),c+=n+t+o+i+u+a+r+s),e){n=l.$refs.tableBody,t=n?n.$el:null;if(t){if((0,_dom.isScale)(e))return o=(t.clientWidth-1)/100,Math.max(c,Math.floor(_xeUtils.default.toInteger(e)*o));if((0,_dom.isPx)(e))return Math.max(c,_xeUtils.default.toInteger(e))}}return c}function countTreeExpand(e,l){let t=1;if(e){var r=l.$table,o=r.treeOpts,n=e[o.children||o.childrenField];if(n&&r.isTreeExpandByRow(e))for(let e=0;e<n.length;e++)t+=countTreeExpand(n[e],l)}return t}function getOffsetSize(e){e=e.computeSize;return lineOffsetSizes[e]||0}function calcTreeLine(e,l,t){var r=e.$table;let o=1;return t&&(o=countTreeExpand(l[t-1],e)),r.rowHeight*o-(t?1:12-getOffsetSize(r))}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:u}=l[e];if(-1<n&&-1<o&&i&&u){if(o===t&&n===r)return{rowspan:i,colspan:u};if(o<=t&&t<o+i&&n<=r&&r<n+u)return{rowspan:0,colspan:0}}}}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 clearTableDefaultStatus(e){return e.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearEdit&&e.clearEdit(),e.clearSelected&&(e.keyboardConfig||e.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&e.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function createColumn(e,l,t){return isColumnInfo(l)?l:new _columnInfo.ColumnInfo(e,l,t)}function rowToVisible(t,r){var e=t.showOverflow,o=t.$refs.tableBody,{columnStore:n,scrollYLoad:l}=t,{afterFullData:i,scrollYStore:u,fullAllDataRowIdData:a}=t,{leftList:n,rightList:s}=n,o=o?o.$el:null,c=getRowid(t,r);let d=0,f=(n.forEach(e=>{d+=e.renderWidth}),0);if(s.forEach(e=>{f+=e.renderWidth}),o){n=o.clientHeight,s=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<s||s+n<m)return t.scrollTo(null,m);if(n+s<=m+o)return t.scrollTo(null,s+o)}else if(l){if(e)return t.scrollTo(null,(t.findRowIndexOf(i,r)-1)*u.rowHeight);let l=0;m=a[c],o=m?m.height:0;for(let e=0;e<i.length;e++){var g=i[e],h=getRowid(t,g);if(g===r||h===c)break;g=a[h];l+=g?g.height:0}return l<s?t.scrollTo(null,l-d-1):t.scrollTo(null,l+o-(n-f-1))}}return Promise.resolve()}function colToVisible(o,n,l){var{columnStore:i,scrollXLoad:u,visibleColumn:a}=o,s=o.$refs.tableBody,{leftList:i,rightList:c}=i,s=s?s.$el:null;if(!n.fixed){let t=0,r=(i.forEach(e=>{t+=e.renderWidth}),0);if(c.forEach(e=>{r+=e.renderWidth}),s){i=s.clientWidth,c=s.scrollLeft;let e=null;if(l&&(l=getRowid(o,l),e=s.querySelector(`[rowid="${l}"] .`+n.id)),e=e||s.querySelector("."+n.id)){l=e.offsetParent,s=e.offsetLeft+(l?l.offsetLeft:0),l=e.clientWidth;if(s<c+t)return o.scrollTo(s-t-1);if(s+l-c>i-r)return o.scrollTo(s+l-(i-r-1))}else if(u){let l=0;s=n.renderWidth;for(let e=0;e<a.length&&a[e]!==n;e++)l+=a[e].renderWidth;return l<c?o.scrollTo(l-t-1):o.scrollTo(l+s-(i-r-1))}}}return Promise.resolve()}
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMinWidth=getColReMinWidth,exports.getOffsetSize=getOffsetSize,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_log=require("../../ui/src/log");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},lineOffsetSizes=(exports.convertHeaderColumnToRows=convertHeaderColumnToRows,{mini:3,small:2,medium:1});function restoreScrollLocation(e,l,t){let r=e;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 toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){return e.rowOpts.keyField||e.rowId||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}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 handleFieldOrColumn(e,l){return l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null}function assembleColumn(e){var{$el:e,$xetable:l,$xecolumn:t,columnConfig:r}=e,o=t?t.columnConfig:null;o?("development"===process.env.NODE_ENV&&("vxe-table-column"===t.$options._componentTag?(0,_log.errLog)("vxe.error.groupTag",[`<vxe-table-colgroup title=${t.title} ...>`,`<vxe-table-column title=${t.title} ...>`]):"vxe-column"===t.$options._componentTag&&(0,_log.warnLog)("vxe.error.groupTag",[`<vxe-colgroup title=${t.title} ...>`,`<vxe-column title=${t.title} ...>`])),o.children||(o.children=[]),o.children.splice(_xeUtils.default.arrayIndexOf(t.$el.children,e),0,r)):l.staticColumns.splice(_xeUtils.default.arrayIndexOf(l.$refs.hideColumn.children,e),0,r)}function destroyColumn(e){let{$xetable:l,columnConfig:t}=e;e=_xeUtils.default.findTree(l.staticColumns,e=>e===t);e&&e.items.splice(e.index,1)}function getRootColumn(e,l){var 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 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 getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,{showHeaderOverflow:o,resizableOpts:n}=l,n=n.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,u,a,s,{showHeaderOverflow:n,minWidth:e}=t,t=_xeUtils.default.isUndefined(n)||_xeUtils.default.isNull(n)?o:n,o="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let c=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(o&&(n=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),t=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),o=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),i=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),s=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),c+=n+t+o+i+u+a+r+s),e){n=l.$refs.tableBody,t=n?n.$el:null;if(t){if((0,_dom.isScale)(e))return o=(t.clientWidth-1)/100,Math.max(c,Math.floor(_xeUtils.default.toInteger(e)*o));if((0,_dom.isPx)(e))return Math.max(c,_xeUtils.default.toInteger(e))}}return c}function countTreeExpand(e,l){let t=1;if(e){var r=l.$table,o=r.treeOpts,n=e[o.children||o.childrenField];if(n&&r.isTreeExpandByRow(e))for(let e=0;e<n.length;e++)t+=countTreeExpand(n[e],l)}return t}function getOffsetSize(e){e=e.computeSize;return lineOffsetSizes[e]||0}function calcTreeLine(e,l,t){var r=e.$table;let o=1;return t&&(o=countTreeExpand(l[t-1],e)),r.rowHeight*o-(t?1:12-getOffsetSize(r))}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:u}=l[e];if(-1<n&&-1<o&&i&&u){if(o===t&&n===r)return{rowspan:i,colspan:u};if(o<=t&&t<o+i&&n<=r&&r<n+u)return{rowspan:0,colspan:0}}}}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 clearTableDefaultStatus(e){return e.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearEdit&&e.clearEdit(),e.clearSelected&&(e.keyboardConfig||e.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&e.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function createColumn(e,l,t){return isColumnInfo(l)?l:new _columnInfo.ColumnInfo(e,l,t)}function rowToVisible(t,r){var e=t.showOverflow,o=t.$refs.tableBody,{columnStore:n,scrollYLoad:l}=t,{afterFullData:i,scrollYStore:u,fullAllDataRowIdData:a}=t,s=u.rowHeight,{leftList:u,rightList:n}=n,o=o?o.$el:null,c=getRowid(t,r);let d=0,f=(u.forEach(e=>{d+=e.renderWidth}),0);if(n.forEach(e=>{f+=e.renderWidth}),o){u=o.clientHeight,n=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<n||n+u<m)return t.scrollTo(null,m);if(u+n<=m+o)return t.scrollTo(null,n+o)}else if(l){if(e)return t.scrollTo(null,(t.findRowIndexOf(i,r)-1)*s);let l=0;m=a[c],o=m&&m.height||s;for(let e=0;e<i.length;e++){var g=i[e],h=getRowid(t,g);if(g===r||h===c)break;g=a[h];l+=g&&g.height||s}return l<n?t.scrollTo(null,l-d-1):t.scrollTo(null,l+o-(u-f-1))}}return Promise.resolve()}function colToVisible(o,n,l){var{columnStore:i,scrollXLoad:u,visibleColumn:a}=o,s=o.$refs.tableBody,{leftList:i,rightList:c}=i,s=s?s.$el:null;if(!n.fixed){let t=0,r=(i.forEach(e=>{t+=e.renderWidth}),0);if(c.forEach(e=>{r+=e.renderWidth}),s){i=s.clientWidth,c=s.scrollLeft;let e=null;if(l&&(l=getRowid(o,l),e=s.querySelector(`[rowid="${l}"] .`+n.id)),e=e||s.querySelector("."+n.id)){l=e.offsetParent,s=e.offsetLeft+(l?l.offsetLeft:0),l=e.clientWidth;if(s<c+t)return o.scrollTo(s-t-1);if(s+l-c>i-r)return o.scrollTo(s+l-(i-r-1))}else if(u){let l=0;s=n.renderWidth;for(let e=0;e<a.length&&a[e]!==n;e++)l+=a[e].renderWidth;return l<c?o.scrollTo(l-t-1):o.scrollTo(l+s-(i-r-1))}}}return Promise.resolve()}
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.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 = "3.12.7";
16
+ const version = exports.version = "3.12.8";
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.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="3.12.7",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,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.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="3.12.8",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,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${"3.12.7"}`;
11
+ const version = `table v${"3.12.8"}`;
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.12.7",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.12.8",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.12.7",
3
+ "version": "3.12.8",
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": "^3.3.72"
31
+ "vxe-pc-ui": "^3.3.73"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/plugin-transform-modules-commonjs": "^7.25.7",
@@ -50,12 +50,14 @@ function renderTitleSuffixIcon (h: CreateElement, params: VxeTableDefines.CellRe
50
50
 
51
51
  function renderCellDragIcon (h: CreateElement, params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }) {
52
52
  const { $table } = params
53
+ const tableSlots = $table.$scopedSlots
53
54
  const tableProps = $table
54
55
  const { dragConfig } = tableProps
55
56
  const rowDragOpts = $table.computeRowDragOpts
56
57
  const { icon, trigger, disabledMethod } = rowDragOpts
57
58
  const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null)
58
59
  const isDisabled = rDisabledMethod && rDisabledMethod(params)
60
+ const rowDragIconSlot = tableSlots.rowDragIcon || tableSlots['row-drag-icon']
59
61
  const ons: Record<string, any> = {}
60
62
  if (trigger !== 'cell') {
61
63
  ons.mousedown = (evnt: MouseEvent) => {
@@ -71,11 +73,13 @@ function renderCellDragIcon (h: CreateElement, params: VxeTableDefines.CellRende
71
73
  'is--disabled': isDisabled
72
74
  }],
73
75
  on: ons
74
- }, [
75
- h('i', {
76
- class: icon || (dragConfig ? dragConfig.rowIcon : '') || getIcon().TABLE_DRAG_ROW
77
- })
78
- ])
76
+ }, rowDragIconSlot
77
+ ? $table.callSlot(rowDragIconSlot as any, params, h)
78
+ : [
79
+ h('i', {
80
+ class: icon || (dragConfig ? dragConfig.rowIcon : '') || getIcon().TABLE_DRAG_ROW
81
+ })
82
+ ])
79
83
  }
80
84
 
81
85
  function renderCellBaseVNs (h: CreateElement, params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }, content: VxeComponentSlotType | VxeComponentSlotType[]) {
@@ -106,12 +110,15 @@ function renderCellBaseVNs (h: CreateElement, params: VxeTableDefines.CellRender
106
110
 
107
111
  function renderHeaderCellDragIcon (h: CreateElement, params: VxeTableDefines.CellRenderHeaderParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }) {
108
112
  const { $table, column } = params
113
+ const tableSlots = $table.$scopedSlots
114
+ const { slots } = column
109
115
  const columnOpts = $table.computeColumnOpts
110
116
  const columnDragOpts = $table.computeColumnDragOpts
111
117
  const { showIcon, icon, trigger, isPeerDrag, isCrossDrag, visibleMethod, disabledMethod } = columnDragOpts
112
118
  if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
113
119
  if (!column.fixed && (isPeerDrag || isCrossDrag || !column.parentId)) {
114
120
  const isDisabled = disabledMethod && disabledMethod(params)
121
+ const columnDragIconSlot = (slots ? slots.columnDragIcon || slots['column-drag-icon'] : null) || tableSlots.columnDragIcon || tableSlots['column-drag-icon']
115
122
  const ons: Record<string, any> = {}
116
123
  if (trigger !== 'cell') {
117
124
  ons.mousedown = (evnt: MouseEvent) => {
@@ -127,11 +134,13 @@ function renderHeaderCellDragIcon (h: CreateElement, params: VxeTableDefines.Cel
127
134
  'is--disabled': isDisabled
128
135
  }],
129
136
  on: ons
130
- }, [
131
- h('i', {
132
- class: icon || getIcon().TABLE_DRAG_COLUMN
133
- })
134
- ])
137
+ }, columnDragIconSlot
138
+ ? $table.callSlot(columnDragIconSlot as any, params, h)
139
+ : [
140
+ h('i', {
141
+ class: icon || getIcon().TABLE_DRAG_COLUMN
142
+ })
143
+ ])
135
144
  }
136
145
  }
137
146
  return renderEmptyElement($table)
@@ -332,10 +332,7 @@ function handleVirtualYVisible ($xeTable: VxeTableConstructor) {
332
332
  const row = afterFullData[rIndex]
333
333
  const rowid = getRowid($xeTable, row)
334
334
  const rowRest = fullAllDataRowIdData[rowid]
335
- if (!rowRest) {
336
- break
337
- }
338
- offsetTop += rowRest.height || rowHeight
335
+ offsetTop += rowRest ? (rowRest.height || rowHeight) : rowHeight
339
336
  if (toVisibleIndex === -1 && scrollTop < offsetTop) {
340
337
  toVisibleIndex = rIndex
341
338
  }
@@ -7380,9 +7377,9 @@ const Methods = {
7380
7377
  * @param {Number} scrollLeft 左距离
7381
7378
  * @param {Number} scrollTop 上距离
7382
7379
  */
7383
- scrollTo (scrollLeft: any, scrollTop: any) {
7384
- const $xeTable = this
7385
- const internalData = $xeTable
7380
+ scrollTo (scrollLeft: number | null, scrollTop?: number | null) {
7381
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
7382
+ const internalData = $xeTable as unknown as TableInternalData
7386
7383
 
7387
7384
  const { $refs } = this
7388
7385
  const { tableBody, tableHeader, leftBody, rightBody, tableFooter } = $refs
@@ -7429,9 +7426,13 @@ const Methods = {
7429
7426
  * @param {Row} row 行对象
7430
7427
  * @param {ColumnInfo} column 列配置
7431
7428
  */
7432
- scrollToRow (row: any, fieldOrColumn: any) {
7433
- const $xeTable = this
7429
+ scrollToRow (row: any, fieldOrColumn?: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo) {
7430
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
7431
+ const props = $xeTable
7432
+ const reactData = $xeTable as unknown as TableReactData
7434
7433
 
7434
+ const { showOverflow } = props
7435
+ const { scrollYLoad, scrollXLoad } = reactData
7435
7436
  const rest = []
7436
7437
  if (row) {
7437
7438
  if (this.treeConfig) {
@@ -7443,7 +7444,15 @@ const Methods = {
7443
7444
  if (fieldOrColumn) {
7444
7445
  rest.push(handleScrollToRowColumn($xeTable, fieldOrColumn, row))
7445
7446
  }
7446
- return Promise.all(rest)
7447
+ return Promise.all(rest).then(() => {
7448
+ if (row) {
7449
+ if (!showOverflow && (scrollYLoad || scrollXLoad)) {
7450
+ calcCellHeight($xeTable)
7451
+ calcCellWidth($xeTable)
7452
+ }
7453
+ return $xeTable.$nextTick()
7454
+ }
7455
+ })
7447
7456
  },
7448
7457
  /**
7449
7458
  * 如果有滚动条,则滚动到对应的列
@@ -349,6 +349,7 @@ export function rowToVisible ($xeTable: any, row: any) {
349
349
  const tableBody: any = $xeTable.$refs.tableBody
350
350
  const { columnStore, scrollYLoad } = reactData
351
351
  const { afterFullData, scrollYStore, fullAllDataRowIdData } = internalData
352
+ const { rowHeight } = scrollYStore
352
353
  const { leftList, rightList } = columnStore
353
354
  const bodyElem = tableBody ? tableBody.$el as HTMLDivElement : null
354
355
  const rowid = getRowid($xeTable, row)
@@ -378,19 +379,19 @@ export function rowToVisible ($xeTable: any, row: any) {
378
379
  // 如果是虚拟渲染滚动
379
380
  if (scrollYLoad) {
380
381
  if (showOverflow) {
381
- return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * scrollYStore.rowHeight)
382
+ return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * rowHeight)
382
383
  }
383
384
  let scrollTop = 0
384
- const rest = fullAllDataRowIdData[rowid]
385
- const rHeight = rest ? rest.height : 0
385
+ const rowRest = fullAllDataRowIdData[rowid]
386
+ const rHeight = rowRest ? (rowRest.height || rowHeight) : rowHeight
386
387
  for (let i = 0; i < afterFullData.length; i++) {
387
388
  const currRow = afterFullData[i]
388
389
  const currRowid = getRowid($xeTable, currRow)
389
390
  if (currRow === row || currRowid === rowid) {
390
391
  break
391
392
  }
392
- const rest = fullAllDataRowIdData[currRowid]
393
- scrollTop += rest ? rest.height : 0
393
+ const rowRest = fullAllDataRowIdData[currRowid]
394
+ scrollTop += rowRest ? (rowRest.height || rowHeight) : rowHeight
394
395
  }
395
396
  if (scrollTop < bodyScrollTop) {
396
397
  return $xeTable.scrollTo(null, scrollTop - offsetFixedLeft - 1)