精简代码,抽取公共代码为函数,修复bug(同步更新)

This commit is contained in:
chuzhongzai
2023-02-27 22:52:36 +08:00
parent 5598a37ad4
commit 66cf457240
3 changed files with 184 additions and 164 deletions
+128 -112
View File
@@ -178,7 +178,7 @@ const actions = {
//初始化
context.dispatch("loadMaskDomain").then()
context.dispatch("loadWeekUsedAmount").then()
context.dispatch("updateGalleryTasks", "all").then()
context.dispatch("updateGalleryTasks", "all").then(() => confirmCurrentTask(context.state))
context.dispatch("updateVideoTasks", "all").then()
//手机不需要设置宽度
@@ -418,7 +418,7 @@ const mutations = {
}
//处理是否下载
if(task.downloader === state.username)
if(task.downloader === state.userId)
state.downloadGallery.push(task)
state.totalGalleryTask.push(task)
@@ -514,7 +514,7 @@ const mutations = {
}
//处理是否下载
if(task.downloader === state.username)
if(task.downloader === state.userId)
state.downloadVideo.push(task)
state.totalVideoTask.push(task)
@@ -564,17 +564,13 @@ const mutations = {
localStorage.removeItem("auth")
},
_searchLocalByLink(state, link){
let tasks
let tasks = state.currentTasks
let i = 0
let gid = null
let name = null
if(state.showType === "gallery") {
tasks = state.totalGalleryTask
if(state.showType === "gallery")
gid = link.split("/")[4]
}
else
tasks = state.totalVideoTask
if(gid === null)
for (i = 0; i < tasks.length; i++) {
@@ -600,11 +596,7 @@ const mutations = {
state.searchTask.splice(0)
if(keyword.trim() !== '') {
state.page = 1
let tasks
if (state.showType === "video")
tasks = state.totalVideoTask
else
tasks = state.totalGalleryTask
let tasks = state.currentTasks
tasks.forEach((task) => {
if (task.name.includes(keyword))
state.searchTask.push(task)
@@ -619,17 +611,19 @@ const mutations = {
let tagAmount = tags.length
let hitAmount
let tasks = state.totalGalleryTask
let tasks = state.currentTasks
if (tags[0].trim() !== '') {
tasks.forEach((task) => {
hitAmount = 0
tags.forEach((tag) => {
if (task.tag.includes(tag))
hitAmount++
})
if (hitAmount === tagAmount)
state.searchTask.push(task)
if('tag' in task) {
hitAmount = 0
tags.forEach((tag) => {
if (task.tag.includes(tag))
hitAmount++
})
if (hitAmount === tagAmount)
state.searchTask.push(task)
}
})
if (state.searchTask.length === 0)
@@ -637,18 +631,12 @@ const mutations = {
}
},
_deleteGallery(state, gid){
for(let i=0; i<state.totalGalleryTask.length; i++)
if(state.totalGalleryTask[i].gid === gid){
state.totalGalleryTask.splice(i, 1)
break
}
let tasks = [state.totalGalleryTask, state.downloadGallery, state.collectGallery]
deleteTask(tasks, 'gid', gid)
},
_deleteVideo(state, id){
for(let i=0; i<state.totalVideoTask.length; i++)
if(state.totalGalleryTask[i].id === id){
state.totalVideoTask.splice(i, 1)
break
}
let tasks = [state.totalVideoTask, state.downloadVideo, state.collectVideo]
deleteTask(tasks, 'id', id)
},
_setChosenGallery(state,data){
if(data.gallery === false) {
@@ -672,33 +660,21 @@ const mutations = {
}
state.chosenVideo = data.video
},
_setCategory(state, category){
state.category = category
confirmCurrentTask(state)
},
_setShowType(state, showType){
state.showType = showType
confirmCurrentTask(state)
if(showType === 'video' && state.sortType === "shortName") {
state.sortType = 'name'
sortTasks(state)
}
},
_setSortType(state, sortType){
state.sortType = sortType
switch (sortType) {
case "name":
state.totalGalleryTask = state.totalGalleryTask.sort((before, after) => {
return before.name > after.name ? 1: -1
})
state.totalVideoTask = state.totalVideoTask.sort((before, after) => {
return before.name > after.name ? 1: -1
})
break
case "shortName":
state.totalGalleryTask = state.totalGalleryTask.sort((before, after) => {
return before.shortName > after.shortName ? 1: -1
})
break
case "createTime":
state.totalGalleryTask = state.totalGalleryTask.sort((before, after) => {
return before.createTime - after.createTime
})
state.totalVideoTask = state.totalVideoTask.sort((before, after) => {
return before.createTime - after.createTime
})
}
sortTasks(state)
},
_setShowNameType(state, type){
if(type === "shortName")
@@ -743,86 +719,65 @@ const mutations = {
}
const state = {
totalGalleryTask:[], //存放本子数据的数组
chosenGallery:false, //准备下载的本子
thumbnailGallery:{}, //预览本子
collectGallery:[], //收藏的本子
downloadGallery:[], //下载的本子
totalGalleryTask: [], //存放本子数据的数组
chosenGallery: false, //准备下载的本子
thumbnailGallery: {}, //预览本子
collectGallery: [], //收藏的本子
downloadGallery: [], //下载的本子
onlineLinks:{}, //在线本子链接
isOnlineReading: false, //是否在线看
currentGid: "", //当前GID
currentLinks: [], //当前本子链接
onlineLinks: {}, //在线本子链接
isOnlineReading: false, //是否在线看
currentGid: "", //当前GID
currentLinks: [], //当前本子链接
totalVideoTask:[], //存放视频数据的数组
chosenVideo:false, //准备下载的视频
collectVideo: [], //收藏的视频
downloadVideo: [], //下载的视频
totalVideoTask: [], //存放视频数据的数组
chosenVideo: false, //准备下载的视频
collectVideo: [], //收藏的视频
downloadVideo: [], //下载的视频
page:1, //当前页数
length:5, //每页能有多少个链接
defaultLength:4, //默认个数
shortLength:5, //简洁个数
page: 1, //当前页数
length: 5, //每页能有多少个链接
defaultLength: 4, //默认个数
shortLength: 5, //简洁个数
userId:-1, //用户id
username: ",", //用户名
isAuth:false, //是否授权
AuthCode:'', //授权码
loadComplete:false, //是否加载完成
galleryRefreshTimer:0, //本子更新计时器id
videoRefreshTimer:0, //视频更新计时器id
userId: -1, //用户id
username: ",", //用户名
isAuth: false, //是否授权
AuthCode: '', //授权码
loadComplete: false, //是否加载完成
galleryRefreshTimer: 0, //本子更新计时器id
videoRefreshTimer: 0, //视频更新计时器id
isInclude:false, //是否搜索到任务
searchTask:[], //搜索到的任务
isShowHistory:false, //是否打开面板
showType:"gallery", //展示类型
sortType:"shortName", //排序类型
weekUsed:{}, //每周用量
isInclude: false, //是否搜索到任务
searchTask: [], //搜索到的任务
isShowHistory: false, //是否打开面板
showType: "gallery", //展示类型
category: 'myDownload', //分类
sortType:'shortName', //排序类型
currentTasks: [], //当前任务
weekUsed: {}, //每周用量
maskDomain:[] //伪装域名
maskDomain: [] //伪装域名
}
const getters = {
galleryTasks(state){
if(state.showType === 'collect')
return state.collectGallery.slice((state.page-1)*state.length, state.page*state.length)
if(state.searchTask.length !== 0)
return state.searchTask.slice((state.page-1)*state.length, state.page*state.length)
if(state.totalGalleryTask.length !== 0)
return state.totalGalleryTask.slice((state.page-1)*state.length, state.page*state.length)
return null
},
videoTasks(state){
if(state.searchTask.length !== 0)
return state.searchTask.slice((state.page-1)*state.length, state.page*state.length)
if(state.totalVideoTask.length !== 0)
return state.totalVideoTask.slice((state.page-1)*state.length, state.page*state.length)
return null
currentTasks(state){
return state.currentTasks.slice((state.page-1)*state.length, state.page*state.length)
},
min(){
return 1
},
max(state){
let max = 0
let tasks
if(state.showType === 'collect')
tasks = state.collectGallery
else if(state.searchTask.length !== 0)
tasks = state.searchTask
else if(state.showType === "gallery")
tasks = state.totalGalleryTask
else if(state.showType === "video")
tasks = state.totalVideoTask
let tasks = state.currentTasks
if(!tasks)
return 1
max = Math.floor(tasks.length/state.length)
if(tasks.length % state.length !== 0)
if(tasks.length % state.length !== 0 || max === 0)
max += 1
if(max === 0)
return 1
return max
}
}
@@ -866,4 +821,65 @@ function getShortname(name){
} else {
return name
}
}
function confirmCurrentTask(state){
if(state.showType === "gallery")
switch (state.category){
case 'myDownload':
state.currentTasks = state.downloadGallery
break
case 'myCollect':
state.currentTasks = state.collectGallery
break
case 'total':
state.currentTasks = state.totalGalleryTask
break
}
else
switch (state.category){
case 'myDownload':
state.currentTasks = state.downloadVideo
break
case 'myCollect':
state.currentTasks = state.collectGallery
break
case 'total':
state.currentTasks = state.totalVideoTask
break
}
}
function sortTasks(state){
switch (state.sortType) {
case "name":
state.currentTasks = state.currentTasks.sort((before, after) => {
return before.name > after.name ? 1: -1
})
state.currentTasks = state.currentTasks.sort((before, after) => {
return before.name > after.name ? 1: -1
})
break
case "shortName":
state.currentTasks = state.currentTasks.sort((before, after) => {
return before.shortName > after.shortName ? 1: -1
})
break
case "createTime":
state.currentTasks = state.currentTasks.sort((before, after) => {
return before.createTime - after.createTime
})
state.currentTasks = state.currentTasks.sort((before, after) => {
return before.createTime - after.createTime
})
}
}
function deleteTask(tasks, key, value){
for(let j=0; j < tasks.length; j++)
for(let i=0; i<tasks[j].length; i++)
if(tasks[j][i][key] === value){
tasks[j].splice(i, 1)
break
}
}