vxe-table 4.17.2 → 4.17.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.
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.assembleColumn = assembleColumn;
7
- exports.calcTreeLine = calcTreeLine;
8
7
  exports.clearTableAllStatus = clearTableAllStatus;
9
8
  exports.clearTableDefaultStatus = clearTableDefaultStatus;
10
9
  exports.colToVisible = colToVisible;
@@ -24,7 +23,6 @@ exports.getColReMinWidth = getColReMinWidth;
24
23
  exports.getColumnList = getColumnList;
25
24
  exports.getFirstChildColumn = getFirstChildColumn;
26
25
  exports.getLastChildColumn = getLastChildColumn;
27
- exports.getOffsetSize = getOffsetSize;
28
26
  exports.getRefElem = getRefElem;
29
27
  exports.getRootColumn = getRootColumn;
30
28
  exports.getRowUniqueId = getRowUniqueId;
@@ -668,96 +666,6 @@ function getLastChildColumn(column) {
668
666
  }
669
667
  return column;
670
668
  }
671
- const lineOffsetSizes = {
672
- mini: 3,
673
- small: 2,
674
- medium: 1,
675
- large: 0
676
- };
677
- function countTreeExpandSize(prevRow, params) {
678
- let count = 1;
679
- if (!prevRow) {
680
- return count;
681
- }
682
- const {
683
- $table
684
- } = params;
685
- const reactData = $table.reactData;
686
- const {
687
- treeExpandedFlag
688
- } = reactData;
689
- const internalData = $table.internalData;
690
- const {
691
- treeExpandedMaps
692
- } = internalData;
693
- const {
694
- computeTreeOpts
695
- } = $table.getComputeMaps();
696
- const treeOpts = computeTreeOpts.value;
697
- const {
698
- transform,
699
- mapChildrenField
700
- } = treeOpts;
701
- const childrenField = treeOpts.children || treeOpts.childrenField;
702
- const rowChildren = prevRow[transform ? mapChildrenField : childrenField];
703
- if (rowChildren && treeExpandedFlag && treeExpandedMaps[getRowid($table, prevRow)]) {
704
- for (let index = 0; index < rowChildren.length; index++) {
705
- count += countTreeExpandSize(rowChildren[index], params);
706
- }
707
- }
708
- return count;
709
- }
710
- function getOffsetSize($xeTable) {
711
- const {
712
- computeSize
713
- } = $xeTable.getComputeMaps();
714
- const vSize = computeSize.value;
715
- if (vSize) {
716
- return lineOffsetSizes[vSize] || 0;
717
- }
718
- return 0;
719
- }
720
- function calcTreeLine(params, prevRow) {
721
- const {
722
- $table,
723
- row
724
- } = params;
725
- const tableProps = $table.props;
726
- const tableReactData = $table.reactData;
727
- const tableInternalData = $table.internalData;
728
- const {
729
- showOverflow
730
- } = tableProps;
731
- const {
732
- scrollYLoad
733
- } = tableReactData;
734
- const {
735
- fullAllDataRowIdData
736
- } = tableInternalData;
737
- const {
738
- computeRowOpts,
739
- computeCellOpts,
740
- computeDefaultRowHeight
741
- } = $table.getComputeMaps();
742
- const rowOpts = computeRowOpts.value;
743
- const cellOpts = computeCellOpts.value;
744
- const defaultRowHeight = computeDefaultRowHeight.value;
745
- const rowid = getRowid($table, row);
746
- const rowRest = fullAllDataRowIdData[rowid];
747
- const currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
748
- let expandSize = 1;
749
- if (prevRow) {
750
- expandSize = countTreeExpandSize(prevRow, params);
751
- }
752
- let cellHeight = currCellHeight;
753
- const vnHeight = rowRest.height;
754
- if (scrollYLoad) {
755
- if (!showOverflow) {
756
- cellHeight = vnHeight || currCellHeight;
757
- }
758
- }
759
- return cellHeight * expandSize - (prevRow ? 1 : 12 - getOffsetSize($table));
760
- }
761
669
  function clearTableDefaultStatus($xeTable) {
762
670
  const {
763
671
  props,
@@ -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.convertHeaderToGridRows=convertHeaderToGridRows,exports.createColumn=createColumn,exports.createHandleGetRowId=createHandleGetRowId,exports.createHandleUpdateRowId=createHandleUpdateRowId,exports.createInternalData=createInternalData,exports.destroyColumn=destroyColumn,exports.encodeRowid=encodeRowid,exports.getCalcHeight=getCalcHeight,exports.getCellRestHeight=getCellRestHeight,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getColumnList=getColumnList,exports.getFirstChildColumn=getFirstChildColumn,exports.getLastChildColumn=getLastChildColumn,exports.getOffsetSize=getOffsetSize,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.handleRowidOrRow=handleRowidOrRow,exports.hasDeepKey=hasDeepKey,exports.isColumnInfo=isColumnInfo,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.updateDeepRowKey=updateDeepRowKey,exports.updateFastRowKey=updateFastRowKey,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{tZindex:0,currKeyField:"",isCurrDeepKey:!1,elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},tableWidth:0,tableHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,hoverRow:null,lastScrollLeft:0,lastScrollTop:0,radioReserveRow:null,checkboxReserveRowMap:{},rowExpandedReserveRowMap:{},treeExpandedReserveRowMap:{},treeIndeterminateRowMaps:{},tableFullData:[],afterFullData:[],afterTreeFullData:[],afterGroupFullData:[],afterFullRowMaps:{},tableFullTreeData:[],tableFullGroupData:[],tableSynchData:[],tableSourceData:[],collectColumn:[],tableFullColumn:[],visibleColumn:[],fullAllDataRowIdData:{},fullDataRowIdData:{},visibleDataRowIdData:{},sourceDataRowIdData:{},fullColumnIdData:{},fullColumnFieldData:{},mergeHeaderList:[],mergeHeaderMaps:{},mergeHeaderCellMaps:{},mergeBodyList:[],mergeBodyMaps:{},mergeBodyCellMaps:{},mergeFooterList:[],mergeFooterMaps:{},mergeFooterCellMaps:{},rowExpandedMaps:{},rowExpandLazyLoadedMaps:{},rowGroupExpandedMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},selectCheckboxMaps:{},pendingRowMaps:{},insertRowMaps:{},removeRowMaps:{},cvCacheMaps:{},tHeaderHeight:0,tBodyHeight:0,tFooterHeight:0,teleportToWrapperElem:null,popupToWrapperElem:null,inited:!1,tooltipTimeout:null,initStatus:!1,isActivated:!1}}let getAllConvertColumns=(e,t)=>{let l=[];return e.forEach(e=>{e.parentId=t?t.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(l.push(e),l.push(...getAllConvertColumns(e.children,e))):l.push(e))}),l},convertHeaderColumnToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l.level=e.level+1,t<l.level)&&(t=l.level),l.children&&l.children.length&&l.children.some(e=>e.visible)){let t=0;l.children.forEach(e=>{e.visible&&(r(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)}),l};function convertHeaderToGridRows(t){var l=t.length,a=t[0].reduce((e,t)=>e+t.colSpan,0),n=[],i=[];for(let e=0;e<l;e++){var r=[],o=[];for(let e=0;e<a;e++)r.push(!1),o.push("");n.push(r),i.push(o)}for(let o=0;o<l;o++){let e=0;for(var u of t[o]){var{colSpan:d,rowSpan:s}=u;let r=-1;for(let l=e;l<=a-d;l++){let t=!0;for(let e=0;e<d;e++)if(n[o][l+e]){t=!1;break}if(t){r=l;break}}if(-1===r){for(let l=0;l<=a-d;l++){let t=!0;for(let e=0;e<d;e++)if(n[o][l+e]){t=!1;break}if(t){r=l;break}}if(-1===r)break}for(let t=o;t<o+s;t++)for(let e=r;e<r+d;e++)n[t][e]=!0,i[t][e]=u;e=r+d}}return i}function restoreScrollLocation(e,t,l){var r=e.internalData;return t||l?(r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(t,l)):e.clearScroll()}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function hasDeepKey(e){return-1<e.indexOf(".")}function getRowkey(e){e=e.internalData.currKeyField;return e}function getRowid(e,t){var{isCurrDeepKey:e,currKeyField:l}=e.internalData;return t?encodeRowid((e?getDeepRowIdByKey:getFastRowIdByKey)(t,l)):""}function createHandleUpdateRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?updateDeepRowKey:updateFastRowKey;return{rowKey:l,handleUpdateRowId(e){return e?r(e,l):""}}}function createHandleGetRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:l,handleGetRowId(e){return e?encodeRowid(r(e,l)):""}}}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getDeepRowIdByKey(e,t){return _xeUtils.default.get(e,t)}function updateDeepRowKey(e,t){let l=encodeRowid(getDeepRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),_xeUtils.default.set(e,t,l)),l}function getFastRowIdByKey(e,t){return e[t]}function updateFastRowKey(e,t){let l=encodeRowid(getFastRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),e[t]=l),l}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null}function handleRowidOrRow(e,t){return t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null}function getCellRestHeight(e,t,l,r){return e.resizeHeight||t.height||l.height||e.height||r}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginAndWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function toFilters(e,a){return e&&(_xeUtils.default.isArray(e)?e.map(({label:e,value:t,data:l,resetValue:r,checked:o})=>({label:e,value:t,data:l,resetValue:r,checked:!!o,_checked:!!o,_colId:a})):[])}function toTreePathSeq(e){return e.map((e,t)=>t%2==0?Number(e)+1:".").join("")}function getCellValue(e,t){return _xeUtils.default.get(e,t.field)}function setCellValue(e,t,l){return _xeUtils.default.set(e,t.field,l)}function getRefElem(e){if(e){e=e.value;if(e)return e.$el||e}return null}function getCalcHeight(e){return"unset"!==e&&e||0}function getColReMaxWidth(e){var t=e.$table,t=t.getComputeMaps().computeResizableOpts,t=t.value.maxWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:t,column:l,cell:r}=e,o=t.props,a=t.internalData,t=t.getComputeMaps().computeResizableOpts,t=t.value.minWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var n,i,u,d,t=a.elemStore,e=o.showHeaderOverflow,{showHeaderOverflow:a,minWidth:o}=l,l=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?e:a,e="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;let s=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize((0,_dom.queryElement)(r,".vxe-cell")));if(e&&(a=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--drag-handle")),l=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--checkbox")),e=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--required-icon")),n=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--edit-icon")),i=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-suffix-icon")),d=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--sort")),r=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--filter")),s+=a+l+e+n+i+u+r+d),o){a=getRefElem(t["main-body-scroll"]);if(a){if((0,_dom.isScale)(o))return l=(a.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(o)*l));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 getColumnList(e){let t=[];return e.forEach(e=>{t.push(...e.children&&e.children.length?getColumnList(e.children):[e])}),t}function createColumn(e,t,l){return isColumnInfo(t)?t:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,t,l))}function watchColumn(l,e,r){Object.keys(e).forEach(t=>{(0,_vue.watch)(()=>e[t],e=>{r.update(t,e),l&&("filters"===t?(l.setFilter(r,e),l.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&l.handleRefreshColumnQueue())})})}function assembleColumn(e,t,l,r){var e=e.reactData,o=e.staticColumns,a=t.parentNode,r=r?r.columnConfig:null,n=r?r.children:o;a&&n&&(l.defaultParentId=r?r.id:null,n.splice(_xeUtils.default.arrayIndexOf(a.children,t),0,l),e.staticColumns=o.slice(0))}function destroyColumn(e,t){var e=e.reactData,l=e.staticColumns,r=_xeUtils.default.findTree(l,e=>e.id===t.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=l.slice(0)}function getRootColumn(e,t){var e=e.internalData,l=e.fullColumnIdData;if(!t)return null;let r=t.parentId;for(;l[r];){let e=l[r].column;if(!(r=e.parentId))return e}return t}function getFirstChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.first(t)):e}function getLastChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.last(t)):e}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let lineOffsetSizes={mini:3,small:2,medium:1,large:0};function countTreeExpandSize(e,t){let l=1;if(e){var r=t.$table,o=r.reactData.treeExpandedFlag,a=r.internalData.treeExpandedMaps,n=r.getComputeMaps().computeTreeOpts,n=n.value,{transform:i,mapChildrenField:u}=n,n=n.children||n.childrenField,d=e[i?u:n];if(d&&o&&a[getRowid(r,e)])for(let e=0;e<d.length;e++)l+=countTreeExpandSize(d[e],t)}return l}function getOffsetSize(e){e=e.getComputeMaps().computeSize,e=e.value;return e&&lineOffsetSizes[e]||0}function calcTreeLine(e,t){var{$table:l,row:r}=e,o=l.props.showOverflow,a=l.reactData.scrollYLoad,n=l.internalData.fullAllDataRowIdData,{computeRowOpts:i,computeCellOpts:u,computeDefaultRowHeight:d}=l.getComputeMaps(),i=i.value,u=u.value,d=d.value,n=n[getRowid(l,r)],r=n.resizeHeight||u.height||i.height||n.height||d;let s=1,c=(t&&(s=countTreeExpandSize(t,e)),r);return(c=a&&!o?n.height||r:c)*s-(t?1:12-getOffsetSize(l))}function clearTableDefaultStatus(e){var{props:t,internalData:l}=e,l=(l.initStatus=!1,[e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow()]);return e.clearFilter&&l.push(e.clearFilter()),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&l.push(e.clearSelected()),e.clearCellAreas&&t.mouseConfig&&l.push(e.clearCellAreas(),e.clearCopyCellArea()),Promise.all(l).then(()=>e.clearScroll())}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(e,t){var l=e.props,r=e.reactData,o=e.internalData,{computeLeftFixedWidth:a,computeRightFixedWidth:n,computeRowOpts:i,computeCellOpts:u,computeDefaultRowHeight:d}=e.getComputeMaps(),l=l.showOverflow,{scrollYLoad:r,scrollYTop:s}=r,{elemStore:o,afterFullData:c,fullAllDataRowIdData:f,isResizeCellHeight:p}=o,i=i.value,u=u.value,d=d.value,a=a.value,n=n.value,o=getRefElem(o["main-body-scroll"]),m=getRowid(e,t);if(o){var h=o.clientHeight,g=o.scrollTop,o=o.querySelector(`[rowid="${m}"]`);if(o){var s=o.offsetTop+(r?s:0),o=o.clientHeight;if(s<g||g+h<s)return e.scrollTo(null,s);if(h+g<=s+o)return e.scrollTo(null,g+o)}else if(r)return p||u.height||i.height||!l?(o=(s=f[m]||{}).resizeHeight||u.height||i.height||s.height||d,(r=s.oTop)<g?e.scrollTo(null,r-a-1):e.scrollTo(null,r+o-(h-n-1))):e.scrollTo(null,(e.findRowIndexOf(c,t)-1)*d)}return Promise.resolve()}function colToVisible(l,r,t){var o=l.reactData,a=l.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:i}=l.getComputeMaps(),{scrollXLoad:o,scrollXLeft:u}=o,{elemStore:a,visibleColumn:d}=a,n=n.value,i=i.value,a=getRefElem(a["main-body-scroll"]);if(!r.fixed&&a){var s=a.clientWidth,c=a.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=a.querySelector(`[rowid="${t}"] .`+r.id)),e=e||a.querySelector("."+r.id)){t=e.offsetLeft+(o?u:0),a=e.clientWidth;if(t<c+n)return l.scrollTo(t-n-1);if(s-i<t+a-c)return l.scrollTo(t+a-(s-i-1))}else if(o){let t=0;u=r.renderWidth;for(let e=0;e<d.length;e++){var f=d[e];if(f===r||f.id===r.id)break;t+=f.renderWidth}return t<c?l.scrollTo(t-n-1):l.scrollTo(t+u-(s-i-1))}}return Promise.resolve()}
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.convertHeaderToGridRows=convertHeaderToGridRows,exports.createColumn=createColumn,exports.createHandleGetRowId=createHandleGetRowId,exports.createHandleUpdateRowId=createHandleUpdateRowId,exports.createInternalData=createInternalData,exports.destroyColumn=destroyColumn,exports.encodeRowid=encodeRowid,exports.getCalcHeight=getCalcHeight,exports.getCellRestHeight=getCellRestHeight,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getColumnList=getColumnList,exports.getFirstChildColumn=getFirstChildColumn,exports.getLastChildColumn=getLastChildColumn,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.handleRowidOrRow=handleRowidOrRow,exports.hasDeepKey=hasDeepKey,exports.isColumnInfo=isColumnInfo,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.updateDeepRowKey=updateDeepRowKey,exports.updateFastRowKey=updateFastRowKey,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{tZindex:0,currKeyField:"",isCurrDeepKey:!1,elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},tableWidth:0,tableHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,hoverRow:null,lastScrollLeft:0,lastScrollTop:0,radioReserveRow:null,checkboxReserveRowMap:{},rowExpandedReserveRowMap:{},treeExpandedReserveRowMap:{},treeIndeterminateRowMaps:{},tableFullData:[],afterFullData:[],afterTreeFullData:[],afterGroupFullData:[],afterFullRowMaps:{},tableFullTreeData:[],tableFullGroupData:[],tableSynchData:[],tableSourceData:[],collectColumn:[],tableFullColumn:[],visibleColumn:[],fullAllDataRowIdData:{},fullDataRowIdData:{},visibleDataRowIdData:{},sourceDataRowIdData:{},fullColumnIdData:{},fullColumnFieldData:{},mergeHeaderList:[],mergeHeaderMaps:{},mergeHeaderCellMaps:{},mergeBodyList:[],mergeBodyMaps:{},mergeBodyCellMaps:{},mergeFooterList:[],mergeFooterMaps:{},mergeFooterCellMaps:{},rowExpandedMaps:{},rowExpandLazyLoadedMaps:{},rowGroupExpandedMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},selectCheckboxMaps:{},pendingRowMaps:{},insertRowMaps:{},removeRowMaps:{},cvCacheMaps:{},tHeaderHeight:0,tBodyHeight:0,tFooterHeight:0,teleportToWrapperElem:null,popupToWrapperElem:null,inited:!1,tooltipTimeout:null,initStatus:!1,isActivated:!1}}let getAllConvertColumns=(e,t)=>{let l=[];return e.forEach(e=>{e.parentId=t?t.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(l.push(e),l.push(...getAllConvertColumns(e.children,e))):l.push(e))}),l},convertHeaderColumnToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l.level=e.level+1,t<l.level)&&(t=l.level),l.children&&l.children.length&&l.children.some(e=>e.visible)){let t=0;l.children.forEach(e=>{e.visible&&(r(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)}),l};function convertHeaderToGridRows(t){var l=t.length,n=t[0].reduce((e,t)=>e+t.colSpan,0),i=[],a=[];for(let e=0;e<l;e++){var r=[],o=[];for(let e=0;e<n;e++)r.push(!1),o.push("");i.push(r),a.push(o)}for(let o=0;o<l;o++){let e=0;for(var u of t[o]){var{colSpan:d,rowSpan:s}=u;let r=-1;for(let l=e;l<=n-d;l++){let t=!0;for(let e=0;e<d;e++)if(i[o][l+e]){t=!1;break}if(t){r=l;break}}if(-1===r){for(let l=0;l<=n-d;l++){let t=!0;for(let e=0;e<d;e++)if(i[o][l+e]){t=!1;break}if(t){r=l;break}}if(-1===r)break}for(let t=o;t<o+s;t++)for(let e=r;e<r+d;e++)i[t][e]=!0,a[t][e]=u;e=r+d}}return a}function restoreScrollLocation(e,t,l){var r=e.internalData;return t||l?(r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(t,l)):e.clearScroll()}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function hasDeepKey(e){return-1<e.indexOf(".")}function getRowkey(e){e=e.internalData.currKeyField;return e}function getRowid(e,t){var{isCurrDeepKey:e,currKeyField:l}=e.internalData;return t?encodeRowid((e?getDeepRowIdByKey:getFastRowIdByKey)(t,l)):""}function createHandleUpdateRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?updateDeepRowKey:updateFastRowKey;return{rowKey:l,handleUpdateRowId(e){return e?r(e,l):""}}}function createHandleGetRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:l,handleGetRowId(e){return e?encodeRowid(r(e,l)):""}}}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getDeepRowIdByKey(e,t){return _xeUtils.default.get(e,t)}function updateDeepRowKey(e,t){let l=encodeRowid(getDeepRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),_xeUtils.default.set(e,t,l)),l}function getFastRowIdByKey(e,t){return e[t]}function updateFastRowKey(e,t){let l=encodeRowid(getFastRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),e[t]=l),l}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null}function handleRowidOrRow(e,t){return t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null}function getCellRestHeight(e,t,l,r){return e.resizeHeight||t.height||l.height||e.height||r}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginAndWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function toFilters(e,n){return e&&(_xeUtils.default.isArray(e)?e.map(({label:e,value:t,data:l,resetValue:r,checked:o})=>({label:e,value:t,data:l,resetValue:r,checked:!!o,_checked:!!o,_colId:n})):[])}function toTreePathSeq(e){return e.map((e,t)=>t%2==0?Number(e)+1:".").join("")}function getCellValue(e,t){return _xeUtils.default.get(e,t.field)}function setCellValue(e,t,l){return _xeUtils.default.set(e,t.field,l)}function getRefElem(e){if(e){e=e.value;if(e)return e.$el||e}return null}function getCalcHeight(e){return"unset"!==e&&e||0}function getColReMaxWidth(e){var t=e.$table,t=t.getComputeMaps().computeResizableOpts,t=t.value.maxWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:t,column:l,cell:r}=e,o=t.props,n=t.internalData,t=t.getComputeMaps().computeResizableOpts,t=t.value.minWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,a,u,d,t=n.elemStore,e=o.showHeaderOverflow,{showHeaderOverflow:n,minWidth:o}=l,l=_xeUtils.default.isUndefined(n)||_xeUtils.default.isNull(n)?e:n,e="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;let s=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize((0,_dom.queryElement)(r,".vxe-cell")));if(e&&(n=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--drag-handle")),l=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--checkbox")),e=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--required-icon")),i=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--edit-icon")),a=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-suffix-icon")),d=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--sort")),r=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--filter")),s+=n+l+e+i+a+u+r+d),o){n=getRefElem(t["main-body-scroll"]);if(n){if((0,_dom.isScale)(o))return l=(n.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(o)*l));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 getColumnList(e){let t=[];return e.forEach(e=>{t.push(...e.children&&e.children.length?getColumnList(e.children):[e])}),t}function createColumn(e,t,l){return isColumnInfo(t)?t:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,t,l))}function watchColumn(l,e,r){Object.keys(e).forEach(t=>{(0,_vue.watch)(()=>e[t],e=>{r.update(t,e),l&&("filters"===t?(l.setFilter(r,e),l.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&l.handleRefreshColumnQueue())})})}function assembleColumn(e,t,l,r){var e=e.reactData,o=e.staticColumns,n=t.parentNode,r=r?r.columnConfig:null,i=r?r.children:o;n&&i&&(l.defaultParentId=r?r.id:null,i.splice(_xeUtils.default.arrayIndexOf(n.children,t),0,l),e.staticColumns=o.slice(0))}function destroyColumn(e,t){var e=e.reactData,l=e.staticColumns,r=_xeUtils.default.findTree(l,e=>e.id===t.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=l.slice(0)}function getRootColumn(e,t){var e=e.internalData,l=e.fullColumnIdData;if(!t)return null;let r=t.parentId;for(;l[r];){let e=l[r].column;if(!(r=e.parentId))return e}return t}function getFirstChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.first(t)):e}function getLastChildColumn(e){var t=e.children;return t&&t.length?getFirstChildColumn(_xeUtils.default.last(t)):e}function clearTableDefaultStatus(e){var{props:t,internalData:l}=e,l=(l.initStatus=!1,[e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow()]);return e.clearFilter&&l.push(e.clearFilter()),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&l.push(e.clearSelected()),e.clearCellAreas&&t.mouseConfig&&l.push(e.clearCellAreas(),e.clearCopyCellArea()),Promise.all(l).then(()=>e.clearScroll())}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(e,t){var l=e.props,r=e.reactData,o=e.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:i,computeRowOpts:a,computeCellOpts:u,computeDefaultRowHeight:d}=e.getComputeMaps(),l=l.showOverflow,{scrollYLoad:r,scrollYTop:s}=r,{elemStore:o,afterFullData:c,fullAllDataRowIdData:f,isResizeCellHeight:p}=o,a=a.value,u=u.value,d=d.value,n=n.value,i=i.value,o=getRefElem(o["main-body-scroll"]),m=getRowid(e,t);if(o){var h=o.clientHeight,g=o.scrollTop,o=o.querySelector(`[rowid="${m}"]`);if(o){var s=o.offsetTop+(r?s:0),o=o.clientHeight;if(s<g||g+h<s)return e.scrollTo(null,s);if(h+g<=s+o)return e.scrollTo(null,g+o)}else if(r)return p||u.height||a.height||!l?(o=(s=f[m]||{}).resizeHeight||u.height||a.height||s.height||d,(r=s.oTop)<g?e.scrollTo(null,r-n-1):e.scrollTo(null,r+o-(h-i-1))):e.scrollTo(null,(e.findRowIndexOf(c,t)-1)*d)}return Promise.resolve()}function colToVisible(l,r,t){var o=l.reactData,n=l.internalData,{computeLeftFixedWidth:i,computeRightFixedWidth:a}=l.getComputeMaps(),{scrollXLoad:o,scrollXLeft:u}=o,{elemStore:n,visibleColumn:d}=n,i=i.value,a=a.value,n=getRefElem(n["main-body-scroll"]);if(!r.fixed&&n){var s=n.clientWidth,c=n.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=n.querySelector(`[rowid="${t}"] .`+r.id)),e=e||n.querySelector("."+r.id)){t=e.offsetLeft+(o?u:0),n=e.clientWidth;if(t<c+i)return l.scrollTo(t-i-1);if(s-a<t+n-c)return l.scrollTo(t+n-(s-a-1))}else if(o){let t=0;u=r.renderWidth;for(let e=0;e<d.length;e++){var f=d[e];if(f===r||f.id===r.id)break;t+=f.renderWidth}return t<c?l.scrollTo(t-i-1):l.scrollTo(t+u-(s-a-1))}}return Promise.resolve()}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;
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.17.2";
16
+ const version = exports.version = "4.17.4";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -185,7 +185,8 @@ _core.VxeUI.setConfig({
185
185
  hasChildField: 'hasChild',
186
186
  mapChildrenField: '_X_ROW_CHILD',
187
187
  indent: 20,
188
- showIcon: true
188
+ showIcon: true,
189
+ showRootLine: true
189
190
  },
190
191
  expandConfig: {
191
192
  // trigger: 'default',
@@ -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.17.2",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},headerTooltipConfig:{enterable:!0},footerTooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},menuConfig:{destroyOnClose:!0},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{destroyOnClose:!0,multiple:!0,showIcon:!0},floatingFilterConfig:{},aggregateConfig:{padding:!0,rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},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:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:1,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{x:{visible:!0},y:{visible:!0}}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{},gantt:{}}),"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_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",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_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",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.17.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,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},headerTooltipConfig:{enterable:!0},footerTooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},menuConfig:{destroyOnClose:!0},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{destroyOnClose:!0,multiple:!0,showIcon:!0},floatingFilterConfig:{},aggregateConfig:{padding:!0,rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0,showRootLine:!0},expandConfig:{showIcon:!0,mode:"fixed"},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:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:1,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{x:{visible:!0},y:{visible:!0}}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{},gantt:{}}),"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_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",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_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",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,i){return _core.VxeUI.modal.alert(e,o,i)},confirm(e,o,i){return _core.VxeUI.modal.confirm(e,o,i)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,i){return _core.VxeUI.modal.notification(e,o,i)}});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.17.2"}`;
11
+ const version = `table v${"4.17.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.17.2",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.17.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.17.2",
3
+ "version": "4.17.4",
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",
@@ -66,7 +66,7 @@
66
66
  "typescript": "~4.7.4",
67
67
  "vue": "3.4.27",
68
68
  "vue-router": "~4.5.1",
69
- "vxe-gantt": "~4.0.17"
69
+ "vxe-gantt": "~4.0.21"
70
70
  },
