vxe-table 4.13.25 → 4.13.27

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.
Files changed (37) hide show
  1. package/es/grid/src/grid.js +1 -1
  2. package/es/style.css +1 -1
  3. package/es/table/module/filter/hook.js +5 -2
  4. package/es/table/src/emits.js +2 -0
  5. package/es/table/src/table.js +126 -17
  6. package/es/table/src/util.js +20 -18
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/grid/src/grid.js +1 -1
  10. package/lib/grid/src/grid.min.js +1 -1
  11. package/lib/index.umd.js +54 -43
  12. package/lib/index.umd.min.js +1 -1
  13. package/lib/style.css +1 -1
  14. package/lib/table/module/filter/hook.js +7 -2
  15. package/lib/table/module/filter/hook.min.js +1 -1
  16. package/lib/table/src/emits.js +1 -1
  17. package/lib/table/src/emits.min.js +1 -1
  18. package/lib/table/src/table.js +13 -16
  19. package/lib/table/src/table.min.js +1 -1
  20. package/lib/table/src/util.js +31 -21
  21. package/lib/table/src/util.min.js +1 -1
  22. package/lib/ui/index.js +1 -1
  23. package/lib/ui/index.min.js +1 -1
  24. package/lib/ui/src/log.js +1 -1
  25. package/lib/ui/src/log.min.js +1 -1
  26. package/package.json +1 -1
  27. package/packages/grid/src/grid.ts +1 -1
  28. package/packages/table/module/filter/hook.ts +5 -2
  29. package/packages/table/src/emits.ts +2 -0
  30. package/packages/table/src/table.ts +126 -17
  31. package/packages/table/src/util.ts +21 -18
  32. /package/es/{iconfont.1747024932366.ttf → iconfont.1747176259693.ttf} +0 -0
  33. /package/es/{iconfont.1747024932366.woff → iconfont.1747176259693.woff} +0 -0
  34. /package/es/{iconfont.1747024932366.woff2 → iconfont.1747176259693.woff2} +0 -0
  35. /package/lib/{iconfont.1747024932366.ttf → iconfont.1747176259693.ttf} +0 -0
  36. /package/lib/{iconfont.1747024932366.woff → iconfont.1747176259693.woff} +0 -0
  37. /package/lib/{iconfont.1747024932366.woff2 → iconfont.1747176259693.woff2} +0 -0
@@ -25,6 +25,7 @@ exports.getRowUniqueId = getRowUniqueId;
25
25
  exports.getRowid = getRowid;
26
26
  exports.getRowkey = getRowkey;
27
27
  exports.handleRowidOrRow = exports.handleFieldOrColumn = void 0;
28
+ exports.hasDeepKey = hasDeepKey;
28
29
  exports.isColumnInfo = isColumnInfo;
29
30
  exports.restoreScrollLocation = restoreScrollLocation;
30
31
  exports.rowToVisible = rowToVisible;
