2 lines
2.0 KiB
Java
2 lines
2.0 KiB
Java
import{s as S,bV as B}from"./index-X7Y8jykP.js";import{s as b}from"./_plugin-vue_export-helper-CHgC5LLL-lGy7RumW.js";import{e as j,h as k,K as d,C as m,z as f,f as l,H as x,A as v,Q as V,r as I,c as u,G as L}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const M={class:"file-upload-slot"},N={key:0,class:"accept-tip"},R=j({__name:"JFileUploadSlot",props:{value:{type:String,default:""},uploadUrl:{type:String,required:!0},accept:{type:[String,Array],default:()=>[]}},emits:["update:value"],setup(i,{emit:g}){const s=i,y=g,{createMessage:p}=S(),n=I([]),o=u(()=>!s.accept||Array.isArray(s.accept)&&s.accept.length===0?[]:(Array.isArray(s.accept)?s.accept:s.accept.split(",")).map(e=>e.trim().replace(/^\./,"").toLowerCase()).filter(Boolean)),_=u(()=>o.value.length===0?"":o.value.map(e=>`.${e}`).join(",")),c=u(()=>o.value.join("、"));function h(e){if(o.value.length===0)return!0;const a=e.name,t=a.substring(a.lastIndexOf(".")+1).toLowerCase();return o.value.includes(t)?!0:(p.warning(`不支持该文件格式,请上传 ${o.value.join("、")} 格式的文件`),!1)}function C(e){var a;const{file:t,fileList:r}=e;if(n.value=[...r],t.status==="error"||t.response&&t.response.code===500){p.error(((a=t.response)==null?void 0:a.message)||`${t.name} 上传失败`);return}(t.status==="done"||t.status==="removed")&&w()}function w(){const e=n.value.filter(a=>a.status==="done"&&a.response).map(a=>a.response.message).join(",");y("update:value",e)}return k(()=>s.value,e=>{e||(n.value=[])}),(e,a)=>{const t=d("Icon"),r=d("a-button"),A=B;return f(),m("div",M,[l(A,{action:i.uploadUrl,accept:_.value,"file-list":n.value,multiple:!0,"before-upload":h,onChange:C,onRemove:e.handleRemove},{default:v(()=>[l(r,null,{default:v(()=>[l(t,{icon:"ant-design:upload-outlined"}),a[0]||(a[0]=V("span",{style:{"margin-left":"6px"}},"点击上传文件",-1))]),_:1})]),_:1},8,["action","accept","file-list","onRemove"]),c.value?(f(),m("div",N,"支持格式:"+L(c.value),1)):x("",!0)])}}}),z=b(R,[["__scopeId","data-v-6fa38cd7"]]);export{z as default};
|