Browse Source

添加统计数据转取

qinzhipeng_v@didiglobal.com 4 years ago
parent
commit
0b61122f56

+ 1 - 0
src/components/timeline/index.vue

@@ -79,6 +79,7 @@ export default {
   border: 1px solid #E5E5E5;
 }
 .qz-timeline-name {
+  padding: 0 10px;
   font-weight: 400;
   font-size: 12px;
   color: #444444;

+ 2 - 2
src/views/quality/components/drawerAll.vue

@@ -223,13 +223,13 @@ export default {
         return
       }
       const data = { ids: taskIdList, ...this.paging }
-      if (this.Statistics.title === '需求方向分布图数据' || this.Statistics.title === '需求分布图数据' || this.Statistics.title === '状态停留分布图数据' && this.Statistics.toType === '需求' || this.Statistics.title === '状态累积流量图数据' && this.Statistics.toType === '需求' || this.Statistics.title === '周期统计数据' || this.Statistics.title === '人力统计数据' || this.Statistics.title === '新增趋势图数据' && this.Statistics.toType === '需求' || this.Statistics.title === '上线趋势图数据' && this.Statistics.toType === '需求' || this.Statistics.title === 'PRD评审趋势图数据' || this.Statistics.title === '技术准入趋势图数据') {
+      if (this.Statistics.title === '需求方向分布图数据' || this.Statistics.title === '需求分布图数据' || this.Statistics.title === '状态停留分布图数据' && this.Statistics.toType === '需求' || this.Statistics.title === '状态累积流量图数据' && this.Statistics.toType === '需求' || this.Statistics.title === '周期统计数据' && this.Statistics.toType === '需求' || this.Statistics.title === '人力统计数据' && this.Statistics.toType === '需求' || this.Statistics.title === '新增趋势图数据' && this.Statistics.toType === '需求' || this.Statistics.title === '上线趋势图数据' && this.Statistics.toType === '需求' || this.Statistics.title === 'PRD评审趋势图数据' || this.Statistics.title === '技术准入趋势图数据') {
         const res = await getRequirement(data)
         if (res.code === 200) {
           this.tableData = res.data.list
           this.total = res.data.total
         }
-      } else if (this.Statistics.title === '任务分布图数据' || this.Statistics.title === '状态停留分布图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '状态累积流量图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '新增趋势图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '上线趋势图数据' && this.Statistics.toType === '任务') {
+      } else if (this.Statistics.title === '任务分布图数据' || this.Statistics.title === '状态停留分布图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '状态累积流量图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '新增趋势图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '上线趋势图数据' && this.Statistics.toType === '任务' || this.Statistics.title === '人力统计数据' && this.Statistics.toType === '任务' || this.Statistics.title === '周期统计数据' && this.Statistics.toType === '任务') {
         const res = await taskList(data)
         if (res.code === 200) {
           this.tableData = res.data

+ 17 - 27
src/views/quality/components/tables/index.vue

@@ -6,13 +6,13 @@
           <span class="div_priority" :style="{background: priorityColors[scope.row.priority % priorityColors.length]}">{{ 'P'+scope.row.priority }}</span>
         </template>
       </el-table-column>
-      <el-table-column v-if="type === '需求' || type === '需求状态' || type === '需求等级' || type === '需求类型' || title === '需求分布图数据' && type === '跟版客户端' || type === 'pm' || title === '状态累积流量图数据' && type === '需求' || title === '周期统计数据' || title === '人力统计数据' || title === '新增趋势图数据' && type === '需求' || title === '上线趋势图数据' && type === '需求' || title === 'PRD评审趋势图数据' || title === '技术准入趋势图数据' || title === '需求方向分布图数据'" label="需求名称" :min-width="title === '周期统计数据' || title === '人力统计数据' ? '120' : '360'" align="left" show-overflow-tooltip>
+      <el-table-column v-if="type === '需求' || type === '需求状态' || type === '需求等级' || type === '需求类型' || title === '需求分布图数据' && type === '跟版客户端' || type === 'pm' || title === '状态累积流量图数据' && type === '需求' || title === '周期统计数据' && type === '需求' || title === '人力统计数据' && type === '需求' || title === '新增趋势图数据' && type === '需求' || title === '上线趋势图数据' && type === '需求' || title === 'PRD评审趋势图数据' || title === '技术准入趋势图数据' || title === '需求方向分布图数据'" label="需求名称" :min-width="title === '周期统计数据' || title === '人力统计数据' ? '120' : '360'" align="left" show-overflow-tooltip>
         <template slot-scope="scope">
           <div class="drawer-id">{{ scope.row.requirementDisplayId }}</div>
           <div class="drawer-name" @click="jumper(scope.row, '需求')">{{ scope.row.name }}</div>
         </template>
       </el-table-column>
-      <el-table-column v-if="type === '任务' || type === '任务状态' || type === '任务等级' || type === '开发负责人' || type === '测试负责人' || title === '任务分布图数据' && type === '跟版客户端' || type === '直接归属' || title === '状态累积流量图数据' && type === '任务' || title === '新增趋势图数据' && type === '任务' || title === '上线趋势图数据' && type === '任务'" label="任务名称" min-width="360" align="left" show-overflow-tooltip>
+      <el-table-column v-if="type === '任务' || type === '任务状态' || type === '任务等级' || type === '开发负责人' || type === '测试负责人' || title === '任务分布图数据' && type === '跟版客户端' || type === '直接归属' || title === '状态累积流量图数据' && type === '任务' || title === '周期统计数据' && type === '任务' || title === '新增趋势图数据' && type === '任务' || title === '上线趋势图数据' && type === '任务' || title === '人力统计数据' && type === '任务'" label="任务名称" :min-width="title === '周期统计数据' || title === '人力统计数据' ? '120' : '360'" align="left" show-overflow-tooltip>
         <template slot-scope="scope">
           <div class="drawer-id">{{ scope.row.taskIdSting }}</div>
           <div class="drawer-name" @click="jumper(scope.row, '任务')">{{ scope.row.name }}</div>
@@ -27,28 +27,18 @@
               <div v-if="mintitle === '产品技术侧总周期'">'产品技术侧总周期定义:需求从BRD评审通过到交付的总周期。计算条件:仅计算需求计划里 BRD评审通过时间不为空,且需求状态已变更为“已排期”且排期不为空的需求。(没有BRD评审通过状态的业务线按需求创建时间计算)'</div>
               <div v-if="mintitle === '产品侧总周期'">'产品侧总周期定义:需求从BRD评审通过到技术准入的总周期。计算条件:仅计算需求计划里BRD评审通过时间和技术准入时间均不为空的需求。(没有BRD评审通过状态的业务线按需求创建时间计算、没有技术准入状态的业务线按PRD评审通过时间计算)'</div>
               <div v-if="mintitle === '技术侧总周期'">'技术侧总周期定义:需求从技术准入到交付的总周期。计算条件:仅计算需求计划里技术准入时间不为空,且需求状态已变更为“已排期”且需求排期不为空的需求。(没有技术准入状态的业务线按PRD评审通过时间计算)'</div>
-              <div v-if="mintitle === '研发交付周期'">'研发交付周期定义:需求排期里开发、联调、上线类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且需求排期不为空的需求。'</div>
-              <div v-if="mintitle === '研发周期'">'研发周期定义:需求排期里开发、联调类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且需求排期不为空的需求。计算规则:'</div>
-              <div v-if="mintitle === '测试周期'">'测试周期定义:需求排期里测试类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且需求排期不为空的需求。'</div>
+              <div v-if="mintitle === '研发交付周期'">'研发交付周期定义:{{ type }}排期里开发、联调、上线类型排期的总周期。计算条件:仅计算{{ type }}状态已变更为“已排期”且{{ type }}排期不为空的{{ type }}。'</div>
+              <div v-if="mintitle === '研发周期'">'研发周期定义:{{ type }}排期里开发、联调类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且{{ type }}排期不为空的{{ type }}。计算规则:'</div>
+              <div v-if="mintitle === '测试周期'">'测试周期定义:{{ type }}排期里测试类型排期的总周期。计算条件:仅计算{{ type }}状态已变更为“已排期”且需求排期不为空的{{ type }}。'</div>
+              <div v-if="mintitle === '提测等待测试时长'">'提测等待测试时长定义:任务排期里提测排期结束日期距离测试排期开始日期的天数。计算条件:仅计算任务状态已变更为“已排期”且排期不为空,且提测、测试类型排期不为空的任务。'</div>
             </div>
           </el-tooltip>
         </template>
         <template slot-scope="scope">{{ scope.row.pm }}</template>
       </el-table-column>
       <el-table-column v-if="title === '人力统计数据' && mintitle !== ''" :label="mintitle" min-width="150" align="center">
-        <template slot="header">
-          <span>{{ mintitle }}</span>
-          <el-tooltip placement="top" popper-class="cycleStatistic-tips">
-            <i class="el-icon-info" style="cursor: pointer;color:rgba(121,132,150,0.8);margin-left:5px;" />
-            <div slot="content" class="tooltip-content">
-              <div v-if="mintitle === '产品技术侧总周期'">'产品技术侧总周期定义:需求从BRD评审通过到交付的总周期。计算条件:仅计算需求计划里 BRD评审通过时间不为空,且需求状态已变更为“已排期”且排期不为空的需求。(没有BRD评审通过状态的业务线按需求创建时间计算)'</div>
-              <div v-if="mintitle === '产品侧总周期'">'产品侧总周期定义:需求从BRD评审通过到技术准入的总周期。计算条件:仅计算需求计划里BRD评审通过时间和技术准入时间均不为空的需求。(没有BRD评审通过状态的业务线按需求创建时间计算、没有技术准入状态的业务线按PRD评审通过时间计算)'</div>
-              <div v-if="mintitle === '技术侧总周期'">'技术侧总周期定义:需求从技术准入到交付的总周期。计算条件:仅计算需求计划里技术准入时间不为空,且需求状态已变更为“已排期”且需求排期不为空的需求。(没有技术准入状态的业务线按PRD评审通过时间计算)'</div>
-              <div v-if="mintitle === '研发交付周期'">'研发交付周期定义:需求排期里开发、联调、上线类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且需求排期不为空的需求。'</div>
-              <div v-if="mintitle === '研发周期'">'研发周期定义:需求排期里开发、联调类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且需求排期不为空的需求。计算规则:'</div>
-              <div v-if="mintitle === '测试周期'">'测试周期定义:需求排期里测试类型排期的总周期。计算条件:仅计算需求状态已变更为“已排期”且需求排期不为空的需求。'</div>
-            </div>
-          </el-tooltip>
+        <template slot-scope="scope">
+          {{ scope.row.pm }}
         </template>
         <template slot-scope="scope">{{ scope.row.pm }}</template>
       </el-table-column>
@@ -77,8 +67,8 @@
           <span>{{ scope.row.typeName }}</span>
         </template>
       </el-table-column>
-      <el-table-column v-if="type === '需求' || type === '需求状态' || type === '需求等级' || title === '状态累积流量图数据' && type === '需求' || title === '周期统计数据' || title === '人力统计数据' || title === '新增趋势图数据' && type === '需求' || title === '上线趋势图数据' && type === '需求' || title === 'PRD评审趋势图数据' || title === '技术准入趋势图数据' || title === '需求方向分布图数据'" label="状态" prop="statusName" min-width="100" align="center" />
-      <el-table-column v-if="type === '任务' || type === '任务状态' || type === '任务等级' || title === '状态累积流量图数据' && type === '任务' || title === '新增趋势图数据' && type === '任务' || title === '上线趋势图数据' && type === '任务'" label="状态" prop="statusString" min-width="100" align="center" />
+      <el-table-column v-if="type === '需求' || type === '需求状态' || type === '需求等级' || title === '状态累积流量图数据' && type === '需求' || title === '周期统计数据' && type === '需求' || title === '人力统计数据' && type === '需求' || title === '新增趋势图数据' && type === '需求' || title === '上线趋势图数据' && type === '需求' || title === 'PRD评审趋势图数据' || title === '技术准入趋势图数据' || title === '需求方向分布图数据'" label="状态" prop="statusName" min-width="100" align="center" />
+      <el-table-column v-if="type === '任务' || type === '任务状态' || type === '任务等级' || title === '状态累积流量图数据' && type === '任务' || title === '周期统计数据' && type === '任务' || title === '人力统计数据' && type === '任务' || title === '新增趋势图数据' && type === '任务' || title === '上线趋势图数据' && type === '任务'" label="状态" prop="statusString" min-width="100" align="center" />
     </el-table>
 
     <el-table v-if="title === '去除节假日的修复时长区间数据' || title === '不去除节假日的修复时长区间数据'" :data="data" style="width: auto;" height="calc(100vh - 355px)" :header-cell-style="{ 'color':'rgba(74,74,74,1)','font-size':'14px','font-weight':'500' }">
@@ -191,13 +181,13 @@ export default {
   },
   data() {
     return {
-      priorityColors: ['#F56C6C', '#FF8952', '#F5E300', '#7ED321', '#61D3B8', '#69B3FF', '#BDBDBD'],
-      taskTips: [
-        '研发交付周期定义:任务排期里开发、联调、上线类型排期的总周期。计算条件:仅计算任务状态已变更为“已排期”且任务排期不为空的任务。',
-        '研发周期定义:任务排期里开发、联调类型排期的总周期。计算条件:仅计算状态已变更为“已排期”且排期不为空的任务。',
-        '测试周期定义:任务排期里测试类型排期的总周期。计算条件:仅计算状态已变更为“已排期”且排期不为空的任务。',
-        '提测等待测试时长定义:任务排期里提测排期结束日期距离测试排期开始日期的天数。计算条件:仅计算任务状态已变更为“已排期”且排期不为空,且提测、测试类型排期不为空的任务。'
-      ]
+      priorityColors: ['#F56C6C', '#FF8952', '#F5E300', '#7ED321', '#61D3B8', '#69B3FF', '#BDBDBD']
+      // taskTips: [
+      //   '研发交付周期定义:任务排期里开发、联调、上线类型排期的总周期。计算条件:仅计算任务状态已变更为“已排期”且任务排期不为空的任务。',
+      //   '研发周期定义:任务排期里开发、联调类型排期的总周期。计算条件:仅计算状态已变更为“已排期”且排期不为空的任务。',
+      //   '测试周期定义:任务排期里测试类型排期的总周期。计算条件:仅计算状态已变更为“已排期”且排期不为空的任务。',
+      //   '提测等待测试时长定义:任务排期里提测排期结束日期距离测试排期开始日期的天数。计算条件:仅计算任务状态已变更为“已排期”且排期不为空,且提测、测试类型排期不为空的任务。'
+      // ]
     }
   },
   methods: {

+ 2 - 1
src/views/quality/requireStatistics.vue

@@ -142,7 +142,7 @@
         </div>
         <div class="chart-item">
           <h3>人力统计<span>(根据排期计算)</span></h3>
-          <cycle-statistic :chart-data="peopleData" @clickCount="getPeopleList" />
+          <cycle-statistic :chart-data="peopleData" :show-tips="false" @clickCount="getPeopleList" />
         </div>
         <div class="chart-item">
           <h3>人力分布图<span>(根据排期计算)</span></h3>
@@ -588,6 +588,7 @@ export default {
     },
     getClickItem(value, data) {
       value.title = '周期统计数据'
+      value.toType = '需求'
       value.xaxis = this.mapData(data)
       value.yaxis = data
       this.requireList = value

+ 25 - 2
src/views/quality/taskStatistics.vue

@@ -121,7 +121,7 @@
             <i class="el-icon-warning-outline" />
             <span>仅统计状态已变更“已排期”且排期不为空的任务</span>
           </div> -->
-          <cycle-statistic :chart-data="cycleData" type="task" />
+          <cycle-statistic :chart-data="cycleData" type="task" @clickCount="clickCycleData" />
         </div>
         <div class="chart-item">
           <h3>周期&等待时长分布图<span>(根据排期计算)</span></h3>
@@ -140,7 +140,7 @@
         </div>
         <div class="chart-item">
           <h3>人力统计<span>(根据排期计算)</span></h3>
-          <cycle-statistic :chart-data="taskPeoplecData" type="task_a" />
+          <cycle-statistic :chart-data="taskPeoplecData" type="task_a" @clickCount="getTaskPeoplecData" />
         </div>
         <div class="chart-item">
           <h3>人力分布图<span>(根据排期计算)</span></h3>
@@ -564,6 +564,13 @@ export default {
     getStatusType(e) {
       this.reqStatus = e
     },
+    mapData(data) {
+      const arr = []
+      data.map(item => {
+        arr.push(item.label.substr(2))
+      })
+      return arr
+    },
     getRequiredNum(value) {
       this.drawer = true
       value.typeStr = '任务'
@@ -584,6 +591,22 @@ export default {
       this.requireList = { ...value, ...data }
       this.openDrawer = true
     },
+    clickCycleData(value, data) {
+      value.title = '周期统计数据'
+      value.toType = '任务'
+      value.xaxis = this.mapData(data)
+      value.yaxis = data
+      this.requireList = value
+      this.openDrawer = true
+    },
+    getTaskPeoplecData(value, data) {
+      value.title = '人力统计数据'
+      value.toType = '任务'
+      value.xaxis = this.mapData(data)
+      value.yaxis = data
+      this.requireList = value
+      this.openDrawer = true
+    },
     clickCountStr(value) { // 需求bug 浮层数据
       value.title = '缺陷统计数据'
       value.xaxis = ['全部', 'P0', 'P1', 'P2', 'P3']