优化协助任务列表

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: { computed: {
...mapState(['userInfo', 'cacheTasks', 'taskCompleteTemps', 'loadDashboardTasks']), ...mapState(['userInfo', 'cacheTasks', 'taskCompleteTemps', 'loadDashboardTasks']),
...mapGetters(['dashboardTask', 'transforTasks']), ...mapGetters(['dashboardTask', 'assistTask', 'transforTasks']),
columns() { columns() {
const list = []; const list = [];
@ -137,34 +137,13 @@ export default {
list.push({ list.push({
type: 'assist', type: 'assist',
title: this.getTitle('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 $A.Date(a.end_at || "2099-12-31 23:59:59") - $A.Date(b.end_at || "2099-12-31 23:59:59");
}) })
}) })
return list; 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() { total() {
const {dashboardTask} = this; const {dashboardTask} = this;
return dashboardTask.today_count + dashboardTask.overdue_count + dashboardTask.all_count; return dashboardTask.today_count + dashboardTask.overdue_count + dashboardTask.all_count;

View File

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

View File

@ -160,4 +160,30 @@ export default {
} }
return result 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
}
} }