snowy-designer
Version:
基于Epic-Designer-Pro版本的设计器,可视化开发页面表单
2 lines (1 loc) • 1.91 kB
JavaScript
;const e=require("vue");;/* empty css */require("radix-vue");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("../../../../base-ui/src/shadch-ui/button/index.cjs");const v=require("@vueuse/core");require("../../../../base-ui/src/shadch-ui/toast/index.cjs");require("vuedraggable");require("../../../../../hooks/src/store/index.cjs");require("lodash");const m=require("../../../../../utils/src/manager/pluginManager.cjs");require("monaco-editor");require("../../../../../utils/src/request/index.cjs");const q=require("./optionItem.vue.cjs"),y={class:""},f=e.defineComponent({__name:"index",props:{dataType:{default:"array"},keyField:{default:"key"},modelValue:{},placeholder:{default:"暂无数据"},tree:{type:Boolean},valueField:{default:"value"}},emits:["update:modelValue"],setup(n,{emit:d}){const r=n,c=d,p=m.pluginManager.getComponent("button"),u=v.useVModel(r,"modelValue",c),l=e.ref([]);e.watch(()=>u.value,()=>{l.value=r.dataType==="object"?Object.keys(u.value??{}).map(t=>({key:t,value:u.value[t]})):u.value??[]},{deep:!0,immediate:!0}),e.provide("tree",r.tree),e.provide("keyField",r.keyField),e.provide("valueField",r.valueField);function i(t){u.value=r.dataType==="object"?Object.fromEntries(t.map(({key:a,value:o})=>[a,o])):t}function s(){const t=e.reactive({[r.keyField]:"",[r.valueField]:""});l.value=[...l.value,t],i(l.value)}return(t,a)=>{var o;return e.openBlock(),e.createElementBlock("div",y,[e.withDirectives(e.createElementVNode("div",{class:"my-2 bg-white py-4 text-center text-gray-400"},e.toDisplayString(t.placeholder),513),[[e.vShow,!((o=e.unref(u))!=null&&o.length)&&t.placeholder]]),e.createVNode(q,{"model-value":l.value,"onUpdate:modelValue":i},null,8,["model-value"]),e.createVNode(e.unref(p),{onClick:s},{default:e.withCtx(()=>a[0]||(a[0]=[e.createTextVNode(" 添加 ")])),_:1})])}}});module.exports=f;