qinzhipeng_v 5 жил өмнө
parent
commit
d4591b48c2

+ 9 - 0
src/api/ResultPage.js

@@ -66,3 +66,12 @@ export function dailyReportSendmail(data) {
     data
   })
 }
+
+// bug数据获取
+export function bugFinishList(data) {
+  return request({
+    url: mockUrl + '/bug/FinishList',
+    method: 'post',
+    data
+  })
+}

+ 349 - 42
src/views/Platform/presentation/Acceptance.vue

@@ -17,7 +17,7 @@
             <el-button :type="tagBtn" style="margin: 0 2vw;" class="tag" @click="changeStatus(1)"> 通过 </el-button>
             <el-button :type="tagBtn1" class="tag" @click="changeStatus(2)"> 不通过 </el-button>
           </el-form-item>
-          <el-form-item label="准入结果" prop="smokeTestResult" style="flex: 2;text-align:right;"><el-input v-model="ClientData.smokeTestResult" style="width: 50vw;" placeholder="准入次数/通过次数/失败次数" /></el-form-item>
+          <el-form-item label="准入结果" prop="smokeTestResult" style="flex: 2;text-align:right;"><el-input v-model="ClientData.launchInfo" style="width: 50vw;" placeholder="准入次数/通过次数/失败次数" /></el-form-item>
         </div>
         <div style="display: flex; white-space: nowrap;">
           <el-form-item label="* 准出延期" style="flex: 1;" prop="taskLateStatus">
@@ -43,6 +43,8 @@
           </el-form-item>
         </div>
 
+        <el-form-item label="SDL链接 : "><el-link href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" type="primary" target="_blank"> 普惠SDL准入标准</el-link></el-form-item>
+
         <div class="backStyle" style="margin-bottom:2%;">二. 项目背景</div>
         <div id="editorElem" class="toolbar" />
         <div id="editorElem1" class="text" />
@@ -65,39 +67,108 @@
 
         <div class="titStyle">4、缺陷分析</div>
 
