UNPKG

form-designer-xinyi

Version:

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

2 lines (1 loc) 15.6 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),u=require("ant-design-vue"),_=require("./index-BXOkp5Wk.cjs"),N=require("./revoke-Bbm2vFx2.cjs"),g=require("./QuestionCircleOutlined-BXZZt1vS.cjs"),C=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),y={class:"mb-2 w-full"},B={class:"flex items-center w-390px"},$=e.createElementVNode("span",{class:"iconfont epic-icon-shanchu1"},null,-1),E=[$],S=e.defineComponent({__name:"actionItem",props:{modelValue:{},fieldOptions:{},triggerOptions:{}},emits:["update:modelValue","delete"],setup(f,{emit:V}){const x=e.inject("designer"),m=V,i=f,t=_.useVModel(i,"modelValue",m),v=e.computed(()=>x.state.checkedNode);console.log("checkedNode",v);const l=e.computed(()=>N.findSchemas([v.value],n=>n.id&&n.id===t.value.field,!0));function d(){m("delete")}function h(a,n){var o;return(o=n.label)==null?void 0:o.toLowerCase().includes(a.toLowerCase())}const p=["文本模板内置函数:","$replace: 子字符串替换,$replace(text, search, replace)","$upper: 转大写,$upper(text)","$lower: 转小写,$lower(text)","$substr: 截取字符串,$substr(text, start, end?)","$nl2br: 换行符转,$nl2br(text)","$trim: 去除首尾空格,$trim(text)","$length: 获取长度,$length(textOrArray)","$br: 返回换行符,$br()","$includes: 判断是否包含子字符串,$includes(field, search)","$today: 获取当前日期,$today()","$dateDiff: 计算日期之间天数,$dateDiff(startDate, endDate, inclusive?)","$get: 获取表单字段值,$get(pathStr, defaultValue?)"];return(a,n)=>(e.openBlock(),e.createElementBlock("div",y,[e.createVNode(e.unref(u.Space),null,{default:e.withCtx(()=>{var o,c;return[e.createVNode(e.unref(u.Select),{class:"w-150px",value:e.unref(t).trigger,"onUpdate:value":n[0]||(n[0]=r=>e.unref(t).trigger=r),options:i.triggerOptions,placeholder:"选择动作"},null,8,["value","options"]),e.createElementVNode("div",B,[e.createVNode(e.unref(u.Select),{"show-search":"","filter-option":h,"allow-clear":"",style:e.normalizeStyle({width:e.unref(t).trigger==="setValue"&&e.unref(t).field?"210px":"100%"}),value:e.unref(t).field,"onUpdate:value":n[1]||(n[1]=r=>e.unref(t).field=r),options:i.fieldOptions,placeholder:"选择字段",onChange:n[2]||(n[2]=r=>e.unref(t).value=void 0)},null,8,["style","value","options"]),e.unref(t).trigger==="setValue"&&e.unref(t).field?(e.openBlock(),e.createBlock(e.unref(_._sfc_main),{key:e.unref(t).field,class:"w-240px ml-2",modelValue:e.unref(t).value,"onUpdate:modelValue":n[3]||(n[3]=r=>e.unref(t).value=r),"component-schema":{...l.value,noFormItem:!0,componentProps:{...l.value.componentProps,defaultValue:void 0,disabled:void 0,hidden:void 0}}},null,8,["modelValue","component-schema"])):e.createCommentVNode("",!0),e.unref(t).trigger==="setCategoryCode"&&((o=l.value)!=null&&o.componentProps)&&((c=l.value)!=null&&c.componentProps.hasOwnProperty("pcode"))?(e.openBlock(),e.createBlock(e.unref(_._sfc_main),{key:e.unref(t).field,class:"w-240px ml-2",modelValue:e.unref(t).value,"onUpdate:modelValue":n[4]||(n[4]=r=>e.unref(t).value=r),"component-schema":{...l.value,noFormItem:!0,type:"textarea",componentProps:{...l.value.componentProps,defaultValue:void 0,disabled:void 0,hidden:void 0}}},null,8,["modelValue","component-schema"])):e.createCommentVNode("",!0),e.unref(t).trigger==="addValue"&&e.unref(t).field&&(e.unref(t).field.split("_")[0]=="checkbox"||e.unref(t).field.split("_")[0]=="xyTextArea"||e.unref(t).field.split("_")[0]=="xyInput")?(e.openBlock(),e.createBlock(e.unref(_._sfc_main),{key:e.unref(t).field,class:"w-240px ml-2",modelValue:e.unref(t).value,"onUpdate:modelValue":n[5]||(n[5]=r=>e.unref(t).value=r),"component-schema":{...l.value,noFormItem:!0,componentProps:{...l.value.componentProps,defaultValue:void 0,disabled:void 0,hidden:void 0}}},null,8,["modelValue","component-schema"])):e.createCommentVNode("",!0),e.unref(t).trigger!=="setValue"?(e.openBlock(),e.createBlock(e.unref(u.Checkbox),{key:3,checked:e.unref(t).reverseExecute,"onUpdate:checked":n[6]||(n[6]=r=>e.unref(t).reverseExecute=r),class:"ml-2 w-120px"},{default:e.withCtx(()=>[e.createTextVNode("否则不")]),_:1},8,["checked"])):e.unref(t).trigger==="setValue"&&e.unref(t).field?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createVNode(e.unref(u.Popover),null,{content:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(p,(r,s)=>e.createElementVNode("div",null,e.toDisplayString(s+1+"."+r),1)),64))]),default:e.withCtx(()=>[e.createVNode(e.unref(g.QuestionCircleOutlined),{class:"ant-form-item__suffix"})]),_:1}),e.createVNode(e.unref(u.Checkbox),{checked:e.unref(t).arrowInitExecute,"onUpdate:checked":n[7]||(n[7]=r=>e.unref(t).arrowInitExecute=r),class:"ml-2 w-120px"},{default:e.withCtx(()=>[e.createTextVNode("允许初始执行")]),_:1},8,["checked"])],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"w-28px h-28px cursor-pointer bg-red-100 text-red-400 hover:bg-red-400 border-solid border-1px border-red-300 rounded-full flex justify-center items-center hover:text-white",onClick:d},E)]}),_:1})]))}}),O=e.createElementVNode("span",{class:"iconfont epic-icon-tianjia"},null,-1),D=e.defineComponent({__name:"actionEdit",props:{modelValue:{}},emits:["update:modelValue"],setup(f,{emit:V}){const x=e.inject("designer"),m=e.computed(()=>x.state.checkedNode),i=e.computed(()=>{const a=N.findSchemas([m.value],o=>{var c,r;return o.type==="form"&&(((c=o.componentProps)==null?void 0:c.name)??o.name===((r=m.value)==null?void 0:r.componentProps.name))},!0);return N.findSchemas((a==null?void 0:a.children)??[],o=>!!o.input||["text","downLoad","card"].includes(o.type),!1,o=>o.type!=="subform").map(o=>{var c;return{label:["text"].includes(o.type)?(c=o.componentProps)==null?void 0:c.defaultValue:o.label,value:o.id}}).reverse()}),t=[{label:"隐藏",value:"hide"},{label:"显示",value:"show"},{label:"必填",value:"required"},{label:"非必填",value:"notRequired"},{label:"只读",value:"readonly"},{label:"可写",value:"readWrite"},{label:"禁用",value:"disabled"},{label:"启用",value:"enabled"},{label:"设置值",value:"setValue"},{label:"设置分类编码",value:"setCategoryCode"},{label:"追加值",value:"addValue"}],v=f,l=V,d=_.useVModel(v,"modelValue",l);function h(a){d.value.push({trigger:a})}function p(a){d.value.splice(a,1)}return(a,n)=>(e.openBlock(),e.createElementBlock("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d),(o,c)=>(e.openBlock(),e.createBlock(S,{modelValue:e.unref(d)[c],"onUpdate:modelValue":r=>e.unref(d)[c]=r,key:c,fieldOptions:i.value,triggerOptions:t,onDelete:r=>p(c)},null,8,["modelValue","onUpdate:modelValue","fieldOptions","onDelete"]))),128)),e.createVNode(e.unref(u.Dropdown),null,{overlay:e.withCtx(()=>[e.createVNode(e.unref(u.Menu),null,{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(t,o=>e.createVNode(e.unref(u.MenuItem),{onClick:c=>h(o.value),key:o.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]),_:2},1032,["onClick"])),64))]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("span",{class:"ant-dropdown-link cursor-pointer text-blue-500",onClick:n[0]||(n[0]=e.withModifiers(()=>{},["prevent"]))},[O,e.createTextVNode(" 添加动作 ")])]),_:1})]))}}),U={class:"mb-4"},P=e.createElementVNode("span",{class:"iconfont epic-icon-shanchu1"},null,-1),T=[P],I=e.defineComponent({__name:"conditionItem",props:{modelValue:{},fieldOptions:{}},emits:["update:modelValue","delete"],setup(f,{emit:V}){const x=e.inject("designer"),m=V,i=f,t=_.useVModel(i,"modelValue",m),v=e.computed(()=>x.state.checkedNode),l=e.computed(()=>N.findSchemas([v.value],k=>k.field===t.value.field,!0)),d=[{label:"等于",value:"eq"},{label:"不等于",value:"neq"}],h=[{label:"大于",value:"gt"},{label:"大于等于",value:"gte"},{label:"小于",value:"lt"},{label:"小于等于",value:"lte"}],p=[{label:"包含",value:"in"},{label:"不包含",value:"nin"}],a=[{label:"开头是",value:"startsWith"},{label:"结尾是",value:"endsWith"},{label:"开头不是",value:"notStartsWith"},{label:"结尾不是",value:"notEndsWith"}],n=[...d.map(s=>s.value),...h.map(s=>s.value),...p.map(s=>s.value)],o=[...a.map(s=>s.value)],c=e.computed(()=>{const s=[{label:"为空",value:"null"},{label:"非空",value:"notNull"},...a];return["input","textarea","password","select","checkbox","JSelectMultiple","xyInput","xyTextArea","JAreaSelect"].includes(l.value.type)&&s.unshift(...p),["number"].includes(l.value.type)&&s.unshift(...h),["xyTextArea","input","input","number","textarea","password","radio","checkbox","select","slider","time","date","cascader","switch","color-picker","JSelectDept","JSelectMultiple","JDictSelectTag","classifiedDictionary","selectUser","xyRadio"].includes(l.value.type)&&s.unshift(...d),s});e.watch(()=>c.value,s=>{t.value.operator=s[0].value});function r(){m("delete")}return(s,k)=>(e.openBlock(),e.createElementBlock("div",U,[e.createVNode(e.unref(u.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(u.Select),{class:"w-180px",value:e.unref(t).field,"onUpdate:value":k[0]||(k[0]=w=>e.unref(t).field=w),options:i.fieldOptions,placeholder:"选择字段"},null,8,["value","options"]),e.unref(t).field?(e.openBlock(),e.createBlock(e.unref(u.Select),{key:0,value:e.unref(t).operator,"onUpdate:value":k[1]||(k[1]=w=>e.unref(t).operator=w),class:"w-100px",options:c.value,placeholder:"选择判断条件"},null,8,["value","options"])):e.createCommentVNode("",!0),e.unref(t).field&&e.unref(t).operator&&n.includes(e.unref(t).operator)?(e.openBlock(),e.createBlock(e.unref(_._sfc_main),{key:1,modelValue:e.unref(t).value,"onUpdate:modelValue":k[2]||(k[2]=w=>e.unref(t).value=w),"component-schema":{...l.value,noFormItem:!0,componentProps:{...l.value.componentProps,defaultValue:void 0,disabled:void 0,hidden:void 0}}},null,8,["modelValue","component-schema"])):e.createCommentVNode("",!0),e.unref(t).field&&e.unref(t).operator&&o.includes(e.unref(t).operator)?(e.openBlock(),e.createBlock(e.unref(_._sfc_main),{key:2,modelValue:e.unref(t).value,"onUpdate:modelValue":k[3]||(k[3]=w=>e.unref(t).value=w),"component-schema":{...l.value,noFormItem:!0,type:"textarea",componentProps:{...l.value.componentProps,defaultValue:void 0,disabled:void 0,hidden:void 0}}},null,8,["modelValue","component-schema"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"w-28px h-28px cursor-pointer bg-red-100 text-red-400 hover:bg-red-400 border-solid border-1px border-red-300 rounded-full flex justify-center items-center hover:text-white",onClick:r},T)]),_:1})]))}}),b=f=>(e.pushScopeId("data-v-9db78388"),f=f(),e.popScopeId(),f),j={class:"flex"},F={key:0,class:"logical-operator"},L=b(()=>e.createElementVNode("div",{class:"logical-operator__line"},null,-1)),q={class:"flex-1"},A=b(()=>e.createElementVNode("span",{class:"iconfont epic-icon-tianjia mr-1"},null,-1)),M=e.defineComponent({__name:"conditionEdit",props:{modelValue:{}},emits:["update:modelValue"],setup(f,{emit:V}){const x=e.inject("designer"),m=e.computed(()=>x.state.checkedNode),i=e.computed(()=>{var p;return N.getFormSchemas([m.value],(p=m.value)==null?void 0:p.componentProps.name).map(a=>({label:a.label,value:a.field})).reverse()}),t=f,v=V,l=_.useVModel(t,"modelValue",v);function d(){l.value.conditions.push({})}function h(p){l.value.conditions.splice(p,1)}return(p,a)=>(e.openBlock(),e.createElementBlock("div",j,[e.unref(l).conditions.length?(e.openBlock(),e.createElementBlock("div",F,[L,e.createVNode(e.unref(u.Switch),{checked:e.unref(l).operator,"onUpdate:checked":a[0]||(a[0]=n=>e.unref(l).operator=n),"checked-children":"且",checkedValue:"and",unCheckedValue:"or","un-checked-children":"或"},null,8,["checked"])])):e.createCommentVNode("",!0),e.createElementVNode("div",q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).conditions,(n,o)=>(e.openBlock(),e.createBlock(I,{modelValue:e.unref(l).conditions[o],"onUpdate:modelValue":c=>e.unref(l).conditions[o]=c,key:o,fieldOptions:i.value,onDelete:c=>h(o)},null,8,["modelValue","onUpdate:modelValue","fieldOptions","onDelete"]))),128)),e.createVNode(e.unref(u.Button),{class:"w-100%",type:"dashed",onClick:d},{icon:e.withCtx(()=>[A]),default:e.withCtx(()=>[e.createTextVNode(" 添加条件 ")]),_:1})])]))}}),R=C._export_sfc(M,[["__scopeId","data-v-9db78388"]]),J={class:"epic-drawer-container h-full"},W={class:"h-full flex flex-col"},z={class:"px-16px"},Q=e.createElementVNode("span",{class:"iconfont epic-icon-tianjia mr-1"},null,-1),H={class:"mt-2 flex-1 overflow-auto px-16px"},G=["onClick"],K=e.createElementVNode("span",{class:"iconfont epic-icon-tianjia"},null,-1),X=[K],Y={class:"epic-modal-footer"},Z=e.defineComponent({__name:"drawer",emits:["ok"],setup(f,{expose:V,emit:x}){const m=x,i=e.ref(!1),t=e.ref([]);function v(a=[]){t.value=a,i.value=!0}function l(){t.value.push({actions:[],condition:{conditions:[],operator:"and"}})}function d(a){t.value.splice(a,1)}function h(){i.value=!1}function p(){m("ok",t.value),h()}return V({showDrawer:v}),(a,n)=>(e.openBlock(),e.createBlock(e.unref(u.Drawer),{class:"epic-drawer-form-logic",width:"650px",title:"逻辑规则",open:i.value,"onUpdate:open":n[0]||(n[0]=o=>i.value=o)},{default:e.withCtx(()=>[e.createElementVNode("div",J,[e.createElementVNode("div",W,[e.createElementVNode("div",z,[e.createVNode(e.unref(u.Button),{class:"w-full",type:"primary",onClick:l},{icon:e.withCtx(()=>[Q]),default:e.withCtx(()=>[e.createTextVNode(" 添加逻辑规则 ")]),_:1})]),e.createElementVNode("div",H,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(o,c)=>(e.openBlock(),e.createBlock(e.unref(u.Card),{key:c,class:"mt-2",bodyStyle:{padding:"16px"}},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"absolute top-8px right-8px cursor-pointer rounded-full w-24px h-24px text-16px flex items-center justify-center hover:bg-gray-100 rotate-45",onClick:r=>d(c)},X,8,G),e.createVNode(e.unref(u.Divider),null,{default:e.withCtx(()=>[e.createTextVNode("当满足以下条件时")]),_:1}),e.createVNode(R,{modelValue:o.condition,"onUpdate:modelValue":r=>o.condition=r},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(u.Divider),null,{default:e.withCtx(()=>[e.createTextVNode("则执行")]),_:1}),e.createVNode(D,{modelValue:o.actions,"onUpdate:modelValue":r=>o.actions=r},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128))])])]),e.createElementVNode("div",Y,[e.createVNode(e.unref(u.Space),{align:"end"},{default:e.withCtx(()=>[e.createVNode(e.unref(u.Button),{onClick:h},{default:e.withCtx(()=>[e.createTextVNode("关闭")]),_:1}),e.createVNode(e.unref(u.Button),{type:"primary",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})])]),_:1},8,["open"]))}}),ee=e.createElementVNode("span",{class:"iconfont epic-icon-shezhi mr-1"},null,-1),te=e.defineComponent({__name:"formLogic",props:{modelValue:{}},emits:["update:modelValue"],setup(f,{emit:V}){const x=e.inject("pageSchema"),m=f,i=e.ref(),t=V;function v(){var d;(d=i.value)==null||d.showDrawer(m.modelValue)}function l(d){t("update:modelValue",d),x.logicRules=d}return(d,h)=>{var p;return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(u.Badge),{count:((p=m.modelValue)==null?void 0:p.length)??0},{default:e.withCtx(()=>[e.createVNode(e.unref(u.Button),{onClick:v},{icon:e.withCtx(()=>[ee]),default:e.withCtx(()=>[e.createTextVNode(" 配置")]),_:1})]),_:1},8,["count"]),e.createVNode(Z,{onOk:l,ref_key:"drawerRef",ref:i},null,512)])}}});exports.default=te;