vxe-table 3.5.0 → 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/index.umd.js +108 -110
- package/lib/index.umd.min.js +1 -1
- package/lib/table/src/methods.js +3 -3
- 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/table/src/methods.js +4 -4
- package/packages/table/src/util.js +64 -0
- package/packages/tools/dom.js +0 -65
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
|
@@ -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'
|
|
@@ -4363,7 +4363,7 @@ const Methods = {
|
|
|
4363
4363
|
if (this.treeConfig) {
|
|
4364
4364
|
rest.push(this.scrollToTreeRow(row))
|
|
4365
4365
|
} else {
|
|
4366
|
-
rest.push(
|
|
4366
|
+
rest.push(rowToVisible(this, row))
|
|
4367
4367
|
}
|
|
4368
4368
|
}
|
|
4369
4369
|
if (fieldOrColumn) {
|
|
@@ -4378,7 +4378,7 @@ const Methods = {
|
|
|
4378
4378
|
scrollToColumn (fieldOrColumn) {
|
|
4379
4379
|
const column = handleFieldOrColumn(this, fieldOrColumn)
|
|
4380
4380
|
if (column && this.fullColumnMap.has(column)) {
|
|
4381
|
-
return
|
|
4381
|
+
return colToVisible(this, column)
|
|
4382
4382
|
}
|
|
4383
4383
|
return this.$nextTick()
|
|
4384
4384
|
},
|
|
@@ -4401,7 +4401,7 @@ const Methods = {
|
|
|
4401
4401
|
})
|
|
4402
4402
|
}
|
|
4403
4403
|
}
|
|
4404
|
-
return Promise.all(rests).then(() =>
|
|
4404
|
+
return Promise.all(rests).then(() => rowToVisible(this, row))
|
|
4405
4405
|
},
|
|
4406
4406
|
/**
|
|
4407
4407
|
* 手动清除滚动相关信息,还原到初始状态
|
|
@@ -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
|
* 检查触发源是否属于目标节点
|