diff --git a/frontend/pages/index.vue b/frontend/pages/index.vue
index 7534874..d47eb1e 100644
--- a/frontend/pages/index.vue
+++ b/frontend/pages/index.vue
@@ -15,6 +15,16 @@
style="max-width: 120px"
hide-details
/>
+
+
+ {{ progress }}%
+
+
@@ -69,7 +79,7 @@ export default defineComponent({
project.value = '';
});
- const tasks = computed(() => {
+ const tasks: ComputedRef = computed(() => {
if (mode.value === 'Tasks')
return context.root.$store.state.tasks;
@@ -81,13 +91,25 @@ export default defineComponent({
return [];
});
+ const progress = computed(() => {
+ if (mode.value === 'Projects' && project.value) {
+ const completed = tasks.value.reduce((acc: number, task) => task.status === 'completed' ? acc + 1 : acc, 0);
+ const pending = tasks.value.reduce((acc: number, task) => task.status === 'pending' ? acc + 1 : acc, 0);
+ return completed + pending === 0
+ ? 100
+ : Math.ceil(100 * completed / (completed + pending));
+ }
+ return 0;
+ });
+
return {
mode,
allModes,
TaskList,
tasks,
projects,
- project
+ project,
+ progress
};
}
});