1 |
- import{d as G,r as b,b as C,e as L,V as x,p as H,f as a,N as W,w as j,v as B,k as y,ay as J,g as T,h as Q,E as X,F as Y,j as S,B as Z,bz as v,O as ee,bA as te,K as ae,bB as le,P as D}from"./index-854e609c-1710934675836.js";import{u as oe}from"./catchData-aba71710-1710934675836.js";import{b as se,d as ne,e as O,g as ue,h as ie,j as ce,k as de}from"./api-4f9d3b47-1710934675836.js";import{i as re}from"./index-0fe365ac-1710934675836.js";import{N as pe}from"./Scrollbar-a62cf385-1710934675836.js";import{g as P,a as fe,o as me}from"./index-f411180e-1710934675836.js";const ge="_uploadModal_3dbwl_1",be="_formModal_3dbwl_4",ye="_formSpace_3dbwl_8",ve="_previewModal_3dbwl_11",Fe="_image_3dbwl_23",he="_titleType_3dbwl_32",_e="_iconUploadDelete_3dbwl_40",we="_commonType_3dbwl_49",Ie="_formItem_3dbwl_72",Se="_btnGroup_3dbwl_97",Ee="_uploadFile_3dbwl_104",Ae="_uploadBtn_3dbwl_111",Ue="_iconUploadAdd_3dbwl_128",f={uploadModal:ge,formModal:be,formSpace:ye,previewModal:ve,image:Fe,titleType:he,iconUploadDelete:_e,commonType:we,formItem:Ie,btnGroup:Se,uploadFile:Ee,uploadBtn:Ae,iconUploadAdd:Ue};function Ne(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:"",xe=G({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(),E=C();b(),b([]);const i=L({list:[],uploading:!1,uploadUrl:"",name:"",subjectIds:[]}),N=r=>{let l=O;switch(r){case"IMG":l=O;break;case"VIDEO":l=de;break;case"SONG":l=ce;break;case"MUSIC":l=ie;break;case"PPT":l=ue;break}return l},M=async()=>{var r;(r=_.value)==null||r.validate(async l=>{if(l){ee(te);return}i.uploading=!0;try{const s=[];if(i.list.forEach(d=>{s.push({subjectIds:d.subjectIds.join(","),openFlag:d.openFlag,coverImg:d.coverImg,name:d.name,type:d.type,enableFlag:1,content:d.content,id:d.id||null})}),g.value){if(o.editStatus)m("editAll",s);else{const{data:d}=await se(s);E.success("保存成功"),i.list=[],m("close",!0),m("confirm",d)}i.list=[]}else await ne(s),E.success("保存成功"),i.list=[],m("close",!0),m("confirm")}catch(s){}i.uploading=!1})},w=r=>{i.list.splice(r,1)},g=x(()=>o.list.length>0);H(async()=>{const r=o.list||[],l=[];r.forEach(s=>{l.push({subjectIds:s.subjectId?s.subjectId.split(",").map(d=>Number(d)):[],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=(r,l)=>{r.subjectIds=l.map(s=>s.id)};return()=>{let r;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},Ne(r=i.list.map((l,s)=>a("div",{class:f.formItem,key:s},[a("div",{class:f.previewModal},[a(B,{class:[f.titleType],src:N(l.type),previewDisabled:!0,objectFit:"cover"},null),!g.value&&a("img",{class:[f.iconUploadDelete],src:re,onClick:()=>w(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":d=>l.openFlag=d,disabled:l.sourceFrom==="TEACHER"&&l.type==="MUSIC"},null)])]),a(T,{showFeedback:!1,path:"list.".concat(s,".name"),rule:[{required:!0,message:"请输入资源名称",trigger:["input","blur"]}]},{default:()=>[a(Q,{value:l.name,"onUpdate:value":d=>l.name=d,placeholder:"请输入资源名称",maxlength:25,clearable:!0},null)]}),a(T,{path:"list[".concat(s,"].subjectIds"),showFeedback:!1,rule:[{required:!0,message:"请选择素材可用声部",trigger:"change",type:"array"}]},{default:()=>[a(X,{value:l.subjectIds,"onUpdate:value":d=>l.subjectIds=d,placeholder:"请选择素材可用声部(可多选)",options:h.getSubjectList,labelField:"name",valueField:"id",multiple:!0,maxTagCount:2,clearable:!0},{action:()=>a(Y,null,[a(S,{text:!0,style:" --n-width: 100% ",onClick:()=>F(l,h.getSubjectList)},{default:()=>[y("全选")]})])})]})])))?r:{default:()=>[r]})]})]}),a(j,{class:f.btnGroup,justify:"center"},{default:()=>[a(S,{round:!0,onClick:()=>m("close")},{default:()=>[o.editStatus?"取消":"上一步"]}),a(S,{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",Te="_btnGroup_ulplg_57",U={saveModal:ke,uploadBtn:je,iconUploadAdd:Be,btnGroup:Te},Ve=G({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/"),_=C(),E=b(!1),i=b(!1),N=b(),M=b(),w=L([]),g=b([]),F=b([]),r=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(".")),I="".concat(o.path).concat(Date.now()+n.id+A),q={filename:I,bucketName:o.bucketName,postData:{filename:I,acl:"public-read",key:I,unknowValueField:[]}},{data:k}=await P(q);w.push({id:n.id,tempFiileBuffer:n.file,policy:k.policy,signature:k.signature,acl:"public-read",key:I,KSSAccessKeyId:k.kssAccessKeyId,name:I})}catch(p){return i.value=!1,!1}return!0},l=e=>{s(e)},s=async e=>{console.log(e,"onFinishAfter");const n=w.find(c=>c.id==e.file.id),u=Me(e.file.url);let t="";u==="IMG"?t=e.file.url:u==="SONG"?t=D.SONG_DEFAULT_COVER:u==="PPT"?t=D.PPT_DEFAULT_COVER:u==="VIDEO"&&(t=await V(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(".")):""}),E.value=!1,i.value=!1},d=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)})}),V=async e=>{try{i.value=!0;const n=await d(e||N.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 P(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}},$=async e=>{const n=F.value.findIndex(u=>u.id===e.file.id);return F.value.splice(n,1),i.value=!1,!0},R=x(()=>{let e=!1;return g.value.forEach(n=>{n.status!=="finished"&&(e=!0)}),e||g.value.length<=0}),K=({file:e,action:n,onFinish:u,onError:t,onProgress:c})=>{const p=w.find(A=>A.id==e.id);p.file=e,me({file:e,action:n,data:p,onProgress:c,onFinish:u,onError:t})},z=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:U.saveModal},[a(ae,{ref:M,action:h,customRequest:K,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=>r(e),onFinish:e=>{l(e)},onRemove:e=>$(e)},{default:()=>[a(le,null,{default:()=>[a("div",{class:U.uploadBtn},[a("div",{class:U.iconUploadAdd},null),a("h3",null,[y("点击或者拖动文件到该区域来上传")]),a("p",null,[y("仅支持JPG、PNG、MP3、MP4、PPT格式文件,单次最多支持"),a("br",null,null),y("上传10个文件")])])]})]}),a(j,{class:U.btnGroup,justify:"center"},{default:()=>[a(S,{round:!0,onClick:()=>m("close")},{default:()=>[y("取消")]}),a(S,{round:!0,type:"primary",disabled:R.value||i.value,onClick:z},{default:()=>[y("确定")]})]})])}});export{Ve as S,xe as U,Me as f};
|