修复画廊下载按钮和下载链接

This commit is contained in:
root 2026-07-11 15:36:14 +08:00
parent 1542369770
commit bd7fba5184
2 changed files with 21 additions and 5 deletions

View File

@ -84,7 +84,7 @@
</table>
<template #footer>
<el-button @click="postTask" v-if="chosenGallery.availableResolution">下载</el-button>
<el-button @click="window.open(chosenGallery.download)" v-else>下载文件</el-button>
<el-button @click="downloadChosenGallery" v-else-if="chosenGallery.status === '下载完成'">下载文件</el-button>
<el-button @click="readOnlineGallery(chosenGallery)">在线预览</el-button>
<el-button v-if="chosenGallery.status === '下载完成'" @click="deleteGallery">删除</el-button>
</template>
@ -271,6 +271,13 @@ function deleteGallery(){
store.dispatch("deleteGallery", chosenGallery.value.gid)
}
function downloadChosenGallery(){
if(chosenGallery.value.download)
window.open(chosenGallery.value.download)
else
ElMessage({message: "下载地址不存在,请刷新任务后重试", type: "error"})
}
function validate(){
if(AuthCode.value.trim() === ""){
ElMessage("请输入授权码后再验证")

View File

@ -64,8 +64,12 @@ const actions = {
AuthCode: context.state.AuthCode
}
}).then((res) => {
if(res.data.result === 'success')
context.commit("_setChosenGallery", {gallery: JSON.parse(res.data.data)})
if(res.data.result === 'success'){
let gallery = JSON.parse(res.data.data)
if(gallery.status === "下载完成")
gallery.download = buildGalleryDownloadUrl(gallery.gid, context.state.AuthCode)
context.commit("_setChosenGallery", {gallery})
}
else
ElMessage("查询失败")
})
@ -237,7 +241,7 @@ const mutations = {
break;
case "下载完成":
task.progress = task.status
task.download = GalleryManageUrl + "/file/" + encodeURI(task.name) + ".zip?AuthCode=" + state.AuthCode + "&gid=" + task.gid
task.download = buildGalleryDownloadUrl(task.gid, state.AuthCode)
break;
}
@ -483,6 +487,11 @@ function getShortname(name){
return name.replace(/\s*\[[^\]]*\]\s*/g, '').replace(/\s*\([^\)]*\)\s*/g, '').trim()
}
function buildGalleryDownloadUrl(gid, AuthCode){
let params = new URLSearchParams({AuthCode, gid: gid.toString()})
return GalleryManageUrl + "/file/" + gid + ".zip?" + params.toString()
}
function confirmCurrentTask(state){
switch (state.category){
case 'myDownload':