|
@@ -11,7 +11,7 @@ const props = defineProps({
|
|
|
type:String,
|
|
|
default:'audio',//audio or video
|
|
|
},
|
|
|
- modifyata:{
|
|
|
+ modifydata:{
|
|
|
type:Object,
|
|
|
default:{
|
|
|
fileUrl:'',
|
|
@@ -57,7 +57,8 @@ const mediaData = reactive({
|
|
|
})
|
|
|
watch(show,(newval)=>{
|
|
|
if(newval){
|
|
|
- Object.assign(mediaData,props.modifyata)
|
|
|
+ Object.assign(mediaData,props.modifydata)
|
|
|
+ mediaData.labels = mediaData.labels.split(',').map(i=>Number(i))
|
|
|
}else{
|
|
|
Object.assign(mediaData,{
|
|
|
fileUrl:'',
|
|
@@ -92,6 +93,7 @@ function getLableList(){
|
|
|
}
|
|
|
getLableList()
|
|
|
//点击上传按钮
|
|
|
+const uploadLoading = ref(false)
|
|
|
const uploadRef = ref(null)
|
|
|
function handleUpload(){
|
|
|
uploadRef.value?.$el.getElementsByTagName('input')[0].click()
|
|
@@ -107,11 +109,13 @@ async function handleUploadMedia(file){
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ uploadLoading.value = true
|
|
|
let form = new FormData();
|
|
|
form.append('File',file.file);
|
|
|
const res = props.mediaType==='audio'
|
|
|
?await apiAudio.uploadAudioFile(form)
|
|
|
:await apiVideo.uploadVideoFile(form)
|
|
|
+ uploadLoading.value = false
|
|
|
if(res.Ret!==200) return
|
|
|
mediaData.fileUrl = res.Data.Url||""
|
|
|
//视频取上传文件返回的duration
|
|
@@ -152,25 +156,25 @@ async function handleSave(){
|
|
|
const params = {
|
|
|
AnalystId:mediaData.author.Id,
|
|
|
AnalystName:mediaData.author.Name,
|
|
|
- AudioName:mediaData.mediaName,
|
|
|
SrcUrl:mediaData.fileUrl,
|
|
|
PermissionIds:Array.isArray(mediaData.labels)?mediaData.labels.join(','):'',
|
|
|
- DurationMillisecond:parseInt(mediaData.duration*1000)
|
|
|
}
|
|
|
const otherParams = props.mediaType==='audio'?{
|
|
|
- AudioId:mediaData.mediaId
|
|
|
+ AudioName:mediaData.mediaName,
|
|
|
+ DurationMillisecond:parseInt(mediaData.duration*1000)
|
|
|
}:{
|
|
|
- VideoId:mediaData.mediaId,
|
|
|
- CoverSrc:mediaData.mediaCover
|
|
|
+ VideoName:mediaData.mediaName,
|
|
|
+ CoverSrc:mediaData.mediaCover,
|
|
|
+ DurationMillisecond:mediaData.duration
|
|
|
}
|
|
|
if(props.modifyType==='add'){
|
|
|
res = props.mediaType==='audio'
|
|
|
- ? await apiAudio.addAudio(params)
|
|
|
- : await apiVideo.addVideo({...params,CoverSrc:mediaData.mediaCover})
|
|
|
+ ? await apiAudio.addAudio({...params,...otherParams})
|
|
|
+ : await apiVideo.addVideo({...params,...otherParams})
|
|
|
}else{
|
|
|
res = props.mediaType==='audio'
|
|
|
- ? await apiAudio.editAudio({...params,...otherParams})
|
|
|
- : await apiVideo.editVideo({...params,...otherParams})
|
|
|
+ ? await apiAudio.editAudio({...params,...otherParams,AudioId:mediaData.mediaId||0})
|
|
|
+ : await apiVideo.editVideo({...params,...otherParams,VideoId:mediaData.mediaId||0})
|
|
|
}
|
|
|
if(res.Ret!==200) return
|
|
|
ElMessage.success(`${props.modifyType==='add'?'添加':'编辑'}成功`)
|
|
@@ -206,9 +210,10 @@ function handleUploadImg(file){
|
|
|
<el-input placeholder="请上传文件" v-model="mediaData.fileUrl" disabled>
|
|
|
<template #append>
|
|
|
<el-button
|
|
|
+ :loading="uploadLoading"
|
|
|
@click="handleUpload"
|
|
|
style="background-color: #086CE0;color:#fff;border-top-left-radius:0;border-bottom-left-radius:0;">
|
|
|
- 上传{{mediaName}}
|
|
|
+ {{uploadLoading?`上传中...`:`上传${mediaName}`}}
|
|
|
</el-button>
|
|
|
<el-upload
|
|
|
ref="uploadRef"
|