测试报告图表
This commit is contained in:
parent
516b56a7ef
commit
09e4ce9ea2
|
@ -0,0 +1,110 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<chart :options="options">
|
||||||
|
</chart>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "MsPieChart",
|
||||||
|
components: {},
|
||||||
|
mounted() {
|
||||||
|
this.getDataNamesByData();
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
data() {
|
||||||
|
this.getDataNamesByData();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
options: {
|
||||||
|
title: {
|
||||||
|
text: this.text,
|
||||||
|
subtext: this.subtext,
|
||||||
|
left: 'center'
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item',
|
||||||
|
formatter: '{a} <br/>{b} : {c} ({d}%)'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
orient: 'vertical',
|
||||||
|
left: 20,
|
||||||
|
data: this.dataNames
|
||||||
|
},
|
||||||
|
series : [
|
||||||
|
{
|
||||||
|
name: this.name,
|
||||||
|
type: 'pie',
|
||||||
|
radius: '55%',
|
||||||
|
roseType: 'angle',
|
||||||
|
data: this.data
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
dataNames: ['示例1','示例2','示例3']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
text: {
|
||||||
|
type: String,
|
||||||
|
default: '图表名称'
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
default: '数据名称'
|
||||||
|
},
|
||||||
|
subtext: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
type: Array,
|
||||||
|
default() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
value:235, name:'示例1',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#67C23A'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:274, name:'示例2',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#E6A23C'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:274, name:'示例3',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#F56C6C'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDataNamesByData() {
|
||||||
|
let itemNames = [];
|
||||||
|
this.data.forEach(item => {
|
||||||
|
itemNames.push(item.name);
|
||||||
|
});
|
||||||
|
this.dataNames = itemNames;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
.echarts {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
|
@ -0,0 +1,81 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
|
||||||
|
<common-component :title="'基础信息'">
|
||||||
|
|
||||||
|
<el-row type="flex" justify="space-between">
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>所属项目:</span>
|
||||||
|
<span class="item-value">{{reportInfo.project}}</span>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>测试负责人:</span>
|
||||||
|
<span class="item-value">{{reportInfo.principal}}</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row type="flex" justify="space-between">
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>开始时间:</span>
|
||||||
|
<span class="item-value">{{reportInfo.startTime}}</span>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>结束时间:</span>
|
||||||
|
<span class="item-value">{{reportInfo.endTime}}</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row type="flex" justify="space-between">
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>测试执行人:</span>
|
||||||
|
<span v-for="item in reportInfo.executors" :key="item">{{item}}</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
</common-component>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import CommonComponent from "./CommonComponent";
|
||||||
|
export default {
|
||||||
|
name: "BaseInfoComponent",
|
||||||
|
components: {CommonComponent},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
reportInfo: {
|
||||||
|
type: Object,
|
||||||
|
default() {
|
||||||
|
return {
|
||||||
|
project: '项目名称',
|
||||||
|
principal: '由丽媛',
|
||||||
|
executors: ['由丽媛','王振','陈建星'],
|
||||||
|
startTime: '2020-6-18',
|
||||||
|
endTime: '2020-6-18'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
span {
|
||||||
|
margin-right: 5px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-col span:first-child {
|
||||||
|
font-weight: bold;
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-row {
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
|
@ -0,0 +1,43 @@
|
||||||
|
<template>
|
||||||
|
<el-card class="template-component">
|
||||||
|
|
||||||
|
<template v-slot:header>
|
||||||
|
<slot name="header">
|
||||||
|
<span class="title">{{title}}</span>
|
||||||
|
</slot>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<el-main>
|
||||||
|
|
||||||
|
<slot></slot>
|
||||||
|
|
||||||
|
</el-main>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "CommonComponent",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '标题'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
.el-main {
|
||||||
|
min-height: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
|
@ -67,6 +67,11 @@
|
||||||
:list="previews"
|
:list="previews"
|
||||||
group="people"
|
group="people"
|
||||||
@change="log">
|
@change="log">
|
||||||
|
|
||||||
|
<base-info-component/>
|
||||||
|
<test-result-component/>
|
||||||
|
<test-result-chart-component/>
|
||||||
|
|
||||||
<el-card class="template-component" v-for="item in previews" :key="item.id">
|
<el-card class="template-component" v-for="item in previews" :key="item.id">
|
||||||
|
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
|
@ -99,11 +104,17 @@
|
||||||
|
|
||||||
import draggable from 'vuedraggable';
|
import draggable from 'vuedraggable';
|
||||||
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
|
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
|
||||||
|
import BaseInfoComponent from "./BaseInfoComponent";
|
||||||
|
import TestResultComponent from "./TestResultComponent";
|
||||||
|
import TestResultChartComponent from "./TestResultChartComponent";
|
||||||
|
|
||||||
let idGlobal = 8;
|
let idGlobal = 8;
|
||||||
export default {
|
export default {
|
||||||
name: "TestCaseReportTemplateEdit",
|
name: "TestCaseReportTemplateEdit",
|
||||||
components: {
|
components: {
|
||||||
|
TestResultChartComponent,
|
||||||
|
TestResultComponent,
|
||||||
|
BaseInfoComponent,
|
||||||
draggable
|
draggable
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -114,10 +125,10 @@
|
||||||
name: '',
|
name: '',
|
||||||
type: 'edit',
|
type: 'edit',
|
||||||
components: [
|
components: [
|
||||||
{ name: "dog 1", id: 1 , type: 'system'},
|
{ name: "基础信息", id: 1 , type: 'system'},
|
||||||
{ name: "dog 2", id: 2 , type: 'custom'},
|
{ name: "测试结果", id: 2 , type: 'system'},
|
||||||
{ name: "dog 3", id: 3 ,type: 'system'},
|
{ name: "测试结果分布", id: 3 ,type: 'system'},
|
||||||
{ name: "dog 4", id: 4 ,type: 'system'}
|
{ name: "自定义模块", id: 4 ,type: 'custom'}
|
||||||
],
|
],
|
||||||
previews: [
|
previews: [
|
||||||
{ name: "cat 5", id: 5 },
|
{ name: "cat 5", id: 5 },
|
||||||
|
@ -252,5 +263,8 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.template-component {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<common-component :title="'测试结果统计'">
|
||||||
|
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<ms-pie-chart :text="'测试结果统计图'" :name="'测试结果'" :data="charData"/>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</common-component>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import CommonComponent from "./CommonComponent";
|
||||||
|
import MsPieChart from "../../../common/components/MsPieChart";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "TestResultChartComponent",
|
||||||
|
components: {MsPieChart, CommonComponent},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
charData: [
|
||||||
|
{
|
||||||
|
value:235, name:'通过',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#67C23A'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:274, name:'阻塞',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#E6A23C'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:310, name:'失败',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#F56C6C'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:335, name:'跳过',
|
||||||
|
itemStyle: {
|
||||||
|
color: '#909399'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value:400, name:'未完成',
|
||||||
|
itemStyle: {
|
||||||
|
color: 'lightskyblue'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
.echarts {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
|
@ -0,0 +1,76 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<common-component :title="'测试结果'">
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-table
|
||||||
|
:data="testResults"
|
||||||
|
stripe
|
||||||
|
style="width: 100%">
|
||||||
|
<el-table-column
|
||||||
|
prop="module"
|
||||||
|
:label="'模块'"
|
||||||
|
width="180">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="caseCount"
|
||||||
|
:label="'用例数'"
|
||||||
|
width="180">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="passRate"
|
||||||
|
:label="'通过率'">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="flawCount"
|
||||||
|
:label="'缺陷数'">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</common-component>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import CommonComponent from "./CommonComponent";
|
||||||
|
export default {
|
||||||
|
name: "TestResultComponent",
|
||||||
|
components: {CommonComponent},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
testResults: {
|
||||||
|
type: Array,
|
||||||
|
default() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
module: '模块1',
|
||||||
|
caseCount: '14',
|
||||||
|
passRate: 10.8,
|
||||||
|
flawCount: 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
module: '模块2',
|
||||||
|
caseCount: '24',
|
||||||
|
passRate: 40,
|
||||||
|
flawCount: 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
module: '模块3',
|
||||||
|
caseCount: '50',
|
||||||
|
passRate: 76.9,
|
||||||
|
flawCount: 8
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in New Issue