vxe-table 3.5.0-beta.3 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/export/src/mixin.js +1 -1
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/index.umd.js +136 -121
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/locale/lang/zh-HK.min.js +1 -1
- package/lib/locale/lang/zh-HK.umd.js +2 -1
- package/lib/locale/lang/zh-MO.min.js +1 -1
- package/lib/locale/lang/zh-MO.umd.js +2 -1
- package/lib/locale/lang/zh-TC.js +2 -1
- package/lib/locale/lang/zh-TC.min.js +1 -1
- package/lib/locale/lang/zh-TC.umd.js +2 -1
- package/lib/locale/lang/zh-TW.min.js +1 -1
- package/lib/locale/lang/zh-TW.umd.js +2 -1
- package/lib/table/src/methods.js +28 -12
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/util.js +75 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/tools/dom.js +0 -75
- package/lib/tools/dom.min.js +1 -1
- package/lib/tools/log.js +1 -1
- package/lib/tools/log.min.js +1 -1
- package/lib/v-x-e-table/index.js +1 -1
- package/lib/v-x-e-table/index.min.js +1 -1
- package/package.json +1 -1
- package/packages/export/src/mixin.js +1 -1
- package/packages/locale/lang/en-US.js +2 -1
- package/packages/locale/lang/ja-JP.js +2 -1
- package/packages/locale/lang/zh-CN.js +2 -1
- package/packages/locale/lang/zh-TC.js +2 -1
- package/packages/table/src/methods.js +21 -14
- package/packages/table/src/util.js +64 -0
- package/packages/tools/dom.js +0 -65
package/lib/table/src/util.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.calcTreeLine = calcTreeLine;
|
|
7
7
|
exports.clearTableAllStatus = clearTableAllStatus;
|
|
8
8
|
exports.clearTableDefaultStatus = clearTableDefaultStatus;
|
|
9
|
+
exports.colToVisible = colToVisible;
|
|
9
10
|
exports.getColMinWidth = getColMinWidth;
|
|
10
11
|
exports.getColumnConfig = getColumnConfig;
|
|
11
12
|
exports.getOffsetSize = getOffsetSize;
|
|
@@ -17,6 +18,7 @@ exports.mergeBodyMethod = mergeBodyMethod;
|
|
|
17
18
|
exports.removeScrollListener = removeScrollListener;
|
|
18
19
|
exports.restoreScrollListener = restoreScrollListener;
|
|
19
20
|
exports.restoreScrollLocation = restoreScrollLocation;
|
|
21
|
+
exports.rowToVisible = rowToVisible;
|
|
20
22
|
exports.toFilters = toFilters;
|
|
21
23
|
exports.toTreePathSeq = toTreePathSeq;
|
|
22
24
|
|
|
@@ -312,4 +314,77 @@ function isColumnInfo(column) {
|
|
|
312
314
|
|
|
313
315
|
function getColumnConfig($xetable, _vm, options) {
|
|
314
316
|
return isColumnInfo(_vm) ? _vm : new _columnInfo.ColumnInfo($xetable, _vm, options);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
function rowToVisible($xetable, row) {
|
|
320
|
+
var tableBody = $xetable.$refs.tableBody;
|
|
321
|
+
var bodyElem = tableBody ? tableBody.$el : null;
|
|
322
|
+
|
|
323
|
+
if (bodyElem) {
|
|
324
|
+
var trElem = bodyElem.querySelector("[rowid=\"".concat(getRowid($xetable, row), "\"]"));
|
|
325
|
+
|
|
326
|
+
if (trElem) {
|
|
327
|
+
var bodyHeight = bodyElem.clientHeight;
|
|
328
|
+
var bodySrcollTop = bodyElem.scrollTop;
|
|
329
|
+
var trOffsetTop = trElem.offsetTop + (trElem.offsetParent ? trElem.offsetParent.offsetTop : 0);
|
|
330
|
+
var trHeight = trElem.clientHeight; // 检测行是否在可视区中
|
|
331
|
+
|
|
332
|
+
if (trOffsetTop < bodySrcollTop || trOffsetTop > bodySrcollTop + bodyHeight) {
|
|
333
|
+
// 向上定位
|
|
334
|
+
return $xetable.scrollTo(null, trOffsetTop);
|
|
335
|
+
} else if (trOffsetTop + trHeight >= bodyHeight + bodySrcollTop) {
|
|
336
|
+
// 向下定位
|
|
337
|
+
return $xetable.scrollTo(null, bodySrcollTop + trHeight);
|
|
338
|
+
}
|
|
339
|
+
} else {
|
|
340
|
+
// 如果是虚拟渲染跨行滚动
|
|
341
|
+
if ($xetable.scrollYLoad) {
|
|
342
|
+
return $xetable.scrollTo(null, ($xetable.afterFullData.indexOf(row) - 1) * $xetable.scrollYStore.rowHeight);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
return Promise.resolve();
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
function colToVisible($xetable, column) {
|
|
351
|
+
var tableBody = $xetable.$refs.tableBody;
|
|
352
|
+
var bodyElem = tableBody ? tableBody.$el : null;
|
|
353
|
+
|
|
354
|
+
if (bodyElem) {
|
|
355
|
+
var tdElem = bodyElem.querySelector(".".concat(column.id));
|
|
356
|
+
|
|
357
|
+
if (tdElem) {
|
|
358
|
+
var bodyWidth = bodyElem.clientWidth;
|
|
359
|
+
var bodySrcollLeft = bodyElem.scrollLeft;
|
|
360
|
+
var tdOffsetLeft = tdElem.offsetLeft + (tdElem.offsetParent ? tdElem.offsetParent.offsetLeft : 0);
|
|
361
|
+
var tdWidth = tdElem.clientWidth; // 检测行是否在可视区中
|
|
362
|
+
|
|
363
|
+
if (tdOffsetLeft < bodySrcollLeft || tdOffsetLeft > bodySrcollLeft + bodyWidth) {
|
|
364
|
+
// 向左定位
|
|
365
|
+
return $xetable.scrollTo(tdOffsetLeft);
|
|
366
|
+
} else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft) {
|
|
367
|
+
// 向右定位
|
|
368
|
+
return $xetable.scrollTo(bodySrcollLeft + tdWidth);
|
|
369
|
+
}
|
|
370
|
+
} else {
|
|
371
|
+
// 如果是虚拟渲染跨行滚动
|
|
372
|
+
if ($xetable.scrollXLoad) {
|
|
373
|
+
var visibleColumn = $xetable.visibleColumn;
|
|
374
|
+
var scrollLeft = 0;
|
|
375
|
+
|
|
376
|
+
for (var index = 0; index < visibleColumn.length; index++) {
|
|
377
|
+
if (visibleColumn[index] === column) {
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
scrollLeft += visibleColumn[index].renderWidth;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
return $xetable.scrollTo(scrollLeft);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
return Promise.resolve();
|
|
315
390
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.getColMinWidth=getColMinWidth,exports.getColumnConfig=getColumnConfig,exports.getOffsetSize=getOffsetSize,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.removeScrollListener=removeScrollListener,exports.restoreScrollListener=restoreScrollListener,exports.restoreScrollLocation=restoreScrollLocation,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _vXETable=_interopRequireDefault(require("../../v-x-e-table")),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=_interopRequireDefault(require("../../tools/dom"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var lineOffsetSizes={mini:3,small:2,medium:1};function restoreScrollLocation(e,t,l){return e.clearScroll().then(function(){if(t||l)return e.lastScrollLeft=0,e.lastScrollTop=0,e.scrollTo(t,l)})}function toTreePathSeq(e){return e.map(function(e,t){return t%2==0?Number(e)+1:"."}).join("")}function removeScrollListener(e){e&&e._onscroll&&(e.onscroll=null)}function restoreScrollListener(e){e&&e._onscroll&&(e.onscroll=e._onscroll)}function getRowkey(e){return e.rowOpts.keyField||e.rowId||"_X_ROW_KEY"}function getRowid(e,t){e=_xeUtils.default.get(t,getRowkey(e));return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getPaddingLeftRightSize(e){if(e){e=getComputedStyle(e);return _xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)}return 0}function getElemenMarginWidth(e){if(e){var t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight);return e.offsetWidth+l+t}return 0}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)?e.getColumnByField(t):t:null}function queryCellElement(e,t){return e.querySelector(".vxe-cell"+t)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(function(e){var t=e.label,l=e.value,r=e.data,o=e.resetValue,e=e.checked;return{label:t,value:l,data:r,resetValue:o,checked:!!e,_checked:!!e}}):e}function getColMinWidth(e){var t=e.$table,l=e.column,r=e.cell,o=t.showHeaderOverflow,n=t.resizableOpts.minWidth;if(n){var i=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==i)return Math.max(1,_xeUtils.default.toNumber(i))}var a=l.showHeaderOverflow,u=l.minWidth,e=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?o:a,n="title"===e||(!0===e||"tooltip"===e)||"ellipsis"===e,i=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(n&&(l=getPaddingLeftRightSize(queryCellElement(r,"--title>.vxe-cell--checkbox")),o=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),a=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),e=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-help-icon")),n=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--sort")),i+=l+o+a+e+getElemenMarginWidth(queryCellElement(r,">.vxe-cell--filter"))+n),u){t=t.$refs.tableBody,t=t?t.$el:null;if(t){if(_dom.default.isScale(u)){t=(t.clientWidth-1)/100;return Math.max(i,Math.floor(_xeUtils.default.toInteger(u)*t))}if(_dom.default.isPx(u))return Math.max(i,_xeUtils.default.toInteger(u))}}return i}function countTreeExpand(e,t){var l=1;if(!e)return l;var r=t.$table,o=e[r.treeOpts.children];if(r.isTreeExpandByRow(e))for(var n=0;n<o.length;n++)l+=countTreeExpand(o[n],t);return l}function getOffsetSize(e){return lineOffsetSizes[e.vSize]||0}function calcTreeLine(e,t,l){var r=e.$table,o=1;return l&&(o=countTreeExpand(t[l-1],e)),r.rowHeight*o-(l?1:12-getOffsetSize(r))}function mergeBodyMethod(e,t,l){for(var r=0;r<e.length;r++){var o=e[r],n=o.row,i=o.col,a=o.rowspan,o=o.colspan;if(-1<i&&-1<n&&a&&o){if(n===t&&i===l)return{rowspan:a,colspan:o};if(n<=t&&t<n+a&&i<=l&&l<i+o)return{rowspan:0,colspan:0}}}}function clearTableDefaultStatus(e){return e.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearActived&&_vXETable.default._edit&&e.clearActived(),e.clearSelected&&(e.keyboardConfig||e.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&e.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&_vXETable.default._filter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function getColumnConfig(e,t,l){return isColumnInfo(t)?t:new _columnInfo.ColumnInfo(e,t,l)}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.getColMinWidth=getColMinWidth,exports.getColumnConfig=getColumnConfig,exports.getOffsetSize=getOffsetSize,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.removeScrollListener=removeScrollListener,exports.restoreScrollListener=restoreScrollListener,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _vXETable=_interopRequireDefault(require("../../v-x-e-table")),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=_interopRequireDefault(require("../../tools/dom"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var lineOffsetSizes={mini:3,small:2,medium:1};function restoreScrollLocation(e,t,l){return e.clearScroll().then(function(){if(t||l)return e.lastScrollLeft=0,e.lastScrollTop=0,e.scrollTo(t,l)})}function toTreePathSeq(e){return e.map(function(e,t){return t%2==0?Number(e)+1:"."}).join("")}function removeScrollListener(e){e&&e._onscroll&&(e.onscroll=null)}function restoreScrollListener(e){e&&e._onscroll&&(e.onscroll=e._onscroll)}function getRowkey(e){return e.rowOpts.keyField||e.rowId||"_X_ROW_KEY"}function getRowid(e,t){e=_xeUtils.default.get(t,getRowkey(e));return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)}function getPaddingLeftRightSize(e){if(e){e=getComputedStyle(e);return _xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)}return 0}function getElemenMarginWidth(e){if(e){var t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight);return e.offsetWidth+l+t}return 0}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)?e.getColumnByField(t):t:null}function queryCellElement(e,t){return e.querySelector(".vxe-cell"+t)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(function(e){var t=e.label,l=e.value,r=e.data,o=e.resetValue,e=e.checked;return{label:t,value:l,data:r,resetValue:o,checked:!!e,_checked:!!e}}):e}function getColMinWidth(e){var t=e.$table,l=e.column,r=e.cell,o=t.showHeaderOverflow,n=t.resizableOpts.minWidth;if(n){var i=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==i)return Math.max(1,_xeUtils.default.toNumber(i))}var a=l.showHeaderOverflow,u=l.minWidth,e=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?o:a,n="title"===e||(!0===e||"tooltip"===e)||"ellipsis"===e,i=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(n&&(l=getPaddingLeftRightSize(queryCellElement(r,"--title>.vxe-cell--checkbox")),o=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),a=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),e=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-help-icon")),n=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--sort")),i+=l+o+a+e+getElemenMarginWidth(queryCellElement(r,">.vxe-cell--filter"))+n),u){t=t.$refs.tableBody,t=t?t.$el:null;if(t){if(_dom.default.isScale(u)){t=(t.clientWidth-1)/100;return Math.max(i,Math.floor(_xeUtils.default.toInteger(u)*t))}if(_dom.default.isPx(u))return Math.max(i,_xeUtils.default.toInteger(u))}}return i}function countTreeExpand(e,t){var l=1;if(!e)return l;var r=t.$table,o=e[r.treeOpts.children];if(r.isTreeExpandByRow(e))for(var n=0;n<o.length;n++)l+=countTreeExpand(o[n],t);return l}function getOffsetSize(e){return lineOffsetSizes[e.vSize]||0}function calcTreeLine(e,t,l){var r=e.$table,o=1;return l&&(o=countTreeExpand(t[l-1],e)),r.rowHeight*o-(l?1:12-getOffsetSize(r))}function mergeBodyMethod(e,t,l){for(var r=0;r<e.length;r++){var o=e[r],n=o.row,i=o.col,a=o.rowspan,o=o.colspan;if(-1<i&&-1<n&&a&&o){if(n===t&&i===l)return{rowspan:a,colspan:o};if(n<=t&&t<n+a&&i<=l&&l<i+o)return{rowspan:0,colspan:0}}}}function clearTableDefaultStatus(e){return e.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearActived&&_vXETable.default._edit&&e.clearActived(),e.clearSelected&&(e.keyboardConfig||e.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&e.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&_vXETable.default._filter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function getColumnConfig(e,t,l){return isColumnInfo(t)?t:new _columnInfo.ColumnInfo(e,t,l)}function rowToVisible(e,t){var l=e.$refs.tableBody,r=l?l.$el:null;if(r){var o=r.querySelector('[rowid="'.concat(getRowid(e,t),'"]'));if(o){var n=r.clientHeight,l=r.scrollTop,r=o.offsetTop+(o.offsetParent?o.offsetParent.offsetTop:0),o=o.clientHeight;if(r<l||l+n<r)return e.scrollTo(null,r);if(n+l<=r+o)return e.scrollTo(null,l+o)}else if(e.scrollYLoad)return e.scrollTo(null,(e.afterFullData.indexOf(t)-1)*e.scrollYStore.rowHeight)}return Promise.resolve()}function colToVisible(e,t){var l=e.$refs.tableBody,r=l?l.$el:null;if(r){var o=r.querySelector(".".concat(t.id));if(o){var n=r.clientWidth,l=r.scrollLeft,r=o.offsetLeft+(o.offsetParent?o.offsetParent.offsetLeft:0),o=o.clientWidth;if(r<l||l+n<r)return e.scrollTo(r);if(n+l<=r+o)return e.scrollTo(l+o)}else if(e.scrollXLoad){for(var i=e.visibleColumn,a=0,u=0;u<i.length&&i[u]!==t;u++)a+=i[u].renderWidth;return e.scrollTo(a)}}return Promise.resolve()}
|
package/lib/tools/dom.js
CHANGED
|
@@ -11,12 +11,8 @@ exports.setScrollTop = setScrollTop;
|
|
|
11
11
|
|
|
12
12
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
13
13
|
|
|
14
|
-
var _utils = _interopRequireDefault(require("./utils"));
|
|
15
|
-
|
|
16
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
15
|
|
|
18
|
-
var getRowid = _utils.default.getRowid;
|
|
19
|
-
|
|
20
16
|
var browse = _xeUtils.default.browse();
|
|
21
17
|
|
|
22
18
|
exports.browse = browse;
|
|
@@ -135,77 +131,6 @@ var DomTools = {
|
|
|
135
131
|
overflowElem.setAttribute('title', content);
|
|
136
132
|
}
|
|
137
133
|
},
|
|
138
|
-
rowToVisible: function rowToVisible($xetable, row) {
|
|
139
|
-
var tableBody = $xetable.$refs.tableBody;
|
|
140
|
-
var bodyElem = tableBody ? tableBody.$el : null;
|
|
141
|
-
|
|
142
|
-
if (bodyElem) {
|
|
143
|
-
var trElem = bodyElem.querySelector("[rowid=\"".concat(getRowid($xetable, row), "\"]"));
|
|
144
|
-
|
|
145
|
-
if (trElem) {
|
|
146
|
-
var bodyHeight = bodyElem.clientHeight;
|
|
147
|
-
var bodySrcollTop = bodyElem.scrollTop;
|
|
148
|
-
var trOffsetTop = trElem.offsetTop + (trElem.offsetParent ? trElem.offsetParent.offsetTop : 0);
|
|
149
|
-
var trHeight = trElem.clientHeight; // 检测行是否在可视区中
|
|
150
|
-
|
|
151
|
-
if (trOffsetTop < bodySrcollTop || trOffsetTop > bodySrcollTop + bodyHeight) {
|
|
152
|
-
// 向上定位
|
|
153
|
-
return $xetable.scrollTo(null, trOffsetTop);
|
|
154
|
-
} else if (trOffsetTop + trHeight >= bodyHeight + bodySrcollTop) {
|
|
155
|
-
// 向下定位
|
|
156
|
-
return $xetable.scrollTo(null, bodySrcollTop + trHeight);
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
// 如果是虚拟渲染跨行滚动
|
|
160
|
-
if ($xetable.scrollYLoad) {
|
|
161
|
-
return $xetable.scrollTo(null, ($xetable.afterFullData.indexOf(row) - 1) * $xetable.scrollYStore.rowHeight);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return Promise.resolve();
|
|
167
|
-
},
|
|
168
|
-
colToVisible: function colToVisible($xetable, column) {
|
|
169
|
-
var tableBody = $xetable.$refs.tableBody;
|
|
170
|
-
var bodyElem = tableBody ? tableBody.$el : null;
|
|
171
|
-
|
|
172
|
-
if (bodyElem) {
|
|
173
|
-
var tdElem = bodyElem.querySelector(".".concat(column.id));
|
|
174
|
-
|
|
175
|
-
if (tdElem) {
|
|
176
|
-
var bodyWidth = bodyElem.clientWidth;
|
|
177
|
-
var bodySrcollLeft = bodyElem.scrollLeft;
|
|
178
|
-
var tdOffsetLeft = tdElem.offsetLeft + (tdElem.offsetParent ? tdElem.offsetParent.offsetLeft : 0);
|
|
179
|
-
var tdWidth = tdElem.clientWidth; // 检测行是否在可视区中
|
|
180
|
-
|
|
181
|
-
if (tdOffsetLeft < bodySrcollLeft || tdOffsetLeft > bodySrcollLeft + bodyWidth) {
|
|
182
|
-
// 向左定位
|
|
183
|
-
return $xetable.scrollTo(tdOffsetLeft);
|
|
184
|
-
} else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft) {
|
|
185
|
-
// 向右定位
|
|
186
|
-
return $xetable.scrollTo(bodySrcollLeft + tdWidth);
|
|
187
|
-
}
|
|
188
|
-
} else {
|
|
189
|
-
// 如果是虚拟渲染跨行滚动
|
|
190
|
-
if ($xetable.scrollXLoad) {
|
|
191
|
-
var visibleColumn = $xetable.visibleColumn;
|
|
192
|
-
var scrollLeft = 0;
|
|
193
|
-
|
|
194
|
-
for (var index = 0; index < visibleColumn.length; index++) {
|
|
195
|
-
if (visibleColumn[index] === column) {
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
scrollLeft += visibleColumn[index].renderWidth;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
return $xetable.scrollTo(scrollLeft);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
return Promise.resolve();
|
|
208
|
-
},
|
|
209
134
|
getDomNode: getDomNode,
|
|
210
135
|
|
|
211
136
|
/**
|
package/lib/tools/dom.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.browse=exports.DomTools=void 0,exports.getOffsetHeight=getOffsetHeight,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.setScrollLeft=setScrollLeft,exports.setScrollTop=setScrollTop;var _xeUtils=_interopRequireDefault(require("xe-utils"))
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.browse=exports.DomTools=void 0,exports.getOffsetHeight=getOffsetHeight,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.setScrollLeft=setScrollLeft,exports.setScrollTop=setScrollTop;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var browse=_xeUtils.default.browse();exports.browse=browse;var reClsMap={};function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp("(?:^|\\s)".concat(e,"(?!\\S)"),"g")),reClsMap[e]}function getNodeOffset(e,t,o){if(e){var s=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,s&&s!==document.documentElement&&s!==document.body&&(o.top-=s.scrollTop,o.left-=s.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}function isScale(e){return e&&/^\d+%$/.test(e)}function hasClass(e,t){return e&&e.className&&e.className.match&&e.className.match(getClsRE(t))}function removeClass(e,t){e&&hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))}function getDomNode(){var e=document.documentElement,t=document.body;return{scrollTop:e.scrollTop||t.scrollTop,scrollLeft:e.scrollLeft||t.scrollLeft,visibleHeight:e.clientHeight||t.clientHeight,visibleWidth:e.clientWidth||t.clientWidth}}function getOffsetHeight(e){return e?e.offsetHeight:0}function getPaddingTopBottomSize(e){if(e){e=getComputedStyle(e);return _xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)}return 0}function setScrollTop(e,t){e&&(e.scrollTop=t)}function setScrollLeft(e,t){e&&(e.scrollLeft=t)}function isNodeElement(e){return e&&1===e.nodeType}var DomTools={browse:browse,isPx:function(e){return e&&/^\d+(px)?$/.test(e)},isScale:isScale,hasClass:hasClass,removeClass:removeClass,addClass:function(e,t){e&&!hasClass(e,t)&&(removeClass(e,t),e.className="".concat(e.className," ").concat(t))},updateCellTitle:function(e,t){t="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==t&&e.setAttribute("title",t)},getDomNode:getDomNode,getEventTargetNode:function(e,t,o,s){for(var l,r=e.target;r&&r.nodeType&&r!==document;){if(o&&hasClass(r,o)&&(!s||s(r)))l=r;else if(r===t)return{flag:!o||!!l,container:t,targetElem:l};r=r.parentNode}return{flag:!1}},getOffsetPos:function(e,t){return getNodeOffset(e,t,{left:0,top:0})},getAbsolutePos:function(e){var t=e.getBoundingClientRect(),o=t.top,e=t.left,t=getDomNode();return{boundingTop:o,top:t.scrollTop+o,boundingLeft:e,left:t.scrollLeft+e,visibleHeight:t.visibleHeight,visibleWidth:t.visibleWidth}},scrollToView:function(e){var t="scrollIntoViewIfNeeded",o="scrollIntoView";e&&(e[t]?e[t]():e[o]&&e[o]())},triggerEvent:function(e,t){e&&e.dispatchEvent(new Event(t))},calcHeight:function(e,t){var o=e[t],s=0;return s=o?"auto"===o?e.parentHeight:(t=e.getExcludeHeight(),s=isScale(o)?Math.floor((_xeUtils.default.toInteger(o)||1)/100*e.parentHeight):_xeUtils.default.toNumber(o),Math.max(40,s-t)):s},isNodeElement:isNodeElement},_default=exports.DomTools=DomTools;exports.default=_default;
|
package/lib/tools/log.js
CHANGED
|
@@ -12,7 +12,7 @@ var _conf = _interopRequireDefault(require("../v-x-e-table/src/conf"));
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
|
|
14
14
|
function getLog(message, params) {
|
|
15
|
-
return "[vxe-table v".concat("3.5.
|
|
15
|
+
return "[vxe-table v".concat("3.5.1", "] ", _conf.default.i18n(message, params));
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
function outLog(type) {
|
package/lib/tools/log.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.errLog=void 0,exports.getLog=getLog,exports.warnLog=void 0;var _conf=_interopRequireDefault(require("../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getLog(e,r){return"[vxe-table v".concat("3.5.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.errLog=void 0,exports.getLog=getLog,exports.warnLog=void 0;var _conf=_interopRequireDefault(require("../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getLog(e,r){return"[vxe-table v".concat("3.5.1","] ",_conf.default.i18n(e,r))}function outLog(o){return function(e,r){r=getLog(e,r);return console[o](r),r}}var warnLog=outLog("warn");exports.warnLog=warnLog;var errLog=outLog("error");exports.errLog=errLog;
|
package/lib/v-x-e-table/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={use:!0,config:!0,t:!0,_t:!0,v:!0,VXETable:!0};exports.VXETable=void 0,exports._t=_t,exports.default=exports.config=void 0,exports.t=t,exports.use=use,exports.v=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../v-x-e-table/src/conf")),_interceptor=require("./src/interceptor");Object.keys(_interceptor).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}}))});var _renderer=require("./src/renderer");Object.keys(_renderer).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}}))});var _commands=require("./src/commands");Object.keys(_commands).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}}))});var _menus=require("./src/menus");Object.keys(_menus).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}}))});var _formats=require("./src/formats");Object.keys(_formats).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}}))});var _setup=require("./src/setup");Object.keys(_setup).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_setup[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _setup[e]}}))});var _utils=require("../tools/utils"),_log=require("../tools/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VXETable,t),installedPlugins.push(e)),VXETable}function reg(e){"development"===process.env.NODE_ENV&&VXETable.Table&&(0,_log.errLog)("vxe.error.useErr",[e]),VXETable["_".concat(e)]=1}function getExportOrImpotType(e,r){var o=[];return _xeUtils.default.objectEach(e,function(e,t){0!==e&&e!==r||o.push(t)}),o}var VXETableConfig=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:"zIndex",get:function(){return _utils.UtilTools.getLastZIndex()}},{key:"nextZIndex",get:function(){return _utils.UtilTools.nextZIndex()}},{key:"exportTypes",get:function(){return getExportOrImpotType(_conf.default.export.types,1)}},{key:"importTypes",get:function(){return getExportOrImpotType(_conf.default.export.types,2)}}]),e}(),config=new VXETableConfig;function t(e,t){return _conf.default.i18n(e,t)}function _t(e,t){return e?_xeUtils.default.toValueString(_conf.default.translate?_conf.default.translate(e,t):e):""}exports.config=config;var v="v3",VXETable={v:exports.v=v,version:"3.5.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={use:!0,config:!0,t:!0,_t:!0,v:!0,VXETable:!0};exports.VXETable=void 0,exports._t=_t,exports.default=exports.config=void 0,exports.t=t,exports.use=use,exports.v=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../v-x-e-table/src/conf")),_interceptor=require("./src/interceptor");Object.keys(_interceptor).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}}))});var _renderer=require("./src/renderer");Object.keys(_renderer).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}}))});var _commands=require("./src/commands");Object.keys(_commands).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}}))});var _menus=require("./src/menus");Object.keys(_menus).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}}))});var _formats=require("./src/formats");Object.keys(_formats).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}}))});var _setup=require("./src/setup");Object.keys(_setup).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_setup[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _setup[e]}}))});var _utils=require("../tools/utils"),_log=require("../tools/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VXETable,t),installedPlugins.push(e)),VXETable}function reg(e){"development"===process.env.NODE_ENV&&VXETable.Table&&(0,_log.errLog)("vxe.error.useErr",[e]),VXETable["_".concat(e)]=1}function getExportOrImpotType(e,r){var o=[];return _xeUtils.default.objectEach(e,function(e,t){0!==e&&e!==r||o.push(t)}),o}var VXETableConfig=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:"zIndex",get:function(){return _utils.UtilTools.getLastZIndex()}},{key:"nextZIndex",get:function(){return _utils.UtilTools.nextZIndex()}},{key:"exportTypes",get:function(){return getExportOrImpotType(_conf.default.export.types,1)}},{key:"importTypes",get:function(){return getExportOrImpotType(_conf.default.export.types,2)}}]),e}(),config=new VXETableConfig;function t(e,t){return _conf.default.i18n(e,t)}function _t(e,t){return e?_xeUtils.default.toValueString(_conf.default.translate?_conf.default.translate(e,t):e):""}exports.config=config;var v="v3",VXETable={v:exports.v=v,version:"3.5.1",reg:reg,use:use,setup:_setup.setup,interceptor:_interceptor.interceptor,renderer:_renderer.renderer,commands:_commands.commands,formats:_formats.formats,menus:_menus.menus,config:config,t:t,_t:_t},_default=exports.VXETable=VXETable;exports.default=_default;
|
package/package.json
CHANGED
|
@@ -896,7 +896,7 @@ function handleFileImport ($xetable, file, opts) {
|
|
|
896
896
|
reader.onload = (e) => {
|
|
897
897
|
handleImport($xetable, e.target.result, options)
|
|
898
898
|
}
|
|
899
|
-
reader.readAsText(file, 'UTF-8')
|
|
899
|
+
reader.readAsText(file, options.encoding || 'UTF-8')
|
|
900
900
|
})
|
|
901
901
|
}
|
|
902
902
|
} else {
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: 'The operation cannot be performed on merged cells',
|
|
81
81
|
multiErr: 'The operation cannot be performed on multiple selection areas',
|
|
82
|
-
extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size'
|
|
82
|
+
extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size',
|
|
83
|
+
pasteMultiErr: 'Cannot paste, copied area and pasted area of the same size are required to perform this operation'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: 'Find and replace',
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: '无法对合并单元格进行该操作',
|
|
81
81
|
multiErr: '无法对多重选择区域进行该操作',
|
|
82
|
-
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同'
|
|
82
|
+
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
|
|
83
|
+
pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: '查找和替换',
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: '无法对合并单元格进行该操作',
|
|
81
81
|
multiErr: '无法对多重选择区域进行该操作',
|
|
82
|
-
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同'
|
|
82
|
+
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
|
|
83
|
+
pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: '查找和替换',
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: '無法對合併儲存格進行該操作',
|
|
81
81
|
multiErr: '無法對多重選擇區域進行該操作',
|
|
82
|
-
extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同'
|
|
82
|
+
extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同',
|
|
83
|
+
pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: '查找和替換',
|
|
@@ -2,7 +2,7 @@ import XEUtils from 'xe-utils'
|
|
|
2
2
|
import GlobalConfig from '../../v-x-e-table/src/conf'
|
|
3
3
|
import Cell from './cell'
|
|
4
4
|
import VXETable from '../../v-x-e-table'
|
|
5
|
-
import { getRowid, getRowkey, clearTableAllStatus, handleFieldOrColumn, restoreScrollLocation, restoreScrollListener, toTreePathSeq } from './util'
|
|
5
|
+
import { getRowid, getRowkey, clearTableAllStatus, handleFieldOrColumn, restoreScrollLocation, restoreScrollListener, toTreePathSeq, rowToVisible, colToVisible } from './util'
|
|
6
6
|
import UtilTools, { eqEmptyValue, isEnableConf, getFuncText } from '../../tools/utils'
|
|
7
7
|
import DomTools, { browse, getPaddingTopBottomSize, setScrollTop, setScrollLeft } from '../../tools/dom'
|
|
8
8
|
import { formats } from '../../v-x-e-table/src/formats'
|
|
@@ -31,8 +31,7 @@ function eqCellValue (row1, row2, field) {
|
|
|
31
31
|
return true
|
|
32
32
|
}
|
|
33
33
|
if (XEUtils.isString(val1) || XEUtils.isNumber(val1)) {
|
|
34
|
-
|
|
35
|
-
return val1 == val2
|
|
34
|
+
return ('' + val1) === ('' + val2)
|
|
36
35
|
}
|
|
37
36
|
return XEUtils.isEqual(val1, val2)
|
|
38
37
|
}
|
|
@@ -1151,12 +1150,12 @@ const Methods = {
|
|
|
1151
1150
|
updateAfterFullData () {
|
|
1152
1151
|
const { tableFullColumn, tableFullData, filterOpts, sortOpts, treeConfig, treeOpts, tableFullTreeData } = this
|
|
1153
1152
|
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
1154
|
-
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple } = sortOpts
|
|
1153
|
+
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
|
|
1155
1154
|
const { transform } = treeOpts
|
|
1156
1155
|
let tableData = []
|
|
1157
1156
|
let tableTree = []
|
|
1158
1157
|
const filterColumns = []
|
|
1159
|
-
|
|
1158
|
+
let orderColumns = []
|
|
1160
1159
|
tableFullColumn.forEach(column => {
|
|
1161
1160
|
const { property, sortable, order, filters } = column
|
|
1162
1161
|
if (!allRemoteFilter && filters && filters.length) {
|
|
@@ -1173,9 +1172,12 @@ const Methods = {
|
|
|
1173
1172
|
}
|
|
1174
1173
|
}
|
|
1175
1174
|
if (!allRemoteSort && sortable && order) {
|
|
1176
|
-
orderColumns.push({ column, field: column.property, property, order })
|
|
1175
|
+
orderColumns.push({ column, field: column.property, property, order, sortTime: column.sortTime })
|
|
1177
1176
|
}
|
|
1178
1177
|
})
|
|
1178
|
+
if (sortMultiple && chronological && orderColumns.length > 1) {
|
|
1179
|
+
orderColumns = XEUtils.orderBy(orderColumns, 'sortTime')
|
|
1180
|
+
}
|
|
1179
1181
|
if (filterColumns.length) {
|
|
1180
1182
|
const handleFilter = (row) => {
|
|
1181
1183
|
return filterColumns.every(({ column, valueList, itemList }) => {
|
|
@@ -3513,13 +3515,13 @@ const Methods = {
|
|
|
3513
3515
|
defaultSort = [defaultSort]
|
|
3514
3516
|
}
|
|
3515
3517
|
if (defaultSort.length) {
|
|
3516
|
-
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item) => {
|
|
3518
|
+
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item, index) => {
|
|
3517
3519
|
const { field, order } = item
|
|
3518
3520
|
if (field && order) {
|
|
3519
3521
|
const column = this.getColumnByField(field)
|
|
3520
3522
|
if (column && column.sortable) {
|
|
3521
3523
|
column.order = order
|
|
3522
|
-
column.sortTime = Date.now()
|
|
3524
|
+
column.sortTime = Date.now() + index
|
|
3523
3525
|
}
|
|
3524
3526
|
}
|
|
3525
3527
|
})
|
|
@@ -3563,7 +3565,7 @@ const Methods = {
|
|
|
3563
3565
|
if (!multiple) {
|
|
3564
3566
|
clearAllSort(this)
|
|
3565
3567
|
}
|
|
3566
|
-
(multiple ? sortConfs : [sortConfs[0]]).forEach((confs) => {
|
|
3568
|
+
(multiple ? sortConfs : [sortConfs[0]]).forEach((confs, index) => {
|
|
3567
3569
|
let { field, order } = confs
|
|
3568
3570
|
let column = field
|
|
3569
3571
|
if (XEUtils.isString(field)) {
|
|
@@ -3579,6 +3581,7 @@ const Methods = {
|
|
|
3579
3581
|
if (column.order !== order) {
|
|
3580
3582
|
column.order = order
|
|
3581
3583
|
}
|
|
3584
|
+
column.sortTime = Date.now() + index
|
|
3582
3585
|
}
|
|
3583
3586
|
})
|
|
3584
3587
|
// 如果是服务端排序,则跳过本地排序处理
|
|
@@ -3624,13 +3627,17 @@ const Methods = {
|
|
|
3624
3627
|
return this.getSortColumns().length > 0
|
|
3625
3628
|
},
|
|
3626
3629
|
getSortColumns () {
|
|
3630
|
+
const { multiple, chronological } = this.sortOpts
|
|
3627
3631
|
const sortList = []
|
|
3628
3632
|
this.tableFullColumn.forEach((column) => {
|
|
3629
3633
|
const { property, order } = column
|
|
3630
3634
|
if ((column.sortable || column.remoteSort) && order) {
|
|
3631
|
-
sortList.push({ column, field: column.property, property, order })
|
|
3635
|
+
sortList.push({ column, field: column.property, property, order, sortTime: column.sortTime })
|
|
3632
3636
|
}
|
|
3633
3637
|
})
|
|
3638
|
+
if (multiple && chronological && sortList.length > 1) {
|
|
3639
|
+
return XEUtils.orderBy(sortList, 'sortTime')
|
|
3640
|
+
}
|
|
3634
3641
|
return sortList
|
|
3635
3642
|
},
|
|
3636
3643
|
/**
|
|
@@ -4356,7 +4363,7 @@ const Methods = {
|
|
|
4356
4363
|
if (this.treeConfig) {
|
|
4357
4364
|
rest.push(this.scrollToTreeRow(row))
|
|
4358
4365
|
} else {
|
|
4359
|
-
rest.push(
|
|
4366
|
+
rest.push(rowToVisible(this, row))
|
|
4360
4367
|
}
|
|
4361
4368
|
}
|
|
4362
4369
|
if (fieldOrColumn) {
|
|
@@ -4371,7 +4378,7 @@ const Methods = {
|
|
|
4371
4378
|
scrollToColumn (fieldOrColumn) {
|
|
4372
4379
|
const column = handleFieldOrColumn(this, fieldOrColumn)
|
|
4373
4380
|
if (column && this.fullColumnMap.has(column)) {
|
|
4374
|
-
return
|
|
4381
|
+
return colToVisible(this, column)
|
|
4375
4382
|
}
|
|
4376
4383
|
return this.$nextTick()
|
|
4377
4384
|
},
|
|
@@ -4394,7 +4401,7 @@ const Methods = {
|
|
|
4394
4401
|
})
|
|
4395
4402
|
}
|
|
4396
4403
|
}
|
|
4397
|
-
return Promise.all(rests).then(() =>
|
|
4404
|
+
return Promise.all(rests).then(() => rowToVisible(this, row))
|
|
4398
4405
|
},
|
|
4399
4406
|
/**
|
|
4400
4407
|
* 手动清除滚动相关信息,还原到初始状态
|
|
@@ -4631,7 +4638,7 @@ const Methods = {
|
|
|
4631
4638
|
}
|
|
4632
4639
|
|
|
4633
4640
|
// Module methods
|
|
4634
|
-
const funcs = 'setFilter,openFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,clearCopyCellArea,setCellAreas,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearActived,getActiveRecord,isActiveByRow,setActiveRow,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',')
|
|
4641
|
+
const funcs = 'setFilter,openFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearActived,getActiveRecord,isActiveByRow,setActiveRow,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',')
|
|
4635
4642
|
|
|
4636
4643
|
funcs.forEach(name => {
|
|
4637
4644
|
Methods[name] = function (...args) {
|
|
@@ -216,3 +216,67 @@ export function isColumnInfo (column) {
|
|
|
216
216
|
export function getColumnConfig ($xetable, _vm, options) {
|
|
217
217
|
return isColumnInfo(_vm) ? _vm : new ColumnInfo($xetable, _vm, options)
|
|
218
218
|
}
|
|
219
|
+
|
|
220
|
+
export function rowToVisible ($xetable, row) {
|
|
221
|
+
const { tableBody } = $xetable.$refs
|
|
222
|
+
const bodyElem = tableBody ? tableBody.$el : null
|
|
223
|
+
if (bodyElem) {
|
|
224
|
+
const trElem = bodyElem.querySelector(`[rowid="${getRowid($xetable, row)}"]`)
|
|
225
|
+
if (trElem) {
|
|
226
|
+
const bodyHeight = bodyElem.clientHeight
|
|
227
|
+
const bodySrcollTop = bodyElem.scrollTop
|
|
228
|
+
const trOffsetTop = trElem.offsetTop + (trElem.offsetParent ? trElem.offsetParent.offsetTop : 0)
|
|
229
|
+
const trHeight = trElem.clientHeight
|
|
230
|
+
// 检测行是否在可视区中
|
|
231
|
+
if (trOffsetTop < bodySrcollTop || trOffsetTop > bodySrcollTop + bodyHeight) {
|
|
232
|
+
// 向上定位
|
|
233
|
+
return $xetable.scrollTo(null, trOffsetTop)
|
|
234
|
+
} else if (trOffsetTop + trHeight >= bodyHeight + bodySrcollTop) {
|
|
235
|
+
// 向下定位
|
|
236
|
+
return $xetable.scrollTo(null, bodySrcollTop + trHeight)
|
|
237
|
+
}
|
|
238
|
+
} else {
|
|
239
|
+
// 如果是虚拟渲染跨行滚动
|
|
240
|
+
if ($xetable.scrollYLoad) {
|
|
241
|
+
return $xetable.scrollTo(null, ($xetable.afterFullData.indexOf(row) - 1) * $xetable.scrollYStore.rowHeight)
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return Promise.resolve()
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export function colToVisible ($xetable, column) {
|
|
249
|
+
const { tableBody } = $xetable.$refs
|
|
250
|
+
const bodyElem = tableBody ? tableBody.$el : null
|
|
251
|
+
if (bodyElem) {
|
|
252
|
+
const tdElem = bodyElem.querySelector(`.${column.id}`)
|
|
253
|
+
if (tdElem) {
|
|
254
|
+
const bodyWidth = bodyElem.clientWidth
|
|
255
|
+
const bodySrcollLeft = bodyElem.scrollLeft
|
|
256
|
+
const tdOffsetLeft = tdElem.offsetLeft + (tdElem.offsetParent ? tdElem.offsetParent.offsetLeft : 0)
|
|
257
|
+
const tdWidth = tdElem.clientWidth
|
|
258
|
+
// 检测行是否在可视区中
|
|
259
|
+
if (tdOffsetLeft < bodySrcollLeft || tdOffsetLeft > bodySrcollLeft + bodyWidth) {
|
|
260
|
+
// 向左定位
|
|
261
|
+
return $xetable.scrollTo(tdOffsetLeft)
|
|
262
|
+
} else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft) {
|
|
263
|
+
// 向右定位
|
|
264
|
+
return $xetable.scrollTo(bodySrcollLeft + tdWidth)
|
|
265
|
+
}
|
|
266
|
+
} else {
|
|
267
|
+
// 如果是虚拟渲染跨行滚动
|
|
268
|
+
if ($xetable.scrollXLoad) {
|
|
269
|
+
const visibleColumn = $xetable.visibleColumn
|
|
270
|
+
let scrollLeft = 0
|
|
271
|
+
for (let index = 0; index < visibleColumn.length; index++) {
|
|
272
|
+
if (visibleColumn[index] === column) {
|
|
273
|
+
break
|
|
274
|
+
}
|
|
275
|
+
scrollLeft += visibleColumn[index].renderWidth
|
|
276
|
+
}
|
|
277
|
+
return $xetable.scrollTo(scrollLeft)
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return Promise.resolve()
|
|
282
|
+
}
|
package/packages/tools/dom.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import XEUtils from 'xe-utils'
|
|
2
|
-
import UtilTools from './utils'
|
|
3
|
-
|
|
4
|
-
const { getRowid } = UtilTools
|
|
5
2
|
|
|
6
3
|
export const browse = XEUtils.browse()
|
|
7
4
|
const reClsMap = {}
|
|
@@ -111,68 +108,6 @@ export const DomTools = {
|
|
|
111
108
|
overflowElem.setAttribute('title', content)
|
|
112
109
|
}
|
|
113
110
|
},
|
|
114
|
-
rowToVisible ($xetable, row) {
|
|
115
|
-
const { tableBody } = $xetable.$refs
|
|
116
|
-
const bodyElem = tableBody ? tableBody.$el : null
|
|
117
|
-
if (bodyElem) {
|
|
118
|
-
const trElem = bodyElem.querySelector(`[rowid="${getRowid($xetable, row)}"]`)
|
|
119
|
-
if (trElem) {
|
|
120
|
-
const bodyHeight = bodyElem.clientHeight
|
|
121
|
-
const bodySrcollTop = bodyElem.scrollTop
|
|
122
|
-
const trOffsetTop = trElem.offsetTop + (trElem.offsetParent ? trElem.offsetParent.offsetTop : 0)
|
|
123
|
-
const trHeight = trElem.clientHeight
|
|
124
|
-
// 检测行是否在可视区中
|
|
125
|
-
if (trOffsetTop < bodySrcollTop || trOffsetTop > bodySrcollTop + bodyHeight) {
|
|
126
|
-
// 向上定位
|
|
127
|
-
return $xetable.scrollTo(null, trOffsetTop)
|
|
128
|
-
} else if (trOffsetTop + trHeight >= bodyHeight + bodySrcollTop) {
|
|
129
|
-
// 向下定位
|
|
130
|
-
return $xetable.scrollTo(null, bodySrcollTop + trHeight)
|
|
131
|
-
}
|
|
132
|
-
} else {
|
|
133
|
-
// 如果是虚拟渲染跨行滚动
|
|
134
|
-
if ($xetable.scrollYLoad) {
|
|
135
|
-
return $xetable.scrollTo(null, ($xetable.afterFullData.indexOf(row) - 1) * $xetable.scrollYStore.rowHeight)
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return Promise.resolve()
|
|
140
|
-
},
|
|
141
|
-
colToVisible ($xetable, column) {
|
|
142
|
-
const { tableBody } = $xetable.$refs
|
|
143
|
-
const bodyElem = tableBody ? tableBody.$el : null
|
|
144
|
-
if (bodyElem) {
|
|
145
|
-
const tdElem = bodyElem.querySelector(`.${column.id}`)
|
|
146
|
-
if (tdElem) {
|
|
147
|
-
const bodyWidth = bodyElem.clientWidth
|
|
148
|
-
const bodySrcollLeft = bodyElem.scrollLeft
|
|
149
|
-
const tdOffsetLeft = tdElem.offsetLeft + (tdElem.offsetParent ? tdElem.offsetParent.offsetLeft : 0)
|
|
150
|
-
const tdWidth = tdElem.clientWidth
|
|
151
|
-
// 检测行是否在可视区中
|
|
152
|
-
if (tdOffsetLeft < bodySrcollLeft || tdOffsetLeft > bodySrcollLeft + bodyWidth) {
|
|
153
|
-
// 向左定位
|
|
154
|
-
return $xetable.scrollTo(tdOffsetLeft)
|
|
155
|
-
} else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft) {
|
|
156
|
-
// 向右定位
|
|
157
|
-
return $xetable.scrollTo(bodySrcollLeft + tdWidth)
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
// 如果是虚拟渲染跨行滚动
|
|
161
|
-
if ($xetable.scrollXLoad) {
|
|
162
|
-
const visibleColumn = $xetable.visibleColumn
|
|
163
|
-
let scrollLeft = 0
|
|
164
|
-
for (let index = 0; index < visibleColumn.length; index++) {
|
|
165
|
-
if (visibleColumn[index] === column) {
|
|
166
|
-
break
|
|
167
|
-
}
|
|
168
|
-
scrollLeft += visibleColumn[index].renderWidth
|
|
169
|
-
}
|
|
170
|
-
return $xetable.scrollTo(scrollLeft)
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return Promise.resolve()
|
|
175
|
-
},
|
|
176
111
|
getDomNode,
|
|
177
112
|
/**
|
|
178
113
|
* 检查触发源是否属于目标节点
|