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.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/filter/mixin.js +29 -10
- package/es/table/module/filter/panel.js +173 -142
- package/es/table/src/body.js +5 -3
- package/es/table/src/footer.js +4 -2
- package/es/table/src/header.js +2 -1
- package/es/table/src/methods.js +125 -101
- package/es/table/src/table.js +3 -0
- package/es/table/style.css +18 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +18 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +355 -262
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/filter/mixin.js +33 -9
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +153 -122
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/src/body.js +5 -2
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +4 -2
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +2 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +151 -122
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +3 -0
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +18 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +18 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/filter/mixin.ts +27 -10
- package/packages/table/module/filter/panel.ts +178 -143
- package/packages/table/src/body.ts +5 -3
- package/packages/table/src/footer.ts +4 -2
- package/packages/table/src/header.ts +2 -1
- package/packages/table/src/methods.ts +132 -106
- package/packages/table/src/table.ts +3 -0
- package/styles/components/table-module/filter.scss +16 -0
- package/styles/components/table.scss +6 -1
- /package/es/{iconfont.1744336394111.ttf → iconfont.1744609828798.ttf} +0 -0
- /package/es/{iconfont.1744336394111.woff → iconfont.1744609828798.woff} +0 -0
- /package/es/{iconfont.1744336394111.woff2 → iconfont.1744609828798.woff2} +0 -0
- /package/lib/{iconfont.1744336394111.ttf → iconfont.1744609828798.ttf} +0 -0
- /package/lib/{iconfont.1744336394111.woff → iconfont.1744609828798.woff} +0 -0
- /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,
|
|
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):[]}}};
|
package/lib/table/src/methods.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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:
|
|
9329
|
-
$rowIndex:
|
|
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
|
-
|
|
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
|
|
9773
|
+
return handleVirtualTreeExpand($xeTable, rows, expanded);
|
|
9747
9774
|
} else {
|
|
9748
|
-
return
|
|
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
|
|
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
|
});
|