diff --git a/src/components/DashBoard.vue b/src/components/DashBoard.vue index 4d1e744..1cb9816 100644 --- a/src/components/DashBoard.vue +++ b/src/components/DashBoard.vue @@ -109,13 +109,14 @@ import store from "../store"; import {computed, ref, onMounted} from "vue"; import {ElMessage} from "element-plus" +//授权码相关 let AuthCode = ref("") let isRemember = ref(false) let isAlterAuthCode = ref(false) let newAuthCode = ref("") let tempAuthCode = ref("") - +//查询相关 let type = ref("link") let param = ref("") diff --git a/src/components/Side.vue b/src/components/Side.vue index ac0fefa..e0ccf35 100644 --- a/src/components/Side.vue +++ b/src/components/Side.vue @@ -171,6 +171,7 @@ let isEditingTag = ref(false) //是否打开播放面板 let isPlaying = ref(false) +//在线播放链接以及播放器实例 let current_video_link = ref("") let player = ref() @@ -373,7 +374,6 @@ function initPlayer(){ videoInit: true, lang: 'zh-cn' }) - } function destroyPlayer(){ player.value.destroy() diff --git a/src/store/index.js b/src/store/index.js index 1f1174f..118c79a 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -14,13 +14,24 @@ const actions = { AuthCode: state.AuthCode } }).then((res) => { - if(res.data.result === "success") - context.commit("_updateGalleryTasks", {tasks:JSON.parse(res.data.data), type}) + if(res.data.result === "success") { + 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') { context.dispatch("updateGalleryTasks", "all").then() - clearInterval(state.refreshTimer) - state.refreshTimer = 0 + clearInterval(state.galleryRefreshTimer) + state.galleryRefreshTimer = 0 } }) }, @@ -31,12 +42,23 @@ const actions = { AuthCode: state.AuthCode } }).then(res => { - if(res.data.result === "success") - context.commit("_updateVideoTasks", {tasks:JSON.parse(res.data.data), type}) + if(res.data.result === "success") { + 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') { - clearInterval(state.refreshTimer) - state.refreshTimer = 0 + clearInterval(state.videoRefreshTimer) + state.videoRefreshTimer = 0 context.dispatch("updateVideoTasks", "all").then() } }) @@ -50,8 +72,8 @@ const actions = { if(res.data.result === "success") { ElMessage("提交成功") context.commit("_setChosenGallery", {gallery: false, resolution:data.targetResolution}) - if(state.refreshTimer === 0) - state.refreshTimer = setInterval(() => { + if(state.galleryRefreshTimer === 0) + state.galleryRefreshTimer = setInterval(() => { context.dispatch("updateGalleryTasks", "undone").then() }, 20000) } @@ -72,8 +94,8 @@ const actions = { if(res.data.result === "success") { ElMessage("提交成功") context.commit("_setChosenVideo", {video: false, resolution: data.targetResolution}) - if(state.refreshTimer === 0) - state.refreshTimer = setInterval(() => { + if(state.videoRefreshTimer === 0) + state.videoRefreshTimer = setInterval(() => { context.dispatch("updateVideoTasks", "undone").then() }, 20000) } @@ -138,11 +160,11 @@ const actions = { updateGallery(context, link){ axios.post(GalleryManageUrl + "/update", qs.stringify({AuthCode: state.AuthCode, link})) .then((res) => { - if(res.data.result === 'success' && state.refreshTimer === 0){ + if(res.data.result === 'success' && state.galleryRefreshTimer === 0){ setTimeout(() => { context.dispatch("updateGalleryTasks", "all").then() }, 5000) - state.refreshTimer = setInterval(() => { + state.galleryRefreshTimer = setInterval(() => { context.dispatch("updateGalleryTasks", "undone").then() }, 20000) } @@ -297,55 +319,60 @@ const actions = { const mutations = { _collectGallery(state, gid){ - state.totalGalleryTask.forEach((gallery) => { - if(!gallery.isCollect && gallery.gid === gid){ - gallery.isCollect = true - state.collectGallery.push(gallery) + let tasks = state.totalGalleryTask + for(let i=0; i< tasks.length; i++){ + if(!tasks[i].isCollect && tasks[i].gid === gid){ + tasks[i].isCollect = true + state.collectGallery.push(tasks[i]) } - }) + } }, _collectVideo(state, id){ - state.totalVideoTask.forEach((video) => { - if(!video.isCollect && video.id === id){ - video.isCollect = true - state.collectVideo.push(video) + let tasks = state.totalVideoTask + for(let i=0; i< tasks.length; i++){ + if(!tasks[i].isCollect && tasks[i].id === id){ + tasks[i].isCollect = true + state.collectGallery.push(tasks[i]) } - }) + } }, _disCollectGallery(state, gid){ - state.collectGallery.splice(0) - state.totalGalleryTask.forEach((gallery) => { - if(gallery.isCollect && gallery.gid === gid) - gallery.isCollect = false - - else if(gallery.isCollect) - state.collectGallery.push(gallery) - }) + let index + for(let i=0; i < state.collectGallery.length; i++){ + if(state.collectGallery[i].gid === gid){ + index = i + break + } + } + state.collectGallery[index].isCollect = false + state.collectGallery.splice(index, 1) }, _disCollectVideo(state, id){ - state.collectVideo.splice(0) - state.totalVideoTask.forEach((video) => { - if(video.isCollect && video.id === id) - video.isCollect = false - - else if(video.isCollect) - state.collectVideo.push(video) - - }) + let index + for(let i=0; i < state.collectVideo.length; i++){ + if(state.collectVideo[i].id === id){ + index = i + break + } + } + state.collectVideo[index].isCollect = false + state.collectVideo.splice(index, 1) }, _updateGalleryTag(state, data){ - state.totalGalleryTask.forEach((gallery) => { - if(gallery.gid === data.gid){ - gallery.tag = data.tag + for(let i=0; i < state.totalGalleryTask.length; i++){ + if(state.totalGalleryTask[i].gid === data.gid){ + state.totalGalleryTask[i].tag = data.tag + break } - }) + } }, _updateVideoTag(state, data){ - state.totalVideoTask.forEach((video) => { - if(video.id === data.id){ - video.tag = data.tag + for(let i=0; i < state.totalVideoTask.length; i++){ + if(state.totalVideoTask[i].gid === data.gid){ + state.totalVideoTask[i].tag = data.tag + break } - }) + } }, _updateGalleryTasks(state, data){ let {tasks, type} = data @@ -382,22 +409,23 @@ const mutations = { task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh") //处理标签 - if (task.tag === undefined) { + if (!'tag' in task) { task.tag = "" } //处理是否收藏 - if(task.collector !== undefined){ + if('collector' in task){ let collector = task.collector.split(",") - task.collector = undefined - collector.forEach((id) => { - if(parseInt(id) === state.userId) { + delete task.collector + for(let i=0; i { preDeleteIndex = -1 if(task.status !== "下载完成") - tasks.forEach((newTask, index) => { - if(newTask.name === task.name){ - preDeleteIndex = index - task.status = newTask.status - task.proceeding = newTask.proceeding - if(task.proceeding === 0) + for(let i=0; i < tasks.length; i++) + if(tasks[i].name === task.name) { + preDeleteIndex = i + task.status = tasks[i].status + task.proceeding = tasks[i].proceeding + if (task.proceeding === 0) task.progress = task.status else task.progress = (Math.round((task.proceeding / task.pages) * 100)).toString() + "%" } - }) if(preDeleteIndex !== -1) delete tasks[preDeleteIndex] @@ -479,11 +506,11 @@ const mutations = { task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh") //处理标签 - if(task.tag === undefined) + if(! 'tag' in task) task.tag = "" //处理是否收藏 - if(task.collector !== undefined){ + if('collector' in task){ let collector = task.collector.split(",") delete task.collector for(let i=0; i { preDeleteIndex = -1 if(task.status !== "下载完成") - tasks.forEach((newTask, index) => { - if(newTask.name === task.name){ - task.progress = task.status - preDeleteIndex = index + for(let i=0; i < tasks.length; i++) + if(tasks[i].name === task.name){ + task.progress = tasks[i].status + preDeleteIndex = i + break } - }) if(preDeleteIndex !== -1) delete tasks[preDeleteIndex] state.totalVideoTask.push(task) @@ -594,9 +621,8 @@ const mutations = { if (task.name.includes(keyword)) state.searchTask.push(task) }) - if (state.searchTask.length === 0) { + if (state.searchTask.length === 0) ElMessage("未找到该关键字的任务") - } } }, _searchLocalByTag(state, tags) { @@ -623,17 +649,18 @@ const mutations = { } }, _deleteGallery(state, gid){ - state.totalGalleryTask.forEach((item, index, arr) => { - if(item.gid === gid){ - arr.splice(index, 1) + for(let i=0; i { - if(item.id === id) - arr.splice(index, 1) - }) + for(let i=0; i { + state.totalGalleryTask = state.totalGalleryTask.sort((before, after) => { return before.name > after.name ? 1: -1 }) state.totalVideoTask = state.totalVideoTask.sort((before, after) => { @@ -673,7 +700,7 @@ const mutations = { }) break case "shortName": - state.totalGalleryTask = state.totalGalleryTask.sort((before, after) => { + state.totalGalleryTask = state.totalGalleryTask.sort((before, after) => { return before.shortName > after.shortName ? 1: -1 }) break @@ -751,7 +778,8 @@ const state = { isAuth:false, //是否授权 AuthCode:'', //授权码 loadComplete:false, //是否加载完成 - refreshTimer:0, //更新计时器id + galleryRefreshTimer:0, //本子更新计时器id + videoRefreshTimer:0, //视频更新计时器id isInclude:false, //是否搜索到任务 searchTask:[], //搜索到的任务