vxe-table 4.17.3 → 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.3";
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.3",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,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.3"}`;
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.3",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.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.3",
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.20"
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
  ])
@@ -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 => {
@@ -3779,6 +3793,7 @@ export default defineVxeComponent({
3779
3793
  }
3780
3794
  reactData.isRowLoading = false
3781
3795
  handleRecalculateStyle(false, false, false)
3796
+ updateTreeLineStyle()
3782
3797
  // 如果是自动行高,特殊情况需调用 recalculate 手动刷新
3783
3798
  if (!props.showOverflow) {
3784
3799
  setTimeout(() => {
@@ -3792,6 +3807,7 @@ export default defineVxeComponent({
3792
3807
  .then(() => {
3793
3808
  handleRecalculateStyle(false, true, true)
3794
3809
  updateRowOffsetTop()
3810
+ updateTreeLineStyle()
3795
3811
  resolve()
3796
3812
  })
3797
3813
  } else {
@@ -3800,6 +3816,7 @@ export default defineVxeComponent({
3800
3816
  .then(() => {
3801
3817
  handleRecalculateStyle(false, true, true)
3802
3818
  updateRowOffsetTop()
3819
+ updateTreeLineStyle()
3803
3820
  resolve()
3804
3821
  })
3805
3822
  })
@@ -4617,32 +4634,92 @@ export default defineVxeComponent({
4617
4634
  * 更新树连接线样式
4618
4635
  */
4619
4636
  const updateTreeLineStyle = () => {
4620
- // const { tableData } = reactData
4621
- // const { rowExpandedMaps } = internalData
4622
- // const treeOpts = computeTreeOpts.value
4623
- // const { transform, mapChildrenField } = treeOpts
4624
- // const childrenField = treeOpts.children || treeOpts.childrenField
4625
- // const { handleGetRowId } = createHandleGetRowId($xeTable)
4626
- // // 待优化
4627
- // if (transform) {
4628
- // // x
4629
- // } else {
4630
- // // x
4631
- // }
4632
- // const handleNodeRow = (row: any, parentRow: any) => {
4633
- // const childList: any[] = row[transform ? mapChildrenField : childrenField]
4634
- // if (childList && childList.length) {
4635
- // childList.forEach(childRow => {
4636
- // const childRowid = handleGetRowId(childRow)
4637
- // if (rowExpandedMaps[childRowid]) {
4638
- // handleNodeRow(childRow, row)
4639
- // }
4640
- // })
4641
- // }
4642
- // }
4643
- // tableData.forEach(row => {
4644
- // handleNodeRow(row, null)
4645
- // })
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
+ })
4646
4723
  }
4647
4724
 
4648
4725
  const handleRowExpandScroll = () => {
@@ -13021,7 +13098,7 @@ export default defineVxeComponent({
13021
13098
  handleUpdateRowGroup(groupFields)
13022
13099
 
13023
13100
  nextTick(() => {
13024
- const { data, exportConfig, importConfig, treeConfig, showOverflow, highlightCurrentRow, highlightCurrentColumn } = props
13101
+ const { data, exportConfig, importConfig, treeConfig, highlightCurrentRow, highlightCurrentColumn } = props
13025
13102
  const { scrollXStore, scrollYStore } = internalData
13026
13103
  const editOpts = computeEditOpts.value
13027
13104
  const treeOpts = computeTreeOpts.value
@@ -13054,9 +13131,9 @@ export default defineVxeComponent({
13054
13131
  if (props.editConfig && (editOpts.showStatus || editOpts.showUpdateStatus || editOpts.showInsertStatus) && !props.keepSource) {
13055
13132
  warnLog('vxe.error.reqProp', ['keep-source'])
13056
13133
  }
13057
- if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
13058
- warnLog('vxe.error.reqProp', ['show-overflow'])
13059
- }
13134
+ // if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
13135
+ // warnLog('vxe.error.reqProp', ['show-overflow'])
13136
+ // }
13060
13137
  if (treeConfig && !treeOpts.transform && props.stripe) {
13061
13138
  warnLog('vxe.error.noTree', ['stripe'])
13062
13139
  }
@@ -631,75 +631,6 @@ export function getLastChildColumn (column: VxeTableDefines.ColumnInfo): VxeTabl
631
631
  return column
632
632
  }
633
633
 
634
- const lineOffsetSizes = {
635
- mini: 3,
636
- small: 2,
637
- medium: 1,
638
- large: 0
639
- }
640
-
641
- function countTreeExpandSize (prevRow: any, params: VxeTableDefines.CellRenderBodyParams) {
642
- let count = 1
643
- if (!prevRow) {
644
- return count
645
- }
646
- const { $table } = params
647
- const reactData = $table.reactData
648
- const { treeExpandedFlag } = reactData
649
- const internalData = $table.internalData
650
- const { treeExpandedMaps } = internalData
651
- const { computeTreeOpts } = $table.getComputeMaps()
652
- const treeOpts = computeTreeOpts.value
653
- const { transform, mapChildrenField } = treeOpts
654
- const childrenField = treeOpts.children || treeOpts.childrenField
655
- const rowChildren = prevRow[transform ? mapChildrenField : childrenField]
656
- if (rowChildren && treeExpandedFlag && treeExpandedMaps[getRowid($table, prevRow)]) {
657
- for (let index = 0; index < rowChildren.length; index++) {
658
- count += countTreeExpandSize(rowChildren[index], params)
659
- }
660
- }
661
- return count
662
- }
663
-
664
- export function getOffsetSize ($xeTable: VxeTableConstructor) {
665
- const { computeSize } = $xeTable.getComputeMaps()
666
- const vSize = computeSize.value
667
- if (vSize) {
668
- return lineOffsetSizes[vSize] || 0
669
- }
670
- return 0
671
- }
672
-
673
- export function calcTreeLine (params: VxeTableDefines.CellRenderBodyParams, prevRow: any) {
674
- const { $table, row } = params
675
- const tableProps = $table.props
676
- const tableReactData = $table.reactData
677
- const tableInternalData = $table.internalData
678
-
679
- const { showOverflow } = tableProps
680
- const { scrollYLoad } = tableReactData
681
- const { fullAllDataRowIdData } = tableInternalData
682
- const { computeRowOpts, computeCellOpts, computeDefaultRowHeight } = $table.getComputeMaps()
683
- const rowOpts = computeRowOpts.value
684
- const cellOpts = computeCellOpts.value
685
- const defaultRowHeight = computeDefaultRowHeight.value
686
- const rowid = getRowid($table, row)
687
- const rowRest = fullAllDataRowIdData[rowid]
688
- const currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight
689
- let expandSize = 1
690
- if (prevRow) {
691
- expandSize = countTreeExpandSize(prevRow, params)
692
- }
693
- let cellHeight = currCellHeight
694
- const vnHeight = rowRest.height
695
- if (scrollYLoad) {
696
- if (!showOverflow) {
697
- cellHeight = vnHeight || currCellHeight
698
- }
699
- }
700
- return cellHeight * expandSize - (prevRow ? 1 : (12 - getOffsetSize($table)))
701
- }
702
-
703
634
  export function clearTableDefaultStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
704
635
  const { props, internalData } = $xeTable
705
636
 
@@ -178,7 +178,8 @@ VxeUI.setConfig({
178
178
  hasChildField: 'hasChild',
179
179
  mapChildrenField: '_X_ROW_CHILD',
180
180
  indent: 20,
181
- showIcon: true
181
+ showIcon: true,
182
+ showRootLine: true
182
183
  },
183
184
  expandConfig: {
184
185
  // trigger: 'default',