Эх сурвалжийг харах

数据大盘:半浮层改造(0.5)

洪海涛 4 жил өмнө
parent
commit
4e7fad2dc4

+ 8 - 0
src/api/dataMarket.js

@@ -175,3 +175,11 @@ export function bugRepair2Data(data) {
   })
 }
 /* E 效率:半浮层数据接口 */
+// 获取上线过程列表 /dataMarket/odinjob/list
+export function getOdinJobList(data) {
+  return request({
+    url: TeamManagement + '/dataMarket/odinjob/list',
+    method: 'post',
+    data
+  })
+}

+ 46 - 0
src/views/dataBigManage/components/drawerModal/drawerModalData.js

@@ -90,6 +90,48 @@ export const columns = {
   ],
   // 准出记录
   releaseReportIdListColumns: [],
+  // 上线次数
+  onlineTimesIdListColumns: [
+    {
+      label: '优先级',
+      key: 'priorityName',
+      minWidth: 90,
+      align: 'left',
+      type: 'level'
+    }
+  ],
+  // 免测上线率
+  test_freeOn_lineRateIdListColumns: [
+    {
+      label: '模块名',
+      key: 'serviceName',
+      minWidth: 200,
+      align: 'left',
+      type: 'link'
+    },
+    {
+      label: '发起人',
+      key: 'creator',
+      minWidth: 100,
+      align: 'left'
+    },
+    {
+      label: '状态',
+      key: 'statusMsg',
+      minWidth: 90,
+      align: 'left'
+    },
+    {
+      label: '起始时间',
+      key: 'gmtCreate',
+      minWidth: 190,
+      align: 'left',
+      type: 'slot',
+      slotName: 'gmtCreateSlot'
+    }
+  ],
+  // 裸奔上线
+  StreakingGoesOnlineIdListColumns: [],
   // 吞吐量: 需求
   requirementListColumns: [
     {
@@ -490,6 +532,10 @@ export const timelineList = {
   delayLaunchData2: [
     '全部准出',
     '延期准出'
+  ],
+  // 上线过程
+  lineRate: [
+    '全部上线', '裸奔上线', '回滚'
   ]
 }
 

+ 51 - 3
src/views/dataBigManage/components/drawerModal/index.vue

@@ -124,7 +124,8 @@ import {
   bugRepairData, // 缺陷24小时修复率
   bugRepair2Data, // 缺陷平均修复时长
   getStarFlowerList, // 线上问题:半浮层 列表
-  getProjectList // 需求任务项目列表: 半浮层
+  getProjectList, // 需求任务项目列表: 半浮层
+  getOdinJobList // 获取上线过程列表
 } from '@/api/dataMarket'
 
 export default {
@@ -288,6 +289,9 @@ export default {
       if (this.headerTitle === '质量') {
         this.ids = this.drawerData.IdList.map(e => e)
       }
+      if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+        this.ids = this.drawerData.IdList.map(e => e)
+      }
       if (this.headerTitle === '吞吐量') {
         this.drawerData.list.forEach(elm => {
           if (elm.label === this.drawerData.activeLabel && elm.idList) {
@@ -307,6 +311,10 @@ export default {
           if (this.title.search(/新增缺陷|reopen/) > -1) {
             first = [...timelineList.newDefect]
           }
+          if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+            first = [...timelineList.lineRate]
+            firstActive = this.drawerData.index
+          }
         }
         if (this.headerTitle === '吞吐量') {
           secondActive = 0
@@ -403,11 +411,18 @@ export default {
     // 导出
     exportTable() {
     },
+    // 格式化时间
+    dateFomatter(date) {
+      return date.substring(0, 10) + ' ' + date.substring(11, 19)
+    },
     // 设置表格头
     setColumn() {
       if (this.title.search(/新增缺陷|reopen|缺陷24小时修复率/) > -1) {
         this.column = columns.bugColumn.map(e => e)
       }
+      if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+        this.column = columns.test_freeOn_lineRateIdListColumns.map(e => e)
+      }
       if (this.title.search(/新增问题/) > -1) {
         this.column = columns.newQuestionColumns.map(e => e)
       }
@@ -462,6 +477,10 @@ export default {
             this.ids = this.drawerData.IdList.map(e => e)
             this.priorityList = value ? [value - 1] : []
           }
+          if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+            // console.log(this.drawerData.parent.list[value])
+            this.ids = this.drawerData.parent.list[value].IdList.map(e => e)
+          }
         }
         if (this.headerTitle === '吞吐量') {
           this.timelineData.firstActive = value || 0
@@ -512,6 +531,12 @@ export default {
             this.setReportList()
           }
         }
+        if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+          if (this.ids.length) {
+            this.loading = true
+            this.getOdinJobListFn()
+          }
+        }
       }
       if (this.headerTitle === '吞吐量') {
         if (this.title.search(/需求/) > -1) {
@@ -683,6 +708,21 @@ export default {
         this.loading = false
       }
     },
+    // 上线过程
+    async getOdinJobListFn() {
+      const paging = this.paging
+      const res = await getOdinJobList({
+        idList: this.ids,
+        curIndex: this.paging.curIndex,
+        pageSize: this.paging.pageSize
+      })
+      if (res.code === 200) {
+        this.tableList = res.data.result
+        this.paging.pageTotal = res.data.total
+        this.paging = { ...paging }
+        this.loading = false
+      }
+    },
     /* S 效率:半浮层数据接口 */
     // 需求平均交付周期
     async setRequireAvgData() {
@@ -842,7 +882,9 @@ export default {
     },
     // 设置表格高度
     setTitleHeight() {
-      if (this.title.search(/状态停留分布图数据|状态累积流量图数据/) > -1) {
+      if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+        this.tableHeight = 'calc(100vh - 288px)'
+      } else if (this.title.search(/状态停留分布图数据|状态累积流量图数据/) > -1) {
         this.tableHeight = 'calc(100vh - 363px)'
       } else if (this.title.search(/需求周期|新增项目|新增任务|reopen|新增缺陷|需求人力|任务周期|缺陷修复时长|延期准出率|延期提测率/) > -1) {
         this.tableHeight = 'calc(100vh - 288px)'
@@ -854,7 +896,7 @@ export default {
       } else {
         this.tableHeight = 'calc(100vh - 136px)'
       }
-      if (this.headerTitle === '质量' && this.title.search(/新增缺陷|reopen/) < 0) {
+      if (this.headerTitle === '质量' && this.title.search(/新增缺陷|reopen/) < 0 && !this.drawerData.moduleName) {
         this.tableHeight = 'calc(100vh - 136px)'
       }
       if (this.headerTitle === '吞吐量') {
@@ -867,6 +909,9 @@ export default {
       if (this.headerTitle === '质量' && this.drawerData.label === '新增问题') {
         const url = `http://odin.xiaojukeji.com/#/risk/starflower/casedetail?id=${row.id}&name=${row.title}`
         window.open(url, '_blank')
+      } else if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+        const url = `http://odin.v5.intra.xiaojukeji.com/#/deploy/job/status/?jobId=${row.id}`
+        window.open(url, '_blank')
       } else if (this.headerTitle === '质量' && this.drawerData.label.search(/^(提测报告|准出记录)/) > -1) {
         this.jumper(row, '报告')
       } else if (this.headerTitle === '吞吐量') {
@@ -930,6 +975,9 @@ export default {
         if (this.headerTitle.search(/质量/) > -1 && this.title.search(/新增缺陷|reopen/) > -1) {
           return true
         }
+        if (this.drawerData.moduleName && this.drawerData.moduleName === '上线过程') {
+          return true
+        }
         return this.headerTitle.search(/吞吐量|效率/) > -1
       }
       // 是第二条

+ 1 - 2
src/views/dataBigManage/components/qualityModule/index.vue

@@ -85,7 +85,7 @@
           >
             <div
               :style="{ cursor: 'pointer'}"
-              @click.stop="onDetial('上线过程', item)"
+              @click.stop="onDetial('上线过程', {...item, parent: mainData.onlineProcessList, index: index, moduleName: '上线过程' })"
             >
               <dataItem :item="item" />
             </div>
@@ -245,7 +245,6 @@ export default {
   },
   methods: {
     onDetial(name, item) {
-      console.log(name, item)
       if (
         (name === '线上问题' && item.label === '新增问题') ||
         name === '线下质量' ||