vxe-table 3.5.0-beta.4 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/edit/src/mixin.js +10 -10
  2. package/lib/edit/src/mixin.min.js +1 -1
  3. package/lib/index.umd.js +143 -127
  4. package/lib/index.umd.min.js +1 -1
  5. package/lib/locale/lang/en-US.js +2 -1
  6. package/lib/locale/lang/en-US.min.js +1 -1
  7. package/lib/locale/lang/en-US.umd.js +2 -1
  8. package/lib/locale/lang/ja-JP.js +2 -1
  9. package/lib/locale/lang/ja-JP.min.js +1 -1
  10. package/lib/locale/lang/ja-JP.umd.js +2 -1
  11. package/lib/locale/lang/zh-CN.js +2 -1
  12. package/lib/locale/lang/zh-CN.min.js +1 -1
  13. package/lib/locale/lang/zh-CN.umd.js +2 -1
  14. package/lib/locale/lang/zh-HK.min.js +1 -1
  15. package/lib/locale/lang/zh-HK.umd.js +2 -1
  16. package/lib/locale/lang/zh-MO.min.js +1 -1
  17. package/lib/locale/lang/zh-MO.umd.js +2 -1
  18. package/lib/locale/lang/zh-TC.js +2 -1
  19. package/lib/locale/lang/zh-TC.min.js +1 -1
  20. package/lib/locale/lang/zh-TC.umd.js +2 -1
  21. package/lib/locale/lang/zh-TW.min.js +1 -1
  22. package/lib/locale/lang/zh-TW.umd.js +2 -1
  23. package/lib/table/src/methods.js +27 -10
  24. package/lib/table/src/methods.min.js +1 -1
  25. package/lib/table/src/util.js +75 -0
  26. package/lib/table/src/util.min.js +1 -1
  27. package/lib/tools/dom.js +0 -75
  28. package/lib/tools/dom.min.js +1 -1
  29. package/lib/tools/log.js +1 -1
  30. package/lib/tools/log.min.js +1 -1
  31. package/lib/v-x-e-table/index.js +1 -1
  32. package/lib/v-x-e-table/index.min.js +1 -1
  33. package/package.json +1 -1
  34. package/packages/edit/src/mixin.js +1 -2
  35. package/packages/locale/lang/en-US.js +2 -1
  36. package/packages/locale/lang/ja-JP.js +2 -1
  37. package/packages/locale/lang/zh-CN.js +2 -1
  38. package/packages/locale/lang/zh-TC.js +2 -1
  39. package/packages/table/src/methods.js +20 -12
  40. package/packages/table/src/util.js +64 -0
  41. 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
  /**
@@ -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")),_utils=_interopRequireDefault(require("./utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getRowid=_utils.default.getRowid,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 l=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,l&&l!==document.documentElement&&l!==document.body&&(o.top-=l.scrollTop,o.left-=l.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)},rowToVisible:function(e,t){var o=e.$refs.tableBody,l=o?o.$el:null;if(l){var r=l.querySelector('[rowid="'.concat(getRowid(e,t),'"]'));if(r){var s=l.clientHeight,o=l.scrollTop,l=r.offsetTop+(r.offsetParent?r.offsetParent.offsetTop:0),r=r.clientHeight;if(l<o||o+s<l)return e.scrollTo(null,l);if(s+o<=l+r)return e.scrollTo(null,o+r)}else if(e.scrollYLoad)return e.scrollTo(null,(e.afterFullData.indexOf(t)-1)*e.scrollYStore.rowHeight)}return Promise.resolve()},colToVisible:function(e,t){var o=e.$refs.tableBody,l=o?o.$el:null;if(l){var r=l.querySelector(".".concat(t.id));if(r){var s=l.clientWidth,o=l.scrollLeft,l=r.offsetLeft+(r.offsetParent?r.offsetParent.offsetLeft:0),r=r.clientWidth;if(l<o||o+s<l)return e.scrollTo(l);if(s+o<=l+r)return e.scrollTo(o+r)}else if(e.scrollXLoad){for(var i=e.visibleColumn,n=0,f=0;f<i.length&&i[f]!==t;f++)n+=i[f].renderWidth;return e.scrollTo(n)}}return Promise.resolve()},getDomNode:getDomNode,getEventTargetNode:function(e,t,o,l){for(var r,s=e.target;s&&s.nodeType&&s!==document;){if(o&&hasClass(s,o)&&(!l||l(s)))r=s;else if(s===t)return{flag:!o||!!r,container:t,targetElem:r};s=s.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],l=0;return l=o?"auto"===o?e.parentHeight:(t=e.getExcludeHeight(),l=isScale(o)?Math.floor((_xeUtils.default.toInteger(o)||1)/100*e.parentHeight):_xeUtils.default.toNumber(o),Math.max(40,l-t)):l},isNodeElement:isNodeElement},_default=exports.DomTools=DomTools;exports.default=_default;
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.0-beta.4", "] ", _conf.default.i18n(message, params));
15
+ return "[vxe-table v".concat("3.5.2", "] ", _conf.default.i18n(message, params));
16
16
  }
17
17
 
18
18
  function outLog(type) {
@@ -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.0-beta.4","] ",_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;
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.2","] ",_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;
@@ -221,7 +221,7 @@ var v = 'v3';
221
221
  exports.v = v;
222
222
  var VXETable = {
223
223
  v: v,
224
- version: "3.5.0-beta.4",
224
+ version: "3.5.2",
225
225
  reg: reg,
226
226
  use: use,
227
227
  setup: _setup.setup,
@@ -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.0-beta.4",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;
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.2",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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "3.5.0-beta.4",
3
+ "version": "3.5.2",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -1,11 +1,10 @@
1
1
  import XEUtils from 'xe-utils'
2
2
  import VXETable from '../../v-x-e-table'
3
3
  import UtilTools, { isEnableConf } from '../../tools/utils'
4
+ import { getRowid } from '../../table/src/util'
4
5
  import DomTools, { browse } from '../../tools/dom'
5
6
  import { warnLog, errLog } from '../../tools/log'
6
7
 
7
- const { getRowid } = UtilTools
8
-
9
8
  function insertTreeRow (_vm, newRecords, isAppend) {
10
9
  const { tableFullTreeData, afterFullData, fullDataRowIdData, fullAllDataRowIdData, treeOpts } = _vm
11
10
  const { rowField, parentField, children, mapChildren } = treeOpts
@@ -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'
@@ -1150,12 +1150,12 @@ const Methods = {
1150
1150
  updateAfterFullData () {
1151
1151
  const { tableFullColumn, tableFullData, filterOpts, sortOpts, treeConfig, treeOpts, tableFullTreeData } = this
1152
1152
  const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
1153
- const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple } = sortOpts
1153
+ const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
1154
1154
  const { transform } = treeOpts
1155
1155
  let tableData = []
1156
1156
  let tableTree = []
1157
1157
  const filterColumns = []
1158
- const orderColumns = []
1158
+ let orderColumns = []
1159
1159
  tableFullColumn.forEach(column => {
1160
1160
  const { property, sortable, order, filters } = column
1161
1161
  if (!allRemoteFilter && filters && filters.length) {
@@ -1172,9 +1172,12 @@ const Methods = {
1172
1172
  }
1173
1173
  }
1174
1174
  if (!allRemoteSort && sortable && order) {
1175
- orderColumns.push({ column, field: column.property, property, order })
1175
+ orderColumns.push({ column, field: column.property, property, order, sortTime: column.sortTime })
1176
1176
  }
1177
1177
  })
1178
+ if (sortMultiple && chronological && orderColumns.length > 1) {
1179
+ orderColumns = XEUtils.orderBy(orderColumns, 'sortTime')
1180
+ }
1178
1181
  if (filterColumns.length) {
1179
1182
  const handleFilter = (row) => {
1180
1183
  return filterColumns.every(({ column, valueList, itemList }) => {
@@ -3512,13 +3515,13 @@ const Methods = {
3512
3515
  defaultSort = [defaultSort]
3513
3516
  }
3514
3517
  if (defaultSort.length) {
3515
- (sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item) => {
3518
+ (sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item, index) => {
3516
3519
  const { field, order } = item
3517
3520
  if (field && order) {
3518
3521
  const column = this.getColumnByField(field)
3519
3522
  if (column && column.sortable) {
3520
3523
  column.order = order
3521
- column.sortTime = Date.now()
3524
+ column.sortTime = Date.now() + index
3522
3525
  }
3523
3526
  }
3524
3527
  })
@@ -3562,7 +3565,7 @@ const Methods = {
3562
3565
  if (!multiple) {
3563
3566
  clearAllSort(this)
3564
3567
  }
3565
- (multiple ? sortConfs : [sortConfs[0]]).forEach((confs) => {
3568
+ (multiple ? sortConfs : [sortConfs[0]]).forEach((confs, index) => {
3566
3569
  let { field, order } = confs
3567
3570
  let column = field
3568
3571
  if (XEUtils.isString(field)) {
@@ -3578,6 +3581,7 @@ const Methods = {
3578
3581
  if (column.order !== order) {
3579
3582
  column.order = order
3580
3583
  }
3584
+ column.sortTime = Date.now() + index
3581
3585
  }
3582
3586
  })
3583
3587
  // 如果是服务端排序,则跳过本地排序处理
@@ -3623,13 +3627,17 @@ const Methods = {
3623
3627
  return this.getSortColumns().length > 0
3624
3628
  },
3625
3629
  getSortColumns () {
3630
+ const { multiple, chronological } = this.sortOpts
3626
3631
  const sortList = []
3627
3632
  this.tableFullColumn.forEach((column) => {
3628
3633
  const { property, order } = column
3629
3634
  if ((column.sortable || column.remoteSort) && order) {
3630
- sortList.push({ column, field: column.property, property, order })
3635
+ sortList.push({ column, field: column.property, property, order, sortTime: column.sortTime })
3631
3636
  }
3632
3637
  })
3638
+ if (multiple && chronological && sortList.length > 1) {
3639
+ return XEUtils.orderBy(sortList, 'sortTime')
3640
+ }
3633
3641
  return sortList
3634
3642
  },
3635
3643
  /**
@@ -4355,7 +4363,7 @@ const Methods = {
4355
4363
  if (this.treeConfig) {
4356
4364
  rest.push(this.scrollToTreeRow(row))
4357
4365
  } else {
4358
- rest.push(DomTools.rowToVisible(this, row))
4366
+ rest.push(rowToVisible(this, row))
4359
4367
  }
4360
4368
  }
4361
4369
  if (fieldOrColumn) {
@@ -4370,7 +4378,7 @@ const Methods = {
4370
4378
  scrollToColumn (fieldOrColumn) {
4371
4379
  const column = handleFieldOrColumn(this, fieldOrColumn)
4372
4380
  if (column && this.fullColumnMap.has(column)) {
4373
- return DomTools.colToVisible(this, column)
4381
+ return colToVisible(this, column)
4374
4382
  }
4375
4383
  return this.$nextTick()
4376
4384
  },
@@ -4393,7 +4401,7 @@ const Methods = {
4393
4401
  })
4394
4402
  }
4395
4403
  }
4396
- return Promise.all(rests).then(() => DomTools.rowToVisible(this, row))
4404
+ return Promise.all(rests).then(() => rowToVisible(this, row))
4397
4405
  },
4398
4406
  /**
4399
4407
  * 手动清除滚动相关信息,还原到初始状态
@@ -4630,7 +4638,7 @@ const Methods = {
4630
4638
  }
4631
4639
 
4632
4640
  // Module methods
4633
- 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(',')
4634
4642
 
4635
4643
  funcs.forEach(name => {
4636
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
+ }
@@ -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
  * 检查触发源是否属于目标节点