71
71
  "vetur": {
72
72
  "tags": "helper/vetur/tags.json",
@@ -2,7 +2,7 @@ import { h, ref, Ref, PropType, inject, nextTick, onMounted, onUnmounted } from
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI } from '../../ui'
5
- import { getOffsetSize, calcTreeLine, getRowid, createHandleGetRowId, getCellRestHeight } from './util'
5
+ import { getRowid, createHandleGetRowId, getCellRestHeight } from './util'
6
6
  import { updateCellTitle, getPropClass } from '../../ui/src/dom'
7
7
  import { isEnableConf } from '../../ui/src/utils'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
@@ -49,22 +49,37 @@ export default defineVxeComponent({
49
49
 
50
50
  const renderLine = (rowid: string, params: VxeTableDefines.CellRenderBodyParams, cellHeight: number): VxeComponentSlotType[] => {
51
51
  const { column } = params
52
- const { afterFullData } = tableInternalData
53
52
  const { treeConfig } = tableProps
53
+ const cellOpts = computeCellOpts.value
54
+ const rowOpts = computeRowOpts.value
55
+ const defaultRowHeight = computeDefaultRowHeight.value
54
56
  const treeOpts = computeTreeOpts.value
55
57
  const { slots, treeNode } = column
56
58
  const { fullAllDataRowIdData } = tableInternalData
57
- if (slots && (slots as any).line) {
58
- return $xeTable.callSlot((slots as any).line, params)
59
- }
60
- const rowRest = fullAllDataRowIdData[rowid]
61
- let rLevel = 0
62
- let prevRow = null
63
- if (rowRest) {
64
- rLevel = rowRest.level
65
- prevRow = rowRest.items[rowRest.treeIndex - 1]
66
- }
67
59
  if (treeConfig && treeNode && (treeOpts.showLine || treeOpts.line)) {
60
+ if (slots && (slots as any).line) {
61
+ return $xeTable.callSlot((slots as any).line, params)
62
+ }
63
+ const rowRest = fullAllDataRowIdData[rowid]
64
+ let rLevel = 0
65
+ let prevRow = null
66
+ let parentRow = null
67
+ let lineHeight = ''
68
+ if (rowRest) {
69
+ rLevel = rowRest.level
70
+ prevRow = rowRest.items[rowRest.treeIndex - 1]
71
+ parentRow = rowRest.parent
72
+ }
73
+ if (!rLevel && !treeOpts.showRootLine) {
74
+ return []
75
+ }
76
+ if (prevRow) {
77
+ const prevRowRest = fullAllDataRowIdData[getRowid($xeTable, prevRow)] || {}
78
+ lineHeight = `${prevRowRest.lineHeight || 0}px`
79
+ } else if (rLevel && parentRow) {
80
+ const parentRowRest = fullAllDataRowIdData[getRowid($xeTable, parentRow)] || {}
81
+ lineHeight = `calc(-1em + ${Math.floor(cellHeight / 2 + getCellRestHeight(parentRowRest, cellOpts, rowOpts, defaultRowHeight) / 2)}px)`
82
+ }
68
83
  return [
69
84
  h('div', {
70
85
  key: 'tl',
@@ -73,9 +88,9 @@ export default defineVxeComponent({
73
88
  h('div', {
74
89
  class: 'vxe-tree--line',
75
90
  style: {
76
- height: `${getRowid($xeTable, afterFullData[0]) === rowid ? 1 : calcTreeLine(params, prevRow)}px`,
91
+ height: lineHeight,
77
92
  bottom: `-${Math.floor(cellHeight / 2)}px`,
78
- left: `${(rLevel * treeOpts.indent) + (rLevel ? 2 - getOffsetSize($xeTable) : 0) + 16}px`
93
+ left: `calc(${(rLevel * treeOpts.indent)}px + 1em)`
79
94
  }
80
95
  })
81
96
  ])
@@ -1637,7 +1637,7 @@ export default defineVxeComponent({
1637
1637
  const customOpts = computeCustomOpts.value
1638
1638
  const { storage, storeOptions } = customOpts
1639
1639
  const isAllCustom = storage === true
1640
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {}, storeOptions)
1640
+ const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
1641
1641
  const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
1642
1642
  const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
1643
1643
  const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
@@ -1734,7 +1734,7 @@ export default defineVxeComponent({
1734
1734
  const customOpts = computeCustomOpts.value
1735
1735
  const { storage, restoreStore, storeOptions } = customOpts
1736
1736
  const isAllCustom = storage === true
1737
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {}, storeOptions)
1737
+ const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
1738
1738
  const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
1739
1739
  const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
1740
1740
  const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
@@ -1907,6 +1907,9 @@ export default defineVxeComponent({
1907
1907
  }
1908
1908
  }
1909
1909
 
1910
+ /**
1911
+ * 计算自适应列宽
1912
+ */
1910
1913
  const calcColumnAutoWidth = (column: VxeTableDefines.ColumnInfo, wrapperEl: HTMLDivElement) => {
1911
1914
  const columnOpts = computeColumnOpts.value
1912
1915
  const { autoOptions } = columnOpts
@@ -1936,6 +1939,9 @@ export default defineVxeComponent({
1936
1939
  return colWidth + leftRightPadding
1937
1940
  }
1938
1941
 
1942
+ /**
1943
+ * 自适应列宽
1944
+ */
1939
1945
  const calcCellWidth = () => {
1940
1946
  const autoWidthColumnList = computeAutoWidthColumnList.value
1941
1947
  const { fullColumnIdData } = internalData
@@ -2069,6 +2075,9 @@ export default defineVxeComponent({
2069
2075
  updateHeight()
2070
2076
  }
2071
2077
 
2078
+ /**
2079
+ * 计算自适应行高
2080
+ */
2072
2081
  const calcCellAutoHeight = (rowRest: VxeTableDefines.RowCacheItem, wrapperEl: HTMLDivElement) => {
2073
2082
  const cellElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`)
2074
2083
  let colHeight = rowRest.height
@@ -2087,12 +2096,17 @@ export default defineVxeComponent({
2087
2096
  return colHeight
2088
2097
  }
2089
2098
 
2099
+ /**
2100
+ * 自适应行高
2101
+ */
2090
2102
  const calcCellHeight = () => {
2103
+ const { treeConfig } = props
2091
2104
  const { tableData, isAllOverflow, scrollYLoad, scrollXLoad } = reactData
2092
2105
  const { fullAllDataRowIdData } = internalData
2106
+ const treeOpts = computeTreeOpts.value
2093
2107
  const defaultRowHeight = computeDefaultRowHeight.value
2094
2108
  const el = refElem.value
2095
- if (!isAllOverflow && (scrollYLoad || scrollXLoad) && el) {
2109
+ if (!isAllOverflow && (scrollYLoad || scrollXLoad || (treeConfig && treeOpts.showLine)) && el) {
2096
2110
  const { handleGetRowId } = createHandleGetRowId($xeTable)
2097
2111
  el.setAttribute('data-calc-row', 'Y')
2098
2112
  tableData.forEach(row => {
@@ -3406,6 +3420,9 @@ export default defineVxeComponent({
3406
3420
  calcScrollbar()
3407
3421
  updateStyle()
3408
3422
  updateRowExpandStyle()
3423
+ if (reFull) {
3424
+ updateTreeLineStyle()
3425
+ }
3409
3426
  return computeScrollLoad().then(() => {
3410
3427
  // 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
3411
3428
  if (reWidth) {
@@ -3423,6 +3440,9 @@ export default defineVxeComponent({
3423
3440
  updateRowOffsetTop()
3424
3441
  }
3425
3442
  updateRowExpandStyle()
3443
+ if (reFull) {
3444
+ updateTreeLineStyle()
3445
+ }
3426
3446
  if (reFull) {
3427
3447
  return computeScrollLoad()
3428
3448
  }
@@ -3773,6 +3793,7 @@ export default defineVxeComponent({
3773
3793
  }
3774
3794
  reactData.isRowLoading = false
3775
3795
  handleRecalculateStyle(false, false, false)
3796
+ updateTreeLineStyle()
3776
3797
  // 如果是自动行高,特殊情况需调用 recalculate 手动刷新
3777
3798
  if (!props.showOverflow) {
3778
3799
  setTimeout(() => {
@@ -3786,6 +3807,7 @@ export default defineVxeComponent({
3786
3807
  .then(() => {
3787
3808
  handleRecalculateStyle(false, true, true)
3788
3809
  updateRowOffsetTop()
3810
+ updateTreeLineStyle()
3789
3811
  resolve()
3790
3812
  })
3791
3813
  } else {
@@ -3794,6 +3816,7 @@ export default defineVxeComponent({
3794
3816
  .then(() => {
3795
3817
  handleRecalculateStyle(false, true, true)
3796
3818
  updateRowOffsetTop()
3819
+ updateTreeLineStyle()
3797
3820
  resolve()
3798
3821
  })
3799
3822
  })
@@ -4154,6 +4177,7 @@ export default defineVxeComponent({
4154
4177
  }
4155
4178
  reactData.treeExpandedFlag++
4156
4179
  return Promise.all(result).then(() => {
4180
+ updateTreeLineStyle()
4157
4181
  return $xeTable.recalculate()
4158
4182
  })
4159
4183
  }
@@ -4610,7 +4634,92 @@ export default defineVxeComponent({
4610
4634
  * 更新树连接线样式
4611
4635
  */
4612
4636
  const updateTreeLineStyle = () => {
4613
- // 待优化
4637
+ const { treeConfig } = props
4638
+ if (!treeConfig) {
4639
+ return
4640
+ }
4641
+ const { tableData } = reactData
4642
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData
4643
+ const cellOpts = computeCellOpts.value
4644
+ const rowOpts = computeRowOpts.value
4645
+ const defaultRowHeight = computeDefaultRowHeight.value
4646
+ const treeOpts = computeTreeOpts.value
4647
+ const { transform, mapChildrenField } = treeOpts
4648
+ const childrenField = treeOpts.children || treeOpts.childrenField
4649
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4650
+ const expParentList: {
4651
+ row: any
4652
+ prevRow: any
4653
+ nextRow: any
4654
+ }[] = []
4655
+
4656
+ const handleNodeRow = (row: any, rIndex: number, rows: any[]) => {
4657
+ const rowid = handleGetRowId(row)
4658
+ const rowRest = fullAllDataRowIdData[rowid] || {}
4659
+ const childList: any[] = row[transform ? mapChildrenField : childrenField]
4660
+ const prevRow = rows[rIndex - 1] || null
4661
+ const nextRow = rows[rIndex + 1] || null
4662
+ if (childList && childList.length && treeExpandedMaps[rowid]) {
4663
+ expParentList.push({ row, prevRow, nextRow })
4664
+ childList.forEach((childRow, crIndex) => {
4665
+ const childRowid = handleGetRowId(childRow)
4666
+ if (treeExpandedMaps[childRowid]) {
4667
+ handleNodeRow(childRow, crIndex, childList)
4668
+ }
4669
+ })
4670
+ } else {
4671
+ if (nextRow) {
4672
+ const nextRowid = handleGetRowId(nextRow)
4673
+ const nextRowRest = fullAllDataRowIdData[nextRowid] || {}
4674
+ const currCellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight)
4675
+ const nextCellHeight = getCellRestHeight(nextRowRest, cellOpts, rowOpts, defaultRowHeight)
4676
+ rowRest.oHeight = currCellHeight
4677
+ rowRest.lineHeight = Math.floor(currCellHeight / 2 + nextCellHeight / 2)
4678
+ } else {
4679
+ rowRest.oHeight = 0
4680
+ rowRest.lineHeight = 0
4681
+ }
4682
+ }
4683
+ }
4684
+ tableData.forEach((row, rIndex) => {
4685
+ handleNodeRow(row, rIndex, tableData)
4686
+ })
4687
+
4688
+ XEUtils.lastArrayEach(expParentList, ({ row, nextRow }) => {
4689
+ const rowid = handleGetRowId(row)
4690
+ const childList: any[] = row[transform ? mapChildrenField : childrenField]
4691
+ const rowRest = fullAllDataRowIdData[rowid]
4692
+ if (rowRest) {
4693
+ const currCellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight)
4694
+ let countOffsetHeight = currCellHeight
4695
+ let countLineHeight = 0
4696
+ childList.forEach((childRow) => {
4697
+ const childRowid = handleGetRowId(childRow)
4698
+ const childRowRest = fullAllDataRowIdData[childRowid] || {}
4699
+ const childList: any[] = childRow[transform ? mapChildrenField : childrenField]
4700
+ if (treeExpandedMaps[childRowid] && childList && childList.length) {
4701
+ countOffsetHeight += (childRowRest.oHeight || 0)
4702
+ countLineHeight += (childRowRest.oHeight || 0)
4703
+ } else {
4704
+ const cellHeight = getCellRestHeight(childRowRest, cellOpts, rowOpts, defaultRowHeight)
4705
+ childRowRest.oHeight = cellHeight
4706
+ childRowRest.lineHeight = cellHeight
4707
+ countOffsetHeight += cellHeight
4708
+ countLineHeight += cellHeight
4709
+ }
4710
+ })
4711
+ if (nextRow) {
4712
+ const nextRowid = handleGetRowId(nextRow)
4713
+ const nextRowRest = fullAllDataRowIdData[nextRowid] || {}
4714
+ const currCellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight)
4715
+ const nextCellHeight = getCellRestHeight(nextRowRest, cellOpts, rowOpts, defaultRowHeight)
4716
+ countOffsetHeight += currCellHeight
4717
+ countLineHeight += Math.floor(currCellHeight / 2 + nextCellHeight / 2)
4718
+ }
4719
+ rowRest.lineHeight = countLineHeight
4720
+ rowRest.oHeight = countOffsetHeight
4721
+ }
4722
+ })
4614
4723
  }
4615
4724
 
4616
4725
  const handleRowExpandScroll = () => {
@@ -7014,6 +7123,7 @@ export default defineVxeComponent({
7014
7123
  }
7015
7124
  reactData.treeExpandedFlag++
7016
7125
  }).then(() => {
7126
+ updateTreeLineStyle()
7017
7127
  if (expList.length) {
7018
7128
  return $xeTable.recalculate()
7019
7129
  }
@@ -7382,7 +7492,7 @@ export default defineVxeComponent({
7382
7492
  const { fullColumnFieldData, collectColumn } = internalData
7383
7493
  const { storage, checkMethod, storeOptions } = customOpts
7384
7494
  const isAllCustom = storage === true
7385
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {}, storeOptions)
7495
+ const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
7386
7496
  const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
7387
7497
  const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
7388
7498
  const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
@@ -8983,7 +9093,7 @@ export default defineVxeComponent({
8983
9093
  const customOpts = computeCustomOpts.value
8984
9094
  const { updateStore, storage, storeOptions } = customOpts
8985
9095
  const isAllCustom = storage === true
8986
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {}, storeOptions)
9096
+ const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
8987
9097
  const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
8988
9098
  const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
8989
9099
  const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
@@ -12988,7 +13098,7 @@ export default defineVxeComponent({
12988
13098
  handleUpdateRowGroup(groupFields)
12989
13099
 
12990
13100
  nextTick(() => {
12991
- const { data, exportConfig, importConfig, treeConfig, showOverflow, highlightCurrentRow, highlightCurrentColumn } = props
13101
+ const { data, exportConfig, importConfig, treeConfig, highlightCurrentRow, highlightCurrentColumn } = props
12992
13102
  const { scrollXStore, scrollYStore } = internalData
12993
13103
  const editOpts = computeEditOpts.value
12994
13104
  const treeOpts = computeTreeOpts.value
@@ -13021,9 +13131,9 @@ export default defineVxeComponent({
13021
13131
  if (props.editConfig && (editOpts.showStatus || editOpts.showUpdateStatus || editOpts.showInsertStatus) && !props.keepSource) {
13022
13132
  warnLog('vxe.error.reqProp', ['keep-source'])
13023
13133
  }
13024
- if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
13025
- warnLog('vxe.error.reqProp', ['show-overflow'])
13026
- }
13134
+ // if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
13135
+ // warnLog('vxe.error.reqProp', ['show-overflow'])
13136
+ // }
13027
13137
  if (treeConfig && !treeOpts.transform && props.stripe) {
13028
13138
  warnLog('vxe.error.noTree', ['stripe'])
13029
13139
  }