vxe-table 4.13.34 → 4.13.36
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/grid/src/grid.js +35 -11
- package/es/style.css +1 -1
- package/es/table/module/edit/hook.js +2 -2
- package/es/table/module/validator/hook.js +11 -3
- package/es/table/src/body.js +20 -3
- package/es/table/src/cell.js +55 -39
- package/es/table/src/column.js +2 -0
- package/es/table/src/columnInfo.js +2 -0
- package/es/table/src/props.js +3 -1
- package/es/table/src/table.js +133 -75
- package/es/table/src/util.js +7 -4
- package/es/ui/index.js +4 -4
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +39 -15
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +173 -96
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +2 -2
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/validator/hook.js +15 -3
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/src/body.js +19 -2
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +47 -32
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +2 -0
- package/lib/table/src/column.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/props.js +3 -1
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +32 -32
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +10 -7
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +4 -4
- 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/grid/src/grid.ts +39 -12
- package/packages/table/module/edit/hook.ts +2 -2
- package/packages/table/module/validator/hook.ts +10 -3
- package/packages/table/src/body.ts +20 -3
- package/packages/table/src/cell.ts +55 -39
- package/packages/table/src/column.ts +2 -0
- package/packages/table/src/columnInfo.ts +3 -0
- package/packages/table/src/props.ts +3 -1
- package/packages/table/src/table.ts +135 -74
- package/packages/table/src/util.ts +7 -3
- package/packages/ui/index.ts +3 -3
- /package/es/{iconfont.1749092482353.ttf → iconfont.1749440132931.ttf} +0 -0
- /package/es/{iconfont.1749092482353.woff → iconfont.1749440132931.woff} +0 -0
- /package/es/{iconfont.1749092482353.woff2 → iconfont.1749440132931.woff2} +0 -0
- /package/lib/{iconfont.1749092482353.ttf → iconfont.1749440132931.ttf} +0 -0
- /package/lib/{iconfont.1749092482353.woff → iconfont.1749440132931.woff} +0 -0
- /package/lib/{iconfont.1749092482353.woff2 → iconfont.1749440132931.woff2} +0 -0
package/lib/table/src/util.js
CHANGED
|
@@ -15,6 +15,7 @@ exports.createHandleUpdateRowId = createHandleUpdateRowId;
|
|
|
15
15
|
exports.destroyColumn = destroyColumn;
|
|
16
16
|
exports.encodeRowid = encodeRowid;
|
|
17
17
|
exports.getCellHeight = getCellHeight;
|
|
18
|
+
exports.getCellRestHeight = getCellRestHeight;
|
|
18
19
|
exports.getCellValue = getCellValue;
|
|
19
20
|
exports.getColReMaxWidth = getColReMaxWidth;
|
|
20
21
|
exports.getColReMinWidth = getColReMinWidth;
|
|
@@ -24,7 +25,8 @@ exports.getRootColumn = getRootColumn;
|
|
|
24
25
|
exports.getRowUniqueId = getRowUniqueId;
|
|
25
26
|
exports.getRowid = getRowid;
|
|
26
27
|
exports.getRowkey = getRowkey;
|
|
27
|
-
exports.
|
|
28
|
+
exports.handleFieldOrColumn = handleFieldOrColumn;
|
|
29
|
+
exports.handleRowidOrRow = handleRowidOrRow;
|
|
28
30
|
exports.hasDeepKey = hasDeepKey;
|
|
29
31
|
exports.isColumnInfo = isColumnInfo;
|
|
30
32
|
exports.restoreScrollLocation = restoreScrollLocation;
|
|
@@ -192,21 +194,22 @@ function updateFastRowKey(row, rowKey) {
|
|
|
192
194
|
}
|
|
193
195
|
return rowid;
|
|
194
196
|
}
|
|
195
|
-
|
|
197
|
+
function handleFieldOrColumn($xeTable, fieldOrColumn) {
|
|
196
198
|
if (fieldOrColumn) {
|
|
197
199
|
return _xeUtils.default.isString(fieldOrColumn) || _xeUtils.default.isNumber(fieldOrColumn) ? $xeTable.getColumnByField(`${fieldOrColumn}`) : fieldOrColumn;
|
|
198
200
|
}
|
|
199
201
|
return null;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
const handleRowidOrRow = ($xeTable, rowidOrRow) => {
|
|
202
|
+
}
|
|
203
|
+
function handleRowidOrRow($xeTable, rowidOrRow) {
|
|
203
204
|
if (rowidOrRow) {
|
|
204
205
|
const rowid = _xeUtils.default.isString(rowidOrRow) || _xeUtils.default.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
|
|
205
206
|
return $xeTable.getRowById(rowid);
|
|
206
207
|
}
|
|
207
208
|
return null;
|
|
208
|
-
}
|
|
209
|
-
|
|
209
|
+
}
|
|
210
|
+
function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
|
|
211
|
+
return rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
|
|
212
|
+
}
|
|
210
213
|
function getPaddingLeftRightSize(elem) {
|
|
211
214
|
if (elem) {
|
|
212
215
|
const computedStyle = getComputedStyle(elem);
|
|
@@ -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.getCellHeight=getCellHeight,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.handleRowidOrRow=exports.handleFieldOrColumn=void 0,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}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let handleFieldOrColumn=(e,t)=>t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null,handleRowidOrRow=(exports.handleFieldOrColumn=handleFieldOrColumn,(e,t)=>t?(t=_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?t:getRowid(e,t),e.getRowById(t)):null);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 getCellHeight(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.handleRowidOrRow=handleRowidOrRow;let lineOffsetSizes={mini:3,small:2,medium:1,large:0},countTreeExpand=(e,t)=>{let l=1;if(e){var r=t.$table,o=r.getComputeMaps().computeTreeOpts,o=o.value,{transform:i,mapChildrenField:n}=o,o=o.children||o.childrenField,a=e[i?n:o];if(a&&r.isTreeExpandByRow(e))for(let e=0;e<a.length;e++)l+=countTreeExpand(a[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,p=a.value,h=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||h.height||p.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,r)-1)*g);let t=0;o=f[R]||{},d=o.resizeHeight||h.height||p.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||h.height||p.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.getCellHeight=getCellHeight,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 getCellHeight(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.getComputeMaps().computeTreeOpts,o=o.value,{transform:i,mapChildrenField:n}=o,o=o.children||o.childrenField,a=e[i?n:o];if(a&&r.isTreeExpandByRow(e))for(let e=0;e<a.length;e++)l+=countTreeExpand(a[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;
|
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.13.
|
|
16
|
+
const version = exports.version = "4.13.36";
|
|
17
17
|
_core.VxeUI.version = version;
|
|
18
18
|
_core.VxeUI.tableVersion = version;
|
|
19
19
|
_core.VxeUI.setConfig({
|
|
@@ -139,7 +139,7 @@ _core.VxeUI.setConfig({
|
|
|
139
139
|
// isEvery: false,
|
|
140
140
|
showIcon: true
|
|
141
141
|
},
|
|
142
|
-
|
|
142
|
+
aggregateConfig: {
|
|
143
143
|
padding: true,
|
|
144
144
|
rowField: 'id',
|
|
145
145
|
parentField: '_X_ROW_PARENT_KEY',
|
|
@@ -213,13 +213,13 @@ _core.VxeUI.setConfig({
|
|
|
213
213
|
isReplace: true
|
|
214
214
|
},
|
|
215
215
|
virtualXConfig: {
|
|
216
|
-
enabled:
|
|
216
|
+
// enabled: false,
|
|
217
217
|
gt: 24,
|
|
218
218
|
preSize: 1,
|
|
219
219
|
oSize: 0
|
|
220
220
|
},
|
|
221
221
|
virtualYConfig: {
|
|
222
|
-
enabled:
|
|
222
|
+
// enabled: false,
|
|
223
223
|
gt: 100,
|
|
224
224
|
preSize: 1,
|
|
225
225
|
oSize: 0
|
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.13.
|
|
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.13.36",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:{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",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:{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},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:{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,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",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_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE: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.13.
|
|
11
|
+
const version = `table v${"4.13.36"}`;
|
|
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.13.
|
|
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.13.36",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ const { getConfig, getI18n, commands, hooks, useFns, createEvent, globalEvents,
|
|
|
17
17
|
|
|
18
18
|
const tableComponentPropKeys = Object.keys(tableComponentProps as any)
|
|
19
19
|
|
|
20
|
-
const tableComponentMethodKeys: (keyof VxeTableMethods)[] = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect']
|
|
20
|
+
const tableComponentMethodKeys: (keyof VxeTableMethods)[] = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect']
|
|
21
21
|
|
|
22
22
|
const gridComponentEmits: VxeGridEmits = [
|
|
23
23
|
...tableComponentEmits,
|
|
@@ -226,9 +226,19 @@ export default defineComponent({
|
|
|
226
226
|
}
|
|
227
227
|
})
|
|
228
228
|
|
|
229
|
-
const
|
|
229
|
+
const computeCustomCurrentPageFlag = computed(() => {
|
|
230
230
|
const pagerOpts = computePagerOpts.value
|
|
231
|
-
return
|
|
231
|
+
return pagerOpts.currentPage
|
|
232
|
+
})
|
|
233
|
+
|
|
234
|
+
const computeCustomPageSizeFlag = computed(() => {
|
|
235
|
+
const pagerOpts = computePagerOpts.value
|
|
236
|
+
return pagerOpts.pageSize
|
|
237
|
+
})
|
|
238
|
+
|
|
239
|
+
const computeCustomTotalFlag = computed(() => {
|
|
240
|
+
const pagerOpts = computePagerOpts.value
|
|
241
|
+
return pagerOpts.total
|
|
232
242
|
})
|
|
233
243
|
|
|
234
244
|
const refMaps: GridPrivateRef = {
|
|
@@ -277,17 +287,26 @@ export default defineComponent({
|
|
|
277
287
|
return proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data
|
|
278
288
|
}
|
|
279
289
|
|
|
280
|
-
const initPages = () => {
|
|
290
|
+
const initPages = (propKey?: 'currentPage' | 'pageSize' | 'total') => {
|
|
281
291
|
const { tablePage } = reactData
|
|
282
292
|
const { pagerConfig } = props
|
|
283
293
|
const pagerOpts = computePagerOpts.value
|
|
284
|
-
const { currentPage, pageSize } = pagerOpts
|
|
285
294
|
if (pagerConfig && isEnableConf(pagerOpts)) {
|
|
286
|
-
if (
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
295
|
+
if (propKey) {
|
|
296
|
+
if (pagerOpts[propKey]) {
|
|
297
|
+
tablePage[propKey] = XEUtils.toNumber(pagerOpts[propKey])
|
|
298
|
+
}
|
|
299
|
+
} else {
|
|
300
|
+
const { currentPage, pageSize, total } = pagerOpts
|
|
301
|
+
if (currentPage) {
|
|
302
|
+
tablePage.currentPage = currentPage
|
|
303
|
+
}
|
|
304
|
+
if (pageSize) {
|
|
305
|
+
tablePage.pageSize = pageSize
|
|
306
|
+
}
|
|
307
|
+
if (total) {
|
|
308
|
+
tablePage.pageSize = total
|
|
309
|
+
}
|
|
291
310
|
}
|
|
292
311
|
}
|
|
293
312
|
}
|
|
@@ -1330,8 +1349,16 @@ export default defineComponent({
|
|
|
1330
1349
|
initToolbar()
|
|
1331
1350
|
})
|
|
1332
1351
|
|
|
1333
|
-
watch(
|
|
1334
|
-
initPages()
|
|
1352
|
+
watch(computeCustomCurrentPageFlag, () => {
|
|
1353
|
+
initPages('currentPage')
|
|
1354
|
+
})
|
|
1355
|
+
|
|
1356
|
+
watch(computeCustomPageSizeFlag, () => {
|
|
1357
|
+
initPages('pageSize')
|
|
1358
|
+
})
|
|
1359
|
+
|
|
1360
|
+
watch(computeCustomTotalFlag, () => {
|
|
1361
|
+
initPages('total')
|
|
1335
1362
|
})
|
|
1336
1363
|
|
|
1337
1364
|
watch(() => props.proxyConfig, () => {
|
|
@@ -334,7 +334,7 @@ hooks.add('tableEditModule', {
|
|
|
334
334
|
params.cell = cell
|
|
335
335
|
if (cell && isEnableConf(editConfig) && isEnableConf(editRender)) {
|
|
336
336
|
// 激活编辑
|
|
337
|
-
if (!$xeTable.isPendingByRow(row)) {
|
|
337
|
+
if (!$xeTable.isPendingByRow(row) && !$xeTable.isAggregateRecord(row)) {
|
|
338
338
|
if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
|
|
339
339
|
// 判断是否禁用编辑
|
|
340
340
|
let type: 'edit-disabled' | 'edit-activated' = 'edit-disabled'
|
|
@@ -428,7 +428,7 @@ hooks.add('tableEditModule', {
|
|
|
428
428
|
const handleEditCell = (row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo, isPos: boolean) => {
|
|
429
429
|
const { editConfig } = props
|
|
430
430
|
const column = XEUtils.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn
|
|
431
|
-
if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender)) {
|
|
431
|
+
if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender) && !$xeTable.isAggregateRecord(row)) {
|
|
432
432
|
return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
|
|
433
433
|
const cell = $xeTable.getCellElement(row, column)
|
|
434
434
|
if (cell) {
|
|
@@ -149,7 +149,7 @@ hooks.add('tableValidatorModule', {
|
|
|
149
149
|
setupTable ($xeTable) {
|
|
150
150
|
const { props, reactData, internalData } = $xeTable
|
|
151
151
|
const { refValidTooltip } = $xeTable.getRefMaps()
|
|
152
|
-
const { computeValidOpts, computeTreeOpts, computeEditOpts } = $xeTable.getComputeMaps()
|
|
152
|
+
const { computeValidOpts, computeTreeOpts, computeEditOpts, computeAggregateOpts } = $xeTable.getComputeMaps()
|
|
153
153
|
|
|
154
154
|
let validatorMethods = {} as TableValidatorMethods
|
|
155
155
|
let validatorPrivateMethods = {} as TableValidatorPrivateMethods
|
|
@@ -209,9 +209,10 @@ hooks.add('tableValidatorModule', {
|
|
|
209
209
|
const beginValidate = (rows: any, cols: VxeTableDefines.ColumnInfo[] | null, cb: any, isFull?: boolean): Promise<any> => {
|
|
210
210
|
const validRest: any = {}
|
|
211
211
|
const { editRules, treeConfig } = props
|
|
212
|
+
const { isRowGroupStatus } = reactData
|
|
212
213
|
const { afterFullData, pendingRowMaps, removeRowMaps } = internalData
|
|
213
214
|
const treeOpts = computeTreeOpts.value
|
|
214
|
-
const
|
|
215
|
+
const aggregateOpts = computeAggregateOpts.value
|
|
215
216
|
const validOpts = computeValidOpts.value
|
|
216
217
|
let validList
|
|
217
218
|
if (rows === true) {
|
|
@@ -252,6 +253,9 @@ hooks.add('tableValidatorModule', {
|
|
|
252
253
|
if (pendingRowMaps[rowid]) {
|
|
253
254
|
return
|
|
254
255
|
}
|
|
256
|
+
if ($xeTable.isAggregateRecord(row)) {
|
|
257
|
+
return
|
|
258
|
+
}
|
|
255
259
|
if (isFull || !validRuleErr) {
|
|
256
260
|
const colVailds: any[] = []
|
|
257
261
|
columns.forEach((column) => {
|
|
@@ -291,7 +295,10 @@ hooks.add('tableValidatorModule', {
|
|
|
291
295
|
rowValidErrs.push(Promise.all(colVailds))
|
|
292
296
|
}
|
|
293
297
|
}
|
|
294
|
-
if (
|
|
298
|
+
if (isRowGroupStatus) {
|
|
299
|
+
XEUtils.eachTree(validList, handleVaild, { children: aggregateOpts.mapChildrenField })
|
|
300
|
+
} else if (treeConfig) {
|
|
301
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
295
302
|
XEUtils.eachTree(validList, handleVaild, { children: childrenField })
|
|
296
303
|
} else {
|
|
297
304
|
validList.forEach(handleVaild)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, TransitionGroup, h, ref, Ref, PropType, inject, nextTick, onMounted, onUnmounted } from 'vue'
|
|
2
2
|
import XEUtils from 'xe-utils'
|
|
3
3
|
import { VxeUI } from '../../ui'
|
|
4
|
-
import { getOffsetSize, calcTreeLine, getRowid, createHandleGetRowId } from './util'
|
|
4
|
+
import { getOffsetSize, calcTreeLine, getRowid, createHandleGetRowId, getCellRestHeight } from './util'
|
|
5
5
|
import { updateCellTitle, getPropClass } from '../../ui/src/dom'
|
|
6
6
|
import { isEnableConf } from '../../ui/src/utils'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
@@ -234,6 +234,7 @@ export default defineComponent({
|
|
|
234
234
|
$xeTable.triggerCellDblclickEvent(evnt, cellParams)
|
|
235
235
|
}
|
|
236
236
|
let isMergeCell = false
|
|
237
|
+
let mergeRowspan = 1
|
|
237
238
|
// 合并行或列
|
|
238
239
|
if (mergeBodyFlag && mergeBodyList.length) {
|
|
239
240
|
const spanRest = mergeBodyCellMaps[`${_rowIndex}:${_columnIndex}`]
|
|
@@ -244,6 +245,7 @@ export default defineComponent({
|
|
|
244
245
|
}
|
|
245
246
|
if (rowspan > 1) {
|
|
246
247
|
isMergeCell = true
|
|
248
|
+
mergeRowspan = rowspan
|
|
247
249
|
tdAttrs.rowspan = rowspan
|
|
248
250
|
}
|
|
249
251
|
if (colspan > 1) {
|
|
@@ -258,9 +260,12 @@ export default defineComponent({
|
|
|
258
260
|
return null
|
|
259
261
|
}
|
|
260
262
|
if (rowspan > 1) {
|
|
263
|
+
isMergeCell = true
|
|
264
|
+
mergeRowspan = rowspan
|
|
261
265
|
tdAttrs.rowspan = rowspan
|
|
262
266
|
}
|
|
263
267
|
if (colspan > 1) {
|
|
268
|
+
isMergeCell = true
|
|
264
269
|
tdAttrs.colspan = colspan
|
|
265
270
|
}
|
|
266
271
|
}
|
|
@@ -276,7 +281,7 @@ export default defineComponent({
|
|
|
276
281
|
}
|
|
277
282
|
|
|
278
283
|
const isVNAutoHeight = scrollYLoad && !hasEllipsis
|
|
279
|
-
|
|
284
|
+
let cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight)
|
|
280
285
|
|
|
281
286
|
const isLastColumn = $columnIndex === columns.length - 1
|
|
282
287
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto')
|
|
@@ -292,6 +297,16 @@ export default defineComponent({
|
|
|
292
297
|
}
|
|
293
298
|
}
|
|
294
299
|
|
|
300
|
+
if (mergeRowspan > 1) {
|
|
301
|
+
const mEndRow = afterFullData[_rowIndex + mergeRowspan - 1]
|
|
302
|
+
if (mEndRow) {
|
|
303
|
+
const meRowRest = fullAllDataRowIdData[getRowid($xeTable, mEndRow)]
|
|
304
|
+
if (meRowRest) {
|
|
305
|
+
cellHeight += meRowRest.oTop - rowRest.oTop + getCellRestHeight(meRowRest, cellOpts, rowOpts, defaultRowHeight)
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
295
310
|
const tcStyle: Record<string, string> = {}
|
|
296
311
|
if (hasEllipsis && resizeWidthFlag) {
|
|
297
312
|
let tsColspan = tdAttrs.colspan || 0
|
|
@@ -326,8 +341,10 @@ export default defineComponent({
|
|
|
326
341
|
)
|
|
327
342
|
} else {
|
|
328
343
|
// 渲染单元格
|
|
344
|
+
if (treeConfig) {
|
|
345
|
+
tdVNs.push(...renderLine(rowid, cellParams, cellHeight))
|
|
346
|
+
}
|
|
329
347
|
tdVNs.push(
|
|
330
|
-
...renderLine(rowid, cellParams, cellHeight),
|
|
331
348
|
h('div', {
|
|
332
349
|
key: 'tc',
|
|
333
350
|
class: ['vxe-cell', {
|
|
@@ -288,12 +288,12 @@ function renderCellHandle (params: VxeTableDefines.CellRenderBodyParams & {
|
|
|
288
288
|
const { isRowGroupStatus } = tableReactData
|
|
289
289
|
const { editConfig } = tableProps
|
|
290
290
|
const { type, treeNode, rowGroupNode, editRender } = column
|
|
291
|
-
const { computeEditOpts, computeCheckboxOpts,
|
|
292
|
-
const
|
|
293
|
-
const { mode } =
|
|
291
|
+
const { computeEditOpts, computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps()
|
|
292
|
+
const aggregateOpts = computeAggregateOpts.value
|
|
293
|
+
const { mode } = aggregateOpts
|
|
294
294
|
const checkboxOpts = computeCheckboxOpts.value
|
|
295
295
|
const editOpts = computeEditOpts.value
|
|
296
|
-
const isDeepCell = treeNode || (isRowGroupStatus &&
|
|
296
|
+
const isDeepCell = treeNode || (isRowGroupStatus && (mode === 'column' ? column.field === row.groupField : rowGroupNode))
|
|
297
297
|
switch (type) {
|
|
298
298
|
case 'seq':
|
|
299
299
|
return isDeepCell ? Cell.renderDeepIndexCell(params) : Cell.renderSeqCell(params)
|
|
@@ -397,7 +397,7 @@ export const Cell = {
|
|
|
397
397
|
const tableReactData = $table.reactData
|
|
398
398
|
const tableInternalData = $table.internalData
|
|
399
399
|
const { isRowGroupStatus } = tableReactData
|
|
400
|
-
const { field, slots, editRender, cellRender, rowGroupNode } = column
|
|
400
|
+
const { field, slots, editRender, cellRender, rowGroupNode, aggFunc } = column
|
|
401
401
|
const renderOpts = editRender || cellRender
|
|
402
402
|
const defaultSlot = slots ? slots.default : null
|
|
403
403
|
if (defaultSlot) {
|
|
@@ -415,39 +415,51 @@ export const Cell = {
|
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
417
|
let cellValue: string | number | null = ''
|
|
418
|
-
if (isRowGroupStatus && row.isAggregate) {
|
|
418
|
+
if (isRowGroupStatus && field && row.isAggregate) {
|
|
419
|
+
const aggRow: VxeTableDefines.AggregateRowInfo = row
|
|
419
420
|
const { fullColumnFieldData } = tableInternalData
|
|
420
|
-
const {
|
|
421
|
-
const
|
|
422
|
-
const { mode, showTotal, totalMethod, countFields,
|
|
423
|
-
const
|
|
424
|
-
const
|
|
425
|
-
const
|
|
426
|
-
const
|
|
421
|
+
const { computeAggregateOpts } = $table.getComputeMaps()
|
|
422
|
+
const aggregateOpts = computeAggregateOpts.value
|
|
423
|
+
const { mode, showTotal, totalMethod, countFields, contentMethod, mapChildrenField } = aggregateOpts
|
|
424
|
+
const aggMethod = aggregateOpts.aggregateMethod || aggregateOpts.countMethod
|
|
425
|
+
const groupField = aggRow.groupField
|
|
426
|
+
const groupContent = aggRow.groupContent
|
|
427
|
+
const childList = mapChildrenField ? (aggRow[mapChildrenField] || []) : []
|
|
428
|
+
const childCount = aggRow.childCount
|
|
427
429
|
const colRest = fullColumnFieldData[groupField] || {}
|
|
428
|
-
const
|
|
430
|
+
const ctParams = {
|
|
429
431
|
$table,
|
|
430
432
|
groupField,
|
|
431
433
|
groupColumn: (colRest ? colRest.column : null) as VxeTableDefines.ColumnInfo,
|
|
432
434
|
column,
|
|
433
435
|
groupValue: groupContent,
|
|
434
436
|
children: childList,
|
|
435
|
-
|
|
437
|
+
childCount,
|
|
438
|
+
aggValue: null as any,
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* 已废弃
|
|
442
|
+
* @deprecated
|
|
443
|
+
*/
|
|
444
|
+
totalValue: childCount
|
|
436
445
|
}
|
|
437
|
-
if (mode === 'column' ?
|
|
446
|
+
if (mode === 'column' ? field === aggRow.groupField : rowGroupNode) {
|
|
438
447
|
cellValue = groupContent
|
|
439
448
|
if (contentMethod) {
|
|
440
|
-
cellValue = `${contentMethod(
|
|
449
|
+
cellValue = `${contentMethod(ctParams)}`
|
|
441
450
|
}
|
|
442
451
|
if (showTotal) {
|
|
443
|
-
cellValue = getI18n('vxe.table.rowGroupContentTotal', [cellValue, totalMethod ? totalMethod(
|
|
452
|
+
cellValue = getI18n('vxe.table.rowGroupContentTotal', [cellValue, totalMethod ? totalMethod(ctParams) : childCount, childCount])
|
|
444
453
|
}
|
|
445
|
-
} else if (
|
|
446
|
-
|
|
447
|
-
|
|
454
|
+
} else if ($table.getPivotTableAggregateCellAggValue) {
|
|
455
|
+
cellValue = $table.getPivotTableAggregateCellAggValue(params)
|
|
456
|
+
} else if (aggFunc === true || (countFields && countFields.includes(field))) {
|
|
457
|
+
if (aggMethod) {
|
|
458
|
+
ctParams.aggValue = childCount
|
|
459
|
+
cellValue = `${aggMethod(ctParams)}`
|
|
448
460
|
}
|
|
449
461
|
}
|
|
450
|
-
} else
|
|
462
|
+
} else {
|
|
451
463
|
cellValue = $table.getCellLabel(row, column)
|
|
452
464
|
}
|
|
453
465
|
const cellPlaceholder = editRender ? editRender.placeholder : ''
|
|
@@ -480,11 +492,11 @@ export const Cell = {
|
|
|
480
492
|
const tableReactData = $table.reactData
|
|
481
493
|
const tableInternalData = $table.internalData
|
|
482
494
|
const { row, level } = params
|
|
483
|
-
const {
|
|
495
|
+
const { computeAggregateOpts } = $table.getComputeMaps()
|
|
484
496
|
const { rowGroupExpandedFlag } = tableReactData
|
|
485
497
|
const { rowGroupExpandedMaps } = tableInternalData
|
|
486
|
-
const
|
|
487
|
-
const { padding, indent } =
|
|
498
|
+
const aggregateOpts = computeAggregateOpts.value
|
|
499
|
+
const { padding, indent } = aggregateOpts
|
|
488
500
|
const rowid = getRowid($table, row)
|
|
489
501
|
const isExpand = !!rowGroupExpandedFlag && !!rowGroupExpandedMaps[rowid]
|
|
490
502
|
return h('div', {
|
|
@@ -497,16 +509,18 @@ export const Cell = {
|
|
|
497
509
|
}
|
|
498
510
|
: undefined
|
|
499
511
|
}, [
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
512
|
+
row.isAggregate
|
|
513
|
+
? h('span', {
|
|
514
|
+
class: 'vxe-row-group--node-btn',
|
|
515
|
+
onClick (evnt: MouseEvent) {
|
|
516
|
+
$table.triggerRowGroupExpandEvent(evnt, params)
|
|
517
|
+
}
|
|
518
|
+
}, [
|
|
519
|
+
h('i', {
|
|
520
|
+
class: isExpand ? getIcon().TABLE_ROW_GROUP_OPEN : getIcon().TABLE_ROW_GROUP_CLOSE
|
|
521
|
+
})
|
|
522
|
+
])
|
|
523
|
+
: renderEmptyElement($table),
|
|
510
524
|
h('div', {
|
|
511
525
|
class: 'vxe-row-group-cell'
|
|
512
526
|
}, cellVNodes)
|
|
@@ -588,10 +602,12 @@ export const Cell = {
|
|
|
588
602
|
renderDeepNodeBtn (params: VxeTableDefines.CellRenderBodyParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }, cellVNodes: VxeComponentSlotType[]) {
|
|
589
603
|
const { $table, row, column } = params
|
|
590
604
|
const { rowGroupNode } = column
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
const {
|
|
605
|
+
const tableReactData = $table.reactData
|
|
606
|
+
const { rowGroupList } = tableReactData
|
|
607
|
+
if (rowGroupList.length) {
|
|
608
|
+
const { computeAggregateOpts } = $table.getComputeMaps()
|
|
609
|
+
const aggregateOpts = computeAggregateOpts.value
|
|
610
|
+
const { mode } = aggregateOpts
|
|
595
611
|
if (mode === 'column' ? column.field === row.groupField : rowGroupNode) {
|
|
596
612
|
return [Cell.renderRowGroupBtn(params, cellVNodes)]
|
|
597
613
|
}
|
|
@@ -124,6 +124,8 @@ export const columnProps = {
|
|
|
124
124
|
editRender: Object as PropType<VxeColumnPropTypes.EditRender>,
|
|
125
125
|
// 内容渲染配置项
|
|
126
126
|
contentRender: Object as PropType<VxeColumnPropTypes.ContentRender>,
|
|
127
|
+
// 聚合函数
|
|
128
|
+
aggFunc: [String, Boolean] as PropType<VxeColumnPropTypes.AggFunc>,
|
|
127
129
|
// 额外的参数
|
|
128
130
|
params: Object as PropType<VxeColumnPropTypes.Params>
|
|
129
131
|
}
|
|
@@ -95,6 +95,7 @@ export class ColumnInfo {
|
|
|
95
95
|
titleHelp: _vm.titleHelp,
|
|
96
96
|
titlePrefix: _vm.titlePrefix,
|
|
97
97
|
titleSuffix: _vm.titleSuffix,
|
|
98
|
+
aggFunc: _vm.aggFunc,
|
|
98
99
|
// 自定义参数
|
|
99
100
|
params: _vm.params,
|
|
100
101
|
// 渲染属性
|
|
@@ -124,6 +125,8 @@ export class ColumnInfo {
|
|
|
124
125
|
sortNumber: 0, // 用于记录自定义列顺序
|
|
125
126
|
renderSortNumber: 0, // 用于记录自定义列顺序
|
|
126
127
|
|
|
128
|
+
renderAggFn: '',
|
|
129
|
+
|
|
127
130
|
renderFixed: '',
|
|
128
131
|
renderVisible: false,
|
|
129
132
|
|
|
@@ -198,7 +198,9 @@ export default {
|
|
|
198
198
|
footerCellConfig: Object as PropType<VxeTablePropTypes.FooterCellConfig>,
|
|
199
199
|
// 行配置项
|
|
200
200
|
rowConfig: Object as PropType<VxeTablePropTypes.RowConfig>,
|
|
201
|
-
//
|
|
201
|
+
// 数据聚合配置项
|
|
202
|
+
aggregateConfig: Object as PropType<VxeTablePropTypes.AggregateConfig>,
|
|
203
|
+
// 已废弃,被 aggregateConfig 替换
|
|
202
204
|
rowGroupConfig: Object as PropType<VxeTablePropTypes.RowGroupConfig>,
|
|
203
205
|
// 当前行配置项
|
|
204
206
|
currentRowConfig: Object as PropType<VxeTablePropTypes.CurrentRowConfig>,
|