index-33202347-1711617551545.js 8.8 KB

1
  1. import{d as P,r as b,b as G,e as C,X as L,p as H,f as a,N as W,w as j,v as B,k as y,az as J,g as q,h as X,E as Q,F as Y,j as E,B as Z,bz as v,O as ee,bA as te,K as ae,bB as le,P as T}from"./index-b5d795c3-1711617551545.js";import{u as oe}from"./catchData-cd60b28d-1711617551545.js";import{b as se,d as ne,e as D,g as ue,h as ie,j as ce,k as re}from"./api-6a3840c3-1711617551545.js";import{i as de}from"./index-1bc5c75d-1711617551545.js";import{N as pe}from"./Scrollbar-399b413d-1711617551545.js";import{g as O,a as fe,o as me}from"./index-47324183-1711617551545.js";const ge="_uploadModal_qqbe2_1",be="_formModal_qqbe2_4",ye="_formSpace_qqbe2_8",ve="_previewModal_qqbe2_11",Fe="_image_qqbe2_23",he="_titleType_qqbe2_32",_e="_iconUploadDelete_qqbe2_40",Ie="_commonType_qqbe2_49",Se="_formItem_qqbe2_76",Ee="_btnGroup_qqbe2_101",Ue="_uploadFile_qqbe2_108",Ae="_uploadBtn_qqbe2_115",Ne="_iconUploadAdd_qqbe2_132",f={uploadModal:ge,formModal:be,formSpace:ye,previewModal:ve,image:Fe,titleType:he,iconUploadDelete:_e,commonType:Ie,formItem:Se,btnGroup:Ee,uploadFile:Ue,uploadBtn:Ae,iconUploadAdd:Ne};function we(o){return typeof o=="function"||Object.prototype.toString.call(o)==="[object Object]"&&!Z(o)}const Me=o=>o?(o==null?void 0:o.indexOf(".mp3"))>-1?v.SONG:(o==null?void 0:o.indexOf(".mp4"))>-1?v.VIDEO:(o==null?void 0:o.indexOf(".ppt"))>-1?v.PPT:v.IMG:"",Le=P({name:"upload-modal",props:{list:{type:Array,default:()=>[]},editStatus:{type:Boolean,default:!0}},emits:["close","confirm","editAll"],setup(o,{emit:m}){const h=oe(),_=b(),U=G();b(),b([]);const i=C({list:[],uploading:!1,uploadUrl:"",name:"",subjectIds:[]}),w=d=>{let l=D;switch(d){case"IMG":l=D;break;case"VIDEO":l=re;break;case"SONG":l=ce;break;case"MUSIC":l=ie;break;case"PPT":l=ue;break}return l},M=async()=>{var d;(d=_.value)==null||d.validate(async l=>{if(l){ee(te);return}i.uploading=!0;try{const s=[];if(i.list.forEach(r=>{s.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})}),g.value){if(o.editStatus)m("editAll",s);else{const{data:r}=await se(s);U.success("保存成功"),i.list=[],m("close",!0),m("confirm",r)}i.list=[]}else await ne(s),U.success("保存成功"),i.list=[],m("close",!0),m("confirm")}catch(s){}i.uploading=!1})},I=d=>{i.list.splice(d,1)},g=L(()=>o.list.length>0);H(async()=>{const d=o.list||[],l=[];d.forEach(s=>{l.push({subjectIds:s.subjectId?s.subjectId.split(",").map(r=>Number(r)):[],openFlag:s.openFlag,coverImg:s.coverImg,name:s.title,type:s.type,sourceFrom:s.sourceFrom,enableFlag:s.enableFlag,content:s.content,id:s.id})}),i.list=l||[],await h.getSubjects()});const F=(d,l)=>{d.subjectIds=l.map(s=>s.id)};return()=>{let d;return a("div",{class:f.uploadModal},[a(pe,{style:{"max-height":"55vh"}},{default:()=>[a(W,{ref:_,labelPlacement:"left",labelWidth:120,model:i,class:f.formModal},{default:()=>[a(j,{class:f.formSpace},we(d=i.list.map((l,s)=>a("div",{class:f.formItem,key:s},[a("div",{class:f.previewModal},[a(B,{class:[f.titleType],src:w(l.type),previewDisabled:!0,objectFit:"cover"},null),!g.value&&a("img",{class:[f.iconUploadDelete],src:de,onClick:()=>I(s)},null),a(B,{class:[f.cover,f.image],lazy:!0,previewDisabled:!0,src:l.coverImg,objectFit:"cover"},null),a("div",{class:f.commonType},[y("是否公开"),a(J,{size:"small",value:l.openFlag,"onUpdate:value":r=>l.openFlag=r,disabled:l.sourceFrom==="TEACHER"&&l.type==="MUSIC"},null)])]),a(q,{showFeedback:!1,path:"list.".concat(s,".name"),rule:[{required:!0,message:"请输入资源名称",trigger:["input","blur"]}]},{default:()=>[a(X,{value:l.name,"onUpdate:value":r=>l.name=r,placeholder:"请输入资源名称",maxlength:25,clearable:!0},null)]}),a(q,{path:"list[".concat(s,"].subjectIds"),showFeedback:!1,rule:[{required:!0,message:"请选择素材可用声部",trigger:"change",type:"array"}]},{default:()=>[a(Q,{value:l.subjectIds,"onUpdate:value":r=>l.subjectIds=r,placeholder:"请选择素材可用声部(可多选)",options:h.getSubjectList,labelField:"name",valueField:"id",multiple:!0,maxTagCount:2,clearable:!0},{action:()=>a(Y,null,[a(E,{text:!0,style:" --n-width: 100% ",onClick:()=>F(l,h.getSubjectList)},{default:()=>[y("全选")]})])})]})])))?d:{default:()=>[d]})]})]}),a(j,{class:f.btnGroup,justify:"center"},{default:()=>[a(E,{round:!0,onClick:()=>m("close")},{default:()=>[o.editStatus?"取消":"上一步"]}),a(E,{round:!0,type:"primary",loading:i.uploading,disabled:i.list.length===0,onClick:M},{default:()=>[y("确定")]})]})])}}}),ke="_saveModal_ulplg_1",je="_uploadBtn_ulplg_25",Be="_iconUploadAdd_ulplg_47",qe="_btnGroup_ulplg_57",N={saveModal:ke,uploadBtn:je,iconUploadAdd:Be,btnGroup:qe},xe=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(o,{emit:m}){const h="https://".concat(o.bucketName,".ks3-cn-beijing.ksyuncs.com/"),_=G(),U=b(!1),i=b(!1),w=b(),M=b(),I=C([]),g=b([]),F=b([]),d=async e=>{const n=e.file;let u=!0;const t=n.type.includes("image")?v.IMG:n.type.includes("audio")?v.SONG:n.type.includes("video")?v.VIDEO:n.type.includes("vnd.openxmlformats-officedocument.presentationml.presentation")||n.type.includes("vnd.ms-powerpoint")?v.PPT:"other";if(console.log(t,"type"),t==="other")return _.error("文件格式不支持"),!1;const c=t==="IMG"?2:t==="SONG"?20:500;if(c&&(u=n.file.size/1024/1024<c,!u)){const p=t==="IMG"?"图片":t==="SONG"?"音频":"视频";return _.error("".concat(p,"大小不能超过").concat(c,"M")),!1}if(!u)return u;try{i.value=!0;const p=n.file.name,A=p.slice(p.lastIndexOf(".")),S="".concat(o.path).concat(Date.now()+n.id+A),z={filename:S,bucketName:o.bucketName,postData:{filename:S,acl:"public-read",key:S,unknowValueField:[]}},{data:k}=await O(z);I.push({id:n.id,tempFiileBuffer:n.file,policy:k.policy,signature:k.signature,acl:"public-read",key:S,KSSAccessKeyId:k.kssAccessKeyId,name:S})}catch(p){return i.value=!1,!1}return!0},l=e=>{s(e)},s=async e=>{console.log(e,"onFinishAfter");const n=I.find(c=>c.id==e.file.id),u=Me(e.file.url);let t="";u==="IMG"?t=e.file.url:u==="SONG"?t=T.SONG_DEFAULT_COVER:u==="PPT"?t=T.PPT_DEFAULT_COVER:u==="VIDEO"&&(t=await x(n.tempFiileBuffer)),F.value.push({coverImg:t,content:e.file.url,id:e.file.id,name:e.file.name?e.file.name.slice(0,e.file.name.lastIndexOf(".")):""}),U.value=!1,i.value=!1},r=e=>new Promise((n,u)=>{const t=document.createElement("video");t.setAttribute("crossOrigin","Anonymous"),t.setAttribute("preload","auto"),t.muted=!0,t.autoplay=!0,t.src=URL.createObjectURL(e),t.addEventListener("loadedmetadata",()=>{t.play(),setTimeout(()=>{t.pause();const c=document.createElement("canvas");c.width=t.videoWidth,c.height=t.videoHeight,c.getContext("2d").drawImage(t,0,0,c.width,c.height),c.toBlob(p=>{n(p)})},500)}),t.addEventListener("error",c=>{u(c)})}),x=async e=>{try{i.value=!0;const n=await r(e||w.value),u="".concat(o.path).concat(Date.now()+".png"),t={filename:u,bucketName:o.bucketName,postData:{filename:u,acl:"public-read",key:u,unknowValueField:[]}},{data:c}=await O(t),p={policy:c.policy,signature:c.signature,key:u,acl:"public-read",KSSAccessKeyId:c.kssAccessKeyId,name:u,file:n};return await fe(h,p)}finally{i.value=!1}},V=async e=>{const n=F.value.findIndex(u=>u.id===e.file.id);return F.value.splice(n,1),i.value=!1,!0},$=L(()=>{let e=!1;return g.value.forEach(n=>{n.status!=="finished"&&(e=!0)}),e||g.value.length<=0}),R=({file:e,action:n,onFinish:u,onError:t,onProgress:c})=>{const p=I.find(A=>A.id==e.id);p.file=e,me({file:e,action:n,data:p,onProgress:c,onFinish:u,onError:t})},K=async()=>{const e=[];g.value.forEach(n=>{const u=F.value.find(t=>t.id===n.id);u&&e.push(u)}),console.log(g.value,F.value),m("confrim",e)};return()=>a("div",{class:N.saveModal},[a(ae,{ref:M,action:h,customRequest:R,fileList:g.value,"onUpdate:fileList":e=>g.value=e,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:e=>d(e),onFinish:e=>{l(e)},onRemove:e=>V(e)},{default:()=>[a(le,null,{default:()=>[a("div",{class:N.uploadBtn},[a("div",{class:N.iconUploadAdd},null),a("h3",null,[y("点击或者拖动文件到该区域来上传")]),a("p",null,[y("仅支持JPG、PNG、MP3、MP4、PPT格式文件,单次最多支持"),a("br",null,null),y("上传10个文件")])])]})]}),a(j,{class:N.btnGroup,justify:"center"},{default:()=>[a(E,{round:!0,onClick:()=>m("close")},{default:()=>[y("取消")]}),a(E,{round:!0,type:"primary",disabled:$.value||i.value,onClick:K},{default:()=>[y("确定")]})]})])}});export{xe as S,Le as U,Me as f};