新增单独的标签,移除了以前一整个的标签。允许新增、删除标签。允许对本子进行标记(与标签关联)与取消标记。重写了标签查找。确保所有接口都带有授权码。优化了搜索任务的显示。修复刚提交下载时的任务有概率没有简单名称的bug。(同步更新)
This commit is contained in:
+190
-44
@@ -39,13 +39,13 @@ const actions = {
|
||||
AuthCode: state.AuthCode,
|
||||
link: data.link,
|
||||
targetResolution: data.targetResolution,
|
||||
tag:data.tag
|
||||
})).then((res) => {
|
||||
tags:data.tags
|
||||
}, {indices:false})).then((res) => {
|
||||
if(res.data.result === "success") {
|
||||
ElMessage("提交成功")
|
||||
context.commit("_setChosenGallery", {gallery: false,
|
||||
resolution: data.targetResolution,
|
||||
tag: data.tag})
|
||||
tags: data.tags})
|
||||
if(state.galleryRefreshTimer === 0)
|
||||
state.galleryRefreshTimer = setInterval(() => {
|
||||
context.dispatch("updateGalleryTasks", "undone").then()
|
||||
@@ -113,6 +113,7 @@ const actions = {
|
||||
if(res.data.result === 'success'){
|
||||
context.commit("_authed", {AuthCode, ...JSON.parse(res.data.data)})
|
||||
//初始化
|
||||
context.dispatch("loadTags", true).then()
|
||||
context.dispatch("loadWeekUsedAmount").then()
|
||||
context.dispatch("updateGalleryTasks", "all").then(() => confirmCurrentTask(context.state))
|
||||
|
||||
@@ -135,10 +136,85 @@ const actions = {
|
||||
ElMessage("查询用量失败")
|
||||
})
|
||||
},
|
||||
loadTags(context, isShowTip){
|
||||
axios.get(GalleryManageUrl + "/allTag", {
|
||||
params: {
|
||||
AuthCode: state.AuthCode
|
||||
}
|
||||
}).then((res) => {
|
||||
if(res.data.result === "success"){
|
||||
context.commit("_loadTags", JSON.parse(res.data.data))
|
||||
if(isShowTip)
|
||||
ElMessage("加载标签成功")
|
||||
}else
|
||||
ElMessage(res.data.data)
|
||||
})
|
||||
},
|
||||
postTag(context, tag){
|
||||
axios.post(GalleryManageUrl + "/tag?" + qs.stringify({
|
||||
tag,
|
||||
AuthCode: state.AuthCode
|
||||
})
|
||||
).then((res) => {
|
||||
if (res.data.result === 'success') {
|
||||
ElMessage('创建标签成功')
|
||||
context.commit("_postTag", {tag:tag, id:parseInt(res.data.tid), usage: 0})
|
||||
}
|
||||
else
|
||||
ElMessage(res.data.data)
|
||||
})
|
||||
},
|
||||
deleteTag(context, tid){
|
||||
axios.delete(GalleryManageUrl + "/tag?" + qs.stringify({
|
||||
tid,
|
||||
AuthCode: state.AuthCode
|
||||
})).then((res) => {
|
||||
if (res.data.result === 'success') {
|
||||
ElMessage('删除标签成功')
|
||||
context.commit("_deleteTag", tid)
|
||||
}
|
||||
else
|
||||
ElMessage(res.data.data)
|
||||
})
|
||||
},
|
||||
mark(context, data){
|
||||
data.AuthCode = context.state.AuthCode
|
||||
axios.post(GalleryManageUrl + "/mark?" + qs.stringify(data)).then((res) => {
|
||||
if(res.data.result === 'success'){
|
||||
ElMessage("标记成功")
|
||||
context.commit("_mark", data)
|
||||
}else{
|
||||
ElMessage(res.data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
disMark(context, data){
|
||||
data.AuthCode = context.state.AuthCode
|
||||
axios.post(GalleryManageUrl + "/disMark?" + qs.stringify(data)).then((res) => {
|
||||
if(res.data.result === 'success'){
|
||||
ElMessage("取消标记成功")
|
||||
context.commit("_disMark", data)
|
||||
}else {
|
||||
ElMessage(res.data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
createTagAndMark(context, data){
|
||||
data.AuthCode = context.state.AuthCode
|
||||
axios.post(GalleryManageUrl + '/tagAndMark?' + qs.stringify(data)).then((res) => {
|
||||
if(res.data.result === 'success') {
|
||||
ElMessage("创建标签并标记成功")
|
||||
context.commit("_mark", {tid:parseInt(res.data.tid), gid: data.gid, usage: 1, tag:data.tag})
|
||||
|
||||
}else {
|
||||
ElMessage(res.data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
collectGallery(context, gid){
|
||||
axios.post(GalleryManageUrl + "/collect?" +qs.stringify( {
|
||||
gid,
|
||||
id:state.userId
|
||||
AuthCode:state.AuthCode
|
||||
})).then((res) => {
|
||||
ElMessage(res.data.data)
|
||||
if(res.data.result === 'success')
|
||||
@@ -149,7 +225,7 @@ const actions = {
|
||||
axios.post(GalleryManageUrl + "/disCollect?" + qs.stringify(
|
||||
{
|
||||
gid,
|
||||
id:state.userId
|
||||
AuthCode:state.AuthCode
|
||||
})).then((res) => {
|
||||
ElMessage(res.data.data)
|
||||
if(res.data.result === 'success')
|
||||
@@ -213,14 +289,6 @@ const mutations = {
|
||||
state.collectGallery[index].isCollect = false
|
||||
state.collectGallery.splice(index, 1)
|
||||
},
|
||||
_updateGalleryTag(state, data){
|
||||
for(let i=0; i < state.totalGalleryTask.length; i++){
|
||||
if(state.totalGalleryTask[i].gid === data.gid){
|
||||
state.totalGalleryTask[i].tag = data.tag
|
||||
break
|
||||
}
|
||||
}
|
||||
},
|
||||
_updateGalleryTasks(state, data){
|
||||
let {tasks, type} = data
|
||||
if(type === 'all') {
|
||||
@@ -252,25 +320,23 @@ const mutations = {
|
||||
task.createTimeDisplay = new Date(task.createTime * 1000).toLocaleString("zh")
|
||||
|
||||
//处理标签
|
||||
if (!'tag' in task) {
|
||||
if ('tags' in task) {
|
||||
task.tag = ''
|
||||
task.tags.forEach((tid) => {
|
||||
task.tag += ' ' + state.tags.get(tid).tag
|
||||
})
|
||||
task.tag = task.tag.trim()
|
||||
|
||||
}else{
|
||||
task.tag = ""
|
||||
task.tags = []
|
||||
}
|
||||
|
||||
//处理是否收藏
|
||||
if('collector' in task){
|
||||
let collector = task.collector.split(",")
|
||||
delete task.collector
|
||||
for(let i=0; i<collector.length; i++){
|
||||
if(parseInt(collector[i]) === state.userId){
|
||||
task.isCollect = true
|
||||
state.collectGallery.push(task)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if(!'isCollect' in task)
|
||||
task.isCollect = false
|
||||
}
|
||||
if('isCollect' in task)
|
||||
state.collectGallery.push(task)
|
||||
else
|
||||
task.isCollect = false
|
||||
|
||||
//处理是否下载
|
||||
if(task.downloader === state.userId)
|
||||
@@ -342,6 +408,44 @@ const mutations = {
|
||||
ElMessage("授权码错误")
|
||||
localStorage.removeItem("auth")
|
||||
},
|
||||
_loadTags(state, tags){
|
||||
state.tags.clear()
|
||||
for(let i in tags)
|
||||
state.tags.set(parseInt(i), tags[i])
|
||||
},
|
||||
_postTag(state, tag){
|
||||
state.tags.set(tag.id, tag)
|
||||
},
|
||||
_deleteTag(state, tid){
|
||||
state.tags.delete(tid)
|
||||
},
|
||||
_mark(state, data){
|
||||
state.totalGalleryTask.forEach((gallery) => {
|
||||
if(gallery.gid === data.gid){
|
||||
gallery.tags.push(data.tid)
|
||||
if('tag' in data) //新建的tag
|
||||
state.tags.set(data.tid, {id:data.tid, tag: data.tag, usage:data.usage})
|
||||
else
|
||||
state.tags.get(data.tid).usage++
|
||||
generateNewTag(state, gallery)
|
||||
}
|
||||
})
|
||||
},
|
||||
_disMark(state, data){
|
||||
state.totalGalleryTask.forEach((gallery) => {
|
||||
if(gallery.gid === data.gid){
|
||||
let index
|
||||
for(index=0; index<gallery.tags.length; index++){
|
||||
if(gallery.tags[index] === data.tid){
|
||||
gallery.tags.splice(index, 1) //删除tid
|
||||
state.tags.get(data.tid).usage--
|
||||
break;
|
||||
}
|
||||
}
|
||||
generateNewTag(state, gallery)
|
||||
}
|
||||
})
|
||||
},
|
||||
_searchLocalByLink(state, link){
|
||||
let tasks = state.currentTasks
|
||||
let i = 0
|
||||
@@ -380,36 +484,52 @@ const mutations = {
|
||||
if (task.name.includes(keyword))
|
||||
state.searchTask.push(task)
|
||||
})
|
||||
if (state.searchTask.length === 0)
|
||||
if (state.searchTask.length === 0) {
|
||||
ElMessage("未找到该关键字的任务")
|
||||
}else
|
||||
state.isSearch = false
|
||||
}
|
||||
else {
|
||||
state.isSearch = true
|
||||
}
|
||||
}else {
|
||||
state.isSearch = false
|
||||
confirmCurrentTask(state)
|
||||
}
|
||||
},
|
||||
_searchLocalByTag(state, tags) {
|
||||
_searchLocalByTag(state, tidS) {
|
||||
state.searchTask.splice(0)
|
||||
state.page = 1
|
||||
|
||||
let tagAmount = tags.length
|
||||
let hitAmount
|
||||
let tasks = state.currentTasks
|
||||
|
||||
if (tags[0].trim() !== '') {
|
||||
if (tidS.length > 0) {
|
||||
tasks.forEach((task) => {
|
||||
if('tag' in task) {
|
||||
if(tidS.length <= task.tags.length) {
|
||||
|
||||
hitAmount = 0
|
||||
tags.forEach((tag) => {
|
||||
if (task.tag.includes(tag))
|
||||
hitAmount++
|
||||
})
|
||||
if (hitAmount === tagAmount)
|
||||
for(let i=0; i<task.tag.length; i++){
|
||||
for(let j=0; j<tidS.length; j++){
|
||||
if(task.tags[i] === tidS[j])
|
||||
hitAmount ++
|
||||
}
|
||||
}
|
||||
if (hitAmount === tidS.length)
|
||||
state.searchTask.push(task)
|
||||
}
|
||||
})
|
||||
|
||||
if (state.searchTask.length === 0)
|
||||
if (state.searchTask.length === 0) {
|
||||
ElMessage("未找到符合这些tag的任务")
|
||||
}else
|
||||
state.isSearch = false
|
||||
}
|
||||
else {
|
||||
state.isSearch = true
|
||||
}
|
||||
}else {
|
||||
state.isSearch = false
|
||||
confirmCurrentTask(state)
|
||||
}
|
||||
},
|
||||
_deleteGallery(state, gid){
|
||||
let tasks = [state.totalGalleryTask, state.downloadGallery, state.collectGallery]
|
||||
@@ -422,7 +542,14 @@ const mutations = {
|
||||
state.chosenGallery.fileSize = "等待下载完成后再查看"
|
||||
state.chosenGallery.createTimeDisplay = "等待下载完成后再查看"
|
||||
state.chosenGallery.progress = "已提交"
|
||||
state.chosenGallery.tag = data.tag
|
||||
state.chosenGallery.tags = []
|
||||
state.chosenGallery.downloader = state.userId
|
||||
if(data.tags.length > 0){
|
||||
for (let tag of data.tags) {
|
||||
state.chosenGallery.tags.push(parseInt(tag))
|
||||
}
|
||||
}
|
||||
generateNewTag(state, state.chosenGallery)
|
||||
state.chosenGallery.downloader = state.userId
|
||||
state.totalGalleryTask.push(state.chosenGallery)
|
||||
state.downloadGallery.push(state.chosenGallery)
|
||||
@@ -483,6 +610,8 @@ const state = {
|
||||
thumbnailGallery: {}, //预览本子
|
||||
collectGallery: [], //收藏的本子
|
||||
downloadGallery: [], //下载的本子
|
||||
tags: new Map(), //可用tag
|
||||
isSearch: false, //用于决定是否显示搜索结果
|
||||
|
||||
onlineLinks: {}, //在线本子链接
|
||||
isOnlineReading: false, //是否在线看
|
||||
@@ -512,14 +641,21 @@ const state = {
|
||||
|
||||
const getters = {
|
||||
currentTasks(state){
|
||||
return state.currentTasks.slice((state.page-1)*state.length, state.page*state.length)
|
||||
if(state.isSearch)
|
||||
return state.searchTask.slice((state.page - 1) * state.length, state.page * state.length)
|
||||
else
|
||||
return state.currentTasks.slice((state.page - 1) * state.length, state.page * state.length)
|
||||
},
|
||||
min(){
|
||||
return 1
|
||||
},
|
||||
max(state){
|
||||
let max = 0
|
||||
let tasks = state.currentTasks
|
||||
let tasks
|
||||
if(state.isSearch)
|
||||
tasks = state.searchTask
|
||||
else
|
||||
tasks = state.currentTasks
|
||||
|
||||
if(!tasks)
|
||||
return 1
|
||||
@@ -613,4 +749,14 @@ function deleteTask(tasks, key, value){
|
||||
tasks[j].splice(i, 1)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
function generateNewTag(state, gallery){
|
||||
let tag = ''
|
||||
console.log(state.tags)
|
||||
console.log(gallery.tags)
|
||||
gallery.tags.forEach((tid) => {
|
||||
tag += state.tags.get(tid).tag + ' '
|
||||
})
|
||||
gallery.tag = tag.trim()
|
||||
}
|
||||
Reference in New Issue
Block a user