UNPKG

vhb-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 5.94 kB
"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 _vHBTable=_interopRequireDefault(require("../../v-h-b-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){var l=_xeUtils.default.get(t,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}function getPaddingLeftRightSize(e){if(e){var t=getComputedStyle(e);return _xeUtils.default.toNumber(t.paddingLeft)+_xeUtils.default.toNumber(t.paddingRight)}return 0}function getElemenMarginWidth(e){if(e){var t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),r=_xeUtils.default.toNumber(t.marginRight);return e.offsetWidth+l+r}return 0}function handleFieldOrColumn(e,t){return t?_xeUtils.default.isString(t)?e.getColumnByField(t):t:null}function queryCellElement(e,t){return e.querySelector(".vhb-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,n=e.checked;return{label:t,value:l,data:r,resetValue:o,checked:!!n,_checked:!!n}}):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,s=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?o:a,f="title"===s||(!0===s||"tooltip"===s)||"ellipsis"===s,c=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(f){var d=getPaddingLeftRightSize(queryCellElement(r,"--title>.vhb-cell--checkbox")),g=getElemenMarginWidth(queryCellElement(r,">.vhb-cell--required-icon")),m=getElemenMarginWidth(queryCellElement(r,">.vhb-cell--edit-icon")),h=getElemenMarginWidth(queryCellElement(r,">.vhb-cell-help-icon")),p=getElemenMarginWidth(queryCellElement(r,">.vhb-cell--sort"));c+=d+g+m+h+getElemenMarginWidth(queryCellElement(r,">.vhb-cell--filter"))+p}if(u){var v=t.$refs.tableBody,x=v?v.$el:null;if(x){if(_dom.default.isScale(u)){var S=(x.clientWidth-1)/100;return Math.max(c,Math.floor(_xeUtils.default.toInteger(u)*S))}if(_dom.default.isPx(u))return Math.max(c,_xeUtils.default.toInteger(u))}}return c}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,u=o.colspan;if(-1<i&&-1<n&&a&&u){if(n===t&&i===l)return{rowspan:a,colspan:u};if(n<=t&&t<n+a&&i<=l&&l<i+u)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&&_vHBTable.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&&_vHBTable.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,i=r.scrollTop,a=o.offsetTop+(o.offsetParent?o.offsetParent.offsetTop:0),u=o.clientHeight;if(a<i||i+n<a)return e.scrollTo(null,a);if(n+i<=a+u)return e.scrollTo(null,i+u)}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,i=r.scrollLeft,a=o.offsetLeft+(o.offsetParent?o.offsetParent.offsetLeft:0),u=o.clientWidth;if(a<i||i+n<a)return e.scrollTo(a);if(n+i<=a+u)return e.scrollTo(i+u)}else if(e.scrollXLoad){for(var s=e.visibleColumn,f=0,c=0;c<s.length&&s[c]!==t;c++)f+=s[c].renderWidth;return e.scrollTo(f)}}return Promise.resolve()}