vxe-table 4.12.0-beta.5 → 4.12.0-beta.7

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.
@@ -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;
@@ -29,11 +30,14 @@ exports.rowToVisible = rowToVisible;
29
30
  exports.setCellValue = setCellValue;
30
31
  exports.toFilters = toFilters;
31
32
  exports.toTreePathSeq = toTreePathSeq;
33
+ exports.updateDeepRowKey = updateDeepRowKey;
34
+ exports.updateFastRowKey = updateFastRowKey;
32
35
  exports.watchColumn = watchColumn;
33
36
  var _vue = require("vue");
34
37
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
35
38
  var _columnInfo = require("./columnInfo");
36
39
  var _dom = require("../../ui/src/dom");
40
+ var _utils = require("../../ui/src/utils");
37
41
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
38
42
  const getAllConvertColumns = (columns, parentColumn) => {
39
43
  const result = [];
@@ -125,16 +129,33 @@ function getRowkey($xeTable) {
125
129
  const {
126
130
  computeRowOpts
127
131
  } = $xeTable.getComputeMaps();
128
- const {
129
- rowId
130
- } = props;
131
132
  const rowOpts = computeRowOpts.value;
132
- return rowId || rowOpts.keyField || '_X_ROW_KEY';
133
+ return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`;
133
134
  }
134
135
  // 行主键 value
135
136
  function getRowid($xeTable, row) {
136
137
  const rowid = _xeUtils.default.get(row, getRowkey($xeTable));
137
- return _xeUtils.default.eqNull(rowid) ? '' : encodeURIComponent(rowid);
138
+ return encodeRowid(rowid);
139
+ }
140
+ // 编码行主键
141
+ function encodeRowid(rowVal) {
142
+ return _xeUtils.default.eqNull(rowVal) ? '' : encodeURIComponent(rowVal);
143
+ }
144
+ function updateDeepRowKey(row, rowkey) {
145
+ let rowid = _xeUtils.default.get(row, rowkey);
146
+ if ((0, _utils.eqEmptyValue)(rowid)) {
147
+ rowid = getRowUniqueId();
148
+ _xeUtils.default.set(row, rowkey, rowid);
149
+ }
150
+ return rowid;
151
+ }
152
+ function updateFastRowKey(row, rowkey) {
153
+ let rowid = row[rowkey];
154
+ if ((0, _utils.eqEmptyValue)(rowid)) {
155
+ rowid = getRowUniqueId();
156
+ row[rowkey] = rowid;
157
+ }
158
+ return rowid;
138
159
  }
139
160
  const handleFieldOrColumn = ($xeTable, fieldOrColumn) => {
140
161
  if (fieldOrColumn) {
@@ -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.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.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){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)}function updateDeepRowKey(e,t){let l=_xeUtils.default.get(e,t);return(0,_utils.eqEmptyValue)(l)&&(l=getRowUniqueId(),_xeUtils.default.set(e,t,l)),l}function updateFastRowKey(e,t){let l=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;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,p=u.value,h=s.value,a=i.value,u=n.value,s=getRefElem(o["main-body-scroll"]),g=getRowid(l,r);if(s){i=s.clientHeight,n=s.scrollTop,o=s.querySelector(`[rowid="${g}"]`);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||p.height||m.height)&&e)return l.scrollTo(null,(l.findRowIndexOf(c,r)-1)*h);let t=0;s=d[g]||{},o=s.resizeHeight||p.height||m.height||s.height||h;for(let e=0;e<c.length;e++){var x=c[e],C=getRowid(l,x);if(x===r||C===g)break;x=d[C]||{};t+=x.resizeHeight||p.height||m.height||x.height||h}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.12.0-beta.5";
16
+ const version = exports.version = "4.12.0-beta.7";
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.12.0-beta.5",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:1,oSize:2},virtualYConfig:{enabled:!0,gt:100,preSize:1,oSize:2},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;
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.12.0-beta.7",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:1,oSize:2},virtualYConfig:{enabled:!0,gt:100,preSize:1,oSize:2},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.12.0-beta.5"}`;
11
+ const version = `table v${"4.12.0-beta.7"}`;
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.12.0-beta.5",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.12.0-beta.7",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.12.0-beta.5",
3
+ "version": "4.12.0-beta.7",
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.2"
31
+ "vxe-pc-ui": "^4.4.5"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.11",
@@ -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 (!dragRow || getRowid($xeTable, dragRow) !== rowid) {
280
- if (scrollYLoad && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
281
- isVNPreEmptyStatus = true
282
- } else if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
283
- isVNPreEmptyStatus = true
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 (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
173
- isVNPreEmptyStatus = true
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> = {}
@@ -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, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth } from './util'
12
+ import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, updateDeepRowKey, updateFastRowKey } 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'
@@ -2780,7 +2780,7 @@ export default defineComponent({
2780
2780
  const { transform } = treeOpts
2781
2781
  const childrenField = treeOpts.children || treeOpts.childrenField
2782
2782
  let treeData = []
2783
- let fullData = reactive(datas ? datas.slice(0) : []) // 转为响应式
2783
+ let fullData = reactive(datas ? datas.slice(0) : []) // 转为响应式数据
2784
2784
  if (treeConfig) {
2785
2785
  if (transform) {
2786
2786
  // 树结构自动转换
@@ -3894,7 +3894,7 @@ export default defineComponent({
3894
3894
  const { transform } = treeOpts
3895
3895
  if (!keepSource) {
3896
3896
  if (process.env.VUE_APP_VXE_ENV === 'development') {
3897
- warnLog('vxe.error.reqProp', ['keep-source'])
3897
+ errLog('vxe.error.reqProp', ['keep-source'])
3898
3898
  }
3899
3899
  return nextTick()
3900
3900
  }
@@ -3908,22 +3908,22 @@ export default defineComponent({
3908
3908
  }
3909
3909
  let reDelFlag = false
3910
3910
  if (targetRows.length) {
3911
- targetRows.forEach((row: any) => {
3912
- if (!$xeTable.isInsertByRow(row)) {
3913
- const rowid = getRowid($xeTable, row)
3914
- const oRow = sourceDataRowIdData[rowid]
3915
- if (oRow && row) {
3916
- if (field) {
3917
- XEUtils.set(row, field, XEUtils.clone(XEUtils.get(oRow, field), true))
3918
- } else {
3919
- XEUtils.destructuring(row, XEUtils.clone(oRow, true))
3920
- }
3921
- if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3922
- const rowRest = fullAllDataRowIdData[rowid]
3923
- if (rowRest) {
3924
- const reRow = rowRest.row
3925
- tableFullData.unshift(reRow)
3926
- afterFullData.unshift(reRow)
3911
+ targetRows.forEach((item: any) => {
3912
+ const rowid = getRowid($xeTable, item)
3913
+ const rowRest = fullAllDataRowIdData[rowid]
3914
+ if (rowRest) {
3915
+ const row = rowRest.row
3916
+ if (!$xeTable.isInsertByRow(row)) {
3917
+ const oRow = sourceDataRowIdData[rowid]
3918
+ if (oRow && row) {
3919
+ if (field) {
3920
+ XEUtils.set(row, field, XEUtils.clone(XEUtils.get(oRow, field), true))
3921
+ } else {
3922
+ XEUtils.destructuring(row, XEUtils.clone(oRow, true))
3923
+ }
3924
+ if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3925
+ tableFullData.unshift(row)
3926
+ afterFullData.unshift(row)
3927
3927
  reDelFlag = true
3928
3928
  }
3929
3929
  }
@@ -6865,32 +6865,20 @@ export default defineComponent({
6865
6865
  const treeOpts = computeTreeOpts.value
6866
6866
  const childrenField = treeOpts.children || treeOpts.childrenField
6867
6867
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
6868
+ const { lazy } = treeOpts
6868
6869
  const rowkey = getRowkey($xeTable)
6870
+ const isDeepKey = rowkey.indexOf('.') > -1
6869
6871
  const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
6870
6872
  const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
6871
6873
  const treeTempExpandedMaps = { ...treeExpandedMaps }
6872
- const handleRow = (row: any, index: number, items: any, path?: any[], parentRow?: any, nodes?: any[]) => {
6873
- let rowid = getRowid($xeTable, row)
6874
- const seq = treeConfig && path ? toTreePathSeq(path) : index + 1
6875
- const level = nodes ? nodes.length - 1 : 0
6876
- if (eqEmptyValue(rowid)) {
6877
- rowid = getRowUniqueId()
6878
- XEUtils.set(row, rowkey, rowid)
6879
- }
6880
- if (treeConfig && treeOpts.lazy) {
6881
- const treeExpRest = treeExpandedMaps[rowid]
6882
- if (row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
6883
- row[childrenField] = null
6884
- }
6885
- if (treeExpRest) {
6886
- if (!row[childrenField] || !row[childrenField].length) {
6887
- delete treeTempExpandedMaps[rowid]
6888
- }
6889
- }
6890
- }
6891
- let rowRest = fullAllDataRowIdData[rowid]
6874
+
6875
+ const handleRowId = isDeepKey ? updateDeepRowKey : updateFastRowKey
6876
+ const handleRowCache = (row: any, index: number, items: any, currIndex: number, parentRow: any, rowid: string, level: number, seq: string | number) => {
6877
+ let rowRest = fullAllDataRowIdMaps[rowid]
6892
6878
  if (!rowRest) {
6893
6879
  rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
6880
+ fullDataRowIdMaps[rowid] = rowRest
6881
+ fullAllDataRowIdMaps[rowid] = rowRest
6894
6882
  }
6895
6883
  rowRest.treeLoaded = false
6896
6884
  rowRest.expandLoaded = false
@@ -6899,15 +6887,32 @@ export default defineComponent({
6899
6887
  rowRest.items = items
6900
6888
  rowRest.parent = parentRow
6901
6889
  rowRest.level = level
6902
- rowRest.index = treeConfig && parentRow ? -1 : index
6903
- fullDataRowIdMaps[rowid] = rowRest
6904
- fullAllDataRowIdMaps[rowid] = rowRest
6890
+ rowRest.index = currIndex
6891
+ rowRest.treeIndex = index
6905
6892
  }
6893
+
6906
6894
  if (treeConfig) {
6907
- XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField })
6895
+ XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
6896
+ const rowid = handleRowId(row, rowkey)
6897
+ if (treeConfig && lazy) {
6898
+ const treeExpRest = treeTempExpandedMaps[rowid]
6899
+ if (row[hasChildField] && row[childrenField] === undefined) {
6900
+ row[childrenField] = null
6901
+ }
6902
+ if (treeExpRest) {
6903
+ if (!row[childrenField] || !row[childrenField].length) {
6904
+ delete treeTempExpandedMaps[rowid]
6905
+ }
6906
+ }
6907
+ }
6908
+ handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, toTreePathSeq(path))
6909
+ }, { children: childrenField })
6908
6910
  } else {
6909
- tableFullData.forEach(handleRow)
6911
+ tableFullData.forEach((row, index, items) => {
6912
+ handleRowCache(row, index, items, index, null, handleRowId(row, rowkey), 0, index + 1)
6913
+ })
6910
6914
  }
6915
+
6911
6916
  internalData.fullDataRowIdData = fullDataRowIdMaps
6912
6917
  internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
6913
6918
  reactData.treeExpandedMaps = treeTempExpandedMaps
@@ -2,6 +2,7 @@ import { watch, reactive } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
3
  import { ColumnInfo } from './columnInfo'
4
4
  import { isPx, isScale } from '../../ui/src/dom'
5
+ import { eqEmptyValue } from '../../ui/src/utils'
5
6
 
6
7
  import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTableDefines } from '../../../types'
7
8
 
@@ -101,15 +102,37 @@ export function getRowUniqueId () {
101
102
  export function getRowkey ($xeTable: VxeTableConstructor) {
102
103
  const { props } = $xeTable
103
104
  const { computeRowOpts } = $xeTable.getComputeMaps()
104
- const { rowId } = props
105
105
  const rowOpts = computeRowOpts.value
106
- return rowId || rowOpts.keyField || '_X_ROW_KEY'
106
+ return `${props.rowId || rowOpts.keyField || '_X_ROW_KEY'}`
107
107
  }
108
108
 
109
109
  // 行主键 value
110
110
  export function getRowid ($xeTable: VxeTableConstructor, row: any) {
111
111
  const rowid = XEUtils.get(row, getRowkey($xeTable))
112
- return XEUtils.eqNull(rowid) ? '' : encodeURIComponent(rowid)
112
+ return encodeRowid(rowid)
113
+ }
114
+
115
+ // 编码行主键
116
+ export function encodeRowid (rowVal: string) {
117
+ return XEUtils.eqNull(rowVal) ? '' : encodeURIComponent(rowVal)
118
+ }
119
+
120
+ export function updateDeepRowKey (row: any, rowkey: string) {
121
+ let rowid = XEUtils.get(row, rowkey)
122
+ if (eqEmptyValue(rowid)) {
123
+ rowid = getRowUniqueId()
124
+ XEUtils.set(row, rowkey, rowid)
125
+ }
126
+ return rowid
127
+ }
128
+
129
+ export function updateFastRowKey (row: any, rowkey: string) {
130
+ let rowid = row[rowkey]
131
+ if (eqEmptyValue(rowid)) {
132
+ rowid = getRowUniqueId()
133
+ row[rowkey] = rowid
134
+ }
135
+ return rowid
113
136
  }
114
137
 
115
138
  export interface XEColumnInstance {