perf: 议仪表盘添加'待完成任务'选项

This commit is contained in:
韦荣超 2022-02-23 16:26:07 +08:00
parent e5b838a2b3
commit e7efaed08a
3 changed files with 26 additions and 15 deletions

View File

@ -19,10 +19,10 @@
<i class="taskfont">&#xe603;</i> <i class="taskfont">&#xe603;</i>
</div> </div>
</li> </li>
<li> <li @click="dashboard='all'">
<div class="block-title">{{$L('参与的项目')}}</div> <div class="block-title">{{$L('待完成任务')}}</div>
<div class="block-data"> <div class="block-data">
<div class="block-num">{{cacheProjects.length}}</div> <div class="block-num">{{dashboardTask.all.length}}</div>
<i class="taskfont">&#xe6f9;</i> <i class="taskfont">&#xe6f9;</i>
</div> </div>
</li> </li>
@ -62,7 +62,7 @@
<i class="taskfont">&#xe71f;</i> <i class="taskfont">&#xe71f;</i>
<em>{{item.sub_complete}}/{{item.sub_num}}</em> <em>{{item.sub_complete}}/{{item.sub_num}}</em>
</div> </div>
<ETooltip :content="item.end_at" placement="right"> <ETooltip v-if="item.end_at" :content="item.end_at" placement="right">
<div :class="['item-icon', item.today ? 'today' : '', item.overdue ? 'overdue' : '']"> <div :class="['item-icon', item.today ? 'today' : '', item.overdue ? 'overdue' : '']">
<i class="taskfont">&#xe71d;</i> <i class="taskfont">&#xe71d;</i>
<em>{{expiresFormat(item.end_at)}}</em> <em>{{expiresFormat(item.end_at)}}</em>
@ -121,6 +121,8 @@ export default {
return this.$L('今日任务'); return this.$L('今日任务');
case 'overdue': case 'overdue':
return this.$L('超期任务'); return this.$L('超期任务');
case 'all':
return this.$L('待完成任务');
default: default:
return ''; return '';
} }
@ -136,9 +138,12 @@ export default {
case 'overdue': case 'overdue':
data = this.transforTasks(this.dashboardTask.overdue); data = this.transforTasks(this.dashboardTask.overdue);
break break
case 'all':
data = this.transforTasks(this.dashboardTask.all);
break
} }
return data.sort((a, b) => { return data.sort((a, b) => {
return $A.Date(a.end_at) - $A.Date(b.end_at); return $A.Date(a.end_at || "2099-12-31 23:59:59") - $A.Date(b.end_at || "2099-12-31 23:59:59");
}); });
}, },
}, },

View File

@ -1116,23 +1116,25 @@ export default {
state.cacheLoading["loadDashboardTasks"] = true; state.cacheLoading["loadDashboardTasks"] = true;
// //
const time = $A.Time() const time = $A.Time()
const {today, overdue} = getters.dashboardTask; const {today, overdue,all} = getters.dashboardTask;
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))
// //
let loadIng = 2; let loadIng = 3;
let call = () => { let call = () => {
if (loadIng <= 0) { if (loadIng <= 0) {
state.cacheLoading["loadDashboardTasks"] = false; state.cacheLoading["loadDashboardTasks"] = false;
// //
const {today, overdue} = getters.dashboardTask; const {today, overdue,all} = getters.dashboardTask;
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))
dispatch("forgetTask", currentIds.filter(v => newIds.indexOf(v) == -1)) dispatch("forgetTask", currentIds.filter(v => newIds.indexOf(v) == -1))
return; return;
} }
loadIng--; loadIng--;
if (loadIng == 1) { if (loadIng == 2) {
// 获取今日任务 // 获取今日任务
dispatch("getTasks", { dispatch("getTasks", {
complete: "no", complete: "no",
@ -1141,12 +1143,17 @@ export default {
$A.formatDate("Y-m-d 23:59:59") $A.formatDate("Y-m-d 23:59:59")
], ],
}).then(call).catch(call) }).then(call).catch(call)
} else if (loadIng == 0) { } else if (loadIng == 1) {
// 获取过期任务 // 获取过期任务
dispatch("getTasks", { dispatch("getTasks", {
complete: "no", complete: "no",
time_before: $A.formatDate("Y-m-d H:i:s"), time_before: $A.formatDate("Y-m-d H:i:s"),
}).then(call).catch(call) }).then(call).catch(call)
} else if((loadIng == 0)) {
// 获取待处理任务
dispatch("getTasks", {
complete: "no",
}).then(call).catch(call)
} }
} }
call(); call();

View File

@ -112,7 +112,7 @@ export default {
/** /**
* 仪表盘任务数据 * 仪表盘任务数据
* @param state * @param state
* @returns {{overdue: *, today: *}} * @returns {{overdue: *, today: *,all:*}}
*/ */
dashboardTask(state) { dashboardTask(state) {
const todayStart = $A.Date($A.formatDate("Y-m-d 00:00:00")), const todayStart = $A.Date($A.formatDate("Y-m-d 00:00:00")),
@ -125,9 +125,6 @@ export default {
if (task.complete_at && chackCompleted === true) { if (task.complete_at && chackCompleted === true) {
return false; return false;
} }
if (!task.end_at) {
return false;
}
return task.owner; return task.owner;
} }
let array = state.cacheTasks.filter(task => filterTask(task)); let array = state.cacheTasks.filter(task => filterTask(task));
@ -142,11 +139,13 @@ export default {
return (start <= todayStart && todayStart <= end) || (start <= todayEnd && todayEnd <= end) || (start > todayStart && todayEnd > end); return (start <= todayStart && todayStart <= end) || (start <= todayEnd && todayEnd <= end) || (start > todayStart && todayEnd > end);
}) })
const overdueTasks = array.filter(task => { const overdueTasks = array.filter(task => {
return $A.Date(task.end_at) <= todayNow; return task.end_at && $A.Date(task.end_at) <= todayNow;
}) })
return { return {
today: todayTasks, today: todayTasks,
overdue: overdueTasks, overdue: overdueTasks,
all: array
} }
}, },
} }