1 |
- import{d as K,r as F,b as Q,e as R,a5 as le,q as W,bn as b,f as e,k as g,ah as z,bo as H,a9 as oe,j as _,x as q,ak as J,J as X,N as se,w as $,aR as ne,g as P,h as ue,ac as ie,l as re,m as ce,a8 as de,bp as pe,P as Y}from"./index-fc4c818c-1740736449183.js";import{u as fe,b as me,e as ge,g as ye}from"./catchData-45bdcc01-1740736449183.js";import{v as Z,w as ve,x as be,y as Ae,z as he}from"./index-53edf10d-1740736449183.js";import{C as Fe,g as L,a as ee,o as Ce}from"./index-18bc3c7f-1740736449183.js";import{i as Ie}from"./index-6746fd97-1740736449183.js";import{N as Be}from"./Scrollbar-e2d8d626-1740736449183.js";import{N as _e}from"./Cascader-3642e9ed-1740736449183.js";const Se="_uploadModal_q67y7_1",we="_mb12_q67y7_4",Ee="_formModal_q67y7_7",ke="_formSpace_q67y7_11",Ue="_previewModal_q67y7_14",Ne="_image_q67y7_26",De="_titleType_q67y7_35",Me="_iconUploadDelete_q67y7_43",Ge="_commonType_q67y7_58",Te="_changeCover_q67y7_77",xe="_formItem_q67y7_94",Oe="_btnGroup_q67y7_119",Re="_uploadFile_q67y7_126",qe="_uploadBtn_q67y7_133",je="_iconUploadAdd_q67y7_150",Pe="_uploadCover_q67y7_155",v={uploadModal:Se,mb12:we,formModal:Ee,formSpace:ke,previewModal:Ue,image:Ne,titleType:De,iconUploadDelete:Me,commonType:Ge,changeCover:Te,formItem:xe,btnGroup:Oe,uploadFile:Re,uploadBtn:qe,iconUploadAdd:je,uploadCover:Pe},Le="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAA3xJREFUaEPdmk1oE1EQgL/8qQVRVATxoCIqRURBBIsHKQZqTqJgIR4EPUgbf+6Fpoq2hd79IUWwggcDFRRPsRApHkRBBEVEVEQ9iCAqilBt/syE3bJds9l922xa38Ke9r2Z+d6bmZ15uyE0u0It4BEdUUNPEagEqbPZQG3AemAtsNy4F9kApoEfxv0J+ABMNQuyGUBLgY3ABmCNT8M+A++Bd8AvnzJq0+YCtATYCWwFwnMxwjK3DLwEngK//cj0AyTxsB3YAcT8KPUwpwA8A54DEneeL1WgFcB+YJlnDXMb+BO4B3z3KkYFaB0QD3BXnGyW3coDH71AeQUS99rtRWCAYx4bbthQhReghQBjQrhCuQGJmyUCXHU/onON3K8RkCSAg/MQM26QElN3nBKFE5Ck5sMtzGZuEPbnkv1u1UvpTkDywtylqqXF458YL+BZausBSQVwZAG6mn29xPVu2iuKekB7qtu5rcWr7VfdC+ChdbIdSArNpGpt1tnZuTKZTG4ZHx9/k8/nv6pYF4/HV3V3d2/OZrOvJycnv6nMBaT2y1oLWjuQ1GgdKkIFZmJi4mwsFmsrFot/BgYGroyMjLzyIqOvr699cHDwZDQaXVwoFKa6urou+IB6ZNR8NZV2oAOqLUAmk+no6ek5bgKUSqXpdDp92Q1KYIaGhk5FIpGZfimTyVxLpVLy8lS5pPW4a06wAklzdlRFkowVl8nlcudklb1C1YOR3U0kEudVXdbQecNsEq1A7cBeVSAZX89Ap51SGatgy4Nq7Nfc3Aq0D9ikIGTWUC+GehnjU//b6mbctwMdAlb7FFib1shgeW6PGa/x5sGmL9WG87Yd6BhgP9DwIGv2EAeoYigUqoTD4ZkOt4kwYoAcvFy3AonrnVC23mFCPSjr0CbDmKKvyhGZGUOycjOptxlgBtSZSCRinsnVxJbL5UJ/f/8lt7Tuw4YxoBAo0PDw8Gmrm4mRpVKpmE6nLwYNpJ3LyeIFlhTEzSqVSsjqfk2Oo3+SggBpl7a1e7FqV/poV5xKHM1r+zA6OjrW29sr/Y3K5dg+iBDtGjztWnDZJa0OSQRIu2MsgdLqoFGAtDsKFiitDuvN94BWn1NMKK0+eC0kKNevd/ZDErdyQ6uPxiasVp/1TSitfrywuqU2v8bYY02bn5fqJREtfi9zy47/9Q+AbnCBP/8LKzUIU0rUSHAAAAAASUVORK5CYII=",Ve="_uploadFile_t4tbc_1",Ke="_uploadBtn_t4tbc_14",Qe="_iconUploadAdd_t4tbc_33",$e="_uploadHeader_t4tbc_38",Ye="_headerItem_t4tbc_42",Ze="_uploadContainer_t4tbc_59",We="_imgCropperSection_t4tbc_85",ze="_uploadBtnGroup_t4tbc_92",B={uploadFile:Ve,uploadBtn:Ke,iconUploadAdd:Qe,uploadHeader:$e,headerItem:Ye,uploadContainer:Ze,imgCropperSection:We,uploadBtnGroup:ze},He=K({name:"upload-file",props:{img:{type:String,default:""},accept:{type:String,default:".jpg,.png,.jpeg,.gif"},bucketName:{type:String,default:"gyt"},path:{type:String,default:""},fileName:{type:String,default:""},options:{type:Object,default:()=>({viewMode:0,autoCrop:!0,enlarge:1,autoCropWidth:640,autoCropHeight:360,fixedBox:!1,previewsCircle:!0,title:"上传图片"})}},emits:["close","confirm"],setup(s,{emit:A}){const I=F(),S="https://".concat(s.bucketName,".ks3-cn-beijing.ksyuncs.com/"),w=Q(),f=F(!1),p=F(!1),m=F(),h=F({img:"",autoCrop:!0,autoCropWidth:180,autoCropHeight:180,fixedBox:!0,full:!1,enlarge:1,previewsCircle:!0,centerBox:!0,outputType:"png",title:"修改头像",name:null}),y=R({myCropper:null,cropperReady:!1}),E=async t=>{const a=t.file;let r=!0;if((a.type.includes("image")?b.IMG:a.type.includes("audio")?b.SONG:b.VIDEO)!==b.IMG)return w.error("上传文件格式错误"),!1;const M=10;return r=a.file.size/1024/1024<M,r?(N(a.file,T=>{U(T,a.file.name)}),!1):(w.error("图片大小不能超过".concat(M,"M")),!1)},N=async(t,a)=>{const r=new FileReader;r.addEventListener("load",()=>a(r.result)),r.readAsDataURL(t)},U=(t,a)=>{const r=Object.assign({},s.options,{img:t,name:a});f.value=!0,h.value=Object.assign({},h.value,r),J(()=>{G()})},G=()=>{try{y.cropperReady=!0,y.myCropper=new Fe(I.value,{viewMode:1,dragMode:"move",aspectRatio:h.value.autoCropWidth/h.value.autoCropHeight,initialAspectRatio:1,autoCropArea:1,cropBoxMovable:!0,cropBoxResizable:!0,background:!0,movable:!1,modal:!0,preview:".before",ready:()=>{y.cropperReady=!1}})}catch(t){}},d=()=>{y.myCropper.getCroppedCanvas({imageSmoothingQuality:"high"}).toBlob(t=>{p.value=!0,l(t)})},l=async t=>{try{const a="".concat(s.path).concat(s.fileName||new Date().getTime()+".png"),r={filename:a,bucketName:s.bucketName,postData:{filename:a,acl:"public-read",key:a}},{data:D}=await L(r),M={policy:D.policy,signature:D.signature,acl:"public-read",key:a,KSSAccessKeyId:D.kssAccessKeyId,name:a,file:t},T=await ee(S,M);A("confirm",T),A("close")}catch(a){}p.value=!1};return le(()=>s.img,()=>{s.img&&V(s.img)===b.IMG&&U(s.img)}),W(()=>{s.img&&V(s.img)===b.IMG&&U(s.img)}),()=>e("div",{class:B.uploadFile},[e("div",{class:B.uploadHeader},[e("div",{class:B.headerItem},[g("上传封面")])]),f.value?e("div",{class:B.uploadContainer},[e(oe,{show:y.cropperReady},{default:()=>{var t,a,r;return[e("div",{class:B.imgCropperSection},[((t=h.value)==null?void 0:t.img)&&e("img",{ref:I,src:(a=h.value)==null?void 0:a.img,style:{opacity:(r=y.myCropper)!=null&&r.ready?"1":"0"},alt:""},null)])]}})]):e("div",{class:B.uploadContainer},[e(z,{ref:m,accept:s.accept,multiple:!1,max:1,showFileList:!1,showPreviewButton:!0,onBeforeUpload:t=>E(t)},{default:()=>[e(H,null,{default:()=>[e("div",{class:B.uploadBtn},[e("img",{src:Ie,class:B.iconUploadAdd},null),e("p",null,[g("点击或将图片拖至此区域")]),e("span",null,[g("(建议比例16:9)")])])]})]})]),e("div",{class:B.uploadBtnGroup},[f.value?e(_,{type:"default",onClick:()=>{h.value.img="",f.value=!1}},{default:()=>[g("重新选择")]}):e("span",null,null),e(q,null,{default:()=>[e(_,{type:"default",onClick:()=>A("close")},{default:()=>[g("取消")]}),e(_,{type:"primary",onClick:()=>d(),disabled:!f.value,loading:p.value},{default:()=>[g("保存封面")]})]})])])}});function Je(s){return typeof s=="function"||Object.prototype.toString.call(s)==="[object Object]"&&!de(s)}const V=s=>s?(s==null?void 0:s.indexOf(".mp3"))>-1?b.SONG:(s==null?void 0:s.indexOf(".mp4"))>-1?b.VIDEO:(s==null?void 0:s.indexOf(".ppt"))>-1?b.PPT:b.IMG:"",ct=K({name:"upload-modal",props:{list:{type:Array,default:()=>[]},showDelete:{type:Boolean,default:!1},editStatus:{type:Boolean,default:!0}},emits:["close","confirm","editAll"],setup(s,{emit:A}){const I=fe(),S=F(),w=Q(),f=F([]),p=R({list:[],uploading:!1,uploadUrl:"",name:"",instrumentIds:[]}),m=R({uploadCoverStatus:!1,uploadType:"",uploadImg:null,uploadIndex:0}),h=d=>{let l=Z;switch(d){case"IMG":l=Z;break;case"VIDEO":l=he;break;case"SONG":l=Ae;break;case"MUSIC":l=be;break;case"PPT":l=ve;break}return l},y=async()=>{var d;(d=S.value)==null||d.validate(async l=>{if(l){J(pe);return}p.uploading=!0;try{const t=[];if(p.list.forEach(a=>{var r;t.push({instrumentIds:a.instrumentIds.join(","),openFlag:a.openFlag,coverImg:a.coverImg,name:a.name,tagIds:(r=a.tagIds)==null?void 0:r.join(","),type:a.type,enableFlag:1,content:a.content,id:a.id||null})}),N.value){if(s.editStatus)A("editAll",t);else{const{data:a}=await me(t);w.success("保存成功"),p.list=[],A("close",!0),A("confirm",a)}p.list=[]}else await ge(t),w.success("保存成功"),p.list=[],A("close",!0),A("confirm")}catch(t){}p.uploading=!1})},E=d=>{p.list.splice(d,1)},N=X(()=>s.list.length>0),U=async()=>{const d=await ye({page:1,rows:1e3}),l=d.data.rows||[];d.code===200&&Array.isArray(l)&&(f.value=l.map(t=>({label:t.name,value:t.id})))};W(async()=>{await I.getSubjects(),await U();const d=s.list||[],l=[];d.forEach(t=>{var a;l.push({instrumentIds:t.instrumentIds?t.instrumentIds.split(",").map(r=>r):[],openFlag:t.openFlag,coverImg:t.coverImg,name:t.title,type:t.type,sourceFrom:t.sourceFrom,enableFlag:t.enableFlag,content:t.content,tagIds:(a=t.tagIds)==null?void 0:a.split(","),id:t.id})}),p.list=l||[]});const G=(d,l)=>{const t=[];l.map(a=>{Array.isArray(a.instruments)&&a.instruments.forEach(r=>{t.push(r.value)})}),d.instrumentIds=t};return()=>{let d;return e("div",{class:v.uploadModal},[e(Be,{style:{"max-height":"55vh"}},{default:()=>[e(se,{ref:S,labelPlacement:"left",labelWidth:120,model:p,class:v.formModal},{default:()=>[e(q,{class:v.formSpace},Je(d=p.list.map((l,t)=>e("div",{class:v.formItem,key:t},[e("div",{class:v.previewModal},[e($,{class:[v.titleType],src:h(l.type),previewDisabled:!0,objectFit:"cover"},null),(!N.value||s.showDelete)&&e("img",{class:[v.iconUploadDelete],src:Le,onClick:()=>E(t)},null),e($,{class:[v.cover,v.image],lazy:!0,previewDisabled:!0,src:l.coverImg,objectFit:"cover"},null),e("div",{class:v.commonType},[l.type!=="IMG"?e(_,{class:v.changeCover,type:"default",bordered:!1,onClick:()=>{m.uploadIndex=t,m.uploadImg=l.coverImg,m.uploadType=l.type,m.uploadCoverStatus=!0}},{default:()=>[g("更换封面")]}):e("span",null,null),e("div",null,[g("是否公开"),e(ne,{size:"small",value:l.openFlag,"onUpdate:value":a=>l.openFlag=a,disabled:l.sourceFrom==="TEACHER"&&l.type==="MUSIC"},null)])])]),e(P,{showFeedback:!1,path:"list.".concat(t,".name"),rule:[{required:!0,message:"请输入资源名称",trigger:["input","blur"]}]},{default:()=>[e(ue,{value:l.name,"onUpdate:value":a=>l.name=a,placeholder:"请输入资源名称",maxlength:25,clearable:!0},null)]}),e(P,{class:v.mb12,path:"list[".concat(t,"].instrumentIds"),showFeedback:!1,rule:[{required:!0,message:"请选择资源可用乐器",trigger:"change",type:"array"}]},{default:()=>[e(_e,{value:l.instrumentIds,"onUpdate:value":a=>l.instrumentIds=a,placeholder:"请选择资源可用乐器(可多选)",options:I.getEnableSubjects,checkStrategy:"child",showPath:!1,childrenField:"instruments",expandTrigger:"hover",labelField:"name",valueField:"id",clearable:!0,filterable:!0,multiple:!0,maxTagCount:"responsive"},{action:()=>e(_,{text:!0,style:" --n-width: 100% ",onClick:()=>G(l,I.getEnableSubjects)},{default:()=>[g("全选")]})})]}),e(P,{path:"list[".concat(t,"].tagIds"),showFeedback:!1},{default:()=>[e(ie,{placeholder:"请选择资源标签(最多选择3个)",options:f.value,clearable:!0,filterable:!0,multiple:!0,maxTagCount:"responsive",value:l.tagIds,"onUpdate:value":a=>{a.length>3?(l.tagIds=a.slice(0,3),w.info("最多选择3个标签")):l.tagIds=a}},null)]})])))?d:{default:()=>[d]})]})]}),e(q,{class:v.btnGroup,justify:"center"},{default:()=>[e(_,{round:!0,onClick:()=>A("close")},{default:()=>[s.editStatus?"取消":"上一步"]}),e(_,{round:!0,type:"primary",loading:p.uploading,disabled:p.list.length===0,onClick:y},{default:()=>[g("确定")]})]}),e(re,{maskClosable:ce,show:m.uploadCoverStatus,"onUpdate:show":l=>m.uploadCoverStatus=l,preset:"card",showIcon:!1,class:["modalTitle ",v.uploadCover],blockScroll:!1},{default:()=>[e(He,{img:m.uploadImg,onClose:()=>m.uploadCoverStatus=!1,onConfirm:l=>{m.uploadType==="IMG"&&(p.list[m.uploadIndex].content=l),p.list[m.uploadIndex].coverImg=l}},null)]})])}}}),Xe="_saveModal_ulplg_1",et="_uploadBtn_ulplg_25",tt="_iconUploadAdd_ulplg_47",at="_btnGroup_ulplg_57",O={saveModal:Xe,uploadBtn:et,iconUploadAdd:tt,btnGroup:at},dt=K({name:"save-modal",props:{fileList:{type:String,default:""},imageList:{type:Array,default:()=>[]},accept:{type:String,default:".jpg,.png,.jpeg,.gif"},showType:{type:String,default:"default"},showFileList:{type:Boolean,default:!0},max:{type:Number,default:1},multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},bucketName:{type:String,default:"gyt"},directoryDnd:{type:Boolean,default:!1},path:{type:String,default:""},fileName:{type:String,default:""}},emits:["close","confrim"],setup(s,{emit:A}){const I="https://".concat(s.bucketName,".ks3-cn-beijing.ksyuncs.com/"),S=Q(),w=F(!1),f=F(!1),p=F(),m=F(),h=R([]),y=F([]),E=F([]);function N(o){return o.slice((o.lastIndexOf(".")-1>>>0)+2)}function U(o,n){const i=N(o).toLowerCase();return n.includes(i)}const G=async o=>{const n=o.file;let i=!0;const u=["jpg","jpeg","png","mp4","mp3"];if(!U(n.file.name,u))return S.error("文件格式不支持"),!1;const c=n.type.includes("image")?b.IMG:n.type.includes("audio")?b.SONG:n.type.includes("video")?b.VIDEO:n.type.includes("vnd.openxmlformats-officedocument.presentationml.presentation")||n.type.includes("vnd.ms-powerpoint")?b.PPT:"other";if(c==="other")return S.error("文件格式不支持"),!1;const C=c==="IMG"?2:c==="SONG"?20:500;if(C&&(i=n.file.size/1024/1024<C,!i)){const k=c==="IMG"?"图片":c==="SONG"?"音频":"视频";return S.error("".concat(k,"大小不能超过").concat(C,"M")),!1}if(!i)return i;try{f.value=!0;const k=n.file.name,te=k.slice(k.lastIndexOf(".")),x="".concat(s.path).concat(Date.now()+n.id+te),ae={filename:x,bucketName:s.bucketName,postData:{filename:x,acl:"public-read",key:x,unknowValueField:[]}},{data:j}=await L(ae);h.push({id:n.id,tempFiileBuffer:n.file,policy:j.policy,signature:j.signature,acl:"public-read",key:x,KSSAccessKeyId:j.kssAccessKeyId,name:x})}catch(k){return f.value=!1,!1}return!0},d=o=>{l(o)},l=async o=>{console.log(o,"onFinishAfter");const n=h.find(c=>c.id==o.file.id),i=V(o.file.url);let u="";i==="IMG"?u=o.file.url:i==="SONG"?u=Y.SONG_DEFAULT_COVER:i==="PPT"?u=Y.PPT_DEFAULT_COVER:i==="VIDEO"&&(u=await a(n.tempFiileBuffer)),E.value.push({coverImg:u,content:o.file.url,id:o.file.id,name:o.file.name?o.file.name.slice(0,o.file.name.lastIndexOf(".")):""}),w.value=!1,f.value=!1},t=o=>new Promise((n,i)=>{const u=document.createElement("video");u.setAttribute("crossOrigin","Anonymous"),u.setAttribute("preload","auto"),u.muted=!0,u.autoplay=!0,u.src=URL.createObjectURL(o),u.addEventListener("loadedmetadata",()=>{u.play(),setTimeout(()=>{u.currentTime=0,u.pause();const c=document.createElement("canvas");c.width=u.videoWidth,c.height=u.videoHeight,c.getContext("2d").drawImage(u,0,0,c.width,c.height),c.toBlob(C=>{n(C)})},500)}),u.addEventListener("error",c=>{i(c)})}),a=async o=>{try{f.value=!0;const n=await t(o||p.value),i="".concat(s.path).concat(Date.now()+".png"),u={filename:i,bucketName:s.bucketName,postData:{filename:i,acl:"public-read",key:i,unknowValueField:[]}},{data:c}=await L(u),C={policy:c.policy,signature:c.signature,key:i,acl:"public-read",KSSAccessKeyId:c.kssAccessKeyId,name:i,file:n};return await ee(I,C)}finally{f.value=!1}},r=async o=>{const n=E.value.findIndex(i=>i.id===o.file.id);return E.value.splice(n,1),f.value=!1,!0},D=X(()=>{let o=!1;return y.value.forEach(n=>{n.status!=="finished"&&(o=!0)}),o||y.value.length<=0}),M=({file:o,action:n,onFinish:i,onError:u,onProgress:c})=>{const C=h.find(k=>k.id==o.id);C.file=o,Ce({file:o,action:n,data:C,onProgress:c,onFinish:i,onError:u})},T=async()=>{const o=[];y.value.forEach(n=>{const i=E.value.find(u=>u.id===n.id);i&&o.push(i)}),A("confrim",o)};return()=>e("div",{class:O.saveModal},[e(z,{ref:m,action:I,customRequest:M,fileList:y.value,"onUpdate:fileList":o=>y.value=o,accept:".jpg,jpeg,.png,audio/mp3,video/mp4",multiple:!0,max:10,showFileList:!0,showPreviewButton:!0,onBeforeUpload:o=>G(o),onFinish:o=>{d(o)},onRemove:o=>r(o)},{default:()=>[e(H,null,{default:()=>[e("div",{class:O.uploadBtn},[e("div",{class:O.iconUploadAdd},null),e("h3",null,[g("点击或者拖动文件到该区域来上传")]),e("p",null,[g("仅支持JPG、PNG、MP3、MP4,单次最多支持"),e("br",null,null),g("上传10个文件")])])]})]}),e(q,{class:O.btnGroup,justify:"center"},{default:()=>[e(_,{round:!0,onClick:()=>A("close")},{default:()=>[g("取消")]}),e(_,{round:!0,type:"primary",disabled:D.value||f.value,onClick:T},{default:()=>[g("确定")]})]})])}});export{dt as S,ct as U,V as f};
|