|
@@ -1,14 +1,14 @@
|
|
|
<template>
|
|
|
- <div id="resumeId" class="eleStyle">
|
|
|
+ <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 style="padding: 3% 9%; 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>
|
|
|
+ <div style="padding: 2% 9%;">
|
|
|
+ <div style="display: flex; white-space: nowrap; font-family:SimSuncss">
|
|
|
+ <span style="flex:1;font-weight: bold;font-size: 24px;color: #3a8ee6">{{ ClientDatayl.reportName }}</span>
|
|
|
+ <span style="flex:2;margin: 0.5% 0 0 20px;font-size: 17px;">by {{ ClientDatayl.ownner }}
|
|
|
+ <el-button type="primary" size="mini" style="margin:0 2% 0 5%;" @click="dialogTableVisible = true">发送报告</el-button>
|
|
|
+ <el-button size="mini" @click="dialogTableVisible = true">下载测试报告</el-button>
|
|
|
</span>
|
|
|
</div>
|
|
|
<div style="margin: 2% 0 1% 0; font-size: 19px; font-weight: bold;">一. 项目概述</div><br>
|
|
@@ -119,11 +119,11 @@
|
|
|
|
|
|
<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>
|
|
|
+ <div style="display: flex; white-space: nowrap; font-family:SimSuncss">
|
|
|
+ <span style="flex:1;font-weight: bold;font-size: 24px;color: #3a8ee6">{{ ClientDatayl.reportName }}</span>
|
|
|
+ <span style="flex:2;margin: 0.5% 0 0 20px;font-size: 17px;">by {{ ClientDatayl.ownner }}
|
|
|
+ <el-button type="primary" size="mini" style="margin:0 2% 0 5%;" @click="dialogTableVisible = true">发送报告</el-button>
|
|
|
+ <el-button size="mini" @click="dialogTableVisible = true">下载测试报告</el-button>
|
|
|
</span>
|
|
|
</div>
|
|
|
<div style="margin: 2% 0 1% 0; font-size: 19px; font-weight: bold;">一、项目概述</div><br>
|
|
@@ -189,12 +189,6 @@
|
|
|
<span v-else>{{ scope.row.rateOfFix.value }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column prop="memo" min-width="200" align="center" label="备注">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-input v-if="scope.row.memo.edit" ref="rateOfFix" v-model="scope.row.memo.value" style="width: 100%" @blur="scope.row.memo.edit = false" />
|
|
|
- <span v-else>{{ scope.row.memo.value }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
</el-table>
|
|
|
<el-row>
|
|
|
<el-col :span="24"><div style="margin: 2% 0;">1、遗留问题</div>{{ ClientDatayl.bugInfo }}</el-col>
|
|
@@ -207,6 +201,206 @@
|
|
|
<el-button style="margin:02% 0%;" @click="$router.go(-1)"> 返 回 </el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <el-dialog title="邮件预览" width="70%" center :visible.sync="dialogTableVisible" @open="idGet()">
|
|
|
+ <div align="center">
|
|
|
+ <el-button type="primary" size="mini" @click="promptEmail(ClientDatayl)">确定发送</el-button>
|
|
|
+ <el-button size="mini" @click="download()">确定下载</el-button>
|
|
|
+ </div>
|
|
|
+ <div id="resumeId" 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 style="padding: 3% 9%; color: #333B4A;">
|
|
|
+ <div style="display: flex; white-space: nowrap; font-family:SimSuncss">
|
|
|
+ <span style="flex:1;font-weight: bold;font-size: 24px;color: #3a8ee6">{{ ClientDatayl.reportName }}</span>
|
|
|
+ <span style="flex:2;margin: 0.5% 0 0 20px;font-size: 17px;">by {{ ClientDatayl.ownner }}</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><br>
|
|
|
+ </div>
|
|
|
+ <div style="flex:1">
|
|
|
+ <div class="marage">准入结果 : {{ ClientDatayl.launchInfo }}</div><br>
|
|
|
+ <div class="marage">测试人员 : {{ ClientDatayl.tester }}</div><br>
|
|
|
+ <div class="marage">测试周期 : {{ ClientDatayl.testTimeEnd }} 至 {{ ClientDatayl.testTimeStart }} </div><br>
|
|
|
+ <div v-show="showDelay1" class="marage">延期原因 : {{ ClientDatayl.taskLateReason }}</div><br>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="display:flex;">
|
|
|
+ <div style="flex:1">
|
|
|
+ <div class="marage">涉及安全项 : <span :style="getInfoBtnDisabled">{{ ClientDatayl.getInfoBtn }}</span></div><br>
|
|
|
+ </div>
|
|
|
+ <div style="flex:1">
|
|
|
+ <div v-show="showData" class="marage">完成结果 : {{ ClientDatayl.safeInfo }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="white-space: nowrap;">SDL链接 : <el-link href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" type="primary" target="_blank"> 普惠SDL准入标准</el-link></div>
|
|
|
+ <div class="titleStyle">二. 项目背景</div><br>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorElem" />
|
|
|
+
|
|
|
+ <div class="titleStyle">三. 模块信息</div>
|
|
|
+
|
|
|
+ <div class="marage">1、模块信息</div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorElems" />
|
|
|
+
|
|
|
+ <div class="marage">2、本期功能</div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorFrom" />
|
|
|
+
|
|
|
+ <div class="marage">3、风险点</div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorF" />
|
|
|
+
|
|
|
+ <div class="marage">4、缺陷分析</div>
|
|
|
+
|
|
|
+ <el-table :data="tableData" border>
|
|
|
+ <el-table-column prop="totalBug" label="bug总数" min-width="200" align="center" edit="false">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.totalBug.edit" ref="totalBug" v-model="scope.row.totalBug.value" style="width: 100%" @blur="scope.row.totalBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.totalBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="fixBug" min-width="200" align="center" label="已解决bug数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.fixBug.edit" ref="fixBug" v-model="scope.row.fixBug.value" style="width: 100%" @blur="scope.row.fixBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.fixBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="remainBug" min-width="200" align="center" label="遗留bug数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.remainBug.edit" ref="remainBug" v-model="scope.row.remainBug.value" style="width: 100%" @blur="scope.row.remainBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.remainBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="rateOfReopen" min-width="200" align="center" label="reopen率">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.rateOfReopen.edit" ref="rateOfReopen" v-model="scope.row.rateOfReopen.value" style="width: 100%" @blur="scope.row.rateOfReopen.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.rateOfReopen.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="invalidBug" min-width="200" align="center" label="无效bug数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.invalidBug.edit" ref="invalidBug" v-model="scope.row.invalidBug.value" style="width: 100%" @blur="scope.row.invalidBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.invalidBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24"><div style="margin:2% 0;">5、遗留问题</div>{{ ClientDatayl.bugInfo }}</el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorData" />
|
|
|
+
|
|
|
+ <div class="titleStyle">四. 测试项</div>
|
|
|
+
|
|
|
+ <div class="marage">1、功能测试 : <span style="margin-left:40px;" :style="fctResultChange">{{ fctResult }}</span></div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorEl" />
|
|
|
+
|
|
|
+ <div class="marage">2、可靠性测试 : <span style="margin-left:40px;" :style="rqtResultChange">{{ rqtResult }}</span></div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorEle" />
|
|
|
+
|
|
|
+ <div class="marage">3、稳定性测试 : <span style="margin-left:40px;" :style="pftResultChange">{{ pftResult }}</span></div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorSix" />
|
|
|
+
|
|
|
+ <div class="marage">4、安全性测试 : <span style="margin-left:40px;" :style="safeResultChange">{{ safeResult }}</span></div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorEight" />
|
|
|
+
|
|
|
+ <div class="marage">5、线上监控 : <span style="margin-left:40px;" :style="moniterResultChange">{{ moniterResult }}</span></div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorNine" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="oneShow">
|
|
|
+ <div id="resumeId1" style="padding: 3% 6%; color: #333B4A;">
|
|
|
+ <div style="display: flex; white-space: nowrap; font-family:SimSuncss">
|
|
|
+ <span style="flex:1;font-weight: bold;font-size: 24px;color: #3a8ee6">{{ ClientDatayl.reportName }}</span>
|
|
|
+ <span style="flex:2;margin: 0.5% 0 0 20px;font-size: 17px;">by {{ ClientDatayl.ownner }}</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><br>
|
|
|
+ </div>
|
|
|
+ <div style="flex:1">
|
|
|
+ <div class="marage">准入结果 : {{ ClientDatayl.launchInfo }}</div><br>
|
|
|
+ <div class="marage">测试人员 : {{ ClientDatayl.tester }}</div><br>
|
|
|
+ <div class="marage">测试周期 : {{ ClientDatayl.testTimeEnd }} 至 {{ ClientDatayl.testTimeStart }} </div><br>
|
|
|
+ <div v-show="showDelay1" class="marage">延期原因 : {{ ClientDatayl.taskLateReason }}</div><br>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="titleStyle">二. 项目背景</div>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorElem1" />
|
|
|
+
|
|
|
+ <div class="titleStyle">三. 测试项</div>
|
|
|
+
|
|
|
+ <p>功能测试 : <span style="margin-left:40px;" :style="pftResult1">{{ pftResult }}</span></p>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorElems1" />
|
|
|
+
|
|
|
+ <p>兼容测试 : <span style="margin-left:40px;" :style="sctResult1">{{ sctResult }}</span></p>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorFrom1" />
|
|
|
+
|
|
|
+ <div class="titleStyle">四. 产品验收</div>
|
|
|
+
|
|
|
+ <p>验收结果 : <span style="margin-left:40px;" :style="acceptanceResult1">{{ acceptanceResult }}</span></p>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorFro" />
|
|
|
+
|
|
|
+ <div class="titleStyle">五. bug指标</div>
|
|
|
+
|
|
|
+ <el-table :data="tableData" border>
|
|
|
+ <el-table-column prop="totalBug" label="bug总数" min-width="200" align="center" edit="false">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.totalBug.edit" ref="totalBug" v-model="scope.row.totalBug.value" style="width: 100%" @blur="scope.row.totalBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.totalBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="fixBug" min-width="200" align="center" label="已解决bug数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.fixBug.edit" ref="fixBug" v-model="scope.row.fixBug.value" style="width: 100%" @blur="scope.row.fixBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.fixBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="remainBug" min-width="200" align="center" label="遗留bug数">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.remainBug.edit" ref="remainBug" v-model="scope.row.remainBug.value" style="width: 100%" @blur="scope.row.remainBug.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.remainBug.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="rateOfFix" min-width="200" align="center" label="bug解决率">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-if="scope.row.rateOfFix.edit" ref="rateOfFix" v-model="scope.row.rateOfFix.value" style="width: 100%" @blur="scope.row.rateOfFix.edit = false" />
|
|
|
+ <span v-else>{{ scope.row.rateOfFix.value }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24"><div style="margin: 2% 0;">1、遗留问题</div>{{ ClientDatayl.bugInfo }}</el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <div class="rich" v-html="editorEle1" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -232,6 +426,7 @@ export default {
|
|
|
safeResultChange: { color: '' },
|
|
|
moniterResultChange: { color: '' },
|
|
|
showData: false,
|
|
|
+ dialogTableVisible: false,
|
|
|
status: '',
|
|
|
acceptanceResult: '',
|
|
|
sctResult: '',
|