epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 3.23 kB
JavaScript
;const e=require("vue");;/* empty css */;/* empty css */;/* empty css */const y=require("../../../../base-ui/src/node/node.vue.cjs");;/* empty css */const c=require("../../../../../utils/src/common/data.cjs");require("../../../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.cjs");const k=require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const B=require("../../../../../manager/src/pluginManager.cjs");require("vue-draggable-plus");const p=require("./data.cjs"),V=require("./ERuleItem.vue.cjs"),E={class:"rule-item-main m-t-2 relative rounded border border-solid p-2 transition-all"},b={key:0,class:"m-t-2 flex first:m-0"},C={class:"epic-attr-label"},N={class:"flex-1"},w=e.defineComponent({__name:"index",props:{modelValue:{default:void 0,type:Array},ruleType:{default:"string",type:String}},emits:["update:modelValue"],setup(m,{emit:v}){const d=m,g=v,_=B.pluginManager.component.get("button"),n=k.useVModel(d,"modelValue",g),l=e.ref({message:"必填项",required:!1,trigger:["change"],type:d.ruleType}),q=[{label:"必填项",model:"required",type:"switch"},{label:"校验时机",model:"trigger",props:{mode:"multiple",multiple:!0,options:p.triggerOptions,placeholder:"校验时机"},show(){return!!l.value.required},type:"select"},{label:"类型",model:"type",props:{options:p.typeOptions,placeholder:"类型"},show(){return!!l.value.required},type:"select"},{label:"校验信息",model:"message",props:{placeholder:"校验信息"},show(){return!!l.value.required},type:"input"}],t=e.ref([]);e.watch(()=>n.value,(o,s)=>{o&&(c.deepEqual(o,s??[])||(t.value=[],o.forEach(r=>{r.required===void 0?t.value.push(r):l.value=r})))},{immediate:!0});function h(){t.value.push({message:"",trigger:["change"],type:d.ruleType}),a()}function a(){if(l.value.required){n.value=c.deepClone([...t.value,l.value]);return}if(t.value.length>0){n.value=c.deepClone(t.value);return}n.value=void 0}function f(o){t.value.splice(o,1),a()}return(o,s)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",E,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(q,(r,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[!r.show||r.show()?(e.openBlock(),e.createElementBlock("div",b,[e.createElementVNode("div",C,e.toDisplayString(r.label),1),e.createElementVNode("div",N,[e.createVNode(e.unref(y),{"is-property":"",modelValue:l.value[r.model],"onUpdate:modelValue":i=>l.value[r.model]=i,"component-schema":{...r,noFormItem:!0},onChange:a},null,8,["modelValue","onUpdate:modelValue","component-schema"])])])):e.createCommentVNode("",!0)],64))),64))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(r,u)=>(e.openBlock(),e.createBlock(V,{key:u,rule:t.value[u],"onUpdate:rule":i=>t.value[u]=i,onDelete:i=>f(u),onChange:a},null,8,["rule","onUpdate:rule","onDelete"]))),128)),e.createVNode(e.unref(_),{class:"m-t-2",onClick:h},{default:e.withCtx(()=>[...s[0]||(s[0]=[e.createTextVNode(" 添加规则 ",-1)])]),_:1})]))}});module.exports=w;