Browse Source

Merge branch 'bug_fix' of git.xiaojukeji.com:jacklijiajia/thoth-frontend into bug_fix

panxiandiao_i 5 years ago
parent
commit
62cc2b27c1

+ 0 - 7
src/router/index.js

@@ -185,13 +185,6 @@ export const constantRoutes = [
             component: () => import('@/views/Platform/presentation/PresentReport'),
             meta: { title: '新增客户端提测报告' }
           },
-          {
-            path: 'defectManageQuery',
-            name: '缺陷查看',
-            // hidden: true,
-            component: () => import('@/views/Platform/presentation/defectManageQuery'),
-            meta: { title: '缺陷查看' }
-          },
           {
             path: 'projectQuery',
             name: '项目查看编辑',

+ 13 - 15
src/views/Platform/defectManagement.vue

@@ -21,28 +21,26 @@
         </el-form>
       </div>
 
-      <el-table :data="tableData" fit style="width: 950%">
-        <el-table-column label="ID" width="120" align="center">
-          <template slot-scope="scope"><span>{{ scope.row.id }}</span></template>
+      <el-table :data="tableData" fit>
+        <el-table-column label="ID" min-width="120" align="center">
+          <template slot-scope="scope">{{ scope.row.id }}</template>
         </el-table-column>
-        <el-table-column label="主题" width="230" align="center">
+        <el-table-column label="主题" min-width="230" align="center">
           <template slot-scope="scope"><a href="javascript:void(0)" style="color:#20a0ff" @click="toReportView(scope.row.id)">{{ scope.row.bugName }}</a></template>
         </el-table-column>
-        <el-table-column label="处理人" width="150" align="center">
-          <template slot-scope="scope"><span>{{ scope.row.currentHandler }}</span></template>
+        <el-table-column label="处理人" min-width="150" align="center">
+          <template slot-scope="scope">{{ scope.row.currentHandler }}</template>
         </el-table-column>
-        <el-table-column label="创建日期" width="250" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.gmtCreate }}</span>
-          </template>
+        <el-table-column label="创建日期" min-width="250" align="center">
+          <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
         </el-table-column>
-        <el-table-column label="级别" width="150" align="center">
-          <template slot-scope="scope"><span>{{ scope.row.priority }}</span></template>
+        <el-table-column label="级别" min-width="150" align="center">
+          <template slot-scope="scope">{{ scope.row.priority }}</template>
         </el-table-column>
-        <el-table-column label="状态" width="150" align="center">
-          <template slot-scope="scope"><span>{{ scope.row.status }}</span></template>
+        <el-table-column label="状态" min-width="150" align="center">
+          <template slot-scope="scope">{{ scope.row.status }}</template>
         </el-table-column>
-        <el-table-column fixed="right" label="操作" width="150" align="center">
+        <el-table-column fixed="right" label="操作" min-width="250" align="center">
           <template slot-scope="scope">
             <el-button size="mini" type="primary" @click="queryPresentation(scope.row)">更新</el-button>
             <el-button size="mini" type="primary" @click="delePresentation(scope.row.id)">删除</el-button>

+ 188 - 148
src/views/Platform/presentation/Acceptance.vue

@@ -1,116 +1,108 @@
 <template>
   <!-- 准出报告,新增服务端报告 -->
-  <el-form ref="ClientData" :inline="true" :model="ClientData" :rules="serviceDataRules" style="margin:7% 3%;">
-    <el-row :gutter="20">
-      <el-col :span="13">
-        <el-form-item class="backStyle" prop="reportName">
-          <el-input v-model="ClientData.reportName" style="width:40vw;" placeholder="报告标题(xxx项目准出报告)" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="11">
-        <el-form-item label="by" prop="ownner" class="backStyle" style="margin-left:50px;background: white">
-          <el-input v-model="ClientData.ownner" style="width:20vw; margin-left:30px; border:2px solid #ccc;" placeholder="who" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-form-item label="一、项目概述" />
-    <el-row :gutter="20" type="flex">
-      <el-col :span="12">
-        <el-form-item label="测试结果" class="backStyle" prop="status">
-          <el-radio-group v-model="ClientData.status">
-            <el-radio style="margin: 0 87px;" label="1" @change="changeStatus(1)">通过</el-radio>
-            <el-radio style="padding-right: 150px;" label="2" @change="changeStatus">不通过</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="准入结果" prop="smokeTestResult" class="backStyle" style="margin-left:69px;"><el-input v-model="ClientData.smokeTestResult" style="width:31.1vw;" placeholder="准入次数/通过次数/失败次数" /></el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="23">
-      <el-col :span="23">
-        <el-form-item label="开发人员" prop="developer" class="backStyle"><el-input v-model="ClientData.developer" style="width:30.1vw;" /></el-form-item>
-        <el-form-item label="开发周期" prop="devTimeEnd" class="backStyle" style="margin-left:70px;">
-          <el-date-picker v-model="ClientData.devTimeEnd" type="date" placeholder="选择日期" /> -
-          <el-date-picker v-model="ClientData.devTimeStart" type="date" placeholder="选择日期" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="23">
-      <el-col :span="23">
-        <el-form-item label="测试人员" prop="tester" class="backStyle"><el-input v-model="ClientData.tester" style="width:30.1vw;" /></el-form-item>
-        <el-form-item label="测试周期" prop="testTimeEnd" class="backStyle" style="margin-left:70px;">
-          <el-date-picker v-model="ClientData.testTimeEnd" type="date" placeholder="选择日期" /> -
-          <el-date-picker v-model="ClientData.testTimeStart" type="date" placeholder="选择日期" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="20" type="flex">
-      <el-col :span="12">
-        <el-form-item label="准出延期" class="backStyle" prop="taskLateStatus">
-          <el-radio-group v-model="ClientData.taskLateStatus">
-            <el-radio style="margin: 0 90px;" label="2" @change="lateStatusChange(2)">否</el-radio>
-            <el-radio style="padding-right: 187px;" label="1" @change="lateStatusChange(1)">是</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item v-if="showDelay" label="延期原因" prop="taskLateReason" class="backStyle" style="margin-left:73px;"><el-input v-model="ClientData.taskLateReason" style="width:31.3vw;" /></el-form-item>
-      </el-col>
-    </el-row>
-    <el-form-item label="二、项目背景" class="backStyle" />
-    <div id="editorElem" class="toolbar" />
-    <div id="editorElem1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-    <el-form-item label="三、模块信息" class="backStyle" />
-
-    <div class="titStyle">1、模块信息</div>
-
-    <div id="editorElems" class="toolbar" />
-    <div id="editorElems1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">2、本期功能</div>
-
-    <div id="editorFrom" class="toolbar" />
-    <div id="editorFrom1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">3、风险点</div>
-
-    <div id="editorF" class="toolbar" />
-    <div id="editorF1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">4、缺陷分析</div>
-
-    <div id="editorData" class="toolbar" />
-    <div id="editorData1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-    <el-row :gutter="23"><el-col :span="12"><el-form-item label="四、测试项" class="backStyle" /></el-col></el-row>
-
-    <div class="titStyle">1、功能测试</div>
-
-    <div id="editorEl" class="toolbar" />
-    <div id="editorEl1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">2、可靠性测试</div>
-
-    <div id="editorEle" class="toolbar" />
-    <div id="editorEle1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">3、稳定性测试</div>
-
-    <div id="editorSix" class="toolbar" />
-    <div id="editorSix1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">4、安全性测试</div>
-
-    <div id="editorEight" class="toolbar" />
-    <div id="editorEight1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-
-    <div class="titStyle">5、线上监控</div>
-
-    <div id="editorNine" class="toolbar" />
-    <div id="editorNine1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
-    <el-row :gutter="24" style="margin:70px 0 0 150px;" type="flex" justify="center">
-      <el-col :span="8"><el-button type="info" @click="clickPreview(ClientData)"> 预 览 </el-button></el-col>
-      <el-col v-show="showButton" :span="8"><el-button type="info" @click="getCreateData(ClientData)"> 保 存 </el-button></el-col>
-      <el-col v-show="showButton1" :span="8"><el-button type="info" @click="getQueryData(ClientData)"> 更 新 </el-button></el-col>
-      <el-col :span="8"><el-button type="info" @click="open()"> 取 消 </el-button></el-col>
-    </el-row>
-  </el-form>
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
+      <el-form ref="ClientData" :inline="true" :model="ClientData" :rules="serviceDataRules" style="margin:2% 3%;">
+        <div style="display: flex;white-space: nowrap;">
+          <el-form-item label="标题" style="flex: 1;" prop="reportName">
+            <el-input v-model="ClientData.reportName" style="width:45vw;" placeholder="报告标题(xxx项目准出报告)" />
+          </el-form-item>
+          <el-form-item label="by" prop="ownner" style="flex: 1;text-align:right;">
+            <el-input v-model="ClientData.ownner" style="width: 24vw;" placeholder="who" />
+          </el-form-item>
+        </div>
+        <div class="backStyle" style="margin-bottom: 2% ;">一. 项目概述</div>
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="* 测试结果" style="flex: 1;" prop="status">
+            <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>
+        </div>
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="* 准出延期" style="flex: 1;" prop="taskLateStatus">
+            <el-button :type="tagChange" style="margin: 0 2vw;" class="tag" @click="lateStatusChange(1)"> 否 </el-button>
+            <el-button :type="tagChange1" class="tag" @click="lateStatusChange(2)"> 是 </el-button>
+          </el-form-item>
+          <el-form-item v-if="showDelay" label="延期原因" prop="taskLateReason" style="flex: 2;text-align:right;"><el-input v-model="ClientData.taskLateReason" style="width: 50vw;" /></el-form-item>
+        </div>
+
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="开发人员" style="flex: 1;" prop="developer"><el-input v-model="ClientData.developer" style="width:30vw;" /></el-form-item>
+          <el-form-item label="开发周期" style="flex: 1;text-align:right;" prop="devTimeEnd">
+            <el-date-picker v-model="ClientData.devTimeEnd" type="date" placeholder="请选择开始日期" style=" width: 15vw;" />
+            <el-date-picker v-model="ClientData.devTimeStart" type="date" placeholder="请选择开始日期" style="margin-left:1.3vw; width: 16vw;" />
+          </el-form-item>
+        </div>
+
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="测试人员" style="flex: 1;" prop="tester"><el-input v-model="ClientData.tester" style="width: 30vw;" /></el-form-item>
+          <el-form-item label="测试周期" style="flex: 1;text-align:right;" prop="testTimeEnd">
+            <el-date-picker v-model="ClientData.testTimeEnd" type="date" placeholder="请选择开始日期" style=" width: 15vw;" />
+            <el-date-picker v-model="ClientData.testTimeStart" type="date" placeholder="请选择开始日期" style="margin-left: 1.3vw; width: 16vw;" />
+          </el-form-item>
+        </div>
+
+        <div class="backStyle" style="margin-bottom:2%;">二. 项目背景</div>
+        <div id="editorElem" class="toolbar" />
+        <div id="editorElem1" class="text" />
+
+        <div class="backStyle">三. 模块信息</div>
+        <div class="titStyle">1、模块信息</div>
+
+        <div id="editorElems" class="toolbar" />
+        <div id="editorElems1" class="text" />
+
+        <div class="titStyle">2、本期功能</div>
+
+        <div id="editorFrom" class="toolbar" />
+        <div id="editorFrom1" class="text" />
+
+        <div class="titStyle">3、风险点</div>
+
+        <div id="editorF" class="toolbar" />
+        <div id="editorF1" class="text" />
+
+        <div class="titStyle">4、缺陷分析</div>
+
+        <div id="editorData" class="toolbar" />
+        <div id="editorData1" class="text" />
+        <div class="backStyle">四. 测试项</div>
+
+        <div class="titStyle">1、功能测试</div>
+
+        <div id="editorEl" class="toolbar" />
+        <div id="editorEl1" class="text" />
+
+        <div class="titStyle">2、可靠性测试</div>
+
+        <div id="editorEle" class="toolbar" />
+        <div id="editorEle1" class="text" />
+
+        <div class="titStyle">3、稳定性测试</div>
+
+        <div id="editorSix" class="toolbar" />
+        <div id="editorSix1" class="text" />
+
+        <div class="titStyle">4、安全性测试</div>
+
+        <div id="editorEight" class="toolbar" />
+        <div id="editorEight1" class="text" />
+
+        <div class="titStyle">5、线上监控</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 style="flex: 1;"><el-button @click="open()"> 取 消 </el-button></div>
+        </dir>
+      </el-form>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -122,14 +114,18 @@ export default {
     return {
       userData: '',
       objData: '',
+      tagBtn: 'info',
+      tagBtn1: 'info',
+      tagChange: 'info',
+      tagChange1: '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' }],
-        status: [{ required: true, message: '测试结果不能为空', trigger: 'change' }],
-        taskLateStatus: [{ required: true, message: '准出延期不能为空', trigger: 'change' }],
+        status: [{ required: false, message: '测试结果不能为空', trigger: 'change' }],
+        taskLateStatus: [{ required: false, message: '准出延期不能为空', trigger: 'change' }],
         taskLateReason: [{ required: true, message: '延期原因不能为空', trigger: 'change' }],
         smokeTestResult: [{ required: true, message: '准入结果不能为空', trigger: 'change' }],
         developer: [{ required: true, message: '开发人员不能为空', trigger: 'change' }],
