index-a3556a3c-1713531208995.js 14 KB

1
  1. import{d as P,r as B,b as V,e as j,y as ee,p as $,bB as b,f as e,k as y,L as Z,bC as W,C as te,j as w,w as O,Q as H,Y as z,N as ae,v as K,aB as oe,g as q,h as le,G as se,F as ue,l as ne,B as ie,bD as re,P as Q}from"./index-59fbd4e3-1713531208995.js";import{u as ce}from"./catchData-579a48ba-1713531208995.js";import{b as de,d as pe,e as Y,g as fe,h as me,j as ge,k as ye}from"./api-6df3a812-1713531208995.js";import{C as ve,g as x,a as J,o as be}from"./index-9a0a2b22-1713531208995.js";import{i as Ae}from"./index-f2ef531c-1713531208995.js";import{N as Fe}from"./Scrollbar-81c85a62-1713531208995.js";const he="_uploadModal_eir1m_1",Ce="_formModal_eir1m_4",Be="_formSpace_eir1m_8",Ie="_previewModal_eir1m_11",_e="_image_eir1m_23",Se="_titleType_eir1m_32",we="_iconUploadDelete_eir1m_40",Ue="_commonType_eir1m_55",ke="_changeCover_eir1m_74",Ee="_formItem_eir1m_91",De="_btnGroup_eir1m_116",Ne="_uploadFile_eir1m_123",Ge="_uploadBtn_eir1m_130",Me="_iconUploadAdd_eir1m_147",Te="_uploadCover_eir1m_152",h={uploadModal:he,formModal:Ce,formSpace:Be,previewModal:Ie,image:_e,titleType:Se,iconUploadDelete:we,commonType:Ue,changeCover:ke,formItem:Ee,btnGroup:De,uploadFile:Ne,uploadBtn:Ge,iconUploadAdd:Me,uploadCover:Te},je="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=",Oe="_uploadFile_t4tbc_1",Re="_uploadBtn_t4tbc_14",xe="_iconUploadAdd_t4tbc_33",Le="_uploadHeader_t4tbc_38",Pe="_headerItem_t4tbc_42",Ve="_uploadContainer_t4tbc_59",Ke="_imgCropperSection_t4tbc_85",qe="_uploadBtnGroup_t4tbc_92",S={uploadFile:Oe,uploadBtn:Re,iconUploadAdd:xe,uploadHeader:Le,headerItem:Pe,uploadContainer:Ve,imgCropperSection:Ke,uploadBtnGroup:qe},Qe=P({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(a,{emit:A}){const I=B(),U="https://".concat(a.bucketName,".ks3-cn-beijing.ksyuncs.com/"),k=V(),s=B(!1),f=B(!1),D=B(),F=B({img:"",autoCrop:!0,autoCropWidth:180,autoCropHeight:180,fixedBox:!0,full:!1,enlarge:1,previewsCircle:!0,centerBox:!0,outputType:"png",title:"修改头像",name:null}),v=j({myCropper:null,cropperReady:!1}),_=async m=>{const c=m.file;let g=!0;if((c.type.includes("image")?b.IMG:c.type.includes("audio")?b.SONG:b.VIDEO)!==b.IMG)return k.error("上传文件格式错误"),!1;const t=10;return g=c.file.size/1024/1024<t,g?(N(c.file,n=>{d(n,c.file.name)}),!1):(k.error("图片大小不能超过".concat(t,"M")),!1)},N=async(m,c)=>{const g=new FileReader;g.addEventListener("load",()=>c(g.result)),g.readAsDataURL(m)},d=(m,c)=>{const g=Object.assign({},a.options,{img:m,name:c});s.value=!0,F.value=Object.assign({},F.value,g),H(()=>{o()})},o=()=>{try{v.cropperReady=!0,v.myCropper=new ve(I.value,{viewMode:1,dragMode:"move",aspectRatio:F.value.autoCropWidth/F.value.autoCropHeight,initialAspectRatio:1,autoCropArea:1,cropBoxMovable:!0,cropBoxResizable:!0,background:!0,movable:!1,modal:!0,preview:".before",ready:()=>{v.cropperReady=!1}})}catch(m){}},u=()=>{v.myCropper.getCroppedCanvas({imageSmoothingQuality:"high"}).toBlob(m=>{f.value=!0,r(m)})},r=async m=>{try{const c="".concat(a.path).concat(a.fileName||new Date().getTime()+".png"),g={filename:c,bucketName:a.bucketName,postData:{filename:c,acl:"public-read",key:c}},{data:E}=await x(g),t={policy:E.policy,signature:E.signature,acl:"public-read",key:c,KSSAccessKeyId:E.kssAccessKeyId,name:c,file:m},n=await J(U,t);A("confirm",n),A("close")}catch(c){}f.value=!1};return ee(()=>a.img,()=>{a.img&&L(a.img)===b.IMG&&d(a.img)}),$(()=>{a.img&&L(a.img)===b.IMG&&d(a.img)}),()=>e("div",{class:S.uploadFile},[e("div",{class:S.uploadHeader},[e("div",{class:S.headerItem},[y("上传封面")])]),s.value?e("div",{class:S.uploadContainer},[e(te,{show:v.cropperReady},{default:()=>{var m,c,g;return[e("div",{class:S.imgCropperSection},[((m=F.value)==null?void 0:m.img)&&e("img",{ref:I,src:(c=F.value)==null?void 0:c.img,style:{opacity:(g=v.myCropper)!=null&&g.ready?"1":"0"},alt:""},null)])]}})]):e("div",{class:S.uploadContainer},[e(Z,{ref:D,accept:a.accept,multiple:!1,max:1,showFileList:!1,showPreviewButton:!0,onBeforeUpload:m=>_(m)},{default:()=>[e(W,null,{default:()=>[e("div",{class:S.uploadBtn},[e("img",{src:Ae,class:S.iconUploadAdd},null),e("p",null,[y("点击或将图片拖至此区域")]),e("span",null,[y("(建议比例16:9)")])])]})]})]),e("div",{class:S.uploadBtnGroup},[s.value?e(w,{type:"default",onClick:()=>{F.value.img="",s.value=!1}},{default:()=>[y("重新选择")]}):e("span",null,null),e(O,null,{default:()=>[e(w,{type:"default",onClick:()=>A("close")},{default:()=>[y("取消")]}),e(w,{type:"primary",onClick:()=>u(),disabled:!s.value,loading:f.value},{default:()=>[y("保存封面")]})]})])])}});function Ye(a){return typeof a=="function"||Object.prototype.toString.call(a)==="[object Object]"&&!ie(a)}const L=a=>a?(a==null?void 0:a.indexOf(".mp3"))>-1?b.SONG:(a==null?void 0:a.indexOf(".mp4"))>-1?b.VIDEO:(a==null?void 0:a.indexOf(".ppt"))>-1?b.PPT:b.IMG:"",ot=P({name:"upload-modal",props:{list:{type:Array,default:()=>[]},showDelete:{type:Boolean,default:!1},editStatus:{type:Boolean,default:!0}},emits:["close","confirm","editAll"],setup(a,{emit:A}){const I=ce(),U=B(),k=V(),s=j({list:[],uploading:!1,uploadUrl:"",name:"",subjectIds:[]}),f=j({uploadCoverStatus:!1,uploadType:"",uploadImg:null,uploadIndex:0}),D=d=>{let o=Y;switch(d){case"IMG":o=Y;break;case"VIDEO":o=ye;break;case"SONG":o=ge;break;case"MUSIC":o=me;break;case"PPT":o=fe;break}return o},F=async()=>{var d;(d=U.value)==null||d.validate(async o=>{if(o){H(re);return}s.uploading=!0;try{const u=[];if(s.list.forEach(r=>{u.push({subjectIds:r.subjectIds.join(","),openFlag:r.openFlag,coverImg:r.coverImg,name:r.name,type:r.type,enableFlag:1,content:r.content,id:r.id||null})}),_.value){if(a.editStatus)A("editAll",u);else{const{data:r}=await de(u);k.success("保存成功"),s.list=[],A("close",!0),A("confirm",r)}s.list=[]}else await pe(u),k.success("保存成功"),s.list=[],A("close",!0),A("confirm")}catch(u){}s.uploading=!1})},v=d=>{s.list.splice(d,1)},_=z(()=>a.list.length>0);$(async()=>{const d=a.list||[],o=[];d.forEach(u=>{o.push({subjectIds:u.subjectId?u.subjectId.split(",").map(r=>Number(r)):[],openFlag:u.openFlag,coverImg:u.coverImg,name:u.title,type:u.type,sourceFrom:u.sourceFrom,enableFlag:u.enableFlag,content:u.content,id:u.id})}),s.list=o||[],await I.getSubjects()});const N=(d,o)=>{d.subjectIds=o.map(u=>u.id)};return()=>{let d;return e("div",{class:h.uploadModal},[e(Fe,{style:{"max-height":"55vh"}},{default:()=>[e(ae,{ref:U,labelPlacement:"left",labelWidth:120,model:s,class:h.formModal},{default:()=>[e(O,{class:h.formSpace},Ye(d=s.list.map((o,u)=>e("div",{class:h.formItem,key:u},[e("div",{class:h.previewModal},[e(K,{class:[h.titleType],src:D(o.type),previewDisabled:!0,objectFit:"cover"},null),(!_.value||a.showDelete)&&e("img",{class:[h.iconUploadDelete],src:je,onClick:()=>v(u)},null),e(K,{class:[h.cover,h.image],lazy:!0,previewDisabled:!0,src:o.coverImg,objectFit:"cover"},null),e("div",{class:h.commonType},[e(w,{class:h.changeCover,type:"default",bordered:!1,onClick:()=>{f.uploadIndex=u,f.uploadImg=o.coverImg,f.uploadType=o.type,f.uploadCoverStatus=!0}},{default:()=>[y("更换封面")]}),e("div",null,[y("是否公开"),e(oe,{size:"small",value:o.openFlag,"onUpdate:value":r=>o.openFlag=r,disabled:o.sourceFrom==="TEACHER"&&o.type==="MUSIC"},null)])])]),e(q,{showFeedback:!1,path:"list.".concat(u,".name"),rule:[{required:!0,message:"请输入资源名称",trigger:["input","blur"]}]},{default:()=>[e(le,{value:o.name,"onUpdate:value":r=>o.name=r,placeholder:"请输入资源名称",maxlength:25,clearable:!0},null)]}),e(q,{path:"list[".concat(u,"].subjectIds"),showFeedback:!1,rule:[{required:!0,message:"请选择素材可用声部",trigger:"change",type:"array"}]},{default:()=>[e(se,{value:o.subjectIds,"onUpdate:value":r=>o.subjectIds=r,placeholder:"请选择素材可用声部(可多选)",options:I.getSubjectList,labelField:"name",valueField:"id",multiple:!0,maxTagCount:2,clearable:!0},{action:()=>e(ue,null,[e(w,{text:!0,style:" --n-width: 100% ",onClick:()=>N(o,I.getSubjectList)},{default:()=>[y("全选")]})])})]})])))?d:{default:()=>[d]})]})]}),e(O,{class:h.btnGroup,justify:"center"},{default:()=>[e(w,{round:!0,onClick:()=>A("close")},{default:()=>[a.editStatus?"取消":"上一步"]}),e(w,{round:!0,type:"primary",loading:s.uploading,disabled:s.list.length===0,onClick:F},{default:()=>[y("确定")]})]}),e(ne,{show:f.uploadCoverStatus,"onUpdate:show":o=>f.uploadCoverStatus=o,preset:"card",showIcon:!1,class:["modalTitle ",h.uploadCover],blockScroll:!1},{default:()=>[e(Qe,{img:f.uploadImg,onClose:()=>f.uploadCoverStatus=!1,onConfirm:o=>{f.uploadType==="IMG"&&(s.list[f.uploadIndex].content=o),s.list[f.uploadIndex].coverImg=o}},null)]})])}}}),$e="_saveModal_ulplg_1",Ze="_uploadBtn_ulplg_25",We="_iconUploadAdd_ulplg_47",He="_btnGroup_ulplg_57",T={saveModal:$e,uploadBtn:Ze,iconUploadAdd:We,btnGroup:He},lt=P({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(a,{emit:A}){const I="https://".concat(a.bucketName,".ks3-cn-beijing.ksyuncs.com/"),U=V(),k=B(!1),s=B(!1),f=B(),D=B(),F=j([]),v=B([]),_=B([]),N=async t=>{const n=t.file;let i=!0;const l=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(l==="other")return U.error("文件格式不支持"),!1;const p=l==="IMG"?2:l==="SONG"?20:500;if(p&&(i=n.file.size/1024/1024<p,!i)){const C=l==="IMG"?"图片":l==="SONG"?"音频":"视频";return U.error("".concat(C,"大小不能超过").concat(p,"M")),!1}if(!i)return i;try{s.value=!0;const C=n.file.name,M=C.slice(C.lastIndexOf(".")),G="".concat(a.path).concat(Date.now()+n.id+M),X={filename:G,bucketName:a.bucketName,postData:{filename:G,acl:"public-read",key:G,unknowValueField:[]}},{data:R}=await x(X);F.push({id:n.id,tempFiileBuffer:n.file,policy:R.policy,signature:R.signature,acl:"public-read",key:G,KSSAccessKeyId:R.kssAccessKeyId,name:G})}catch(C){return s.value=!1,!1}return!0},d=t=>{o(t)},o=async t=>{console.log(t,"onFinishAfter");const n=F.find(p=>p.id==t.file.id),i=L(t.file.url);let l="";i==="IMG"?l=t.file.url:i==="SONG"?l=Q.SONG_DEFAULT_COVER:i==="PPT"?l=Q.PPT_DEFAULT_COVER:i==="VIDEO"&&(l=await r(n.tempFiileBuffer)),_.value.push({coverImg:l,content:t.file.url,id:t.file.id,name:t.file.name?t.file.name.slice(0,t.file.name.lastIndexOf(".")):""}),k.value=!1,s.value=!1},u=t=>new Promise((n,i)=>{const l=document.createElement("video");l.setAttribute("crossOrigin","Anonymous"),l.setAttribute("preload","auto"),l.muted=!0,l.autoplay=!0,l.src=URL.createObjectURL(t),l.addEventListener("loadedmetadata",()=>{l.play(),setTimeout(()=>{l.currentTime=0,l.pause();const p=document.createElement("canvas");p.width=l.videoWidth,p.height=l.videoHeight,p.getContext("2d").drawImage(l,0,0,p.width,p.height),p.toBlob(C=>{n(C)})},500)}),l.addEventListener("error",p=>{i(p)})}),r=async t=>{try{s.value=!0;const n=await u(t||f.value),i="".concat(a.path).concat(Date.now()+".png"),l={filename:i,bucketName:a.bucketName,postData:{filename:i,acl:"public-read",key:i,unknowValueField:[]}},{data:p}=await x(l),C={policy:p.policy,signature:p.signature,key:i,acl:"public-read",KSSAccessKeyId:p.kssAccessKeyId,name:i,file:n};return await J(I,C)}finally{s.value=!1}},m=async t=>{const n=_.value.findIndex(i=>i.id===t.file.id);return _.value.splice(n,1),s.value=!1,!0},c=z(()=>{let t=!1;return v.value.forEach(n=>{n.status!=="finished"&&(t=!0)}),t||v.value.length<=0}),g=({file:t,action:n,onFinish:i,onError:l,onProgress:p})=>{const C=F.find(M=>M.id==t.id);C.file=t,be({file:t,action:n,data:C,onProgress:p,onFinish:i,onError:l})},E=async()=>{const t=[];v.value.forEach(n=>{const i=_.value.find(l=>l.id===n.id);i&&t.push(i)}),A("confrim",t)};return()=>e("div",{class:T.saveModal},[e(Z,{ref:D,action:I,customRequest:g,fileList:v.value,"onUpdate:fileList":t=>v.value=t,accept:".jpg,jpeg,.png,audio/mp3,video/mp4,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation",multiple:!0,max:10,showFileList:!0,showPreviewButton:!0,onBeforeUpload:t=>N(t),onFinish:t=>{d(t)},onRemove:t=>m(t)},{default:()=>[e(W,null,{default:()=>[e("div",{class:T.uploadBtn},[e("div",{class:T.iconUploadAdd},null),e("h3",null,[y("点击或者拖动文件到该区域来上传")]),e("p",null,[y("仅支持JPG、PNG、MP3、MP4、PPT格式文件,单次最多支持"),e("br",null,null),y("上传10个文件")])])]})]}),e(O,{class:T.btnGroup,justify:"center"},{default:()=>[e(w,{round:!0,onClick:()=>A("close")},{default:()=>[y("取消")]}),e(w,{round:!0,type:"primary",disabled:c.value||s.value,onClick:E},{default:()=>[y("确定")]})]})])}});export{lt as S,ot as U,L as f};