epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 3.54 kB
JavaScript
;const e=require("vue");;/* empty css */const v=require("../../../../base-ui/src/icon/icon.vue.cjs");;/* empty css */;/* empty css */const g=require("../../../../base-ui/src/node/node.vue.cjs");;/* empty css */require("../../../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const b=require("../../../../../hooks/src/designer/usePageManager.cjs");require("../../../../../manager/src/pluginManager.cjs");require("vue-draggable-plus");const o=require("./data.cjs"),f={class:"rule-item-main m-t-2 hover:border-primary relative rounded border border-solid p-2 transition-all"},V={key:0,class:"m-t-2 flex first:m-0"},q={class:"epic-attr-label",title:"校验时机"},k={class:"epic-attr-input"},w=e.defineComponent({__name:"ERuleItem",props:{rule:{}},emits:["change","delete","update:rule"],setup(s,{emit:i}){const u=s,n=i,l=e.computed({get(){return u.rule},set(t){n("update:rule",t)}}),p=b.usePageManager(),d=e.computed(()=>Object.entries(p.funcs.value).filter(([t,a])=>typeof a=="function").map(([t])=>({label:t,value:t}))),c=[{label:"校验时机",model:"trigger",props:{mode:"multiple",multiple:!0,options:o.triggerOptions,placeholder:"校验时机"},type:"select"},{label:"自定义规则",model:"isValidator",type:"switch"},{label:"校验函数",model:"validator",props:{options:d.value,placeholder:"校验函数"},show(){return!!l.value.isValidator},type:"select"},{label:"类型",model:"type",props:{options:o.typeOptions,placeholder:"类型"},show(){return!l.value.isValidator},type:"select"},{label:"正则校验",model:"pattern",props:{placeholder:"正则校验"},show(){return!l.value.isValidator},type:"input"},{label:"字段长度",model:"len",props:{min:0,placeholder:"字段长度"},show(){return o.lenTypeOptions.includes(l.value.type??"")},type:"number"},{label:"最小长度",model:"min",props:{min:0,placeholder:"最小长度"},show(){return o.lenTypeOptions.includes(l.value.type??"")},type:"number"},{label:"最大长度",model:"max",props:{min:0,placeholder:"最大长度"},show(){return o.lenTypeOptions.includes(l.value.type??"")},type:"number"},{label:"校验信息",model:"message",props:{placeholder:"校验信息"},type:"input"}];function m(){const t=l.value;t.isValidator?(delete t.type,delete t.pattern,delete t.len,delete t.min,delete t.max):delete t.validator,n("change",t)}function h(){n("delete")}return(t,a)=>(e.openBlock(),e.createElementBlock("div",f,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(c,(r,_)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_},[!r.show||r.show()?(e.openBlock(),e.createElementBlock("div",V,[e.createElementVNode("div",q,e.toDisplayString(r.label),1),e.createElementVNode("div",k,[e.createVNode(e.unref(g),{"is-property":"",modelValue:l.value[r.model],"onUpdate:modelValue":y=>l.value[r.model]=y,"component-schema":{...r,noFormItem:!0},onChange:m},null,8,["modelValue","onUpdate:modelValue","component-schema"])])])):e.createCommentVNode("",!0)],64))),64)),e.createElementVNode("div",{class:"rule-btn-delete text-md w-24px h-24px rounded-bl-2 color-white absolute right-0 top-0 flex cursor-pointer items-center justify-center transition-all",onClick:h},[e.createVNode(e.unref(v),{name:"icon--epic--delete-outline-rounded"})])]))}});module.exports=w;