vxe-table 4.7.86 → 4.7.88
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/README.md +60 -17
- package/es/grid/src/grid.js +4 -4
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/table.js +67 -42
- package/es/table/src/util.js +22 -12
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +4 -4
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +104 -75
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/table.js +77 -59
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +25 -11
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +2 -2
- 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/package.json +2 -2
- package/packages/grid/src/grid.ts +4 -4
- package/packages/table/src/table.ts +67 -42
- package/packages/table/src/util.ts +22 -12
- package/styles/theme/base.scss +1 -0
- /package/es/{iconfont.1728357720671.ttf → iconfont.1729047473391.ttf} +0 -0
- /package/es/{iconfont.1728357720671.woff → iconfont.1729047473391.woff} +0 -0
- /package/es/{iconfont.1728357720671.woff2 → iconfont.1729047473391.woff2} +0 -0
- /package/lib/{iconfont.1728357720671.ttf → iconfont.1729047473391.ttf} +0 -0
- /package/lib/{iconfont.1728357720671.woff → iconfont.1729047473391.woff} +0 -0
- /package/lib/{iconfont.1728357720671.woff2 → iconfont.1729047473391.woff2} +0 -0
package/lib/table/src/util.js
CHANGED
|
@@ -476,31 +476,42 @@ function colToVisible($xeTable, column) {
|
|
|
476
476
|
refTableBody
|
|
477
477
|
} = $xeTable.getRefMaps();
|
|
478
478
|
const {
|
|
479
|
+
columnStore,
|
|
479
480
|
scrollXLoad
|
|
480
481
|
} = reactData;
|
|
481
482
|
const {
|
|
482
483
|
visibleColumn
|
|
483
484
|
} = internalData;
|
|
485
|
+
const {
|
|
486
|
+
leftList,
|
|
487
|
+
rightList
|
|
488
|
+
} = columnStore;
|
|
484
489
|
const tableBody = refTableBody.value;
|
|
485
490
|
const bodyElem = tableBody ? tableBody.$el : null;
|
|
491
|
+
let offsetFixedLeft = 0;
|
|
492
|
+
leftList.forEach(item => {
|
|
493
|
+
offsetFixedLeft += item.renderWidth;
|
|
494
|
+
});
|
|
495
|
+
let offsetFixedRight = 0;
|
|
496
|
+
rightList.forEach(item => {
|
|
497
|
+
offsetFixedRight += item.renderWidth;
|
|
498
|
+
});
|
|
486
499
|
if (bodyElem) {
|
|
500
|
+
const bodyWidth = bodyElem.clientWidth;
|
|
501
|
+
const bodySrcollLeft = bodyElem.scrollLeft;
|
|
487
502
|
const tdElem = bodyElem.querySelector(`.${column.id}`);
|
|
488
503
|
if (tdElem) {
|
|
489
|
-
const bodyWidth = bodyElem.clientWidth;
|
|
490
|
-
const bodySrcollLeft = bodyElem.scrollLeft;
|
|
491
504
|
const tdOffsetParent = tdElem.offsetParent;
|
|
492
505
|
const tdOffsetLeft = tdElem.offsetLeft + (tdOffsetParent ? tdOffsetParent.offsetLeft : 0);
|
|
493
506
|
const tdWidth = tdElem.clientWidth;
|
|
494
|
-
//
|
|
495
|
-
if (tdOffsetLeft < bodySrcollLeft
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
// 向右定位
|
|
500
|
-
return $xeTable.scrollTo(bodySrcollLeft + tdWidth);
|
|
507
|
+
// 检测是否在可视区中
|
|
508
|
+
if (tdOffsetLeft < bodySrcollLeft + offsetFixedLeft) {
|
|
509
|
+
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - 1);
|
|
510
|
+
} else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft - offsetFixedRight) {
|
|
511
|
+
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - offsetFixedRight + 1);
|
|
501
512
|
}
|
|
502
513
|
} else {
|
|
503
|
-
//
|
|
514
|
+
// 检测是否在虚拟渲染可视区中
|
|
504
515
|
if (scrollXLoad) {
|
|
505
516
|
let scrollLeft = 0;
|
|
506
517
|
for (let index = 0; index < visibleColumn.length; index++) {
|
|
@@ -510,7 +521,10 @@ function colToVisible($xeTable, column) {
|
|
|
510
521
|
}
|
|
511
522
|
scrollLeft += currCol.renderWidth;
|
|
512
523
|
}
|
|
513
|
-
|
|
524
|
+
if (scrollLeft < bodySrcollLeft) {
|
|
525
|
+
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - 1);
|
|
526
|
+
}
|
|
527
|
+
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - offsetFixedRight + 1);
|
|
514
528
|
}
|
|
515
529
|
}
|
|
516
530
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=void 0,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.removeScrollListener=removeScrollListener,exports.restoreScrollListener=restoreScrollListener,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const getAllConvertColumns=(e,l)=>{const t=[];return e.forEach(e=>{e.parentId=l?l.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(t.push(e),t.push(...getAllConvertColumns(e.children,e))):t.push(e))}),t},convertHeaderColumnToRows=e=>{let l=1;const r=(t,e)=>{if(e&&(t.level=e.level+1,l<t.level)&&(l=t.level),t.children&&t.children.length&&t.children.some(e=>e.visible)){let l=0;t.children.forEach(e=>{e.visible&&(r(e,t),l+=e.colSpan)}),t.colSpan=l}else t.colSpan=1},t=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<l;e++)t.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=l-e.level+1,t[e.level-1].push(e)}),t};function restoreScrollLocation(e,l,t){const r=e["internalData"];return e.clearScroll().then(()=>{if(l||t)return r.lastScrollLeft=0,r.lastScrollTop=0,e.scrollTo(l,t)})}function removeScrollListener(e){e&&e._onscroll&&(e.onscroll=null)}function restoreScrollListener(e){e&&e._onscroll&&(e.onscroll=e._onscroll)}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var l=e["props"],e=e.getComputeMaps()["computeRowOpts"],l=l["rowId"],e=e.value;return l||e.keyField||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;const handleFieldOrColumn=(e,l)=>l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null;function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElemenMarginWidth(e){var l,t;return e?(t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight),e.offsetWidth+l+t):0}function queryCellElement(e,l){return e.querySelector(".vxe-cell"+l)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:l,data:t,resetValue:r,checked:o})=>({label:e,value:l,data:t,resetValue:r,checked:!!o,_checked:!!o})):e}function toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getCellValue(e,l){return _xeUtils.default.get(e,l.field)}function setCellValue(e,l,t){return _xeUtils.default.set(e,l.field,t)}function getColReMaxWidth(e){var l=e["$table"],l=l.getComputeMaps()["computeResizableOpts"],l=l.value["maxWidth"];if(l){e=_xeUtils.default.isFunction(l)?l(e):l;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,o=l["props"],n=l.getComputeMaps()["computeResizableOpts"],n=n.value["minWidth"];if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,a,n=o["showHeaderOverflow"],{showHeaderOverflow:e,minWidth:o}=t,t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?n:e,n="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let u=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(n&&(e=getPaddingLeftRightSize(queryCellElement(r,"--title>.vxe-cell--checkbox")),t=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),n=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),s=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),i=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),a=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--filter")),u+=e+t+n+s+i+r+a),o){var s,e=l.getRefMaps()["refTableBody"],t=e.value,n=t?t.$el:null;if(n){if((0,_dom.isScale)(o))return s=(n.clientWidth-1)/100,Math.max(u,Math.floor(_xeUtils.default.toInteger(o)*s));if((0,_dom.isPx)(o))return Math.max(u,_xeUtils.default.toInteger(o))}}return u}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function createColumn(e,l,t){return isColumnInfo(l)?l:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,l,t))}function watchColumn(t,e,r){Object.keys(e).forEach(l=>{(0,_vue.watch)(()=>e[l],e=>{r.update(l,e),t&&("filters"===l?(t.setFilter(r,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(l)&&t.handleRefreshColumnQueue())})})}function assembleColumn(e,l,t,r){var e=e["reactData"],o=e["staticColumns"],n=l.parentNode,r=r?r.columnConfig:null,r=r?r.children:o;n&&r&&(r.splice(_xeUtils.default.arrayIndexOf(n.children,l),0,t),e.staticColumns=o.slice(0))}function destroyColumn(e,l){var e=e["reactData"],t=e["staticColumns"],r=_xeUtils.default.findTree(t,e=>e.id===l.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=t.slice(0)}function getRootColumn(e,l){var e=e["internalData"],t=e["fullColumnIdData"];if(!l)return null;let r=l.parentId;for(;t[r];){const l=t[r].column;if(!(r=l.parentId))return l}return l}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:a}=l[e];if(-1<n&&-1<o&&i&&a){if(o===t&&n===r)return{rowspan:i,colspan:a};if(o<=t&&t<o+i&&n<=r&&r<n+a)return{rowspan:0,colspan:0}}}}function clearTableDefaultStatus(e){var{props:l,internalData:t}=e;return t.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(l.keyboardConfig||l.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&l.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(e,l){var{reactData:t,internalData:r}=e,o=e.getRefMaps()["refTableBody"],t=t["scrollYLoad"],{afterFullData:r,scrollYStore:n}=r,o=o.value,o=o?o.$el:null;if(o){var i=o.querySelector(`[rowid="${getRowid(e,l)}"]`);if(i){var a=o.clientHeight,o=o.scrollTop,u=i.offsetParent,u=i.offsetTop+(u?u.offsetTop:0),i=i.clientHeight;if(u<o||o+a<u)return e.scrollTo(null,u);if(a+o<=u+i)return e.scrollTo(null,o+i)}else if(t)return e.scrollTo(null,(e.findRowIndexOf(r,l)-1)*n.rowHeight)}return Promise.resolve()}function colToVisible(e,t){var{reactData:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=void 0,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.removeScrollListener=removeScrollListener,exports.restoreScrollListener=restoreScrollListener,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const getAllConvertColumns=(e,l)=>{const t=[];return e.forEach(e=>{e.parentId=l?l.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(t.push(e),t.push(...getAllConvertColumns(e.children,e))):t.push(e))}),t},convertHeaderColumnToRows=e=>{let l=1;const r=(t,e)=>{if(e&&(t.level=e.level+1,l<t.level)&&(l=t.level),t.children&&t.children.length&&t.children.some(e=>e.visible)){let l=0;t.children.forEach(e=>{e.visible&&(r(e,t),l+=e.colSpan)}),t.colSpan=l}else t.colSpan=1},t=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<l;e++)t.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=l-e.level+1,t[e.level-1].push(e)}),t};function restoreScrollLocation(e,l,t){const r=e["internalData"];return e.clearScroll().then(()=>{if(l||t)return r.lastScrollLeft=0,r.lastScrollTop=0,e.scrollTo(l,t)})}function removeScrollListener(e){e&&e._onscroll&&(e.onscroll=null)}function restoreScrollListener(e){e&&e._onscroll&&(e.onscroll=e._onscroll)}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var l=e["props"],e=e.getComputeMaps()["computeRowOpts"],l=l["rowId"],e=e.value;return l||e.keyField||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;const handleFieldOrColumn=(e,l)=>l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null;function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElemenMarginWidth(e){var l,t;return e?(t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight),e.offsetWidth+l+t):0}function queryCellElement(e,l){return e.querySelector(".vxe-cell"+l)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:l,data:t,resetValue:r,checked:o})=>({label:e,value:l,data:t,resetValue:r,checked:!!o,_checked:!!o})):e}function toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getCellValue(e,l){return _xeUtils.default.get(e,l.field)}function setCellValue(e,l,t){return _xeUtils.default.set(e,l.field,t)}function getColReMaxWidth(e){var l=e["$table"],l=l.getComputeMaps()["computeResizableOpts"],l=l.value["maxWidth"];if(l){e=_xeUtils.default.isFunction(l)?l(e):l;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,o=l["props"],n=l.getComputeMaps()["computeResizableOpts"],n=n.value["minWidth"];if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,a,n=o["showHeaderOverflow"],{showHeaderOverflow:e,minWidth:o}=t,t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?n:e,n="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let u=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(n&&(e=getPaddingLeftRightSize(queryCellElement(r,"--title>.vxe-cell--checkbox")),t=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),n=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),s=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),i=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),a=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--filter")),u+=e+t+n+s+i+r+a),o){var s,e=l.getRefMaps()["refTableBody"],t=e.value,n=t?t.$el:null;if(n){if((0,_dom.isScale)(o))return s=(n.clientWidth-1)/100,Math.max(u,Math.floor(_xeUtils.default.toInteger(o)*s));if((0,_dom.isPx)(o))return Math.max(u,_xeUtils.default.toInteger(o))}}return u}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function createColumn(e,l,t){return isColumnInfo(l)?l:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,l,t))}function watchColumn(t,e,r){Object.keys(e).forEach(l=>{(0,_vue.watch)(()=>e[l],e=>{r.update(l,e),t&&("filters"===l?(t.setFilter(r,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(l)&&t.handleRefreshColumnQueue())})})}function assembleColumn(e,l,t,r){var e=e["reactData"],o=e["staticColumns"],n=l.parentNode,r=r?r.columnConfig:null,r=r?r.children:o;n&&r&&(r.splice(_xeUtils.default.arrayIndexOf(n.children,l),0,t),e.staticColumns=o.slice(0))}function destroyColumn(e,l){var e=e["reactData"],t=e["staticColumns"],r=_xeUtils.default.findTree(t,e=>e.id===l.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=t.slice(0)}function getRootColumn(e,l){var e=e["internalData"],t=e["fullColumnIdData"];if(!l)return null;let r=l.parentId;for(;t[r];){const l=t[r].column;if(!(r=l.parentId))return l}return l}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:a}=l[e];if(-1<n&&-1<o&&i&&a){if(o===t&&n===r)return{rowspan:i,colspan:a};if(o<=t&&t<o+i&&n<=r&&r<n+a)return{rowspan:0,colspan:0}}}}function clearTableDefaultStatus(e){var{props:l,internalData:t}=e;return t.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(l.keyboardConfig||l.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&l.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(e,l){var{reactData:t,internalData:r}=e,o=e.getRefMaps()["refTableBody"],t=t["scrollYLoad"],{afterFullData:r,scrollYStore:n}=r,o=o.value,o=o?o.$el:null;if(o){var i=o.querySelector(`[rowid="${getRowid(e,l)}"]`);if(i){var a=o.clientHeight,o=o.scrollTop,u=i.offsetParent,u=i.offsetTop+(u?u.offsetTop:0),i=i.clientHeight;if(u<o||o+a<u)return e.scrollTo(null,u);if(a+o<=u+i)return e.scrollTo(null,o+i)}else if(t)return e.scrollTo(null,(e.findRowIndexOf(r,l)-1)*n.rowHeight)}return Promise.resolve()}function colToVisible(e,t){var{reactData:r,internalData:l}=e,o=e.getRefMaps()["refTableBody"],{columnStore:r,scrollXLoad:n}=r,i=l["visibleColumn"],{leftList:l,rightList:r}=r,o=o.value,o=o?o.$el:null;let a=0,u=(l.forEach(e=>{a+=e.renderWidth}),0);if(r.forEach(e=>{u+=e.renderWidth}),o){l=o.clientWidth,r=o.scrollLeft,o=o.querySelector("."+t.id);if(o){var s=o.offsetParent,s=o.offsetLeft+(s?s.offsetLeft:0),o=o.clientWidth;if(s<r+a)return e.scrollTo(s-a-1);if(s+o>=l+r-u)return e.scrollTo(s-a-u+1)}else if(n){let l=0;for(let e=0;e<i.length;e++){var c=i[e];if(c===t||c.id===t.id)break;l+=c.renderWidth}return l<r?e.scrollTo(l-a-1):e.scrollTo(l-a-u+1)}}return Promise.resolve()}exports.handleFieldOrColumn=handleFieldOrColumn;
|
package/lib/ui/index.js
CHANGED
|
@@ -13,9 +13,9 @@ 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.7.
|
|
16
|
+
const version = exports.version = "4.7.88";
|
|
17
17
|
_core.VxeUI.version = version;
|
|
18
|
-
_core.VxeUI.tableVersion = "4.7.
|
|
18
|
+
_core.VxeUI.tableVersion = "4.7.88";
|
|
19
19
|
_core.VxeUI.setConfig({
|
|
20
20
|
emptyCell: ' ',
|
|
21
21
|
table: {
|
package/lib/ui/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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");const version=exports.version="4.7.
|
|
1
|
+
"use strict";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");const version=exports.version="4.7.88",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion="4.7.88",_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!0,minHeight:144,resizeConfig:{refreshDelay:250},radioConfig:{strict:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single"},columnConfig:{maxFixedSize:4},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0}},sortConfig:{showIcon:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0},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:{isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{gt:60},scrollY:{gt:100}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"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_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",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;
|
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.7.
|
|
11
|
+
const version = `table v${"4.7.88"}`;
|
|
12
12
|
const warnLog = exports.warnLog = log.create('warn', version);
|
|
13
13
|
const errLog = exports.errLog = log.create('error', version);
|
package/lib/ui/src/log.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.7.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.7.88",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.7.
|
|
3
|
+
"version": "4.7.88",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "npm install --legacy-peer-deps",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"style": "lib/style.css",
|
|
29
29
|
"typings": "types/index.d.ts",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"vxe-pc-ui": "^4.2.
|
|
31
|
+
"vxe-pc-ui": "^4.2.20"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/resize-observer-browser": "^0.1.11",
|
|
@@ -130,19 +130,19 @@ export default defineComponent({
|
|
|
130
130
|
})
|
|
131
131
|
|
|
132
132
|
const computePagerOpts = computed(() => {
|
|
133
|
-
return Object.assign({},
|
|
133
|
+
return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig) as VxeGridPropTypes.PagerConfig
|
|
134
134
|
})
|
|
135
135
|
|
|
136
136
|
const computeFormOpts = computed(() => {
|
|
137
|
-
return Object.assign({},
|
|
137
|
+
return Object.assign({}, getConfig().grid.formConfig, props.formConfig) as VxeGridPropTypes.FormOpts
|
|
138
138
|
})
|
|
139
139
|
|
|
140
140
|
const computeToolbarOpts = computed(() => {
|
|
141
|
-
return Object.assign({},
|
|
141
|
+
return Object.assign({}, getConfig().grid.toolbarConfig, props.toolbarConfig) as VxeGridPropTypes.ToolbarOpts
|
|
142
142
|
})
|
|
143
143
|
|
|
144
144
|
const computeZoomOpts = computed(() => {
|
|
145
|
-
return Object.assign({},
|
|
145
|
+
return Object.assign({}, getConfig().grid.zoomConfig, props.zoomConfig)
|
|
146
146
|
})
|
|
147
147
|
|
|
148
148
|
const computeStyles = computed(() => {
|
|
@@ -382,15 +382,15 @@ export default defineComponent({
|
|
|
382
382
|
})
|
|
383
383
|
|
|
384
384
|
const computeValidOpts = computed(() => {
|
|
385
|
-
return Object.assign({},
|
|
385
|
+
return Object.assign({}, getConfig().table.validConfig, props.validConfig) as VxeTablePropTypes.ValidOpts
|
|
386
386
|
})
|
|
387
387
|
|
|
388
388
|
const computeSXOpts = computed(() => {
|
|
389
|
-
return Object.assign({},
|
|
389
|
+
return Object.assign({}, getConfig().table.scrollX, props.scrollX) as VxeTablePropTypes.SXOpts
|
|
390
390
|
})
|
|
391
391
|
|
|
392
392
|
const computeSYOpts = computed(() => {
|
|
393
|
-
return Object.assign({},
|
|
393
|
+
return Object.assign({}, getConfig().table.scrollY, props.scrollY) as VxeTablePropTypes.SYOpts
|
|
394
394
|
})
|
|
395
395
|
|
|
396
396
|
const computeRowHeightMaps = computed(() => {
|
|
@@ -403,37 +403,37 @@ export default defineComponent({
|
|
|
403
403
|
})
|
|
404
404
|
|
|
405
405
|
const computeColumnOpts = computed(() => {
|
|
406
|
-
return Object.assign({},
|
|
406
|
+
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig) as VxeTablePropTypes.ColumnOpts
|
|
407
407
|
})
|
|
408
408
|
|
|
409
409
|
const computeRowOpts = computed(() => {
|
|
410
|
-
return Object.assign({},
|
|
410
|
+
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig) as VxeTablePropTypes.RowOpts
|
|
411
411
|
})
|
|
412
412
|
|
|
413
413
|
const computeResizeOpts = computed(() => {
|
|
414
|
-
return Object.assign({},
|
|
414
|
+
return Object.assign({}, getConfig().table.resizeConfig, props.resizeConfig) as VxeTablePropTypes.ResizeOpts
|
|
415
415
|
})
|
|
416
416
|
|
|
417
417
|
const computeResizableOpts = computed(() => {
|
|
418
|
-
return Object.assign({},
|
|
418
|
+
return Object.assign({}, getConfig().table.resizableConfig, props.resizableConfig) as VxeTablePropTypes.ResizableOpts
|
|
419
419
|
})
|
|
420
420
|
|
|
421
421
|
const computeSeqOpts = computed(() => {
|
|
422
|
-
return Object.assign({ startIndex: 0 },
|
|
422
|
+
return Object.assign({ startIndex: 0 }, getConfig().table.seqConfig, props.seqConfig) as VxeTablePropTypes.SeqOpts
|
|
423
423
|
})
|
|
424
424
|
|
|
425
425
|
const computeRadioOpts = computed(() => {
|
|
426
|
-
return Object.assign({},
|
|
426
|
+
return Object.assign({}, getConfig().table.radioConfig, props.radioConfig) as VxeTablePropTypes.RadioOpts
|
|
427
427
|
})
|
|
428
428
|
|
|
429
429
|
const computeCheckboxOpts = computed(() => {
|
|
430
|
-
return Object.assign({},
|
|
430
|
+
return Object.assign({}, getConfig().table.checkboxConfig, props.checkboxConfig) as VxeTablePropTypes.CheckboxOpts
|
|
431
431
|
})
|
|
432
432
|
|
|
433
433
|
let computeTooltipOpts = ref() as ComputedRef<VxeTablePropTypes.TooltipOpts>
|
|
434
434
|
|
|
435
435
|
computeTooltipOpts = computed(() => {
|
|
436
|
-
return Object.assign({},
|
|
436
|
+
return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig)
|
|
437
437
|
})
|
|
438
438
|
|
|
439
439
|
const computeTipConfig = computed(() => {
|
|
@@ -449,39 +449,39 @@ export default defineComponent({
|
|
|
449
449
|
})
|
|
450
450
|
|
|
451
451
|
const computeEditOpts = computed(() => {
|
|
452
|
-
return Object.assign({},
|
|
452
|
+
return Object.assign({}, getConfig().table.editConfig, props.editConfig) as VxeTablePropTypes.EditOpts
|
|
453
453
|
})
|
|
454
454
|
|
|
455
455
|
const computeSortOpts = computed(() => {
|
|
456
|
-
return Object.assign({ orders: ['asc', 'desc', null] },
|
|
456
|
+
return Object.assign({ orders: ['asc', 'desc', null] }, getConfig().table.sortConfig, props.sortConfig) as VxeTablePropTypes.SortOpts
|
|
457
457
|
})
|
|
458
458
|
|
|
459
459
|
const computeFilterOpts = computed(() => {
|
|
460
|
-
return Object.assign({},
|
|
460
|
+
return Object.assign({}, getConfig().table.filterConfig, props.filterConfig) as VxeTablePropTypes.FilterOpts
|
|
461
461
|
})
|
|
462
462
|
|
|
463
463
|
const computeMouseOpts = computed(() => {
|
|
464
|
-
return Object.assign({},
|
|
464
|
+
return Object.assign({}, getConfig().table.mouseConfig, props.mouseConfig) as VxeTablePropTypes.MouseOpts
|
|
465
465
|
})
|
|
466
466
|
|
|
467
467
|
const computeAreaOpts = computed(() => {
|
|
468
|
-
return Object.assign({},
|
|
468
|
+
return Object.assign({}, getConfig().table.areaConfig, props.areaConfig) as VxeTablePropTypes.AreaOpts
|
|
469
469
|
})
|
|
470
470
|
|
|
471
471
|
const computeKeyboardOpts = computed(() => {
|
|
472
|
-
return Object.assign({},
|
|
472
|
+
return Object.assign({}, getConfig().table.keyboardConfig, props.keyboardConfig) as VxeTablePropTypes.KeyboardOpts
|
|
473
473
|
})
|
|
474
474
|
|
|
475
475
|
const computeClipOpts = computed(() => {
|
|
476
|
-
return Object.assign({},
|
|
476
|
+
return Object.assign({}, getConfig().table.clipConfig, props.clipConfig)
|
|
477
477
|
})
|
|
478
478
|
|
|
479
479
|
const computeFNROpts = computed(() => {
|
|
480
|
-
return Object.assign({},
|
|
480
|
+
return Object.assign({}, getConfig().table.fnrConfig, props.fnrConfig) as VxeTablePropTypes.FNROpts
|
|
481
481
|
})
|
|
482
482
|
|
|
483
483
|
const computeMenuOpts = computed(() => {
|
|
484
|
-
return Object.assign({},
|
|
484
|
+
return Object.assign({}, getConfig().table.menuConfig, props.menuConfig) as VxeTablePropTypes.MenuOpts
|
|
485
485
|
})
|
|
486
486
|
|
|
487
487
|
const computeHeaderMenu = computed(() => {
|
|
@@ -522,31 +522,31 @@ export default defineComponent({
|
|
|
522
522
|
})
|
|
523
523
|
|
|
524
524
|
const computeExportOpts = computed(() => {
|
|
525
|
-
return Object.assign({},
|
|
525
|
+
return Object.assign({}, getConfig().table.exportConfig, props.exportConfig) as VxeTablePropTypes.ExportOpts
|
|
526
526
|
})
|
|
527
527
|
|
|
528
528
|
const computeImportOpts = computed(() => {
|
|
529
|
-
return Object.assign({},
|
|
529
|
+
return Object.assign({}, getConfig().table.importConfig, props.importConfig) as VxeTablePropTypes.ImportOpts
|
|
530
530
|
})
|
|
531
531
|
|
|
532
532
|
const computePrintOpts = computed(() => {
|
|
533
|
-
return Object.assign({},
|
|
533
|
+
return Object.assign({}, getConfig().table.printConfig, props.printConfig) as VxeTablePropTypes.PrintOpts
|
|
534
534
|
})
|
|
535
535
|
|
|
536
536
|
const computeExpandOpts = computed(() => {
|
|
537
|
-
return Object.assign({},
|
|
537
|
+
return Object.assign({}, getConfig().table.expandConfig, props.expandConfig) as VxeTablePropTypes.ExpandOpts
|
|
538
538
|
})
|
|
539
539
|
|
|
540
540
|
const computeTreeOpts = computed(() => {
|
|
541
|
-
return Object.assign({},
|
|
541
|
+
return Object.assign({}, getConfig().table.treeConfig, props.treeConfig) as VxeTablePropTypes.TreeOpts
|
|
542
542
|
})
|
|
543
543
|
|
|
544
544
|
const computeEmptyOpts = computed(() => {
|
|
545
|
-
return Object.assign({},
|
|
545
|
+
return Object.assign({}, getConfig().table.emptyRender, props.emptyRender) as VxeTablePropTypes.EmptyOpts
|
|
546
546
|
})
|
|
547
547
|
|
|
548
548
|
const computeLoadingOpts = computed(() => {
|
|
549
|
-
return Object.assign({},
|
|
549
|
+
return Object.assign({}, getConfig().table.loadingConfig, props.loadingConfig) as VxeTablePropTypes.LoadingOpts
|
|
550
550
|
})
|
|
551
551
|
|
|
552
552
|
const computeCellOffsetWidth = computed(() => {
|
|
@@ -554,7 +554,7 @@ export default defineComponent({
|
|
|
554
554
|
})
|
|
555
555
|
|
|
556
556
|
const computeCustomOpts = computed(() => {
|
|
557
|
-
return Object.assign({},
|
|
557
|
+
return Object.assign({}, getConfig().table.customConfig, props.customConfig)
|
|
558
558
|
})
|
|
559
559
|
|
|
560
560
|
const computeAutoWidthColumnList = computed(() => {
|
|
@@ -801,7 +801,7 @@ export default defineComponent({
|
|
|
801
801
|
return { rowHeight: 0, visibleSize: 8 }
|
|
802
802
|
}
|
|
803
803
|
|
|
804
|
-
const
|
|
804
|
+
const calculateMergerOffsetIndex = (list: any[], offsetItem: any, type: 'row' | 'col') => {
|
|
805
805
|
for (let mcIndex = 0, len = list.length; mcIndex < len; mcIndex++) {
|
|
806
806
|
const mergeItem = list[mcIndex]
|
|
807
807
|
const { startIndex, endIndex } = offsetItem
|
|
@@ -1142,7 +1142,9 @@ export default defineComponent({
|
|
|
1142
1142
|
})
|
|
1143
1143
|
} else {
|
|
1144
1144
|
const labelEl = cellEl.firstChild as HTMLElement
|
|
1145
|
-
|
|
1145
|
+
if (labelEl) {
|
|
1146
|
+
titleWidth = labelEl.offsetWidth
|
|
1147
|
+
}
|
|
1146
1148
|
}
|
|
1147
1149
|
if (titleWidth) {
|
|
1148
1150
|
colWidth = Math.max(colWidth, Math.ceil(titleWidth) + 4)
|
|
@@ -1373,6 +1375,7 @@ export default defineComponent({
|
|
|
1373
1375
|
const { treeConfig } = props
|
|
1374
1376
|
const { treeExpandedMaps } = reactData
|
|
1375
1377
|
const treeOpts = computeTreeOpts.value
|
|
1378
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
1376
1379
|
if (treeConfig && treeOpts.transform) {
|
|
1377
1380
|
const fullData: any[] = []
|
|
1378
1381
|
const expandMaps: {
|
|
@@ -1385,7 +1388,7 @@ export default defineComponent({
|
|
|
1385
1388
|
expandMaps[rowid] = 1
|
|
1386
1389
|
fullData.push(row)
|
|
1387
1390
|
}
|
|
1388
|
-
}, { children:
|
|
1391
|
+
}, { children: childrenField })
|
|
1389
1392
|
internalData.afterFullData = fullData
|
|
1390
1393
|
updateScrollYStatus(fullData)
|
|
1391
1394
|
return fullData
|
|
@@ -1403,6 +1406,7 @@ export default defineComponent({
|
|
|
1403
1406
|
const filterOpts = computeFilterOpts.value
|
|
1404
1407
|
const sortOpts = computeSortOpts.value
|
|
1405
1408
|
const treeOpts = computeTreeOpts.value
|
|
1409
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
1406
1410
|
const { transform } = treeOpts
|
|
1407
1411
|
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
1408
1412
|
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
|
|
@@ -1464,7 +1468,12 @@ export default defineComponent({
|
|
|
1464
1468
|
}
|
|
1465
1469
|
if (treeConfig && transform) {
|
|
1466
1470
|
// 筛选虚拟树
|
|
1467
|
-
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
|
|
1471
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
|
|
1472
|
+
original: true,
|
|
1473
|
+
isEvery: true,
|
|
1474
|
+
children: treeOpts.mapChildrenField,
|
|
1475
|
+
mapChildren: childrenField
|
|
1476
|
+
})
|
|
1468
1477
|
tableData = tableTree
|
|
1469
1478
|
} else {
|
|
1470
1479
|
tableData = treeConfig ? tableFullTreeData.filter(handleFilter) : tableFullData.filter(handleFilter)
|
|
@@ -1473,7 +1482,12 @@ export default defineComponent({
|
|
|
1473
1482
|
} else {
|
|
1474
1483
|
if (treeConfig && transform) {
|
|
1475
1484
|
// 还原虚拟树
|
|
1476
|
-
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1485
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1486
|
+
original: true,
|
|
1487
|
+
isEvery: true,
|
|
1488
|
+
children: treeOpts.mapChildrenField,
|
|
1489
|
+
mapChildren: childrenField
|
|
1490
|
+
})
|
|
1477
1491
|
tableData = tableTree
|
|
1478
1492
|
} else {
|
|
1479
1493
|
tableData = treeConfig ? tableFullTreeData.slice(0) : tableFullData.slice(0)
|
|
@@ -1506,7 +1520,12 @@ export default defineComponent({
|
|
|
1506
1520
|
} else {
|
|
1507
1521
|
if (treeConfig && transform) {
|
|
1508
1522
|
// 还原虚拟树
|
|
1509
|
-
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1523
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1524
|
+
original: true,
|
|
1525
|
+
isEvery: true,
|
|
1526
|
+
children: treeOpts.mapChildrenField,
|
|
1527
|
+
mapChildren: childrenField
|
|
1528
|
+
})
|
|
1510
1529
|
tableData = tableTree
|
|
1511
1530
|
} else {
|
|
1512
1531
|
tableData = treeConfig ? tableFullTreeData.slice(0) : tableFullData.slice(0)
|
|
@@ -2441,7 +2460,7 @@ export default defineComponent({
|
|
|
2441
2460
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
|
|
2442
2461
|
endIndex: toVisibleIndex + visibleSize + offsetSize
|
|
2443
2462
|
}
|
|
2444
|
-
|
|
2463
|
+
calculateMergerOffsetIndex(mergeList.concat(mergeFooterList), offsetItem, 'col')
|
|
2445
2464
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem
|
|
2446
2465
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
2447
2466
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -2729,7 +2748,7 @@ export default defineComponent({
|
|
|
2729
2748
|
startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
|
|
2730
2749
|
endIndex: toVisibleIndex + visibleSize + offsetSize
|
|
2731
2750
|
}
|
|
2732
|
-
|
|
2751
|
+
calculateMergerOffsetIndex(mergeList, offsetItem, 'row')
|
|
2733
2752
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem
|
|
2734
2753
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
2735
2754
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -5446,11 +5465,13 @@ export default defineComponent({
|
|
|
5446
5465
|
cacheRowMap (isSource) {
|
|
5447
5466
|
const { treeConfig } = props
|
|
5448
5467
|
const treeOpts = computeTreeOpts.value
|
|
5449
|
-
|
|
5468
|
+
const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData
|
|
5450
5469
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
5451
5470
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
5452
5471
|
const rowkey = getRowkey($xeTable)
|
|
5453
5472
|
const isLazy = treeConfig && treeOpts.lazy
|
|
5473
|
+
const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
|
|
5474
|
+
const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
|
|
5454
5475
|
const handleRow = (row: any, index: any, items: any, path?: any[], parent?: any, nodes?: any[]) => {
|
|
5455
5476
|
let rowid = getRowid($xeTable, row)
|
|
5456
5477
|
const seq = treeConfig && path ? toTreePathSeq(path) : index + 1
|
|
@@ -5462,16 +5483,20 @@ export default defineComponent({
|
|
|
5462
5483
|
if (isLazy && row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
|
|
5463
5484
|
row[childrenField] = null
|
|
5464
5485
|
}
|
|
5465
|
-
|
|
5486
|
+
let cacheItem = fullAllDataRowIdData[rowid]
|
|
5487
|
+
if (!cacheItem) {
|
|
5488
|
+
cacheItem = { row, rowid, seq, index: -1, _index: -1, $index: -1, items, parent, level }
|
|
5489
|
+
}
|
|
5466
5490
|
if (isSource) {
|
|
5467
|
-
|
|
5491
|
+
cacheItem.index = treeConfig && parent ? -1 : index
|
|
5492
|
+
fullDataRowIdMaps[rowid] = cacheItem
|
|
5468
5493
|
}
|
|
5469
|
-
|
|
5494
|
+
fullAllDataRowIdMaps[rowid] = cacheItem
|
|
5470
5495
|
}
|
|
5471
5496
|
if (isSource) {
|
|
5472
|
-
|
|
5497
|
+
internalData.fullDataRowIdData = fullDataRowIdMaps
|
|
5473
5498
|
}
|
|
5474
|
-
|
|
5499
|
+
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
|
|
5475
5500
|
if (treeConfig) {
|
|
5476
5501
|
XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField })
|
|
5477
5502
|
} else {
|
|
@@ -413,28 +413,35 @@ export function rowToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMet
|
|
|
413
413
|
export function colToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, column: VxeTableDefines.ColumnInfo) {
|
|
414
414
|
const { reactData, internalData } = $xeTable
|
|
415
415
|
const { refTableBody } = $xeTable.getRefMaps()
|
|
416
|
-
const { scrollXLoad } = reactData
|
|
416
|
+
const { columnStore, scrollXLoad } = reactData
|
|
417
417
|
const { visibleColumn } = internalData
|
|
418
|
+
const { leftList, rightList } = columnStore
|
|
418
419
|
const tableBody = refTableBody.value
|
|
419
420
|
const bodyElem = tableBody ? tableBody.$el as HTMLDivElement : null
|
|
421
|
+
let offsetFixedLeft = 0
|
|
422
|
+
leftList.forEach(item => {
|
|
423
|
+
offsetFixedLeft += item.renderWidth
|
|
424
|
+
})
|
|
425
|
+
let offsetFixedRight = 0
|
|
426
|
+
rightList.forEach(item => {
|
|
427
|
+
offsetFixedRight += item.renderWidth
|
|
428
|
+
})
|
|
420
429
|
if (bodyElem) {
|
|
430
|
+
const bodyWidth = bodyElem.clientWidth
|
|
431
|
+
const bodySrcollLeft = bodyElem.scrollLeft
|
|
421
432
|
const tdElem: HTMLTableCellElement | null = bodyElem.querySelector(`.${column.id}`)
|
|
422
433
|
if (tdElem) {
|
|
423
|
-
const bodyWidth = bodyElem.clientWidth
|
|
424
|
-
const bodySrcollLeft = bodyElem.scrollLeft
|
|
425
434
|
const tdOffsetParent = tdElem.offsetParent as HTMLElement
|
|
426
435
|
const tdOffsetLeft = tdElem.offsetLeft + (tdOffsetParent ? tdOffsetParent.offsetLeft : 0)
|
|
427
436
|
const tdWidth = tdElem.clientWidth
|
|
428
|
-
//
|
|
429
|
-
if (tdOffsetLeft < bodySrcollLeft
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
// 向右定位
|
|
434
|
-
return $xeTable.scrollTo(bodySrcollLeft + tdWidth)
|
|
437
|
+
// 检测是否在可视区中
|
|
438
|
+
if (tdOffsetLeft < (bodySrcollLeft + offsetFixedLeft)) {
|
|
439
|
+
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - 1)
|
|
440
|
+
} else if ((tdOffsetLeft + tdWidth) >= (bodyWidth + bodySrcollLeft - offsetFixedRight)) {
|
|
441
|
+
return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - offsetFixedRight + 1)
|
|
435
442
|
}
|
|
436
443
|
} else {
|
|
437
|
-
//
|
|
444
|
+
// 检测是否在虚拟渲染可视区中
|
|
438
445
|
if (scrollXLoad) {
|
|
439
446
|
let scrollLeft = 0
|
|
440
447
|
for (let index = 0; index < visibleColumn.length; index++) {
|
|
@@ -444,7 +451,10 @@ export function colToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMet
|
|
|
444
451
|
}
|
|
445
452
|
scrollLeft += currCol.renderWidth
|
|
446
453
|
}
|
|
447
|
-
|
|
454
|
+
if (scrollLeft < bodySrcollLeft) {
|
|
455
|
+
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - 1)
|
|
456
|
+
}
|
|
457
|
+
return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - offsetFixedRight + 1)
|
|
448
458
|
}
|
|
449
459
|
}
|
|
450
460
|
}
|
package/styles/theme/base.scss
CHANGED
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
--vxe-ui-table-cell-extend-area-border-color: var(--vxe-ui-table-cell-area-border-color);
|
|
69
69
|
--vxe-ui-table-cell-active-area-border-color: var(--vxe-ui-table-cell-area-border-color);
|
|
70
70
|
--vxe-ui-table-cell-area-background-color: rgba(64,158,255,0.2);
|
|
71
|
+
--vxe-ui-table-header-active-area-background-color: rgba(64,158,255,0.1);
|
|
71
72
|
|
|
72
73
|
--vxe-ui-table-expand-padding-default: 16px;
|
|
73
74
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|