vxe-table-demonic
Version:
一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...
1 lines • 7.33 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.assemColumn=assemColumn,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMaxWidth=getColReMaxWidth,exports.getColReMinWidth=getColReMinWidth,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=void 0,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.removeScrollListener=removeScrollListener,exports.restoreScrollListener=restoreScrollListener,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq,exports.watchColumn=watchColumn;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function restoreScrollLocation(e,t,l){var r=e.internalData;return e.clearScroll().then(function(){if(t||l)return r.lastScrollLeft=0,r.lastScrollTop=0,e.scrollTo(t,l)})}function removeScrollListener(e){e&&e._onscroll&&(e.onscroll=null)}function restoreScrollListener(e){e&&e._onscroll&&(e.onscroll=e._onscroll)}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){var t=e.props,e=e.getComputeMaps().computeRowOpts,t=t.rowId,e=e.value;return t||e.keyField||"_X_ROW_KEY"}function getRowid(e,t){t=_xeUtils.default.get(t,getRowkey(e));return _xeUtils.default.eqNull(t)?"":encodeURIComponent(t)}var handleFieldOrColumn=function(e,t){return t?_xeUtils.default.isString(t)?e.getColumnByField(t):t:null};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 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 toTreePathSeq(e){return e.map(function(e,t){return t%2==0?Number(e)+1:"."}).join("")}function getCellValue(e,t){return _xeUtils.default.get(e,t.field)}function setCellValue(e,t,l){return _xeUtils.default.set(e,t.field,l)}function getColReMaxWidth(e){var t=e.$table.getComputeMaps().computeResizableOpts.value.maxWidth;if(t){e=_xeUtils.default.isFunction(t)?t(e):t;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}return-1}function getColReMinWidth(e){var t=e.$table,l=e.column,r=e.cell,o=t.props,n=t.getComputeMaps().computeResizableOpts.value.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,u,n=o.showHeaderOverflow,e=l.showHeaderOverflow,o=l.minWidth,l=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?n:e,n="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l,e=_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")),n=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),s=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),i=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElemenMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),u=getElemenMarginWidth(queryCellElement(r,">.vxe-cell--sort")),e+=l+n+s+i+a+getElemenMarginWidth(queryCellElement(r,">.vxe-cell--filter"))+u),o){var s,l=t.getRefMaps().refTableBody.value,n=l?l.$el:null;if(n){if((0,_dom.isScale)(o))return s=(n.clientWidth-1)/100,Math.max(e,Math.floor(_xeUtils.default.toInteger(o)*s));if((0,_dom.isPx)(o))return Math.max(e,_xeUtils.default.toInteger(o))}}return e}function isColumnInfo(e){return e&&(e.constructor===_columnInfo.ColumnInfo||e instanceof _columnInfo.ColumnInfo)}function createColumn(e,t,l){return isColumnInfo(t)?t:(0,_vue.reactive)(new _columnInfo.ColumnInfo(e,t,l))}function watchColumn(l,e,r){Object.keys(e).forEach(function(t){(0,_vue.watch)(function(){return e[t]},function(e){r.update(t,e),l&&("filters"===t?(l.setFilter(r,e),l.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&l.handleRefreshColumnQueue())})})}function assemColumn(e,t,l,r){var e=e.reactData,o=e.staticColumns,n=t.parentNode,r=r?r.column:null,r=r?r.children:o;n&&r&&(r.splice(_xeUtils.default.arrayIndexOf(n.children,t),0,l),e.staticColumns=o.slice(0))}function destroyColumn(e,t){var e=e.reactData,l=e.staticColumns,r=_xeUtils.default.findTree(l,function(e){return e.id===t.id},{children:"children"});r&&r.items.splice(r.index,1),e.staticColumns=l.slice(0)}function getRootColumn(e,t){var l=e.internalData.fullColumnIdData;if(!t)return null;for(var r=t.parentId;l[r];){var o=l[r].column;if(!(r=o.parentId))return o}return t}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){var t=e.props;return e.internalData.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearPendingRow(),e.clearFilter&&e.clearFilter(),e.clearSelected&&(t.keyboardConfig||t.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&t.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function rowToVisible(e,t){var l=e.reactData,r=e.internalData,o=e.getRefMaps().refTableBody,l=l.scrollYLoad,n=r.afterFullData,r=r.scrollYStore,o=o.value,o=o?o.$el:null;if(o){var i=o.querySelector('[rowid="'.concat(getRowid(e,t),'"]'));if(i){var a=o.clientHeight,o=o.scrollTop,u=i.offsetParent,u=i.offsetTop+(u?u.offsetTop:0),i=i.clientHeight;if(u<o||o+a<u)return e.scrollTo(null,u);if(a+o<=u+i)return e.scrollTo(null,o+i)}else if(l)return e.scrollTo(null,(n.indexOf(t)-1)*r.rowHeight)}return Promise.resolve()}function colToVisible(e,t){var l=e.reactData,r=e.internalData,o=e.getRefMaps().refTableBody,l=l.scrollXLoad,n=r.visibleColumn,r=o.value,o=r?r.$el:null;if(o){r=o.querySelector(".".concat(t.id));if(r){var i=o.clientWidth,o=o.scrollLeft,a=r.offsetParent,a=r.offsetLeft+(a?a.offsetLeft:0),r=r.clientWidth;if(a<o||o+i<a)return e.scrollTo(a);if(i+o<=a+r)return e.scrollTo(o+r)}else if(l){for(var u=0,s=0;s<n.length&&n[s]!==t;s++)u+=n[s].renderWidth;return e.scrollTo(u)}}return Promise.resolve()}exports.handleFieldOrColumn=handleFieldOrColumn;