vxe-table-demonic
Version:
一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...
1 lines • 5.45 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.formItemProps=exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_vn=require("../../tools/vn"),_util=require("./util"),_render=require("./render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,l=1,i=arguments.length;l<i;l++)for(var n in t=arguments[l])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},formItemProps={title:String,field:String,span:[String,Number],align:String,titleAlign:{type:String,default:null},titleWidth:{type:[String,Number],default:null},titleColon:{type:Boolean,default:null},titleAsterisk:{type:Boolean,default:null},showTitle:{type:Boolean,default:!0},vertical:{type:Boolean,default:null},className:[String,Function],contentClassName:[String,Function],contentStyle:[Object,Function],titleClassName:[String,Function],titleStyle:[Object,Function],titleOverflow:{type:[Boolean,String],default:null},titlePrefix:Object,titleSuffix:Object,resetValue:{default:null},visibleMethod:Function,visible:{type:Boolean,default:null},folding:Boolean,collapseNode:Boolean,itemRender:Object},_default=(exports.formItemProps=formItemProps,(0,_vue.defineComponent)({name:"VxeFormItem",props:formItemProps,setup:function(e,t){var t=t.slots,k=(0,_vue.ref)(),D=(0,_vue.inject)("$xeform",{}),l=(0,_vue.inject)("$xeformgather",null),W=(0,_vue.reactive)((0,_util.createItem)(D,e)),i={formItem:W},n={itemConfig:W};W.slots=t,(0,_vue.provide)("$xeformiteminfo",n),(0,_vue.provide)("$xeformitem",i),(0,_vue.provide)("$xeformgather",null),(0,_util.watchItem)(e,W),(0,_vue.onMounted)(function(){(0,_util.assemItem)(D,k.value,W,l)}),(0,_vue.onUnmounted)(function(){(0,_util.destroyItem)(D,W)});return{renderVN:function(){var t,e,l,i,E,n,o,P,s,R,r,V,u,a,$,d,f,c,m,v,_,p,x,g,h,N,y,U,F,C,b,S,O,q,I,T,j,w,A,M,B=D?D.props:null;return B&&B.customLayout?(B=W,C=(t=D).props,i=t.reactData,e=C.data,l=C.rules,b=C.titleAlign,S=C.titleWidth,O=C.titleColon,q=C.titleAsterisk,w=C.titleOverflow,T=C.vertical,i=i.collapseAll,E=t.getComputeMaps().computeValidOpts.value,U=B.slots,n=B.title,o=B.visible,P=B.folding,s=B.field,R=B.collapseNode,r=B.itemRender,V=B.showError,u=B.errRule,a=B.className,I=B.titleOverflow,j=B.vertical,$=B.showTitle,d=B.contentClassName,f=B.contentStyle,c=B.titleClassName,m=B.titleStyle,v=(0,_utils.isEnableConf)(r)?_vXETable.VXETable.renderer.get(r.name):null,_=v?v.itemClassName:"",p=v?v.itemStyle:null,x=v?v.itemContentClassName:"",g=v?v.itemContentStyle:null,h=v?v.itemTitleClassName:"",N=v?v.itemTitleStyle:null,y=U?U.default:null,U=U?U.title:null,F=B.span||C.span,C=B.align||C.align,b=_xeUtils.default.eqNull(B.titleAlign)?b:B.titleAlign,S=_xeUtils.default.eqNull(B.titleWidth)?S:B.titleWidth,O=_xeUtils.default.eqNull(B.titleColon)?O:B.titleColon,q=_xeUtils.default.eqNull(B.titleAsterisk)?q:B.titleAsterisk,w=_xeUtils.default.isUndefined(I)||_xeUtils.default.isNull(I)?w:I,I=_xeUtils.default.isUndefined(j)||_xeUtils.default.isNull(j)?T:j,j=!0===w||"tooltip"===w,w=(T="title"===w)||j||"ellipsis"===w,A={data:e,field:s,property:s,item:B,$form:t,$grid:t.xegrid},(M=!1)===o?(0,_vue.createCommentVNode)():(l&&(o=l[s])&&(M=o.some(function(e){return e.required})),l=[],y?l=t.callSlot(y,A):v&&v.renderItemContent?l=(0,_vn.getSlotVNs)(v.renderItemContent(r,A)):s&&(l=["".concat(_xeUtils.default.get(e,s))]),R&&l.push((0,_vue.h)("div",{class:"vxe-form--item-trigger-node",onClick:t.toggleCollapseEvent},[(0,_vue.h)("span",{class:"vxe-form--item-trigger-text"},i?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),(0,_vue.h)("i",{class:["vxe-form--item-trigger-icon",i?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})])),u&&E.showMessage&&l.push((0,_vue.h)("div",{class:"vxe-form--item-valid",style:u.maxWidth?{width:"".concat(u.maxWidth,"px")}:null},u.message)),o=j?{onMouseenter:function(e){t.triggerTitleTipEvent(e,A)},onMouseleave:t.handleTitleTipLeaveEvent}:{},(0,_vue.h)("div",{ref:k,class:["vxe-form--item",B.id,F?"vxe-col--".concat(F," is--span"):"",a?_xeUtils.default.isFunction(a)?a(A):a:"",_?_xeUtils.default.isFunction(_)?_(A):_:"",{"is--title":n,"is--colon":O,"is--vertical":I,"is--asterisk":q,"is--required":M,"is--hidden":P&&i,"is--active":(0,_util.isActivetem)(t,B),"is--error":V}],style:_xeUtils.default.isFunction(p)?p(A):p},[(0,_vue.h)("div",{class:"vxe-form--item-inner"},[!1!==$&&(n||U)?(0,_vue.h)("div",__assign({class:["vxe-form--item-title",b?"align--".concat(b):"",w?"is--ellipsis":"",h?_xeUtils.default.isFunction(h)?h(A):h:"",c?_xeUtils.default.isFunction(c)?c(A):c:""],style:Object.assign({},_xeUtils.default.isFunction(N)?N(A):N,_xeUtils.default.isFunction(m)?m(A):m,S?{width:isNaN(S)?S:"".concat(S,"px")}:null),title:T?(0,_utils.getFuncText)(n):null},o),(0,_render.renderTitle)(t,B)):null,(0,_vue.h)("div",{class:["vxe-form--item-content",C?"align--".concat(C):"",x?_xeUtils.default.isFunction(x)?x(A):x:"",d?_xeUtils.default.isFunction(d)?d(A):d:""],style:Object.assign({},_xeUtils.default.isFunction(g)?g(A):g,_xeUtils.default.isFunction(f)?f(A):f)},l)])]))):(0,_vue.h)("div",{ref:k})}}},render:function(){return this.renderVN()}}));exports.default=_default;