소스 검색

schedule链接修改、饼图完善

chenyitao.0928 5 년 전
부모
커밋
7ed2bcb81f
1개의 변경된 파일57개의 추가작업 그리고 14개의 파일을 삭제
  1. 57 14
      src/views/Project/Schedule.vue

+ 57 - 14
src/views/Project/Schedule.vue

@@ -7,7 +7,9 @@
       <el-col :span="12">
         <div class="description-card-text" style="font-size: 18px;font-weight: bold">{{selectedProject.name}}</div>
         <div class="description-card-text">项目地址:
-          <span><a target="_blank" :href="selectedProject.gitRemoteUrl">{{selectedProject.gitRemoteUrl}}</a></span>
+          <span>
+            <el-link target="_blank" type="primary" :href="selectedProject.gitRemoteUrl">{{selectedProject.gitRemoteUrl}}</el-link>
+          </span>
         </div>
         <div class="description-card-text">项目介绍:
           <span>{{selectedProject.description}}</span>
@@ -46,7 +48,7 @@
 <script>
 import Tree from '@/components/Tree.vue';
 import * as echarts from 'echarts';
-import { RequirementAPI } from '@/api';
+import { BugListAPI, RequirementAPI } from '@/api';
 import RequirementDrawer from '@/components/RequirementDrawer.vue';
 import { useProjectList } from '../../composable/useProject';
 
@@ -124,9 +126,51 @@ export default {
     handleDrawerContentChange(id) {
       this.requirementInDrawer = Array.prototype.find.call(this.requirements, (requirement) => requirement.id === id);
     },
-    drawChart() {
+    async drawChart() {
+      const bugList = await BugListAPI.getBugListByProjectId(this.$store.state.workspace.currentProjectId);
+      const requirementsValuesMap = new Map();
+      const requirementsValues = [];
+      const bugListValuesMap = new Map();
+      const bugListValues = [];
+      this.requirements.forEach((item) => {
+        if (item.type === '任务') {
+          if (!requirementsValuesMap.get(item.state)) requirementsValuesMap.set(item.state, 0);
+          requirementsValuesMap.set(item.state, requirementsValuesMap.get(item.state) + 1);
+        }
+      });
+      requirementsValuesMap.forEach((value, key) => {
+        requirementsValues.push(
+          { value, name: key },
+        );
+      });
+      bugList.forEach((item) => {
+        if (!bugListValuesMap.get(item.state)) bugListValuesMap.set(item.state, 0);
+        bugListValuesMap.set(item.state, bugListValuesMap.get(item.state) + 1);
+      });
+      bugListValuesMap.forEach((value, key) => {
+        bugListValues.push(
+          { value, name: key },
+        );
+      });
+      if (bugListValues.length === 0) {
+        bugListValues.push({
+          name: '无记录', value: 0,
+        });
+      }
+      if (requirementsValues.length === 0) {
+        requirementsValues.push({
+          name: '无记录', value: 0,
+        });
+      }
       const requirementPie = echarts.init(document.getElementById('requirement_pie'));
       requirementPie.setOption({
+        title: {
+          text: '任务完成情况',
+          left: 'center',
+          textStyle: {
+            fontSize: 12,
+          },
+        },
         tooltip: {
           trigger: 'item',
         },
@@ -150,22 +194,25 @@ export default {
             labelLine: {
               show: false,
             },
-            data: [
-              { value: 1048, name: '已完成' },
-              { value: 735, name: '进行中' },
-              { value: 580, name: '已结束' },
-            ],
+            data: requirementsValues,
           },
         ],
       });
       const bugPie = echarts.init(document.getElementById('bug_pie'));
       bugPie.setOption({
+        title: {
+          text: 'Bug处理情况',
+          left: 'center',
+          textStyle: {
+            fontSize: 12,
+          },
+        },
         tooltip: {
           trigger: 'item',
         },
         series: [
           {
-            name: '任务情况',
+            name: 'Bug情况',
             type: 'pie',
             radius: ['40%', '70%'],
             avoidLabelOverlap: false,
@@ -183,11 +230,7 @@ export default {
             labelLine: {
               show: false,
             },
-            data: [
-              { value: 1048, name: '已完成' },
-              { value: 735, name: '进行中' },
-              { value: 580, name: '已结束' },
-            ],
+            data: bugListValues,
           },
         ],
       });