vxe-table 4.15.0-beta.14 → 4.15.0-beta.16
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/style.css +1 -1
- package/es/table/module/custom/hook.js +23 -15
- package/es/table/src/columnInfo.js +2 -0
- package/es/table/src/table.js +133 -49
- package/es/table/src/util.js +9 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +56 -32
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/hook.js +26 -14
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/src/columnInfo.js +2 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/table.js +16 -16
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +10 -0
- package/lib/table/src/util.min.js +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/package.json +1 -1
- package/packages/table/module/custom/hook.ts +22 -14
- package/packages/table/src/columnInfo.ts +3 -0
- package/packages/table/src/table.ts +137 -51
- package/packages/table/src/util.ts +10 -0
- /package/es/{iconfont.1753785070937.ttf → iconfont.1753864741935.ttf} +0 -0
- /package/es/{iconfont.1753785070937.woff → iconfont.1753864741935.woff} +0 -0
- /package/es/{iconfont.1753785070937.woff2 → iconfont.1753864741935.woff2} +0 -0
- /package/lib/{iconfont.1753785070937.ttf → iconfont.1753864741935.ttf} +0 -0
- /package/lib/{iconfont.1753785070937.woff → iconfont.1753864741935.woff} +0 -0
- /package/lib/{iconfont.1753785070937.woff2 → iconfont.1753864741935.woff2} +0 -0
package/lib/table/src/util.js
CHANGED
|
@@ -19,6 +19,7 @@ exports.getCellRestHeight = getCellRestHeight;
|
|
|
19
19
|
exports.getCellValue = getCellValue;
|
|
20
20
|
exports.getColReMaxWidth = getColReMaxWidth;
|
|
21
21
|
exports.getColReMinWidth = getColReMinWidth;
|
|
22
|
+
exports.getColumnList = getColumnList;
|
|
22
23
|
exports.getOffsetSize = void 0;
|
|
23
24
|
exports.getRefElem = getRefElem;
|
|
24
25
|
exports.getRootColumn = getRootColumn;
|
|
@@ -373,6 +374,14 @@ function getColReMinWidth(params) {
|
|
|
373
374
|
function isColumnInfo(column) {
|
|
374
375
|
return column && (column.constructor === _columnInfo.ColumnInfo || column instanceof _columnInfo.ColumnInfo);
|
|
375
376
|
}
|
|
377
|
+
// 获取所有的列,排除分组
|
|
378
|
+
function getColumnList(columns) {
|
|
379
|
+
const result = [];
|
|
380
|
+
columns.forEach(column => {
|
|
381
|
+
result.push(...(column.children && column.children.length ? getColumnList(column.children) : [column]));
|
|
382
|
+
});
|
|
383
|
+
return result;
|
|
384
|
+
}
|
|
376
385
|
function createColumn($xeTable, options, renderOptions) {
|
|
377
386
|
return isColumnInfo(options) ? options : (0, _vue.reactive)(new _columnInfo.ColumnInfo($xeTable, options, renderOptions));
|
|
378
387
|
}
|
|
@@ -402,6 +411,7 @@ function assembleColumn($xeTable, elem, column, colgroup) {
|
|
|
402
411
|
const parentColumn = colgroup ? colgroup.columnConfig : null;
|
|
403
412
|
const parentCols = parentColumn ? parentColumn.children : staticColumns;
|
|
404
413
|
if (parentElem && parentCols) {
|
|
414
|
+
column.defaultParentId = parentColumn ? parentColumn.id : null;
|
|
405
415
|
parentCols.splice(_xeUtils.default.arrayIndexOf(parentElem.children, elem), 0, column);
|
|
406
416
|
reactData.staticColumns = staticColumns.slice(0);
|
|
407
417
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.createHandleGetRowId=createHandleGetRowId,exports.createHandleUpdateRowId=createHandleUpdateRowId,exports.destroyColumn=destroyColumn,exports.encodeRowid=encodeRowid,exports.getCalcHeight=getCalcHeight,exports.getCellRestHeight=getCellRestHeight,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getOffsetSize=void 0,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.handleRowidOrRow=handleRowidOrRow,exports.hasDeepKey=hasDeepKey,exports.isColumnInfo=isColumnInfo,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.updateDeepRowKey=updateDeepRowKey,exports.updateFastRowKey=updateFastRowKey,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getAllConvertColumns=(e,t)=>{let l=[];return e.forEach(e=>{e.parentId=t?t.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(l.push(e),l.push(...getAllConvertColumns(e.children,e))):l.push(e))}),l},convertHeaderColumnToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l.level=e.level+1,t<l.level)&&(t=l.level),l.children&&l.children.length&&l.children.some(e=>e.visible)){let t=0;l.children.forEach(e=>{e.visible&&(r(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)}),l};function restoreScrollLocation(e,t,l){var r=e.internalData;return t||l?(r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(t,l)):e.clearScroll()}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function hasDeepKey(e){return-1<e.indexOf(".")}function getRowkey(e){e=e.internalData.currKeyField;return e}function getRowid(e,t){var{isCurrDeepKey:e,currKeyField:l}=e.internalData;return t?encodeRowid((e?getDeepRowIdByKey:getFastRowIdByKey)(t,l)):""}function createHandleUpdateRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?updateDeepRowKey:updateFastRowKey;return{rowKey:l,handleUpdateRowId(e){return e?r(e,l):""}}}function createHandleGetRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:l,handleGetRowId(e){return e?encodeRowid(r(e,l)):""}}}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getDeepRowIdByKey(e,t){return _xeUtils.default.get(e,t)}function updateDeepRowKey(e,t){let l=encodeRowid(getDeepRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),_xeUtils.default.set(e,t,l)),l}function getFastRowIdByKey(e,t){return e[t]}function updateFastRowKey(e,t){let l=encodeRowid(getFastRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),e[t]=l),l}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null}function handleRowidOrRow(e,t){return t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null}function getCellRestHeight(e,t,l,r){return e.resizeHeight||t.height||l.height||e.height||r}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginAndWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:t,data:l,resetValue:r,checked:o})=>({label:e,value:t,data:l,resetValue:r,checked:!!o,_checked:!!o})):e}function toTreePathSeq(e){return e.map((e,t)=>t%2==0?Number(e)+1:".").join("")}function getCellValue(e,t){return _xeUtils.default.get(e,t.field)}function setCellValue(e,t,l){return _xeUtils.default.set(e,t.field,l)}function getRefElem(e){if(e){e=e.value;if(e)return e.$el||e}return null}function getCalcHeight(e){return"unset"!==e&&e||0}function getColReMaxWidth(e){var t=e.$table,t=t.getComputeMaps().computeResizableOpts,t=t.value.maxWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:t,column:l,cell:r}=e,o=t.props,i=t.internalData,t=t.getComputeMaps().computeResizableOpts,t=t.value.minWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var n,a,u,d,t=i.elemStore,e=o.showHeaderOverflow,{showHeaderOverflow:i,minWidth:o}=l,l=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?e:i,e="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;let s=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize((0,_dom.queryElement)(r,".vxe-cell")));if(e&&(i=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--drag-handle")),l=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--checkbox")),e=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--required-icon")),n=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--edit-icon")),a=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-suffix-icon")),d=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--sort")),r=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--filter")),s+=i+l+e+n+a+u+r+d),o){i=getRefElem(t["main-body-scroll"]);if(i){if((0,_dom.isScale)(o))return l=(i.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(o)*l));if((0,_dom.isPx)(o))return Math.max(s,_xeUtils.default.toInteger(o))}}return s}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function createColumn(e,t,l){return isColumnInfo(t)?t:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,t,l))}function watchColumn(l,e,r){Object.keys(e).forEach(t=>{(0,_vue.watch)(()=>e[t],e=>{r.update(t,e),l&&("filters"===t?(l.setFilter(r,e),l.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&l.handleRefreshColumnQueue())})})}function assembleColumn(e,t,l,r){var e=e.reactData,o=e.staticColumns,i=t.parentNode,r=r?r.columnConfig:null,r=r?r.children:o;i&&r&&(r.splice(_xeUtils.default.arrayIndexOf(i.children,t),0,l),e.staticColumns=o.slice(0))}function destroyColumn(e,t){var e=e.reactData,l=e.staticColumns,r=_xeUtils.default.findTree(l,e=>e.id===t.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=l.slice(0)}function getRootColumn(e,t){var e=e.internalData,l=e.fullColumnIdData;if(!t)return null;let r=t.parentId;for(;l[r];){let e=l[r].column;if(!(r=e.parentId))return e}return t}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let lineOffsetSizes={mini:3,small:2,medium:1,large:0},countTreeExpand=(e,t)=>{let l=1;if(e){var r=t.$table,o=r.reactData.treeExpandedFlag,i=r.internalData.treeExpandedMaps,n=r.getComputeMaps().computeTreeOpts,n=n.value,{transform:a,mapChildrenField:u}=n,n=n.children||n.childrenField,d=e[a?u:n];if(d&&o&&i[getRowid(r,e)])for(let e=0;e<d.length;e++)l+=countTreeExpand(d[e],t)}return l},getOffsetSize=e=>{e=e.getComputeMaps().computeSize,e=e.value;return e&&lineOffsetSizes[e]||0};function calcTreeLine(e,t){var{$table:l,row:r}=e,o=l.props.showOverflow,i=l.reactData.scrollYLoad,n=l.internalData.fullAllDataRowIdData,{computeRowOpts:a,computeCellOpts:u,computeDefaultRowHeight:d}=l.getComputeMaps(),a=a.value,u=u.value,d=d.value,n=n[getRowid(l,r)],r=n.resizeHeight||u.height||a.height||n.height||d;let s=1,c=(t&&(s=countTreeExpand(t,e)),r);return(c=i&&!o?n.height||r:c)*s-(t?1:12-getOffsetSize(l))}function clearTableDefaultStatus(e){var{props:t,internalData:l}=e;return l.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&t.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(l,r){var e=l.props,t=l.reactData,o=l.internalData,{computeLeftFixedWidth:i,computeRightFixedWidth:n,computeRowOpts:a,computeCellOpts:u,computeDefaultRowHeight:d}=l.getComputeMaps(),e=e.showOverflow,{scrollYLoad:t,scrollYTop:s}=t,{elemStore:o,afterFullData:c,fullAllDataRowIdData:f,isResizeCellHeight:m}=o,h=a.value,p=u.value,g=d.value,a=i.value,u=n.value,d=getRefElem(o["main-body-scroll"]),R=getRowid(l,r);if(d){i=d.clientHeight,n=d.scrollTop,o=d.querySelector(`[rowid="${R}"]`);if(o){d=o.offsetTop+(t?s:0),s=o.clientHeight;if(d<n||n+i<d)return l.scrollTo(null,d);if(i+n<=d+s)return l.scrollTo(null,n+s)}else if(t){if(!(m||p.height||h.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,r)-1)*g);let t=0;o=f[R]||{},d=o.resizeHeight||p.height||h.height||o.height||g;for(let e=0;e<c.length;e++){var x=c[e],w=getRowid(l,x);if(x===r||w===R)break;x=f[w]||{};t+=x.resizeHeight||p.height||h.height||x.height||g}return t<n?l.scrollTo(null,t-a-1):l.scrollTo(null,t+d-(i-u-1))}}return Promise.resolve()}function colToVisible(l,r,t){var o=l.reactData,i=l.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:a}=l.getComputeMaps(),{scrollXLoad:o,scrollXLeft:u}=o,{elemStore:i,visibleColumn:d}=i,n=n.value,a=a.value,i=getRefElem(i["main-body-scroll"]);if(!r.fixed&&i){var s=i.clientWidth,c=i.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=i.querySelector(`[rowid="${t}"] .`+r.id)),e=e||i.querySelector("."+r.id)){t=e.offsetLeft+(o?u:0),i=e.clientWidth;if(t<c+n)return l.scrollTo(t-n-1);if(s-a<t+i-c)return l.scrollTo(t+i-(s-a-1))}else if(o){let t=0;u=r.renderWidth;for(let e=0;e<d.length;e++){var f=d[e];if(f===r||f.id===r.id)break;t+=f.renderWidth}return t<c?l.scrollTo(t-n-1):l.scrollTo(t+u-(s-a-1))}}return Promise.resolve()}exports.getOffsetSize=getOffsetSize;
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.createHandleGetRowId=createHandleGetRowId,exports.createHandleUpdateRowId=createHandleUpdateRowId,exports.destroyColumn=destroyColumn,exports.encodeRowid=encodeRowid,exports.getCalcHeight=getCalcHeight,exports.getCellRestHeight=getCellRestHeight,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getColumnList=getColumnList,exports.getOffsetSize=void 0,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.handleRowidOrRow=handleRowidOrRow,exports.hasDeepKey=hasDeepKey,exports.isColumnInfo=isColumnInfo,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.updateDeepRowKey=updateDeepRowKey,exports.updateFastRowKey=updateFastRowKey,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getAllConvertColumns=(e,t)=>{let l=[];return e.forEach(e=>{e.parentId=t?t.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(l.push(e),l.push(...getAllConvertColumns(e.children,e))):l.push(e))}),l},convertHeaderColumnToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l.level=e.level+1,t<l.level)&&(t=l.level),l.children&&l.children.length&&l.children.some(e=>e.visible)){let t=0;l.children.forEach(e=>{e.visible&&(r(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)}),l};function restoreScrollLocation(e,t,l){var r=e.internalData;return t||l?(r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(t,l)):e.clearScroll()}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function hasDeepKey(e){return-1<e.indexOf(".")}function getRowkey(e){e=e.internalData.currKeyField;return e}function getRowid(e,t){var{isCurrDeepKey:e,currKeyField:l}=e.internalData;return t?encodeRowid((e?getDeepRowIdByKey:getFastRowIdByKey)(t,l)):""}function createHandleUpdateRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?updateDeepRowKey:updateFastRowKey;return{rowKey:l,handleUpdateRowId(e){return e?r(e,l):""}}}function createHandleGetRowId(e){let{isCurrDeepKey:t,currKeyField:l}=e.internalData,r=t?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:l,handleGetRowId(e){return e?encodeRowid(r(e,l)):""}}}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getDeepRowIdByKey(e,t){return _xeUtils.default.get(e,t)}function updateDeepRowKey(e,t){let l=encodeRowid(getDeepRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),_xeUtils.default.set(e,t,l)),l}function getFastRowIdByKey(e,t){return e[t]}function updateFastRowKey(e,t){let l=encodeRowid(getFastRowIdByKey(e,t));return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),e[t]=l),l}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null}function handleRowidOrRow(e,t){return t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null}function getCellRestHeight(e,t,l,r){return e.resizeHeight||t.height||l.height||e.height||r}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginAndWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:t,data:l,resetValue:r,checked:o})=>({label:e,value:t,data:l,resetValue:r,checked:!!o,_checked:!!o})):e}function toTreePathSeq(e){return e.map((e,t)=>t%2==0?Number(e)+1:".").join("")}function getCellValue(e,t){return _xeUtils.default.get(e,t.field)}function setCellValue(e,t,l){return _xeUtils.default.set(e,t.field,l)}function getRefElem(e){if(e){e=e.value;if(e)return e.$el||e}return null}function getCalcHeight(e){return"unset"!==e&&e||0}function getColReMaxWidth(e){var t=e.$table,t=t.getComputeMaps().computeResizableOpts,t=t.value.maxWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var{$table:t,column:l,cell:r}=e,o=t.props,i=t.internalData,t=t.getComputeMaps().computeResizableOpts,t=t.value.minWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var n,a,u,d,t=i.elemStore,e=o.showHeaderOverflow,{showHeaderOverflow:i,minWidth:o}=l,l=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?e:i,e="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;let s=_xeUtils.default.floor(1.8*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize((0,_dom.queryElement)(r,".vxe-cell")));if(e&&(i=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--drag-handle")),l=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--checkbox")),e=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--required-icon")),n=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--edit-icon")),a=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell-title-suffix-icon")),d=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--sort")),r=getElementMarginAndWidth((0,_dom.queryElement)(r,".vxe-cell--filter")),s+=i+l+e+n+a+u+r+d),o){i=getRefElem(t["main-body-scroll"]);if(i){if((0,_dom.isScale)(o))return l=(i.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(o)*l));if((0,_dom.isPx)(o))return Math.max(s,_xeUtils.default.toInteger(o))}}return s}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function getColumnList(e){let t=[];return e.forEach(e=>{t.push(...e.children&&e.children.length?getColumnList(e.children):[e])}),t}function createColumn(e,t,l){return isColumnInfo(t)?t:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,t,l))}function watchColumn(l,e,r){Object.keys(e).forEach(t=>{(0,_vue.watch)(()=>e[t],e=>{r.update(t,e),l&&("filters"===t?(l.setFilter(r,e),l.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&l.handleRefreshColumnQueue())})})}function assembleColumn(e,t,l,r){var e=e.reactData,o=e.staticColumns,i=t.parentNode,r=r?r.columnConfig:null,n=r?r.children:o;i&&n&&(l.defaultParentId=r?r.id:null,n.splice(_xeUtils.default.arrayIndexOf(i.children,t),0,l),e.staticColumns=o.slice(0))}function destroyColumn(e,t){var e=e.reactData,l=e.staticColumns,r=_xeUtils.default.findTree(l,e=>e.id===t.id,{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=l.slice(0)}function getRootColumn(e,t){var e=e.internalData,l=e.fullColumnIdData;if(!t)return null;let r=t.parentId;for(;l[r];){let e=l[r].column;if(!(r=e.parentId))return e}return t}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let lineOffsetSizes={mini:3,small:2,medium:1,large:0},countTreeExpand=(e,t)=>{let l=1;if(e){var r=t.$table,o=r.reactData.treeExpandedFlag,i=r.internalData.treeExpandedMaps,n=r.getComputeMaps().computeTreeOpts,n=n.value,{transform:a,mapChildrenField:u}=n,n=n.children||n.childrenField,d=e[a?u:n];if(d&&o&&i[getRowid(r,e)])for(let e=0;e<d.length;e++)l+=countTreeExpand(d[e],t)}return l},getOffsetSize=e=>{e=e.getComputeMaps().computeSize,e=e.value;return e&&lineOffsetSizes[e]||0};function calcTreeLine(e,t){var{$table:l,row:r}=e,o=l.props.showOverflow,i=l.reactData.scrollYLoad,n=l.internalData.fullAllDataRowIdData,{computeRowOpts:a,computeCellOpts:u,computeDefaultRowHeight:d}=l.getComputeMaps(),a=a.value,u=u.value,d=d.value,n=n[getRowid(l,r)],r=n.resizeHeight||u.height||a.height||n.height||d;let s=1,c=(t&&(s=countTreeExpand(t,e)),r);return(c=i&&!o?n.height||r:c)*s-(t?1:12-getOffsetSize(l))}function clearTableDefaultStatus(e){var{props:t,internalData:l}=e;return l.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&t.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(l,r){var e=l.props,t=l.reactData,o=l.internalData,{computeLeftFixedWidth:i,computeRightFixedWidth:n,computeRowOpts:a,computeCellOpts:u,computeDefaultRowHeight:d}=l.getComputeMaps(),e=e.showOverflow,{scrollYLoad:t,scrollYTop:s}=t,{elemStore:o,afterFullData:c,fullAllDataRowIdData:f,isResizeCellHeight:m}=o,h=a.value,g=u.value,p=d.value,a=i.value,u=n.value,d=getRefElem(o["main-body-scroll"]),R=getRowid(l,r);if(d){i=d.clientHeight,n=d.scrollTop,o=d.querySelector(`[rowid="${R}"]`);if(o){d=o.offsetTop+(t?s:0),s=o.clientHeight;if(d<n||n+i<d)return l.scrollTo(null,d);if(i+n<=d+s)return l.scrollTo(null,n+s)}else if(t){if(!(m||g.height||h.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,r)-1)*p);let t=0;o=f[R]||{},d=o.resizeHeight||g.height||h.height||o.height||p;for(let e=0;e<c.length;e++){var x=c[e],w=getRowid(l,x);if(x===r||w===R)break;x=f[w]||{};t+=x.resizeHeight||g.height||h.height||x.height||p}return t<n?l.scrollTo(null,t-a-1):l.scrollTo(null,t+d-(i-u-1))}}return Promise.resolve()}function colToVisible(l,r,t){var o=l.reactData,i=l.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:a}=l.getComputeMaps(),{scrollXLoad:o,scrollXLeft:u}=o,{elemStore:i,visibleColumn:d}=i,n=n.value,a=a.value,i=getRefElem(i["main-body-scroll"]);if(!r.fixed&&i){var s=i.clientWidth,c=i.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=i.querySelector(`[rowid="${t}"] .`+r.id)),e=e||i.querySelector("."+r.id)){t=e.offsetLeft+(o?u:0),i=e.clientWidth;if(t<c+n)return l.scrollTo(t-n-1);if(s-a<t+i-c)return l.scrollTo(t+i-(s-a-1))}else if(o){let t=0;u=r.renderWidth;for(let e=0;e<d.length;e++){var f=d[e];if(f===r||f.id===r.id)break;t+=f.renderWidth}return t<c?l.scrollTo(t-n-1):l.scrollTo(t+u-(s-a-1))}}return Promise.resolve()}exports.getOffsetSize=getOffsetSize;
|
package/lib/ui/index.js
CHANGED
|
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
|
|
|
13
13
|
exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.hooks = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
|
|
14
14
|
var _core = require("@vxe-ui/core");
|
|
15
15
|
var _utils = require("./src/utils");
|
|
16
|
-
const version = exports.version = "4.15.0-beta.
|
|
16
|
+
const version = exports.version = "4.15.0-beta.16";
|
|
17
17
|
_core.VxeUI.version = version;
|
|
18
18
|
_core.VxeUI.tableVersion = version;
|
|
19
19
|
_core.VxeUI.setConfig({
|
package/lib/ui/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.15.0-beta.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.15.0-beta.16",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{multiple:!0,showIcon:!0},aggregateConfig:{padding:!0,rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:1,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
|
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.15.0-beta.
|
|
11
|
+
const version = `table v${"4.15.0-beta.16"}`;
|
|
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
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.15.0-beta.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.15.0-beta.16",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.15.0-beta.
|
|
3
|
+
"version": "4.15.0-beta.16",
|
|
4
4
|
"description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "npm install --legacy-peer-deps",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { nextTick } from 'vue'
|
|
2
2
|
import { VxeUI } from '../../../ui'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
+
import { getColumnList } from '../../src/util'
|
|
4
5
|
|
|
5
6
|
import type { TableCustomMethods, TableCustomPrivateMethods, VxeColumnPropTypes, VxeTableDefines } from '../../../../types'
|
|
6
7
|
|
|
@@ -111,21 +112,20 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
111
112
|
}
|
|
112
113
|
})
|
|
113
114
|
reactData.isCustomStatus = true
|
|
114
|
-
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
$xeTable.clearRowGroups()
|
|
122
|
-
}
|
|
123
|
-
} else if (allowValues) {
|
|
124
|
-
// 更新聚合函数
|
|
125
|
-
$xeTable.handleUpdateAggData()
|
|
115
|
+
if (allowGroup && !!$xeTable.handlePivotTableAggregateData) {
|
|
116
|
+
if (rowGroupList.length !== aggHandleFields.length || rowGroupList.some((conf, i) => conf.field !== aggHandleFields[i])) {
|
|
117
|
+
// 更新数据分组
|
|
118
|
+
if (aggHandleFields.length) {
|
|
119
|
+
$xeTable.setRowGroups(aggHandleFields)
|
|
120
|
+
} else {
|
|
121
|
+
$xeTable.clearRowGroups()
|
|
126
122
|
}
|
|
123
|
+
} else if (allowValues) {
|
|
124
|
+
// 更新聚合函数
|
|
125
|
+
$xeTable.handleUpdateAggData()
|
|
127
126
|
}
|
|
128
|
-
}
|
|
127
|
+
}
|
|
128
|
+
return $xeTable.saveCustomStore('confirm')
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
const cancelCustom = () => {
|
|
@@ -212,6 +212,7 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
212
212
|
sort: options === true,
|
|
213
213
|
aggFunc: options === true
|
|
214
214
|
}, options)
|
|
215
|
+
const allCols: VxeTableDefines.ColumnInfo[] = []
|
|
215
216
|
XEUtils.eachTree(collectColumn, (column) => {
|
|
216
217
|
if (opts.resizable) {
|
|
217
218
|
column.resizeWidth = 0
|
|
@@ -221,6 +222,7 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
221
222
|
}
|
|
222
223
|
if (opts.sort) {
|
|
223
224
|
column.renderSortNumber = column.sortNumber
|
|
225
|
+
column.parentId = column.defaultParentId
|
|
224
226
|
}
|
|
225
227
|
if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
|
|
226
228
|
column.visible = column.defaultVisible
|
|
@@ -230,9 +232,14 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
230
232
|
column.renderAggFn = column.defaultAggFunc
|
|
231
233
|
}
|
|
232
234
|
column.renderResizeWidth = column.renderWidth
|
|
235
|
+
allCols.push(column)
|
|
233
236
|
})
|
|
237
|
+
if (opts.sort) {
|
|
238
|
+
const newCollectCols = XEUtils.toArrayTree(XEUtils.orderBy(allCols, 'renderSortNumber'), { key: 'id', parentKey: 'parentId', children: 'children' })
|
|
239
|
+
internalData.collectColumn = newCollectCols
|
|
240
|
+
internalData.tableFullColumn = getColumnList(newCollectCols)
|
|
241
|
+
}
|
|
234
242
|
reactData.isCustomStatus = false
|
|
235
|
-
$xeTable.saveCustomStore('reset')
|
|
236
243
|
return $xeTable.handleCustom().then(() => {
|
|
237
244
|
if (opts.aggFunc && ($xeTable as any).handlePivotTableAggregateData) {
|
|
238
245
|
const rowGroupFields = computeRowGroupFields.value
|
|
@@ -246,6 +253,7 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
246
253
|
$xeTable.handleUpdateAggData()
|
|
247
254
|
}
|
|
248
255
|
}
|
|
256
|
+
$xeTable.saveCustomStore('reset')
|
|
249
257
|
})
|
|
250
258
|
},
|
|
251
259
|
toggleCustomAllCheckbox () {
|
|
@@ -119,9 +119,12 @@ export class ColumnInfo {
|
|
|
119
119
|
parentId: null,
|
|
120
120
|
visible,
|
|
121
121
|
// 内部属性(一旦被使用,将导致不可升级版本)
|
|
122
|
+
defaultParentId: null,
|
|
122
123
|
halfVisible: false,
|
|
123
124
|
defaultVisible: visible,
|
|
124
125
|
defaultFixed: _vm.fixed,
|
|
126
|
+
|
|
127
|
+
defaultAggGroup: _vm.aggGroup,
|
|
125
128
|
defaultAggFunc: _vm.aggFunc,
|
|
126
129
|
|
|
127
130
|
checked: false,
|
|
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils'
|
|
|
4
4
|
import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey } from '../../ui/src/dom'
|
|
5
5
|
import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
|
|
6
6
|
import { VxeUI } from '../../ui'
|
|
7
|
-
import { getRowUniqueId, clearTableAllStatus, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight } from './util'
|
|
7
|
+
import { getRowUniqueId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight } from './util'
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
9
9
|
import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from './anime'
|
|
10
10
|
import { warnLog, errLog } from '../../ui/src/log'
|
|
@@ -1533,35 +1533,92 @@ export default defineVxeComponent({
|
|
|
1533
1533
|
}
|
|
1534
1534
|
|
|
1535
1535
|
const handleCustomRestore = (storeData: VxeTableDefines.CustomStoreData) => {
|
|
1536
|
-
|
|
1537
|
-
const {
|
|
1538
|
-
|
|
1536
|
+
const { aggregateConfig, rowGroupConfig } = props
|
|
1537
|
+
const { collectColumn } = internalData
|
|
1538
|
+
const customOpts = computeCustomOpts.value
|
|
1539
|
+
const { storage, storeOptions } = customOpts
|
|
1540
|
+
const isAllCustom = storage === true
|
|
1541
|
+
const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {}, storeOptions)
|
|
1542
|
+
const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
|
|
1543
|
+
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
|
|
1544
|
+
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
|
|
1545
|
+
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
|
|
1546
|
+
const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
|
|
1547
|
+
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
|
|
1548
|
+
let { resizableData, sortData, visibleData, fixedData, aggGroupData, aggFuncData } = storeData
|
|
1539
1549
|
// 处理还原
|
|
1540
|
-
if (resizableData || sortData || visibleData || fixedData) {
|
|
1550
|
+
if ((isCustomResizable && resizableData) || (isCustomSort && sortData) || (isCustomVisible && visibleData) || (isCustomFixed && fixedData) || (isCustomAggGroup && aggGroupData) || (isCustomAggFunc && aggFuncData)) {
|
|
1551
|
+
const sortColMaps: Record<string, {
|
|
1552
|
+
key: string
|
|
1553
|
+
sNum: number
|
|
1554
|
+
pKey: string | null
|
|
1555
|
+
}> = {}
|
|
1556
|
+
if (isCustomSort && sortData) {
|
|
1557
|
+
// 转换兼容老版本数据,即将废弃兼容
|
|
1558
|
+
if (!XEUtils.isArray(sortData)) {
|
|
1559
|
+
const sortRests: {key: string, index: number}[] = []
|
|
1560
|
+
XEUtils.each(sortData, (index: number, colKey: string) => {
|
|
1561
|
+
sortRests.push({ key: colKey, index })
|
|
1562
|
+
})
|
|
1563
|
+
sortData = XEUtils.orderBy(sortRests, { field: 'index', order: 'asc' }).map(item => ({ k: item.key }))
|
|
1564
|
+
}
|
|
1565
|
+
let colNum = 1
|
|
1566
|
+
XEUtils.eachTree(sortData, (sObj, index, sOjs, path, pSObj) => {
|
|
1567
|
+
sortColMaps[sObj.k] = {
|
|
1568
|
+
key: sObj.k,
|
|
1569
|
+
sNum: colNum++,
|
|
1570
|
+
pKey: pSObj ? pSObj.k : null
|
|
1571
|
+
}
|
|
1572
|
+
}, { children: 'c' })
|
|
1573
|
+
}
|
|
1574
|
+
const colKeyMaps: Record<string, VxeTableDefines.ColumnInfo> = {}
|
|
1575
|
+
const allCols: VxeTableDefines.ColumnInfo[] = []
|
|
1576
|
+
const aggGroupConfs: VxeTableDefines.RowGroupItem[] = []
|
|
1541
1577
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
1542
1578
|
const colKey = column.getKey()
|
|
1543
1579
|
// 支持一级
|
|
1544
1580
|
if (!parentColumn) {
|
|
1545
|
-
if (fixedData && fixedData[colKey] !== undefined) {
|
|
1581
|
+
if (isCustomFixed && fixedData && fixedData[colKey] !== undefined) {
|
|
1546
1582
|
column.fixed = fixedData[colKey]
|
|
1547
1583
|
}
|
|
1548
|
-
if (sortData && XEUtils.isNumber(sortData[colKey])) {
|
|
1549
|
-
hasCustomSort = true
|
|
1550
|
-
column.renderSortNumber = sortData[colKey]
|
|
1551
|
-
}
|
|
1552
1584
|
}
|
|
1553
|
-
if (resizableData && XEUtils.isNumber(resizableData[colKey])) {
|
|
1585
|
+
if (isCustomResizable && resizableData && XEUtils.isNumber(resizableData[colKey])) {
|
|
1554
1586
|
column.resizeWidth = resizableData[colKey]
|
|
1555
1587
|
}
|
|
1556
|
-
if (visibleData && XEUtils.isBoolean(visibleData[colKey])) {
|
|
1588
|
+
if (isCustomVisible && visibleData && XEUtils.isBoolean(visibleData[colKey])) {
|
|
1557
1589
|
column.visible = visibleData[colKey]
|
|
1558
1590
|
}
|
|
1591
|
+
if (isCustomAggFunc && aggFuncData && (aggregateConfig || rowGroupConfig) && aggFuncData[colKey]) {
|
|
1592
|
+
column.aggFunc = aggFuncData[colKey]
|
|
1593
|
+
}
|
|
1594
|
+
if (isCustomAggGroup && aggGroupData && aggGroupData[colKey]) {
|
|
1595
|
+
aggGroupConfs.push({ field: column.field })
|
|
1596
|
+
}
|
|
1597
|
+
colKeyMaps[colKey] = column
|
|
1598
|
+
allCols.push(column)
|
|
1559
1599
|
})
|
|
1600
|
+
if ((aggregateConfig || rowGroupConfig) && aggGroupConfs.length) {
|
|
1601
|
+
const groupRest = handleGroupData(internalData.tableFullData, aggGroupConfs)
|
|
1602
|
+
internalData.tableFullTreeData = []
|
|
1603
|
+
internalData.tableFullGroupData = groupRest.treeData
|
|
1604
|
+
reactData.isRowGroupStatus = true
|
|
1605
|
+
reactData.rowGroupList = aggGroupConfs
|
|
1606
|
+
$xeTable.cacheRowMap(false)
|
|
1607
|
+
}
|
|
1560
1608
|
// 如果自定义了顺序
|
|
1561
|
-
if (
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1609
|
+
if (isCustomSort && sortData) {
|
|
1610
|
+
allCols.forEach(column => {
|
|
1611
|
+
const colKey = column.getKey()
|
|
1612
|
+
const scItem = sortColMaps[colKey]
|
|
1613
|
+
if (scItem) {
|
|
1614
|
+
const parentColumn = scItem.pKey ? colKeyMaps[scItem.pKey] : null
|
|
1615
|
+
column.parentId = parentColumn ? parentColumn.id : null
|
|
1616
|
+
column.renderSortNumber = scItem.sNum
|
|
1617
|
+
}
|
|
1618
|
+
})
|
|
1619
|
+
const newCollectCols = XEUtils.toArrayTree(XEUtils.orderBy(allCols, 'renderSortNumber'), { key: 'id', parentKey: 'parentId', children: 'children' })
|
|
1620
|
+
internalData.collectColumn = newCollectCols
|
|
1621
|
+
internalData.tableFullColumn = getColumnList(newCollectCols)
|
|
1565
1622
|
}
|
|
1566
1623
|
reactData.isCustomStatus = true
|
|
1567
1624
|
} else {
|
|
@@ -1583,8 +1640,9 @@ export default defineVxeComponent({
|
|
|
1583
1640
|
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
|
|
1584
1641
|
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
|
|
1585
1642
|
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
|
|
1643
|
+
const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
|
|
1586
1644
|
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
|
|
1587
|
-
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggFunc)) {
|
|
1645
|
+
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggGroup || isCustomAggFunc)) {
|
|
1588
1646
|
if (!tableId) {
|
|
1589
1647
|
errLog('vxe.error.reqProp', ['id'])
|
|
1590
1648
|
return
|
|
@@ -3256,18 +3314,18 @@ export default defineVxeComponent({
|
|
|
3256
3314
|
}
|
|
3257
3315
|
|
|
3258
3316
|
const handleUpdateRowGroup = (groupFields?: string[]) => {
|
|
3259
|
-
const
|
|
3260
|
-
const
|
|
3317
|
+
const aggGroupFields: string[] = []
|
|
3318
|
+
const aggGroupConfs: { field: string }[] = []
|
|
3261
3319
|
if (groupFields) {
|
|
3262
3320
|
(XEUtils.isArray(groupFields) ? groupFields : [groupFields]).forEach(field => {
|
|
3263
|
-
|
|
3264
|
-
|
|
3321
|
+
aggGroupFields.push(field)
|
|
3322
|
+
aggGroupConfs.push({
|
|
3265
3323
|
field
|
|
3266
3324
|
})
|
|
3267
3325
|
})
|
|
3268
3326
|
}
|
|
3269
|
-
reactData.rowGroupList =
|
|
3270
|
-
reactData.aggHandleFields =
|
|
3327
|
+
reactData.rowGroupList = aggGroupConfs
|
|
3328
|
+
reactData.aggHandleFields = aggGroupFields
|
|
3271
3329
|
handleUpdateAggValues()
|
|
3272
3330
|
}
|
|
3273
3331
|
|
|
@@ -3639,15 +3697,6 @@ export default defineVxeComponent({
|
|
|
3639
3697
|
$xeTable.closeTooltip()
|
|
3640
3698
|
}
|
|
3641
3699
|
|
|
3642
|
-
// 获取所有的列,排除分组
|
|
3643
|
-
const getColumnList = (columns: VxeTableDefines.ColumnInfo[]) => {
|
|
3644
|
-
const result: VxeTableDefines.ColumnInfo[] = []
|
|
3645
|
-
columns.forEach((column) => {
|
|
3646
|
-
result.push(...(column.children && column.children.length ? getColumnList(column.children) : [column]))
|
|
3647
|
-
})
|
|
3648
|
-
return result
|
|
3649
|
-
}
|
|
3650
|
-
|
|
3651
3700
|
const parseColumns = (isReset: boolean) => {
|
|
3652
3701
|
// const { showOverflow } = props
|
|
3653
3702
|
// const rowOpts = computeRowOpts.value
|
|
@@ -3667,7 +3716,7 @@ export default defineVxeComponent({
|
|
|
3667
3716
|
if (parentColumn && parentColumn.fixed) {
|
|
3668
3717
|
column.fixed = parentColumn.fixed
|
|
3669
3718
|
}
|
|
3670
|
-
if (parentColumn && column.fixed !== parentColumn.fixed) {
|
|
3719
|
+
if (parentColumn && (column.fixed || '') !== (parentColumn.fixed || '')) {
|
|
3671
3720
|
errLog('vxe.error.groupFixed')
|
|
3672
3721
|
}
|
|
3673
3722
|
if (isColGroup) {
|
|
@@ -3771,22 +3820,26 @@ export default defineVxeComponent({
|
|
|
3771
3820
|
return $xeTable.updateFooter()
|
|
3772
3821
|
}
|
|
3773
3822
|
|
|
3774
|
-
const
|
|
3823
|
+
const initColumnHierarchy = () => {
|
|
3775
3824
|
const { collectColumn } = internalData
|
|
3776
|
-
|
|
3777
|
-
|
|
3825
|
+
let sortIndex = 1
|
|
3826
|
+
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
3827
|
+
const parentId = parentColumn ? parentColumn.id : null
|
|
3828
|
+
column.parentId = parentId
|
|
3829
|
+
column.defaultParentId = parentId
|
|
3778
3830
|
column.sortNumber = sortIndex
|
|
3779
3831
|
column.renderSortNumber = sortIndex
|
|
3832
|
+
sortIndex++
|
|
3780
3833
|
})
|
|
3781
3834
|
}
|
|
3782
3835
|
|
|
3783
|
-
const
|
|
3836
|
+
const handleInitColumn = (collectColumn: VxeTableDefines.ColumnInfo[]) => {
|
|
3784
3837
|
const expandOpts = computeExpandOpts.value
|
|
3785
3838
|
internalData.collectColumn = collectColumn
|
|
3786
3839
|
const tableFullColumn = getColumnList(collectColumn)
|
|
3787
3840
|
internalData.tableFullColumn = tableFullColumn
|
|
3788
3841
|
reactData.isColLoading = true
|
|
3789
|
-
|
|
3842
|
+
initColumnHierarchy()
|
|
3790
3843
|
return Promise.resolve(
|
|
3791
3844
|
restoreCustomStorage()
|
|
3792
3845
|
).then(() => {
|
|
@@ -4529,7 +4582,7 @@ export default defineVxeComponent({
|
|
|
4529
4582
|
loadColumn (columns) {
|
|
4530
4583
|
const { lastScrollLeft, lastScrollTop } = internalData
|
|
4531
4584
|
const collectColumn = XEUtils.mapTree(columns, column => reactive(Cell.createColumn($xeTable, column)))
|
|
4532
|
-
return
|
|
4585
|
+
return handleInitColumn(collectColumn).then(() => {
|
|
4533
4586
|
let targetScrollLeft = lastScrollLeft
|
|
4534
4587
|
let targetScrollTop = lastScrollTop
|
|
4535
4588
|
const virtualXOpts = computeVirtualXOpts.value
|
|
@@ -6934,7 +6987,8 @@ export default defineVxeComponent({
|
|
|
6934
6987
|
getCustomStoreData () {
|
|
6935
6988
|
const { id } = props
|
|
6936
6989
|
const customOpts = computeCustomOpts.value
|
|
6937
|
-
const {
|
|
6990
|
+
const { isRowGroupStatus, rowGroupList } = reactData
|
|
6991
|
+
const { fullColumnFieldData, collectColumn } = internalData
|
|
6938
6992
|
const { storage, checkMethod, storeOptions } = customOpts
|
|
6939
6993
|
const isAllCustom = storage === true
|
|
6940
6994
|
const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {}, storeOptions)
|
|
@@ -6942,17 +6996,20 @@ export default defineVxeComponent({
|
|
|
6942
6996
|
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
|
|
6943
6997
|
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
|
|
6944
6998
|
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
|
|
6999
|
+
const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
|
|
6945
7000
|
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
|
|
6946
7001
|
const resizableData: Record<string, number> = {}
|
|
6947
|
-
const sortData:
|
|
7002
|
+
const sortData: VxeTableDefines.CustomSortStoreObj[] = []
|
|
6948
7003
|
const visibleData: Record<string, boolean> = {}
|
|
6949
7004
|
const fixedData: Record<string, VxeColumnPropTypes.Fixed> = {}
|
|
7005
|
+
const aggGroupData: Record<string, boolean> = {}
|
|
6950
7006
|
const aggFuncData: Record<string, VxeColumnPropTypes.AggFunc> = {}
|
|
6951
7007
|
const storeData: VxeTableDefines.CustomStoreData = {
|
|
6952
7008
|
resizableData: undefined,
|
|
6953
7009
|
sortData: undefined,
|
|
6954
7010
|
visibleData: undefined,
|
|
6955
7011
|
fixedData: undefined,
|
|
7012
|
+
aggGroupData: undefined,
|
|
6956
7013
|
aggFuncData: undefined
|
|
6957
7014
|
}
|
|
6958
7015
|
if (!id) {
|
|
@@ -6966,19 +7023,36 @@ export default defineVxeComponent({
|
|
|
6966
7023
|
let hasFixed = 0
|
|
6967
7024
|
let hasVisible = 0
|
|
6968
7025
|
let hasAggFunc = 0
|
|
7026
|
+
const sortMaps: Record<string, VxeTableDefines.CustomSortStoreObj> = {}
|
|
6969
7027
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
6970
7028
|
const colKey = column.getKey()
|
|
6971
7029
|
if (!colKey) {
|
|
6972
7030
|
errLog('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`])
|
|
6973
7031
|
return
|
|
6974
7032
|
}
|
|
6975
|
-
|
|
6976
|
-
if (!parentColumn) {
|
|
7033
|
+
if (parentColumn) {
|
|
6977
7034
|
if (isCustomSort) {
|
|
7035
|
+
const pColKey = parentColumn.getKey()
|
|
7036
|
+
const psObj = sortMaps[pColKey]
|
|
6978
7037
|
hasSort = 1
|
|
6979
|
-
|
|
7038
|
+
if (psObj) {
|
|
7039
|
+
const sObj = { k: colKey }
|
|
7040
|
+
sortMaps[colKey] = sObj
|
|
7041
|
+
if (!psObj.c) {
|
|
7042
|
+
psObj.c = []
|
|
7043
|
+
}
|
|
7044
|
+
psObj.c.push(sObj)
|
|
7045
|
+
}
|
|
6980
7046
|
}
|
|
6981
|
-
|
|
7047
|
+
} else {
|
|
7048
|
+
if (isCustomSort) {
|
|
7049
|
+
hasSort = 1
|
|
7050
|
+
const sObj = { k: colKey }
|
|
7051
|
+
sortMaps[colKey] = sObj
|
|
7052
|
+
sortData.push(sObj)
|
|
7053
|
+
}
|
|
7054
|
+
// 只支持一级
|
|
7055
|
+
if (isCustomFixed && (column.fixed || '') !== (column.defaultFixed || '')) {
|
|
6982
7056
|
hasFixed = 1
|
|
6983
7057
|
fixedData[colKey] = column.fixed
|
|
6984
7058
|
}
|
|
@@ -6996,7 +7070,7 @@ export default defineVxeComponent({
|
|
|
6996
7070
|
visibleData[colKey] = true
|
|
6997
7071
|
}
|
|
6998
7072
|
}
|
|
6999
|
-
if (isCustomAggFunc && column.aggFunc !== column.defaultAggFunc) {
|
|
7073
|
+
if (isCustomAggFunc && (column.aggFunc || '') !== (column.defaultAggFunc || '')) {
|
|
7000
7074
|
hasAggFunc = 1
|
|
7001
7075
|
aggFuncData[colKey] = column.aggFunc
|
|
7002
7076
|
}
|
|
@@ -7013,6 +7087,15 @@ export default defineVxeComponent({
|
|
|
7013
7087
|
if (hasVisible) {
|
|
7014
7088
|
storeData.visibleData = visibleData
|
|
7015
7089
|
}
|
|
7090
|
+
if (isCustomAggGroup && isRowGroupStatus) {
|
|
7091
|
+
rowGroupList.forEach(aggConf => {
|
|
7092
|
+
const colRest = fullColumnFieldData[aggConf.field]
|
|
7093
|
+
if (colRest) {
|
|
7094
|
+
aggGroupData[colRest.column.getKey()] = true
|
|
7095
|
+
}
|
|
7096
|
+
})
|
|
7097
|
+
storeData.aggGroupData = aggGroupData
|
|
7098
|
+
}
|
|
7016
7099
|
if (hasAggFunc) {
|
|
7017
7100
|
storeData.aggFuncData = aggFuncData
|
|
7018
7101
|
}
|
|
@@ -8447,22 +8530,25 @@ export default defineVxeComponent({
|
|
|
8447
8530
|
const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
|
|
8448
8531
|
const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
|
|
8449
8532
|
const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
|
|
8533
|
+
const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
|
|
8450
8534
|
const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
|
|
8451
8535
|
if (type !== 'reset') {
|
|
8452
8536
|
// fix:修复拖动列宽,重置按钮无法点击的问题
|
|
8453
8537
|
reactData.isCustomStatus = true
|
|
8454
8538
|
}
|
|
8455
|
-
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggFunc)) {
|
|
8539
|
+
if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggGroup || isCustomAggFunc)) {
|
|
8456
8540
|
if (!tableId) {
|
|
8457
8541
|
errLog('vxe.error.reqProp', ['id'])
|
|
8458
8542
|
return nextTick()
|
|
8459
8543
|
}
|
|
8460
|
-
const storeData = type === 'reset'
|
|
8544
|
+
const storeData: VxeTableDefines.CustomStoreData = type === 'reset'
|
|
8461
8545
|
? {
|
|
8462
8546
|
resizableData: {},
|
|
8463
|
-
sortData:
|
|
8547
|
+
sortData: [],
|
|
8464
8548
|
visibleData: {},
|
|
8465
|
-
fixedData: {}
|
|
8549
|
+
fixedData: {},
|
|
8550
|
+
aggGroupData: {},
|
|
8551
|
+
aggFuncData: {}
|
|
8466
8552
|
}
|
|
8467
8553
|
: tableMethods.getCustomStoreData()
|
|
8468
8554
|
if (updateStore) {
|
|
@@ -11771,7 +11857,7 @@ export default defineVxeComponent({
|
|
|
11771
11857
|
staticColumnFlag.value++
|
|
11772
11858
|
})
|
|
11773
11859
|
watch(staticColumnFlag, () => {
|
|
11774
|
-
|
|
11860
|
+
nextTick(() => handleInitColumn(XEUtils.clone(reactData.staticColumns)))
|
|
11775
11861
|
})
|
|
11776
11862
|
|
|
11777
11863
|
const tableColumnFlag = ref(0)
|
|
@@ -342,6 +342,15 @@ export function isColumnInfo (column: any): column is ColumnInfo {
|
|
|
342
342
|
return column && (column.constructor === ColumnInfo || column instanceof ColumnInfo)
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
+
// 获取所有的列,排除分组
|
|
346
|
+
export function getColumnList (columns: VxeTableDefines.ColumnInfo[]) {
|
|
347
|
+
const result: VxeTableDefines.ColumnInfo[] = []
|
|
348
|
+
columns.forEach((column) => {
|
|
349
|
+
result.push(...(column.children && column.children.length ? getColumnList(column.children) : [column]))
|
|
350
|
+
})
|
|
351
|
+
return result
|
|
352
|
+
}
|
|
353
|
+
|
|
345
354
|
export function createColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, options: VxeTableDefines.ColumnOptions | VxeTableDefines.ColumnInfo, renderOptions: any): any {
|
|
346
355
|
return isColumnInfo(options) ? options : reactive(new ColumnInfo($xeTable, options, renderOptions))
|
|
347
356
|
}
|
|
@@ -369,6 +378,7 @@ export function assembleColumn ($xeTable: VxeTableConstructor & VxeTablePrivateM
|
|
|
369
378
|
const parentColumn = colgroup ? colgroup.columnConfig : null
|
|
370
379
|
const parentCols = parentColumn ? parentColumn.children : staticColumns
|
|
371
380
|
if (parentElem && parentCols) {
|
|
381
|
+
column.defaultParentId = parentColumn ? parentColumn.id : null
|
|
372
382
|
parentCols.splice(XEUtils.arrayIndexOf(parentElem.children, elem), 0, column)
|
|
373
383
|
reactData.staticColumns = staticColumns.slice(0)
|
|
374
384
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|