yw-common-list
Version:
基于vxe-table封装的自定义可配置表格
1 lines • 16.3 kB
JavaScript
"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_dom=_interopRequireDefault(require("../../tools/dom")),_utils=_interopRequireWildcard(require("../../tools/utils")),_util=require("./util"),_vn=require("../../tools/vn");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};r=_getRequireWildcardCache(r);if(r&&r.has(e))return r.get(e);var t,l,n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&((l=o?Object.getOwnPropertyDescriptor(e,t):null)&&(l.get||l.set)?Object.defineProperty(n,t,l):n[t]=e[t]);return n.default=e,r&&r.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(r,e){var t,l=Object.keys(r);return Object.getOwnPropertySymbols&&(t=Object.getOwnPropertySymbols(r),e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),l.push.apply(l,t)),l}function _objectSpread(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(t),!0).forEach(function(e){_defineProperty(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function renderHelpIcon(e,r){var t=r.$table,l=r.column,l=l.titlePrefix||l.titleHelp;return l?[e("i",{class:["vxe-cell-help-icon",l.icon||_conf.default.icon.TABLE_HELP],on:{mouseenter:function(e){t.triggerHeaderHelpEvent(e,r)},mouseleave:function(e){t.handleTargetLeaveEvent(e)}}})]:[]}function renderTitleContent(e,r,t){var l=r.$table,n=r.column,o=n.type,c=n.showHeaderOverflow,i=l.showHeaderOverflow,a=l.tooltipOpts,d=a.showAll||a.enabled,a=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?i:c,s="title"===a,u=!0===a||"tooltip"===a,i={};return(s||u||d)&&(i.mouseenter=function(e){l._isResize||(s?_dom.default.updateCellTitle(e.currentTarget,n):(u||d)&&l.triggerHeaderTooltipEvent(e,r))}),(u||d)&&(i.mouseleave=function(e){l._isResize||(u||d)&&l.handleTargetLeaveEvent(e)}),["html"===o&&_xeUtils.default.isString(t)?e("span",{class:"vxe-cell--title",domProps:{innerHTML:t},on:i}):e("span",{class:"vxe-cell--title",on:i},t)]}function getFooterContent(e,r){var t=r.$table,l=r.column,n=r._columnIndex,o=r.items,c=l.slots,i=l.editRender,l=l.cellRender,i=i||l;if(c&&c.footer)return t.callSlot(c.footer,r,e);if(i){l=_vXETable.default.renderer.get(i.name);if(l&&l.renderFooter)return(0,_vn.getSlotVNs)(l.renderFooter.call(t,e,i,r))}return[_utils.default.formatText(o[n],1)]}function getDefaultCellLabel(e){var r=e.$table,t=e.row,e=e.column;return _utils.default.formatText(r.getCellLabel(t,e),1)}var Cell={createColumn:function(e,r){var t=r.type,l=r.sortable,n=r.remoteSort,o=r.filters,c=r.editRender,i=r.treeNode,a=e.editConfig,d=e.editOpts,s=e.checkboxOpts,u={renderHeader:this.renderDefaultHeader,renderCell:i?this.renderTreeCell:this.renderDefaultCell,renderFooter:this.renderDefaultFooter};switch(t){case"seq":u.renderHeader=this.renderSeqHeader,u.renderCell=i?this.renderTreeIndexCell:this.renderSeqCell;break;case"radio":u.renderHeader=this.renderRadioHeader,u.renderCell=i?this.renderTreeRadioCell:this.renderRadioCell;break;case"checkbox":u.renderHeader=this.renderCheckboxHeader,u.renderCell=s.checkField?i?this.renderTreeSelectionCellByProp:this.renderCheckboxCellByProp:i?this.renderTreeSelectionCell:this.renderCheckboxCell;break;case"expand":u.renderCell=this.renderExpandCell,u.renderData=this.renderExpandData;break;case"html":u.renderCell=i?this.renderTreeHTMLCell:this.renderHTMLCell,o&&(l||n)?u.renderHeader=this.renderSortAndFilterHeader:l||n?u.renderHeader=this.renderSortHeader:o&&(u.renderHeader=this.renderFilterHeader);break;default:a&&c?(u.renderHeader=this.renderEditHeader,u.renderCell="cell"===d.mode?i?this.renderTreeCellEdit:this.renderCellEdit:i?this.renderTreeRowEdit:this.renderRowEdit):o&&(l||n)?u.renderHeader=this.renderSortAndFilterHeader:l||n?u.renderHeader=this.renderSortHeader:o&&(u.renderHeader=this.renderFilterHeader)}return(0,_util.getColumnConfig)(e,r,u)},renderHeaderTitle:function(e,r){var t=r.$table,l=r.column,n=l.slots,o=l.editRender,c=l.cellRender,o=o||c;if(n&&n.header)return renderTitleContent(e,r,t.callSlot(n.header,r,e));if(o){c=_vXETable.default.renderer.get(o.name);if(c&&c.renderHeader)return(0,_vn.getSlotVNs)(renderTitleContent(e,r,c.renderHeader.call(t,e,o,r)))}return renderTitleContent(e,r,_utils.default.formatText(l.getTitle(),1))},renderDefaultHeader:function(e,r){return renderHelpIcon(e,r).concat(Cell.renderHeaderTitle(e,r))},renderDefaultCell:function(e,r){var t=r.$table,l=r.row,n=r.column,o=n.slots,c=n.editRender,i=n.cellRender,i=c||i;if(o&&o.default)return t.callSlot(o.default,r,e);if(i){var o=c?"renderCell":"renderDefault",a=_vXETable.default.renderer.get(i.name);if(a&&a[o])return(0,_vn.getSlotVNs)(a[o].call(t,e,i,Object.assign({$type:c?"edit":"cell"},r)))}a=t.getCellLabel(l,n),o=c?c.placeholder:"";return[e("span",{class:"vxe-cell--label"},c&&(0,_utils.eqEmptyValue)(a)?[e("span",{class:"vxe-cell--placeholder"},_utils.default.formatText((0,_utils.getFuncText)(o),1))]:_utils.default.formatText(a,1))]},renderTreeCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderDefaultCell.call(this,e,r))},renderDefaultFooter:function(e,r){return[e("span",{class:"vxe-cell--item"},getFooterContent(e,r))]},renderTreeIcon:function(e,r,t){var l=r.$table,n=r.isHidden,o=l.treeOpts,c=l.treeExpandeds,i=l.treeLazyLoadeds,a=r.row,d=r.column,s=r.level,d=d.slots,u=o.children,f=o.hasChild,b=o.indent,p=o.lazy,h=o.trigger,x=o.iconLoaded,v=o.showIcon,C=o.iconOpen,o=o.iconClose,u=a[u],_=!1,T=!1,m=!1,k={};return d&&d.icon?l.callSlot(d.icon,r,e,t):(n||(T=-1<l.findRowIndexOf(c,a),p&&(m=-1<l.findRowIndexOf(i,a),_=a[f])),h&&"default"!==h||(k.click=function(e){return l.triggerTreeExpandEvent(e,r)}),[e("div",{class:["vxe-cell--tree-node",{"is--active":T}],style:{paddingLeft:"".concat(s*b,"px")}},[v&&(u&&u.length||_)?[e("div",{class:"vxe-tree--btn-wrapper",on:k},[e("i",{class:["vxe-tree--node-btn",m?x||_conf.default.icon.TABLE_TREE_LOADED:T?C||_conf.default.icon.TABLE_TREE_OPEN:o||_conf.default.icon.TABLE_TREE_CLOSE]})])]:null,e("div",{class:"vxe-tree-cell"},t)])])},renderSeqHeader:function(e,r){var t=r.$table,l=r.column,n=l.slots;return renderTitleContent(e,r,n&&n.header?t.callSlot(n.header,r,e):_utils.default.formatText(l.getTitle(),1))},renderSeqCell:function(e,r){var t=r.$table,l=r.column,n=t.treeConfig,o=t.seqOpts,l=l.slots;if(l&&l.default)return t.callSlot(l.default,r,e);t=r.seq,l=o.seqMethod;return[_utils.default.formatText(l?l(r):n?t:(o.startIndex||0)+t,1)]},renderTreeIndexCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderSeqCell(e,r))},renderRadioHeader:function(e,r){var t=r.$table,l=r.column,n=l.slots,o=n?n.header:null,n=n?n.title:null;return renderTitleContent(e,r,o?t.callSlot(o,r,e):[e("span",{class:"vxe-radio--label"},n?t.callSlot(n,r,e):_utils.default.formatText(l.getTitle(),1))])},renderRadioCell:function(e,r){var t,l=r.$table,n=r.column,o=r.isHidden,c=l.radioOpts,i=l.selectRow,n=n.slots,a=c.labelField,d=c.checkMethod,c=c.visibleMethod,s=r.row,u=n?n.default:null,n=n?n.radio:null,i=s===i,f=!c||c({row:s}),b=!!d,c=(o||(t={click:function(e){!b&&f&&l.triggerRadioRowEvent(e,r)}},d&&(b=!d({row:s}))),_objectSpread(_objectSpread({},r),{},{checked:i,disabled:b,visible:f}));if(n)return l.callSlot(n,c,e);o=[];return f&&o.push(e("span",{class:"vxe-radio--icon vxe-radio--checked-icon"}),e("span",{class:"vxe-radio--icon vxe-radio--unchecked-icon"})),(u||a)&&o.push(e("span",{class:"vxe-radio--label"},u?l.callSlot(u,c,e):_xeUtils.default.get(s,a))),[e("span",{class:["vxe-cell--radio",{"is--checked":i,"is--disabled":b}],on:t},o)]},renderTreeRadioCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderRadioCell(e,r))},renderCheckboxHeader:function(e,r){var t,l=r.$table,n=r.column,o=r.isHidden,c=l.isAllSelected,i=l.isIndeterminate,a=l.isAllCheckboxDisabled,d=n.slots,s=d?d.header:null,d=d?d.title:null,u=l.checkboxOpts,n=n.getTitle(),o=(o||(t={click:function(e){a||l.triggerCheckAllEvent(e,!c)}}),_objectSpread(_objectSpread({},r),{},{checked:c,disabled:a,indeterminate:i}));return s?renderTitleContent(e,o,l.callSlot(s,o,e)):(u.checkStrictly?u.showHeader:!1!==u.showHeader)?renderTitleContent(e,o,[e("span",{class:["vxe-cell--checkbox",{"is--checked":c,"is--disabled":a,"is--indeterminate":i}],attrs:{title:_conf.default.i18n("vxe.table.allTitle")},on:t},[e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})].concat(d||n?[e("span",{class:"vxe-checkbox--label"},d?l.callSlot(d,o,e):n)]:[]))]):renderTitleContent(e,o,[e("span",{class:"vxe-checkbox--label"},d?l.callSlot(d,o,e):n)])},renderCheckboxCell:function(e,r){var t,l=r.$table,n=r.row,o=r.column,c=r.isHidden,i=l.treeConfig,a=l.treeIndeterminates,d=l.selection,s=l.checkboxOpts,u=s.labelField,f=s.checkMethod,s=s.visibleMethod,o=o.slots,b=o?o.default:null,o=o?o.checkbox:null,p=!1,h=!1,x=!s||s({row:n}),v=!!f,s=(c||(h=-1<l.findRowIndexOf(d,n),t={click:function(e){!v&&x&&l.triggerCheckRowEvent(e,r,!h)}},f&&(v=!f({row:n})),i&&(p=-1<l.findRowIndexOf(a,n))),_objectSpread(_objectSpread({},r),{},{checked:h,disabled:v,visible:x,indeterminate:p}));if(o)return l.callSlot(o,s,e);c=[];return x&&c.push(e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})),(b||u)&&c.push(e("span",{class:"vxe-checkbox--label"},b?l.callSlot(b,s,e):_xeUtils.default.get(n,u))),[e("span",{class:["vxe-cell--checkbox",{"is--checked":h,"is--disabled":v,"is--indeterminate":p}],on:t},c)]},renderTreeSelectionCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderCheckboxCell(e,r))},renderCheckboxCellByProp:function(e,r){var t,l=r.$table,n=r.row,o=r.column,c=r.isHidden,i=l.treeConfig,a=l.treeIndeterminates,d=l.checkboxOpts,s=d.labelField,u=d.checkField,f=d.halfField,b=d.checkMethod,d=d.visibleMethod,o=o.slots,p=o?o.default:null,o=o?o.checkbox:null,h=!1,x=!1,v=!d||d({row:n}),C=!!b,d=(c||(x=_xeUtils.default.get(n,u),t={click:function(e){!C&&v&&l.triggerCheckRowEvent(e,r,!x)}},b&&(C=!b({row:n})),i&&(h=-1<l.findRowIndexOf(a,n))),_objectSpread(_objectSpread({},r),{},{checked:x,disabled:C,visible:v,indeterminate:h}));if(o)return l.callSlot(o,d,e);c=[];return v&&c.push(e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})),(p||s)&&c.push(e("span",{class:"vxe-checkbox--label"},p?l.callSlot(p,d,e):_xeUtils.default.get(n,s))),[e("span",{class:["vxe-cell--checkbox",{"is--checked":x,"is--disabled":C,"is--indeterminate":f&&!x?n[f]:h}],on:t},c)]},renderTreeSelectionCellByProp:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderCheckboxCellByProp(e,r))},renderExpandCell:function(e,r){var t=r.$table,l=r.isHidden,n=r.row,o=r.column,c=t.expandOpts,i=t.rowExpandeds,a=t.expandLazyLoadeds,d=c.lazy,s=c.labelField,u=c.iconLoaded,f=c.showIcon,b=c.iconOpen,p=c.iconClose,c=c.visibleMethod,o=o.slots,h=o?o.default:null,x=!1,v=!1;return o&&o.icon?t.callSlot(o.icon,r,e):(l||(x=-1<t.findRowIndexOf(i,r.row),d&&(v=-1<t.findRowIndexOf(a,n))),[!f||c&&!c(r)?null:e("span",{class:["vxe-table--expanded",{"is--active":x}],on:{click:function(e){t.triggerRowExpandEvent(e,r)}}},[e("i",{class:["vxe-table--expand-btn",v?u||_conf.default.icon.TABLE_EXPAND_LOADED:x?b||_conf.default.icon.TABLE_EXPAND_OPEN:p||_conf.default.icon.TABLE_EXPAND_CLOSE]})]),h||s?e("span",{class:"vxe-table--expand-label"},h?t.callSlot(h,r,e):_xeUtils.default.get(n,s)):null])},renderExpandData:function(e,r){var t=r.$table,l=r.column,n=l.slots,l=l.contentRender;if(n&&n.content)return t.callSlot(n.content,r,e);if(l){n=_vXETable.default.renderer.get(l.name);if(n&&n.renderExpand)return(0,_vn.getSlotVNs)(n.renderExpand.call(t,e,l,r))}return[]},renderHTMLCell:function(e,r){var t=r.$table,l=r.column.slots;return l&&l.default?t.callSlot(l.default,r,e):[e("span",{class:"vxe-cell--html",domProps:{innerHTML:getDefaultCellLabel(r)}})]},renderTreeHTMLCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderHTMLCell(e,r))},renderSortAndFilterHeader:function(e,r){return Cell.renderDefaultHeader(e,r).concat(Cell.renderSortIcon(e,r)).concat(Cell.renderFilterIcon(e,r))},renderSortHeader:function(e,r){return Cell.renderDefaultHeader(e,r).concat(Cell.renderSortIcon(e,r))},renderSortIcon:function(e,r){var t=r.$table,l=r.column,r=t.sortOpts,n=r.showIcon,o=r.iconAsc,r=r.iconDesc;return n?[e("span",{class:"vxe-cell--sort"},[e("i",{class:["vxe-sort--asc-btn",o||_conf.default.icon.TABLE_SORT_ASC,{"sort--active":"asc"===l.order}],attrs:{title:_conf.default.i18n("vxe.table.sortAsc")},on:{click:function(e){t.triggerSortEvent(e,l,"asc")}}}),e("i",{class:["vxe-sort--desc-btn",r||_conf.default.icon.TABLE_SORT_DESC,{"sort--active":"desc"===l.order}],attrs:{title:_conf.default.i18n("vxe.table.sortDesc")},on:{click:function(e){t.triggerSortEvent(e,l,"desc")}}})])]:[]},renderFilterHeader:function(e,r){return Cell.renderDefaultHeader(e,r).concat(Cell.renderFilterIcon(e,r))},renderFilterIcon:function(e,r){var t=r.$table,l=r.column,n=r.hasFilter,o=t.filterStore,c=t.filterOpts,i=c.showIcon,a=c.iconNone,c=c.iconMatch;return i?[e("span",{class:["vxe-cell--filter",{"is--active":o.visible&&o.column===l}]},[e("i",{class:["vxe-filter--btn",n?c||_conf.default.icon.TABLE_FILTER_MATCH:a||_conf.default.icon.TABLE_FILTER_NONE],attrs:{title:_conf.default.i18n("vxe.table.filter")},on:{click:function(e){t.triggerFilterEvent(e,r.column,r)}}})])]:[]},renderEditHeader:function(e,r){var t=r.$table,l=r.column,n=t.editConfig,o=t.editRules,t=t.editOpts,c=l.sortable,i=l.remoteSort,a=l.filters,d=l.editRender,s=!1;return o&&(o=_xeUtils.default.get(o,l.field))&&(s=o.some(function(e){return e.required})),((0,_utils.isEnableConf)(n)?[s&&t.showAsterisk?e("i",{class:"vxe-cell--required-icon"}):null,(0,_utils.isEnableConf)(d)&&t.showIcon?e("i",{class:["vxe-cell--edit-icon",t.icon||_conf.default.icon.TABLE_EDIT]}):null]:[]).concat(Cell.renderDefaultHeader(e,r)).concat(c||i?Cell.renderSortIcon(e,r):[]).concat(a?Cell.renderFilterIcon(e,r):[])},renderRowEdit:function(e,r){var t=r.$table,l=r.column.editRender,t=t.editStore.actived;return Cell.runRenderer(e,r,this,(0,_utils.isEnableConf)(l)&&t&&t.row===r.row)},renderTreeRowEdit:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderRowEdit(e,r))},renderCellEdit:function(e,r){var t=r.$table,l=r.column.editRender,t=t.editStore.actived;return Cell.runRenderer(e,r,this,(0,_utils.isEnableConf)(l)&&t&&t.row===r.row&&t.column===r.column)},renderTreeCellEdit:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderCellEdit(e,r))},runRenderer:function(e,r,t,l){var n=r.$table,o=r.column,c=o.slots,i=o.editRender,o=o.formatter,a=_vXETable.default.renderer.get(i.name);return l?c&&c.edit?n.callSlot(c.edit,r,e):a&&a.renderEdit?(0,_vn.getSlotVNs)(a.renderEdit.call(n,e,i,Object.assign({$type:"edit"},r))):[]:c&&c.default?n.callSlot(c.default,r,e):o?[e("span",{class:"vxe-cell--label"},[getDefaultCellLabel(r)])]:Cell.renderDefaultCell.call(t,e,r)}},_default=exports.Cell=Cell;exports.default=_default;