snowy-designer
Version:
基于Epic-Designer-Pro版本的设计器,可视化开发页面表单
2 lines (1 loc) • 4.17 kB
JavaScript
;const e=require("vue");;/* empty css */const V=require("../../../../base-ui/src/components/icon/icon.vue.cjs"),x=require("../../../../base-ui/src/shadch-ui/accordion/Accordion.vue2.cjs"),C=require("../../../../base-ui/src/shadch-ui/accordion/AccordionContent.vue2.cjs"),N=require("../../../../base-ui/src/shadch-ui/accordion/AccordionItem.vue2.cjs"),w=require("../../../../base-ui/src/shadch-ui/accordion/AccordionTrigger.vue2.cjs");require("radix-vue");require("../../../../base-ui/src/shadch-ui/button/index.cjs");require("clsx");require("tailwind-merge");require("lucide-vue-next");const k=require("@vueuse/core"),b=require("../../../../base-ui/src/shadch-ui/input/InputSearch.vue2.cjs"),B=require("../../../../base-ui/src/shadch-ui/scroll-area/ScrollArea.vue.cjs");require("../../../../base-ui/src/shadch-ui/toast/index.cjs");const A=require("../../../../base-ui/src/components/empty/empty.vue.cjs"),i=require("../../../../../utils/src/common/data.cjs");require("../../../../../hooks/src/store/index.cjs");require("lodash");const s=require("../../../../../utils/src/manager/pluginManager.cjs");require("monaco-editor");require("../../../../../utils/src/request/index.cjs");const E=require("vuedraggable"),I={class:"epic-component-view flex flex-col"},M={class:"epic-search-box px-4 py-1"},T=["onClick"],U={class:"mt-0.5 truncate"},j=e.defineComponent({__name:"index",setup(D){const p=e.inject("pageSchema"),d=e.inject("designer"),v=e.inject("revoke"),h=e.inject("designerProps"),y=s.pluginManager.getComponentSchemaGroups(),c=e.ref(""),o=k.useStorage("epic-componet-collapse-names",[]),u=e.computed(()=>y.value.map(r=>({title:r.title,list:r.list.filter(t=>{var n;return((n=t.label)==null?void 0:n.includes(c.value))&&(!h.value.formMode||t.type!=="form")})})).filter(r=>r.list.length)),q=()=>{const l=new Set(o.value);u.value.forEach(r=>l.add(r.title)),o.value=[...l]};e.watch(()=>c.value,l=>{l&&q()});function S(l){var m,f,g;const r=i.findSchemaInfoById(p.schemas,((m=d.state.selectedNode)==null?void 0:m.id)??"root");if(!r)return!1;let{index:t,schema:n,list:a}=r;n.children&&!((g=(f=s.pluginManager.getComponentConfingByType(n.type))==null?void 0:f.editConstraints)!=null&&g.childImmovable)&&(a=n.children,t=n.children.length-1);const _=i.generateNewSchema(l,p.schemas);a.splice(t+1,0,_),d.setSelectedNode(_),v.push("插入组件")}return(l,r)=>(e.openBlock(),e.createElementBlock("div",I,[e.createElementVNode("div",M,[e.createVNode(e.unref(b),{modelValue:c.value,"onUpdate:modelValue":r[0]||(r[0]=t=>c.value=t),placeholder:"搜索组件"},null,8,["modelValue"])]),e.createVNode(e.unref(B),{class:"box-border h-full flex-1 overflow-auto px-4 py-2"},{default:e.withCtx(()=>[e.createVNode(e.unref(x),{modelValue:e.unref(o),"onUpdate:modelValue":r[1]||(r[1]=t=>e.isRef(o)?o.value=t:null),type:"multiple",class:"w-full",collapsible:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,t=>(e.openBlock(),e.createBlock(e.unref(N),{key:t.title,value:t.title},{default:e.withCtx(()=>[e.createVNode(e.unref(w),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]),_:2},1024),e.createVNode(e.unref(C),null,{default:e.withCtx(()=>[e.createVNode(e.unref(E),e.mergeProps({modelValue:t.list,"onUpdate:modelValue":n=>t.list=n,ref_for:!0},{group:{name:"edit-draggable",pull:"clone",put:!1},sort:!1,animation:180,ghostClass:"moving"},{clone:e.unref(i.generateNewSchema),"item-key":"id",class:"grid grid-cols-[1fr_1fr_1fr] gap-2 py-2"}),{item:e.withCtx(({element:n})=>[e.createElementVNode("div",{class:"epic-source-componet-item py-3 text-center",onClick:a=>S(n)},[e.createVNode(e.unref(V),{class:"epic-component-icon",name:e.unref(s.pluginManager).getComponentConfingByType(n.type).icon??""},null,8,["name"]),e.createElementVNode("div",U,e.toDisplayString(n.label),1)],8,T)]),_:2},1040,["modelValue","onUpdate:modelValue","clone"])]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),e.withDirectives(e.createVNode(e.unref(A),{description:"没有查询到的组件"},null,512),[[e.vShow,!u.value.length]])]),_:1})]))}});module.exports=j;