每次访问时倒遍历十个任务的状态,未下完则开启定时刷新。优化部分foreach,性能提升。优化代码。(同步更新)
This commit is contained in:
parent
74256e6c3b
commit
5598a37ad4
@ -110,12 +110,14 @@ import store from "../store";
|
|||||||
import {computed, ref, onMounted} from "vue";
|
import {computed, ref, onMounted} from "vue";
|
||||||
import {ElMessage} from "element-plus"
|
import {ElMessage} from "element-plus"
|
||||||
|
|
||||||
|
//授权码相关
|
||||||
let AuthCode = ref("")
|
let AuthCode = ref("")
|
||||||
let isRemember = ref(false)
|
let isRemember = ref(false)
|
||||||
let isAlterAuthCode = ref(false)
|
let isAlterAuthCode = ref(false)
|
||||||
let newAuthCode = ref("")
|
let newAuthCode = ref("")
|
||||||
let tempAuthCode = ref("")
|
let tempAuthCode = ref("")
|
||||||
|
|
||||||
|
//查询相关
|
||||||
let type = ref("link")
|
let type = ref("link")
|
||||||
let param = ref("")
|
let param = ref("")
|
||||||
|
|
||||||
|
|||||||
@ -163,7 +163,7 @@ let isEditingTag = ref(false)
|
|||||||
//是否打开播放面板
|
//是否打开播放面板
|
||||||
let isPlaying = ref(false)
|
let isPlaying = ref(false)
|
||||||
|
|
||||||
//当前视频链接
|
//当前视频链接以及播放器实例
|
||||||
let current_video_link = ref("")
|
let current_video_link = ref("")
|
||||||
let player = ref()
|
let player = ref()
|
||||||
|
|
||||||
|
|||||||
@ -14,13 +14,24 @@ const actions = {
|
|||||||
AuthCode: state.AuthCode
|
AuthCode: state.AuthCode
|
||||||
}
|
}
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if(res.data.result === "success")
|
if(res.data.result === "success") {
|
||||||
context.commit("_updateGalleryTasks", {tasks:JSON.parse(res.data.data), type})
|
let tasks = JSON.parse(res.data.data)
|
||||||
|
if (type === "all" && state.galleryRefreshTimer === 0) { //判断是否有未下载完成的本子以及定时更新是否开启
|
||||||
|
for (let i = tasks.length - 1; i > tasks.length - 11; i--) //从后往前遍历十个本子,查看是否有未下载完成的本子
|
||||||
|
if (tasks[i].status !== "下载完成") {
|
||||||
|
state.galleryRefreshTimer = setInterval(() => {
|
||||||
|
context.dispatch("updateGalleryTasks", "undone").then()
|
||||||
|
}, 20000)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context.commit("_updateGalleryTasks", {tasks, type})
|
||||||
|
}
|
||||||
|
|
||||||
else if(type === 'undone') {
|
else if(type === 'undone') {
|
||||||
context.dispatch("updateGalleryTasks", "all").then()
|
context.dispatch("updateGalleryTasks", "all").then()
|
||||||
clearInterval(state.refreshTimer)
|
clearInterval(state.galleryRefreshTimer)
|
||||||
state.refreshTimer = 0
|
state.galleryRefreshTimer = 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -31,12 +42,23 @@ const actions = {
|
|||||||
AuthCode: state.AuthCode
|
AuthCode: state.AuthCode
|
||||||
}
|
}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if(res.data.result === "success")
|
if(res.data.result === "success") {
|
||||||
context.commit("_updateVideoTasks", {tasks:JSON.parse(res.data.data), type})
|
let tasks = JSON.parse(res.data.data)
|
||||||
|
if (type === "all" && state.videoRefreshTimer === 0) { //判断是否有未下载完成的视频以及定时更新是否开启
|
||||||
|
for (let i = tasks.length - 1; i > tasks.length - 11; i--) //从后往前遍历十个本子,查看是否有未下载完成的视频
|
||||||
|
if (tasks[i].status !== "下载完成") {
|
||||||
|
state.videoRefreshTimer = setInterval(() => {
|
||||||
|
context.dispatch("updateVideoTasks", "undone").then()
|
||||||
|
}, 20000)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context.commit("_updateVideoTasks", {tasks, type})
|
||||||
|
}
|
||||||
|
|
||||||
else if(type === 'undone') {
|
else if(type === 'undone') {
|
||||||
clearInterval(state.refreshTimer)
|
clearInterval(state.videoRefreshTimer)
|
||||||
state.refreshTimer = 0
|
state.videoRefreshTimer = 0
|
||||||
context.dispatch("updateVideoTasks", "all").then()
|
context.dispatch("updateVideoTasks", "all").then()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -50,8 +72,8 @@ const actions = {
|
|||||||
if(res.data.result === "success") {
|
if(res.data.result === "success") {
|
||||||
ElMessage("提交成功")
|
ElMessage("提交成功")
|
||||||
context.commit("_setChosenGallery", {gallery: false, resolution: data.targetResolution})
|
context.commit("_setChosenGallery", {gallery: false, resolution: data.targetResolution})
|
||||||
if(state.refreshTimer === 0)
|
if(state.galleryRefreshTimer === 0)
|
||||||
state.refreshTimer = setInterval(() => {
|
state.galleryRefreshTimer = setInterval(() => {
|
||||||
context.dispatch("updateGalleryTasks", "undone").then()
|
context.dispatch("updateGalleryTasks", "undone").then()
|
||||||
}, 20000)
|
}, 20000)
|
||||||
}
|
}
|
||||||
@ -72,8 +94,8 @@ const actions = {
|
|||||||
if(res.data.result === "success") {
|
if(res.data.result === "success") {
|
||||||
ElMessage("提交成功")
|
ElMessage("提交成功")
|
||||||
context.commit("_setChosenVideo", {video: false, resolution: data.targetResolution})
|
context.commit("_setChosenVideo", {video: false, resolution: data.targetResolution})
|
||||||
if(state.refreshTimer === 0)
|
if(state.videoRefreshTimer === 0)
|
||||||
state.refreshTimer = setInterval(() => {
|
state.videoRefreshTimer = setInterval(() => {
|
||||||
context.dispatch("updateVideoTasks", "undone").then()
|
context.dispatch("updateVideoTasks", "undone").then()
|
||||||
}, 20000)
|
}, 20000)
|
||||||
}
|
}
|
||||||
@ -138,11 +160,11 @@ const actions = {
|
|||||||
updateGallery(context, link){
|
updateGallery(context, link){
|
||||||
axios.post(GalleryManageUrl + "/update", qs.stringify({AuthCode: state.AuthCode, link}))
|
axios.post(GalleryManageUrl + "/update", qs.stringify({AuthCode: state.AuthCode, link}))
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if(res.data.result === 'success' && state.refreshTimer === 0){
|
if(res.data.result === 'success' && state.galleryRefreshTimer === 0){
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
context.dispatch("updateGalleryTasks", "all").then()
|
context.dispatch("updateGalleryTasks", "all").then()
|
||||||
}, 5000)
|
}, 5000)
|
||||||
state.refreshTimer = setInterval(() => {
|
state.galleryRefreshTimer = setInterval(() => {
|
||||||
context.dispatch("updateGalleryTasks", "undone").then()
|
context.dispatch("updateGalleryTasks", "undone").then()
|
||||||
}, 20000)
|
}, 20000)
|
||||||
}
|
}
|
||||||
@ -285,55 +307,60 @@ const actions = {
|
|||||||
|
|
||||||
const mutations = {
|
const mutations = {
|
||||||
_collectGallery(state, gid){
|
_collectGallery(state, gid){
|
||||||
state.totalGalleryTask.forEach((gallery) => {
|
let tasks = state.totalGalleryTask
|
||||||
if(!gallery.isCollect && gallery.gid === gid){
|
for(let i=0; i< tasks.length; i++){
|
||||||
gallery.isCollect = true
|
if(!tasks[i].isCollect && tasks[i].gid === gid){
|
||||||
state.collectGallery.push(gallery)
|
tasks[i].isCollect = true
|
||||||
|
state.collectGallery.push(tasks[i])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
},
|
||||||
_collectVideo(state, id){
|
_collectVideo(state, id){
|
||||||
state.totalVideoTask.forEach((video) => {
|
let tasks = state.totalVideoTask
|
||||||
if(!video.isCollect && video.id === id){
|
for(let i=0; i< tasks.length; i++){
|
||||||
video.isCollect = true
|
if(!tasks[i].isCollect && tasks[i].id === id){
|
||||||
state.collectVideo.push(video)
|
tasks[i].isCollect = true
|
||||||
|
state.collectGallery.push(tasks[i])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
},
|
||||||
_disCollectGallery(state, gid){
|
_disCollectGallery(state, gid){
|
||||||
state.collectGallery.splice(0)
|
let index
|
||||||
state.totalGalleryTask.forEach((gallery) => {
|
for(let i=0; i < state.collectGallery.length; i++){
|
||||||
if(gallery.isCollect && gallery.gid === gid)
|
if(state.collectGallery[i].gid === gid){
|
||||||
gallery.isCollect = false
|
index = i
|
||||||
|
break
|
||||||
else if(gallery.isCollect)
|
}
|
||||||
state.collectGallery.push(gallery)
|
}
|
||||||
})
|
state.collectGallery[index].isCollect = false
|
||||||
|
state.collectGallery.splice(index, 1)
|
||||||
},
|
},
|
||||||
_disCollectVideo(state, id){
|
_disCollectVideo(state, id){
|
||||||
state.collectVideo.splice(0)
|
let index
|
||||||
state.totalVideoTask.forEach((video) => {
|
for(let i=0; i < state.collectVideo.length; i++){
|
||||||
if(video.isCollect && video.id === id)
|
if(state.collectVideo[i].id === id){
|
||||||
video.isCollect = false
|
index = i
|
||||||
|
break
|
||||||
else if(video.isCollect)
|
}
|
||||||
state.collectVideo.push(video)
|
}
|
||||||
|
state.collectVideo[index].isCollect = false
|
||||||
})
|
state.collectVideo.splice(index, 1)
|
||||||
},
|
},
|
||||||
_updateGalleryTag(state, data){
|
_updateGalleryTag(state, data){
|
||||||
state.totalGalleryTask.forEach((gallery) => {
|
for(let i=0; i < state.totalGalleryTask.length; i++){
|
||||||
if(gallery.gid === data.gid){
|
if(state.totalGalleryTask[i].gid === data.gid){
|
||||||
gallery.tag = data.tag
|
state.totalGalleryTask[i].tag = data.tag
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
},
|
||||||
_updateVideoTag(state, data){
|
_updateVideoTag(state, data){
|
||||||
state.totalVideoTask.forEach((video) => {
|
for(let i=0; i < state.totalVideoTask.length; i++){
|
||||||
if(video.id === data.id){
|
if(state.totalVideoTask[i].gid === data.gid){
|
||||||
video.tag = data.tag
|
state.totalVideoTask[i].tag = data.tag
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
},
|
||||||
_updateGalleryTasks(state, data){
|
_updateGalleryTasks(state, data){
|
||||||
let {tasks, type} = data
|
let {tasks, type} = data
|
||||||
@ -341,6 +368,7 @@ const mutations = {
|
|||||||
state.totalGalleryTask.splice(0)
|
state.totalGalleryTask.splice(0)
|
||||||
state.collectGallery.slice(0)
|
state.collectGallery.slice(0)
|
||||||
state.downloadGallery.splice(0)
|
state.downloadGallery.splice(0)
|
||||||
|
|
||||||
tasks.forEach((task) => {
|
tasks.forEach((task) => {
|
||||||
//处理名字
|
//处理名字
|
||||||
task.shortName = getShortname(task.name)
|
task.shortName = getShortname(task.name)
|
||||||
@ -369,22 +397,23 @@ const mutations = {
|
|||||||
task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh")
|
task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh")
|
||||||
|
|
||||||
//处理标签
|
//处理标签
|
||||||
if (task.tag === undefined) {
|
if (!'tag' in task) {
|
||||||
task.tag = ""
|
task.tag = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
//处理是否收藏
|
//处理是否收藏
|
||||||
if(task.collector !== undefined){
|
if('collector' in task){
|
||||||
let collector = task.collector.split(",")
|
let collector = task.collector.split(",")
|
||||||
task.collector = undefined
|
delete task.collector
|
||||||
collector.forEach((id) => {
|
for(let i=0; i<collector.length; i++){
|
||||||
if(parseInt(id) === state.userId) {
|
if(parseInt(collector[i]) === state.userId){
|
||||||
task.isCollect = true
|
task.isCollect = true
|
||||||
state.collectGallery.push(task)
|
state.collectGallery.push(task)
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
if(task.isCollect === undefined)
|
if(!'isCollect' in task)
|
||||||
task.isCollect = false
|
task.isCollect = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,17 +431,16 @@ const mutations = {
|
|||||||
tempArray.forEach((task) => {
|
tempArray.forEach((task) => {
|
||||||
preDeleteIndex = -1
|
preDeleteIndex = -1
|
||||||
if(task.status !== "下载完成")
|
if(task.status !== "下载完成")
|
||||||
tasks.forEach((newTask, index) => {
|
for(let i=0; i < tasks.length; i++)
|
||||||
if(newTask.name === task.name){
|
if(tasks[i].name === task.name) {
|
||||||
preDeleteIndex = index
|
preDeleteIndex = i
|
||||||
task.status = newTask.status
|
task.status = tasks[i].status
|
||||||
task.proceeding = newTask.proceeding
|
task.proceeding = tasks[i].proceeding
|
||||||
if (task.proceeding === 0)
|
if (task.proceeding === 0)
|
||||||
task.progress = task.status
|
task.progress = task.status
|
||||||
else
|
else
|
||||||
task.progress = (Math.round((task.proceeding / task.pages) * 100)).toString() + "%"
|
task.progress = (Math.round((task.proceeding / task.pages) * 100)).toString() + "%"
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
if(preDeleteIndex !== -1)
|
if(preDeleteIndex !== -1)
|
||||||
delete tasks[preDeleteIndex]
|
delete tasks[preDeleteIndex]
|
||||||
@ -466,11 +494,11 @@ const mutations = {
|
|||||||
task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh")
|
task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh")
|
||||||
|
|
||||||
//处理标签
|
//处理标签
|
||||||
if(task.tag === undefined)
|
if(! 'tag' in task)
|
||||||
task.tag = ""
|
task.tag = ""
|
||||||
|
|
||||||
//处理是否收藏
|
//处理是否收藏
|
||||||
if(task.collector !== undefined){
|
if('collector' in task){
|
||||||
let collector = task.collector.split(",")
|
let collector = task.collector.split(",")
|
||||||
delete task.collector
|
delete task.collector
|
||||||
for(let i=0; i<collector.length; i++){
|
for(let i=0; i<collector.length; i++){
|
||||||
@ -481,7 +509,7 @@ const mutations = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(task.isCollect === undefined)
|
if(!'isCollect' in task)
|
||||||
task.isCollect = false
|
task.isCollect = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,12 +527,12 @@ const mutations = {
|
|||||||
tempArray.forEach((task) => {
|
tempArray.forEach((task) => {
|
||||||
preDeleteIndex = -1
|
preDeleteIndex = -1
|
||||||
if(task.status !== "下载完成")
|
if(task.status !== "下载完成")
|
||||||
tasks.forEach((newTask, index) => {
|
for(let i=0; i < tasks.length; i++)
|
||||||
if(newTask.name === task.name){
|
if(tasks[i].name === task.name){
|
||||||
task.progress = task.status
|
task.progress = tasks[i].status
|
||||||
preDeleteIndex = index
|
preDeleteIndex = i
|
||||||
|
break
|
||||||
}
|
}
|
||||||
})
|
|
||||||
if(preDeleteIndex !== -1)
|
if(preDeleteIndex !== -1)
|
||||||
delete tasks[preDeleteIndex]
|
delete tasks[preDeleteIndex]
|
||||||
state.totalVideoTask.push(task)
|
state.totalVideoTask.push(task)
|
||||||
@ -581,10 +609,9 @@ const mutations = {
|
|||||||
if (task.name.includes(keyword))
|
if (task.name.includes(keyword))
|
||||||
state.searchTask.push(task)
|
state.searchTask.push(task)
|
||||||
})
|
})
|
||||||
if (state.searchTask.length === 0) {
|
if (state.searchTask.length === 0)
|
||||||
ElMessage("未找到该关键字的任务")
|
ElMessage("未找到该关键字的任务")
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
_searchLocalByTag(state, tags) {
|
_searchLocalByTag(state, tags) {
|
||||||
state.searchTask.splice(0)
|
state.searchTask.splice(0)
|
||||||
@ -610,17 +637,18 @@ const mutations = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
_deleteGallery(state, gid){
|
_deleteGallery(state, gid){
|
||||||
state.totalGalleryTask.forEach((item, index, arr) => {
|
for(let i=0; i<state.totalGalleryTask.length; i++)
|
||||||
if(item.gid === gid){
|
if(state.totalGalleryTask[i].gid === gid){
|
||||||
arr.splice(index, 1)
|
state.totalGalleryTask.splice(i, 1)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
},
|
||||||
_deleteVideo(state, id){
|
_deleteVideo(state, id){
|
||||||
state.totalVideoTask.forEach((item, index, arr) => {
|
for(let i=0; i<state.totalVideoTask.length; i++)
|
||||||
if(item.id === id)
|
if(state.totalGalleryTask[i].id === id){
|
||||||
arr.splice(index, 1)
|
state.totalVideoTask.splice(i, 1)
|
||||||
})
|
break
|
||||||
|
}
|
||||||
},
|
},
|
||||||
_setChosenGallery(state,data){
|
_setChosenGallery(state,data){
|
||||||
if(data.gallery === false) {
|
if(data.gallery === false) {
|
||||||
@ -741,7 +769,8 @@ const state = {
|
|||||||
isAuth:false, //是否授权
|
isAuth:false, //是否授权
|
||||||
AuthCode:'', //授权码
|
AuthCode:'', //授权码
|
||||||
loadComplete:false, //是否加载完成
|
loadComplete:false, //是否加载完成
|
||||||
refreshTimer:0, //更新计时器id
|
galleryRefreshTimer:0, //本子更新计时器id
|
||||||
|
videoRefreshTimer:0, //视频更新计时器id
|
||||||
|
|
||||||
isInclude:false, //是否搜索到任务
|
isInclude:false, //是否搜索到任务
|
||||||
searchTask:[], //搜索到的任务
|
searchTask:[], //搜索到的任务
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user