@@ -118,41 +119,50 @@ function restoreScrollLocation($xeTable, scrollLeft, scrollTop) {
118
119
  function getRowUniqueId() {
119
120
  return _xeUtils.default.uniqueId('row_');
120
121
  }
122
+ function hasDeepKey(rowKey) {
123
+ return rowKey.indexOf('.') > -1;
124
+ }
121
125
  // 行主键 key
122
126
  function getRowkey($xeTable) {
123
127
  const {
124
- props
125
- } = $xeTable;
126
- const {
127
- computeRowOpts
128
- } = $xeTable.getComputeMaps();
129
- const rowOpts = computeRowOpts.value;
130
- return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`;
128
+ currKeyField
129
+ } = $xeTable.internalData;
130
+ return currKeyField;
131
131
  }
132
132
  // 行主键 value
133
133
  function getRowid($xeTable, row) {
134
- const rowid = _xeUtils.default.get(row, getRowkey($xeTable));
135
- return encodeRowid(rowid);
134
+ const internalData = $xeTable.internalData;
135
+ const {
136
+ isCurrDeepKey,
137
+ currKeyField
138
+ } = internalData;
139
+ return row ? encodeRowid((isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey)(row, currKeyField)) : '';
136
140
  }
137
141
  function createHandleUpdateRowId($xeTable) {
138
- const rowKey = getRowkey($xeTable);
139
- const isDeepKey = rowKey.indexOf('.') > -1;
140
- const updateRId = isDeepKey ? updateDeepRowKey : updateFastRowKey;
142
+ const internalData = $xeTable.internalData;
143
+ const {
144
+ isCurrDeepKey,
145
+ currKeyField
146
+ } = internalData;
147
+ const updateRId = isCurrDeepKey ? updateDeepRowKey : updateFastRowKey;
141
148
  return {
142
- rowKey,
149
+ rowKey: currKeyField,
143
150
  handleUpdateRowId(row) {
144
- return row ? updateRId(row, rowKey) : null;
151
+ return row ? updateRId(row, currKeyField) : '';
145
152
  }
146
153
  };
147
154
  }
148
155
  function createHandleGetRowId($xeTable) {
149
- const rowKey = getRowkey($xeTable);
150
- const isDeepKey = rowKey.indexOf('.') > -1;
151
- const getRId = isDeepKey ? getDeepRowIdByKey : getFastRowIdByKey;
156
+ const internalData = $xeTable.internalData;
157
+ const {
158
+ isCurrDeepKey,
159
+ currKeyField
160
+ } = internalData;
161
+ const getRId = isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey;
152
162
  return {
153
- rowKey,
163
+ rowKey: currKeyField,
154
164
  handleGetRowId(row) {
155
- return row ? getRId(row, rowKey) : null;
165
+ return row ? encodeRowid(getRId(row, currKeyField)) : '';
156
166
  }
157
167
  };
158
168
  }
@@ -164,7 +174,7 @@ function getDeepRowIdByKey(row, rowKey) {
164
174
  return _xeUtils.default.get(row, rowKey);
165
175
  }
166
176
  function updateDeepRowKey(row, rowKey) {
167
- let rowid = getDeepRowIdByKey(row, rowKey);
177
+ let rowid = encodeRowid(getDeepRowIdByKey(row, rowKey));
168
178
  if ((0, _utils.eqEmptyValue)(rowid)) {
169
179
  rowid = getRowUniqueId();
170
180
  _xeUtils.default.set(row, rowKey, rowid);
@@ -175,7 +185,7 @@ function getFastRowIdByKey(row, rowKey) {
175
185
  return row[rowKey];
176
186
  }
177
187
  function updateFastRowKey(row, rowKey) {
178
- let rowid = getFastRowIdByKey(row, rowKey);
188
+ let rowid = encodeRowid(getFastRowIdByKey(row, rowKey));
179
189
  if ((0, _utils.eqEmptyValue)(rowid)) {
180
190
  rowid = getRowUniqueId();
181
191
  row[rowKey] = rowid;
@@ -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.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,o=(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&&(o(e,l),t+=e.colSpan)}),l.colSpan=t}else l.colSpan=1},l=(e.forEach(e=>{e.level=1,o(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 o=e.internalData;return t||l?(o.intoRunScroll=!1,o.inVirtualScroll=!1,o.inWheelScroll=!1,o.inHeaderScroll=!1,o.inBodyScroll=!1,o.inFooterScroll=!1,o.scrollRenderType="",e.scrollTo(t,l)):(0,_vue.nextTick)()}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 createHandleUpdateRowId(e){let t=getRowkey(e);let l=-1<t.indexOf(".")?updateDeepRowKey:updateFastRowKey;return{rowKey:t,handleUpdateRowId(e){return e?l(e,t):null}}}function createHandleGetRowId(e){let t=getRowkey(e);let l=-1<t.indexOf(".")?getDeepRowIdByKey:getFastRowIdByKey;return{rowKey:t,handleGetRowId(e){return e?l(e,t):null}}}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=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=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:o,checked:r})=>({label:e,value:t,data:l,resetValue:o,checked:!!r,_checked:!!r})):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:o}=e,r=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=r.showHeaderOverflow,{showHeaderOverflow:i,minWidth:r}=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(o).fontSize)||14))+(getPaddingLeftRightSize(o)+getPaddingLeftRightSize((0,_dom.queryElement)(o,".vxe-cell")));if(e&&(i=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--drag-handle")),l=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--checkbox")),e=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--required-icon")),n=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--edit-icon")),a=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell-title-prefix-icon")),u=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell-title-suffix-icon")),d=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--sort")),o=getElementMarginAndWidth((0,_dom.queryElement)(o,".vxe-cell--filter")),s+=i+l+e+n+a+u+o+d),r){i=getRefElem(t["main-body-scroll"]);if(i){if((0,_dom.isScale)(r))return l=(i.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(r)*l));if((0,_dom.isPx)(r))return Math.max(s,_xeUtils.default.toInteger(r))}}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,o){Object.keys(e).forEach(t=>{(0,_vue.watch)(()=>e[t],e=>{o.update(t,e),l&&("filters"===t?(l.setFilter(o,e),l.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&l.handleRefreshColumnQueue())})})}function assembleColumn(e,t,l,o){var e=e.reactData,r=e.staticColumns,i=t.parentNode,o=o?o.columnConfig:null,o=o?o.children:r;i&&o&&(o.splice(_xeUtils.default.arrayIndexOf(i.children,t),0,l),e.staticColumns=r.slice(0))}function destroyColumn(e,t){var e=e.reactData,l=e.staticColumns,o=_xeUtils.default.findTree(l,e=>e.id===t.id,{children:"children"});o&&o.items.splice(o.index,1),e.staticColumns=l.slice(0)}function getRootColumn(e,t){var e=e.internalData,l=e.fullColumnIdData;if(!t)return null;let o=t.parentId;for(;l[o];){let e=l[o].column;if(!(o=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 o=t.$table,r=o.getComputeMaps().computeTreeOpts,r=r.value,{transform:i,mapChildrenField:n}=r,r=r.children||r.childrenField,a=e[i?n:r];if(a&&o.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:o}=e,r=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,o)],o=n.resizeHeight||u.height||a.height||n.height||d;let s=1,c=(t&&(s=countTreeExpand(t,e)),o);return(c=i&&!r?n.height||o: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,o){var e=l.props,t=l.reactData,r=l.internalData,{computeLeftFixedWidth:i,computeRightFixedWidth:n,computeRowOpts:a,computeCellOpts:u,computeDefaultRowHeight:d}=l.getComputeMaps(),e=e.showOverflow,{scrollYLoad:t,scrollYTop:s}=t,{elemStore:r,afterFullData:c,fullAllDataRowIdData:f,isResizeCellHeight:m}=r,p=a.value,g=u.value,h=d.value,a=i.value,u=n.value,d=getRefElem(r["main-body-scroll"]),x=getRowid(l,o);if(d){i=d.clientHeight,n=d.scrollTop,r=d.querySelector(`[rowid="${x}"]`);if(r){d=r.offsetTop+(t?s:0),s=r.clientHeight;if(d<n||n+i<d)return l.scrollTo(null,d);if(i+n<=d+s)return l.scrollTo(null,n+s)}else if(t){if(!(m||g.height||p.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,o)-1)*h);let t=0;r=f[x]||{},d=r.resizeHeight||g.height||p.height||r.height||h;for(let e=0;e<c.length;e++){var R=c[e],w=getRowid(l,R);if(R===o||w===x)break;R=f[w]||{};t+=R.resizeHeight||g.height||p.height||R.height||h}return t<n?l.scrollTo(null,t-a-1):l.scrollTo(null,t+d-(i-u-1))}}return Promise.resolve()}function colToVisible(l,o,t){var r=l.reactData,i=l.internalData,{computeLeftFixedWidth:n,computeRightFixedWidth:a}=l.getComputeMaps(),{scrollXLoad:r,scrollXLeft:u}=r,{elemStore:i,visibleColumn:d}=i,n=n.value,a=a.value,i=getRefElem(i["main-body-scroll"]);if(!o.fixed&&i){var s=i.clientWidth,c=i.scrollLeft;let e=null;if(t&&(t=getRowid(l,t),e=i.querySelector(`[rowid="${t}"] .`+o.id)),e=e||i.querySelector("."+o.id)){t=e.offsetLeft+(r?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(r){let t=0;u=o.renderWidth;for(let e=0;e<d.length;e++){var f=d[e];if(f===o||f.id===o.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.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)):(0,_vue.nextTick)()}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"]),x=getRowid(l,r);if(d){i=d.clientHeight,n=d.scrollTop,o=d.querySelector(`[rowid="${x}"]`);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[x]||{},d=o.resizeHeight||h.height||p.height||o.height||g;for(let e=0;e<c.length;e++){var R=c[e],w=getRowid(l,R);if(R===r||w===x)break;R=f[w]||{};t+=R.resizeHeight||h.height||p.height||R.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.25";
16
+ const version = exports.version = "4.13.27";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -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.25",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},rowGroupConfig:{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:{enabled:!1,gt:24,preSize:1,oSize:0},virtualYConfig:{enabled:!1,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;
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.27",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},rowGroupConfig:{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:{enabled:!1,gt:24,preSize:1,oSize:0},virtualYConfig:{enabled:!1,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.25"}`;
11
+ const version = `table v${"4.13.27"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -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.25",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
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.27",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.13.25",
3
+ "version": "4.13.27",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -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', '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', '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', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect']
21
21
 
22
22
  const gridComponentEmits: VxeGridEmits = [
23
23
  ...tableComponentEmits,
@@ -52,6 +52,9 @@ hooks.add('tableFilterModule', {
52
52
  const { filterStore } = reactData
53
53
  $xeTable.handleClearFilter(filterStore.column)
54
54
  $xeTable.confirmFilterEvent(evnt)
55
+ if (evnt) {
56
+ $xeTable.dispatchEvent('clear-filter', { filterList: [] }, evnt)
57
+ }
55
58
  }
56
59
 
57
60
  const filterPrivateMethods: TableFilterPrivateMethods = {
@@ -290,10 +293,10 @@ hooks.add('tableFilterModule', {
290
293
  if (fieldOrColumn) {
291
294
  column = handleFieldOrColumn($xeTable, fieldOrColumn)
292
295
  if (column) {
293
- filterPrivateMethods.handleClearFilter(column)
296
+ $xeTable.handleClearFilter(column)
294
297
  }
295
298
  } else {
296
- tableFullColumn.forEach(filterPrivateMethods.handleClearFilter)
299
+ tableFullColumn.forEach($xeTable.handleClearFilter)
297
300
  }
298
301
  if (!fieldOrColumn || column !== filterStore.column) {
299
302
  Object.assign(filterStore, {
@@ -39,9 +39,11 @@ export default [
39
39
  'clear-merge',
40
40
  'sort-change',
41
41
  'clear-sort',
42
+ 'clear-all-sort',
42
43
  'filter-change',
43
44
  'filter-visible',
44
45
  'clear-filter',
46
+ 'clear-all-filter',
45
47
 
46
48
  'resizable-change', // 废弃
47
49
 
@@ -9,7 +9,7 @@ import TableHeaderComponent from './header'
9
9
  import TableFooterComponent from './footer'
10
10
  import tableProps from './props'
11
11
  import tableEmits from './emits'
12
- import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCellHeight } from './util'
12
+ import { getRowUniqueId, clearTableAllStatus, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCellHeight } from './util'
13
13
  import { getSlotVNs } from '../../ui/src/vn'
14
14
  import { warnLog, errLog } from '../../ui/src/log'
15
15
  import TableCustomPanelComponent from '../module/custom/panel'
@@ -294,6 +294,8 @@ export default defineComponent({
294
294
 
295
295
  const internalData: TableInternalData = {
296
296
  tZindex: 0,
297
+ currKeyField: '',
298
+ isCurrDeepKey: false,
297
299
  elemStore: {},
298
300
  // 存放横向 X 虚拟滚动相关的信息
299
301
  scrollXStore: {
@@ -471,6 +473,11 @@ export default defineComponent({
471
473
  return ''
472
474
  })
473
475
 
476
+ const computeRowField = computed(() => {
477
+ const rowOpts = computeRowOpts.value
478
+ return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`
479
+ })
480
+
474
481
  const computeValidOpts = computed(() => {
475
482
  return Object.assign({}, getConfig().table.validConfig, props.validConfig)
476
483
  })
