优化协助任务列表

This commit is contained in:
kuaifan 2022-06-28 14:49:31 +08:00
parent d1f22ead93
commit a9c37cc5a6
3 changed files with 30 additions and 23 deletions

View File

@ -120,7 +120,7 @@ export default {
computed: {
...mapState(['userInfo', 'cacheTasks', 'taskCompleteTemps', 'loadDashboardTasks']),
...mapGetters(['dashboardTask', 'transforTasks']),
...mapGetters(['dashboardTask', 'assistTask', 'transforTasks']),
columns() {
const list = [];
@ -137,34 +137,13 @@ export default {
list.push({
type: 'assist',
title: this.getTitle('assist'),
list: this.assistList.sort((a, b) => {
list: this.assistTask.sort((a, b) => {
return $A.Date(a.end_at || "2099-12-31 23:59:59") - $A.Date(b.end_at || "2099-12-31 23:59:59");
})
})
return list;
},
assistList() {
const filterTask = (task, chackCompleted = true) => {
if (task.archived_at) {
return false;
}
if (task.complete_at && chackCompleted === true) {
return false;
}
return task.assist && !task.owner;
}
let array = this.cacheTasks.filter(task => filterTask(task));
if (this.taskCompleteTemps.length > 0) {
let tmps = this.cacheTasks.filter(task => this.taskCompleteTemps.includes(task.id) && filterTask(task, false));
if (tmps.length > 0) {
array = $A.cloneJSON(array)
array.push(...tmps);
}
}
return array
},
total() {
const {dashboardTask} = this;
return dashboardTask.today_count + dashboardTask.overdue_count + dashboardTask.all_count;

View File

@ -1288,6 +1288,7 @@ export default {
const currentIds = today.map(({id}) => id)
currentIds.push(...overdue.map(({id}) => id))
currentIds.push(...all.map(({id}) => id))
currentIds.push(...getters.assistTask.map(({id}) => id))
//
dispatch("getTasks", {
complete: "no",
@ -1298,6 +1299,7 @@ export default {
const newIds = today.filter(task => task._time >= time).map(({id}) => id)
newIds.push(...overdue.filter(task => task._time >= time).map(({id}) => id))
newIds.push(...all.filter(task => task._time >= time).map(({id}) => id))
newIds.push(...getters.assistTask.filter(task => task._time >= time).map(({id}) => id))
dispatch("forgetTask", currentIds.filter(v => newIds.indexOf(v) == -1))
})
},

View File

@ -160,4 +160,30 @@ export default {
}
return result
},
/**
* 协助任务
* @param state
* @returns {*}
*/
assistTask(state) {
const filterTask = (task, chackCompleted = true) => {
if (task.archived_at) {
return false;
}
if (task.complete_at && chackCompleted === true) {
return false;
}
return task.assist && !task.owner;
}
let array = state.cacheTasks.filter(task => filterTask(task));
if (state.taskCompleteTemps.length > 0) {
let tmps = state.cacheTasks.filter(task => state.taskCompleteTemps.includes(task.id) && filterTask(task, false));
if (tmps.length > 0) {
array = $A.cloneJSON(array)
array.push(...tmps);
}
}
return array
}
}