vxe-pc-ui
Version:
A vue based PC component library
1 lines • 1.76 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_formItem=require("./form-item"),_render=require("./render"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeFormGroup",props:_formItem.formItemProps,setup(e,t){const _=t["slots"],a=(0,_vue.ref)(),v=(0,_vue.inject)("$xeForm",{}),r=(0,_vue.inject)("$xeFormGroup",null),f=(0,_vue.reactive)((0,_util.createItem)(v,e));f.slots=_,f.children=[];t={itemConfig:f},(0,_vue.provide)("xeFormItemInfo",t),t={formItem:f,renderVN:()=>{var e=v.props,t=v.xeGrid,r=f,{data:e,readonly:u,disabled:i}=e,{visible:l,field:n,itemRender:o,contentStyle:s}=r,o=(0,_utils.isEnableConf)(o)?_ui.renderer.get(o.name):null,d=o?o.formItemStyle||o.itemStyle:null,o=o?o.formItemContentStyle||o.itemContentStyle:null,m=_?_.default:null,e={data:e,disabled:i,readonly:u,field:n,property:n,item:r,$form:v,$grid:t};return!1===l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:a,key:r.id,class:(0,_render.getItemClass)(v,r,!0),style:_xeUtils.default.isFunction(d)?d(e):d},[(0,_render.renderTitle)(v,r,!0),(0,_vue.h)("div",{class:(0,_render.getItemContentClass)(v,r,!0),style:Object.assign({},_xeUtils.default.isFunction(o)?o(e):o,_xeUtils.default.isFunction(s)?s(e):s)},m?m({}):[])])}};return(0,_util.watchItem)(e,f),(0,_vue.onMounted)(()=>{var e=a.value;(0,_util.assembleItem)(v,e,f,r)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyItem)(v,f)}),(0,_vue.provide)("$xeFormGroup",t),(0,_vue.provide)("$xeFormItem",null),t},render(){return this.renderVN()}});