@@ -176,16 +172,16 @@ export default {
     this.editorEight = new E('#editorEight', '#editorEight1')
     this.editorNine = new E('#editorNine', '#editorNine1')
 
-    this.editorElem.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorElems.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorFrom.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorF.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorData.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorEl.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorEle.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorSix.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorEight.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorNine.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
+    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.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']
+    this.editorEight.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
+    this.editorNine.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table']
 
     this.editorElem.customConfig.zIndex = 110
     this.editorElems.customConfig.zIndex = 110
@@ -229,13 +225,13 @@ export default {
     this.editorNine.create()
 
     this.editorElem.txt.html(``)
-    this.editorElems.txt.html(`<p></p><table 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 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 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 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 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.editorEight.txt.html(`<p></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>备注</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.editorNine.txt.html(`<p></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>备注</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.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>`)
+    this.editorEight.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.editorNine.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.getRouterData1()
   },
   methods: {
@@ -255,24 +251,30 @@ export default {
         this.projectIdCode = this.$route.query.task.id
       }
 
+      if (this.$route.query.projectData) { // 主页面新建
+        this.ClientData = {}
+        this.bizIdCode = this.$route.query.projectData.bizId
+        this.projectIdCode = this.$route.query.projectData.id
+      }
+
       if (this.$route.query.data) { // 报告主页更新
         this.showButton1 = true
         this.showButton = false
         this.ClientData = this.$route.query.data
         if (this.ClientData.status === 1) {
+          this.tagBtn = 'success'
           this.status = '1'
-          this.ClientData.status = '1'
         } else {
+          this.tagBtn1 = 'danger'
           this.status = '2'
-          this.ClientData.status = '2'
         }
         if (this.ClientData.taskLateStatus === 1) {
+          this.tagChange = 'success'
           this.taskLateStatus = '1'
-          this.ClientData.taskLateStatus = '1'
           this.showDelay = true
         } else {
+          this.tagChange1 = 'danger'
           this.taskLateStatus = '2'
-          this.ClientData.taskLateStatus = '2'
           this.showDelay = false
         }
       }
@@ -360,6 +362,10 @@ export default {
             this.ClientData.bizId = this.bizIdCode
             this.ClientData.taskId = this.projectIdCode
           }
+          if (this.$route.query.projectData) { // 主页面新建
+            this.$route.query.projectData.typeString === 1 ? this.ClientData.projectId = this.projectIdCode : this.ClientData.taskId = this.projectIdCode
+            this.ClientData.bizId = this.bizIdCode
+          }
           this.ClientData.status = this.status
           this.ClientData.taskLateStatus = this.taskLateStatus
           this.ClientData.type = 2
@@ -382,24 +388,58 @@ export default {
     clickPreview(ele) {
       this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: ele }})
     },
+
+    // 准出延期
     lateStatusChange(e) {
-      e === 1 ? this.showDelay = true : this.showDelay = false
-      e === 1 ? this.taskLateStatus = '1' : this.taskLateStatus = '2'
+      if (e === 1) {
+        this.tagChange = 'success'
+        this.tagChange1 = 'info'
+        this.showDelay = false
+        this.taskLateStatus = '1'
+      } else {
+        this.tagChange = 'info'
+        this.tagChange1 = 'danger'
+        this.showDelay = true
+        this.taskLateStatus = '2'
+      }
     },
-    changeStatus(e) { e === 1 ? this.status = '1' : this.status = '2' }
+
+    // 测试结果
+    changeStatus(e) {
+      if (e === 1) {
+        this.ClientData.status = 1
+        this.tagBtn = 'success'
+        this.tagBtn1 = 'info'
+        this.status = '1'
+      } else {
+        this.ClientData.status = 2
+        this.tagBtn = 'info'
+        this.tagBtn1 = 'danger'
+        this.status = '2'
+      }
+    }
   }
 }
 </script>
 
 <style scoped>
