vxe-table 4.11.18 → 4.11.20
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 +45 -34
- package/es/style.css +1 -1
- package/es/table/module/keyboard/hook.js +30 -1
- package/es/table/src/body.js +11 -6
- package/es/table/src/footer.js +7 -2
- package/es/table/src/table.js +164 -48
- package/es/table/src/util.js +13 -3
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +43 -39
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +293 -104
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/hook.js +31 -1
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +10 -5
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +7 -2
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/table.js +184 -49
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +16 -6
- 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 +2 -2
- package/packages/grid/src/grid.ts +49 -40
- package/packages/table/module/keyboard/hook.ts +29 -2
- package/packages/table/src/body.ts +10 -5
- package/packages/table/src/footer.ts +7 -2
- package/packages/table/src/table.ts +167 -50
- package/packages/table/src/util.ts +15 -3
- /package/es/{iconfont.1741224125327.ttf → iconfont.1741665718304.ttf} +0 -0
- /package/es/{iconfont.1741224125327.woff → iconfont.1741665718304.woff} +0 -0
- /package/es/{iconfont.1741224125327.woff2 → iconfont.1741665718304.woff2} +0 -0
- /package/lib/{iconfont.1741224125327.ttf → iconfont.1741665718304.ttf} +0 -0
- /package/lib/{iconfont.1741224125327.woff → iconfont.1741665718304.woff} +0 -0
- /package/lib/{iconfont.1741224125327.woff2 → iconfont.1741665718304.woff2} +0 -0
package/lib/table/src/util.js
CHANGED
|
@@ -11,6 +11,7 @@ exports.colToVisible = colToVisible;
|
|
|
11
11
|
exports.convertHeaderColumnToRows = void 0;
|
|
12
12
|
exports.createColumn = createColumn;
|
|
13
13
|
exports.destroyColumn = destroyColumn;
|
|
14
|
+
exports.encodeRowid = encodeRowid;
|
|
14
15
|
exports.getCellHeight = getCellHeight;
|
|
15
16
|
exports.getCellValue = getCellValue;
|
|
16
17
|
exports.getColReMaxWidth = getColReMaxWidth;
|
|
@@ -21,7 +22,7 @@ exports.getRootColumn = getRootColumn;
|
|
|
21
22
|
exports.getRowUniqueId = getRowUniqueId;
|
|
22
23
|
exports.getRowid = getRowid;
|
|
23
24
|
exports.getRowkey = getRowkey;
|
|
24
|
-
exports.handleFieldOrColumn = void 0;
|
|
25
|
+
exports.handleRowidOrRow = exports.handleFieldOrColumn = void 0;
|
|
25
26
|
exports.isColumnInfo = isColumnInfo;
|
|
26
27
|
exports.mergeBodyMethod = mergeBodyMethod;
|
|
27
28
|
exports.restoreScrollLocation = restoreScrollLocation;
|
|
@@ -125,16 +126,17 @@ function getRowkey($xeTable) {
|
|
|
125
126
|
const {
|
|
126
127
|
computeRowOpts
|
|
127
128
|
} = $xeTable.getComputeMaps();
|
|
128
|
-
const {
|
|
129
|
-
rowId
|
|
130
|
-
} = props;
|
|
131
129
|
const rowOpts = computeRowOpts.value;
|
|
132
|
-
return rowId || rowOpts.keyField || '_X_ROW_KEY'
|
|
130
|
+
return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`;
|
|
133
131
|
}
|
|
134
132
|
// 行主键 value
|
|
135
133
|
function getRowid($xeTable, row) {
|
|
136
134
|
const rowid = _xeUtils.default.get(row, getRowkey($xeTable));
|
|
137
|
-
return
|
|
135
|
+
return encodeRowid(rowid);
|
|
136
|
+
}
|
|
137
|
+
// 编码行主键
|
|
138
|
+
function encodeRowid(rowVal) {
|
|
139
|
+
return _xeUtils.default.eqNull(rowVal) ? '' : encodeURIComponent(rowVal);
|
|
138
140
|
}
|
|
139
141
|
const handleFieldOrColumn = ($xeTable, fieldOrColumn) => {
|
|
140
142
|
if (fieldOrColumn) {
|
|
@@ -143,6 +145,14 @@ const handleFieldOrColumn = ($xeTable, fieldOrColumn) => {
|
|
|
143
145
|
return null;
|
|
144
146
|
};
|
|
145
147
|
exports.handleFieldOrColumn = handleFieldOrColumn;
|
|
148
|
+
const handleRowidOrRow = ($xeTable, rowidOrRow) => {
|
|
149
|
+
if (rowidOrRow) {
|
|
150
|
+
const rowid = _xeUtils.default.isString(rowidOrRow) || _xeUtils.default.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
|
|
151
|
+
return $xeTable.getRowById(rowid);
|
|
152
|
+
}
|
|
153
|
+
return null;
|
|
154
|
+
};
|
|
155
|
+
exports.handleRowidOrRow = handleRowidOrRow;
|
|
146
156
|
function getPaddingLeftRightSize(elem) {
|
|
147
157
|
if (elem) {
|
|
148
158
|
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.destroyColumn=destroyColumn,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.handleFieldOrColumn=void 0,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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){let r=e.internalData;return e.clearScroll().then(()=>{if(t||l)return r.lastScrollLeft=0,r.lastScrollTop=0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(t,l)})}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var t=e.props,e=e.getComputeMaps().computeRowOpts,t=t.rowId,e=e.value;return t||e.keyField||"_X_ROW_KEY"}function getRowid(e,t){t=_xeUtils.default.get(t,getRowkey(e));return _xeUtils.default.eqNull(t)?"":encodeURIComponent(t)}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let handleFieldOrColumn=(e,t)=>t?_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t)?e.getColumnByField(""+t):t:null;function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginWidth(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 queryCellElement(e,t){return e.querySelector(".vxe-cell"+t)}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,s,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 c=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(e&&(i=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),l=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),e=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),n=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),s=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),c+=i+l+e+n+a+u+r+s),o){i=getRefElem(t["main-body-scroll"]);if(i){if((0,_dom.isScale)(o))return l=(i.clientWidth-1)/100,Math.max(c,Math.floor(_xeUtils.default.toInteger(o)*l));if((0,_dom.isPx)(o))return Math.max(c,_xeUtils.default.toInteger(o))}}return c}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.handleFieldOrColumn=handleFieldOrColumn;let lineOffsetSizes={mini:3,small:2,medium:1},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:s}=l.getComputeMaps(),a=a.value,u=u.value,s=s.value,n=n[getRowid(l,r)],r=n.resizeHeight||u.height||a.height||n.height||s;let c=1,d=(t&&(c=countTreeExpand(t,e)),r);return(d=i&&!o?n.height||r:d)*c-(t?1:12-getOffsetSize(l))}function mergeBodyMethod(t,l,r){for(let e=0;e<t.length;e++){var{row:o,col:i,rowspan:n,colspan:a}=t[e];if(-1<i&&-1<o&&n&&a){if(o===l&&i===r)return{rowspan:n,colspan:a};if(o<=l&&l<o+n&&i<=r&&r<i+a)return{rowspan:0,colspan:0}}}}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:s}=l.getComputeMaps(),e=e.showOverflow,t=t.scrollYLoad,{elemStore:o,afterFullData:c,fullAllDataRowIdData:d,isResizeCellHeight:f}=o,m=a.value,h=u.value,g=s.value,a=i.value,u=n.value,s=getRefElem(o["main-body-scroll"]),p=getRowid(l,r);if(s){i=s.clientHeight,n=s.scrollTop,o=s.querySelector(`[rowid="${p}"]`);if(o){s=o.offsetParent,s=o.offsetTop+(s?s.offsetTop:0),o=o.clientHeight;if(s<n||n+i<s)return l.scrollTo(null,s);if(i+n<=s+o)return l.scrollTo(null,n+o)}else if(t){if(!(f||h.height||m.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,r)-1)*g);let t=0;s=d[p]||{},o=s.resizeHeight||h.height||m.height||s.height||g;for(let e=0;e<c.length;e++){var C=c[e],x=getRowid(l,C);if(C===r||x===p)break;C=d[x]||{};t+=C.resizeHeight||h.height||m.height||C.height||g}return t<n?l.scrollTo(null,t-a-1):l.scrollTo(null,t+o-(i-u-1))}}return Promise.resolve()}function colToVisible(l,r,t){var o=l.reactData,i=l.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:a}=l.getComputeMaps(),o=o.scrollXLoad,{elemStore:i,visibleColumn:u}=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.offsetParent,i=e.offsetLeft+(t?t.offsetLeft:0),t=e.clientWidth;if(i<c+n)return l.scrollTo(i-n-1);if(s-a<i+t-c)return l.scrollTo(i+t-(s-a-1))}else if(o){let t=0;i=r.renderWidth;for(let e=0;e<u.length;e++){var d=u[e];if(d===r||d.id===r.id)break;t+=d.renderWidth}return t<c?l.scrollTo(t-n-1):l.scrollTo(t+i-(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.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.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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){let r=e.internalData;return e.clearScroll().then(()=>{if(t||l)return r.lastScrollLeft=0,r.lastScrollTop=0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(t,l)})}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var t=e.props,e=e.getComputeMaps().computeRowOpts,e=e.value;return""+(t.rowId||e.keyField||"_X_ROW_KEY")}function getRowid(e,t){return encodeRowid(_xeUtils.default.get(t,getRowkey(e)))}function encodeRowid(e){return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}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 getElementMarginWidth(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 queryCellElement(e,t){return e.querySelector(".vxe-cell"+t)}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,s,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 c=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(e&&(i=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),l=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),e=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),n=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),s=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),c+=i+l+e+n+a+u+r+s),o){i=getRefElem(t["main-body-scroll"]);if(i){if((0,_dom.isScale)(o))return l=(i.clientWidth-1)/100,Math.max(c,Math.floor(_xeUtils.default.toInteger(o)*l));if((0,_dom.isPx)(o))return Math.max(c,_xeUtils.default.toInteger(o))}}return c}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},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:s}=l.getComputeMaps(),a=a.value,u=u.value,s=s.value,n=n[getRowid(l,r)],r=n.resizeHeight||u.height||a.height||n.height||s;let c=1,d=(t&&(c=countTreeExpand(t,e)),r);return(d=i&&!o?n.height||r:d)*c-(t?1:12-getOffsetSize(l))}function mergeBodyMethod(t,l,r){for(let e=0;e<t.length;e++){var{row:o,col:i,rowspan:n,colspan:a}=t[e];if(-1<i&&-1<o&&n&&a){if(o===l&&i===r)return{rowspan:n,colspan:a};if(o<=l&&l<o+n&&i<=r&&r<i+a)return{rowspan:0,colspan:0}}}}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:s}=l.getComputeMaps(),e=e.showOverflow,t=t.scrollYLoad,{elemStore:o,afterFullData:c,fullAllDataRowIdData:d,isResizeCellHeight:f}=o,m=a.value,h=u.value,g=s.value,a=i.value,u=n.value,s=getRefElem(o["main-body-scroll"]),p=getRowid(l,r);if(s){i=s.clientHeight,n=s.scrollTop,o=s.querySelector(`[rowid="${p}"]`);if(o){s=o.offsetParent,s=o.offsetTop+(s?s.offsetTop:0),o=o.clientHeight;if(s<n||n+i<s)return l.scrollTo(null,s);if(i+n<=s+o)return l.scrollTo(null,n+o)}else if(t){if(!(f||h.height||m.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,r)-1)*g);let t=0;s=d[p]||{},o=s.resizeHeight||h.height||m.height||s.height||g;for(let e=0;e<c.length;e++){var x=c[e],C=getRowid(l,x);if(x===r||C===p)break;x=d[C]||{};t+=x.resizeHeight||h.height||m.height||x.height||g}return t<n?l.scrollTo(null,t-a-1):l.scrollTo(null,t+o-(i-u-1))}}return Promise.resolve()}function colToVisible(l,r,t){var o=l.reactData,i=l.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:a}=l.getComputeMaps(),o=o.scrollXLoad,{elemStore:i,visibleColumn:u}=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.offsetParent,i=e.offsetLeft+(t?t.offsetLeft:0),t=e.clientWidth;if(i<c+n)return l.scrollTo(i-n-1);if(s-a<i+t-c)return l.scrollTo(i+t-(s-a-1))}else if(o){let t=0;i=r.renderWidth;for(let e=0;e<u.length;e++){var d=u[e];if(d===r||d.id===r.id)break;t+=d.renderWidth}return t<c?l.scrollTo(t-n-1):l.scrollTo(t+i-(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.11.
|
|
16
|
+
const version = exports.version = "4.11.20";
|
|
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.11.
|
|
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.11.20",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},treeConfig:{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:{enabled:!0,gt:60,preSize:0,oSize:1},virtualYConfig:{enabled:!0,gt:100,preSize:0,oSize:1},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",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.11.
|
|
11
|
+
const version = `table v${"4.11.20"}`;
|
|
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.11.
|
|
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.11.20",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.11.
|
|
3
|
+
"version": "4.11.20",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "npm install --legacy-peer-deps",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"style": "lib/style.css",
|
|
29
29
|
"typings": "types/index.d.ts",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"vxe-pc-ui": "^4.4.
|
|
31
|
+
"vxe-pc-ui": "^4.4.9"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/resize-observer-browser": "^0.1.11",
|
|
@@ -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', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', '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', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', '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', 'openTooltip', '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', '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', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', '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', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect']
|
|
21
21
|
|
|
22
22
|
const gridComponentEmits: VxeGridEmits = [
|
|
23
23
|
...tableComponentEmits,
|
|
@@ -466,6 +466,24 @@ export default defineComponent({
|
|
|
466
466
|
return null
|
|
467
467
|
}
|
|
468
468
|
|
|
469
|
+
const getConfigSlot = (slotConfigs?: Record<string, any>) => {
|
|
470
|
+
const slotConf: Record<string, any> = {}
|
|
471
|
+
XEUtils.objectMap(slotConfigs, (slotFunc, slotKey) => {
|
|
472
|
+
if (slotFunc) {
|
|
473
|
+
if (XEUtils.isString(slotFunc)) {
|
|
474
|
+
if (slots[slotFunc]) {
|
|
475
|
+
slotConf[slotKey] = slots[slotFunc]
|
|
476
|
+
} else {
|
|
477
|
+
errLog('vxe.error.notSlot', [slotFunc])
|
|
478
|
+
}
|
|
479
|
+
} else {
|
|
480
|
+
slotConf[slotKey] = slotFunc
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
})
|
|
484
|
+
return slotConf
|
|
485
|
+
}
|
|
486
|
+
|
|
469
487
|
/**
|
|
470
488
|
* 渲染表单
|
|
471
489
|
*/
|
|
@@ -670,43 +688,26 @@ export default defineComponent({
|
|
|
670
688
|
const { proxyConfig, pagerConfig } = props
|
|
671
689
|
const proxyOpts = computeProxyOpts.value
|
|
672
690
|
const pagerOpts = computePagerOpts.value
|
|
691
|
+
const pagerSlot = slots.pager
|
|
673
692
|
if ((pagerConfig && isEnableConf(pagerOpts)) || slots.pager) {
|
|
674
|
-
let slotVNs: VNode[] = []
|
|
675
|
-
if (slots.pager) {
|
|
676
|
-
slotVNs = slots.pager({ $grid: $xeGrid })
|
|
677
|
-
} else {
|
|
678
|
-
const pagerOptSlots = pagerOpts.slots
|
|
679
|
-
const pagerSlots: { [key: string]: () => VNode[] } = {}
|
|
680
|
-
let leftSlot: any
|
|
681
|
-
let rightSlot: any
|
|
682
|
-
if (pagerOptSlots) {
|
|
683
|
-
leftSlot = getFuncSlot(pagerOptSlots, 'left')
|
|
684
|
-
rightSlot = getFuncSlot(pagerOptSlots, 'right')
|
|
685
|
-
if (leftSlot) {
|
|
686
|
-
pagerSlots.left = leftSlot
|
|
687
|
-
}
|
|
688
|
-
if (rightSlot) {
|
|
689
|
-
pagerSlots.right = rightSlot
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
if (VxeUIPagerComponent) {
|
|
693
|
-
slotVNs.push(
|
|
694
|
-
h(VxeUIPagerComponent, {
|
|
695
|
-
ref: refPager,
|
|
696
|
-
...pagerOpts,
|
|
697
|
-
...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {}),
|
|
698
|
-
onPageChange: pageChangeEvent
|
|
699
|
-
}, pagerSlots)
|
|
700
|
-
)
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
693
|
return h('div', {
|
|
704
694
|
ref: refPagerWrapper,
|
|
705
695
|
key: 'pager',
|
|
706
696
|
class: 'vxe-grid--pager-wrapper'
|
|
707
|
-
},
|
|
697
|
+
}, pagerSlot
|
|
698
|
+
? pagerSlot({ $grid: $xeGrid })
|
|
699
|
+
: [
|
|
700
|
+
VxeUIPagerComponent
|
|
701
|
+
? h(VxeUIPagerComponent, {
|
|
702
|
+
ref: refPager,
|
|
703
|
+
...pagerOpts,
|
|
704
|
+
...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {}),
|
|
705
|
+
onPageChange: pageChangeEvent
|
|
706
|
+
}, getConfigSlot(pagerOpts.slots))
|
|
707
|
+
: renderEmptyElement($xeGrid)
|
|
708
|
+
])
|
|
708
709
|
}
|
|
709
|
-
return
|
|
710
|
+
return renderEmptyElement($xeGrid)
|
|
710
711
|
}
|
|
711
712
|
|
|
712
713
|
const renderChildLayout = (layoutKeys: VxeGridPropTypes.LayoutKey[]) => {
|
|
@@ -836,6 +837,9 @@ export default defineComponent({
|
|
|
836
837
|
|
|
837
838
|
const gridMethods: GridMethods = {
|
|
838
839
|
dispatchEvent,
|
|
840
|
+
getEl () {
|
|
841
|
+
return refElem.value
|
|
842
|
+
},
|
|
839
843
|
/**
|
|
840
844
|
* 提交指令,支持 code 或 button
|
|
841
845
|
* @param {String/Object} code 字符串或对象
|
|
@@ -1256,18 +1260,23 @@ export default defineComponent({
|
|
|
1256
1260
|
getExcludeHeight () {
|
|
1257
1261
|
const { isZMax } = reactData
|
|
1258
1262
|
const el = refElem.value
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1263
|
+
if (el) {
|
|
1264
|
+
const formWrapper = refFormWrapper.value
|
|
1265
|
+
const toolbarWrapper = refToolbarWrapper.value
|
|
1266
|
+
const topWrapper = refTopWrapper.value
|
|
1267
|
+
const bottomWrapper = refBottomWrapper.value
|
|
1268
|
+
const pagerWrapper = refPagerWrapper.value
|
|
1269
|
+
const parentEl = el.parentElement as HTMLElement
|
|
1270
|
+
const parentPaddingSize = isZMax ? 0 : (parentEl ? getPaddingTopBottomSize(parentEl) : 0)
|
|
1271
|
+
return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper)
|
|
1272
|
+
}
|
|
1273
|
+
return 0
|
|
1266
1274
|
},
|
|
1267
1275
|
getParentHeight () {
|
|
1268
1276
|
const el = refElem.value
|
|
1269
1277
|
if (el) {
|
|
1270
|
-
|
|
1278
|
+
const parentEl = el.parentElement as HTMLElement
|
|
1279
|
+
return (reactData.isZMax ? getDomNode().visibleHeight : (parentEl ? XEUtils.toNumber(getComputedStyle(parentEl).height) : 0)) - gridPrivateMethods.getExcludeHeight()
|
|
1271
1280
|
}
|
|
1272
1281
|
return 0
|
|
1273
1282
|
},
|
|
@@ -3,7 +3,7 @@ import { VxeUI } from '../../../ui'
|
|
|
3
3
|
import { getRefElem } from '../../src/util'
|
|
4
4
|
import { browse, hasClass, getAbsolutePos, addClass, removeClass } from '../../../ui/src/dom'
|
|
5
5
|
|
|
6
|
-
import type { TableKeyboardPrivateMethods } from '../../../../types'
|
|
6
|
+
import type { TableKeyboardPrivateMethods, VxeTableDefines } from '../../../../types'
|
|
7
7
|
|
|
8
8
|
const { hooks } = VxeUI
|
|
9
9
|
|
|
@@ -347,7 +347,6 @@ hooks.add('tableKeyboardModule', {
|
|
|
347
347
|
const treeOpts = computeTreeOpts.value
|
|
348
348
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
349
349
|
let targetRow
|
|
350
|
-
evnt.preventDefault()
|
|
351
350
|
if (currentRow) {
|
|
352
351
|
if (treeConfig) {
|
|
353
352
|
const { index, items } = XEUtils.findTree(afterFullData, item => item === currentRow, { children: childrenField })
|
|
@@ -368,6 +367,7 @@ hooks.add('tableKeyboardModule', {
|
|
|
368
367
|
targetRow = afterFullData[0]
|
|
369
368
|
}
|
|
370
369
|
if (targetRow) {
|
|
370
|
+
evnt.preventDefault()
|
|
371
371
|
const params = {
|
|
372
372
|
$table: $xeTable,
|
|
373
373
|
row: targetRow,
|
|
@@ -378,6 +378,33 @@ hooks.add('tableKeyboardModule', {
|
|
|
378
378
|
.then(() => $xeTable.triggerCurrentRowEvent(evnt, params))
|
|
379
379
|
}
|
|
380
380
|
},
|
|
381
|
+
// 处理当前列方向键移动
|
|
382
|
+
moveCurrentColumn (isLeftArrow, isRightArrow, evnt) {
|
|
383
|
+
const { currentColumn } = reactData
|
|
384
|
+
const { visibleColumn } = internalData
|
|
385
|
+
let targetCol: VxeTableDefines.ColumnInfo | null = null
|
|
386
|
+
if (currentColumn) {
|
|
387
|
+
const _columnIndex = $xeTable.getVTColumnIndex(currentColumn)
|
|
388
|
+
if (isLeftArrow && _columnIndex > 0) {
|
|
389
|
+
targetCol = visibleColumn[_columnIndex - 1]
|
|
390
|
+
} else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
|
|
391
|
+
targetCol = visibleColumn[_columnIndex + 1]
|
|
392
|
+
}
|
|
393
|
+
} else {
|
|
394
|
+
targetCol = visibleColumn[0]
|
|
395
|
+
}
|
|
396
|
+
if (targetCol) {
|
|
397
|
+
evnt.preventDefault()
|
|
398
|
+
const params = {
|
|
399
|
+
$table: $xeTable,
|
|
400
|
+
column: targetCol,
|
|
401
|
+
columnIndex: $xeTable.getColumnIndex(targetCol),
|
|
402
|
+
$columnIndex: $xeTable.getVMColumnIndex(targetCol)
|
|
403
|
+
}
|
|
404
|
+
$xeTable.scrollToColumn(targetCol)
|
|
405
|
+
.then(() => $xeTable.triggerCurrentColumnEvent(evnt, params))
|
|
406
|
+
}
|
|
407
|
+
},
|
|
381
408
|
// 处理可编辑方向键移动
|
|
382
409
|
moveSelected (args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
|
|
383
410
|
const { afterFullData, visibleColumn } = internalData
|
|
@@ -230,6 +230,7 @@ export default defineComponent({
|
|
|
230
230
|
tdOns.onDblclick = (evnt: MouseEvent) => {
|
|
231
231
|
$xeTable.triggerCellDblclickEvent(evnt, cellParams)
|
|
232
232
|
}
|
|
233
|
+
let isMergeCell = false
|
|
233
234
|
// 合并行或列
|
|
234
235
|
if (mergeList.length) {
|
|
235
236
|
const spanRest = mergeBodyMethod(mergeList, _rowIndex, _columnIndex)
|
|
@@ -239,9 +240,11 @@ export default defineComponent({
|
|
|
239
240
|
return null
|
|
240
241
|
}
|
|
241
242
|
if (rowspan > 1) {
|
|
243
|
+
isMergeCell = true
|
|
242
244
|
tdAttrs.rowspan = rowspan
|
|
243
245
|
}
|
|
244
246
|
if (colspan > 1) {
|
|
247
|
+
isMergeCell = true
|
|
245
248
|
tdAttrs.colspan = colspan
|
|
246
249
|
}
|
|
247
250
|
}
|
|
@@ -276,11 +279,13 @@ export default defineComponent({
|
|
|
276
279
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto')
|
|
277
280
|
|
|
278
281
|
let isVNPreEmptyStatus = false
|
|
279
|
-
if (!
|
|
280
|
-
if (
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
if (!isMergeCell) {
|
|
283
|
+
if (!dragRow || getRowid($xeTable, dragRow) !== rowid) {
|
|
284
|
+
if (scrollYLoad && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
|
|
285
|
+
isVNPreEmptyStatus = true
|
|
286
|
+
} else if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
287
|
+
isVNPreEmptyStatus = true
|
|
288
|
+
}
|
|
284
289
|
}
|
|
285
290
|
}
|
|
286
291
|
|
|
@@ -137,6 +137,7 @@ export default defineComponent({
|
|
|
137
137
|
tfOns.onDblclick = (evnt: MouseEvent) => {
|
|
138
138
|
$xeTable.dispatchEvent('footer-cell-dblclick', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt)
|
|
139
139
|
}
|
|
140
|
+
let isMergeCell = false
|
|
140
141
|
// 合并行或列
|
|
141
142
|
if (mergeFooterList.length) {
|
|
142
143
|
const spanRest = mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex)
|
|
@@ -146,9 +147,11 @@ export default defineComponent({
|
|
|
146
147
|
return null
|
|
147
148
|
}
|
|
148
149
|
if (rowspan > 1) {
|
|
150
|
+
isMergeCell = true
|
|
149
151
|
attrs.rowspan = rowspan
|
|
150
152
|
}
|
|
151
153
|
if (colspan > 1) {
|
|
154
|
+
isMergeCell = true
|
|
152
155
|
attrs.colspan = colspan
|
|
153
156
|
}
|
|
154
157
|
}
|
|
@@ -169,8 +172,10 @@ export default defineComponent({
|
|
|
169
172
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto')
|
|
170
173
|
|
|
171
174
|
let isVNPreEmptyStatus = false
|
|
172
|
-
if (
|
|
173
|
-
|
|
175
|
+
if (!isMergeCell) {
|
|
176
|
+
if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
177
|
+
isVNPreEmptyStatus = true
|
|
178
|
+
}
|
|
174
179
|
}
|
|
175
180
|
|
|
176
181
|
const tcStyle: Record<string, string> = {}
|