vhb-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
1 lines • 3.47 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-h-b-table/src/conf")),_vHBTable=_interopRequireDefault(require("../../v-h-b-table")),_utils=require("../../tools/utils"),_util=require("./util"),_render=require("./render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var props={title:String,field:String,size:String,span:[String,Number],align:String,titleAlign:String,titleWidth:[String,Number],className:[String,Function],titleOverflow:{type:[Boolean,String],default:null},titlePrefix:Object,titleSuffix:Object,resetValue:{default:null},visible:{type:Boolean,default:null},visibleMethod:Function,folding:Boolean,collapseNode:Boolean,itemRender:Object},watch={};Object.keys(props).forEach(function(t){watch[t]=function(e){this.itemConfig.update(t,e)}});var renderItem=function(e,t,i,l){var n,r=t.rules,o=t.data,a=t.collapseAll,s=t.validOpts,u=t.titleOverflow,d=i.title,f=i.folding,c=i.visible,m=i.visibleMethod,v=i.field,h=i.collapseNode,g=i.itemRender,p=i.showError,_=i.errRule,b=i.className,x=i.titleOverflow,O=(0,_utils.isEnableConf)(g)?_vHBTable.default.renderer.get(g.name):null,q=i.span||t.span,I=i.align||t.align,N=i.titleAlign||t.titleAlign,S=i.titleWidth||t.titleWidth,w=m,y=_xeUtils.default.isUndefined(x)||_xeUtils.default.isNull(x)?u:x,F="title"===y,M=!0===y||"tooltip"===y,R=F||M||"ellipsis"===y,C={data:o,property:v,item:i,$form:t};if(!w&&O&&O.itemVisibleMethod&&(w=O.itemVisibleMethod),r){var T=r[v];T&&(n=T.some(function(e){return e.required}))}var U=[];l&&l.default?U=t.callSlot(l.default,C,e):O&&O.renderItemContent?U=O.renderItemContent.call(t,e,g,C):O&&O.renderItem?U=O.renderItem.call(t,e,g,C):v&&(U=["".concat(_xeUtils.default.get(o,v))]);var j=M?{mouseenter:function(e){t.triggerTitleTipEvent(e,C)},mouseleave:t.handleTitleTipLeaveEvent}:{};return e("div",{class:["vhb-form--item",i.id,q?"vhb-col--".concat(q," is--span"):null,b?_xeUtils.default.isFunction(b)?b(C):b:"",{"is--title":d,"is--required":n,"is--hidden":!1===c||f&&a,"is--active":!w||w(C),"is--error":p}]},[e("div",{class:"vhb-form--item-inner"},[d||l&&l.title?e("div",{class:["vhb-form--item-title",N?"align--".concat(N):null,{"is--ellipsis":R}],style:S?{width:isNaN(S)?S:"".concat(S,"px")}:null,attrs:{title:F?(0,_utils.getFuncText)(d):null},on:j},(0,_render.renderTitle)(e,t,i)):null,e("div",{class:["vhb-form--item-content",I?"align--".concat(I):null]},U.concat([h?e("div",{class:"vhb-form--item-trigger-node",on:{click:t.toggleCollapseEvent}},[e("span",{class:"vhb-form--item-trigger-text"},a?_conf.default.i18n("vhb.form.unfolding"):_conf.default.i18n("vhb.form.folding")),e("i",{class:["vhb-form--item-trigger-icon",a?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})]):null,_&&s.showMessage?e("div",{class:"vhb-form--item-valid",style:_.maxWidth?{width:"".concat(_.maxWidth,"px")}:null},_.message):null]))])])},_default={name:"VhbFormItem",props:props,inject:{$xeform:{default:null},xeformgather:{default:null}},data:function(){return{itemConfig:null}},watch:watch,mounted:function(){(0,_util.assemItem)(this)},created:function(){this.itemConfig=(0,_util.createItem)(this.$xeform,this)},destroyed:function(){(0,_util.destroyItem)(this)},render:function(e){var t=this.$xeform;return t&&t.customLayout?renderItem(e,t,this.itemConfig,this.$scopedSlots):e("div")}};exports.default=_default;