vxe-pc-ui
Version:
A vue based PC component library
1 lines • 2.99 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.formItemProps=exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_render=require("./render"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let formItemProps=exports.formItemProps={title:String,field:String,span:{type:[String,Number],default:null},align:{type:String,default:null},verticalAlign:{type:String,default:null},titleBackground:{type:Boolean,default:null},titleBold:{type:Boolean,default:null},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},padding:{type:Boolean,default:null},formatter:[String,Function],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},showContent:{type:Boolean,default:null},folding:Boolean,collapseNode:Boolean,itemRender:Object,rules:Array,params:Object};var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeFormItem",props:formItemProps,setup(e,{slots:t}){var l=_xeUtils.default.uniqueId();let f=(0,_vue.ref)(),r=(0,_vue.inject)("$xeForm",{}),n=(0,_vue.inject)("$xeFormGroup",null),i=(0,_vue.reactive)((0,_util.createItem)(r,e));i.slots=t;t={itemConfig:i};(0,_vue.provide)("xeFormItemInfo",t);let p={xID:l,formItem:i,renderVN:()=>{var e=!!r&&r.props.customLayout,t=i;return e?((e,t)=>{var l=e.props,r=e.xeGrid,{data:l,readonly:n,disabled:i}=l,{visible:u,field:o,itemRender:a,contentStyle:d,showContent:s}=t,a=(0,_utils.isEnableConf)(a)?_ui.renderer.get(a.name):null,m=a?a.formItemStyle||a.itemStyle:null,a=a?a.formItemContentStyle||a.itemContentStyle:null,l={data:l,disabled:i,readonly:n,field:o,property:o,item:t,$form:e,$grid:r};return!1===u?(0,_ui.renderEmptyElement)(p):(0,_vue.h)("div",{ref:f,key:t.id,itemid:t.id,class:(0,_render.getItemClass)(e,t),style:_xeUtils.default.isFunction(m)?m(l):m},[(0,_render.renderTitle)(e,t),!1===s?(0,_ui.renderEmptyElement)(p):(0,_vue.h)("div",{class:(0,_render.getItemContentClass)(e,t),style:Object.assign({},_xeUtils.default.isFunction(a)?a(l):a,_xeUtils.default.isFunction(d)?d(l):d)},[(0,_render.renderItemContent)(e,t),(0,_render.renderItemErrorIcon)(e,t)])])})(r,t):(0,_vue.h)("div",{ref:f})}};return(0,_util.watchItem)(e,i),(0,_vue.onMounted)(()=>{var e=f.value;(0,_util.assembleItem)(r,e,i,n)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyItem)(r,i)}),(0,_vue.provide)("$xeFormItem",p),(0,_vue.provide)("$xeFormGroup",null),p},render(){return this.renderVN()}});