加入收藏以及标签,优化搜索,优化翻页的位置,加入部分注释,抽取简短名称的处理函数(同步更新)

This commit is contained in:
chuzhongzai 2022-12-30 12:51:12 +08:00
parent 3712db1b04
commit ca9c7700fa
3 changed files with 485 additions and 402 deletions

View File

@ -3,16 +3,21 @@
<span>E站额度本周已用:{{weekUsed.weekUsedAmount}} <br>上次重置时间:{{weekUsed.lastResetAmountTime}}</span><br> <span>E站额度本周已用:{{weekUsed.weekUsedAmount}} <br>上次重置时间:{{weekUsed.lastResetAmountTime}}</span><br>
<el-button @click="queryWeekUsedAmount">查询用量</el-button> <el-button @click="queryWeekUsedAmount">查询用量</el-button>
<hr> <hr>
<el-input v-model="link" placeholder="输入链接"/> <br> <el-row>
<el-button @click="queryTask">查询远程任务</el-button> <el-col>
<el-button @click="searchByLink">查找当前页任务</el-button> <br> 查询参数类型: <el-select style="width: 125px" v-model="type">
<br> <el-option value="link" label="链接"/>
<hr> <el-option value="keyword" label="关键字"/>
<br> <el-option value="tag" label="标签"/>
<el-input v-model="keyword" placeholder="输入关键字" @change="searchLocalByKeyword"/> </el-select>
<br> 参数:
<el-button @click="searchRemoteByKeyword">查找所有任务</el-button> <el-input style="width: 250px;" v-model="param"></el-input>
<el-button @click="searchLocalByKeyword">查找当前页任务</el-button> </el-col>
<el-col>
<el-button @click="queryRemoteTask" v-show="type === 'link'">远程查询</el-button>
<el-button @click="queryLocalTask">当前页查询</el-button>
</el-col>
</el-row>
<br> <br>
<el-button @click="openPanel">打开面板</el-button> <el-button @click="openPanel">打开面板</el-button>
<el-button @click="isAlterAuthCode = true">修改授权码</el-button> <el-button @click="isAlterAuthCode = true">修改授权码</el-button>
@ -98,21 +103,20 @@
</div> </div>
</template> </template>
<script> <script setup>
import store from "../store"; 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"
export default {
name: "DashBoard",
setup(){
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 keyword = ref("")
let link = ref("") let type = ref("link")
let showTips = ref(false) let param = ref("")
let targetResolution = ref("") let targetResolution = ref("")
let realAuthCode = computed(() => { let realAuthCode = computed(() => {
@ -143,6 +147,7 @@ export default {
return store.state.thumbnailGallery return store.state.thumbnailGallery
}) })
//
function alterAuthCode(){ function alterAuthCode(){
if(newAuthCode.value.trim() === "" || tempAuthCode.value.trim() === "" || newAuthCode.value !== tempAuthCode.value) if(newAuthCode.value.trim() === "" || tempAuthCode.value.trim() === "" || newAuthCode.value !== tempAuthCode.value)
ElMessage("请检查授权码输入是否错误") ElMessage("请检查授权码输入是否错误")
@ -154,12 +159,13 @@ export default {
} }
} }
//
function queryWeekUsedAmount(){ function queryWeekUsedAmount(){
store.dispatch("loadWeekUsedAmount") store.dispatch("loadWeekUsedAmount")
} }
function postTask(){ function postTask(){
if(!validateLink(link.value)){ if(!validateLink(param.value)){
ElMessage("链接错误") ElMessage("链接错误")
return return
} }
@ -167,41 +173,50 @@ export default {
ElMessage("请选择分辨率再提交") ElMessage("请选择分辨率再提交")
return return
} }
let tempLink = coverLink(link.value) let tempLink = coverLink(param.value)
if(link.value.includes("hentai")) { if(param.value.includes("hentai"))
store.dispatch("postGalleryTask", {link: tempLink, targetResolution: targetResolution.value}) store.dispatch("postGalleryTask", {link: tempLink, targetResolution: targetResolution.value})
targetResolution.value = "" else
}
else {
store.dispatch("postVideoTask", {link: tempLink, targetResolution: targetResolution.value}) store.dispatch("postVideoTask", {link: tempLink, targetResolution: targetResolution.value})
targetResolution.value = "" targetResolution.value = ""
} }
}
function queryTask(){ //
if(!validateLink(link.value)){ function queryRemoteTask(){
if(!validateLink(param.value)){
ElMessage("链接错误") ElMessage("链接错误")
return return
} }
let tempLink let tempLink = coverLink(param.value)
if(link.value.includes("hentai")) { if(param.value.includes("hentai"))
tempLink = coverLink(link.value)
store.dispatch("queryGalleryTask", tempLink) store.dispatch("queryGalleryTask", tempLink)
} else
else{
tempLink = coverLink(link.value)
store.dispatch("queryVideoTask", tempLink) store.dispatch("queryVideoTask", tempLink)
} }
function queryLocalTask(){
switch (type.value){
case "link":
store.commit("_searchLocalByLink", param.value)
break
case "keyword":
store.commit("_searchLocalByKeyword", param.value)
break
case "tag":
store.commit("_searchLocalByTag", param.value.includes(",") ? param.value.split(","): [param.value])
break
}
} }
//
function deleteVideo(){ function deleteVideo(){
store.dispatch("deleteVideo", chosenVideo.value.id) store.dispatch("deleteVideo", chosenVideo.value.id)
} }
function deleteGallery(){ function deleteGallery(){
store.dispatch("deleteGallery", chosenGallery.value.gid) store.dispatch("deleteGallery", chosenGallery.value.gid)
} }
//
function validate(){ function validate(){
if(AuthCode.value.trim() === ""){ if(AuthCode.value.trim() === ""){
ElMessage("请输入授权码后再验证") ElMessage("请输入授权码后再验证")
@ -213,6 +228,7 @@ export default {
} }
} }
//
function validateLink(rawLink){ function validateLink(rawLink){
if(rawLink.trim() === "") if(rawLink.trim() === "")
return false return false
@ -226,7 +242,6 @@ export default {
return rawLink.includes("view_video.php") return rawLink.includes("view_video.php")
} }
} }
function coverLink(rawLink){ function coverLink(rawLink){
let url = new URL(rawLink) let url = new URL(rawLink)
maskDomain.value.forEach((mask) => { maskDomain.value.forEach((mask) => {
@ -236,28 +251,10 @@ export default {
return rawLink; return rawLink;
} }
function searchByLink() { //线
if(link.value.trim() === ""){
ElMessage("请输入链接后查找")
}
else {
store.dispatch("searchByLink", link.value)
openPanel()
}
}
function searchLocalByKeyword(){
store.dispatch("searchLocalByKeyword", keyword.value)
}
function searchRemoteByKeyword(){
store.dispatch("searchRemoteByKeyword", keyword.value)
}
function openPanel(){ function openPanel(){
store.commit("_openHistoryPanel") store.commit("_openHistoryPanel")
} }
function onlineGalleryReader(name){ function onlineGalleryReader(name){
window.open("http://zfile.lionwebsite.xyz/1/gallery/" + encodeURI(name)) window.open("http://zfile.lionwebsite.xyz/1/gallery/" + encodeURI(name))
} }
@ -268,15 +265,6 @@ export default {
store.dispatch("validate", auth) store.dispatch("validate", auth)
} }
}) })
return {postTask, queryTask, validate, searchByLink, searchLocalByKeyword, searchRemoteByKeyword, openPanel, onlineGalleryReader,
queryWeekUsedAmount, deleteVideo, deleteGallery, alterAuthCode,
link, loadComplete, AuthCode, realAuthCode, keyword, isRemember, chosenGallery, chosenVideo, targetResolution, weekUsed, showTips, thumbnailGallery,
isAlterAuthCode, newAuthCode, tempAuthCode,
store
}
}
}
</script> </script>
<style scoped> <style scoped>
@ -294,7 +282,6 @@ export default {
padding-left: 100px; padding-left: 100px;
padding-top: 200px; padding-top: 200px;
} }
.el-input{ .el-input{
width: 250px; width: 250px;
} }

