vxe-table 3.15.1 → 3.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/filter/mixin.js +29 -10
  6. package/es/table/module/filter/panel.js +173 -142
  7. package/es/table/src/body.js +5 -3
  8. package/es/table/src/footer.js +4 -2
  9. package/es/table/src/header.js +2 -1
  10. package/es/table/src/methods.js +125 -101
  11. package/es/table/src/table.js +3 -0
  12. package/es/table/style.css +18 -0
  13. package/es/table/style.min.css +1 -1
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-table/style.css +18 -0
  17. package/es/vxe-table/style.min.css +1 -1
  18. package/lib/index.css +1 -1
  19. package/lib/index.min.css +1 -1
  20. package/lib/index.umd.js +355 -262
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/table/module/filter/mixin.js +33 -9
  25. package/lib/table/module/filter/mixin.min.js +1 -1
  26. package/lib/table/module/filter/panel.js +153 -122
  27. package/lib/table/module/filter/panel.min.js +1 -1
  28. package/lib/table/src/body.js +5 -2
  29. package/lib/table/src/body.min.js +1 -1
  30. package/lib/table/src/footer.js +4 -2
  31. package/lib/table/src/footer.min.js +1 -1
  32. package/lib/table/src/header.js +2 -1
  33. package/lib/table/src/header.min.js +1 -1
  34. package/lib/table/src/methods.js +151 -122
  35. package/lib/table/src/methods.min.js +1 -1
  36. package/lib/table/src/table.js +3 -0
  37. package/lib/table/src/table.min.js +1 -1
  38. package/lib/table/style/style.css +18 -0
  39. package/lib/table/style/style.min.css +1 -1
  40. package/lib/ui/index.js +1 -1
  41. package/lib/ui/index.min.js +1 -1
  42. package/lib/ui/src/log.js +1 -1
  43. package/lib/ui/src/log.min.js +1 -1
  44. package/lib/vxe-table/style/style.css +18 -0
  45. package/lib/vxe-table/style/style.min.css +1 -1
  46. package/package.json +2 -2
  47. package/packages/table/module/filter/mixin.ts +27 -10
  48. package/packages/table/module/filter/panel.ts +178 -143
  49. package/packages/table/src/body.ts +5 -3
  50. package/packages/table/src/footer.ts +4 -2
  51. package/packages/table/src/header.ts +2 -1
  52. package/packages/table/src/methods.ts +132 -106
  53. package/packages/table/src/table.ts +3 -0
  54. package/styles/components/table-module/filter.scss +16 -0
  55. package/styles/components/table.scss +6 -1
  56. /package/es/{iconfont.1744336394111.ttf → iconfont.1744609828798.ttf} +0 -0
  57. /package/es/{iconfont.1744336394111.woff → iconfont.1744609828798.woff} +0 -0
  58. /package/es/{iconfont.1744336394111.woff2 → iconfont.1744609828798.woff2} +0 -0
  59. /package/lib/{iconfont.1744336394111.ttf → iconfont.1744609828798.ttf} +0 -0
  60. /package/lib/{iconfont.1744336394111.woff → iconfont.1744609828798.woff} +0 -0
  61. /package/lib/{iconfont.1744336394111.woff2 → iconfont.1744609828798.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,D,E,S,T)=>{let R=e.$parent,I=R.$xeGrid;var l=R,r=R,a=R;let O=e.fixedType,{resizable:U,columnKey:k,headerCellClassName:z,headerCellStyle:M,showHeaderOverflow:A,headerAlign:F,align:X,mouseConfig:q}=l,{currentColumn:L,dragCol:G,scrollXLoad:N,scrollYLoad:B,overflowX:W}=r,{fullColumnIdData:K,scrollXStore:P}=a,V=R.computeColumnOpts,Y=R.computeColumnDragOpts,j=R.computeCellOpts;e=R.computeDefaultRowHeight;let J=R.computeHeaderCellOpts,Q=(0,_util.getCellHeight)(J.height||j.height)||e,{disabledMethod:Z,isCrossDrag:ee,isPeerDrag:le}=Y;return S.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:o,editRender:s,cellRender:n}=e,u=e.id,c=K[u]||{},s=s||n,n=s?renderer.get(s.name):null,s=e.children&&e.children.length,p=O?e.fixed!==O&&!s:e.fixed&&W,f=(_xeUtils.default.isBoolean(J.padding)?J:j).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?A:a,t=t||(n?n.tableHeaderCellAlign:"")||F||d||(n?n.tableCellAlign:"")||X;let x="ellipsis"===a;d="title"===a,n=!0===a||"tooltip"===a;let g=d||n||x,m=!1,h=null;i&&(h=i[0],m=i.some(e=>e.checked));a=c.index,c=c._index;let v={$table:R,$grid:I,$rowIndex:T,column:e,columnIndex:a,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:O,type:cellType,isHidden:p,hasFilter:m};var a={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=(N&&!g&&(x=g=!0),V.drag&&"cell"===Y.trigger);let y=!1;b&&(y=!(!Z||!Z(v))),(q||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),V.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,w=_xeUtils.default.isBoolean(e.resizable)?e.resizable:V.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;D||G&&G.id===u||N&&!e.fixed&&(c<P.visibleStartIndex-P.preloadSize||c>P.visibleEndIndex+P.preloadSize)&&(_=!0);c={};return g?c.height=Q+"px":c.minHeight=Q+"px",$("th",{class:["vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":g,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":m,"is--drag-active":V.drag&&!e.fixed&&!y&&(ee||le||!e.parentId),"is--drag-disabled":V.drag&&y,"col--current":L===e},(0,_utils.getClass)(o,v),(0,_utils.getClass)(z,v)],attrs:a,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:C,key:k||N||B||V.useKey||V.drag||s?u:l},[$("div",{class:["vxe-cell",{"c--title":d,"c--tooltip":n,"c--ellipsis":x}],style:c},_||E&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper"},e.renderHeader($,v))]),!p&&w?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,O,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,d,i,e){let o=t.$parent;var l=o,r=o;let s=t.fixedType,n=o.computeColumnOpts,u=o.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,{isColLoading:f,isDragColMove:x}=r;return e.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return!f&&n.drag&&u.animation?a("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(x?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(a,t,d,i,e,l)):a("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:o,tableColumn:s}=this;var n=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:x,scrollXLoad:g,scrollYLoad:m,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:v}=t,C=l.computeMouseOpts;let b=n,y=s,w=!1;return a?y=t:(!(g||m||u)||c||p||(w=!0),f||!i&&x||(y=t),i&&w&&(y=o||[]),b=[y]),i||a||g&&h&&2<y.length&&(n=v[h.id])&&(m=n._index,u=y[0],c=y[y.length-1],p=v[u.id],f=v[c.id],p)&&f&&(x=p._index,t=f._index,m<x?(y=[h].concat(y),b=[[h].concat(b[0])].concat(b.slice(1))):t<m&&(y=y.concat([h]),b=[b[0].concat([h])].concat(b.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},y.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,b)),e&&C.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-copy-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,D,E,S,T)=>{let R=e.$parent,O=R.$xeGrid;var l=R,r=R,a=R;let I=e.fixedType,{resizable:U,columnKey:k,headerCellClassName:z,headerCellStyle:M,showHeaderOverflow:A,headerAlign:X,align:F,mouseConfig:q}=l,{currentColumn:L,dragCol:G,scrollXLoad:N,scrollYLoad:B,overflowX:V}=r,{fullColumnIdData:W,scrollXStore:K}=a,P=R.computeVirtualXOpts,Y=R.computeColumnOpts,j=R.computeColumnDragOpts,J=R.computeCellOpts;e=R.computeDefaultRowHeight;let Q=R.computeHeaderCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e,{disabledMethod:ee,isCrossDrag:le,isPeerDrag:re}=j;return S.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:o,editRender:s,cellRender:n}=e,u=e.id,c=W[u]||{},s=s||n,n=s?renderer.get(s.name):null,s=e.children&&e.children.length,p=I?e.fixed!==I&&!s:e.fixed&&V,f=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?A:a,t=t||(n?n.tableHeaderCellAlign:"")||X||d||(n?n.tableCellAlign:"")||F;let m="ellipsis"===a;d="title"===a,n=!0===a||"tooltip"===a;let x=d||n||m,g=!1,h=null;i&&(h=i[0],g=i.some(e=>e.checked));a=c.index,c=c._index;let v={$table:R,$grid:O,$rowIndex:T,column:e,columnIndex:a,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:I,type:cellType,isHidden:p,hasFilter:g};var a={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=(N&&!x&&(m=x=!0),Y.drag&&"cell"===j.trigger);let y=!1;b&&(y=!(!ee||!ee(v))),(q||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),Y.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,w=_xeUtils.default.isBoolean(e.resizable)?e.resizable:Y.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;D||G&&G.id===u||N&&!e.fixed&&!P.immediate&&(c<K.visibleStartIndex-K.preloadSize||c>K.visibleEndIndex+K.preloadSize)&&(_=!0);c={};return x?c.height=Z+"px":c.minHeight=Z+"px",$("th",{class:["vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":x,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":Y.drag&&!e.fixed&&!y&&(le||re||!e.parentId),"is--drag-disabled":Y.drag&&y,"col--current":L===e},(0,_utils.getClass)(o,v),(0,_utils.getClass)(z,v)],attrs:a,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:C,key:k||N||B||Y.useKey||Y.drag||s?u:l},[$("div",{class:["vxe-cell",{"c--title":d,"c--tooltip":n,"c--ellipsis":m}],style:c},_||E&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper"},e.renderHeader($,v))]),!p&&w?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,I,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,d,i,e){let o=t.$parent;var l=o,r=o;let s=t.fixedType,n=o.computeColumnOpts,u=o.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,{isColLoading:f,isDragColMove:m}=r;return e.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return!f&&n.drag&&u.animation?a("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(m?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(a,t,d,i,e,l)):a("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:o,tableColumn:s}=this;var n=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:m,scrollXLoad:x,scrollYLoad:g,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:v}=t,C=l.computeMouseOpts;let b=n,y=s,w=!1;return a?y=t:(!(x||g||u)||c||p||(w=!0),f||!i&&m||(y=t),i&&w&&(y=o||[]),b=[y]),i||a||x&&h&&2<y.length&&(n=v[h.id])&&(g=n._index,u=y[0],c=y[y.length-1],p=v[u.id],f=v[c.id],p)&&f&&(m=p._index,t=f._index,g<m?(y=[h].concat(y),b=[[h].concat(b[0])].concat(b.slice(1))):t<g&&(y=y.concat([h]),b=[b[0].concat([h])].concat(b.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},y.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,b)),e&&C.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-copy-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