-        <div id="editorData" class="toolbar" />
-        <div id="editorData1" class="text" />
+        <el-table :data="tableData" border @cell-dblclick="celledit">
+          <el-table-column prop="totalBug" label="bug总数" min-width="200" align="center" edit="false">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.totalBug.edit" ref="totalBug" v-model="scope.row.totalBug.value" style="width: 100%" @blur="scope.row.totalBug.edit = false" />
+              <span v-else>{{ scope.row.totalBug.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="fixBug" min-width="200" align="center" label="已解决bug数">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.fixBug.edit" ref="fixBug" v-model="scope.row.fixBug.value" style="width: 100%" @blur="scope.row.fixBug.edit = false" />
+              <span v-else>{{ scope.row.fixBug.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="remainBug" min-width="200" align="center" label="遗留bug数">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.remainBug.edit" ref="remainBug" v-model="scope.row.remainBug.value" style="width: 100%" @blur="scope.row.remainBug.edit = false" />
+              <span v-else>{{ scope.row.remainBug.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="rateOfReopen" min-width="200" align="center" label="reopen率">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.rateOfReopen.edit" ref="rateOfReopen" v-model="scope.row.rateOfReopen.value" style="width: 100%" @blur="scope.row.rateOfReopen.edit = false" />
+              <span v-else>{{ scope.row.rateOfReopen.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="invalidBug" min-width="200" align="center" label="无效bug数">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.invalidBug.edit" ref="invalidBug" v-model="scope.row.invalidBug.value" style="width: 100%" @blur="scope.row.invalidBug.edit = false" />
+              <span v-else>{{ scope.row.invalidBug.value }}</span>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-row>
+          <el-col :span="24"><div class="titStyle">5、遗留问题</div><el-input v-model="ClientData.bugInfo" type="textarea" placeholder="请填写内容" /></el-col>
+        </el-row>
+
         <div class="backStyle">四. 测试项</div>
 
-        <div class="titStyle">1、功能测试</div>
+        <div class="titStyle" style="display:flex; margin:1% 0 -1% 0;  white-space: nowrap;">
+          <el-form-item style="flex:1; ">1、功能测试</el-form-item>
+          <div style="flex: 1; text-align: right;">
+            <el-tag :type="fctResultChange" effect="dark" class="tag" @click="fctResultradio(3)"> 未执行 </el-tag>
+            <el-tag :type="fctResultChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="fctResultradio(1)"> 测试通过 </el-tag>
+            <el-tag :type="fctResultChange2" effect="dark" class="tag" @click="fctResultradio(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
 
         <div id="editorEl" class="toolbar" />
         <div id="editorEl1" class="text" />
 
-        <div class="titStyle">2、可靠性测试</div>
+        <div class="titStyle" style="display:flex; margin:1% 0 -1% 0;  white-space: nowrap;">
+          <el-form-item style="flex:1; ">2、可靠性测试</el-form-item>
+          <div style="flex: 1; text-align: right;">
+            <el-tag :type="rqtResultChange" effect="dark" class="tag" @click="rqtResultradio(3)"> 未执行 </el-tag>
+            <el-tag :type="rqtResultChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="rqtResultradio(1)"> 测试通过 </el-tag>
+            <el-tag :type="rqtResultChange2" effect="dark" class="tag" @click="rqtResultradio(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
 
         <div id="editorEle" class="toolbar" />
         <div id="editorEle1" class="text" />
 
-        <div class="titStyle">3、稳定性测试</div>
+        <div class="titStyle" style="display:flex; margin:1% 0 -1% 0;  white-space: nowrap;">
+          <el-form-item style="flex:1; ">3、稳定性测试</el-form-item>
+          <div style="flex: 1; text-align: right;">
+            <el-tag :type="pftResultChange" effect="dark" class="tag" @click="pftResultradio(3)"> 未执行 </el-tag>
+            <el-tag :type="pftResultChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="pftResultradio(1)"> 测试通过 </el-tag>
+            <el-tag :type="pftResultChange2" effect="dark" class="tag" @click="pftResultradio(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
 
         <div id="editorSix" class="toolbar" />
         <div id="editorSix1" class="text" />
 
-        <div class="titStyle">4、安全性测试</div>
+        <div class="titStyle" style="display:flex; margin:1% 0 -1% 0;  white-space: nowrap;">
+          <el-form-item style="flex:1; ">4、安全性测试</el-form-item>
+          <div style="flex: 1; text-align: right;">
+            <el-tag :type="safeResultChange" effect="dark" class="tag" @click="safeResultradio(3)"> 未执行 </el-tag>
+            <el-tag :type="safeResultChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="safeResultradio(1)"> 测试通过 </el-tag>
+            <el-tag :type="safeResultChange2" effect="dark" class="tag" @click="safeResultradio(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
 
         <div id="editorEight" class="toolbar" />
         <div id="editorEight1" class="text" />
 
-        <div class="titStyle">5、线上监控</div>
+        <div class="titStyle" style="display:flex; margin:1% 0 -1% 0;  white-space: nowrap;">
+          <el-form-item style="flex:1; ">5、线上监控</el-form-item>
+          <div style="flex: 1; text-align: right;">
+            <el-tag :type="moniterResultChange" effect="dark" class="tag" @click="moniterResultradio(3)"> 未执行 </el-tag>
+            <el-tag :type="moniterResultChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="moniterResultradio(1)"> 测试通过 </el-tag>
+            <el-tag :type="moniterResultChange2" effect="dark" class="tag" @click="moniterResultradio(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
 
         <div id="editorNine" class="toolbar" />
         <div id="editorNine1" class="text" />
 
         <dir align="right" style="display: flex; margin: 5vw 0 0 60vw;">
           <div style="flex: 1;"><el-button @click="clickPreview(ClientData)"> 预 览 </el-button></div>
-          <div v-show="showButton" style="flex: 1;"><el-button type="primary" @click="getCreateData(ClientData)"> 保 存 </el-button></div>
-          <div v-show="showButton1" style="flex: 1;"><el-button type="primary" @click="getQueryData(ClientData)"> 更 新 </el-button></div>
+          <div v-show="showButton" style="flex: 1;"><el-button type="primary" @click="getCreateData(ClientData, tableData)"> 保 存 </el-button></div>
+          <div v-show="showButton1" style="flex: 1;"><el-button type="primary" @click="getQueryData(ClientData, tableData)"> 更 新 </el-button></div>
           <div style="flex: 1;"><el-button @click="open()"> 取 消 </el-button></div>
         </dir>
       </el-form>
@@ -106,7 +177,7 @@
 </template>
 
 <script>
-import { projectTestReportUpdate, projectTestReportCreate } from '@/api/ResultPage'
+import { projectTestReportUpdate, projectTestReportCreate, bugFinishList } from '@/api/ResultPage'
 import E from 'wangeditor'
 export default {
   name: 'Acceptance',
@@ -118,9 +189,23 @@ export default {
       tagBtn1: 'info',
       tagChange: 'info',
       tagChange1: 'info',
+      moniterResultChange: 'info',
+      moniterResultChange1: 'info',
+      moniterResultChange2: 'info',
+      safeResultChange: 'info',
+      safeResultChange1: 'info',
+      safeResultChange2: 'info',
+      rqtResultChange: 'info',
+      rqtResultChange1: 'info',
+      rqtResultChange2: 'info',
+      pftResultChange: 'info',
+      pftResultChange1: 'info',
+      pftResultChange2: 'info',
+      fctResultChange: 'info',
+      fctResultChange1: 'info',
+      fctResultChange2: 'info',
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
-      bizIdData: localStorage.getItem('key'),
       serviceDataRules: {
         reportName: [{ required: true, message: '报告标题不能为空', trigger: 'change' }],
         ownner: [{ required: true, message: 'by不能为空', trigger: 'change' }],
@@ -141,20 +226,25 @@ export default {
       taskLateStatus: 0,
       value: '',
       status: '',
-      labelWidth: '60px',
       ClientData: {},
       editorElem: '',
       editorElems: '',
       editorFrom: '',
       editorF: '',
-      editorData: '',
       editorEl: '',
       editorEle: '',
       editorSix: '',
       editorEight: '',
       editorNine: '',
       bizIdCode: '',
-      projectIdCode: ''
+      projectIdCode: '',
+      bugNum: {},
+      tableData: [],
+      fctResult: '',
+      rqtResult: '',
+      pftResult: '',
+      safeResult: '',
+      moniterResult: ''
     }
   },
   created() {
@@ -165,7 +255,6 @@ export default {
     this.editorElems = new E('#editorElems', '#editorElems1')
     this.editorFrom = new E('#editorFrom', '#editorFrom1')
     this.editorF = new E('#editorF', '#editorF1')
-    this.editorData = new E('#editorData', '#editorData1')
     this.editorEl = new E('#editorEl', '#editorEl1')
     this.editorEle = new E('#editorEle', '#editorEle1')
     this.editorSix = new E('#editorSix', '#editorSix1')
@@ -176,7 +265,6 @@ export default {
     this.editorElems.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorFrom.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorF.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
-    this.editorData.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorEl.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorEle.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorSix.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
@@ -187,7 +275,6 @@ export default {
     this.editorElems.customConfig.zIndex = 110
     this.editorFrom.customConfig.zIndex = 110
     this.editorF.customConfig.zIndex = 110
-    this.editorData.customConfig.zIndex = 110
     this.editorEl.customConfig.zIndex = 110
     this.editorEle.customConfig.zIndex = 110
     this.editorSix.customConfig.zIndex = 110
@@ -206,9 +293,6 @@ export default {
     this.editorF.customConfig.onchange = (html) => { this.editorF = html }
     this.editorF.create()
 
-    this.editorData.customConfig.onchange = (html) => { this.editorData = html }
-    this.editorData.create()
-
     this.editorEl.customConfig.onchange = (html) => { this.editorEl = html }
     this.editorEl.create()
 
@@ -226,7 +310,6 @@ export default {
 
     this.editorElem.txt.html(``)
     this.editorElems.txt.html(`<p></p><table style="border-radius:4px;" width="100%"><colgroup><col width="20%"><col width="20%"></colgroup><thead><tr><th>提测模块</th><th>提测分支</th></tr></thead><tbody><tr><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td></tr></tbody></table><p></p>`)
-    this.editorData.txt.html(`<p></p><table style="border-radius:4px;" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>bug总数</th><th>已解决bug数</th><th>遗留bug数</th><th>reopen率</th><th>无效bug数</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p>遗留问题:</p><br>`)
     this.editorEl.txt.html(`<p></p><table style="border-radius:4px;" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>子类</th><th>测试功能点</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p></p>`)
     this.editorEle.txt.html(`<p></p><table style="border-radius:4px;" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>子类</th><th>描述</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p></p>`)
     this.editorSix.txt.html(`<p></p><table style="border-radius:4px;" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>子类</th><th>描述</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p></p>`)
@@ -243,24 +326,29 @@ export default {
         this.ClientData = {}
         this.bizIdCode = this.$route.query.projectId.bizId
         this.projectIdCode = this.$route.query.projectId.id
+        this.bugNum = { type: 1, projectId: this.projectIdCode }
       }
 
       if (this.$route.query.task) { // 任务页面新建
         this.ClientData = {}
         this.bizIdCode = this.$route.query.task.bizId
         this.projectIdCode = this.$route.query.task.id
+        this.bugNum = { type: 1, taskId: this.projectIdCode }
       }
 
       if (this.$route.query.projectData) { // 主页面新建
         this.ClientData = {}
         this.bizIdCode = this.$route.query.projectData.bizId
         this.projectIdCode = this.$route.query.projectData.id
+        this.$route.query.projectData.typeString === 1 ? this.ClientData.projectId = this.projectIdCode : this.ClientData.taskId = this.projectIdCode
+        this.bugNum = { type: 1, taskId: this.ClientData.taskId, projectId: this.ClientData.projectId }
       }
 
       if (this.$route.query.data) { // 报告主页更新
         this.showButton1 = true
         this.showButton = false
         this.ClientData = this.$route.query.data
+        this.bugNum = { type: 1, taskId: this.ClientData.taskId, projectId: this.ClientData.projectId }
         if (this.ClientData.status === 1) {
           this.tagBtn = 'success'
           this.status = '1'
@@ -271,14 +359,127 @@ export default {
         if (this.ClientData.taskLateStatus === 1) {
           this.tagChange = 'success'
           this.taskLateStatus = '1'
-          this.showDelay = true
+          this.showDelay = false
         } else {
           this.tagChange1 = 'danger'
           this.taskLateStatus = '2'
-          this.showDelay = false
+          this.showDelay = true
+        }
+
+        if (this.ClientData.fctResult) { // 功能测试
+          switch (this.ClientData.fctResult) {
+            case 1:
+              this.fctResultChange1 = 'success'
+              this.fctResult = 1
+              break
+            case 2:
+              this.fctResultChange2 = 'danger'
+              this.fctResult = 2
+              break
+            case 3:
+              this.fctResultChange = 'warning'
+              this.fctResult = 3
+              break
+          }
+        }
+
+        if (this.ClientData.rqtResult) { // 可靠性测试
+          switch (this.ClientData.rqtResult) {
+            case 1:
+              this.rqtResultChange1 = 'success'
+              this.rqtResult = 1
+              break
+            case 2:
+              this.rqtResultChange2 = 'danger'
+              this.rqtResult = 2
+              break
+            case 3:
+              this.rqtResultChange = 'warning'
+              this.rqtResult = 3
+              break
+          }
+        }
+
+        if (this.ClientData.pftResult) { // 稳定性测试
+          switch (this.ClientData.pftResult) {
+            case 1:
+              this.pftResultChange1 = 'success'
+              this.pftResult = 1
+              break
+            case 2:
+              this.pftResultChange2 = 'danger'
+              this.pftResult = 2
+              break
+            case 3:
+              this.pftResultChange = 'warning'
+              this.pftResult = 3
+              break
+          }
+        }
+
+        if (this.ClientData.safeResult) { // 安全性测试
+          switch (this.ClientData.safeResult) {
+            case 1:
+              this.safeResultChange1 = 'success'
+              this.safeResult = 1
+              break
+            case 2:
+              this.safeResultChange2 = 'danger'
+              this.safeResult = 2
+              break
+            case 3:
+              this.safeResultChange = 'warning'
+              this.safeResult = 3
+              break
+          }
+        }
+
+        if (this.ClientData.moniterResult) { // 线上监控
+          switch (this.ClientData.moniterResult) {
+            case 1:
+              this.moniterResultChange1 = 'success'
+              this.moniterResult = 1
+              break
+            case 2:
+              this.moniterResultChange2 = 'danger'
+              this.moniterResult = 2
+              break
+            case 3:
+              this.moniterResultChange = 'warning'
+              this.moniterResult = 3
+              break
+          }
         }
       }
+      this.getBugData(this.bugNum)
+    },
+
+    getBugData(e) {
+      bugFinishList(e).then(res => {
+        this.$set(this.ClientData, 'launchInfo', res.data.launchInfo)
+        this.tableData = [res.data]
+        this.formatData()
+      })
+    },
+
+    formatData() {
+      this.tableData.forEach(item => {
+        for (var key in item) {
+          item[key] = {
+            value: item[key],
+            edit: false
+          }
+        }
+      })
     },
+    // celledit(row, column, cell, event) {
+    //   if (row[column.property]) {
+    //     row[column.property].edit = true
+    //     setTimeout(() => {
+    //       this.$refs[column.property].focus()
+    //     }, 20)
+    //   }
+    // },
     getRouterData1() {
       if (this.$route.query.data) {
         this.ClientData = this.$route.query.data
@@ -287,7 +488,6 @@ export default {
         this.editorFrom.txt.html(this.ClientData.functionInfo)
         this.editorF.txt.html(this.ClientData.onlineRisk)
         this.editorEle.txt.html(this.ClientData.rqtInfo)
-        this.editorData.txt.html(this.ClientData.bugTarget)
         this.editorEl.txt.html(this.ClientData.fctInfo)
         this.editorSix.txt.html(this.ClientData.pftInfo)
         this.editorEight.txt.html(this.ClientData.safeResultInfo)
@@ -305,33 +505,31 @@ export default {
     },
 
     // 更新准出报告
-    getQueryData(ele) {
+    getQueryData(ele, vel) {
       this.ClientData = ele
+      // this.ClientData.bugTarget = JSON.stringify(vel[0])
       typeof (this.editorElem) === 'string' ? this.ClientData.projectBackground = this.editorElem : ''
       typeof (this.editorElems) === 'string' ? this.ClientData.moduleInfo = this.editorElems : ''
       typeof (this.editorFrom) === 'string' ? this.ClientData.functionInfo = this.editorFrom : ''
       typeof (this.editorF) === 'string' ? this.ClientData.onlineRisk = this.editorF : ''
       typeof (this.editorEle) === 'string' ? this.ClientData.rqtInfo = this.editorEle : ''
-      typeof (this.editorData) === 'string' ? this.ClientData.bugTarget = this.editorData : ''
       typeof (this.editorEl) === 'string' ? this.ClientData.fctInfo = this.editorEl : ''
       typeof (this.editorSix) === 'string' ? this.ClientData.pftInfo = this.editorSix : ''
       typeof (this.editorEight) === 'string' ? this.ClientData.safeResultInfo = this.editorEight : ''
       typeof (this.editorNine) === 'string' ? this.ClientData.moniterResultInfo = this.editorNine : ''
+      this.ClientData.fctResult = this.fctResult
+      this.ClientData.rqtResult = this.rqtResult
+      this.ClientData.pftResult = this.pftResult
+      this.ClientData.safeResult = this.safeResult
+      this.ClientData.moniterResult = this.moniterResult
       this.ClientData.status = this.status
-      // if (this.$route.query.projectId) { // 项目页面
-      //   this.ClientData.bizId = this.bizIdCode
-      //   this.ClientData.projectId = this.projectIdCode
-      // }
-      // if (this.$route.query.task) { // 任务页面
-      //   this.ClientData.bizId = this.bizIdCode
-      //   this.ClientData.projectId = this.projectIdCode
-      // }
       this.ClientData.taskLateStatus = this.taskLateStatus
       this.userData = { id: '', ename: this.userInformation, name: this.userNames }
       this.objData = { projectTestReport: this.ClientData, user: this.userData }
       projectTestReportUpdate(this.objData).then(res => {
         if (res.code === 200) {
           this.$message({ type: 'success', message: '更新成功' })
+          this.$router.go(-1)
         } else {
           this.$message.error('更新失败')
         }
@@ -339,16 +537,16 @@ export default {
     },
 
     // 新建准出提交
-    getCreateData(ele) {
+    getCreateData(ele, vel) {
       this.$refs['ClientData'].validate((valid) => {
         if (valid) {
           this.ClientData = ele
+          // this.ClientData.bugTarget = JSON.stringify(vel[0])
           typeof (this.editorElem) === 'string' ? this.ClientData.projectBackground = this.editorElem : ''
           typeof (this.editorElems) === 'string' ? this.ClientData.moduleInfo = this.editorElems : ''
           typeof (this.editorFrom) === 'string' ? this.ClientData.functionInfo = this.editorFrom : ''
           typeof (this.editorF) === 'string' ? this.ClientData.onlineRisk = this.editorF : ''
           typeof (this.editorEle) === 'string' ? this.ClientData.rqtInfo = this.editorEle : ''
-          typeof (this.editorData) === 'string' ? this.ClientData.bugTarget = this.editorData : ''
           typeof (this.editorEl) === 'string' ? this.ClientData.fctInfo = this.editorEl : ''
           typeof (this.editorSix) === 'string' ? this.ClientData.pftInfo = this.editorSix : ''
           typeof (this.editorEight) === 'string' ? this.ClientData.safeResultInfo = this.editorEight : ''
@@ -366,6 +564,11 @@ export default {
             this.$route.query.projectData.typeString === 1 ? this.ClientData.projectId = this.projectIdCode : this.ClientData.taskId = this.projectIdCode
             this.ClientData.bizId = this.bizIdCode
           }
+          this.ClientData.fctResult = this.fctResult
+          this.ClientData.rqtResult = this.rqtResult
+          this.ClientData.pftResult = this.pftResult
+          this.ClientData.safeResult = this.safeResult
+          this.ClientData.moniterResult = this.moniterResult
           this.ClientData.status = this.status
           this.ClientData.taskLateStatus = this.taskLateStatus
           this.ClientData.type = 2
@@ -395,12 +598,13 @@ export default {
         this.tagChange = 'success'
         this.tagChange1 = 'info'
         this.showDelay = false
-        this.taskLateStatus = '1'
+        this.taskLateStatus = 1
+        this.$set(this.ClientData, 'taskLateReason', '')
       } else {
         this.tagChange = 'info'
         this.tagChange1 = 'danger'
         this.showDelay = true
-        this.taskLateStatus = '2'
+        this.taskLateStatus = 2
       }
     },
 
@@ -410,12 +614,116 @@ export default {
         this.ClientData.status = 1
         this.tagBtn = 'success'
         this.tagBtn1 = 'info'
-        this.status = '1'
+        this.status = 1
       } else {
         this.ClientData.status = 2
         this.tagBtn = 'info'
         this.tagBtn1 = 'danger'
-        this.status = '2'
+        this.status = 2
+      }
+    },
+
+    // 1、功能测试
+    fctResultradio(e) {
+      this.fctResultChange = 'info'
+      this.fctResultChange1 = 'info'
+      this.fctResultChange2 = 'info'
+      switch (e) {
+        case 1:
+          this.fctResultChange1 = 'success'
+          this.fctResult = 1
+          break
+        case 2:
+          this.fctResultChange2 = 'danger'
+          this.fctResult = 2
+          break
+        case 3:
+          this.fctResultChange = 'warning'
+          this.fctResult = 3
+          break
+      }
+    },
+
+    // 可靠性测试
+    rqtResultradio(e) {
+      this.rqtResultChange = 'info'
+      this.rqtResultChange1 = 'info'
+      this.rqtResultChange2 = 'info'
+      switch (e) {
+        case 1:
+          this.rqtResultChange1 = 'success'
+          this.rqtResult = 1
+          break
+        case 2:
+          this.rqtResultChange2 = 'danger'
+          this.rqtResult = 2
+          break
+        case 3:
+          this.rqtResultChange = 'warning'
+          this.rqtResult = 3
+          break
+      }
+    },
+    // 稳定性测试
+    pftResultradio(e) {
+      this.pftResultChange = 'info'
+      this.pftResultChange1 = 'info'
+      this.pftResultChange2 = 'info'
+      switch (e) {
+        case 1:
+          this.pftResultChange1 = 'success'
+          this.pftResult = 1
+          break
+        case 2:
+          this.pftResultChange2 = 'danger'
+          this.pftResult = 2
+          break
+        case 3:
+          this.pftResultChange = 'warning'
+          this.pftResult = 3
+          break
+      }
+    },
+
+    // 安全性测试
+    safeResultradio(e) {
+      this.safeResultChange = 'info'
+      this.safeResultChange1 = 'info'
+      this.safeResultChange2 = 'info'
+      switch (e) {
+        case 1:
+          this.safeResultChange1 = 'success'
+          this.safeResult = 1
+          break
+        case 2:
+          this.safeResultChange2 = 'danger'
+          this.safeResult = 2
+          break
+        case 3:
+          this.safeResultChange = 'warning'
+          this.safeResult = 3
+          break
+      }
+    },
+
+    // 线上监控
+    moniterResultradio(e) {
+      this.moniterResultChange = 'info'
+      this.moniterResultChange1 = 'info'
+      this.moniterResultChange2 = 'info'
+      switch (e) {
+        case 1:
+          this.moniterResultChange1 = 'success'
+          this.moniterResult = 1
+          break
+        case 2:
+          this.moniterResultChange2 = 'danger'
+          this.moniterResult = 2
+          break
+        case 3:
+          this.moniterResultChange = 'warning'
+          this.moniterResult = 3
+          break
       }
     }
   }
@@ -432,7 +740,6 @@ export default {
     font-size: 19px;
     font-weight: bold;
     border-radius: 4px;
-    /* padding:2px; */
     margin-top: 2%;
   }
   .eleStyle {

+ 128 - 33
src/views/Platform/presentation/ClientAcceptance.vue

@@ -18,7 +18,7 @@
             <el-tag :type="tagBtn" effect="dark" style="margin: 0 2vw;" class="tag" @click="changeStatus(1)"> 通过 </el-tag>
             <el-tag :type="tagBtn1" effect="dark" class="tag" @click="changeStatus(2)"> 不通过 </el-tag>
           </el-form-item>
-          <el-form-item label="准入结果" prop="smokeTestResult" style="flex: 2;text-align:right;"><el-input v-model="ClientData.smokeTestResult" style="width: 50vw;" placeholder="准入次数/通过次数/失败次数" /></el-form-item>
+          <el-form-item label="准入结果" prop="smokeTestResult" style="flex: 2;text-align:right;"><el-input v-model="ClientData.launchInfo" style="width: 50vw;" placeholder="准入次数/通过次数/失败次数" /></el-form-item>
         </div>
         <div style="display: flex; white-space: nowrap;">
           <el-form-item label="* 准出延期" style="flex: 1;" prop="taskLateStatus">
@@ -42,6 +42,7 @@
             <el-date-picker v-model="ClientData.testTimeStart" type="date" placeholder="请选择开始日期" style="margin-left: 1.3vw; width: 16vw;" />
           </el-form-item>
         </div>
+
         <div style="margin-bottom: 1%;" class="backStyle">二. 项目背景</div>
 
         <div id="editorElem" class="toolbar" />
@@ -64,7 +65,7 @@
         <div style="display:flex; margin:2% 0 -1% 0;  white-space: nowrap;">
           <el-form-item style="flex:1;">2.兼容测试</el-form-item>
           <div style="flex: 1; text-align: right;">
-            <el-tag :type="sctChange" effect="dark" class="tag" @click="changePftResult(3)"> 未执行 </el-tag>
+            <el-tag :type="sctChange" effect="dark" class="tag" @click="changeSctResult(3)"> 未执行 </el-tag>
             <el-tag :type="sctChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="changeSctResult(1)"> 测试通过 </el-tag>
             <el-tag :type="sctChange2" effect="dark" class="tag" @click="changeSctResult(2)"> 测试未通过 </el-tag>
           </div>
@@ -85,17 +86,51 @@
         </div>
 
         <div id="editorFro" class="toolbar" />
-        <div id="editorFro1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <div id="editorFro1" class="text" />
 
         <div style="margin: 2% 0 2% 0;" class="backStyle">五. bug指标</div>
 
-        <div id="editorEle" class="toolbar" />
-        <div id="editorEle1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <el-table :data="tableData" border @cell-dblclick="celledit">
+          <el-table-column prop="totalBug" label="bug总数" min-width="200" align="center" edit="false">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.totalBug.edit" ref="totalBug" v-model="scope.row.totalBug.value" style="width: 100%" @blur="scope.row.totalBug.edit = false" />
+              <span v-else>{{ scope.row.totalBug.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="fixBug" min-width="200" align="center" label="已解决bug数">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.fixBug.edit" ref="fixBug" v-model="scope.row.fixBug.value" style="width: 100%" @blur="scope.row.fixBug.edit = false" />
+              <span v-else>{{ scope.row.fixBug.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="remainBug" min-width="200" align="center" label="遗留bug数">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.remainBug.edit" ref="remainBug" v-model="scope.row.remainBug.value" style="width: 100%" @blur="scope.row.remainBug.edit = false" />
+              <span v-else>{{ scope.row.remainBug.value }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="rateOfFix" min-width="200" align="center" label="bug解决率">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.rateOfFix.edit" ref="rateOfFix" v-model="scope.row.rateOfFix.value" style="width: 100%" @blur="scope.row.rateOfFix.edit = false" />
+              <span v-else>{{ scope.row.rateOfFix.value }}</span>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column prop="memo" min-width="200" align="center" label="备注">
+            <template slot-scope="scope">
+              <el-input v-if="scope.row.memo.edit" ref="rateOfFix" v-model="scope.row.memo.value" style="width: 100%" @blur="scope.row.memo.edit = false" />
+              <span v-else>{{ scope.row.memo.value }}</span>
+            </template>
+          </el-table-column> -->
+        </el-table>
+
+        <el-row>
+          <el-col :span="24" style="margin:1% 0;">遗留问题<el-input v-model="ClientData.bugInfo" type="textarea" placeholder="请填写内容" style="margin-top:1%;" /></el-col>
+        </el-row>
 
         <div align="right" style="display: flex; margin: 5vw 0 3vw 64vw;">
           <div style="flex: 1;"><el-button @click="clickPreview(ClientData)"> 预 览 </el-button></div>
-          <div v-show="showButton" style="flex: 1;"><el-button type="primary" @click="getCreateData(ClientData)"> 保 存 </el-button></div>
-          <div v-show="showButton1" style="flex: 1;"><el-button type="primary" @click="getQueryData(ClientData)"> 更 新 </el-button></div>
+          <div v-show="showButton" style="flex: 1;"><el-button type="primary" @click="getCreateData(ClientData, tableData)"> 保 存 </el-button></div>
+          <div v-show="showButton1" style="flex: 1;"><el-button type="primary" @click="getQueryData(ClientData, tableData)"> 更 新 </el-button></div>
           <div style="flex: 1;"><el-button @click="open()"> 取 消 </el-button></div>
         </div>
       </el-form>
@@ -104,7 +139,7 @@
 </template>
 
 <script>
-import { projectTestReportUpdate, projectTestReportCreate } from '@/api/ResultPage'
+import { projectTestReportUpdate, projectTestReportCreate, bugFinishList, projectTestReportList } from '@/api/ResultPage'
 import E from 'wangeditor'
 export default {
   name: 'ClientAcceptance',
@@ -153,8 +188,11 @@ export default {
       ClientData: {},
       editorElem: [],
       editorElems: [],
+      bugDatas: [],
       bizIdCode: '',
-      projectIdCode: ''
+      projectIdCode: '',
+      bugNum: '',
+      tableData: []
     }
   },
   created() {
@@ -165,40 +203,33 @@ export default {
     this.editorElems = new E('#editorElems', '#editorElems1')
     this.editorFrom = new E('#editorFrom', '#editorFrom1')
     this.editorFro = new E('#editorFro', '#editorFro1')
-    this.editorEle = new E('#editorEle', '#editorEle1')
 
     this.editorElem.customConfig.zIndex = 110
     this.editorElems.customConfig.zIndex = 110
     this.editorFrom.customConfig.zIndex = 110
     this.editorFro.customConfig.zIndex = 110
-    this.editorEle.customConfig.zIndex = 110
 
     this.editorElem.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorElems.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorFrom.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
     this.editorFro.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
-    this.editorEle.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
 
     this.editorElem.customConfig.onchange = (html) => { this.editorElem = html }
     this.editorElems.customConfig.onchange = (html) => { this.editorElems = html }
     this.editorFrom.customConfig.onchange = (html) => { this.editorFrom = html }
     this.editorFro.customConfig.onchange = (html) => { this.editorFro = html }
-    this.editorEle.customConfig.onchange = (html) => { this.editorEle = html }
 
     this.editorElem.create()
     this.editorElems.create()
     this.editorFrom.create()
     this.editorFro.create()
-    this.editorEle.create()
 
     this.editorElems.txt.html(`<p></p><table width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>页面</th><th>模块</th><th>接口</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p></p>`)
     this.editorFrom.txt.html(`<p>1、机型兼容</p><table width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>手机型号</th><th>操作系统</th><th>分辨率</th><th>(微信版本号)</tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p>2、网络兼容</p><table width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>WIFI</th><th>4G</th><th>5G</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td></tr></tbody></table><p>3、容器兼容</p><br>`)
     this.editorFro.txt.html(`<p></p><table width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>验收项</th><th>验收点</th><th>验收人</th><th>验收结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p></p>`)
-    this.editorEle.txt.html(`<p></p><table width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>bug总数</th><th>已解决bug数</th><th>遗留bug数</th><th>bug解决率</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p>遗留问题:</p><br>`)
     this.getRouterData1()
   },
   methods: {
-
     getRouterData() {
       this.showButton = true
       this.showButton1 = false
@@ -206,25 +237,37 @@ export default {
         this.ClientData = {}
         this.bizIdCode = this.$route.query.projectId.bizId
         this.projectIdCode = this.$route.query.projectId.id
+        this.bugNum = { type: 2, projectId: this.projectIdCode }
       }
 
       if (this.$route.query.task) { // 任务页面新建
         this.ClientData = {}
         this.bizIdCode = this.$route.query.task.bizId
         this.projectIdCode = this.$route.query.task.id
+        this.bugNum = { type: 2, taskId: this.projectIdCode }
       }
 
       if (this.$route.query.projectData) { // 主页面新建
         this.ClientData = {}
         this.bizIdCode = this.$route.query.projectData.bizId
         this.projectIdCode = this.$route.query.projectData.id
+        this.$route.query.projectData.typeString === 1 ? this.ClientData.projectId = this.projectIdCode : this.ClientData.taskId = this.projectIdCode
+        this.bugNum = { type: 2, taskId: this.ClientData.taskId, projectId: this.ClientData.projectId }
       }
 
       if (this.$route.query.data) { // 准出主页面
+        projectTestReportList({ bizId: this.$route.query.data.bizId }).then(res => {
+          for (var vel of res.data) {
+            this.$route.query.data.id === vel.id
+            var obj = vel
+          }
+          console.log(obj)
+        })
         this.ClientData = {}
         this.showButton1 = true
         this.showButton = false
         this.ClientData = this.$route.query.data
+        this.bugNum = { type: 1, taskId: this.ClientData.taskId, projectId: this.ClientData.projectId }
         if (this.ClientData.status === 1) {
           this.tagBtn = 'success'
           this.tagBtn1 = 'info'
@@ -309,13 +352,13 @@ export default {
           }
         }
       }
+      this.getBugData(this.bugNum)
     },
     getRouterData1() {
       this.editorElem.txt.html(this.ClientData.projectBackground)
       this.editorElems.txt.html(this.ClientData.fctInfo)
       this.editorFrom.txt.html(this.ClientData.sctInfo)
       this.editorFro.txt.html(this.ClientData.acceptanceResultInfo)
-      this.editorEle.txt.html(this.ClientData.bugTarget)
     },
     open() {
       this.$confirm('是否放弃修改,离开页面?', '确认信息', {
@@ -326,15 +369,15 @@ export default {
         .then(() => { this.$message({ type: 'info', message: '继续修改' }) })
         .catch(action => { action === 'cancel' ? this.$router.go(-1) : '' })
     },
-    getCreateData(ele) {
+    getCreateData(ele, vel) {
       this.$refs['ClientData'].validate((valid) => {
         if (valid) {
           this.ClientData = ele
+          // this.ClientData.bugTarget = JSON.stringify(vel[0])
           typeof (this.editorElem) === 'string' ? this.ClientData.projectBackground = this.editorElem : ''
           typeof (this.editorElems) === 'string' ? this.ClientData.fctInfo = this.editorElems : ''
           typeof (this.editorFrom) === 'string' ? this.ClientData.sctInfo = this.editorFrom : ''
           typeof (this.editorFro) === 'string' ? this.ClientData.acceptanceResultInfo = this.editorFro : ''
-          typeof (this.editorEle) === 'string' ? this.ClientData.bugTarget = this.editorEle : ''
           this.ClientData.pftResult = this.pftResult
           this.ClientData.sctResult = this.sctResult
           this.ClientData.acceptanceResult = this.acceptanceResult
@@ -368,13 +411,24 @@ export default {
         }
       })
     },
-    getQueryData(ele) {
+    getQueryData(ele, vel) {
       this.ClientData = ele
+      // var obj = {}
+      // for (var a of vel) {
+      //   obj.totalBug = a.totalBug.value
+      //   obj.fixBug = a.fixBug.value
+      //   obj.remainBug = a.remainBug.value
+      //   obj.rateOfFix = a.rateOfFix.value
+      //   obj.invalidBug = a.invalidBug.value
+      //   obj.rateOfReopen = a.rateOfReopen.value
+      //   obj.launchInfo = a.launchInfo.value
+      //   obj.memo = a.memo.value
+      // }
+      // this.ClientData.bugTarget = JSON.stringify(obj)
       typeof (this.editorElem) === 'string' ? this.ClientData.projectBackground = this.editorElem : ''
       typeof (this.editorElems) === 'string' ? this.ClientData.fctInfo = this.editorElems : ''
       typeof (this.editorFrom) === 'string' ? this.ClientData.sctInfo = this.editorFrom : ''
       typeof (this.editorFro) === 'string' ? this.ClientData.acceptanceResultInfo = this.editorFro : ''
-      typeof (this.editorEle) === 'string' ? this.ClientData.bugTarget = this.editorEle : ''
       this.ClientData.pftResult = this.pftResult
       this.ClientData.sctResult = this.sctResult
       this.ClientData.acceptanceResult = this.acceptanceResult
@@ -391,6 +445,32 @@ export default {
         }
       })
     },
+    getBugData(e) {
+      bugFinishList(e).then(res => {
+        this.$set(this.ClientData, 'launchInfo', res.data.launchInfo)
+        this.tableData = [res.data]
+        this.formatData()
+      })
+    },
+
+    formatData() {
+      this.tableData.forEach(item => {
+        for (var key in item) {
+          item[key] = {
+            value: item[key],
+            edit: false
+          }
+        }
+      })
+    },
+    // celledit(row, column, cell, event) {
+    //   if (row[column.property]) {
+    //     row[column.property].edit = true
+    //     setTimeout(() => {
+    //       this.$refs[column.property].focus()
+    //     }, 20)
+    //   }
+    // },
 
     // 准出延期
     lateStatusChange(e) {
@@ -398,12 +478,13 @@ export default {
         this.tagChange = 'success'
         this.tagChange1 = 'info'
         this.showDelay = false
-        this.taskLateStatus = '1'
+        this.taskLateStatus = 1
+        this.$set(this.ClientData, 'taskLateReason', '')
       } else {
         this.tagChange = 'info'
         this.tagChange1 = 'danger'
         this.showDelay = true
-        this.taskLateStatus = '2'
+        this.taskLateStatus = 2
       }
     },
     clickPreview(ele) {
@@ -415,24 +496,31 @@ export default {
       if (e === 1) {
         this.tagBtn = 'success'
         this.tagBtn1 = 'info'
-        this.status = '1'
+        this.status = 1
       } else {
         this.tagBtn = 'info'
         this.tagBtn1 = 'danger'
-        this.status = '2'
+        this.status = 2
       }
     },
 
     // 兼容测试
     changeSctResult(e) {
-      if (e === 1) {
-        this.sctChange = 'success'
-        this.sctChange1 = 'info'
-        this.sctResult = 1
-      } else {
-        this.sctChange = 'info'
-        this.sctChange1 = 'danger'
-        this.sctResult = 2
+      this.sctChange = 'info'
+      this.sctChange1 = 'info'
+      this.sctChange2 = 'info'
+      switch (e) {
+        case 1:
+          this.sctChange1 = 'success'
+          this.sctResult = 1
+          break
+        case 2:
+          this.sctChange2 = 'danger'
+          this.sctResult = 2
+          break
+        case 3:
+          this.sctChange = 'warning'
+          this.sctResult = 3
       }
     },
 
@@ -514,3 +602,10 @@ export default {
     height: auto;
   }
 </style>
+<style lang="stylus" scoped>
+  .double
+    display flex
+    justify-content space-between
+  .double >>> .el-form-item__content
+    display flex
+</style>

+ 3 - 3
src/views/Platform/presentation/DailyNewsAdded.vue

@@ -11,7 +11,7 @@
             <el-input v-model="fromCreateData.ownner" style="width: 24vw;" placeholder="who" />
           </el-form-item>
         </div>
-        <el-radio-group v-model="showbut">
+        <!-- <el-radio-group v-model="showbut">
           <el-radio label="1" @change="deleteProject(1)">开启项目节点</el-radio>
           <el-radio label="2" @change="deleteProject(2)">关闭项目节点</el-radio>
         </el-radio-group>
@@ -42,8 +42,8 @@
                 </ol>
               </div>
             </div>
-          </el-col>
-        </el-row>
+          </el-col> -->
+        <!-- </el-row> -->
 
         <div class="backStyle">一. 进度和风险</div>
         <div id="projectProgress" class="toolbar" />

+ 13 - 13
src/views/Platform/presentation/PresentReport.vue

@@ -21,7 +21,7 @@
               <el-button :type="lateStatusBtn1" class="tag" @click="lateStatusChange(1)"> 否 </el-button>
             </div>
           </el-form-item>
-          <el-form-item v-if="showDelay" label="延期原因" prop="lateReason"><el-input v-model="dataChange.lateReason" style="width: 50vw;" /></el-form-item>
+          <el-form-item v-if="showDelay" label="延期原因" prop="lateReason"><el-input v-model="dataChange.lateReason" style="width: 45vw;" /></el-form-item>
         </div>
 
         <div class="double" style="white-space: nowrap;">
@@ -31,7 +31,7 @@
               <el-button :type="configInBtn1" style="margin-left: 24px" class="tag" @click="changeApollo(2)"> 否 </el-button>
             </div>
           </el-form-item>
-          <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo"><el-input v-model="dataChange.configInfo" style="width: 50vw;" /></el-form-item>
+          <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo"><el-input v-model="dataChange.configInfo" style="width: 45vw;" /></el-form-item>
         </div>
 
         <div class="double" style="white-space: nowrap;">
@@ -41,12 +41,12 @@
               <el-button :type="dependentBtn1" class="tag" @click="changeRelyOn(2)"> 否 </el-button>
             </div>
           </el-form-item>
-          <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents"><el-input v-model="dataChange.dependentComponents" style="width: 50vw;" /></el-form-item>
+          <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents"><el-input v-model="dataChange.dependentComponents" style="width: 45vw;" /></el-form-item>
         </div>
 
         <div class="double">
           <el-form-item label="测试地址" prop="packageUrl"><el-input v-model="dataChange.packageUrl" style="width:25vw;" /></el-form-item>
-          <el-form-item label="打包分支" prop="packageBranch"><el-input v-model="dataChange.packageBranch" style="width:46.5vw;" /></el-form-item>
+          <el-form-item label="打包分支" prop="packageBranch"><el-input v-model="dataChange.packageBranch" style="width:40vw;" /></el-form-item>
         </div>
 
         <div class="double">
@@ -55,7 +55,7 @@
               <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
             </el-select>
           </el-form-item>
-          <el-form-item label="提测环境" prop="env"><el-input v-model="dataChange.env" style="width:46.5vw;" /></el-form-item>
+          <el-form-item label="提测环境" prop="env"><el-input v-model="dataChange.env" style="width:40vw;" /></el-form-item>
         </div>
 
         <div class="double">
@@ -177,7 +177,7 @@ export default {
         this.showButton1 = true
         this.showButton = false
         this.dataChange = this.$route.query.data
-        if (this.dataChange.lateStatus === '') {
+        if (this.dataChange.lateStatus === 1) {
           this.lateStatusBtn1 = 'success'
           this.lateStatusBtn = 'info'
           this.lateStatus = 1
@@ -269,17 +269,17 @@ export default {
 
     // 是否延期
     lateStatusChange(e) {
-      if (e === 1) {
-        this.lateStatusBtn1 = 'success'
+      if (e === 2) {
+        this.lateStatusBtn = 'danger'
+        this.lateStatusBtn1 = 'info'
+        this.lateStatus = 2
+        this.showDelay = true
+      } else {
         this.lateStatusBtn = 'info'
+        this.lateStatusBtn1 = 'success'
         this.lateStatus = 1
         this.showDelay = false
         this.$set(this.dataChange, 'lateReason', '')
-      } else {
-        this.lateStatusBtn1 = 'info'
-        this.lateStatusBtn = 'danger'
-        this.lateStatus = 2
-        this.showDelay = true
       }
     },
 

+ 146 - 13
src/views/Platform/presentation/ResultPageyL.vue

@@ -20,7 +20,7 @@
               <div class="marage">准出延期 : <span :style="taskLateDisabled">{{ ClientDatayl.taskLateStatus }}</span></div>
             </div>
             <div style="flex:1">
-              <div v-show="showDelay" class="marage">准入结果 : {{ ClientDatayl.smokeTestResult }}</div><br>
+              <div v-show="showDelay" class="marage">准入结果 : {{ ClientDatayl.launchInfo }}</div><br>
               <div class="marage">测试人员 : {{ ClientDatayl.tester }}</div><br>
               <div class="marage">测试周期 : {{ ClientDatayl.testTimeEnd }} 至 {{ ClientDatayl.testTimeStart }} </div><br>
               <div v-show="showDelay1" class="marage">延期原因 : {{ ClientDatayl.taskLateReason }}</div>
@@ -47,27 +47,63 @@
 
           <div class="marage">4、缺陷分析</div>
 
+          <el-table :data="tableData" border @cell-dblclick="celledit">
+            <el-table-column prop="totalBug" label="bug总数" min-width="200" align="center" edit="false">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.totalBug.edit" ref="totalBug" v-model="scope.row.totalBug.value" style="width: 100%" @blur="scope.row.totalBug.edit = false" />
+                <span v-else>{{ scope.row.totalBug.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="fixBug" min-width="200" align="center" label="已解决bug数">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.fixBug.edit" ref="fixBug" v-model="scope.row.fixBug.value" style="width: 100%" @blur="scope.row.fixBug.edit = false" />
+                <span v-else>{{ scope.row.fixBug.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="remainBug" min-width="200" align="center" label="遗留bug数">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.remainBug.edit" ref="remainBug" v-model="scope.row.remainBug.value" style="width: 100%" @blur="scope.row.remainBug.edit = false" />
+                <span v-else>{{ scope.row.remainBug.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="rateOfReopen" min-width="200" align="center" label="reopen率">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.rateOfReopen.edit" ref="rateOfReopen" v-model="scope.row.rateOfReopen.value" style="width: 100%" @blur="scope.row.rateOfReopen.edit = false" />
+                <span v-else>{{ scope.row.rateOfReopen.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="invalidBug" min-width="200" align="center" label="无效bug数">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.invalidBug.edit" ref="invalidBug" v-model="scope.row.invalidBug.value" style="width: 100%" @blur="scope.row.invalidBug.edit = false" />
+                <span v-else>{{ scope.row.invalidBug.value }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+          <el-row>
+            <el-col :span="24"><div style="margin:2% 0;">5、遗留问题</div>{{ ClientDatayl.bugInfo }}</el-col>
+          </el-row>
+
           <div class="rich" v-html="editorData" />
 
           <div class="titleStyle">四. 测试项</div>
 
-          <div class="marage">1、功能测试</div>
+          <div class="marage">1、功能测试 : <span style="margin-left:40px;" :style="fctResultChange">{{ fctResult }}</span></div>
 
           <div class="rich" v-html="editorEl" />
 
-          <div class="marage">2、可靠性测试</div>
+          <div class="marage">2、可靠性测试 : <span style="margin-left:40px;" :style="rqtResultChange">{{ rqtResult }}</span></div>
 
           <div class="rich" v-html="editorEle" />
 
-          <div class="marage">3、稳定性测试</div>
+          <div class="marage">3、稳定性测试 : <span style="margin-left:40px;" :style="pftResultChange">{{ pftResult }}</span></div>
 
           <div class="rich" v-html="editorSix" />
 
-          <div class="marage">4、安全性测试</div>
+          <div class="marage">4、安全性测试 : <span style="margin-left:40px;" :style="safeResultChange">{{ safeResult }}</span></div>
 
           <div class="rich" v-html="editorEight" />
 
-          <div class="marage">5、线上监控</div>
+          <div class="marage">5、线上监控 : <span style="margin-left:40px;" :style="moniterResultChange">{{ moniterResult }}</span></div>
 
           <div class="rich" v-html="editorNine" />
         </div>
@@ -91,7 +127,7 @@
               <div class="marage">准出延期 : <span :style="taskLateDisabled">{{ ClientDatayl.taskLateStatus }}</span></div>
             </div>
             <div style="flex:1">
-              <div v-show="showDelay" class="marage">准入结果 : {{ ClientDatayl.smokeTestResult }}</div><br>
+              <div v-show="showDelay" class="marage">准入结果 : {{ ClientDatayl.launchInfo }}</div><br>
               <div class="marage">测试人员 : {{ ClientDatayl.tester }}</div><br>
               <div class="marage">测试周期 : {{ ClientDatayl.testTimeEnd }} 至 {{ ClientDatayl.testTimeStart }} </div><br>
               <div v-show="showDelay1" class="marage">延期原因 : {{ ClientDatayl.taskLateReason }}</div>
@@ -120,6 +156,42 @@
 
           <div class="titleStyle">五. bug指标</div>
 
+          <el-table :data="tableData" border @cell-dblclick="celledit">
+            <el-table-column prop="totalBug" label="bug总数" min-width="200" align="center" edit="false">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.totalBug.edit" ref="totalBug" v-model="scope.row.totalBug.value" style="width: 100%" @blur="scope.row.totalBug.edit = false" />
+                <span v-else>{{ scope.row.totalBug.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="fixBug" min-width="200" align="center" label="已解决bug数">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.fixBug.edit" ref="fixBug" v-model="scope.row.fixBug.value" style="width: 100%" @blur="scope.row.fixBug.edit = false" />
+                <span v-else>{{ scope.row.fixBug.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="remainBug" min-width="200" align="center" label="遗留bug数">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.remainBug.edit" ref="remainBug" v-model="scope.row.remainBug.value" style="width: 100%" @blur="scope.row.remainBug.edit = false" />
+                <span v-else>{{ scope.row.remainBug.value }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="rateOfFix" min-width="200" align="center" label="bug解决率">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.rateOfFix.edit" ref="rateOfFix" v-model="scope.row.rateOfFix.value" style="width: 100%" @blur="scope.row.rateOfFix.edit = false" />
+                <span v-else>{{ scope.row.rateOfFix.value }}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column prop="memo" min-width="200" align="center" label="备注">
+              <template slot-scope="scope">
+                <el-input v-if="scope.row.memo.edit" ref="rateOfFix" v-model="scope.row.memo.value" style="width: 100%" @blur="scope.row.memo.edit = false" />
+                <span v-else>{{ scope.row.memo.value }}</span>
+              </template>
+            </el-table-column> -->
+          </el-table>
+          <el-row>
+            <el-col :span="24"><div style="margin: 2% 0;">1、遗留问题</div>{{ ClientDatayl.bugInfo }}</el-col>
+          </el-row>
+
           <div class="rich" v-html="editorEle1" />
         </div>
       </div>
@@ -131,7 +203,7 @@
 </template>
 
 <script>
-import { projectTestReportSendmail } from '@/api/ResultPage'
+import { projectTestReportSendmail, bugFinishList } from '@/api/ResultPage'
 import html2canvas from 'html2canvas'
 
 export default {
@@ -142,10 +214,15 @@ export default {
       showDelay1: false,
       taskLateStatus: '',
       taskLateDisabled1: { color: '' },
-      taskLateDisabled: { color: 'red' },
+      taskLateDisabled: { color: 'green' },
       pftResult1: { colocr: 'green' },
       sctResult1: { colocr: 'green' },
       acceptanceResult1: { colocr: 'green' },
+      fctResultChange: { colocr: '' },
+      rqtResultChange: { color: '' },
+      pftResultChange: { color: '' },
+      safeResultChange: { color: '' },
+      moniterResultChange: { color: '' },
       status: '',
       acceptanceResult: '',
       sctResult: '',
@@ -169,7 +246,10 @@ export default {
       editorSix: '',
       editorEight: '',
       editorNine: '',
-      status1: { color: 'green' }
+      tableData: [],
+      bugNum: {},
+      status1: { color: 'green' },
+      fctResult: ''
     }
   },
   created() {
@@ -194,6 +274,7 @@ export default {
         this.editorSix = this.ClientDatayl.pftInfo
         this.editorEight = this.ClientDatayl.safeResultInfo
         this.editorNine = this.ClientDatayl.moniterResultInfo
+        this.bugNum = { type: this.ClientDatayl.type, taskId: this.ClientDatayl.taskId, projectId: this.ClientDatayl.projectId }
         if (this.ClientDatayl.type === 2) {
           this.towShow = true
           this.oneShow = false
@@ -210,12 +291,12 @@ export default {
           this.showDelay = false
         }
         if (this.ClientDatayl.taskLateStatus === 1) {
-          this.ClientDatayl.taskLateStatus = '是'
-          this.showDelay1 = true
-        } else {
           this.ClientDatayl.taskLateStatus = '否'
           this.showDelay1 = false
           this.taskLateDisabled1.color = 'green'
+        } else {
+          this.ClientDatayl.taskLateStatus = '是'
+          this.showDelay1 = true
         }
         switch (this.ClientDatayl.pftResult) {
           case 1: this.pftResult = '通过'; this.pftResult1.color = 'green'; break
@@ -231,8 +312,60 @@ export default {
           case 2: this.acceptanceResult = '未通过'; this.acceptanceResult1.color = 'red'; break
           case 3: this.acceptanceResult = '未执行'; this.acceptanceResult1.color = 'Orange'; break
         }
+        switch (this.ClientDatayl.fctResult) { // 功能测试
+          case 1: this.fctResult = '通过'; this.fctResultChange.color = 'green'; break
+          case 2: this.fctResult = '未通过'; this.fctResultChange.color = 'red'; break
+          case 3: this.fctResult = '未执行'; this.fctResultChange.color = 'Orange'; break
+        }
+        switch (this.ClientDatayl.rqtResult) { // 可靠性测试
+          case 1: this.rqtResult = '通过'; this.rqtResultChange.color = 'green'; break
+          case 2: this.rqtResult = '未通过'; this.rqtResultChange.color = 'red'; break
+          case 3: this.rqtResult = '未执行'; this.rqtResultChange.color = 'Orange'; break
+        }
+        switch (this.ClientDatayl.pftResult) { // 稳定性测试
+          case 1: this.pftResult = '通过'; this.pftResultChange.color = 'green'; break
+          case 2: this.pftResult = '未通过'; this.pftResultChange.color = 'red'; break
+          case 3: this.pftResult = '未执行'; this.pftResultChange.color = 'Orange'; break
+        }
+        switch (this.ClientDatayl.safeResult) { // 安全性测试
+          case 1: this.safeResult = '通过'; this.safeResultChange.color = 'green'; break
+          case 2: this.safeResult = '未通过'; this.safeResultChange.color = 'red'; break
+          case 3: this.safeResult = '未执行'; this.safeResultChange.color = 'Orange'; break
+        }
+        switch (this.ClientDatayl.moniterResult) { // 线上监控
+          case 1: this.moniterResult = '通过'; this.moniterResultChange.color = 'green'; break
+          case 2: this.moniterResult = '未通过'; this.moniterResultChange.color = 'red'; break
+          case 3: this.moniterResult = '未执行'; this.moniterResultChange.color = 'Orange'; break
+        }
       }
+      this.getBugData(this.bugNum)
+    },
+    getBugData(e) {
+      bugFinishList(e).then(res => {
+        this.$set(this.ClientDatayl, 'launchInfo', res.data.launchInfo)
+        this.tableData = [res.data]
+        this.formatData()
+      })
+    },
+
+    formatData() {
+      this.tableData.forEach(item => {
+        for (var key in item) {
+          item[key] = {
+            value: item[key],
+            edit: false
+          }
+        }
+      })
     },
+    // celledit(row, column, cell, event) {
+    //   if (row[column.property]) {
+    //     row[column.property].edit = true
+    //     setTimeout(() => {
+    //       this.$refs[column.property].focus()
+    //     }, 20)
+    //   }
+    // },
     download() {
       this.getPdf('resumeId', this.name)
     },

+ 39 - 25
src/views/Platform/presentation/acceptTheReport.vue

@@ -16,27 +16,40 @@
 
         <div v-if="oneShow">
           <el-form :model="fromCreateData">
-            <div style="display:flex;">
+            <div style="display: flex;">
+              <div style="flex:1">
+                <el-form-item label="是否延期 : "><span :style="lateStatus1">{{ lateStatus }}</span></el-form-item>
+              </div>
+              <div style="flex:1;">
+                <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item>
+              </div>
+            </div>
+
+            <div style="display: flex; margin:8px 0;">
+              <div style="flex:1">
+                <el-form-item label="涉及安全项 :"><span :style="safeStatus1">{{ safeStatus }}</span></el-form-item>
+              </div>
+              <div style="flex:1;">
+                <el-form-item v-show="showData" label="完成结果 :">{{ fromCreateData.safeInfo }}</el-form-item>
+              </div>
+            </div>
+            <div style="display: flex;">
               <div style="flex:1">
-                <el-form-item label="是否延期 : "><span :style="lateStatus1">{{ lateStatus }}</span></el-form-item><br>
-                <el-form-item label="涉及安全项 :"><span :style="safeStatus1">{{ safeStatus }}</span></el-form-item><br>
                 <el-form-item label="是否跟版 : ">{{ fromCreateData.isEdition }}</el-form-item><br>
                 <el-form-item label="优 先 级 : "> {{ fromCreateData.priority }}</el-form-item><br>
-                <el-form-item label="prd地址 : "> {{ fromCreateData.prdUrl }}</el-form-item><br>
-                <el-form-item label="设计方案 : ">{{ fromCreateData.devUrl }}</el-form-item><br>
-                <el-form-item label="自测结果 : ">{{ fromCreateData.selfTestInfo }}</el-form-item><br>
-                <el-form-item label="测试建议 : ">{{ fromCreateData.testSuggest }}</el-form-item>
+                <el-form-item label="SDL链接 : "><a href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" style="color:blue;">普惠SDL准入标准</a></el-form-item>
               </div>
-              <div style="flex:1">
-                <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item><br>
-                <el-form-item v-show="showData" label="完成结果 :">{{ fromCreateData.safeInfo }}</el-form-item><br>
+              <div style="flex:1;">
                 <el-form-item label="开发时间 : ">{{ fromCreateData.devTimeStart }} 至 {{ fromCreateData.devTimeEnd }}</el-form-item><br>
                 <el-form-item label="计划提测时间 : ">{{ fromCreateData.planLaunchTime }}</el-form-item><br>
-                <el-form-item label="实际提测时间 : ">{{ fromCreateData.launchTime }}</el-form-item><br>
+                <el-form-item label="实际提测时间 : ">{{ fromCreateData.launchTime }}</el-form-item>
               </div>
             </div>
-            <el-form-item label="SDL链接 : "><a href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" style="color:blue;">普惠SDL准入标准</a></el-form-item>
 
+            <el-form-item label="prd地址 : " style="margin-top:8px;"> {{ fromCreateData.prdUrl }}</el-form-item><br>
+            <el-form-item label="设计方案 : ">{{ fromCreateData.devUrl }}</el-form-item><br>
+            <el-form-item label="自测结果 : ">{{ fromCreateData.selfTestInfo }}</el-form-item><br>
+            <el-form-item label="测试建议 : ">{{ fromCreateData.testSuggest }}</el-form-item><br>
             <div class="rich" v-html=" moduleInfoOne" />
           </el-form>
         </div>
@@ -47,10 +60,9 @@
               <div style="flex:1">
                 <el-form-item label="测试地址 : ">{{ fromCreateData.packageUrl }}</el-form-item><br>
                 <el-form-item label="提测环境 : ">{{ fromCreateData.env }}</el-form-item><br>
-                <el-form-item label="新增Apollo : "><span :style="configInfo1">{{ configInfo }}</span></el-form-item><br>
-                <el-form-item label="依赖组件 : "><span :style="dependentComponents1">{{ dependentComponents }}</span></el-form-item><br>
+                <el-form-item label="新增Apollo : "><span :style="configInfo1">{{ config }}</span></el-form-item><br>
+                <el-form-item label="依赖组件 : "><span :style="dependentComponents1">{{ dependentCom }}</span></el-form-item><br>
                 <el-form-item label="是否延期 : "><span :style="lateStatus1">{{ lateStatus }}</span></el-form-item><br>
-
                 <el-form-item label="自测结果 : ">{{ fromCreateData.selfTestInfo }}</el-form-item><br>
 
               </div>
@@ -58,7 +70,7 @@
                 <el-form-item label="打包分支 : ">{{ fromCreateData.packageBranch }}</el-form-item><br>
                 <el-form-item label="优 先 级 : ">{{ fromCreateData.priority }}</el-form-item><br>
                 <el-form-item v-show="showDelay1" label="Apollo名称">{{ fromCreateData.configInfo }}</el-form-item><br>
-                <el-form-item v-show="showDelay2" label="组件名称 : ">{{ fromCreateData.dependentComponents }}</el-form-item>
+                <el-form-item v-show="showDelay2" label="组件名称 : ">{{ fromCreateData.dependentComponents }}</el-form-item><br>
                 <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item><br>
 
               </div>
@@ -82,8 +94,7 @@
         </el-form>
       </div>
     </div>
-  </div>
-</template>
+  </div></template>
 
 <script>
 import { launchTestSendmail } from '@/api/ResultPage'
@@ -97,6 +108,8 @@ export default {
       dependentComponents1: { color: 'green' },
       lateStatus1: { color: 'red' },
       safeStatus1: { color: 'green' },
+      dependentCom: '',
+      config: '',
       showDelay: false,
       showDelay1: false,
       showDelay2: false,
@@ -131,6 +144,7 @@ export default {
     },
     getRouterData() {
       this.fromCreateData = this.$route.query.data
+      console.log(this.fromCreateData)
       if (this.fromCreateData.type === 2) {
         this.towShow = false
         this.oneShow = true
@@ -149,7 +163,7 @@ export default {
         this.safeStatus = '否'
         this.safeStatus1.color = 'red'
       }
-      if (this.fromCreateData.lateStatus === 1) {
+      if (this.fromCreateData.lateStatus === 2) {
         this.showDelay = true
         this.lateStatus = '是'
       } else {
@@ -157,20 +171,20 @@ export default {
         this.lateStatus = '否'
         this.lateStatus1.color = 'green'
       }
-      if (this.fromCreateData.configInfo === 1) {
+      if (this.fromCreateData.configInfo !== '') {
         this.showDelay1 = true
-        this.configInfo = '是'
+        this.config = '是'
       } else {
         this.showDelay1 = false
-        this.configInfo = '否'
+        this.config = '否'
         this.configInfo1.color = 'red'
       }
-      if (this.fromCreateData.dependentComponents === 1) {
+      if (this.fromCreateData.dependentComponents !== '') {
         this.showDelay2 = true
-        this.dependentComponents = '是'
+        this.dependentCom = '是'
       } else {
         this.showDelay2 = false
-        this.dependentComponents = '否'
+        this.dependentCom = '否'
         this.dependentComponents1.color = 'red'
       }
     },

+ 6 - 9
src/views/Platform/presentation/testPage.vue

@@ -38,22 +38,22 @@
             <el-table-column type="selection" width="55" align="center" @change="clickAllData(gridData)" />
             <el-table-column prop="id" label="ID" width="60px" align="center">
               <template slot-scope="scope">
-                <span>{{ scope.row.id }}</span>
+                {{ scope.row.id }}
               </template>
             </el-table-column>
             <el-table-column prop="caseName" label="用例名" width="150" align="center">
               <template slot-scope="scope">
-                <span>{{ scope.row.caseName }}</span>
+                {{ scope.row.caseName }}
               </template>
             </el-table-column>
             <el-table-column prop="expectedResult" label="期望结果" width="150" align="center">
               <template slot-scope="scope">
-                <span>{{ scope.row.expectedResult }}</span>
+                {{ scope.row.expectedResult }}
               </template>
             </el-table-column>
             <el-table-column prop="casePriorityName" label="优先级" width="80" align="center">
               <template slot-scope="scope">
-                <span>{{ scope.row.casePriorityName }}</span>
+                {{ scope.row.casePriorityName }}
               </template>
             </el-table-column>
             <el-table-column prop="creatorName" label="创建人" width="100" align="center">
@@ -63,12 +63,12 @@
             </el-table-column>
             <el-table-column prop="modifierName" label="修改人" width="100" align="center">
               <template slot-scope="scope">
-                <span>{{ scope.row.modifierName }}</span>
+                {{ scope.row.modifierName }}
               </template>
             </el-table-column>
             <el-table-column prop="createTime" label="创建时间" width="200" align="center">
               <template slot-scope="scope">
-                <span>{{ scope.row.createTime }}</span>
+                {{ scope.row.createTime }}
               </template>
             </el-table-column>
             <el-table-column label="操作" min-width="220px" align="center" fixed="right">
@@ -264,11 +264,8 @@ export default {
             num.id = b.id
             arr.push(num)
           }
-          console.log(arr)
           this.data1.push({ id: a.id, label: a.projectName, children: num })
         }
-
-        console.log(this.data1)
       })
     },
     moduleTypeArr() {

+ 4 - 4
src/views/Platform/presentation/testPresenyL.vue

@@ -7,11 +7,11 @@
           <div style="display: flex; font-size: 19px;  white-space: nowrap; font-weight: bold;">
             <span style="flex:1;">标题 : {{ fromCreat.reportName }}</span>
             <span style="flex:1;">by : {{ fromCreat.ownner }}
-              <el-button type="primary" size="mini" style="margin:0 2% 0 40%;" @click="promptEmail(fromCreat)">发送报告</el-button>
+              <el-button type="primary" size="mini" style="margin:0 2% 0 30%;" @click="promptEmail(fromCreat)">发送报告</el-button>
               <el-button size="mini" @click="download()">下载测试报告</el-button>
             </span>
           </div>
-          <el-row>
+          <!-- <el-row>
             <el-col :span="24">
               <div style="margin: 1%;">1、项目节点</div>
               <div style="border: 1px solid #DEE2E7; padding: 100px 0;" class="time_line_box">
@@ -35,8 +35,8 @@
                   </ol>
                 </div>
               </div>
-            </el-col>
-          </el-row>
+            </el-col> -->
+          <!-- </el-row> -->
 
           <div class="titleStyle">一. 进度和风险</div>