移动端支持下载人信息与筛选(仅管理员)
- 详情抽屉显示下载人昵称,取不到时回退为 #id - 任务列表新增「下载人」筛选,选项从当前分类派生,切分类时清空 - 管理员判定改用后端下发的 isAdmin,不再硬编码 userId === 3
This commit is contained in:
+29
-11
@@ -325,6 +325,8 @@ const mutations = {
|
||||
state.AuthCode = data.AuthCode
|
||||
state.userId = data.userId
|
||||
state.username = data.username
|
||||
state.isAdmin = Boolean(data.isAdmin)
|
||||
state.downloaderFilter = null
|
||||
state.isAuth = true
|
||||
ElMessage("验证成功,加载中")
|
||||
},
|
||||
@@ -402,6 +404,8 @@ const mutations = {
|
||||
_setCategory(state, category){
|
||||
state.category = category
|
||||
state.visiblePages = 1
|
||||
// 换分类后旧的下载人筛选可能在新分类里根本不存在,先清掉。
|
||||
state.downloaderFilter = null
|
||||
confirmCurrentTask(state)
|
||||
sortTasks(state)
|
||||
},
|
||||
@@ -413,6 +417,12 @@ const mutations = {
|
||||
_setGalleryNameType(state, galleryNameType){
|
||||
state.galleryNameType = galleryNameType
|
||||
},
|
||||
_setDownloaderFilter(state, downloader){
|
||||
state.downloaderFilter = downloader === null || downloader === undefined
|
||||
? null
|
||||
: Number(downloader)
|
||||
state.visiblePages = 1
|
||||
},
|
||||
_setShowNameType(state, type){
|
||||
if(type === "shortName")
|
||||
state.length = state.shortLength
|
||||
@@ -481,23 +491,23 @@ const state = {
|
||||
sortType:'shortName', //排序类型 shortName name createTime
|
||||
currentTasks: [], //当前任务
|
||||
weekUsed: {}, //每周用量
|
||||
isAdmin: false, //管理员(后端 validate 下发)
|
||||
downloaderFilter: null, //管理员按下载人筛选,null 表示全部
|
||||
}
|
||||
|
||||
const getters = {
|
||||
currentTasks(state){
|
||||
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)
|
||||
const tasks = activeTaskList(state)
|
||||
return tasks.slice((state.page - 1) * state.length, state.page * state.length)
|
||||
},
|
||||
min(){
|
||||
return 1
|
||||
},
|
||||
visibleTasks(state){
|
||||
return (state.currentTasks || []).slice(0, state.visiblePages * state.length)
|
||||
return activeTaskList(state).slice(0, state.visiblePages * state.length)
|
||||
},
|
||||
taskTotal(state){
|
||||
return (state.currentTasks || []).length
|
||||
return activeTaskList(state).length
|
||||
},
|
||||
taskRemaining(state, getters){
|
||||
return Math.max(0, getters.taskTotal - state.visiblePages * state.length)
|
||||
@@ -507,11 +517,7 @@ const getters = {
|
||||
},
|
||||
max(state){
|
||||
let max = 0
|
||||
let tasks
|
||||
if(state.isSearch)
|
||||
tasks = state.searchTask
|
||||
else
|
||||
tasks = state.currentTasks
|
||||
const tasks = activeTaskList(state)
|
||||
|
||||
if(!tasks)
|
||||
return 1
|
||||
@@ -531,6 +537,18 @@ export default new vuex.Store({
|
||||
getters
|
||||
})
|
||||
|
||||
/**
|
||||
* 当前视图实际要展示的任务。
|
||||
* 下载人筛选只在管理员生效,作用于「我的下载/收藏/全部」三种分类的结果。
|
||||
*/
|
||||
function activeTaskList(state){
|
||||
if(state.isSearch)
|
||||
return state.searchTask
|
||||
if(state.isAdmin && state.downloaderFilter !== null)
|
||||
return state.currentTasks.filter(task => task.downloader === state.downloaderFilter)
|
||||
return state.currentTasks
|
||||
}
|
||||
|
||||
function getShortname(name){
|
||||
if(name === null)
|
||||
return null
|
||||
|
||||
Reference in New Issue
Block a user