@@ -378,6 +378,116 @@ const updateScrollYStatus = ($xeTable, fullData) => {
378
378
  reactData.scrollYLoad = scrollYLoad;
379
379
  return scrollYLoad;
380
380
  };
381
+ /**
382
+ * 展开与收起树节点
383
+ * @param rows
384
+ * @param expanded
385
+ * @returns
386
+ */
387
+ function handleBaseTreeExpand($xeTable, rows, expanded) {
388
+ const reactData = $xeTable;
389
+ const internalData = $xeTable;
390
+ const {
391
+ treeNodeColumn
392
+ } = reactData;
393
+ const {
394
+ fullAllDataRowIdData,
395
+ tableFullData,
396
+ treeExpandedMaps,
397
+ treeExpandLazyLoadedMaps
398
+ } = internalData;
399
+ const treeOpts = $xeTable.computeTreeOpts;
400
+ const {
401
+ reserve,
402
+ lazy,
403
+ accordion,
404
+ toggleMethod
405
+ } = treeOpts;
406
+ const childrenField = treeOpts.children || treeOpts.childrenField;
407
+ const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
408
+ const result = [];
409
+ const columnIndex = $xeTable.getColumnIndex(treeNodeColumn);
410
+ const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn);
411
+ const {
412
+ handleGetRowId
413
+ } = (0, _util.createHandleGetRowId)($xeTable);
414
+ let validRows = toggleMethod ? rows.filter(row => toggleMethod({
415
+ $table: $xeTable,
416
+ expanded,
417
+ column: treeNodeColumn,
418
+ columnIndex,
419
+ $columnIndex,
420
+ row
421
+ })) : rows;
422
+ if (accordion) {
423
+ validRows = validRows.length ? [validRows[validRows.length - 1]] : [];
424
+ // 同一级只能展开一个
425
+ const matchObj = _xeUtils.default.findTree(tableFullData, item => item === validRows[0], {
426
+ children: childrenField
427
+ });
428
+ if (matchObj) {
429
+ matchObj.items.forEach(item => {
430
+ const rowid = handleGetRowId(item);
431
+ if (treeExpandedMaps[rowid]) {
432
+ delete treeExpandedMaps[rowid];
433
+ }
434
+ });
435
+ }
436
+ }
437
+ if (expanded) {
438
+ validRows.forEach(row => {
439
+ const rowid = handleGetRowId(row);
440
+ if (!treeExpandedMaps[rowid]) {
441
+ const rowRest = fullAllDataRowIdData[rowid];
442
+ if (rowRest) {
443
+ const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
444
+ // 是否使用懒加载
445
+ if (isLoad) {
446
+ result.push(handleAsyncTreeExpandChilds($xeTable, row));
447
+ } else {
448
+ if (row[childrenField] && row[childrenField].length) {
449
+ treeExpandedMaps[rowid] = row;
450
+ }
451
+ }
452
+ }
453
+ }
454
+ });
455
+ } else {
456
+ validRows.forEach(item => {
457
+ const rowid = handleGetRowId(item);
458
+ if (treeExpandedMaps[rowid]) {
459
+ delete treeExpandedMaps[rowid];
460
+ }
461
+ });
462
+ }
463
+ if (reserve) {
464
+ validRows.forEach(row => handleTreeExpandReserve($xeTable, row, expanded));
465
+ }
466
+ reactData.treeExpandedFlag++;
467
+ return Promise.all(result).then(() => {
468
+ return $xeTable.recalculate();
469
+ });
470
+ }
471
+ /**
472
+ * 虚拟树的展开与收起
473
+ * @param rows
474
+ * @param expanded
475
+ * @returns
476
+ */
477
+ function handleVirtualTreeExpand($xeTable, rows, expanded) {
478
+ return handleBaseTreeExpand($xeTable, rows, expanded).then(() => {
479
+ handleVirtualTreeToList($xeTable);
480
+ $xeTable.handleTableData();
481
+ updateAfterDataIndex($xeTable);
482
+ return $xeTable.$nextTick();
483
+ }).then(() => {
484
+ return $xeTable.recalculate(true);
485
+ }).then(() => {
486
+ setTimeout(() => {
487
+ $xeTable.updateCellAreas();
488
+ }, 30);
489
+ });
490
+ }
381
491
  function updateAfterListIndex($xeTable) {
382
492
  const props = $xeTable;
383
493
  const internalData = $xeTable;
@@ -3347,7 +3457,11 @@ const Methods = {
3347
3457
  handleReserveStatus($xeTable);
3348
3458
  $xeTable.checkSelectionStatus();
3349
3459
  return new Promise(resolve => {
3350
- this.$nextTick().then(() => $xeTable.recalculate()).then(() => {
3460
+ this.$nextTick().then(() => handleRecalculateLayout($xeTable, false)).then(() => {
3461
+ calcCellHeight($xeTable);
3462
+ updateRowOffsetTop($xeTable);
3463
+ return handleRecalculateLayout($xeTable, false);
3464
+ }).then(() => {
3351
3465
  let targetScrollLeft = lastScrollLeft;
3352
3466
  let targetScrollTop = lastScrollTop;
3353
3467
  const virtualXOpts = $xeTable.computeVirtualXOpts;
@@ -3360,8 +3474,7 @@ const Methods = {
3360
3474
  targetScrollTop = 0;
3361
3475
  }
3362
3476
  reactData.isRowLoading = false;
3363
- calcCellHeight($xeTable);
3364
- updateRowOffsetTop($xeTable);
3477
+ handleRecalculateLayout($xeTable, false);
3365
3478
  // 是否变更虚拟滚动
3366
3479
  if (oldScrollYLoad === sYLoad) {
3367
3480
  (0, _util.restoreScrollLocation)($xeTable, targetScrollLeft, targetScrollTop).then(() => {
@@ -7506,6 +7619,12 @@ const Methods = {
7506
7619
  const {
7507
7620
  column: newValue
7508
7621
  } = params;
7622
+ const {
7623
+ trigger
7624
+ } = currentColumnOpts;
7625
+ if (trigger === 'manual') {
7626
+ return;
7627
+ }
7509
7628
  const isChange = oldValue !== newValue;
7510
7629
  if (!beforeRowMethod || beforeRowMethod({
7511
7630
  column: newValue,
@@ -7534,6 +7653,12 @@ const Methods = {
7534
7653
  const {
7535
7654
  row: newValue
7536
7655
  } = params;
7656
+ const {
7657
+ trigger
7658
+ } = currentRowOpts;
7659
+ if (trigger === 'manual') {
7660
+ return;
7661
+ }
7537
7662
  const isChange = oldValue !== newValue;
7538
7663
  if (!beforeRowMethod || beforeRowMethod({
7539
7664
  row: newValue,
@@ -9325,8 +9450,8 @@ const Methods = {
9325
9450
  columnIndex,
9326
9451
  $columnIndex,
9327
9452
  row,
9328
- rowIndex: this.getRowIndex(row),
9329
- $rowIndex: this.getVMRowIndex(row)
9453
+ rowIndex: $xeTable.getRowIndex(row),
9454
+ $rowIndex: $xeTable.getVMRowIndex(row)
9330
9455
  })) : rows;
9331
9456
  if (expanded) {
9332
9457
  validRows.forEach(row => {
@@ -9551,7 +9676,8 @@ const Methods = {
9551
9676
  const $xeTable = this;
9552
9677
  const internalData = $xeTable;
9553
9678
  const {
9554
- treeExpandLazyLoadedMaps
9679
+ treeExpandLazyLoadedMaps,
9680
+ treeEATime
9555
9681
  } = internalData;
9556
9682
  const treeOpts = $xeTable.computeTreeOpts;
9557
9683
  const {
@@ -9560,7 +9686,8 @@ const Methods = {
9560
9686
  } = params;
9561
9687
  const {
9562
9688
  lazy,
9563
- trigger
9689
+ trigger,
9690
+ accordion
9564
9691
  } = treeOpts;
9565
9692
  if (trigger === 'manual') {
9566
9693
  return;
@@ -9571,7 +9698,17 @@ const Methods = {
9571
9698
  const expanded = !$xeTable.isTreeExpandByRow(row);
9572
9699
  const columnIndex = $xeTable.getColumnIndex(column);
9573
9700
  const $columnIndex = $xeTable.getVMColumnIndex(column);
9574
- $xeTable.setTreeExpand(row, expanded);
9701
+ if (treeEATime) {
9702
+ clearTimeout(treeEATime);
9703
+ }
9704
+ $xeTable.setTreeExpand(row, expanded).then(() => {
9705
+ if (accordion) {
9706
+ internalData.treeEATime = setTimeout(() => {
9707
+ internalData.treeEATime = undefined;
9708
+ $xeTable.scrollToRow(row);
9709
+ }, 30);
9710
+ }
9711
+ });
9575
9712
  $xeTable.dispatchEvent('toggle-tree-expand', {
9576
9713
  expanded,
9577
9714
  column,
@@ -9611,117 +9748,6 @@ const Methods = {
9611
9748
  });
9612
9749
  return this.setTreeExpand(expandeds, expanded);
9613
9750
  },
9614
- /**
9615
- * 默认,展开与收起树节点
9616
- * @param rows
9617
- * @param expanded
9618
- * @returns
9619
- */
9620
- handleBaseTreeExpand(rows, expanded) {
9621
- const $xeTable = this;
9622
- const reactData = $xeTable;
9623
- const internalData = $xeTable;
9624
- const {
9625
- treeNodeColumn
9626
- } = reactData;
9627
- const {
9628
- fullAllDataRowIdData,
9629
- tableFullData,
9630
- treeExpandedMaps,
9631
- treeExpandLazyLoadedMaps
9632
- } = internalData;
9633
- const treeOpts = $xeTable.computeTreeOpts;
9634
- const {
9635
- reserve,
9636
- lazy,
9637
- accordion,
9638
- toggleMethod
9639
- } = treeOpts;
9640
- const childrenField = treeOpts.children || treeOpts.childrenField;
9641
- const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
9642
- const result = [];
9643
- const columnIndex = $xeTable.getColumnIndex(treeNodeColumn);
9644
- const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn);
9645
- const {
9646
- handleGetRowId
9647
- } = (0, _util.createHandleGetRowId)($xeTable);
9648
- let validRows = toggleMethod ? rows.filter(row => toggleMethod({
9649
- $table: $xeTable,
9650
- expanded,
9651
- column: treeNodeColumn,
9652
- columnIndex,
9653
- $columnIndex,
9654
- row
9655
- })) : rows;
9656
- if (accordion) {
9657
- validRows = validRows.length ? [validRows[validRows.length - 1]] : [];
9658
- // 同一级只能展开一个
9659
- const matchObj = _xeUtils.default.findTree(tableFullData, item => item === validRows[0], {
9660
- children: childrenField
9661
- });
9662
- if (matchObj) {
9663
- matchObj.items.forEach(item => {
9664
- const rowid = handleGetRowId(item);
9665
- if (treeExpandedMaps[rowid]) {
9666
- delete treeExpandedMaps[rowid];
9667
- }
9668
- });
9669
- }
9670
- }
9671
- if (expanded) {
9672
- validRows.forEach(row => {
9673
- const rowid = handleGetRowId(row);
9674
- if (!treeExpandedMaps[rowid]) {
9675
- const rowRest = fullAllDataRowIdData[rowid];
9676
- if (rowRest) {
9677
- const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
9678
- // 是否使用懒加载
9679
- if (isLoad) {
9680
- result.push(handleAsyncTreeExpandChilds($xeTable, row));
9681
- } else {
9682
- if (row[childrenField] && row[childrenField].length) {
9683
- treeExpandedMaps[rowid] = row;
9684
- }
9685
- }
9686
- }
9687
- }
9688
- });
9689
- } else {
9690
- validRows.forEach(item => {
9691
- const rowid = handleGetRowId(item);
9692
- if (treeExpandedMaps[rowid]) {
9693
- delete treeExpandedMaps[rowid];
9694
- }
9695
- });
9696
- }
9697
- if (reserve) {
9698
- validRows.forEach(row => handleTreeExpandReserve($xeTable, row, expanded));
9699
- }
9700
- reactData.treeExpandedFlag++;
9701
- return Promise.all(result).then(() => {
9702
- return $xeTable.recalculate();
9703
- });
9704
- },
9705
- /**
9706
- * 虚拟树的展开与收起
9707
- * @param rows
9708
- * @param expanded
9709
- * @returns
9710
- */
9711
- handleVirtualTreeExpand(rows, expanded) {
9712
- const $xeTable = this;
9713
- return this.handleBaseTreeExpand(rows, expanded).then(() => {
9714
- handleVirtualTreeToList($xeTable);
9715
- this.handleTableData();
9716
- updateAfterDataIndex($xeTable);
9717
- }).then(() => {
9718
- return this.recalculate();
9719
- }).then(() => {
9720
- setTimeout(() => {
9721
- this.updateCellAreas();
9722
- }, 30);
9723
- });
9724
- },
9725
9751
  /**
9726
9752
  * 设置展开树形节点,二个参数设置这一行展开与否
9727
9753
  * 支持单行
@@ -9730,6 +9756,7 @@ const Methods = {
9730
9756
  * @param {Boolean} expanded 是否展开
9731
9757
  */
9732
9758
  setTreeExpand(rows, expanded) {
9759
+ const $xeTable = this;
9733
9760
  const {
9734
9761
  treeOpts
9735
9762
  } = this;
@@ -9743,9 +9770,9 @@ const Methods = {
9743
9770
  if (rows.length) {
9744
9771
  // 如果为虚拟树
9745
9772
  if (transform) {
9746
- return this.handleVirtualTreeExpand(rows, expanded);
9773
+ return handleVirtualTreeExpand($xeTable, rows, expanded);
9747
9774
  } else {
9748
- return this.handleBaseTreeExpand(rows, expanded);
9775
+ return handleBaseTreeExpand($xeTable, rows, expanded);
9749
9776
  }
9750
9777
  }
9751
9778
  }
@@ -10453,7 +10480,8 @@ const Methods = {
10453
10480
  if (isScrollXBig && mouseOpts.area) {
10454
10481
  (0, _log.errLog)('vxe.error.notProp', ['mouse-config.area']);
10455
10482
  }
10456
- $xeTable.$nextTick(() => {
10483
+ calcScrollbar($xeTable);
10484
+ return $xeTable.$nextTick(() => {
10457
10485
  updateStyle($xeTable);
10458
10486
  });
10459
10487
  }
@@ -10572,6 +10600,7 @@ const Methods = {
10572
10600
  if (isScrollYBig && mouseOpts.area) {
10573
10601
  (0, _log.errLog)('vxe.error.notProp', ['mouse-config.area']);
10574
10602
  }
10603
+ calcScrollbar($xeTable);
10575
10604
  return $xeTable.$nextTick().then(() => {
10576
10605
  updateStyle($xeTable);
10577
10606
  });