ソースを参照

优化任务进度效果

kuaifan 5 年 前
コミット
098830ac11

+ 4 - 3
resources/assets/js/main/pages/project/panel.vue

@@ -76,7 +76,7 @@
                                         task.overdue ? 'overdue' : '',
                                         task.isNewtask === true ? 'newtask' : ''
                                     ]" @click="openTaskModal(task)">
-                                        <div v-if="task.subtask.length > 0" class="subtask-progress"><em :style="{width: subtaskProgress(task.subtask) + '%'}"></em></div>
+                                        <div class="subtask-progress"><em :style="{width: subtaskProgress(task) + '%'}"></em></div>
                                         <div class="task-title">{{task.title}}<Icon v-if="task.desc" type="ios-list-box-outline" /></div>
                                         <div class="task-more">
                                             <div v-if="task.overdue" class="task-status">{{$L('已超期')}}</div>
@@ -964,9 +964,10 @@
                 }
             },
 
-            subtaskProgress(subtask) {
+            subtaskProgress(task) {
+                const {subtask, complete} = task;
                 if (subtask.length === 0) {
-                    return 0;
+                    return complete ? 100 : 0;
                 }
                 const completeLists = subtask.filter((item) => { return item.status == 'complete'});
                 return parseFloat(((completeLists.length / subtask.length) * 100).toFixed(2));

+ 4 - 3
resources/assets/js/main/pages/todo.vue

@@ -52,7 +52,7 @@
                                     @sort="taskSortUpdate"
                                     @remove="taskSortUpdate">
                                     <div v-for="task in taskDatas[index].lists" class="content-li task-draggable" :key="task.id" :class="{complete:task.complete}" @click="openTaskModal(task)">
-                                        <div v-if="task.subtask.length > 0" class="subtask-progress"><em :style="{width: subtaskProgress(task.subtask) + '%'}"></em></div>
+                                        <div class="subtask-progress"><em :style="{width: subtaskProgress(task) + '%'}"></em></div>
                                         <Icon v-if="task.complete" class="task-check" type="md-checkbox-outline" @click.stop="taskComplete(task, false)"/>
                                         <Icon v-else class="task-check" type="md-square-outline" @click.stop="taskComplete(task, true)"/>
                                         <div v-if="!!task.loadIng" class="task-loading"><w-loading></w-loading></div>
@@ -724,9 +724,10 @@
                 });
             },
 
-            subtaskProgress(subtask) {
+            subtaskProgress(task) {
+                const {subtask, complete} = task;
                 if (subtask.length === 0) {
-                    return 0;
+                    return complete ? 100 : 0;
                 }
                 const completeLists = subtask.filter((item) => { return item.status == 'complete'});
                 return parseFloat(((completeLists.length / subtask.length) * 100).toFixed(2));