vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 5.91 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.getColReMinWidth=getColReMinWidth,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){t=_xeUtils.default.get(t,getRowkey(e));return _xeUtils.default.eqNull(t)?"":encodeURIComponent(t)}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElemenMarginWidth(e){var t,l;return e?(l=getComputedStyle(e),t=_xeUtils.default.toNumber(l.marginLeft),l=_xeUtils.default.toNumber(l.marginRight),e.offsetWidth+t+l):0}function 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 getColReMinWidth(e){var t=e.$table,l=e.column,r=e.cell,o=t.showHeaderOverflow,n=t.resizableOpts.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,a,n=l.showHeaderOverflow,e=l.minWidth,l=_xeUtils.default.isUndefined(n)||_xeUtils.default.isNull(n)?o:n,o="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l,n=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(o&&(l=getPaddingLeftRightSize(queryCellElement(r,"--title>.vxe-cell--checkbox")),o=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),u=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),i=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-help-icon")),a=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--sort")),n+=l+o+u+i+getElemenMarginWidth(queryCellElement(r,">.vxe-cell--filter"))+a),e){var u,l=t.$refs.tableBody,o=l?l.$el:null;if(o){if(_dom.default.isScale(e))return u=(o.clientWidth-1)/100,Math.max(n,Math.floor(_xeUtils.default.toInteger(e)*u));if(_dom.default.isPx(e))return Math.max(n,_xeUtils.default.toInteger(e))}}return n}function countTreeExpand(e,t){var l=1;if(e){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,l=l?l.$el:null;if(l){var r=l.querySelector('[rowid="'.concat(getRowid(e,t),'"]'));if(r){var o=l.clientHeight,l=l.scrollTop,n=r.offsetTop+(r.offsetParent?r.offsetParent.offsetTop:0),r=r.clientHeight;if(n<l||l+o<n)return e.scrollTo(null,n);if(o+l<=n+r)return e.scrollTo(null,l+r)}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,l=l?l.$el:null;if(l){var r=l.querySelector(".".concat(t.id));if(r){var o=l.clientWidth,l=l.scrollLeft,n=r.offsetLeft+(r.offsetParent?r.offsetParent.offsetLeft:0),r=r.clientWidth;if(n<l||l+o<n)return e.scrollTo(n);if(o+l<=n+r)return e.scrollTo(l+r)}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()}