View File

@ -13,10 +13,13 @@
文件大小:{{props.row.fileSize}}<br> 文件大小:{{props.row.fileSize}}<br>
分辨率:{{props.row.resolution}}<br> 分辨率:{{props.row.resolution}}<br>
任务创建时间:{{props.row.createTimeDisplay}}<br> 任务创建时间:{{props.row.createTimeDisplay}}<br>
标签:{{props.row.tag === '' ? '无': props.row.tag}} <br>
<el-button @click="downloadTask(props.row.download)" :disabled="props.row.download === undefined">下载</el-button> <el-button @click="downloadTask(props.row.download)" :disabled="props.row.download === undefined">下载</el-button>
<el-button @click="deleteGallery(props.row.gid)" :disabled="props.row.download === undefined">删除</el-button> <el-button @click="deleteGallery(props.row.gid)" :disabled="props.row.download === undefined">删除</el-button>
<el-button @click="onlineGalleryReader(props.row.name)" :disabled="props.row.download === undefined">在线看</el-button> <el-button @click="onlineGalleryReader(props.row.name)" :disabled="props.row.download === undefined">在线看</el-button>
<el-button @click="showThumbnail(props.row)" :disabled="props.row.download === undefined">预览封面</el-button> <el-button @click="showThumbnail(props.row)" :disabled="props.row.download === undefined">预览封面</el-button><br>
<el-button @click="changeCollect(props.row.gid, props.row.isCollect)" :disabled="props.row.download === undefined">{{props.row.isCollect ? '取消收藏' : '收藏'}}</el-button>
<el-button @click="editTag(props.row.gid, props.row.tag)" :disabled="props.row.download === undefined">编辑标签</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -67,11 +70,19 @@
<el-row class="pageChanger"> <el-row class="pageChanger">
<el-col> <el-col>
排列顺序:<el-select v-model="sortType" @change="changeSortType"> 筛选:<el-select v-model="showType" @change="changeShowType">
<el-option value="gallery" label="本子"/>
<el-option value="video" label="视频"/>
<el-option value="collect" label="收藏"/>
</el-select>
</el-col>
<el-col>
排列顺序:<el-select v-model="sortType" @change="changeSortType" style="width: 125px">
<el-option value="name" label="名字"></el-option> <el-option value="name" label="名字"></el-option>
<el-option value="shortName" label="简洁名字"></el-option> <el-option value="shortName" label="简洁名字"></el-option>
<el-option value="createTime" label="任务创建时间"></el-option> <el-option value="createTime" label="任务创建时间"></el-option>
</el-select> </el-select>
</el-col> </el-col>
<el-col> <el-col>
显示:<el-select v-model="showNameType" @change="changeShowNameType"> 显示:<el-select v-model="showNameType" @change="changeShowNameType">
@ -84,31 +95,54 @@
<el-button @click="previous">-</el-button> <el-button @click="previous">-</el-button>
<el-input v-model="targetPage" <el-input v-model="targetPage"
@change="changePage" @change="changePage"
v-show="isEditing" v-show="isEditingPage"
@blur="reverseEditMode" @blur="reverseEditMode"
class="page" class="page"
ref="inputNode"></el-input> ref="inputNode"></el-input>
<span @click="reverseEditMode" v-show="!isEditing" class="page">{{page}}</span> <span @click="reverseEditMode" v-show="!isEditingPage" class="page">{{page}}</span>
<el-button @click="next">+</el-button> <el-button @click="next">+</el-button>
<el-button @click="toMax">{{max}}</el-button> <el-button @click="toMax">{{max}}</el-button>
<el-button @click="changeShowType">切换</el-button>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
</el-drawer> </el-drawer>
<el-dialog v-model="isEditingTag" title="编辑标签" width="100%">
<el-form>
<el-form-item>
<template #label>
标签:
</template>
<template #default>
<el-input v-model="tempTag"></el-input>
</template>
</el-form-item>
</el-form>
<el-footer>
<el-button @click="submitTag">提交修改</el-button>
</el-footer>
</el-dialog>
</template> </template>
<script> <script setup>
import store from "../store"; import store from "../store";
import {computed, ref} from "vue"; import {computed, ref} from "vue";
export default {
name: "Side", //
setup(){
let inputNode = ref(null) let inputNode = ref(null)
let isEditing = ref(false) //
let isEditingPage = ref(false)
//
let isEditingTag = ref(false)
//
let tempTag = ref("")
let tempGid = ref("")
let showNameType = ref("shortName") // shortName fullName let showNameType = ref("shortName") // shortName fullName
let showType = ref("gallery") // gallery video let showType = ref("gallery") // gallery video collect
let sortType = ref("shortName") // shortName fullName createTime let sortType = ref("shortName") // shortName fullName createTime
let targetPage = ref(1) let targetPage = ref(1)
@ -117,17 +151,10 @@ export default {
}) })
let galleryTasks = computed(() => { let galleryTasks = computed(() => {
if(store.getters.galleryTasks) return store.getters.galleryTasks ? store.getters.galleryTasks: null
return store.getters.galleryTasks
else
return null
}) })
let videoTasks = computed(() => { let videoTasks = computed(() => {
if(store.getters.videoTasks) return store.getters.videoTasks ? store.getters.videoTasks: null
return store.getters.videoTasks
else
return null
}) })
let isShowVideoHistory = computed(() => { let isShowVideoHistory = computed(() => {
@ -135,7 +162,7 @@ export default {
}) })
let isShowGalleryHistory = computed(() => { let isShowGalleryHistory = computed(() => {
return store.state.showType === "gallery" return store.state.showType === "gallery" || store.state.showType === "collect"
}) })
let isOpenHistoryPanel = computed(() => { let isOpenHistoryPanel = computed(() => {
@ -157,46 +184,43 @@ export default {
return store.state.page return store.state.page
}) })
//
function next() { function next() {
if(targetPage.value < max.value) { if(targetPage.value < max.value) {
targetPage.value++ targetPage.value++
store.commit("_changePage", targetPage.value) store.commit("_changePage", targetPage.value)
} }
} }
function previous() { function previous() {
if(targetPage.value > min.value) { if(targetPage.value > min.value) {
targetPage.value-- targetPage.value--
store.commit("_changePage", targetPage.value) store.commit("_changePage", targetPage.value)
} }
} }
function toMax() { function toMax() {
store.commit("_changePage", max.value) store.commit("_changePage", max.value)
targetPage.value = max.value targetPage.value = max.value
} }
function toMin(){ function toMin(){
store.commit("_changePage", min.value) store.commit("_changePage", min.value)
targetPage.value = min.value targetPage.value = min.value
} }
function changePage(){ function changePage(){
if(targetPage.value >= min.value && targetPage.value <= max.value) if(targetPage.value >= min.value && targetPage.value <= max.value)
store.commit("_changePage", targetPage.value) store.commit("_changePage", targetPage.value)
} }
function reverseEditMode(){
isEditingPage.value = !isEditingPage.value
if(isEditingPage){
inputNode.value.focus()
}
targetPage.value = page.value
}
//
function changeShowType(){ function changeShowType(){
if(isShowVideoHistory.value){ store.commit("_setShowType", showType.value)
store.commit("_setShowType", "gallery")
showType.value = "gallery"
} }
else{
store.commit("_setShowType", "video")
showType.value = "video"
}
}
function changeShowNameType(){ function changeShowNameType(){
store.commit("_setShowNameType", showNameType.value) store.commit("_setShowNameType", showNameType.value)
@ -205,7 +229,6 @@ export default {
sortType.value = showNameType.value sortType.value = showNameType.value
} }
} }
function changeSortType(){ function changeSortType(){
store.commit("_setSortType", sortType.value) store.commit("_setSortType", sortType.value)
@ -216,50 +239,51 @@ export default {
} }
} }
function reverseEditMode(){ //,,
isEditing.value = !isEditing.value function changeCollect(gid, isCollect){
if(isEditing){ if(isCollect)
inputNode.value.focus() store.dispatch("disCollectGallery", gid)
else
store.dispatch("collectGallery", gid)
} }
targetPage.value = page.value function editTag(gid, tag){
} tempTag.value = tag
tempGid.value = gid
function closeHistoryPanel(){ isEditingTag.value = true
store.commit("_closeHistoryPanel") }
function submitTag(){
store.dispatch("updateTag", {gid:tempGid.value, tag:tempTag.value})
tempTag.value = ''
tempGid.value = ''
isEditingTag.value = false
} }
//线
function downloadTask(link){ function downloadTask(link){
window.open(link) window.open(link)
} }
function deleteGallery(gid){ function deleteGallery(gid){
store.dispatch("deleteGallery", gid) store.dispatch("deleteGallery", gid)
} }
function deleteVideo(id){ function deleteVideo(id){
store.dispatch("deleteVideo", id) store.dispatch("deleteVideo", id)
} }
function onlineGalleryReader(name){ function onlineGalleryReader(name){
window.open("http://zfile.lionwebsite.xyz/1/gallery/" + encodeURI(name)) window.open("http://zfile.lionwebsite.xyz/1/gallery/" + encodeURI(name))
} }
function onlineVideoViewer(){ function onlineVideoViewer(){
window.open("http://zfile.lionwebsite.xyz/1/video/") window.open("http://zfile.lionwebsite.xyz/1/video/")
} }
//
function showThumbnail(gallery){ function showThumbnail(gallery){
store.commit("_changeThumbnailGallery", gallery) store.commit("_changeThumbnailGallery", gallery)
setTimeout(() => {document.querySelector(".preview > img").click()}, 1) setTimeout(() => {document.querySelector(".preview > img").click()}, 1)
} }
return {galleryTasks, videoTasks, min, max, targetPage, loadComplete, page, isEditing, inputNode, isShowVideoHistory, //
isShowGalleryHistory, showType, showNameType, sortType, isOpenHistoryPanel, function closeHistoryPanel(){
reverseEditMode, changePage, changeShowType, changeShowNameType, changeSortType, toMax, toMin, previous, next, downloadTask, deleteGallery, store.commit("_closeHistoryPanel")
deleteVideo, onlineGalleryReader, onlineVideoViewer, closeHistoryPanel, showThumbnail,
store
}
}
} }
</script> </script>
@ -271,8 +295,10 @@ export default {
display: block; display: block;
} }
.pageChanger{ .pageChanger{
position: absolute; margin-top: 5vh;
top:85vh; }
.el-select{
width: 100px;
} }
.page{ .page{
display: inline-block; display: inline-block;

View File

@ -119,6 +119,7 @@ const actions = {
validate(context, AuthCode){ validate(context, AuthCode){
axios.post(BaseUrl + "validate?AuthCode=" + AuthCode).then((res)=>{ axios.post(BaseUrl + "validate?AuthCode=" + AuthCode).then((res)=>{
if(res.data.result === 'success'){ if(res.data.result === 'success'){
state.userId = parseInt(res.data.data)
context.commit("_authed", AuthCode) context.commit("_authed", AuthCode)
context.dispatch("loadMaskDomain").then() context.dispatch("loadMaskDomain").then()
context.dispatch("loadWeekUsedAmount").then() context.dispatch("loadWeekUsedAmount").then()
@ -148,43 +149,33 @@ const actions = {
ElMessage("查询用量失败") ElMessage("查询用量失败")
}) })
}, },
searchByLink(context, link){ collectGallery(context, gid){
context.commit("_searchByLink", link) axios.post(GalleryManageUrl + "/collect?" +qs.stringify( {
}, gid,
searchLocalByKeyword(context, keyword){ id:state.userId
context.commit("_searchLocalByKeyword", keyword) })).then((res) => {
},
searchRemoteByKeyword(context, keyword){
if(context.state.showType === "gallery"){
axios.get(GalleryManageUrl, {
params:{
type:"name",
param:keyword
}
}).then((res) => {
if(res.data.result === 'success'){
context.commit("_setChosenGallery", {'gallery':JSON.parse(res.data.data)})
}
else{
ElMessage(res.data.data) ElMessage(res.data.data)
} if(res.data.result === 'success')
context.commit("_collectGallery", gid)
}) })
} },
else{ disCollectGallery(context, gid){
axios.get(VideoManageUrl, { axios.post(GalleryManageUrl + "/disCollect?" + qs.stringify(
params:{ {
type:"name", gid,
param:keyword id:state.userId
} })).then((res) => {
}).then((res) => {
if(res.data.result === 'success'){
context.commit("_setChosenVideo", {'video': JSON.parse(res.data.data)})
}
else{
ElMessage(res.data.data) ElMessage(res.data.data)
} if(res.data.result === 'success')
context.commit("_disCollectGallery", gid)
})
},
updateTag(context, data){
axios.post(GalleryManageUrl + "/tag?" + qs.stringify(data)).then((res) => {
ElMessage(res.data.data)
if(res.data.result === 'success')
context.commit("_updateTag", data)
}) })
}
}, },
deleteGallery(context, gid){ deleteGallery(context, gid){
axios.delete(GalleryManageUrl, { axios.delete(GalleryManageUrl, {
@ -231,32 +222,40 @@ const actions = {
} }
const mutations = { const mutations = {
_collectGallery(state, gid){
state.totalGalleryTask.forEach((gallery) => {
if(!gallery.isCollect && gallery.gid === gid){
gallery.isCollect = true
state.collectGallery.push(gallery)
}
})
},
_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)
})
},
_updateTag(state, data){
state.totalGalleryTask.forEach((gallery) => {
if(gallery.gid === data.gid){
gallery.tag = data.tag
}
})
},
_updateGalleryTasks(state, data){ _updateGalleryTasks(state, data){
let {tasks, type} = data let {tasks, type} = data
if(type === 'all') { if(type === 'all') {
state.totalGalleryTask.splice(0) state.totalGalleryTask.splice(0)
tasks.forEach((task) => { tasks.forEach((task) => {
if (task.name.includes("[")) { //处理名字
let name = task.name task.shortName = getShortname(task.name)
let lastIndex = name.lastIndexOf("[")
name = name.substring(0, lastIndex)
while (name.includes("[") && name.includes("]")) {
let start = name.indexOf("[")
let end = name.indexOf("]") + 1
let temp = name.substring(start, end)
name = name.replace(temp, "")
}
while (name.includes("(") && name.includes(")")) {
let start = name.indexOf("(")
let end = name.indexOf(")") + 1
let temp = name.substring(start, end)
name = name.replace(temp, "")
}
task.shortName = name.trim()
} else {
task.shortName = task.name
}
//处理进度相关
switch (task.status) { switch (task.status) {
case "已提交": case "已提交":
task.progress = "已提交" task.progress = "已提交"
@ -276,7 +275,29 @@ const mutations = {
break; break;
} }
//处理时间戳
task.createTimeDisplay = moment(task.createTime * 1000).format("YYYY-MM-DD HH:mm:ss") task.createTimeDisplay = moment(task.createTime * 1000).format("YYYY-MM-DD HH:mm:ss")
//处理标签
if (task.tag === undefined) {
task.tag = ""
}
//处理是否收藏
if(task.collector !== undefined){
let collector = task.collector.split(",")
task.collector = undefined
collector.forEach((id) => {
if(parseInt(id) === state.userId) {
task.isCollect = true
state.collectGallery.push(task)
}
})
if(task.isCollect === undefined)
task.isCollect = false
}
state.totalGalleryTask.push(task) state.totalGalleryTask.push(task)
}) })
} }
@ -385,29 +406,27 @@ const mutations = {
ElMessage("授权码错误") ElMessage("授权码错误")
localStorage.removeItem("auth") localStorage.removeItem("auth")
}, },
_searchByLink(state, link){ _searchLocalByLink(state, link){
let tasks let tasks
if(state.showType === "gallery") {
tasks = state.totalGalleryTask
}
else
tasks = state.totalVideoTask
let i = 0 let i = 0
let found = false let found = false
for (i = 0; i < tasks.length; i++) {
if(state.showType === "gallery")
tasks = state.totalGalleryTask
else
tasks = state.totalVideoTask
for (i = 0; i < tasks.length; i++)
if (tasks[i].link === link) { if (tasks[i].link === link) {
state.page = Math.floor(i / state.length) + 1 state.page = Math.floor(i / state.length) + 1
found = true found = true
break break
} }
}
if(!found){ if(!found)
ElMessage("未找到此任务") ElMessage("未找到此任务")
} else
else{
ElMessage("已跳转到该任务所在页数") ElMessage("已跳转到该任务所在页数")
state.isShowHistory = true
}
}, },
_searchLocalByKeyword(state, keyword){ _searchLocalByKeyword(state, keyword){
state.searchTask.splice(0) state.searchTask.splice(0)
@ -424,11 +443,32 @@ const mutations = {
}) })
if (state.searchTask.length === 0) { if (state.searchTask.length === 0) {
ElMessage("未找到该关键字的任务") ElMessage("未找到该关键字的任务")
} else {
state.isShowHistory = true
} }
} }
}, },
_searchLocalByTag(state, tags) {
state.searchTask.splice(0)
state.page = 1
let tagAmount = tags.length
let hitAmount
let tasks = state.totalGalleryTask
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 (state.searchTask.length === 0)
ElMessage("未找到符合这些tag的任务")
}
},
_deleteGallery(state, gid){ _deleteGallery(state, gid){
state.totalGalleryTask.forEach((item, index, arr) => { state.totalGalleryTask.forEach((item, index, arr) => {
if(item.gid === gid){ if(item.gid === gid){
@ -444,7 +484,7 @@ const mutations = {
}, },
_setChosenGallery(state,data){ _setChosenGallery(state,data){
if(data.gallery === false) { if(data.gallery === false) {
//state.chosenGallery.shortName = getShortName(state.chosenGallery.name) state.chosenGallery.shortName = getShortname(state.chosenGallery.name)
state.chosenGallery.resolution = data.resolution state.chosenGallery.resolution = data.resolution
state.chosenGallery.fileSize = "等待下载完成后再查看" state.chosenGallery.fileSize = "等待下载完成后再查看"
state.chosenGallery.createTimeDisplay = "等待下载完成后再查看" state.chosenGallery.createTimeDisplay = "等待下载完成后再查看"
@ -517,6 +557,7 @@ const state = {
totalGalleryTask:[], //存放本子数据的数组 totalGalleryTask:[], //存放本子数据的数组
chosenGallery:false, //准备下载的本子 chosenGallery:false, //准备下载的本子
thumbnailGallery:{}, //预览本子 thumbnailGallery:{}, //预览本子
collectGallery:[], //收藏的本子
totalVideoTask:[], //存放视频数据的数组 totalVideoTask:[], //存放视频数据的数组
chosenVideo:false, //准备下载的视频 chosenVideo:false, //准备下载的视频
@ -526,6 +567,7 @@ const state = {
defaultLength:4, //默认个数 defaultLength:4, //默认个数
shortLength:5, //简洁个数 shortLength:5, //简洁个数
userId:-1, //用户id
isAuth:false, //是否授权 isAuth:false, //是否授权
AuthCode:'', //授权码 AuthCode:'', //授权码
loadComplete:false, //是否加载完成 loadComplete:false, //是否加载完成
@ -543,6 +585,8 @@ const state = {
const getters = { const getters = {
galleryTasks(state){ galleryTasks(state){
if(state.showType === 'collect')
return state.collectGallery.slice((state.page-1)*state.length, state.page*state.length)
if(state.searchTask.length !== 0) if(state.searchTask.length !== 0)
return state.searchTask.slice((state.page-1)*state.length, state.page*state.length) return state.searchTask.slice((state.page-1)*state.length, state.page*state.length)
if(state.totalGalleryTask.length !== 0) if(state.totalGalleryTask.length !== 0)
@ -562,21 +606,26 @@ const getters = {
max(state){ max(state){
let max = 0 let max = 0
let tasks let tasks
if(state.searchTask.length !== 0){ if(state.showType === 'collect')
tasks = state.collectGallery
else if(state.searchTask.length !== 0)
tasks = state.searchTask tasks = state.searchTask
}
else if(state.showType === "gallery") else if(state.showType === "gallery")
if(state.totalGalleryTask.length !== 0) if(state.totalGalleryTask.length !== 0)
tasks = state.totalGalleryTask tasks = state.totalGalleryTask
else if(state.showType === "video") else if(state.showType === "video")
if(state.totalVideoTask.length) if(state.totalVideoTask.length)
tasks = state.totalVideoTask tasks = state.totalVideoTask
if(!tasks) if(!tasks)
return 1 return 1
max = Math.floor(tasks.length/state.length) max = Math.floor(tasks.length/state.length)
if(tasks.length % state.length !== 0){ if(tasks.length % state.length !== 0)
max += 1 max += 1
}
if(max === 0)
return 1
return max return max
} }
} }
@ -588,3 +637,24 @@ export default new vuex.Store({
getters getters
}) })
function getShortname(name){
if (name.includes("[")) {
let lastIndex = name.lastIndexOf("[")
name = name.substring(0, lastIndex)
while (name.includes("[") && name.includes("]")) {
let start = name.indexOf("[")
let end = name.indexOf("]") + 1
let temp = name.substring(start, end)
name = name.replace(temp, "")
}
while (name.includes("(") && name.includes(")")) {
let start = name.indexOf("(")
let end = name.indexOf(")") + 1
let temp = name.substring(start, end)
name = name.replace(temp, "")
}
return name.trim()
} else {
return name
}
}