UNPKG

epic-designer-gold

Version:

基于vue3的设计器,可视化开发页面表单

2 lines (1 loc) 6.21 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),y=require("./pluginManager-C8aQylGX.cjs"),_=require("./index-DN7FXwXR.cjs"),w=require("./icon.vue_vue_type_script_setup_true_lang-DJbUD5AQ.cjs"),k=require("./index-BoL2PSBk.cjs"),B=[{label:"string",value:"string"},{label:"number",value:"number"},{label:"boolean",value:"boolean"},{label:"method",value:"method"},{label:"regexp",value:"regexp"},{label:"integer",value:"integer"},{label:"float",value:"float"},{label:"array",value:"array"},{label:"object",value:"object"},{label:"date",value:"date"},{label:"url",value:"url"},{label:"hex",value:"hex"},{label:"email",value:"email"},{label:"any",value:"any"}],x=[{label:"change",value:"change"},{label:"blur",value:"blur"}],f=["string","number","url","array","email"],E={class:"rule-item-main bg-white m-t-2 p-2 rounded border border-solid border-gray-200 hover:border-primary transition-all relative"},q={key:0,class:"flex m-t-2 first:m-0"},N=["title"],C={class:"epic-attr-input"},P=e.defineComponent({__name:"ERuleItem",props:{rule:{}},emits:["change","delete","update:rule"],setup(v,{emit:g}){const{t:l}=k.useLocale(),s=g,c=v,n=e.computed({get(){return c.rule},set(t){s("update:rule",t)}}),i=e.inject("pageManager",{}),r=e.computed(()=>Object.entries(i.funcs.value).filter(([t,p])=>typeof p=="function").map(([t])=>({label:t,value:t}))),h=[{type:"select",label:l("validationTrigger"),model:"trigger",componentProps:{options:x,placeholder:l("validationTrigger"),multiple:!0,mode:"multiple"}},{type:"switch",label:l("customRule"),model:"isValidator"},{type:"select",label:l("validationFunction"),model:"validator",show(){return!!n.value.isValidator},componentProps:{options:r.value,placeholder:l("validationFunction")}},{type:"select",label:l("type"),model:"type",show(){return!n.value.isValidator},componentProps:{options:B,placeholder:l("type")}},{type:"input",label:l("regexValidation"),model:"pattern",show(){return!n.value.isValidator},componentProps:{placeholder:l("regexValidation")}},{type:"number",label:l("fieldLength"),model:"len",show(){return f.includes(n.value.type??"")},componentProps:{min:0,placeholder:l("fieldLength")}},{type:"number",label:l("minLength"),model:"min",show(){return f.includes(n.value.type??"")},componentProps:{min:0,placeholder:l("minLength")}},{type:"number",label:l("maxLength"),model:"max",show(){return f.includes(n.value.type??"")},componentProps:{min:0,placeholder:l("maxLength")}},{type:"input",label:l("validationMessage"),model:"message",componentProps:{placeholder:l("validationMessage")}}];function a(){const t=n.value;t.isValidator?(delete t.type,delete t.pattern,delete t.len,delete t.min,delete t.max):delete t.validator,s("change",t)}function b(){s("delete")}return(t,p)=>(e.openBlock(),e.createElementBlock("div",E,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(h,(o,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:V},[!o.show||o.show()?(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("div",{class:"epic-attr-label",title:e.unref(l)("validationTrigger")},e.toDisplayString(o.label),9,N),e.createElementVNode("div",C,[e.createVNode(e.unref(_.ENode),{modelValue:n.value[o.model],"onUpdate:modelValue":u=>n.value[o.model]=u,componentSchema:{...o,noFormItem:!0},onChange:a},null,8,["modelValue","onUpdate:modelValue","componentSchema"])])])):e.createCommentVNode("",!0)],64))),64)),e.createElementVNode("div",{class:"rule-btn-delete absolute top-0 text-md right-0 transition-all w-24px h-24px cursor-pointer rounded-bl-2 flex justify-center items-center color-white",onClick:b},[e.createVNode(e.unref(w._sfc_main),{name:"icon--epic--delete-outline-rounded"})])]))}}),L={class:"rule-item-main m-t-2 p-2 rounded border border-solid transition-all relative"},T={key:0,class:"flex m-t-2 first:m-0"},M={class:"epic-attr-label"},F={class:"flex-1"},U=e.defineComponent({__name:"index",props:{ruleType:{type:String,default:"string"},modelValue:{type:Array,default:void 0}},emits:["update:modelValue"],setup(v,{emit:g}){const{t:l}=k.useLocale(),s=y.pluginManager.getComponent("button"),c=v,n=g,i=_.useVModel(c,"modelValue",n),r=e.ref({required:!1,message:l("required"),type:c.ruleType,trigger:["change"]}),h=[{type:"switch",label:l("required"),model:"required"},{type:"select",label:l("validationTrigger"),model:"trigger",show(){return!!r.value.required},componentProps:{options:x,placeholder:l("validationTrigger"),multiple:!0,mode:"multiple"}},{type:"select",label:l("type"),model:"type",show(){return!!r.value.required},componentProps:{options:B,placeholder:l("type")}},{type:"input",label:l("validationMessage"),model:"message",show(){return!!r.value.required},componentProps:{placeholder:l("validationMessage")}}],a=e.ref([]);e.watchEffect(()=>{i.value&&(a.value=[],i.value.forEach(o=>{typeof o.required<"u"?r.value=o:a.value.push(o)}))});function b(){a.value.push({message:"",type:c.ruleType,trigger:["change"]}),t()}function t(){if(r.value.required){i.value=y.deepClone([...a.value,r.value]);return}if(a.value.length){i.value=y.deepClone(a.value);return}i.value=void 0}function p(o){a.value.splice(o,1),t()}return(o,V)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",L,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(h,(u,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[!u.show||u.show()?(e.openBlock(),e.createElementBlock("div",T,[e.createElementVNode("div",M,e.toDisplayString(u.label),1),e.createElementVNode("div",F,[e.createVNode(e.unref(_.ENode),{modelValue:r.value[u.model],"onUpdate:modelValue":m=>r.value[u.model]=m,componentSchema:{...u,noFormItem:!0},onChange:t},null,8,["modelValue","onUpdate:modelValue","componentSchema"])])])):e.createCommentVNode("",!0)],64))),64))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(u,d)=>(e.openBlock(),e.createBlock(P,{key:d,rule:a.value[d],"onUpdate:rule":m=>a.value[d]=m,onDelete:m=>p(d),onChange:t},null,8,["rule","onUpdate:rule","onDelete"]))),128)),e.createVNode(e.unref(s),{class:"m-t-2",onClick:b},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("addRule")),1)]),_:1})]))}});exports.default=U;