epic-designer-dev
Version:
基于vue3的设计器,可视化开发页面表单。在epic-designer的基础上新增了字典选择器
2 lines (1 loc) • 1.42 kB
JavaScript
;const l=require("vue");;/* empty css */require("vuedraggable");const i=require("../../../utils/src/common/string.cjs");require("@vueuse/core");require("../../../hooks/src/store/index.cjs");require("../../../utils/src/manager/pluginManager.cjs");const o=require("element-plus"),q=l.defineComponent({emits:["update:modelValue","change"],props:{modelValue:{default:"",type:String}},setup(c,{attrs:p,emit:s}){const t=l.ref([]);let u="";l.watch(()=>t.value,e=>{console.log("list",e),u=e.filter(r=>r.status==="success").map(r=>r.url).join(","),s("update:modelValue",u),s("change",u)}),l.watch(()=>c.modelValue,e=>{if(u!==e){if(e===""){t.value=[];return}e!==null&&t.value!==null&&(t.value=e.split(",").map(r=>({id:i.getUUID(),name:i.getFileNameByUrl(r),status:"success",url:r})))}},{immediate:!0});const d=(e,r)=>{t.value=r},f=()=>{},m=(e,r,v)=>{t.value=v.map(n=>{var a;return{...n,url:(a=n.response.data)==null?void 0:a.url}})},g=e=>{o.ElMessage.error("上传失败"),console.error(e)},h=l.computed(()=>({...p,onBeforeUpload:f,onError:g,onRemove:d,onSuccess:m,"file-list":t.value}));return()=>l.h("div",null,{default:()=>[l.h(o.ElUpload,h.value,{default:()=>[l.h(o.ElButton,{},{default:()=>[l.h("span",{class:"icon--epic icon--epic--cloud-upload-outlined text-lg",style:{"margin-right":"2px"}}),l.h("span",null,{default:()=>"上传文件"})]})]})]})}});module.exports=q;