gepic
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 1.38 kB
JavaScript
;const e=require("vue"),p=require("../../../components/node/src/node.vue.cjs"),f={class:"epic-attribute-view"},m=["title"],v={class:"epic-attr-input"},_=e.defineComponent({__name:"EArgsEditor",props:{modelValue:{},actionArgsConfigs:{}},emits:["update:modelValue"],setup(r,{emit:a}){const l=r,c=a,s=e.computed(()=>l.modelValue?JSON.parse(l.modelValue):[]);function u(t){var n;return typeof t.show=="boolean"?t.show:typeof t.show=="function"?(n=t.show)==null?void 0:n.call(t,{values:s.value}):!0}function i(t,n){const o=[...JSON.parse(l.modelValue??"[]")];o[n]=t,c("update:modelValue",JSON.stringify(o))}return(t,n)=>(e.openBlock(),e.createElementBlock("div",f,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.actionArgsConfigs,o=>(e.openBlock(),e.createElementBlock("div",{key:o.id},[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["epic-attr-item",o.layout])},[e.createElementVNode("div",{class:"epic-attr-label",title:o.label},e.toDisplayString(o.label),9,m),e.createElementVNode("div",v,[e.createVNode(e.unref(p),{"component-schema":{...o,componentProps:{...o.componentProps,input:!1,field:void 0,hidden:!1},show:!0,noFormItem:!0},"model-value":s.value[o.field],"onUpdate:modelValue":d=>i(d,o.field)},null,8,["component-schema","model-value","onUpdate:modelValue"])])],2),[[e.vShow,u(o)]])]))),128))]))}});module.exports=_;