-  .el-col {
-    white-space:nowrap;
+  .tag {
+     width:80px;
+     text-align: center;
+     cursor:pointer
   }
   .backStyle {
-    background: #ccc;
+    font-size: 19px;
+    font-weight: bold;
     border-radius: 4px;
-    padding:2px;
-    margin-top:20px;
+    /* padding:2px; */
+    margin-top: 2%;
+  }
+  .eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
   }
   .titStyle {
     font-size: 15px;
@@ -407,14 +447,14 @@ export default {
     margin: 20px 0;
   }
   .toolbar {
-    width: 79vw;
-    border: 2px solid #ccc;
+    border: 1px solid #DEE2E7;
   }
   .text {
+    text-align: left;
+    min-height: 100px;
     font-size: 15px;
-    color:#606266;
-    width: 79vw;
-    border: 2px solid #ccc;
-    height: aotu;
+    color: #606266;
+    border: 1px solid #DEE2E7;
+    height: auto;
   }
 </style>

+ 308 - 126
src/views/Platform/presentation/ClientAcceptance.vue

@@ -1,96 +1,106 @@
 <template>
   <!-- 准出报告,新增客户端报告 -->
-  <el-form ref="ClientData" :inline="true" :model="ClientData" :rules="serviceDataRules" style="margin:7% 3%;">
-    <el-row :gutter="20">
-      <el-col :span="13">
-        <el-form-item class="backStyle" prop="reportName">
-          <el-input v-model="ClientData.reportName" style="width:40vw;" placeholder="报告标题(xxx项目准出报告)" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="11">
-        <el-form-item label="by" prop="ownner" style="margin: 20px 0 0 60px;margin-left:70px;background: white">
-          <el-input v-model="ClientData.ownner" style="width:20vw; border:2px solid #ccc;border-radius: 4px;" placeholder="who" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="20"><el-col :span="12"><el-form-item label="一、项目概述" class="backStyle" /></el-col></el-row>
-    <el-row :gutter="20" type="flex">
-      <el-col :span="12">
-        <el-form-item label="测试结果" class="backStyle" prop="status">
-          <el-radio-group v-model="ClientData.status">
-            <el-radio style="margin: 0 90px;" label="1" @change="changeStatus(1)">通过</el-radio>
-            <el-radio style="padding-right: 140px;" label="2" @change="changeStatus">不通过</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="准入结果" prop="smokeTestResult" class="backStyle" style="margin-left:77px;"><el-input v-model="ClientData.smokeTestResult" style="width:30.5vw;" placeholder="准入次数/通过次数/失败次数" /></el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="23">
-      <el-col :span="23">
-        <el-form-item label="开发人员" prop="developer" class="backStyle"><el-input v-model=" ClientData.developer" style="width:30.5vw;" /></el-form-item>
-        <el-form-item label="开发周期" prop="devTimeEnd" class="backStyle" style="margin-left:80px;">
-          <el-date-picker v-model="ClientData.devTimeEnd" style="width:14.5vw;" type="date" placeholder="选择日期" /> —
-          <el-date-picker v-model="ClientData.devTimeStart" style="width:14.5vw;" type="date" placeholder="选择日期" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="23">
-      <el-col :span="23">
-        <el-form-item label="测试人员" prop="tester" class="backStyle"><el-input v-model="ClientData.tester" style="width:30.5vw;" /></el-form-item>
-        <el-form-item label="测试周期" prop="testTimeEnd" class="backStyle" style="margin-left:80px;">
-          <el-date-picker v-model="ClientData.testTimeEnd" style="width:14.5vw;" type="date" placeholder="选择日期" /> —
-          <el-date-picker v-model="ClientData.testTimeStart" style="width:14.5vw;" type="date" placeholder="选择日期" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row :gutter="20" type="flex">
-      <el-col :span="12">
-        <el-form-item label="准出延期" class="backStyle" prop="taskLateStatus">
-          <el-radio-group v-model="ClientData.taskLateStatus">
-            <el-radio style="margin: 0 90px;" label="2" @change="clickshow">否</el-radio>
-            <el-radio style="padding-right: 177px;" label="1" @change="clickshow(1)">是</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item v-if="showDelay" prop="taskLateReason" label="延期原因" class="backStyle" style="margin-left:82px;"><el-input v-model="ClientData.taskLateReason" style="width:30.5vw;" /></el-form-item>
-      </el-col>
-    </el-row>
-    <el-form-item label="二、项目背景" class="backStyle" />
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
+      <el-form ref="ClientData" :inline="true" :model="ClientData" :rules="serviceDataRules" style="margin:2% 3%;">
+        <div style="display:flex; white-space: nowrap;">
+          <el-form-item label="标题" class="backStyle" style="flex:1;" prop="reportName">
+            <el-input v-model="ClientData.reportName" style="width:45vw;" placeholder="报告标题(xxx项目准出报告)" />
+          </el-form-item>
+          <el-form-item label="by" prop="ownner" class="backStyle" style="flex:1; text-align: right;">
+            <el-input v-model="ClientData.ownner" style="width:24vw;" placeholder="who" />
+          </el-form-item>
+        </div>
+        <div style="margin-bottom: 1%;" class="backStyle">一. 项目概述</div>
 
-    <div id="editorElem" class="toolbar" />
-    <div id="editorElem1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="* 测试结果" style="flex: 1;" prop="status">
+            <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>
+        </div>
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="* 准出延期" style="flex: 1;" prop="taskLateStatus">
+            <el-tag :type="tagChange" effect="dark" style="margin: 0 2vw;" class="tag" @click="lateStatusChange(1)"> 否 </el-tag>
+            <el-tag :type="tagChange1" effect="dark" class="tag" @click="lateStatusChange(2)"> 是 </el-tag>
+          </el-form-item>
+          <el-form-item v-if="showDelay" label="延期原因" prop="taskLateReason" style="flex: 2;text-align:right;"><el-input v-model="ClientData.taskLateReason" style="width: 50vw;" /></el-form-item>
+        </div>
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="开发人员" style="flex: 1;" prop="developer"><el-input v-model="ClientData.developer" style="width:30vw;" /></el-form-item>
+          <el-form-item label="开发周期" style="flex: 1;text-align:right;" prop="devTimeEnd">
+            <el-date-picker v-model="ClientData.devTimeEnd" type="date" placeholder="请选择开始日期" style=" width: 15vw;" />
+            <el-date-picker v-model="ClientData.devTimeStart" type="date" placeholder="请选择开始日期" style="margin-left:1.3vw; width: 16vw;" />
+          </el-form-item>
+        </div>
 
-    <el-form-item label="三、测试项" class="backStyle" />
-    <p class="p">功能测试 <el-radio-group v-model="pftResult"> <el-radio :label="3">未执行</el-radio><el-radio :label="1">测试通过</el-radio><el-radio :label="2">测试未通过</el-radio></el-radio-group></p>
+        <div style="display: flex; white-space: nowrap;">
+          <el-form-item label="测试人员" style="flex: 1;" prop="tester"><el-input v-model="ClientData.tester" style="width: 30vw;" /></el-form-item>
+          <el-form-item label="测试周期" style="flex: 1;text-align:right;" prop="testTimeEnd">
+            <el-date-picker v-model="ClientData.testTimeEnd" type="date" placeholder="请选择开始日期" style=" width: 15vw;" />
+            <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="editorElems" class="toolbar" />
-    <div id="editorElems1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <div id="editorElem" class="toolbar" />
+        <div id="editorElem1" class="text" />
 
-    <p class="p">兼容测试<el-radio-group v-model="sctResult"><el-radio :label="1">测试通过</el-radio><el-radio :label="2">测试未通过</el-radio></el-radio-group></p>
+        <div style="margin: 1% 0;" class="backStyle">三. 测试项</div>
 
-    <div id="editorFrom" class="toolbar" />
-    <div id="editorFrom1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <div 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="pftChange" effect="dark" class="tag" @click="changePftResult(3)"> 未执行 </el-tag>
+            <el-tag :type="pftChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="changePftResult(1)"> 测试通过 </el-tag>
+            <el-tag :type="pftChange2" effect="dark" class="tag" @click="changePftResult(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
 
-    <el-form-item label="四、产品验收" class="backStyle" />
-    <el-row :gutter="20">
-      <el-col :span="6">
-        <p class="p">验收结果<el-radio-group v-model="acceptanceResult"><el-radio :label="3">未执行</el-radio><el-radio :label="1">测试通过</el-radio><el-radio :label="2">测试未通过</el-radio></el-radio-group></p>
-      </el-col>
-    </el-row>
-    <div id="editorFro" class="toolbar" />
-    <div id="editorFro1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <div id="editorElems" class="toolbar" />
+        <div id="editorElems1" class="text" />
 
-    <el-form-item label="五、bug指标" class="backStyle" />
+        <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="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>
+        </div>
 
-    <div id="editorEle" class="toolbar" />
-    <div id="editorEle1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+        <div id="editorFrom" class="toolbar" />
+        <div id="editorFrom1" class="text" />
 
-    <el-row :gutter="24" style="margin:70px 0 0 150px;" type="flex" justify="center">
-      <el-col :span="8"><el-button type="info" @click="clickPreview(ClientData)"> 预 览 </el-button></el-col>
-      <el-col v-show="showButton" :span="8"><el-button type="info" @click="getCreateData(ClientData)"> 保 存 </el-button></el-col>
-      <el-col v-show="showButton1" :span="8"><el-button type="info" @click="getQueryData(ClientData)"> 更 新 </el-button></el-col>
-      <el-col :span="8"><el-button type="info" @click="open(ClientData)"> 取 消 </el-button></el-col>
-    </el-row>
-  </el-form>
+        <div style="margin: 2% 0 0% 0;" class="backStyle">四. 产品验收</div>
+
+        <div style="display:flex; margin:1% 0 -1% 0;  white-space: nowrap;">
+          <el-form-item style="flex:1; ">验收结果</el-form-item>
+          <div style="flex: 1; text-align: right;">
+            <el-tag :type="acceptanceResultChange" effect="dark" class="tag" @click="changeAcceptanceResult(3)"> 未执行 </el-tag>
+            <el-tag :type="acceptanceResultChange1" style="margin: 0 5%;" effect="dark" class="tag" @click="changeAcceptanceResult(1)"> 测试通过 </el-tag>
+            <el-tag :type="acceptanceResultChange2" effect="dark" class="tag" @click="changeAcceptanceResult(2)"> 测试未通过 </el-tag>
+          </div>
+        </div>
+
+        <div id="editorFro" class="toolbar" />
+        <div id="editorFro1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
+
+        <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;" />
+
+        <dir 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 style="flex: 1;"><el-button @click="open()"> 取 消 </el-button></div>
+        </dir>
+      </el-form>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -102,13 +112,26 @@ export default {
     return {
       userData: '',
       objData: '',
+      tagBtn: 'info',
+      tagBtn1: 'info',
+      tagChange: 'info',
+      tagChange1: 'info',
+      sctChange: 'info',
+      sctChange1: 'info',
+      sctChange2: 'info',
+      pftChange: 'info',
+      pftChange1: 'info',
+      pftChange2: 'info',
+      acceptanceResultChange: 'info',
+      acceptanceResultChange1: 'info',
+      acceptanceResultChange2: 'info',
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
       serviceDataRules: {
         reportName: [{ required: true, message: '报告标题不能为空', trigger: 'change' }],
         ownner: [{ required: true, message: 'by不能为空', trigger: 'change' }],
-        status: [{ required: true, message: '测试结果不能为空', trigger: 'change' }],
-        taskLateStatus: [{ required: true, message: '准出延期不能为空', trigger: 'change' }],
+        status: [{ required: false, message: '测试结果不能为空', trigger: 'change' }],
+        taskLateStatus: [{ required: false, message: '准出延期不能为空', trigger: 'change' }],
         taskLateReason: [{ required: true, message: '延期原因不能为空', trigger: 'change' }],
         smokeTestResult: [{ required: true, message: '准入结果不能为空', trigger: 'change' }],
         developer: [{ required: true, message: '开发人员不能为空', trigger: 'change' }],
@@ -142,7 +165,7 @@ export default {
     this.editorElems = new E('#editorElems', '#editorElems1')
     this.editorFrom = new E('#editorFrom', '#editorFrom1')
     this.editorFro = new E('#editorFro', '#editorFro1')
-    this.editorEle = new E('#editorEl', '#editorEle1')
+    this.editorEle = new E('#editorEle', '#editorEle1')
 
     this.editorElem.customConfig.zIndex = 110
     this.editorElems.customConfig.zIndex = 110
@@ -150,11 +173,11 @@ export default {
     this.editorFro.customConfig.zIndex = 110
     this.editorEle.customConfig.zIndex = 110
 
-    this.editorElem.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorElems.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorFrom.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorFro.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
-    this.editorEle.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify']
+    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 }
@@ -180,39 +203,110 @@ export default {
       this.showButton = true
       this.showButton1 = false
       if (this.$route.query.projectId) { // 项目页面新建
-        console.log(this.$route.query.projectId)
         this.ClientData = {}
         this.bizIdCode = this.$route.query.projectId.bizId
         this.projectIdCode = this.$route.query.projectId.id
       }
 
       if (this.$route.query.task) { // 任务页面新建
-        alert(' 任务页面新建')
         this.ClientData = {}
         this.bizIdCode = this.$route.query.task.bizId
         this.projectIdCode = this.$route.query.task.id
       }
+
+      if (this.$route.query.projectData) { // 主页面新建
+        this.ClientData = {}
+        this.bizIdCode = this.$route.query.projectData.bizId
+        this.projectIdCode = this.$route.query.projectData.id
+      }
+
       if (this.$route.query.data) { // 准出主页面
+        this.ClientData = {}
         this.showButton1 = true
         this.showButton = false
         this.ClientData = this.$route.query.data
-        this.pftResult = this.ClientData.pftResult
-        this.sctResult = this.ClientData.sctResult
         if (this.ClientData.status === 1) {
-          this.status = '1'
-          this.ClientData.status = '1'
+          this.tagBtn = 'success'
+          this.tagBtn1 = 'info'
+          this.status = 1
         } else {
-          this.status = '2'
-          this.ClientData.status = '2'
+          this.tagBtn1 = 'danger'
+          this.tagBtn = 'info'
+          this.status = 2
         }
         if (this.ClientData.taskLateStatus === 1) {
-          this.taskLateStatus = '1'
-          this.ClientData.taskLateStatus = '1'
-          this.showDelay = true
-        } else {
-          this.taskLateStatus = '2'
-          this.ClientData.taskLateStatus = '2'
+          this.tagChange = 'success'
+          this.tagChange1 = 'info'
+          this.taskLateStatus = 1
           this.showDelay = false
+        } else {
+          this.tagChange1 = 'danger'
+          this.tagChange = 'info'
+          this.taskLateStatus = 2
+          this.showDelay = true
+        }
+        if (this.ClientData.sctResult) {
+          switch (this.ClientData.sctResult) {
+            case 1:
+              this.sctChange = 'info'
+              this.sctChange1 = 'success'
+              this.sctChange2 = 'info'
+              this.sctResult = 1
+              break
+            case 2:
+              this.sctChange = 'info'
+              this.sctChange1 = 'info'
+              this.sctChange2 = 'danger'
+              this.sctResult = 2
+              break
+            case 3:
+              this.sctChange = 'warning'
+              this.sctChange1 = 'info'
+              this.sctChange2 = 'info'
+              this.sctResult = 3
+          }
+        }
+        if (this.ClientData.pftResult) {
+          switch (this.ClientData.pftResult) {
+            case 1:
+              this.pftChange = 'info'
+              this.pftChange1 = 'success'
+              this.pftChange2 = 'info'
+              this.pftResult = 1
+              break
+            case 2:
+              this.pftChange = 'info'
+              this.pftChange1 = 'info'
+              this.pftChange2 = 'danger'
+              this.pftResult = 2
+              break
+            case 3:
+              this.pftChange = 'warning'
+              this.pftChange1 = 'info'
+              this.pftChange2 = 'info'
+              this.pftResult = 3
+          }
+        }
+        if (this.ClientData.acceptanceResult) {
+          switch (this.ClientData.acceptanceResult) {
+            case 1:
+              this.acceptanceResultChange = 'info'
+              this.acceptanceResultChange1 = 'success'
+              this.acceptanceResultChange2 = 'info'
+              this.acceptanceResult = 1
+              break
+            case 2:
+              this.acceptanceResultChange = 'info'
+              this.acceptanceResultChange1 = 'info'
+              this.acceptanceResultChange2 = 'danger'
+              this.acceptanceResult = 2
+              break
+            case 3:
+              this.acceptanceResultChange = 'warning'
+              this.acceptanceResultChange1 = 'info'
+              this.acceptanceResultChange2 = 'info'
+              this.acceptanceResult = 3
+          }
         }
       }
     },
@@ -223,7 +317,7 @@ export default {
       this.editorFro.txt.html(this.ClientData.acceptanceResultInfo)
       this.editorEle.txt.html(this.ClientData.bugTarget)
     },
-    open(ele) {
+    open() {
       this.$confirm('是否放弃修改,离开页面?', '确认信息', {
         distinguishCancelAndClose: true,
         confirmButtonText: '继续修改',
@@ -252,6 +346,10 @@ export default {
             this.ClientData.bizId = this.bizIdCode
             this.ClientData.taskId = this.projectIdCode
           }
+          if (this.$route.query.projectData) { // 主页面新建
+            this.$route.query.projectData.typeString === 1 ? this.ClientData.projectId = this.projectIdCode : this.ClientData.taskId = this.projectIdCode
+            this.ClientData.bizId = this.bizIdCode
+          }
           this.ClientData.status = this.status
           this.ClientData.taskLateStatus = this.taskLateStatus
           this.ClientData.type = 1
@@ -262,7 +360,7 @@ export default {
               this.$message({ type: 'success', message: '保存成功' })
               this.$router.go(-1)
             } else {
-              this.$message.error('保存失败')
+              this.$message.error(res.msg)
             }
           })
         } else {
@@ -287,48 +385,132 @@ export default {
       projectTestReportUpdate(this.objData).then(res => {
         if (res.code === 200) {
           this.$message({ type: 'success', message: '更新成功' })
+          this.$router.go(-1)
         } else {
           this.$message.error('更新失败')
         }
       })
     },
+
+    // 准出延期
+    lateStatusChange(e) {
+      if (e === 1) {
+        this.tagChange = 'success'
+        this.tagChange1 = 'info'
+        this.showDelay = false
+        this.taskLateStatus = '1'
+      } else {
+        this.tagChange = 'info'
+        this.tagChange1 = 'danger'
+        this.showDelay = true
+        this.taskLateStatus = '2'
+      }
+    },
     clickPreview(ele) {
       this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: ele }})
     },
-    clickshow(e) {
-      e === 1 ? this.taskLateStatus = '1' : this.taskLateStatus = '2'
-      e === 1 ? this.showDelay = true : this.showDelay = false
-    },
+
+    // 测试结果
     changeStatus(e) {
-      e === 1 ? this.status = '1' : this.status = '2'
+      if (e === 1) {
+        this.tagBtn = 'success'
+        this.tagBtn1 = 'info'
+        this.status = '1'
+      } else {
+        this.tagBtn = 'info'
+        this.tagBtn1 = 'danger'
+        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
+      }
+    },
+
+    // 功能测试
+    changePftResult(e) {
+      switch (e) {
+        case 1:
+          this.pftChange = 'info'
+          this.pftChange1 = 'success'
+          this.pftChange2 = 'info'
+          this.pftResult = 1
+          break
+        case 2:
+          this.pftChange = 'info'
+          this.pftChange1 = 'info'
+          this.pftChange2 = 'danger'
+          this.pftResult = 2
+          break
+        case 3:
+          this.pftChange = 'warning'
+          this.pftChange1 = 'info'
+          this.pftChange2 = 'info'
+          this.pftResult = 3
+      }
+    },
+
+    // 验收结果
+    changeAcceptanceResult(e) {
+      switch (e) {
+        case 1:
+          this.acceptanceResultChange = 'info'
+          this.acceptanceResultChange1 = 'success'
+          this.acceptanceResultChange2 = 'info'
+          this.acceptanceResult = 1
+          break
+        case 2:
+          this.acceptanceResultChange = 'info'
+          this.acceptanceResultChange1 = 'info'
+          this.acceptanceResultChange2 = 'danger'
+          this.acceptanceResult = 2
+          break
+        case 3:
+          this.acceptanceResultChange = 'warning'
+          this.acceptanceResultChange1 = 'info'
+          this.acceptanceResultChange2 = 'info'
+          this.acceptanceResult = 3
+      }
     }
   }
 }
 </script>
 
 <style scoped>
-  .el-col {
-    white-space:nowrap;
+.tag {
+     width:80px;
+     text-align: center;
+     cursor:pointer
   }
   .backStyle {
-    margin:20px 0;
-    background: #ccc;
+    font-size: 19px;
+    font-weight: bold;
     border-radius: 4px;
-    padding:2px;
+  }
+  .eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
   }
   .toolbar {
-     width: 79vw;
-    border: 2px solid #ccc;
+    border: 2px solid #DEE2E7;
   }
   .text {
+    text-align: left;
+    min-height: 100px;
     font-size: 15px;
-    color:#606266;
-     width: 79vw;
-    border: 2px solid #ccc;
-    height: aotu;
-  }
-  .p {
-    font-size: 15px;
-    color:#606266;
+    color: #606266;
+    border: 1px solid #DEE2E7;
+    height: auto;
   }
 </style>

+ 106 - 108
src/views/Platform/presentation/DailyNewsAdded.vue

@@ -1,85 +1,88 @@
 <template>
   <!-- 日报报告,新增报告 -->
-  <el-form ref="fromCreateData" :inline="true" :model="fromCreateData" :rules="serviceDataRules" style="margin:7% 3%;">
-    <el-row :gutter="20">
-      <el-col :span="13">
-        <el-form-item class="backStyle" prop="reportName">
-          <el-input v-model="fromCreateData.reportName" style="width:40vw;" placeholder="报告标题" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="11">
-        <el-form-item label="by" prop="ownner" style="margin-left:70px;background: white">
-          <el-input v-model="fromCreateData.ownner" style="width:20vw; margin-left:30px; border:2px solid #ccc;border-radius: 4px;" placeholder="who" />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <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>
-    <div style="border:1px solid #ccc;width:79vw;margin-top:15px;">
-      <el-button class="btn" icon="el-icon-plus" @click="createDateNode">新增时间节点</el-button>
-      <el-button class="btn" icon="el-icon-delete">删除节点</el-button>
-    </div>
-    <div style="width:79vw;border:1px solid #ccc;padding:100px 0;" class="time_line_box">
-      <div class="time_line" style="width:100%;">
-        <ol>
-          <li style="list-style-type:none;">
-            <a class="order_item" style="left:5%;">一号节点</a>
-          </li>
-          <li style="list-style-type:none;">
-            <a class="order_item" style="left:25%;">二号节点</a>
-          </li>
-          <li style="list-style-type:none;">
-            <a class="order_item" style="left:45%;">三号节点</a>
-          </li>
-          <li style="list-style-type:none;">
-            <a class="order_item" style="left:65%;">四号节点</a>
-          </li>
-          <li style="list-style-type:none;">
-            <a class="order_item" style="left:85%;">五号节点</a>
-          </li>
-        </ol>
-      </div>
-    </div>
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
+      <el-form ref="fromCreateData" :inline="true" :model="fromCreateData" :rules="serviceDataRules" style="margin:2% 3%;">
+        <div style="display: flex;white-space: nowrap;">
+          <el-form-item label="标题" style="flex: 1;" prop="reportName">
+            <el-input v-model="fromCreateData.reportName" style="width:40vw;" placeholder="报告标题(xxx项目日报报告)" />
+          </el-form-item>
+          <el-form-item label="by" prop="ownner" style="flex: 1; text-align:right;">
+            <el-input v-model="fromCreateData.ownner" style="width: 24vw;" placeholder="who" />
+          </el-form-item>
+        </div>
+        <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>
+        <el-row>
+          <el-col :span="24">
+            <div style="border: 1px solid #DEE2E7; margin-top: 15px;" align="left">
+              <el-button class="btn" icon="el-icon-plus" @click="createDateNode">新增时间节点</el-button>
+              <el-button class="btn" icon="el-icon-delete">删除节点</el-button>
+            </div>
+            <div style="border: 1px solid #DEE2E7; padding: 100px 0;" class="time_line_box">
+              <div class="time_line" style="width:100%;">
+                <ol>
+                  <li style="list-style-type:none;">
+                    <a class="order_item" style="left:5%;">一号节点</a>
+                  </li>
+                  <li style="list-style-type:none;">
+                    <a class="order_item" style="left:25%;">二号节点</a>
+                  </li>
+                  <li style="list-style-type:none;">
+                    <a class="order_item" style="left:45%;">三号节点</a>
+                  </li>
+                  <li style="list-style-type:none;">
+                    <a class="order_item" style="left:65%;">四号节点</a>
+                  </li>
+                  <li style="list-style-type:none;">
+                    <a class="order_item" style="left:85%;">五号节点</a>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </el-col>
+        </el-row>
 
-    <el-row :gutter="20"><el-col :span="12"><el-form-item label="一、进度和风险" class="cententTit" /></el-col></el-row>
-    <div id="projectProgress" class="toolbar" />
-    <div id="projectProgress1" class="text" style="text-align:left" />
-    <el-row :gutter="20"><el-col :span="12"><el-form-item label="二、测试情况" class="cententTit" /></el-col></el-row>
-    <div id="TestProgress" class="toolbar" />
-    <div id="TestProgress1" class="text" style="text-align:left;" @change="hahh" />
+        <div class="backStyle">一. 进度和风险</div>
+        <div id="projectProgress" class="toolbar" />
+        <div id="projectProgress1" class="text" style="text-align:left" />
 
-    <el-row :gutter="23"><el-col :span="12"><el-form-item label="三、bug情况" class="backStyle" /></el-col></el-row>
+        <div class="backStyle">二. 测试情况</div>
 
-    <div style="border: 1px,solid #ccc;">
-      <label style="font-size: 15px; color: #606266">1、bug统计</label>
-      <el-row :gutter="20">
-        <el-col :span="12"><div id="lineShow" style="width: 600px;height:400px;" /></el-col>
-        <el-col :span="12"><div id="barShow" style="width: 600px;height:400px;" /></el-col>
-      </el-row>
-      <label style="font-size: 15px; color: #606266">2、bug说明</label>
-      <el-row :gutter="20">
-        <el-col>
-          <el-input v-model="bugshow" style="width:83vw;" type="textarea" @change="getContent3(bugshow)" />
-        </el-col>
-      </el-row>
-    </div>
+        <div id="TestProgress" class="toolbar" />
+        <div id="TestProgress1" class="text" style="text-align:left;" />
 
-    <el-row :gutter="24" style="margin:70px 0 0 150px;" type="flex" justify="center">
-      <el-col :span="8"><el-button type="info" @click="clickPreview(fromCreateData)"> 预 览 </el-button></el-col>
-      <el-col v-show="showButton" :span="8"><el-button type="info" @click="getCreateData(fromCreateData)"> 保 存 </el-button></el-col>
-      <el-col v-show="showButton1" :span="8"><el-button type="info" @click="getQueryData(fromCreateData)"> 更 新 </el-button></el-col>
-      <el-col :span="8"><el-button type="info" @click="open(fromCreateData)"> 取 消 </el-button></el-col>
-    </el-row>
-  </el-form>
+        <div class="backStyle">三. bug情况</div>
 
+        <div style="border: 1px,solid #ccc;">
+          <div style="color: #606266">1、bug统计</div>
+          <div style="display:flex;">
+            <div id="lineShow" style="flex:2; width: 800px;height:400px;" />
+            <div style="flex:1; width: 400px;height:400px;" />
+            <div id="barShow" style="flex:2; width: 800px;height:400px;" />
+          </div>
+          <div style="color: #606266; margin: 1% 0;">2、bug说明</div>
+          <el-row>
+            <el-col :span="24"><el-input v-model="fromCreateData.bugExplain" type="textarea" /></el-col>
+          </el-row>
+        </div>
+        <dir align="right" style="display: flex; margin: 5vw 0 0 50vw;">
+          <div style="flex: 1;"><el-button @click="clickPreview(fromCreateData)"> 预 览 </el-button></div>
+          <div v-show="showButton" style="flex: 1;"><el-button type="primary" @click="getCreateData(fromCreateData)"> 保 存 </el-button></div>
+          <div v-show="showButton1" style="flex: 1;"><el-button type="primary" @click="getQueryData(fromCreateData)"> 更 新 </el-button></div>
+          <div style="flex: 1;"><el-button @click="open(fromCreateData)"> 取 消 </el-button></div>
+        </dir>
+      </el-form>
+
+    </div>
+  </div>
 </template>
 
 <script>
 import E from 'wangeditor'
 import echarts from 'echarts'
-// import Swiper from 'swiper'
 
 import { dailyReportCreate, dailyReportUpdate, bugDailyList } from '@/api/testPresentetion'
 export default {
@@ -88,16 +91,10 @@ export default {
     return {
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
-      // bizJson: localStorage.getItem('key'),
       serviceDataRules: {
         reportName: [{ required: true, message: '报告标题不能为空', trigger: 'change' }],
         ownner: [{ required: true, message: 'by不能为空', trigger: 'change' }]
       },
-      todos: [
-        { data: `<li><a>li</a></li>` },
-        { data: `<li>li</li>` },
-        { data: `<li>li</li>` }
-      ],
       showbut1: false,
       showbut: '',
       showButton1: '',
@@ -106,7 +103,6 @@ export default {
       progressExplain: '', //  项目节点
       testExplain: '', // 测试情况
       bugNumCount: '', // bug统计
-      bugExplain: '', //  bug说明
       problemRisks: '', // 进度和风险
       fromCreateData: {
         id: '',
@@ -164,18 +160,25 @@ export default {
       if (this.$route.query.data) {
         this.fromCreateData = {}
         this.fromCreateData = this.$route.query.data
-        this.bugshow = this.fromCreateData.bugExplain
         this.showButton1 = true
         this.showButton = false
         this.pro = this.$route.query.data
       }
+      if (this.$route.query.state) { // 项目主页面新建
+        this.fromCreateData = {}
+        this.showButton1 = false
+        this.showButton = true
+        this.idCode = this.$route.query.state.id
+        this.bizIdCode = this.$route.query.state.bizId
+        this.$route.query.state.typeString === 1 ? this.pro = { projectId: this.idCode, bizId: this.bizIdCode } : this.pro = { taskId: this.idCode, bizId: this.bizIdCode }
+      }
       if (this.$route.query.task) { // 任务页面
         this.fromCreateData = {}
         this.showButton1 = false
         this.showButton = true
         this.bizIdCode = this.$route.query.task.bizId
         this.idCode = this.$route.query.task.id
-        this.pro = { taskId: this.idCode, bizId: this.fromCreateData.bizId }
+        this.pro = { taskId: this.idCode, bizId: this.bizIdCode }
       }
       if (this.$route.query.projectId) { // 项目页面
         this.fromCreateData = {}
@@ -183,7 +186,7 @@ export default {
         this.showButton = true
         this.bizIdCode = this.$route.query.projectId.bizId
         this.idCode = this.$route.query.projectId.id
-        this.pro = { projectId: this.idCode, bizId: this.fromCreateData.bizId }
+        this.pro = { projectId: this.idCode, bizId: this.bizIdCode }
       }
 
       bugDailyList(this.pro).then(res => {
@@ -219,9 +222,6 @@ export default {
       this.TestProgress.txt.html(this.fromCreateData.testExplain)
       this.projectProgress.txt.html(this.fromCreateData.problemRisks)
     },
-    getContent3(ele) {
-      this.bugExplain = ele
-    },
 
     // 返回
     open(ele) {
@@ -236,21 +236,25 @@ export default {
 
     // 新建bug提交
     getCreateData(ele) {
-      console.log(ele)
       this.$refs['fromCreateData'].validate((valid) => {
         if (valid) {
           this.fromCreateData = ele
           typeof (this.TestProgress) === 'string' ? this.fromCreateData.testExplain = this.TestProgress : ''
-          typeof (this.bugExplain) === 'string' ? this.fromCreateData.bugExplain = this.bugExplain : ''
           typeof (this.projectProgress) === 'string' ? this.fromCreateData.problemRisks = this.projectProgress : ''
           // this.fromCreateData.taskId !== '' ? this.fromCreateData.taskId = this.idCode : this.fromCreateData.projectId = this.idCode
           if (this.$route.query.task) { // 任务页面
             this.fromCreateData.taskId = this.idCode
-            this.fromCreateData.bizId = this.$route.query.task.bizId
+            this.fromCreateData.bizId = this.bizIdCode
           }
           if (this.$route.query.projectId) { // 项目页面
             this.fromCreateData.projectId = this.idCode
-            this.fromCreateData.bizId = this.$route.query.projectId.bizId
+            this.fromCreateData.bizId = this.bizIdCode
+          }
+
+          if (this.$route.query.state) { // 项目主页面新建
+            this.fromCreateData.projectId = this.idCode
+            this.fromCreateData.bizId = this.bizIdCode
+            this.$route.query.state.typeString === 1 ? this.fromCreateData.projectId = this.idCode : this.fromCreateData.taskId = this.idCode
           }
 
           this.fromCreateData.bizId = this.bizIdCode
@@ -273,9 +277,9 @@ export default {
     // 更新bug提交
     getQueryData(ele) {
       this.fromCreateData = ele
+      this.fromCreateData.taskId === 0 ? this.fromCreateData.taskId = '' : ''
+      this.fromCreateData.projectId === 0 ? this.fromCreateData.projectId = '' : ''
       typeof (this.TestProgress) === 'string' ? this.fromCreateData.testExplain = this.TestProgress : ''
-      typeof (this.bugExplain) === 'string' ? this.fromCreateData.bugExplain = this.bugExplain : ''
-      // this.fromCreateData.bugExplain = this.bugExplain
       typeof (this.projectProgress) === 'string' ? this.fromCreateData.problemRisks = this.projectProgress : ''
       this.userData = { id: '', ename: this.userInformation, name: this.userNames }
       this.objData = { dailyTestReport: this.fromCreateData, user: this.userData }
@@ -302,9 +306,6 @@ export default {
         this.showbut = '2'
       }
     },
-    hahh(e) {
-      console.log(e)
-    },
     createDateNode() {
 
     }
@@ -313,31 +314,29 @@ export default {
 </script>
 
 <style scoped>
-  .el-form-item {
-    margin: 20px 0;
-    background: #ccc;
-    border-radius: 4px;
-    padding:2px;
-  }
-  .el-col {
-    white-space:nowrap;
+  .eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
   }
   .backStyle {
-    background: #ccc;
+    font-size: 19px;
+    font-weight: bold;
     border-radius: 4px;
-    padding:2px;
+    margin: 1% 0;
   }
   .btn {
     margin: 0 90px 0 0;
     border: none;
   }
   .toolbar {
-     width: 79vw;
-    border: 2px solid #ccc;
+    /* width: 86vw; */
+    border: 2px solid #DEE2E7;
   }
   .text {
-    width: 79vw;
-    border: 2px solid #ccc;
+    /* width: 86vw; */
+    border: 2px solid #DEE2E7;
     height: auto;
     font-size: 15px;
     color: #606266
@@ -345,7 +344,6 @@ export default {
   .time_line_box{
     position: relative;
     height: auto;
-    /* overflow: hidden; */
     }
     .time_line{
     position: absolute;
@@ -363,7 +361,7 @@ export default {
     text-align: center;
     font-size: 13px;
     padding-bottom: 35px;
-    color: green;
+    color: #409EFF;
     }
     .order_item:after{
     content: '';

+ 62 - 50
src/views/Platform/presentation/ResultPage.vue

@@ -7,27 +7,21 @@
     </div>
     <template>
       <el-table :data="tableData" fit border style="width: 100%">
-        <el-table-column label="报告名称" width="200" align="center">
+        <el-table-column label="报告名称" width="300" align="center">
           <template slot-scope="scope">
             <a href="javascript:void(0)" style="color:#20a0ff" @click="toReportView(tableData, scope.row.id)">{{ scope.row.reportName }}</a>
           </template>
         </el-table-column>
-        <el-table-column label="报告人" width="180" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.ownner }}</span>
-          </template>
+        <el-table-column label="报告人" width="200" align="center">
+          <template slot-scope="scope">{{ scope.row.ownner }}</template>
         </el-table-column>
-        <el-table-column label="日期" width="240" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.gmtCreate }}</span>
-          </template>
+        <el-table-column label="日期" width="200" align="center">
+          <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
         </el-table-column>
-        <el-table-column label="状态" width="180" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.statusString }}</span>
-          </template>
+        <el-table-column label="状态" width="200" align="center">
+          <template slot-scope="scope">{{ scope.row.statusString }}</template>
         </el-table-column>
-        <el-table-column label="操作" align="center" fixed="right" min-width="210">
+        <el-table-column label="操作" align="center" fixed="right" min-width="230">
           <template slot-scope="scope">
             <el-button size="mini" @click="queryPresentation(scope.row)">更新</el-button>
             <el-tooltip content="功能正在实现中···" placement="top">
@@ -38,22 +32,17 @@
         </el-table-column>
       </el-table>
     </template>
-    <el-pagination
-      style="margin-top:30px;"
-      align="center"
-      :current-page="curIndex"
-      :page-sizes="[20, 30, 50]"
-      :page-size="pageSize"
-      layout="total, sizes, prev, pager, next, jumper"
-      :total="total"
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-    />
-    <el-dialog title="提示" :visible.sync="centerDialogVisible" width="30%" center>
-      选择任务 :
-      <el-select v-model="states" filterable placeholder="搜索" style="width:80%;" @change="handleSelect($event)">
-        <el-option v-for="item in restaurants" :key="item.id" :label="item.value" :value="item.id" />
-      </el-select>
+    <el-pagination style="margin-top:30px;" align="center" :current-page="curIndex" :page-sizes="[20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+    <el-dialog title="选择任务" :visible.sync="centerDialogVisible" width="30%" center @close="closeChange">
+      <div style="text-align:text;margin:10px 0;">
+        <el-button ref="btn1" size="mini" @click="getQueryData(1)">项目</el-button>
+        <el-button ref="btn2" size="mini" @click="getQueryData(2)">任务</el-button>
+      </div>
+      <div>
+        <el-select v-model="states" filterable placeholder="请选择项目还是任务" style="width:100%;">
+          <el-option v-for="item in restaurants" :key="item.id" :label="item.value" :value="item.id" />
+        </el-select>
+      </div>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="selectionReport(states)">创建</el-button>
       </span>
@@ -83,7 +72,6 @@ export default {
         pageSize: 20,
         curIndex: 1
       },
-      mun: '',
       tableData: [{}]
     }
   },
@@ -113,6 +101,7 @@ export default {
       }
       this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: this.haha.haha }})
     },
+
     // 删除报告
     delePresentation(e) {
       this.$confirm('是否确认删除', '确认信息', {
@@ -121,7 +110,6 @@ export default {
         cancelButtonText: '取消'
       })
         .then(() => {
-          console.log(e)
           this.userData = { id: '', ename: this.userInformation, name: this.userNames }
           projectTestReportDelete(this.userData, e).then(res => {
             this.getList()
@@ -142,23 +130,21 @@ export default {
           break
       }
     },
+
+    // 主页创建准出跳转
     selectionReport(e) {
       if (this.states !== '') {
         for (var ele of this.restaurants) {
           if (e === ele.id) {
-            var type = ele.type
+            var type = ele
           }
         }
-        console.log(type)
-        switch (type) {
-          case 1:
-            this.centerDialogVisible = false
-            this.$router.push({ path: '/Platform/presentation/ClientAcceptance', query: { id: this.mun }})
-            break
-          case 2:
-            this.centerDialogVisible = false
-            this.$router.push({ path: '/Platform/presentation/Acceptance', query: { id: this.mun }})
-            break
+        if (type.type === 5) {
+          // this.centerDialogVisible = false
+          this.$router.push({ path: '/Platform/presentation/Acceptance', query: { projectData: type }}) // 服务端
+        } else {
+          // this.centerDialogVisible = false
+          this.$router.push({ path: '/Platform/presentation/ClientAcceptance', query: { projectData: type }}) // 客户端
         }
       } else {
         this.centerDialogVisible = true
@@ -166,23 +152,49 @@ export default {
         return false
       }
     },
-    getQueryData() {
+
+    // 切换项目任务
+    getQueryData(e) {
+      this.restaurants = []
+      this.states = ''
       taskListCreate({ status: 7 }).then(res => {
         const arr = []
-        for (var ele of res.data) {
-          arr.push({ value: ele.name, id: ele.id, type: ele.type })
+        switch (e) {
+          case 1:
+            for (var ele of res.data.projectInfoList) {
+              arr.push({ value: ele.name, id: ele.id, type: ele.platForm, bizId: ele.bizId, typeString: e })
+            }
+            this.restaurants = arr
+            this.$refs['btn1'].$el.style.background = '#409EFF'
+            this.$refs['btn1'].$el.style.color = '#ffffff'
+            this.$refs['btn2'].$el.style.background = '#FFFFFF'
+            this.$refs['btn2'].$el.style.color = '#606266'
+            break
+          case 2:
+            for (var vel of res.data.taskInfoList) {
+              arr.push({ value: vel.name, id: vel.id, type: vel.type, bizId: vel.bizId, typeString: e })
+            }
+            this.restaurants = arr
+            this.$refs['btn1'].$el.style.background = '#FFFFFF'
+            this.$refs['btn1'].$el.style.color = '#606266'
+            this.$refs['btn2'].$el.style.background = '#409EFF'
+            this.$refs['btn2'].$el.style.color = '#ffffff'
         }
-        this.restaurants = arr
       })
     },
+
+    // dialog关闭回调
+    closeChange() {
+      this.$refs['btn1'].$el.style.background = '#FFFFFF'
+      this.$refs['btn1'].$el.style.color = '#606266'
+      this.$refs['btn2'].$el.style.background = '#FFFFFF'
+      this.$refs['btn2'].$el.style.color = '#606266'
+    },
     createFilter(queryString) {
       return (restaurant) => {
         return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
       }
     },
-    handleSelect(event) {
-      this.mun = event
-    },
     clickQuery(e) {
       projectTestReportList({ reportName: e }).then(res => {
         this.tableData = res.data

+ 131 - 163
src/views/Platform/presentation/ResultPageyL.vue

@@ -1,173 +1,139 @@
 <template>
-  <div>
-    <!-- 准出预览 -->
-    <div v-if="towShow">
-      <el-form :inline="true" :model="ClientData" style="margin:0%;7%">
-        <el-row :gutter="20">
-          <el-col :span="12" :offset="16" style="margin-top:30px;"><div><el-button icon="el-icon-message" size="mini" @click="promptEmail(ClientData)">发送报告</el-button><el-button icon="el-icon-check" size="mini" style="margin-left:10px;" @click="download()">下载测试报告</el-button></div></el-col>
-        </el-row>
-        <div id="resumeId" style="padding:0% 9%;">
-          <el-row :gutter="20">
-            <el-col :span="13">
-              <span style="font-size:27px;">{{ ClientData.reportName }}</span>
-              <span style="margin-left:100px">by <span style="font-weight:bold;margin-left: 10px"> {{ ClientData.ownner }}</span></span><br>
-            </el-col>
-          </el-row>
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3% 3% 8% 3%; border-radius: 8px; overflow: hidden;">
+      <!-- 准出预览 -->
+      <div v-if="towShow">
+        <div id="resumeId" style="padding: 3% 6%; color: #333B4A;">
+          <div style="display: flex; font-size: 19px;  white-space: nowrap; font-weight: bold;">
+            <span style="flex:1;">{{ ClientDatayl.reportName }}</span>
+            <span style="flex:1;">by : {{ ClientDatayl.ownner }}
+              <el-button type="primary" size="mini" style="margin:0 2% 0 45%;" @click="promptEmail(ClientDatayl)">发送报告</el-button>
+              <el-button size="mini" @click="download()">下载测试报告</el-button>
+            </span>
+          </div>
+          <div style="margin: 2% 0 1% 0; font-size: 19px; font-weight: bold;">一. 项目概述</div><br>
+          <div style="display:flex;">
+            <div style="flex:1">
+              <div class="marage">测试结果 : <span :style="status1">{{ status }}</span></div><br>
+              <div class="marage">开发人员 : {{ ClientDatayl.developer }}</div><br>
+              <div class="marage">开发周期 : {{ ClientDatayl.devTimeEnd }} 至 {{ ClientDatayl.devTimeStart }}</div><br>
+              <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 class="marage">测试人员 : {{ ClientDatayl.tester }}</div><br>
+              <div class="marage">测试周期 : {{ ClientDatayl.testTimeEnd }} 至 {{ ClientDatayl.testTimeStart }} </div><br>
+              <div v-show="showDelay1" class="marage">延期原因 : {{ ClientDatayl.taskLateReason }}</div>
+            </div>
+          </div>
 
-          <span class="titleStyle" style="margin-top: 100px;">一、项目概述</span><br>
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="测试结果:"><span :style="status1">{{ status }}</span></el-form-item><br>
-              <el-form-item v-show="showDelay" label="准入结果 :">{{ ClientData.smokeTestResult }}</el-form-item>
-            </el-col>
-          </el-row>
+          <div class="titleStyle">二. 项目背景</div><br>
 
-          <el-row :gutter="23">
-            <el-col :span="23">
-              <el-form-item label="开发人员 :">{{ ClientData.developer }}</el-form-item><br>
-              <el-form-item label="开发周期 :">{{ ClientData.devTimeEnd }} 至 {{ ClientData.devTimeStart }}</el-form-item>
-            </el-col>
-          </el-row>
+          <div class="rich" v-html="editorElem" />
 
-          <el-row :gutter="23">
-            <el-col :span="23">
-              <el-form-item label="测试人员 :">{{ ClientData.tester }}</el-form-item><br>
-              <el-form-item label="测试周期 :">{{ ClientData.testTimeEnd }} 至 {{ ClientData.testTimeStart }} </el-form-item>
-            </el-col>
-          </el-row>
+          <div class="titleStyle">三. 模块信息</div>
 
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="准出延期 :"><span :style="taskLateDisabled">{{ taskLateStatus }}</span></el-form-item><br>
-              <el-form-item v-show="showDelay1" label="延期原因 :">{{ ClientData.taskLateReason }}</el-form-item>
-            </el-col>
-          </el-row>
-          <br>
+          <div class="marage">1、模块信息</div>
 
-          <span class="titleStyle">二、项目背景</span><br>
+          <div class="rich" v-html="editorElems" />
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorElem" /></el-col></el-row>
+          <div class="marage">2、本期功能</div>
 
-          <span class="titleStyle">三、模块信息</span>
+          <div class="rich" v-html="editorFrom" />
 
-          <div class="titStyle">1、模块信息</div>
+          <div class="marage">3、风险点</div>
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorElems" /></el-col></el-row>
+          <div class="rich" v-html="editorF" />
 
-          <div class="titStyle">2、本期功能</div>
+          <div class="marage">4、缺陷分析</div>
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorFrom" /></el-col></el-row>
+          <div class="rich" v-html="editorData" />
 
-          <div class="titStyle">3、风险点</div>
+          <div class="titleStyle">四. 测试项</div>
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorF" /></el-col></el-row>
+          <div class="marage">1、功能测试</div>
 
-          <div class="titStyle">4、缺陷分析</div>
+          <div class="rich" v-html="editorEl" />
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorData" /></el-col></el-row>
+          <div class="marage">2、可靠性测试</div>
 
-          <span class="titleStyle">四、测试项</span>
+          <div class="rich" v-html="editorEle" />
 
-          <div class="titStyle">1、功能测试</div>
+          <div class="marage">3、稳定性测试</div>
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorEl" /></el-col></el-row>
+          <div class="rich" v-html="editorSix" />
 
-          <div class="titStyle">2、可靠性测试</div>
+          <div class="marage">4、安全性测试</div>
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorEle" /></el-col></el-row>
+          <div class="rich" v-html="editorEight" />
 
-          <div class="titStyle">3、稳定性测试</div>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorSix" /></el-col></el-row>
-
-          <div class="titStyle">4、安全性测试</div>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorEight" /></el-col></el-row>
-
-          <div class="titStyle">5、线上监控</div>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorNine" /></el-col></el-row>
+          <div class="marage">5、线上监控</div>
 
+          <div class="rich" v-html="editorNine" />
         </div>
-      </el-form>
-    </div>
-
-    <div v-if="oneShow">
-      <el-form :inline="true" :model="ClientData" style="margin:0%;7%">
-        <el-row :gutter="20">
-          <el-col :span="12" :offset="16" style="margin-top:30px;"><div><el-button icon="el-icon-message" size="mini" @click="promptEmail1(ClientData)">发送报告</el-button><el-button icon="el-icon-check" size="mini" style="margin-left:10px;" @click="download1()">下载测试报告</el-button></div></el-col>
-        </el-row>
-        <div id="resumeId1" style="padding:0% 9%;">
-          <el-row>
-            <el-col>
-              <span style="font-size:27px;">{{ ClientData.reportName }}</span>
-              <span style="margin-left:100px">by <span style="font-weight:bold;margin-left: 10px"> {{ ClientData.ownner }}</span></span><br>
-            </el-col>
-          </el-row>
+      </div>
 
-          <span class="titleStyle" style="margin-top: 50px;">一、项目概述</span><br>
+      <div v-if="oneShow">
+        <div id="resumeId1" style="padding: 3% 6%; color: #333B4A;">
+          <div style="display: flex; font-size: 19px;  white-space: nowrap; font-weight: bold;">
+            <span style="flex:1;">{{ ClientDatayl.reportName }}</span>
+            <span style="flex:1;">by : {{ ClientDatayl.ownner }}
+              <el-button type="primary" size="mini" style="margin:0 2% 0 45%;" @click="promptEmail1(ClientDatayl)">发送报告</el-button>
+              <el-button size="mini" @click="download1()">下载测试报告</el-button>
+            </span>
+          </div>
+          <div style="margin: 2% 0 1% 0; font-size: 19px; font-weight: bold;">一、项目概述</div><br>
+          <div style="display:flex;">
+            <div style="flex:1">
+              <div class="marage">测试结果 : <span :style="status1">{{ status }}</span></div><br>
+              <div class="marage">开发人员 : {{ ClientDatayl.developer }}</div><br>
+              <div class="marage">开发周期 : {{ ClientDatayl.devTimeEnd }} 至 {{ ClientDatayl.devTimeStart }}</div><br>
+              <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 class="marage">测试人员 : {{ ClientDatayl.tester }}</div><br>
+              <div class="marage">测试周期 : {{ ClientDatayl.testTimeEnd }} 至 {{ ClientDatayl.testTimeStart }} </div><br>
+              <div v-show="showDelay1" class="marage">延期原因 : {{ ClientDatayl.taskLateReason }}</div>
+            </div>
+          </div>
 
-          <el-row>
-            <el-col>
-              <el-form-item label="测试结果 :"><span :style="status1">{{ status }}</span></el-form-item><br>
-              <el-form-item v-show="showDelay" label="准入结果 :">{{ ClientData.smokeTestResult }}</el-form-item>
-            </el-col>
-          </el-row>
+          <div class="titleStyle">二. 项目背景</div>
 
-          <el-row :gutter="23">
-            <el-col :span="23">
-              <el-form-item label="开发人员 :">{{ ClientData.developer }}</el-form-item><br>
-              <el-form-item label="开发周期 :">{{ ClientData.devTimeEnd }} 至 {{ ClientData.devTimeStart }}</el-form-item>
-            </el-col>
-          </el-row>
+          <div class="rich" v-html="editorElem1" />
 
-          <el-row :gutter="23">
-            <el-col :span="23">
-              <el-form-item label="测试人员 :">{{ ClientData.tester }}</el-form-item><br>
-              <el-form-item label="测试周期 :">{{ ClientData.testTimeEnd }} 至 {{ ClientData.testTimeStart }} </el-form-item>
-            </el-col>
-          </el-row>
+          <div class="titleStyle">三. 测试项</div>
 
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="准出延期 :"><span :style="taskLateDisabled">{{ taskLateStatus }}</span></el-form-item><br>
-              <el-form-item v-show="showDelay1" label="延期原因">{{ ClientData.taskLateReason }}</el-form-item>
-            </el-col>
-          </el-row>
+          <p>功能测试 : <span style="margin-left:40px;" :style="pftResult1">{{ pftResult }}</span></p>
 
-          <span class="titleStyle">二、项目背景</span>
+          <div class="rich" v-html="editorElems1" />
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorElem1" /></el-col></el-row>
+          <p>兼容测试 : <span style="margin-left:40px;" :style="sctResult1">{{ sctResult }}</span></p>
 
-          <span class="titleStyle">三、测试项</span>
+          <div class="rich" v-html="editorFrom1" />
 
-          <p>功能测试<span style="margin-left:40px;" :style="pftResult1">{{ pftResult }}</span></p>
+          <div class="titleStyle">四. 产品验收</div>
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorElems1" /></el-col></el-row>
+          <p>验收结果 : <span style="margin-left:40px;" :style="acceptanceResult1">{{ acceptanceResult }}</span></p>
 
-          <p>功能测试<span style="margin-left:40px;" :style="sctResult1">{{ sctResult }}</span></p>
+          <div class="rich" v-html="editorFro" />
 
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorFrom1" /></el-col></el-row>
+          <div class="titleStyle">五. bug指标</div>
 
-          <span class="titleStyle">四、产品验收</span>
-
-          <p>功能测试<span style="margin-left:40px;" :style="acceptanceResult1">{{ acceptanceResult }}</span></p>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorFro" /></el-col></el-row>
-
-          <span class="titleStyle">五、bug指标</span>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="editorEle1" /></el-col></el-row>
+          <div class="rich" v-html="editorEle1" />
         </div>
-      </el-form>
+      </div>
+      <div align="center">
+        <el-button style="margin:02% 0%;" @click="open()"> 返 回 </el-button>
+      </div>
     </div>
-    <el-button type="info" style="float:right; margin:2% 50%;" @click="open()"> 返 回 </el-button>
   </div>
 </template>
 
 <script>
 import { projectTestReportSendmail } from '@/api/ResultPage'
 import html2canvas from 'html2canvas'
+
 export default {
   name: 'ResultPageyL',
   data() {
@@ -175,7 +141,7 @@ export default {
       showDelay: false,
       showDelay1: false,
       taskLateStatus: '',
-      taskLateDisabled1: '',
+      taskLateDisabled1: { color: '' },
       taskLateDisabled: { color: 'red' },
       pftResult1: { colocr: 'green' },
       sctResult1: { colocr: 'green' },
@@ -188,7 +154,7 @@ export default {
       oneShow: false,
       showDisabled: true,
       showDisabled1: true,
-      ClientData: {},
+      ClientDatayl: {},
       editorElem: '',
       editorElem1: '',
       editorElems: '',
@@ -212,30 +178,30 @@ export default {
   methods: {
     getRouterData() {
       if (this.$route.query.data) {
-        this.ClientData = this.$route.query.data
-        this.editorElem1 = this.ClientData.projectBackground
-        this.editorElems1 = this.ClientData.fctInfo
-        this.editorFrom1 = this.ClientData.sctInfo
-        this.editorFro = this.ClientData.acceptanceResultInfo
-        this.editorEle1 = this.ClientData.bugTarget
-        this.editorElem = this.ClientData.projectBackground
-        this.editorElems = this.ClientData.moduleInfo
-        this.editorFrom = this.ClientData.functionInfo
-        this.editorF = this.ClientData.onlineRisk
-        this.editorEle = this.ClientData.rqtInfo
-        this.editorData = this.ClientData.bugInfo
-        this.editorEl = this.ClientData.fctInfo
-        this.editorSix = this.ClientData.pftInfo
-        this.editorEight = this.ClientData.safeResultInfo
-        this.editorNine = this.ClientData.moniterResultInfo
-        if (this.ClientData.type === 2) {
+        this.ClientDatayl = this.$route.query.data
+        this.editorElem1 = this.ClientDatayl.projectBackground
+        this.editorElems1 = this.ClientDatayl.fctInfo
+        this.editorFrom1 = this.ClientDatayl.sctInfo
+        this.editorFro = this.ClientDatayl.acceptanceResultInfo
+        this.editorEle1 = this.ClientDatayl.bugTarget
+        this.editorElem = this.ClientDatayl.projectBackground
+        this.editorElems = this.ClientDatayl.moduleInfo
+        this.editorFrom = this.ClientDatayl.functionInfo
+        this.editorF = this.ClientDatayl.onlineRisk
+        this.editorEle = this.ClientDatayl.rqtInfo
+        this.editorData = this.ClientDatayl.bugInfo
+        this.editorEl = this.ClientDatayl.fctInfo
+        this.editorSix = this.ClientDatayl.pftInfo
+        this.editorEight = this.ClientDatayl.safeResultInfo
+        this.editorNine = this.ClientDatayl.moniterResultInfo
+        if (this.ClientDatayl.type === 2) {
           this.towShow = true
           this.oneShow = false
         } else {
           this.oneShow = true
           this.towShow = false
         }
-        if (this.ClientData.status === 1) {
+        if (this.ClientDatayl.status === 1) {
           this.status = '通过'
           this.showDelay = true
         } else {
@@ -243,24 +209,24 @@ export default {
           this.status1.color = 'red'
           this.showDelay = false
         }
-        if (this.ClientData.taskLateStatus === 1) {
-          this.taskLateStatus = '是'
+        if (this.ClientDatayl.taskLateStatus === 1) {
+          this.ClientDatayl.taskLateStatus = '是'
           this.showDelay1 = true
         } else {
-          this.taskLateStatus = '否'
+          this.ClientDatayl.taskLateStatus = '否'
           this.showDelay1 = false
           this.taskLateDisabled1.color = 'green'
         }
-        switch (this.ClientData.pftResult) {
+        switch (this.ClientDatayl.pftResult) {
           case 1: this.pftResult = '通过'; this.pftResult1.color = 'green'; break
           case 2: this.pftResult = '未通过'; this.pftResult1.color = 'red'; break
           case 3: this.pftResult = '未执行'; this.pftResult1.color = 'Orange'; break
         }
-        switch (this.ClientData.sctResult) {
+        switch (this.ClientDatayl.sctResult) {
           case 1: this.sctResult = '测试通过'; this.sctResult1.color = 'green'; break
           case 2: this.sctResult = '测试未通过'; this.sctResult1.color = 'red'; break
         }
-        switch (this.ClientData.acceptanceResult) {
+        switch (this.ClientDatayl.acceptanceResult) {
           case 1: this.acceptanceResult = '通过'; this.acceptanceResult1.color = 'green'; break
           case 2: this.acceptanceResult = '未通过'; this.acceptanceResult1.color = 'red'; break
           case 3: this.acceptanceResult = '未执行'; this.acceptanceResult1.color = 'Orange'; break
@@ -273,6 +239,7 @@ export default {
     download1() {
       this.getPdf('resumeId1', this.name)
     },
+
     promptEmail(e) {
       this.$prompt('请输入邮箱', '提示', {
         confirmButtonText: '确定',
@@ -311,7 +278,6 @@ export default {
       html2canvas(shareContent, opts).then(function(canvas) {
         // 从 canvas 提取图片数据
         var imgData = canvas.toDataURL('image/png')
-        console.log(imgData)
         var sendImgData = imgData.substring(imgData.indexOf(',') + 1)
         var postData = { 'reportId': ele.id, 'imgStr': sendImgData, 'url': window.location.href, 'emailUser': e }
         projectTestReportSendmail(postData).then(res => {
@@ -351,20 +317,22 @@ export default {
 </script>
 
 <style scoped>
-  .el-col {
-    white-space:nowrap;
+  .marage {
+    margin: 1% 0;
   }
-  .el-form-item {
-    margin: -5px 0;
+  .eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
   }
   .titleStyle {
-    color: #000000;
-    background: #ccc;
-    line-height: 40px;
-    padding-right: 40px;
-    font-size: 15px;
+    color: #333B4A;
+    margin: 2% 0;
+    font-size: 19px;
+    font-weight: bold;
   }
- .rich>>> table tr td{border:1px solid #ccc;font-size: 15px; color: #606266}
-  .rich>>> table th{border:1px solid #ccc; font-size: 15px; color: #606266}
+  .rich>>> table tr td{border:1px solid #ccc;font-size: 15px; color: #606266}
+  .rich>>> table th{border:1px solid #ccc; font-size: 15px; background: #F0F7FF; color: #606266}
   .rich>>> table {border:1px solid #ccc; border-collapse: collapse;line-height: 30px; text-align: center;font-size: 15px; color: #606266}
 </style>

+ 0 - 208
src/views/Platform/presentation/defectManageQuery.vue

@@ -1,208 +0,0 @@
-<template>
-  <div style="margin:2% 9%;">
-    <el-tabs tab-position="top" stretch style="height: auto;">
-      <el-tab-pane label=" 查 看 ">
-        <el-form :model="form" size="mini">
-          <div style="display:flex;">
-            <div style="flex:1">
-              <el-form-item label="主题 : " :label-width="formLabelWidth1">{{ form.bugName }}</el-form-item>
-              <el-form-item label="任务 : " class="styline" :label-width="formLabelWidth1">{{ form.projectName }}</el-form-item>
-              <el-form-item label="级别 : " :label-width="formLabelWidth1">{{ form.priority }}</el-form-item>
-              <el-form-item label="reopen的次数 : " :label-width="formLabelWidth1">{{ form.reopenTimes }}</el-form-item>
-              <el-form-item label="bug状态 : " :label-width="formLabelWidth1">{{ form.status }}</el-form-item>
-              <el-form-item label="bug类型 : " :label-width="formLabelWidth1">{{ form.bugType }}</el-form-item>
-              <el-form-item label="bug描述 : " :label-width="formLabelWidth1">{{ form.bugDescribe }}</el-form-item>
-              <el-form-item v-show="statusShow" label="问题原因和修复方法" :label-width="formLabelWidth">{{ form.reasonsAndSolutionForTheProblem }}</el-form-item>
-              <el-form-item label="问题原因 : " :label-width="formLabelWidth1">{{ form.reason }}</el-form-item>
-              <el-form-item label="平台类型 : " :label-width="formLabelWidth1">{{ form.platformType }}</el-form-item>
-              <el-form-item label="所处阶段 : " :label-width="formLabelWidth1">{{ form.stage }}</el-form-item>
-              <el-form-item label="发现方法 : " :label-width="formLabelWidth1">{{ form.discoveryMethod }}</el-form-item>
-              <el-form-item v-show="repairShow" label="修复结果 : " :label-width="formLabelWidth1">{{ form.repairResult }}</el-form-item>
-              <el-form-item label="os类型 : " :label-width="formLabelWidth1">{{ form.osType }}</el-form-item>
-              <el-form-item label="机型 : " :label-width="formLabelWidth1">{{ form.model }}</el-form-item>
-              <el-form-item label="网络类型 : " :label-width="formLabelWidth1">{{ form.networkType }}</el-form-item>
-              <el-form-item label="SDK版本 : " :label-width="formLabelWidth1">{{ form.sdkVersion }}</el-form-item>
-              <el-form-item label="app版本号 : " :label-width="formLabelWidth1">{{ form.appVersion }}</el-form-item>
-              <el-form-item label="地图类型 : " :label-width="formLabelWidth1">{{ form.mapType }}</el-form-item>
-              <el-form-item label="地图版本号 : " :label-width="formLabelWidth1">{{ form.mapVersion }}</el-form-item>
-              <el-form-item label="附件 : " :label-width="formLabelWidth1">{{ form.accessory }}</el-form-item>
-            </div>
-            <div style="flex:1; margin-left:30px;">
-              <el-form-item label="bug责任人 : " :label-width="formLabelWidth1">{{ form.assigner }}</el-form-item>
-              <el-form-item label="bug创建人 : " :label-width="formLabelWidth1">{{ form.creator }}</el-form-item>
-              <el-form-item label="bug处理人 : " :label-width="formLabelWidth1">{{ form.currentHandler }}</el-form-item>
-              <el-form-item label="开始开发时间 : " :label-width="formLabelWidth1">{{ form.startDevTime }}</el-form-item>
-              <el-form-item label="开始等待测试时间 : " :label-width="formLabelWidth1">{{ form.waitTestTime }}</el-form-item>
-              <el-form-item label="创建时间 : " :label-width="formLabelWidth1">{{ form.gmtCreate }}</el-form-item>
-            </div>
-          </div>
-          <el-form-item label="caseID" :label-width="formLabelWidth">{{ form.caseId }}</el-form-item>
-        </el-form>
-        <div align="center">
-          <el-button type="primary" @click="clickOut">返回bug主页</el-button>
-        </div>
-      </el-tab-pane>
-      <el-tab-pane label=" 编 辑 ">
-        <el-form :model="form">
-          <el-form-item label="任务" :label-width="formLabelWidth" right>
-            <el-select v-model="form.taskId" placeholder="任务" style="width:20%;">
-              <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="主题" prop="bugName" :label-width="formLabelWidth"><el-input v-model="form.bugName" autocomplete="off" style="width:86%;" /></el-form-item>
-          <el-form-item label="bug描述" prop="bugDescribe" :label-width="formLabelWidth"><el-input v-model="form.bugDescribe" type="textarea" placeholder="bug描述" rows="4" style="width:86%;" /></el-form-item>
-          <div style="display:flex;">
-            <div style="flex:1">
-              <el-form-item label="bug类型" prop="bugType" :label-width="formLabelWidth">
-                <el-select v-model="form.bugType" placeholder="bug类型">
-                  <el-option v-for="item in bugTypeStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="级别" prop="priority" :label-width="formLabelWidth">
-                <el-select v-model="form.priority" placeholder="级别">
-                  <el-option v-for="item in bugLevelStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="状态" prop="status" :label-width="formLabelWidth">
-                <el-select v-model="form.status" placeholder="状态">
-                  <el-option v-for="item in bugStatusStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="bug责任人" prop="assigner" :label-width="formLabelWidth"><el-input v-model="form.assigner" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="发现方法" :label-width="formLabelWidth">
-                <el-select v-model="form.discoveryMethod" placeholder="发现方法">
-                  <el-option v-for="item in discoveryMethodStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="os类型" :label-width="formLabelWidth"><el-input v-model="form.osType" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="机型" :label-width="formLabelWidth"><el-input v-model="form.model" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="网络类型" :label-width="formLabelWidth"><el-input v-model="form.networkType" autocomplete="off" style="width:58%;" /></el-form-item>
-
-              <el-form-item v-show="statusShow" label="问题原因和修复方法" :label-width="formLabelWidth"><el-input v-model="form.reasonsAndSolutionForTheProblem" type="textarea" placeholder="问题原因和修复方法" rows="4" style="width:58%;" /></el-form-item>
-            </div>
-            <div style="flex:1; margin-left:15%; ">
-              <el-form-item label="平台类型" prop="platformType" :label-width="formLabelWidth">
-                <el-select v-model="form.platformType" placeholder="平台类型">
-                  <el-option v-for="item in platformTypeStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="所处阶段" prop="stage" :label-width="formLabelWidth">
-                <el-select v-model="form.stage" placeholder="所处阶段">
-                  <el-option v-for="item in stageStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="bug处理人" prop="currentHandler" :label-width="formLabelWidth"><el-input v-model="form.currentHandler" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="问题原因" :label-width="formLabelWidth">
-                <el-select v-model="form.reason" placeholder="问题原因">
-                  <el-option v-for="item in reasonStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="app版本号" :label-width="formLabelWidth"><el-input v-model="form.appVersion" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="地图类型" :label-width="formLabelWidth"><el-input v-model="form.mapType" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="地图版本号" :label-width="formLabelWidth"><el-input v-model="form.mapVersion" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item label="SDK版本" :label-width="formLabelWidth"><el-input v-model="form.sdkVersion" autocomplete="off" style="width:58%;" /></el-form-item>
-              <el-form-item v-show="repairShow" label="修复结果" :label-width="formLabelWidth">
-                <el-select v-model="form.repairResult" placeholder="发现方法">
-                  <el-option v-for="item in repairResultStr" :key="item.name" :label="item.name" :value="item.name" />
-                </el-select>
-              </el-form-item>
-            </div>
-          </div>
-        </el-form>
-        <div align="center">
-          <el-button type="primary" @click="clickOut">返回bug主页</el-button>
-          <el-button type="primary" @click="queryFormData(form)">确 定</el-button>
-        </div>
-      </el-tab-pane>
-    </el-tabs>
-  </div>
-</template>
-
-<script>
-import { bugGet, bugUpdate, taskListCreate, bugGetEnum } from '@/api/defectManage'
-export default {
-  name: 'DefectManageQuery',
-  data() {
-    return {
-      bugTypeStr: [],
-      bugStatusStr: [],
-      bugLevelStr: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
-      reasonStr: [],
-      platformTypeStr: [],
-      stageStr: [],
-      discoveryMethodStr: [],
-      repairResultStr: [],
-      userInformation: localStorage.getItem('username'),
-      userNames: localStorage.getItem('realname'),
-      bizJson: localStorage.getItem('key'),
-      form: {},
-      statusShow: false,
-      repairShow: false,
-      formLabelWidth: '150px',
-      formLabelWidth1: '140px',
-      objData: '',
-      userData: '',
-      taskIdStr: '',
-      url: '',
-      arrurl: ''
-    }
-  },
-  created() {
-    this.getList()
-    this.bugListSelect()
-  },
-  mounted() {
-    this.getQueryData()
-  },
-  methods: {
-    getList() {
-      if (this.$route.query.data) {
-        this.form = this.$route.query.data
-      } else {
-        this.url = window.location.href // 获取url中"?"符后的字串
-        this.arrurl = this.url.split('?id=')
-        bugGet(this.arrurl[1]).then(res => {
-          this.form = res.data
-        })
-      }
-    },
-    bugListSelect() {
-      bugGetEnum().then(res => {
-        this.bugStatusStr = res.data.bugEnumList
-        this.stageStr = res.data.bugStageEnumList
-        this.reasonStr = res.data.reasonEnumList
-        this.platformTypeStr = res.data.platformTypeEnumList
-        this.bugTypeStr = res.data.bugTypeEnumList
-        this.bugLevelStr = res.data.priorityEnumList
-        this.discoveryMethodStr = res.data.discoveryMethodEnumList
-        this.repairResultStr = res.data.repairResultEnumList
-      })
-    },
-    getQueryData() {
-      this.$route.query.code === 4 ? this.queryCode.taskId = this.$route.query.id : ''
-      this.bizJson = localStorage.getItem('key')
-      taskListCreate({ bizId: this.bizJson }).then(res => {
-        console.log(res)
-        this.taskIdStr = res.data
-      })
-    },
-    queryFormData(form) {
-      this.userData = { id: '', ename: this.userInformation, name: this.userNames }
-      this.objData = { bugBaseInfo: this.form, user: this.userData }
-      bugUpdate(this.objData).then(res => {
-        res.code === 200 ? this.successFun() : this.errorFun()
-        this.getList()
-      })
-    },
-    clickOut() {
-      this.$router.push({ path: '/Platform/defectManagement' })
-    },
-    successFun() {
-      this.$notify({ title: 'Success', message: 'Created Successfully', type: 'success', duration: 2000 })
-    },
-    errorFun() {
-      this.$notify({ title: 'Failed', message: 'Created Failed', type: 'error', duration: 2000 })
-    }
-  }
-}
-</script>

+ 58 - 98
src/views/Platform/presentation/testPresentation.vue

@@ -3,24 +3,20 @@
     <!--日报报告-->
     <div style="float:right; margin: 30px 0;">
       <el-input v-model="state" filterable placeholder="搜索" style="width:50%;margin-right:30px;" @change="clickQuery(state)" />
-      <el-button type="primary" @click="getListAll(), centerDialogVisible = true">新建日报报告</el-button>
+      <el-button type="primary" @click="centerDialogVisible = true">新建日报报告</el-button>
     </div>
     <template>
       <el-table :data="tableData" fit border style="width: 100%">
         <el-table-column label="报告名称" width="280" align="center">
           <template slot-scope="scope">
-            <a href="javascript:void(0)" style="color:#20a0ff" @click="toReportView(tableData)">{{ scope.row.reportName }}</a>
+            <a href="javascript:void(0)" style="color:#20a0ff" @click="toReportView(scope.row)">{{ scope.row.reportName }}</a>
           </template>
         </el-table-column>
         <el-table-column label="报告人" width="180" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.ownner }}</span>
-          </template>
+          <template slot-scope="scope">{{ scope.row.ownner }}</template>
         </el-table-column>
         <el-table-column label="日期" width="280" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.gmtCreate }}</span>
-          </template>
+          <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
         </el-table-column>
         <el-table-column label="操作" align="center" fixed="right" min-width="230">
           <template slot-scope="scope">
@@ -33,24 +29,19 @@
         </el-table-column>
       </el-table>
     </template>
-    <el-pagination
-      style="margin-top:30px;"
-      align="center"
-      :current-page="curIndex"
-      :page-sizes="[20, 30, 50]"
-      :page-size="pageSize"
-      layout="total, sizes, prev, pager, next, jumper"
-      :total="total"
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-    />
-    <el-dialog title="提示" :visible.sync="centerDialogVisible" width="30%" center>
-      选择任务 :
-      <el-select v-model="queryData.state" filterable placeholder="搜索" style="width:80%;">
-        <el-option v-for="item in getListAllData" :key="item.id" :label="item.value" :value="item.id" />
-      </el-select>
+    <el-pagination style="margin-top:30px;" align="center" :current-page="curIndex" :page-sizes="[20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+    <el-dialog title="选择任务" :visible.sync="centerDialogVisible" width="30%" center @close="closeChange">
+      <div style="text-align:text;margin:10px 0;">
+        <el-button ref="btn1" size="mini" @click="getQueryData(1)">项目</el-button>
+        <el-button ref="btn2" size="mini" @click="getQueryData(2)">任务</el-button>
+      </div>
+      <div>
+        <el-select v-model="queryDataState" filterable placeholder="请选择项目还是任务" style="width:100%;">
+          <el-option v-for="item in restaurants" :key="item.id" :label="item.value" :value="item.id" />
+        </el-select>
+      </div>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="createPresentation(queryData.state)">创建</el-button>
+        <el-button type="primary" @click="createPresentation(queryDataState)">创建</el-button>
       </span>
     </el-dialog>
   </div>
@@ -69,13 +60,11 @@ export default {
       bizJson: localStorage.getItem('key'),
       centerDialogVisible: false,
       centerDialogVisible1: false,
-      getListAllData: '',
+      getListAllData: [],
+      queryDataState: '',
       pageSize: 20,
       curIndex: 1,
-      value: '',
-      mun: '',
       total: 0,
-      id: '',
       state: '',
       restaurants: [],
       queryData: {
@@ -85,50 +74,7 @@ export default {
         pageSize: 20,
         curIndex: 1
       },
-      tableData: [],
-      form: [],
-      data: {
-        bizId: 0,
-        codeOptimize: '',
-        configInfo: '',
-        cr: '',
-        crUrl: '',
-        deleted: 0,
-        dependentComponents: '',
-        dependentUpgrade: null,
-        devTime: '',
-        devUrl: null,
-        env: null,
-        frameworkUpgrad: null,
-        functionInfo: null,
-        gmtCreate: '',
-        gmtModify: '',
-        id: 0,
-        interfaceInfo: '',
-        joinTest: null,
-        lateReason: null,
-        lateStatus: 0,
-        launchRepulseInfo: '',
-        launchTime: '',
-        modification: null,
-        moduleInfo: null,
-        name: '',
-        others: null,
-        packageUrl: null,
-        planLaunchTime: '',
-        pmUi: null,
-        prdUrl: null,
-        priority: '',
-        projectId: 0,
-        selfTestInfo: null,
-        selfTestResult: null,
-        status: 0,
-        submitter: '',
-        taskId: 0,
-        testPlanId: null,
-        transactor: '',
-        type: 0
-      }
+      tableData: []
     }
   },
   created() {
@@ -149,6 +95,7 @@ export default {
         this.total = res.total
       })
     },
+    // 查看跳转
     toReportView(ele) {
       this.$router.push({ path: '/Platform/presentation/testPresenyL', query: { data: ele }})
     },
@@ -172,43 +119,59 @@ export default {
     },
     createPresentation(e) {
       if (e !== '') {
-        this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { id: e }})
-        this.queryData.state = null
+        for (var ele of this.restaurants) {
+          if (e === ele.id) {
+            var type = ele
+          }
+        }
+        this.queryData.state = ''
+        this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { state: type }})
       } else {
         this.$message({ type: 'error', message: '请选择任务' })
       }
     },
-    createPresentation1() {
-      this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { id: this.id }})
+
+    // dialog关闭回调
+    closeChange() {
+      this.$refs['btn1'].$el.style.background = '#FFFFFF'
+      this.$refs['btn1'].$el.style.color = '#606266'
+      this.$refs['btn2'].$el.style.background = '#FFFFFF'
+      this.$refs['btn2'].$el.style.color = '#606266'
     },
 
     // 日报编辑
     queryPresentation(data) {
       this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { data: data }})
     },
-    getListAll() {
+    // 切换项目任务
+    getQueryData(e) {
+      this.restaurants = []
+      this.states = ''
       taskListCreate({ status: 7 }).then(res => {
         const arr = []
-        for (var ele of res.data) {
-          arr.push({ value: ele.name, id: ele.id })
+        switch (e) {
+          case 1:
+            for (var ele of res.data.projectInfoList) {
+              arr.push({ value: ele.name, id: ele.id, type: ele.platForm, bizId: ele.bizId, typeString: 1 })
+            }
+            this.restaurants = arr
+            this.$refs['btn1'].$el.style.background = '#409EFF'
+            this.$refs['btn1'].$el.style.color = '#ffffff'
+            this.$refs['btn2'].$el.style.background = '#FFFFFF'
+            this.$refs['btn2'].$el.style.color = '#606266'
+            break
+          case 2:
+            for (var vel of res.data.taskInfoList) {
+              arr.push({ value: vel.name, id: vel.id, type: vel.type, bizId: vel.bizId, typeString: 2 })
+            }
+            this.restaurants = arr
+            this.$refs['btn1'].$el.style.background = '#FFFFFF'
+            this.$refs['btn1'].$el.style.color = '#606266'
+            this.$refs['btn2'].$el.style.background = '#409EFF'
+            this.$refs['btn2'].$el.style.color = '#ffffff'
         }
-        this.getListAllData = arr
       })
     },
-    getQueryData() {
-      dailyReportList({}).then(res => {
-        const arr = []
-        for (var ele of res.data) {
-          arr.push({ value: ele.reportName, id: ele.id })
-        }
-        this.restaurants = arr
-      })
-    },
-    createFilter(queryString) {
-      return (restaurant) => {
-        return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
-      }
-    },
     clickQuery(e) {
       dailyReportList({ reportName: e }).then(res => {
         this.tableData = res.data
@@ -222,9 +185,6 @@ export default {
     handleCurrentChange(curIndex) {
       this.curIndex = curIndex
       this.getList()
-    },
-    errorFun() {
-      this.$notify({ title: 'Failed', message: 'Created Failed', type: 'error', duration: 2000 })
     }
   }
 }

+ 118 - 61
src/views/Platform/presentation/testPresenyL.vue

@@ -1,42 +1,68 @@
 <template>
   <!-- 日报预览 -->
-  <el-form :inline="true" :model="fromCreateData" style="margin:0%;7%">
-    <el-row :gutter="20">
-      <el-col :span="12" :offset="16" style="margin-top:30px;"><div><el-button icon="el-icon-message" size="mini" @click="promptEmail(fromCreateData)">发送报告</el-button><el-button icon="el-icon-check" size="mini" style="margin-left:10px;" @click="download()">下载测试报告</el-button></div></el-col>
-    </el-row>
-    <div id="resumeId" style="padding:0% 9%;">
-      <el-row :gutter="20">
-        <span style="font-size:26px;">{{ fromCreateData.reportName }}</span>
-        <span style="margin-left:100px">by <span style="font-weight:bold;margin-left: 10px"> {{ fromCreateData.ownner }}</span></span><br>
-      </el-row>
-      <el-radio v-model="showbut" style="margin-top: 30px;" :label="sel" @change="deleteProject(sel)">项目节点</el-radio><br>
-      <div v-show="showbut" style="border:1px solid #ccc;width:83.5vw;margin-top:15px;">
-        <el-button class="btn" icon="el-icon-plus">新增时间节点</el-button>
-        <el-button class="btn" icon="el-icon-delete">删除节点</el-button>
-      </div>
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3% 3% 8% 3%; border-radius: 8px; overflow: hidden;">
+      <el-form :inline="true" :model="fromCreat" style="margin:2% 3%">
+        <div id="resumeId">
+          <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 size="mini" @click="download()">下载测试报告</el-button>
+            </span>
+          </div>
+          <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">
+                <div class="time_line" style="width:100%;">
+                  <ol>
+                    <li style="list-style-type:none;">
+                      <a class="order_item" style="left:5%;">一号节点</a>
+                    </li>
+                    <li style="list-style-type:none;">
+                      <a class="order_item" style="left:25%;">二号节点</a>
+                    </li>
+                    <li style="list-style-type:none;">
+                      <a class="order_item" style="left:45%;">三号节点</a>
+                    </li>
+                    <li style="list-style-type:none;">
+                      <a class="order_item" style="left:65%;">四号节点</a>
+                    </li>
+                    <li style="list-style-type:none;">
+                      <a class="order_item" style="left:85%;">五号节点</a>
+                    </li>
+                  </ol>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
 
-      <span class="titleStyle">一、进度和风险</span><br>
+          <div class="titleStyle">一. 进度和风险</div>
 
-      <el-row><el-col style="width:68vw;font-size:15px;color:#606266;"><div class="rich" v-html="projectProgress" /></el-col></el-row>
+          <div style="font-size:15px;color:#606266;" class="rich" v-html="projectProgress" />
 
-      <span class="titleStyle">二、测试情况</span>
+          <div class="titleStyle">二. 测试情况</div>
 
-      <el-row><el-col style="width:68vw;font-size:15px;color:#606266;"><div class="rich" v-html="TestProgress" /></el-col></el-row>
+          <div style="font-size:15px;color:#606266;" class="rich" v-html="TestProgress" />
 
-      <span class="titleStyle">三、bug情况</span>
+          <div class="titleStyle">三. bug情况</div>
 
-      <div style="border: 1px,solid #ccc;font-size:14px;color:#606266;">
-        <label class="title">1、bug统计</label>
-        <el-row :gutter="20">
-          <el-col :span="12"><div id="lineShow" style="width: 600px;height:400px;" /></el-col>
-          <el-col :span="12"><div id="barShow" style="width: 600px;height:400px;" /></el-col>
-        </el-row>
-        <label class="title">2、bug说明</label>
-        <el-row :gutter="20"><el-col>{{ bugshow }}</el-col></el-row>
-      </div>
+          <div style="border: 1px,solid #ccc;font-size:14px;color:#606266;">
+            <div style="margin: 1%;">1、bug统计</div>
+            <div style="display:flex;">
+              <div id="lineShow" style="flex:2; width: 800px;height:400px;" />
+              <div style="flex:1; width: 400px;height:400px;" />
+              <div id="barShow" style="flex:2; width: 800px;height:400px;" />
+            </div>
+            <div style="margin: 1%;">2、bug说明</div>
+            {{ bugshow }}
+          </div>
+        </div>
+        <el-button style="float:right; margin:2% 50%;" @click="open()"> 返 回 </el-button>
+      </el-form>
     </div>
-    <el-button type="info" style="float:right; margin:2% 50%;" @click="open()"> 返 回 </el-button>
-  </el-form>
+  </div>
 </template>
 
 <script>
@@ -51,17 +77,13 @@ export default {
     return {
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
-      bizJson: localStorage.getItem('key'),
-      value: '',
-      sel: 1,
-      showbut: false,
       bugshow: '',
       progressExplain: '', //  项目节点
       testExplain: '', // 测试情况
       bugNumCount: '', // bug统计
       bugExplain: '', //  bug说明
       problemRisks: '', // 进度和风险
-      fromCreateData: {
+      fromCreat: {
         id: '',
         bizId: '',
         taskId: '',
@@ -96,15 +118,14 @@ export default {
   methods: {
     getRouterData() {
       if (this.$route.query.data) {
-        this.fromCreateData = this.$route.query.data
-        console.log(this.fromCreateData)
-        this.name = this.fromCreateData.reportName
-        this.gntCreateEnd = this.fromCreateData.gmtCreate
-        this.bugshow = this.fromCreateData.bugExplain
-        this.TestProgress = this.fromCreateData.testExplain
-        this.projectProgress = this.fromCreateData.problemRisks
+        this.fromCreat = this.$route.query.data
+        this.name = this.fromCreat.reportName
+        this.gntCreateEnd = this.fromCreat.gmtCreate
+        this.bugshow = this.fromCreat.bugExplain
+        this.TestProgress = this.fromCreat.testExplain
+        this.projectProgress = this.fromCreat.problemRisks
       }
-      this.pro = { projectId: this.fromCreateData.projectId, taskId: this.fromCreateData.taskId, gntCreateEnd: this.gntCreateEnd }
+      this.pro = { projectId: this.fromCreat.projectId, taskId: this.fromCreat.taskId, gntCreateEnd: this.gntCreateEnd }
       bugDailyList(this.pro).then(res => {
         this.dateList = res.data.dateList
         this.statusMap = res.data.statusMap
@@ -176,35 +197,71 @@ export default {
           res.code === 200 ? this.$message.success('发送测试报告成功') : this.$message.error('发送测试报告失败,请联系管理员!')
         })
       })
-    },
-    deleteProject(e) {
-      if (e === 1) {
-        this.showbut = true
-        this.sel = 0
-      } else {
-        this.showbut = false
-        this.sel = 1
-      }
     }
   }
 }
 </script>
 
 <style scoped>
+  .eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
+  }
   .el-col {
     white-space:nowrap;
   }
-  .el-form-item {
-    margin: -5px 0;
-  }
-  .titleStyle {
-    color: #000000;
+  .time_line_box{
+    position: relative;
+    height: auto;
+    }
+    .time_line{
+    position: absolute;
+    /* z-index: 1; */
+    /* left: 0; */
+    /* top: 100px; */
+    height: 2px;
     background: #ccc;
-    line-height: 40px;
-    padding-right: 40px;
-    font-size: 15px;
+    /* transition: transform 0.4s; */
+    }
+    .order_item{
+    position: absolute;
+    bottom: 0;
+    z-index: 2;
+    text-align: center;
+    font-size: 13px;
+    padding-bottom: 35px;
+    color: #409EFF;
+    }
+    .order_item:after{
+    content: '';
+    position: absolute;
+    left: 50%;
+    right: auto;
+    transform: translateX(-50%);
+    bottom: -10px;
+    height: 20px;
+    width: 30px;
+    border-radius: 50%;
+    border: 2px solid #ccc;
+    background-color: #ccc;
+    }
+    .filling_line{
+    position: absolute;
+    z-index: 1;
+    left: 0;
+    top: 0;
+    height: 100%;
+    width: 100%;
+    }
+  .titleStyle {
+    color: #333B4A;
+    margin: 1% 0;
+    font-size: 19px;
+    font-weight: bold;
   }
   .rich>>> table tr td{border:1px solid #ccc;font-size: 14px; color: #606266}
-  .rich>>> table th{border:1px solid #ccc; font-size: 14px; color: #606266}
+  .rich>>> table th{border:1px solid #ccc; font-size: 14px; background: #F0F7FF; color: #606266}
   .rich>>> table {border:1px solid #ccc; border-collapse: collapse;line-height: 30px; text-align: center;font-size: 14px; color: #606266}
 </style>

+ 2 - 2
src/views/Platform/projectQuery/projectQuery.vue

@@ -655,13 +655,13 @@ export default {
 
     // 日报预览跳转
     JumpDaily(val) {
-      val.projectId = this.arrurl
+      val.projectId = this.arrurl[1]
       this.$router.push({ path: '/Platform/presentation/testPresenyL', query: { data: val }})
     },
 
     // 准出预览跳转
     JumpOut(val) {
-      val.projectId = this.arrurl
+      val.projectId = this.arrurl[1]
       this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: val }})
     },
 

+ 4 - 5
src/views/Platform/projectQuery/taskQuery.vue

@@ -488,7 +488,7 @@ export default {
 
     // bug报告跳转
     queryBugData(ele) {
-      this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: ele.id }})
+      // this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: ele.id }})
     },
 
     // 创建日报 提测 准出报告跳转
@@ -545,19 +545,19 @@ export default {
 
     // 提测预览跳转
     JumpDetection(val) {
-      val.taskId = this.arrurl
+      val.taskId = this.arrurl[1]
       this.$router.push({ path: '/Platform/presentation/acceptTheReport', query: { data: val }})
     },
 
     // 日报预览跳转
     JumpDaily(val) {
-      val.taskId = this.arrurl
+      val.taskId = this.arrurl[1]
       this.$router.push({ path: '/Platform/presentation/testPresenyL', query: { data: val }})
     },
 
     // 准出预览跳转
     JumpOut(val) {
-      val.taskId = this.arrurl
+      val.taskId = this.arrurl[1]
       this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: val }})
     },
 
@@ -572,7 +572,6 @@ export default {
       bugGetEnum().then(res => {
         this.serviceTypeEnumList = res.data.serviceTypeEnumList
         this.clientTypeEnumList = res.data.clientTypeEnumList
-        // this.bizIdEnumList = res.data.bizIdEnumList // 优先级
         this.bugStatusStr = res.data.bugEnumList
         this.stageStr = res.data.bugStageEnumList
         this.reasonStr = res.data.reasonEnumList

+ 2 - 2
src/views/Platform/workbench.vue

@@ -408,14 +408,14 @@ export default {
       this.$router.push({ path: '/Platform/presentation/taskQuery', query: { id: e.id }})
     },
     clickQueryTable3(e) {
-      this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: e.id }})
+      // this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: e.id }})
     },
     clickQueryTableTask(e) {
       if (e.isBugOrTask === '任务') {
         this.$router.push({ path: '/Platform/presentation/taskQuery', query: { id: e.id }})
       }
       if (e.isBugOrTask === '缺陷') {
-        this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: e.id }})
+        // this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: e.id }})
       }
     }
   }