vxe-table 3.20.8 → 3.20.10

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.
@@ -319,6 +319,16 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
319
319
  if (treeConfig) {
320
320
  tdVNs.push(...renderLine(h, $xeTable, rowid, cellParams, cellHeight));
321
321
  }
322
+ const clVNs = [];
323
+ if (!isVNPreEmptyStatus) {
324
+ clVNs.push(h('div', {
325
+ attrs: {
326
+ colid,
327
+ rowid
328
+ },
329
+ class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
330
+ }, column.renderCell(h, cellParams)));
331
+ }
322
332
  tdVNs.push(h('div', {
323
333
  key: 'tc',
324
334
  class: ['vxe-cell', {
@@ -330,17 +340,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
330
340
  attrs: {
331
341
  title: showTitle ? $xeTable.getCellLabel(row, column) : null
332
342
  }
333
- }, isVNPreEmptyStatus
334
- ? []
335
- : [
336
- h('div', {
337
- attrs: {
338
- colid,
339
- rowid
340
- },
341
- class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
342
- }, column.renderCell(h, cellParams))
343
- ]));
343
+ }, clVNs));
344
344
  if (showValidTip && errorValidItem) {
345
345
  const errRule = errorValidItem.rule;
346
346
  const validSlot = slots ? slots.valid : null;
@@ -440,7 +440,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
440
440
  const $xeGrid = $xeTable.$xeGrid;
441
441
  const $xeGantt = $xeTable.$xeGantt;
442
442
  const { stripe, rowKey, highlightHoverRow, rowClassName, rowStyle, editConfig, treeConfig } = tableProps;
443
- const { hasFixedColumn, treeExpandedFlag, scrollXLoad, scrollYLoad, isAllOverflow, rowExpandedFlag, expandColumn, selectRadioRow, pendingRowFlag, rowExpandHeightFlag, isRowGroupStatus } = tableReactData;
443
+ const { hasFixedColumn, treeExpandedFlag, scrollYLoad, isAllOverflow, rowExpandedFlag, expandColumn, selectRadioRow, pendingRowFlag, rowExpandHeightFlag, isRowGroupStatus } = tableReactData;
444
444
  const { fullAllDataRowIdData, fullColumnIdData, treeExpandedMaps, pendingRowMaps, rowExpandedMaps } = tableInternalData;
445
445
  const checkboxOpts = $xeTable.computeCheckboxOpts;
446
446
  const radioOpts = $xeTable.computeRadioOpts;
@@ -546,7 +546,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
546
546
  rowid
547
547
  },
548
548
  style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(params) : rowStyle) : undefined,
549
- key: rowKey || scrollXLoad || scrollYLoad || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
549
+ key: rowKey || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
550
550
  on: trOn
551
551
  }, tdVNs));
552
552
  // 如果行被展开了
@@ -749,8 +749,8 @@ function updateAfterFullData($xeTable) {
749
749
  const treeOpts = $xeTable.computeTreeOpts;
750
750
  const childrenField = treeOpts.children || treeOpts.childrenField;
751
751
  const { transform, rowField, parentField, mapChildrenField } = treeOpts;
752
- const { isEvery, remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
753
- const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts;
752
+ const { isEvery, remote: allRemoteFilter, filterMethod: allFilterMethod, isDeep: isFilterDeep } = filterOpts;
753
+ const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological, isDeep: isSortDeep } = sortOpts;
754
754
  let tableData = [];
755
755
  let tableTree = [];
756
756
  // 处理数据
@@ -814,7 +814,7 @@ function updateAfterFullData($xeTable) {
814
814
  });
815
815
  tableData = tableTree;
816
816
  }
817
- else if (treeConfig && transform) {
817
+ else if (treeConfig && transform && isFilterDeep !== false) {
818
818
  // 筛选虚拟树
819
819
  tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
820
820
  original: true,
@@ -840,7 +840,7 @@ function updateAfterFullData($xeTable) {
840
840
  });
841
841
  tableData = tableTree;
842
842
  }
