Quellcode durchsuchen

Merge branch 'usecase_daily_0.0.2' of https://git.xiaojukeji.com/pu_qa_tool/thoth-frontend into usecase_daily_0.0.2

wenbobowen vor 4 Jahren
Ursprung
Commit
1e8c8c2b02

+ 7 - 3
src/components/select/searchPeople.vue

@@ -28,7 +28,7 @@
   </el-select>
 </template>
 <script>
-// import { memberQueryMemberInfoByIDAPorName } from '@/api/projectIndex'
+import { memberQueryMemberInfoByIDAPorName } from '@/api/projectIndex'
 import { getListPerson } from '@/api/onlineproblem'
 
 export default {
@@ -114,8 +114,12 @@ export default {
       }
     },
     async getMember(query, initMore = false) {
-      // const res = await memberQueryMemberInfoByIDAPorName({ memberIDAP: query })
-      const res = await getListPerson({ memberIDAPs: typeof query === 'string' ? [query] : query })
+      let res = null
+      if (typeof query === 'string') {
+        res = await memberQueryMemberInfoByIDAPorName({ memberIDAP: query })
+      } else {
+        res = await getListPerson({ memberIDAPs: query })
+      }
       if (res.data === null) {
         return
       }

+ 3 - 3
src/views/monthlyReport/childrenPage/editReport/components/MrTable/Analysis.vue

@@ -131,12 +131,12 @@ size="small"
       :modal="false"
       :show-dialog="false"
       :title="'确认月报'"
-      width="335px"
+      width="319px"
       @cancel="dialogConfirmCancel"
       @succes="updateModule('Submission')"
     >
       <div class="report-delete">
-        分析反馈提交后将不可修改,请确认是否提交?
+        分析反馈提交后会回复原有质量月报邮件,且内容将不可修改,请确认是否提交?
       </div>
     </normal-dialog>
   </div>
@@ -346,7 +346,7 @@ export default {
 }
 
 .bg {
-  z-index: 10;
+  z-index: 2000;
   position: fixed;
   left: 0;
   top: 0;

+ 21 - 13
src/views/monthlyReport/childrenPage/editReport/components/MrTable/TableExpandRow.vue

@@ -27,24 +27,24 @@
           class="improvementItems-wrapper"
         >
           <!--改进项: 描述-->
-          <div>{{ subIndex + 1 }}、{{ subItem.description }}</div>
+          <div>{{ subIndex + 1 }}、{{ subItem.description }}{{ subItem.detail && ':' }}{{ subItem.detail }}</div>
           <!--改进项: 其他-->
           <div class="description-wrapper">
             <!--改进项: 责任人-->
-            <span style="min-width: 50px;display: inline-block;">责任人:
-              <span v-if="!subItem.personInCharge">暂无负责人</span>
+            <span style="min-width: 50px;display: inline-block;"><span class="new-title">责任人:</span><span v-if="!subItem.personInCharge || !subItem.personInCharge.length">暂无负责人</span>
               <MultiplePeopleInfo
                 v-else
                 style="display:inline-block "
                 :team-data="subItem.personInCharge"
-              /></span>
+              />
+            </span>
             <!--改进项: 计划完成时间-->
-            <span style="min-width: 200px;display: inline-block;margin-right: 40px;margin-left: 30px;">计划完成时间:{{ rTime(subItem.deadline) }}</span>
+            <span style="min-width: 120px;max-width: 200px;display: inline-block;margin-right: 40px;margin-left: 30px;">计划完成时间:{{ rTime(subItem.deadline) }}</span>
             <!--改进项: 进度-->
             <span
               class="progress-wrapper"
               :style="{ width: !subItem.isProgressEdit ? '300px' : '380px' }"
-            >进度:<span v-if="!subItem.isProgressEdit">{{
+            ><span class="new-title">进度:</span><span v-if="!subItem.isProgressEdit">{{
                 subItem.progress || '0'
               }}</span
             ><span v-else>
@@ -59,8 +59,9 @@
               v-if="subItem.isProgressEdit"
               type="text"
               @click.stop="progressEdit(subItem)"
-            >保存</el-button
             >
+              保存
+            </el-button>
               <el-tooltip
                 v-if="subItem.isHold"
                 class="item"
@@ -99,7 +100,7 @@
       </div>
       <Hold ref="Hold" @upData="upHold" />
     </div>
-    <div v-else style="padding-bottom: 10px;padding-left: 0px;font-size: 14px">暂无分析反馈数据!</div>
+    <div v-else style="padding-bottom: 10px;padding-left: 0;font-size: 14px">暂无分析反馈数据!</div>
   </div>
 </template>
 
@@ -151,7 +152,7 @@ export default {
     rTime(date) {
       if (!date) return ''
       var json_date = new Date(date).toJSON()
-      return new Date(new Date(json_date) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
+      return new Date(new Date(json_date) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '').replace(/00:00:00/, '')
     },
     progressEdit(item) {
       if (!_.isBoolean(item.isProgressEdit)) {
@@ -270,7 +271,7 @@ export default {
     color: #1890ff;
     display: inline-block;
     // width: 50px;
-    margin: 0 50px;
+    margin: 0 20px 0 50px;
     // margin-right: 10px;
     cursor: pointer;
   }
@@ -280,14 +281,21 @@ export default {
     display: inline-block;
     cursor: pointer;
   }
-
+.new-title{
+  color: #666666;
+}
   // .description-wrapper {
   // }
   // .item-problem {
   // }
   // .item-reason {
   // }
-  // .improvementItems-wrapper {
-  // }
+   .improvementItems-wrapper {
+     margin-bottom: 20px;
+     padding-left: 28px;
+     &:last-child{
+       margin-bottom: 0;
+     }
+   }
 }
 </style>

+ 102 - 0
src/views/monthlyReport/childrenPage/editReport/components/OnlineQuestion.vue

@@ -0,0 +1,102 @@
+<template>
+  <span v-if="subTitle" class="subTitle-wrapper">
+    <span class="fontWeight">{{ title }}</span>&nbsp;-&nbsp;
+    <span v-for="(item, index) in subTitle" :key="index" class="item">
+      <span v-if="isShowItem(item.copywriter)">{{ item.copywriter === '已完成' ? '线上故障改进项:已完成' : item.copywriter }}<span :class="{ red: isShowColor(item.copywriter, item.label) }"><span class="fontWeight">{{ item.label }}</span>
+        <span v-if="isShow(item.copywriter)" class="fontWeight">%</span></span><span
+        v-if="item.copywriter !== '全量回滚率' && item.copywriter !== '逾期率'">个</span>
+        <span v-if="index < subTitle.length - 1">{{ item.copywriter.search(/发布次数|未定级故障/) > -1 ? ';' : isComma(item.copywriter) }}</span>
+        <span v-if="index === subTitle.length - 1">。</span>
+      </span>
+    </span>
+  </span>
+</template>
+
+<script>
+export default {
+  name: 'OnlineQuestion',
+  props: {
+    title: {
+      type: String,
+      required: false,
+      default: null
+    },
+    subTitle: {
+      type: Array,
+      required: false,
+      default: null
+    }
+  },
+  methods: {
+    isShow(label) {
+      return label.search(/逾期率/) > -1
+    },
+    isShowItem(label) {
+      let isShow = true
+      const setIseShow = (key) => {
+        for (let i = 0; i < this.subTitle.length; i++) {
+          const elm = this.subTitle[i]
+          if (elm.copywriter === key) {
+            isShow = elm.label > 0
+            return
+          }
+        }
+      }
+      if (label === '全量回滚率') {
+        setIseShow('全量回滚次数')
+      }
+      if (label === '裸奔上线率') {
+        setIseShow('裸奔上线次数')
+      }
+      // if (label === '逾期未完成') {
+      //   setIseShow('逾期未完成')
+      // }
+
+      return isShow
+    },
+    isShowColor(label, num) {
+      if (label.search(/P3|P4|P5|逾期完成|逾期未完成/) > -1 && num > 0) {
+        return true
+      }
+      // console.log(label, num)
+      return label === '逾期率' && num > 1
+    },
+    // 判断是否显示逗号
+    isComma(label) {
+      if (label.search(/裸奔上线次数/) > -1) {
+        if (this.isShowItem('裸奔上线率')) {
+          return ','
+        } else {
+          return ''
+        }
+      }
+      if (label.search(/小流量回滚次数/) > -1) {
+        if (this.isShowItem('全量回滚率')) {
+          return ','
+        } else {
+          return ';'
+        }
+      }
+      return ','
+    }
+  }
+}
+</script>
+
+<style scoped lang='less'>
+.subTitle-wrapper {
+  color: #333;
+  line-height: 1;
+
+  .item {
+    /deep/ .red {
+      color: red;
+    }
+  }
+}
+
+.fontWeight {
+  // color: #333;
+  font-weight: 600;
+}
+</style>

+ 16 - 8
src/views/monthlyReport/childrenPage/editReport/components/OverallOverviewOfTheClient/box.vue

@@ -5,7 +5,7 @@
       <span class="report-title-text">{{ title }}</span>
     </div>
     <div>
-      <el-tabs v-if="pageData" :value="tabsActive" @tab-click="tabClick">
+      <el-tabs v-if="pageData" class="isBar" :value="tabsActive" @tab-click="tabClick">
         <el-tab-pane
           v-for="item in pageData"
           :key="item.clientType"
@@ -74,16 +74,24 @@ export default {
   }
 }
 
-/deep/ .el-tabs__active-bar {
-  display: none;
-}
+///deep/ .el-tabs__active-bar {
+//  display: none;
+//}
+//
+///deep/ .el-tabs__nav-wrap::after {
+//  display: none;
+//}
+.isBar {
+  /deep/ .el-tabs__nav-wrap::after {
+    display: initial;
+  }
 
-/deep/ .el-tabs__nav-wrap::after {
-  display: none;
+  /deep/ .el-tabs__header {
+    margin-bottom: 20px;
+  }
 }
-
 /deep/ .el-tabs__item {
-  padding: 0 5px;
+  padding: 0 10px;
   font-weight: 400;
 }
 

+ 7 - 7
src/views/monthlyReport/childrenPage/editReport/components/OverallOverviewOfTheClient/index.vue

@@ -81,11 +81,11 @@ export default {
   }
 }
 
-/deep/ .el-tabs__active-bar {
-  display: none;
-}
-
-/deep/ .el-tabs__nav-wrap::after {
-  display: none;
-}
+///deep/ .el-tabs__active-bar {
+//  display: none;
+//}
+//
+///deep/ .el-tabs__nav-wrap::after {
+//  display: none;
+//}
 </style>

+ 3 - 0
src/views/monthlyReport/childrenPage/editReport/components/PushAndBanck.vue

@@ -58,6 +58,9 @@ export default {
       if (label === '全量回滚次数' && num > 0) {
         return true
       }
+      if (label === '裸奔上线率' && num > 5) {
+        return true
+      }
       // console.log(label, num)
       return label === '全量回滚率' && num > 1
     },

+ 14 - 2
src/views/monthlyReport/childrenPage/editReport/components/core.vue

@@ -59,6 +59,10 @@
         v-html="headerTitle.replace(/(延期|提测打回\/准出不通过|提测打回\/发版撤回|增发) -/g,'<hhtsubtitle>$1</hhtsubtitle> -')"
       />
       <span v-if="baseData.title.search(/延期|发布&回滚/) > -1">。</span>
+      <OnlineQuestion
+        v-if="headerTitle.indexOf('线上问题') > -1"
+        :sub-title="baseData.subTitles"
+        style="margin-bottom: 10px" />
       <Refresh
         v-if="pageDate && pageDate.status < 20"
         slot="refresh"
@@ -84,7 +88,10 @@
     </div>
     <div v-if="baseData.children && baseData.children.length">
       <div v-if="baseData.children[0].type === 'Tag'">
-        <el-tabs v-model="activeName" :class="{'isBar':baseData.children.filter(elm => elm.title.search(/服务端|客户端/) < 0).length}" @tab-click="handleClick">
+        <el-tabs
+v-model="activeName"
+                 :class="{'isBar':baseData.children.filter(elm => elm.title.search(/服务端|客户端/) < 0).length}"
+                 @tab-click="handleClick">
           <el-tab-pane
             v-for="(item, index) in baseData.children"
             :key="item.domKey"
@@ -140,6 +147,7 @@ import headTitle from '@/components/headTitle'
 import contentDom from './content'
 import SubTitle from './SubTitle'
 import PushAndBanck from './PushAndBanck'
+import OnlineQuestion from './OnlineQuestion'
 import Refresh from './Refresh'
 import { toChinesNum } from '@/utils'
 import markingIssues from '@/views/monthlyReport/childrenPage/editReport/components/markingIssues'
@@ -152,6 +160,7 @@ export default {
     markingIssues,
     SubTitle,
     PushAndBanck,
+    OnlineQuestion,
     Refresh
   },
   props: {
@@ -367,14 +376,17 @@ export default {
 /deep/ .el-tabs__active-bar {
   //bottom: 5px;
 }
-.isBar{
+
+.isBar {
   /deep/ .el-tabs__nav-wrap::after {
     display: initial;
   }
+
   /deep/ .el-tabs__header {
     margin-bottom: 20px;
   }
 }
+
 /deep/ .el-tabs__header {
   //margin-bottom: 15px;
 }

+ 1 - 1
src/views/monthlyReport/childrenPage/setReport/components/nodeTreeSet.vue

@@ -9,7 +9,7 @@
         <span>
           <span v-if="node.label === 'offline'" style="background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADV0lEQVRYhe2WS24dRRSGv1PVj7KbG+M4dgBBbHwZIcSEBcCIQVaABGIBrIEFMGYJzFhBxIwsgFEGMCC+cbBlC4MVK9fu6kdVMbgP3+uujh0JiQH+paOWqk6d89epU3813OIW/zHk6sAf33zd67xRJbTixwOVFU+NfWtozXHM70BbcQq0h41ac1S4+dzw+x+WfNVrEm4GKisAhtYc/yn2l5jTu86EJgk3CphcHbBpfOF745RcJ0v+W8F80hf4g3JlEkiDqV2n0r0Eiirum+v4lvaMlV1rerc79rXc8f2F7hCo0q7TTtWf4O6FeuVBnqz6/skYgZ3KcBqq5cGeAu5nVloN4bySdZV3SB5qK1kDNrKpGaLc10KKDkI5rfrY1+K9X6JxqO2P2sGwNCGWHKDM4H6T9WfvI7CIdTLyoPlL1YyMlb+pngFUKV/UCeynVkrXCCAnVL86Pyn5KLMP3yx7e+/mBKbwW5ggk9jvt763qz8EZD+1slOZR8BviVJhaE1YL4X1CKFODwBBK8UaGWsOEEi1BqCohTMTWLuIZz9b8ZxR8c44QTThHvl87kUePgUeX13TqcB+amWU2YexBJvkQTs4zBu0W54b5RbtBe2FVd0Vk93a/Bx0N2aHQNEIg1oexQgAZJ6fMg+Zh5V28j0qHEGYWx/un3cZdAjkXsi9jPuCvO3M51UCM2sE8ubSdq0Je5mN0iikK2YdAqe5Z6b3V3E+6Xa27eTabZST5VU6sczJE5hUJobSt/XVsU4TBoEQAiLdTeSiab2XRKl5cmDeD5vkHwFsthmnUonxqhJQJ8Z9qzwP7nj15bUEWh14umpl/phMUblWFt+DgZoIjK4aOSocw4X3IFEq3CWH6ZE/aNLvAA7T7tF0jsA0gmmEg2TZue8xOl51bF+krxZ84KWvxUZEsUOg1pfWeBcAfl/pl7R7pSJR+lrJe5F7skhvdAgsXqfnq40C2D2Paz1AEdWyZewZK42G5iY6oPyyjTIrVfA9fQ0Hec2R7vmJmGLxml5LIIajok33jP3YunZJ/y5c0zgFVgdGC3f/WNnHo6z8ai+38jzSeIu4vn6XeNLnP2vBl74eD1T2xpbLP9tP7I2Cvu5PaRSpE1InXOgwmI1tV+bfCH2L/wH+ATe7U3gDKO+UAAAAAElFTkSuQmCC);background-size: 18px;margin-right: 2px;background-repeat: no-repeat;background-size: 21px 21px;vertical-align: middle;width: 21px;height: 21px;display: inline-block;position: relative;left: -1px" /><span v-else style="border-radius: 50%;display: inline-block;padding: 2px 4px;line-height: 1;font-size: 12px;color: #fff;position: relative;margin-right: 5px;top: 0px;" :style="{backgroundColor: setOdinColor(data.category ? data.category[0] : 'p')}">{{ data.category ? data.category[0].toUpperCase() : 'P' }}</span>{{ node.label }}
           <el-tag v-for="item in data.deptSetting" :key="item.id" closable type="info" size="small" style="margin-left: 20px;" @close="handleClose(item, data, 'tag')">
-            <el-tooltip class="item" effect="dark" :content="find(item.id).deptPath" placement="top"><span>{{ item.value }}</span></el-tooltip></el-tag>
+            <el-tooltip class="item" effect="dark" :content="find(item.id).deptPath" placement="top"><span>{{ find(item.id).label }}</span></el-tooltip></el-tag>
         </span>
         <span>
           <el-button class="teamDeleteText" type="text" @click="() => append(data)">设置</el-button>

+ 1 - 1
src/views/monthlyReport/index.vue

@@ -3,7 +3,7 @@
     <!--  header  -->
     <headerCom title="请选择">
       <template slot="input">
-        <el-select v-model="reportValue" size="small" style="width: 40%;" placeholder="请选择">
+        <el-select v-model="reportValue" size="small" style="width: 50%" placeholder="请选择">
           <el-option v-for="item in reportData.reportList" :key="item.id" :label="item.reportName" :value="item.id" @click.native="getReportStatus(item)">
             <span style="float: left">{{ item.reportName }}</span>
             <span v-if="item.statueStr && item.statueStr !== '已发布'" style="float: right; color: #8492a6; font-size: 13px; padding-left: 20px;">{{ item.statueStr }}</span>

+ 1 - 1
src/views/projectManage/components/onlineTime.vue

@@ -86,7 +86,7 @@ export default {
   methods: {
     async taskUpdatePreOnlineVersion() {
       const bizId_id = analysisBizId_id(this.$route.query.bizId_id)
-      const res = await taskUpdatePreOnlineVersion(bizId_id[0])
+      const res = await taskUpdatePreOnlineVersion(bizId_id[1])
       if (res.code === 200) {
         this.$emit('update')
         this.$message({ message: '预计上线版本重新计算中,请稍后刷新页面查看!', type: 'success', offset: 150 })