@@ -887,6 +894,7 @@ export default defineComponent({
887
894
  computeSize,
888
895
  computeTableId,
889
896
  computeValidOpts,
897
+ computeRowField,
890
898
  computeVirtualXOpts,
891
899
  computeVirtualYOpts,
892
900
  computeScrollbarOpts,
@@ -971,6 +979,12 @@ export default defineComponent({
971
979
  return XEUtils.isEqual(val1, val2)
972
980
  }
973
981
 
982
+ const handleKeyField = () => {
983
+ const keyField = computeRowField.value
984
+ internalData.currKeyField = keyField
985
+ internalData.isCurrDeepKey = hasDeepKey(keyField)
986
+ }
987
+
974
988
  const getNextSortOrder = (column: VxeTableDefines.ColumnInfo) => {
975
989
  const sortOpts = computeSortOpts.value
976
990
  const { orders } = sortOpts
@@ -3791,11 +3805,10 @@ export default defineComponent({
3791
3805
  }
3792
3806
 
3793
3807
  const createGetRowCacheProp = (prop: 'seq' | 'index' | '_index' | '$index') => {
3794
- const { handleGetRowId } = createHandleGetRowId($xeTable)
3795
3808
  return function (row: any) {
3796
3809
  const { fullAllDataRowIdData } = internalData
3797
3810
  if (row) {
3798
- const rowid = handleGetRowId(row)
3811
+ const rowid = getRowid($xeTable, row)
3799
3812
  const rowRest = fullAllDataRowIdData[rowid]
3800
3813
  if (rowRest) {
3801
3814
  return rowRest[prop]
@@ -4548,7 +4561,6 @@ export default defineComponent({
4548
4561
  },
4549
4562
  /**
4550
4563
  * 检查是否为临时行数据
4551
- * @param {Row} row 行对象
4552
4564
  */
4553
4565
  isInsertByRow (row) {
4554
4566
  const rowid = getRowid($xeTable, row)
@@ -4560,16 +4572,13 @@ export default defineComponent({
4560
4572
  },
4561
4573
  /**
4562
4574
  * 删除所有新增的临时数据
4563
- * @returns
4564
4575
  */
4565
4576
  removeInsertRow () {
4566
- internalData.insertRowMaps = {}
4567
- return $xeTable.remove($xeTable.getInsertRecords())
4577
+ const { insertRowMaps } = internalData
4578
+ return $xeTable.remove(XEUtils.values(insertRowMaps))
4568
4579
  },
4569
4580
  /**
4570
4581
  * 检查行或列数据是否发生改变
4571
- * @param {Row} rowidOrRow 行对象、行主键
4572
- * @param {String} field 字段名
4573
4582
  */
4574
4583
  isUpdateByRow (rowidOrRow, field) {
4575
4584
  const { keepSource } = props
@@ -5781,6 +5790,40 @@ export default defineComponent({
5781
5790
  return updateStyle()
5782
5791
  })
5783
5792
  },
5793
+ clearSortByEvent (evnt, fieldOrColumn) {
5794
+ const { tableFullColumn } = internalData
5795
+ const sortOpts = computeSortOpts.value
5796
+ const sortCols: VxeTableDefines.ColumnInfo[] = []
5797
+ let column: VxeTableDefines.ColumnInfo<any> | null = null
5798
+ if (evnt) {
5799
+ if (fieldOrColumn) {
5800
+ column = handleFieldOrColumn($xeTable, fieldOrColumn)
5801
+ if (column) {
5802
+ column.order = null
5803
+ }
5804
+ } else {
5805
+ tableFullColumn.forEach((column) => {
5806
+ if (column.order) {
5807
+ column.order = null
5808
+ sortCols.push(column)
5809
+ }
5810
+ })
5811
+ }
5812
+ if (!sortOpts.remote) {
5813
+ $xeTable.handleTableData(true)
5814
+ }
5815
+ if (sortCols.length) {
5816
+ const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] }
5817
+ dispatchEvent('clear-all-sort', params, evnt)
5818
+ } else if (column) {
5819
+ $xeTable.handleColumnSortEvent(evnt, column)
5820
+ }
5821
+ }
5822
+ return nextTick().then(() => {
5823
+ updateRowOffsetTop()
5824
+ return updateStyle()
5825
+ })
5826
+ },
5784
5827
  isSort (fieldOrColumn) {
5785
5828
  if (fieldOrColumn) {
5786
5829
  const column = handleFieldOrColumn($xeTable, fieldOrColumn)
@@ -5840,6 +5883,47 @@ export default defineComponent({
5840
5883
  isFilter (fieldOrColumn) {
5841
5884
  return tableMethods.isActiveFilterByColumn(fieldOrColumn)
5842
5885
  },
5886
+ clearFilterByEvent (evnt, fieldOrColumn) {
5887
+ const { filterStore } = reactData
5888
+ const { tableFullColumn } = internalData
5889
+ const filterOpts = computeFilterOpts.value
5890
+ const filterCols: VxeTableDefines.ColumnInfo[] = []
5891
+ let column: VxeTableDefines.ColumnInfo<any> | null = null
5892
+ if (fieldOrColumn) {
5893
+ column = handleFieldOrColumn($xeTable, fieldOrColumn)
5894
+ if (column) {
5895
+ $xeTable.handleClearFilter(column)
5896
+ }
5897
+ } else {
5898
+ tableFullColumn.forEach(column => {
5899
+ if (column.filters) {
5900
+ filterCols.push(column)
5901
+ $xeTable.handleClearFilter(column)
5902
+ }
5903
+ })
5904
+ }
5905
+ if (!fieldOrColumn || column !== filterStore.column) {
5906
+ Object.assign(filterStore, {
5907
+ isAllSelected: false,
5908
+ isIndeterminate: false,
5909
+ style: null,
5910
+ options: [],
5911
+ column: null,
5912
+ multiple: false,
5913
+ visible: false
5914
+ })
5915
+ }
5916
+ if (!filterOpts.remote) {
5917
+ $xeTable.updateData()
5918
+ }
5919
+ if (filterCols.length) {
5920
+ const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] }
5921
+ dispatchEvent('clear-all-filter', params, evnt)
5922
+ } else if (column) {
5923
+ $xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt)
5924
+ }
5925
+ return nextTick()
5926
+ },
5843
5927
  /**
5844
5928
  * 判断展开行是否懒加载完成
5845
5929
  * @param {Row} row 行对象
@@ -8472,7 +8556,12 @@ export default defineComponent({
8472
8556
  }
8473
8557
  }
8474
8558
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
8475
- handleTooltip(evnt, tdEl, tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper'), tdEl.querySelector<HTMLElement>('.vxe-cell--label') || tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper'), params)
8559
+ const ctEl = tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper')
8560
+ let ovEl = null
8561
+ if (column.treeNode) {
8562
+ ovEl = tdEl.querySelector<HTMLElement>('.vxe-tree-cell')
8563
+ }
8564
+ handleTooltip(evnt, tdEl, ovEl || ctEl, tdEl.querySelector<HTMLElement>('.vxe-cell--label') || tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper'), params)
8476
8565
  }
8477
8566
  },
8478
8567
  /**
@@ -8896,12 +8985,15 @@ export default defineComponent({
8896
8985
  handleColumnSortEvent (evnt, column) {
8897
8986
  const { mouseConfig } = props
8898
8987
  const mouseOpts = computeMouseOpts.value
8899
- const { field, sortable } = column
8988
+ const { field, sortable, order } = column
8900
8989
  if (sortable) {
8901
- const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: tableMethods.getSortColumns(), sortTime: column.sortTime }
8990
+ const params = { $table: $xeTable, $event: evnt, column, field, property: field, order, sortList: tableMethods.getSortColumns(), sortTime: column.sortTime }
8902
8991
  if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
8903
8992
  $xeTable.handleSortEvent(evnt, params)
8904
8993
  }
8994
+ if (!order) {
8995
+ dispatchEvent('clear-sort', params, evnt)
8996
+ }
8905
8997
  dispatchEvent('sort-change', params, evnt)
8906
8998
  }
8907
8999
  },
@@ -8915,10 +9007,10 @@ export default defineComponent({
8915
9007
  if (sortable) {
8916
9008
  if (!order || column.order === order) {
8917
9009
  if (allowClear) {
8918
- tableMethods.clearSort(multiple ? column : null)
9010
+ $xeTable.clearSort(multiple ? column : null)
8919
9011
  }
8920
9012
  } else {
8921
- tableMethods.sort({ field, order })
9013
+ $xeTable.sort({ field, order })
8922
9014
  }
8923
9015
  $xeTable.handleColumnSortEvent(evnt, column)
8924
9016
  }
@@ -11224,12 +11316,26 @@ export default defineComponent({
11224
11316
  handleUpdateRowGroup(val)
11225
11317
  })
11226
11318
 
11319
+ watch(computeRowField, () => {
11320
+ const { inited, tableFullData } = internalData
11321
+ // 行主键被改变,重载表格
11322
+ if (inited) {
11323
+ handleKeyField()
11324
+ reactData.tableData = []
11325
+ nextTick(() => {
11326
+ $xeTable.reloadData(tableFullData)
11327
+ })
11328
+ }
11329
+ })
11330
+
11227
11331
  if ($xeTabs) {
11228
11332
  watch(() => $xeTabs ? $xeTabs.reactData.resizeFlag : null, () => {
11229
11333
  handleGlobalResizeEvent()
11230
11334
  })
11231
11335
  }
11232
11336
 
11337
+ handleKeyField()
11338
+
11233
11339
  hooks.forEach((options) => {
11234
11340
  const { setupTable } = options
11235
11341
  if (setupTable) {
@@ -11259,6 +11365,7 @@ export default defineComponent({
11259
11365
  const rowOpts = computeRowOpts.value
11260
11366
  const customOpts = computeCustomOpts.value
11261
11367
  const rowGroupOpts = computeRowGroupOpts.value
11368
+ const virtualYOpts = computeVirtualYOpts.value
11262
11369
  const { groupFields } = rowGroupOpts
11263
11370
 
11264
11371
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
@@ -11474,9 +11581,11 @@ export default defineComponent({
11474
11581
  }
11475
11582
  })
11476
11583
 
11477
- const tableViewportEl = refTableViewportElem.value
11478
- if (tableViewportEl) {
11479
- tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, { passive: false })
11584
+ if (virtualYOpts.mode !== 'scroll') {
11585
+ const tableViewportEl = refTableViewportElem.value
11586
+ if (tableViewportEl) {
11587
+ tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, { passive: false })
11588
+ }
11480
11589
  }
11481
11590
 
11482
11591
  globalEvents.on($xeTable, 'paste', handleGlobalPasteEvent)
@@ -93,40 +93,43 @@ export function getRowUniqueId () {
93
93
  return XEUtils.uniqueId('row_')
94
94
  }
95
95
 
96
+ export function hasDeepKey (rowKey: string) {
97
+ return rowKey.indexOf('.') > -1
98
+ }
99
+
96
100
  // 行主键 key
97
101
  export function getRowkey ($xeTable: VxeTableConstructor) {
98
- const { props } = $xeTable
99
- const { computeRowOpts } = $xeTable.getComputeMaps()
100
- const rowOpts = computeRowOpts.value
101
- return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`
102
+ const { currKeyField } = $xeTable.internalData
103
+ return currKeyField
102
104
  }
103
105
 
104
106
  // 行主键 value
105
107
  export function getRowid ($xeTable: VxeTableConstructor, row: any) {
106
- const rowid = XEUtils.get(row, getRowkey($xeTable))
107
- return encodeRowid(rowid)
108
+ const internalData = $xeTable.internalData
109
+ const { isCurrDeepKey, currKeyField } = internalData
110
+ return row ? encodeRowid((isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey)(row, currKeyField)) : ''
108
111
  }
109
112
 
110
113
  export function createHandleUpdateRowId ($xeTable: VxeTableConstructor) {
111
- const rowKey = getRowkey($xeTable)
112
- const isDeepKey = rowKey.indexOf('.') > -1
113
- const updateRId = isDeepKey ? updateDeepRowKey : updateFastRowKey
114
+ const internalData = $xeTable.internalData
115
+ const { isCurrDeepKey, currKeyField } = internalData
116
+ const updateRId = isCurrDeepKey ? updateDeepRowKey : updateFastRowKey
114
117
  return {
115
- rowKey,
118
+ rowKey: currKeyField,
116
119
  handleUpdateRowId (row: any) {
117
- return row ? updateRId(row, rowKey) : null
120
+ return row ? updateRId(row, currKeyField) : ''
118
121
  }
119
122
  }
120
123
  }
121
124
 
122
125
  export function createHandleGetRowId ($xeTable: VxeTableConstructor) {
123
- const rowKey = getRowkey($xeTable)
124
- const isDeepKey = rowKey.indexOf('.') > -1
125
- const getRId = isDeepKey ? getDeepRowIdByKey : getFastRowIdByKey
126
+ const internalData = $xeTable.internalData
127
+ const { isCurrDeepKey, currKeyField } = internalData
128
+ const getRId = isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey
126
129
  return {
127
- rowKey,
130
+ rowKey: currKeyField,
128
131
  handleGetRowId (row: any) {
129
- return row ? getRId(row, rowKey) : null
132
+ return row ? encodeRowid(getRId(row, currKeyField)) : ''
130
133
  }
131
134
  }
132
135
  }
@@ -141,7 +144,7 @@ function getDeepRowIdByKey (row: any, rowKey: string) {
141
144
  }
142
145
 
143
146
  export function updateDeepRowKey (row: any, rowKey: string) {
144
- let rowid = getDeepRowIdByKey(row, rowKey)
147
+ let rowid = encodeRowid(getDeepRowIdByKey(row, rowKey))
145
148
  if (eqEmptyValue(rowid)) {
146
149
  rowid = getRowUniqueId()
147
150
  XEUtils.set(row, rowKey, rowid)
@@ -154,7 +157,7 @@ function getFastRowIdByKey (row: any, rowKey: string) {
154
157
  }
155
158
 
156
159
  export function updateFastRowKey (row: any, rowKey: string) {
157
- let rowid = getFastRowIdByKey(row, rowKey)
160
+ let rowid = encodeRowid(getFastRowIdByKey(row, rowKey))
158
161
  if (eqEmptyValue(rowid)) {
159
162
  rowid = getRowUniqueId()
160
163
  row[rowKey] = rowid