843
- else if (treeConfig && transform) {
843
+ else if (treeConfig && transform && isFilterDeep !== false) {
844
844
  // 还原虚拟树
845
845
  tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
846
846
  original: true,
@@ -879,7 +879,7 @@ function updateAfterFullData($xeTable) {
879
879
  }
880
880
  tableData = tableTree;
881
881
  }
882
- else if (treeConfig && transform) {
882
+ else if (treeConfig && transform && isSortDeep !== false) {
883
883
  // 虚拟树的排序
884
884
  if (allSortMethod) {
885
885
  const sortRests = allSortMethod({ data: tableTree, sortList: orderColumns, $table: $xeTable });
@@ -935,7 +935,7 @@ function updateAfterFullData($xeTable) {
935
935
  });
936
936
  tableData = tableTree;
937
937
  }
938
- else if (treeConfig && transform) {
938
+ else if (treeConfig && transform && isSortDeep !== false) {
939
939
  // 还原虚拟树
940
940
  tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
941
941
  original: true,
@@ -11989,17 +11989,26 @@ const tableMethods = {
11989
11989
  },
11990
11990
  /**
11991
11991
  * 如果有滚动条,则滚动到对应的行
11992
- * @param {Row} row 行对象
11993
- * @param {ColumnInfo} column 列配置
11994
11992
  */
11995
- scrollToRow(row, fieldOrColumn, options) {
11993
+ scrollToRow(rowOrRowid, fieldOrColumn, options) {
11996
11994
  const $xeTable = this;
11997
11995
  const props = $xeTable;
11998
11996
  const reactData = $xeTable;
11999
11997
  const internalData = $xeTable;
12000
11998
  const { isAllOverflow, scrollYLoad, scrollXLoad } = reactData;
12001
- const { _sToTime } = internalData;
11999
+ const { fullAllDataRowIdData, _sToTime } = internalData;
12002
12000
  const rest = [];
12001
+ let row;
12002
+ if (XEUtils.isString(rowOrRowid) || XEUtils.isNumber(rowOrRowid)) {
12003
+ const rowid = rowOrRowid;
12004
+ const rowRest = rowid ? fullAllDataRowIdData[rowid] : null;
12005
+ if (rowRest) {
12006
+ row = rowRest.row;
12007
+ }
12008
+ }
12009
+ else {
12010
+ row = rowOrRowid;
12011
+ }
12003
12012
  if (row) {
12004
12013
  if (props.treeConfig) {
12005
12014
  rest.push($xeTable.scrollToTreeRow(row));
@@ -1551,6 +1551,8 @@ export default {
1551
1551
  const aggregateOpts = $xeTable.computeAggregateOpts;
1552
1552
  const rowDragOpts = $xeTable.computeRowDragOpts;
1553
1553
  const areaOpts = $xeTable.computeAreaOpts;
1554
+ const sortOpts = $xeTable.computeSortOpts;
1555
+ const filterOpts = $xeTable.computeFilterOpts;
1554
1556
  const { groupFields } = aggregateOpts;
1555
1557
  if (props.rowId) {
1556
1558
  warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField']);
@@ -1573,6 +1575,14 @@ export default {
1573
1575
  if (treeConfig && !treeOpts.transform && props.stripe) {
1574
1576
  warnLog('vxe.error.noTree', ['stripe']);
1575
1577
  }
1578
+ if (treeConfig && !treeOpts.transform) {
1579
+ if (sortOpts.isDeep) {
1580
+ warnLog('vxe.error.reqSupportProp', ['transform=false', 'sort-config.isDeep=false']);
1581
+ }
1582
+ if (filterOpts.isDeep) {
1583
+ warnLog('vxe.error.reqSupportProp', ['transform=false', 'filter-config.isDeep=false']);
1584
+ }
1585
+ }
1576
1586
  if (props.showFooter && !(props.footerMethod || props.footerData)) {
1577
1587
  warnLog('vxe.error.reqProp', ['footer-data | footer-method']);
1578
1588
  }
@@ -2291,7 +2301,10 @@ export default {
2291
2301
  minWidth: tableTipConfig.minWidth,
2292
2302
  minHeight: tableTipConfig.minHeight,
2293
2303
  maxWidth: tableTipConfig.maxWidth,
2294
- maxHeight: tableTipConfig.maxHeight
2304
+ maxHeight: tableTipConfig.maxHeight,
2305
+ placement: tableTipConfig.placement,
2306
+ defaultPlacement: tableTipConfig.defaultPlacement,
2307
+ popupClassName: tableTipConfig.popupClassName
2295
2308
  },
2296
2309
  scopedSlots: currTooltipSlot
2297
2310
  ? {
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.20.8";
3
+ export const version = "3.20.10";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -67,7 +67,8 @@ VxeUI.setConfig({
67
67
  strict: true
68
68
  },
69
69
  tooltipConfig: {
70
- enterable: true
70
+ enterable: true,
71
+ defaultPlacement: 'top'
71
72
  },
72
73
  headerTooltipConfig: {
73
74
  enterable: true
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"3.20.8"}`;
3
+ const version = `table v${"3.20.10"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/lib/index.umd.js CHANGED
@@ -2005,7 +2005,7 @@ function getClass(property, params) {
2005
2005
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2006
2006
 
2007
2007
 
2008
- const version = "3.20.8";
2008
+ const version = "3.20.10";
2009
2009
  core_.VxeUI.version = version;
2010
2010
  core_.VxeUI.tableVersion = version;
2011
2011
  core_.VxeUI.setConfig({
@@ -2072,7 +2072,8 @@ core_.VxeUI.setConfig({
2072
2072
  strict: true
2073
2073
  },
2074
2074
  tooltipConfig: {
2075
- enterable: true
2075
+ enterable: true,
2076
+ defaultPlacement: 'top'
2076
2077
  },
2077
2078
  headerTooltipConfig: {
2078
2079
  enterable: true
@@ -2746,7 +2747,7 @@ function wheelScrollTopTo(diffNum, cb) {
2746
2747
  const {
2747
2748
  log: log_log
2748
2749
  } = core_.VxeUI;
2749
- const log_version = `table v${"3.20.8"}`;
2750
+ const log_version = `table v${"3.20.10"}`;
2750
2751
  const warnLog = log_log.create('warn', log_version);
2751
2752
  const errLog = log_log.create('error', log_version);
2752
2753
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -6286,22 +6287,22 @@ const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe
6286
6287
  */function handleVirtualTreeToList($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{fullAllDataRowIdData,treeExpandedMaps,rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);const fullData=[];const expandMaps={};if(treeConfig&&treeOpts.transform){const childrenField=treeOpts.children||treeOpts.childrenField;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterTreeFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&treeExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}else if(isRowGroupStatus){const{childrenField}=aggregateOpts;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(internalData.afterGroupFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&rowGroupExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}return internalData.afterFullData;}/**
6287
6288
  * 编译处理后全量的表格数据
6288
6289
  * 如果存在筛选条件,继续处理
6289
- */function updateAfterFullData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullColumn,tableFullData,tableFullTreeData,tableFullGroupData}=internalData;const filterOpts=$xeTable.computeFilterOpts;const sortOpts=$xeTable.computeSortOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{transform,rowField,parentField,mapChildrenField}=treeOpts;const{isEvery,remote:allRemoteFilter,filterMethod:allFilterMethod}=filterOpts;const{remote:allRemoteSort,sortMethod:allSortMethod,multiple:sortMultiple,chronological}=sortOpts;let tableData=[];let tableTree=[];// 处理数据
6290
+ */function updateAfterFullData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullColumn,tableFullData,tableFullTreeData,tableFullGroupData}=internalData;const filterOpts=$xeTable.computeFilterOpts;const sortOpts=$xeTable.computeSortOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{transform,rowField,parentField,mapChildrenField}=treeOpts;const{isEvery,remote:allRemoteFilter,filterMethod:allFilterMethod,isDeep:isFilterDeep}=filterOpts;const{remote:allRemoteSort,sortMethod:allSortMethod,multiple:sortMultiple,chronological,isDeep:isSortDeep}=sortOpts;let tableData=[];let tableTree=[];// 处理数据
6290
6291
  if(!allRemoteFilter||!allRemoteSort){const filterColumns=[];let orderColumns=[];tableFullColumn.forEach(column=>{const{field,sortable,order,filters}=column;if(!allRemoteFilter&&filters&&filters.length){const valueList=[];const itemList=[];filters.forEach(item=>{if(item.checked){itemList.push(item);valueList.push(item.value);}});if(itemList.length){filterColumns.push({column,valueList,itemList});}}if(!allRemoteSort&&sortable&&order){orderColumns.push({column,field,property:field,order:order,sortTime:column.sortTime});}});if(sortMultiple&&chronological&&orderColumns.length>1){orderColumns=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(orderColumns,'sortTime');}// 处理筛选
6291
6292
  // 支持单列、多列、组合筛选
6292
6293
  if(!allRemoteFilter&&filterColumns.length){const handleFilter=row=>{return filterColumns.every(({column,valueList,itemList})=>{const{filterMethod,filterRender}=column;const compConf=isEnableConf(filterRender)?methods_renderer.get(filterRender.name):null;const compFilterMethod=compConf?compConf.tableFilterMethod||compConf.filterMethod:null;const tdFilterMethod=compConf?compConf.tableFilterDefaultMethod||compConf.defaultTableFilterMethod||compConf.defaultFilterMethod:null;const cellValue=getCellValue(row,column);if(filterMethod){return itemList.some(item=>filterMethod({value:item.value,option:item,cellValue,row,column,$table:$xeTable}));}else if(compFilterMethod){return itemList.some(item=>compFilterMethod({value:item.value,option:item,cellValue,row,column,$table:$xeTable}));}else if(allFilterMethod){return allFilterMethod({$table:$xeTable,options:itemList,values:valueList,cellValue,row,column});}else if(tdFilterMethod){return itemList.some(item=>tdFilterMethod({value:item.value,option:item,cellValue,row,column,$table:$xeTable}));}return valueList.indexOf(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,column.field))>-1;});};if(isRowGroupStatus){// 行分组
6293
- tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,handleFilter,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform){// 筛选虚拟树
6294
+ tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,handleFilter,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isFilterDeep!==false){// 筛选虚拟树
6294
6295
  tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,handleFilter,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.filter(handleFilter):tableFullData.filter(handleFilter);tableTree=tableData;}}else{if(isRowGroupStatus){// 还原行分组
6295
- tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform){// 还原虚拟树
6296
+ tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isFilterDeep!==false){// 还原虚拟树
6296
6297
  tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}// 处理排序
6297
6298
  // 支持单列、多列、组合排序
6298
6299
  if(!allRemoteSort&&orderColumns.length){if(isRowGroupStatus){// 行分组的排序
6299
- if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderColumns,$table:$xeTable});tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortRests)?sortRests:tableTree;}else{const treeList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray(tableTree,{key:aggregateOpts.rowField,parentKey:aggregateOpts.parentField,children:aggregateOpts.mapChildrenField});tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(treeList,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order])),{key:aggregateOpts.rowField,parentKey:aggregateOpts.parentField,children:aggregateOpts.childrenField,mapChildren:aggregateOpts.mapChildrenField});}tableData=tableTree;}else if(treeConfig&&transform){// 虚拟树的排序
6300
+ if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderColumns,$table:$xeTable});tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortRests)?sortRests:tableTree;}else{const treeList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray(tableTree,{key:aggregateOpts.rowField,parentKey:aggregateOpts.parentField,children:aggregateOpts.mapChildrenField});tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(treeList,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order])),{key:aggregateOpts.rowField,parentKey:aggregateOpts.parentField,children:aggregateOpts.childrenField,mapChildren:aggregateOpts.mapChildrenField});}tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 虚拟树的排序
6300
6301
  if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderColumns,$table:$xeTable});tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortRests)?sortRests:tableTree;}else{const treeList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray(tableTree,{children:mapChildrenField});tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(treeList,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order])),{key:rowField,parentKey:parentField,children:childrenField,mapChildren:mapChildrenField});}tableData=tableTree;}else{if(allSortMethod){const sortRests=allSortMethod({data:tableData,sortList:orderColumns,$table:$xeTable});tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortRests)?sortRests:tableData;}else{// 兼容 v4
6301
6302
  if(sortMultiple){tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order]));}else{const firstOrderColumn=orderColumns[0];let sortByConfs;// 已废弃,兼容 v2,在 v4 中废弃, sortBy 不能为数组
6302
6303
  if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(firstOrderColumn.sortBy)){sortByConfs=firstOrderColumn.sortBy.map(item=>[item,firstOrderColumn.order]);}tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,sortByConfs||[firstOrderColumn].map(({column,order})=>[getOrderField($xeTable,column),order]));}tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order]));}tableTree=tableData;}}}else{if(isRowGroupStatus){// 还原行分组
6303
6304
  // 还原虚拟树
6304
- tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform){// 还原虚拟树
6305
+ tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 还原虚拟树
6305
6306
  tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{mouseConfig}=props;const{isGroup,currentRow,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const scrollbarOpts=$xeTable.computeScrollbarOpts;const mouseOpts=$xeTable.computeMouseOpts;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const bodyTableElem=getRefElem(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollbarXConf=scrollbarOpts.x||{};const scrollbarYConf=scrollbarOpts.y||{};const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;let xScrollbarVisible=overflowX?'visible':'hidden';if(scrollbarXConf.visible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(scrollbarXConf.visible==='hidden'||scrollbarXConf.visible===false){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';if(scrollbarYConf.visible==='hidden'||scrollbarYConf.visible===false||$xeGanttView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollbarYConf.visible==='visible'){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=$xeTable.$refs.refScrollXLeftCornerElem;const xRightCornerEl=$xeTable.$refs.refScrollXRightCornerElem;const scrollXVirtualEl=$xeTable.$refs.refScrollXVirtualElem;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=$xeTable.$refs.refScrollXWrapperElem;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=$xeTable.$refs.refScrollYVirtualElem;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=$xeTable.$refs.refScrollYTopCornerElem;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=$xeTable.$refs.refScrollYWrapperElem;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=$xeTable.$refs.refScrollYBottomCornerElem;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?$xeTable.$refs.refLeftContainer:$xeTable.$refs.refRightContainer;}layoutList.forEach(layout=>{const wrapperElem=getRefElem(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=getRefElem(elemStore[`${name}-${layout}-scroll`]);const tableElem=getRefElem(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
6306
6307
  // 横向滚动渲染
6307
6308
  let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
@@ -7026,9 +7027,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
7026
7027
  * 如果有滚动条,则滚动到对应的位置
7027
7028
  */scrollTo(scrollLeft,scrollTop){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;internalData.intoRunScroll=true;if(scrollLeft){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollLeft)){scrollTop=scrollLeft.top;scrollLeft=scrollLeft.left;}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollLeft)){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(reactData.scrollXLoad){loadScrollXData($xeTable);}}if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(scrollTop)){setScrollTop(yHandleEl,scrollTop);setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);if(reactData.scrollYLoad){loadScrollYData($xeTable);}}return new Promise(resolve=>{setTimeout(()=>{$xeTable.$nextTick(()=>{internalData.intoRunScroll=false;resolve();});},reactData.scrollXLoad||reactData.scrollYLoad?30:0);});},/**
7028
7029
  * 如果有滚动条,则滚动到对应的行
7029
- * @param {Row} row 行对象
7030
- * @param {ColumnInfo} column 列配置
7031
- */scrollToRow(row,fieldOrColumn,options){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{_sToTime}=internalData;const rest=[];if(row){if(props.treeConfig){rest.push($xeTable.scrollToTreeRow(row));}else{rest.push(rowToVisible($xeTable,row));}}if(fieldOrColumn){rest.push(handleScrollToRowColumn($xeTable,fieldOrColumn,row,options));}if(_sToTime){clearTimeout(_sToTime);}return Promise.all(rest).then(()=>{if(row){if(!isAllOverflow&&(scrollYLoad||scrollXLoad)){calcCellHeight($xeTable);calcCellWidth($xeTable);// 可视区被渲染后位置被偏移
7030
+ */scrollToRow(rowOrRowid,fieldOrColumn,options){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData,_sToTime}=internalData;const rest=[];let row;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrRowid)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrRowid)){const rowid=rowOrRowid;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){row=rowRest.row;}}else{row=rowOrRowid;}if(row){if(props.treeConfig){rest.push($xeTable.scrollToTreeRow(row));}else{rest.push(rowToVisible($xeTable,row));}}if(fieldOrColumn){rest.push(handleScrollToRowColumn($xeTable,fieldOrColumn,row,options));}if(_sToTime){clearTimeout(_sToTime);}return Promise.all(rest).then(()=>{if(row){if(!isAllOverflow&&(scrollYLoad||scrollXLoad)){calcCellHeight($xeTable);calcCellWidth($xeTable);// 可视区被渲染后位置被偏移
7032
7031
  internalData._sToTime=setTimeout(()=>{internalData._sToTime=undefined;if(scrollYLoad){if(props.treeConfig){$xeTable.scrollToTreeRow(row);}else{rowToVisible($xeTable,row);}}if(scrollXLoad&&fieldOrColumn){handleScrollToRowColumn($xeTable,fieldOrColumn,row,options);}},350);}return $xeTable.$nextTick();}});},/**
7033
7032
  * 如果有滚动条,则滚动到第一行
7034
7033
  */scrollToStartRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[0],fieldOrColumn,options);},/**
@@ -7515,6 +7514,16 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
7515
7514
  if (treeConfig) {
7516
7515
  tdVNs.push(...renderLine(h, $xeTable, rowid, cellParams, cellHeight));
7517
7516
  }
7517
+ const clVNs = [];
7518
+ if (!isVNPreEmptyStatus) {
7519
+ clVNs.push(h('div', {
7520
+ attrs: {
7521
+ colid,
7522
+ rowid
7523
+ },
7524
+ class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
7525
+ }, column.renderCell(h, cellParams)));
7526
+ }
7518
7527
  tdVNs.push(h('div', {
7519
7528
  key: 'tc',
7520
7529
  class: ['vxe-cell', {
@@ -7526,13 +7535,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
7526
7535
  attrs: {
7527
7536
  title: showTitle ? $xeTable.getCellLabel(row, column) : null
7528
7537
  }
7529
- }, isVNPreEmptyStatus ? [] : [h('div', {
7530
- attrs: {
7531
- colid,
7532
- rowid
7533
- },
7534
- class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
7535
- }, column.renderCell(h, cellParams))]));
7538
+ }, clVNs));
7536
7539
  if (showValidTip && errorValidItem) {
7537
7540
  const errRule = errorValidItem.rule;
7538
7541
  const validSlot = slots ? slots.valid : null;
@@ -7627,7 +7630,6 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
7627
7630
  const {
7628
7631
  hasFixedColumn,
7629
7632
  treeExpandedFlag,
7630
- scrollXLoad,
7631
7633
  scrollYLoad,
7632
7634
  isAllOverflow,
7633
7635
  rowExpandedFlag,
@@ -7750,7 +7752,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
7750
7752
  rowid
7751
7753
  },
7752
7754
  style: rowStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(rowStyle) ? rowStyle(params) : rowStyle : undefined,
7753
- key: rowKey || scrollXLoad || scrollYLoad || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
7755
+ key: rowKey || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
7754
7756
  on: trOn
7755
7757
  }, tdVNs));
7756
7758
  // 如果行被展开了
@@ -19572,6 +19574,8 @@ function renderBody(h, $xeTable) {
19572
19574
  const aggregateOpts = $xeTable.computeAggregateOpts;
19573
19575
  const rowDragOpts = $xeTable.computeRowDragOpts;
19574
19576
  const areaOpts = $xeTable.computeAreaOpts;
19577
+ const sortOpts = $xeTable.computeSortOpts;
19578
+ const filterOpts = $xeTable.computeFilterOpts;
19575
19579
  const {
19576
19580
  groupFields
19577
19581
  } = aggregateOpts;
@@ -19596,6 +19600,14 @@ function renderBody(h, $xeTable) {
19596
19600
  if (treeConfig && !treeOpts.transform && props.stripe) {
19597
19601
  warnLog('vxe.error.noTree', ['stripe']);
19598
19602
  }
19603
+ if (treeConfig && !treeOpts.transform) {
19604
+ if (sortOpts.isDeep) {
19605
+ warnLog('vxe.error.reqSupportProp', ['transform=false', 'sort-config.isDeep=false']);
19606
+ }
19607
+ if (filterOpts.isDeep) {
19608
+ warnLog('vxe.error.reqSupportProp', ['transform=false', 'filter-config.isDeep=false']);
19609
+ }
19610
+ }
19599
19611
  if (props.showFooter && !(props.footerMethod || props.footerData)) {
19600
19612
  warnLog('vxe.error.reqProp', ['footer-data | footer-method']);
19601
19613
  }
@@ -20305,7 +20317,10 @@ function renderBody(h, $xeTable) {
20305
20317
  minWidth: tableTipConfig.minWidth,
20306
20318
  minHeight: tableTipConfig.minHeight,
20307
20319
  maxWidth: tableTipConfig.maxWidth,
20308
- maxHeight: tableTipConfig.maxHeight
20320
+ maxHeight: tableTipConfig.maxHeight,
20321
+ placement: tableTipConfig.placement,
20322
+ defaultPlacement: tableTipConfig.defaultPlacement,
20323
+ popupClassName: tableTipConfig.popupClassName
20309
20324
  },
20310
20325
  scopedSlots: currTooltipSlot ? {
20311
20326
  content: () => {