Commit fe53ba58 authored by zhang's avatar zhang
parents 6bc78b1e 028a3763
......@@ -52,6 +52,17 @@ export function alreadyReviewer(query) {
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
export function listReviewerFinish(query) {
return request({
url: '/review/scene/change/task/FindFinish',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
\ No newline at end of file
......@@ -50,6 +50,17 @@ export function testType(query) {
data: query
})
}
// 发起评审页面 用例查标准
export function testTypeUse(query) {
return request({
url: '/system/testCase/getStandardList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 点击选择审查要点按钮后 调用接口 查询审查要点
export function testKeypoint(query) {
return request({
......
......@@ -14,9 +14,9 @@
&-title {
color: #ffffff;
text-align: center;
font-size: 26px;
font-size: 32px;
font-family: Microsoft YaHei;
padding-top: 10px;
padding-top: 20px;
padding-right: 50px;
color: #ffffff;
font-weight: 700;
......@@ -26,6 +26,7 @@
}
.home-page {
position: absolute;
overflow: hidden;
left: 0;
right: 0;
top: 0;
......@@ -41,16 +42,158 @@
height: 100%;
}
&-center {
margin-top: 10%;
width: 40%;
height: 100%;
background: url('../images/home/huxian.png') no-repeat;
background-size: 100% 100%;
position: relative;
.center-item-1 {
position: absolute;
left: 60px;
top: 20px;
.center-item-img {
width: 192px;
height: 192px;
}
.center-item-title {
position: absolute;
color: #3ff4ff;
font-size: 14px;
text-align: center;
top: 20px;
width: 100px;
left: 20px;
}
.center-item-number {
position: absolute;
color: #3ff4ff;
font-size: 16px;
font-weight: 700;
top: 50px;
text-align: center;
width: 100px;
left: 20px;
}
}
.center-item-2 {
position: absolute;
right: 190px;
top: -20px;
.center-item-img {
width: 192px;
height: 192px;
}
.center-item-title {
position: absolute;
color: #3ff4ff;
font-size: 14px;
text-align: center;
top: 20px;
width: 100px;
left: 70px;
}
.center-item-number {
position: absolute;
color: #3ff4ff;
font-size: 16px;
font-weight: 700;
top: 50px;
text-align: center;
width: 100px;
left: 70px;
}
}
.center-item-3 {
position: absolute;
right: 30px;
top: 220px;
.center-item-img {
width: 276px;
height: 219px;
}
.center-item-title {
position: absolute;
color: #3ff4ff;
font-size: 14px;
text-align: center;
top: 150px;
width: 100px;
left: 150px;
}
.center-item-number {
position: absolute;
color: #3ff4ff;
font-size: 16px;
font-weight: 700;
top: 170px;
text-align: center;
width: 100px;
left: 150px;
}
}
.center-item-4 {
position: absolute;
left: 280px;
top: 310px;
.center-item-img {
width: 202px;
height: 275px;
}
.center-item-title {
position: absolute;
color: #3ff4ff;
font-size: 14px;
text-align: center;
top: 210px;
width: 100px;
left: 80px;
}
.center-item-number {
position: absolute;
color: #3ff4ff;
font-size: 16px;
font-weight: 700;
top: 230px;
text-align: center;
width: 100px;
left: 80px;
}
}
.center-item-5 {
position: absolute;
left: 60px;
top: 260px;
.center-item-img {
width: 202px;
height: 275px;
}
.center-item-title {
position: absolute;
color: #3ff4ff;
font-size: 14px;
text-align: center;
top: 210px;
width: 100px;
left: 25px;
}
.center-item-number {
position: absolute;
color: #3ff4ff;
font-size: 16px;
font-weight: 700;
top: 230px;
text-align: center;
width: 100px;
left: 25px;
}
}
}
&-bottom {
position: absolute;
bottom: 0;
width: 100%;
height: 120px;
height: 180px;
background: url('../images/home/bottom.png') no-repeat;
background-size: 95% 100%;
display: flex;
......@@ -60,11 +203,48 @@
display: flex;
flex-wrap: wrap;
margin-right: 3%;
align-items: center;
justify-content: center;
.bottom-item {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
}
}
}
.bottom-card {
width: 8rem;
padding: 0 10px;
cursor: pointer;
&:hover {
animation: jump 2s linear infinite;
@keyframes jump {
0%,
100% {
transform: translateY(20px);
}
50% {
transform: translateY(-20px);
}
}
}
&-img {
width: 40px;
height: 40px;
}
&-title {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
text-align: center;
color: #ffffff;
line-height: 16px;
}
}
.card-box {
height: 30%;
height: 34%;
&-header {
width: 100%;
height: 36px;
......@@ -81,38 +261,62 @@
}
&-title {
position: absolute;
font-size: 18px;
font-size: 20px;
font-family: Microsoft YaHei, Microsoft YaHei-700;
font-weight: 700;
color: #ffffff;
line-height: 20px;
letter-spacing: 0.24px;
left: 50px;
left: 65px;
top: 0;
}
&-title2 {
position: absolute;
font-size: 18px;
font-size: 20px;
font-family: Microsoft YaHei, Microsoft YaHei-700;
font-weight: 700;
color: #ffffff;
line-height: 20px;
letter-spacing: 0.24px;
right: 50px;
right: 65px;
top: 0;
}
&-body {
padding: 5px 20px;
}
}
.center-back {
background: url('../images/home/huxian.png') no-repeat;
background-size: 100% 100%;
position: absolute;
left: -35px;
top: -30px;
width: 821px;
height: 673px;
animation: rotate 5s linear infinite;
@keyframes rotate {
0% {
transform: scale(1.1);
}
50% {
transform: scale(0.9);
}
100% {
transform: scale(1.1);
}
}
}
.show-card {
display: flex;
align-items: center;
justify-content: flex-start;
height: 5rem;
height: 8rem;
&-img {
width: 80px;
height: 80px;
width: 100px;
height: 100px;
}
&-body {
margin-left: 10px;
......@@ -120,14 +324,14 @@
align-items: flex-start;
flex-flow: column;
&-title {
font-size: 14px;
font-size: 18px;
font-family: Microsoft YaHei, Microsoft YaHei-400;
font-weight: 400;
text-align: LEFT;
color: #b4dbfc;
}
&-number {
font-size: 28px;
margin-top: 5px;
font-size: 32px;
font-family: 'PMZDBTiTiMianFeiBan';
font-weight: 400;
text-align: LEFT;
......@@ -135,21 +339,3 @@
}
}
}
.bottom-card {
width: 14%;
margin: 0 1%;
padding: 0 10px;
cursor: pointer;
&-img {
width: 40px;
height: 40px;
}
&-title {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
text-align: center;
color: #ffffff;
line-height: 16px;
}
}
......@@ -27,6 +27,7 @@
</div>
<el-upload
class="upload-demo"
ref="fileUpload"
:action="uploadImgUrl"
:on-preview="handlePreview"
v-model="model.file"
......@@ -36,11 +37,16 @@
:limit="1"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:headers="headers"
>
<el-button size="small" :disabled="status" type="primary"
>上传文件</el-button
>
<div slot="tip" class="el-upload__tip"></div>
<div slot="tip" class="el-upload__tip">
<div v-if="model.path">
<el-link :href="model.path">{{ model.name }}</el-link>
</div>
</div>
</el-upload>
</div>
</template>
......@@ -60,7 +66,6 @@ export default {
default: false
},
defaultValue: {
default: ''
}
},
......@@ -70,7 +75,11 @@ export default {
value: '',
list: [],
file: '',
path: ''
path: '',
name: ''
},
headers: {
Authorization: 'Bearer ' + this.$store.getters.token
},
uploadImgUrl: process.env.VUE_APP_BASE_API + '/common/uploadMinio' // 上传的图片服务器地址
}
......@@ -92,7 +101,7 @@ export default {
mounted() {
if (this.defaultValue) {
this.model = this.defaultValue
this.$emit('changeVal', { name: this.prop, val: this.result})
this.$emit('changeVal', { name: this.prop, val: this.result })
this.$emit('makeRecord', { name: this.prop, record: this.model })
} else {
this.reset()
......@@ -127,12 +136,13 @@ export default {
console.log(file)
},
handleSuccess(res, file) {
if (res === 200) {
this.model.path = res.url
if (res.code === 200) {
this.model.path = process.env.VUE_APP_IMAGE_API + res.url
this.model.name = res.originalFilename
this.$refs.fileUpload.clearFiles()
this.$message.success('上传成功')
} else {
this.$message.error('error')
console.log(res, file)
}
},
handleExceed(files, fileList) {
......
<template>
<div class="checkbox-upload">
<el-checkbox-group :disabled="status" v-model="model.value" @change="input">
<el-checkbox
v-for="(i, k) in items.options"
:label="i.id"
:key="k"
>
{{ i.object }}
<el-checkbox v-for="(i, k) in items.options" :label="i.id" :key="k">
{{ i.object }}
</el-checkbox>
</el-checkbox-group>
<el-upload
......@@ -18,13 +14,19 @@
:before-remove="beforeRemove"
:show-file-list="false"
:limit="1"
ref="fileUpload"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:headers="headers"
>
<el-button size="small" :disabled="status" type="primary"
>上传文件</el-button
>
<div slot="tip" class="el-upload__tip"></div>
<div slot="tip" class="el-upload__tip">
<div v-if="model.path">
<el-link :href="model.path">{{ model.name }}</el-link>
</div>
</div>
</el-upload>
</div>
</template>
......@@ -44,7 +46,6 @@ export default {
default: false
},
defaultValue: {
default: ''
}
},
......@@ -53,7 +54,11 @@ export default {
model: {
value: [],
file: '',
path: ''
path: '',
name: ''
},
headers: {
Authorization: 'Bearer ' + this.$store.getters.token
},
uploadImgUrl: process.env.VUE_APP_BASE_API + '/common/uploadMinio' // 上传的图片服务器地址
}
......@@ -71,7 +76,7 @@ export default {
mounted() {
if (this.defaultValue) {
this.model = this.defaultValue
this.$emit('changeVal', { name: this.prop, val: this.value})
this.$emit('changeVal', { name: this.prop, val: this.value })
this.$emit('makeRecord', { name: this.prop, record: this.result })
} else {
this.reset()
......@@ -81,9 +86,6 @@ export default {
input() {
let arr = []
this.items.options.map(i => {
console.log(this.model.value)
console.log(i)
if (this.model.value.includes(i.id)) {
arr.push(i.useCaseNo)
}
......@@ -99,7 +101,8 @@ export default {
this.model = {
value: [],
file: '',
path: ''
path: '',
name: ''
}
},
setDefaultValue(val) {
......@@ -112,12 +115,13 @@ export default {
console.log(file)
},
handleSuccess(res, file) {
if (res === 200) {
this.model.path = res.url
if (res.code === 200) {
this.model.path = process.env.VUE_APP_IMAGE_API + res.url
this.model.name = res.originalFilename
this.$refs.fileUpload.clearFiles()
this.$message.success('上传成功')
} else {
this.$message.error('error')
console.log(res, file)
}
},
handleExceed(files, fileList) {
......
......@@ -14,17 +14,23 @@
:action="uploadImgUrl"
:on-preview="handlePreview"
v-model="model.file"
ref="fileUpload"
:on-remove="handleRemove"
:before-remove="beforeRemove"
:show-file-list="false"
:limit="1"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:headers="headers"
>
<el-button size="small" :disabled="status" type="primary"
>上传文件</el-button
>
<div slot="tip" class="el-upload__tip"></div>
<div slot="tip" class="el-upload__tip">
<div v-if="model.path">
<el-link :href="model.path">{{ model.name }}</el-link>
</div>
</div>
</el-upload>
</div>
</template>
......@@ -44,7 +50,6 @@ export default {
default: false
},
defaultValue: {
default: ''
}
},
......@@ -53,7 +58,11 @@ export default {
model: {
value: '',
file: '',
path: ''
path: '',
name: ''
},
headers: {
Authorization: 'Bearer ' + this.$store.getters.token
},
uploadImgUrl: process.env.VUE_APP_BASE_API + '/common/uploadMinio' // 上传的图片服务器地址
}
......@@ -65,13 +74,13 @@ export default {
status(newVal) {
this.reset()
this.$emit('changeVal', { name: this.prop, val: [] })
this.$emit('makeRecord', { name: this.prop, record:{} })
this.$emit('makeRecord', { name: this.prop, record: {} })
}
},
mounted() {
if (this.defaultValue) {
this.model = this.defaultValue
this.$emit('changeVal', { name: this.prop, val: this.result})
this.$emit('changeVal', { name: this.prop, val: this.result })
this.$emit('makeRecord', { name: this.prop, record: this.model })
} else {
this.reset()
......@@ -85,8 +94,8 @@ export default {
arr.push(i.useCaseNo)
})
}
console.log(arr);
console.log(arr)
this.$emit('changeVal', { name: this.prop, val: arr.join(',') })
this.$emit('makeRecord', { name: this.prop, record: this.model })
},
......@@ -94,7 +103,8 @@ export default {
this.model = {
value: '',
file: '',
path: ''
path: '',
name: ''
}
},
setDefaultValue(val) {
......@@ -107,12 +117,13 @@ export default {
console.log(file)
},
handleSuccess(res, file) {
if (res === 200) {
this.model.path = res.url
if (res.code === 200) {
this.model.path = process.env.VUE_APP_IMAGE_API + res.url
this.model.name = res.originalFilename
this.$refs.fileUpload.clearFiles()
this.$message.success('上传成功')
} else {
this.$message.error('error')
console.log(res, file)
}
},
handleExceed(files, fileList) {
......
......@@ -7,6 +7,7 @@
</el-radio-group>
<el-upload
class="upload-demo"
ref="fileUpload"
:action="uploadImgUrl"
:on-preview="handlePreview"
v-model="model.file"
......@@ -16,11 +17,16 @@
:limit="1"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:headers="headers"
>
<el-button size="small" :disabled="status" type="primary"
>上传文件</el-button
>
<div slot="tip" class="el-upload__tip"></div>
<div slot="tip" class="el-upload__tip">
<div v-if="model.path">
<el-link :href="model.path">{{ model.name }}</el-link>
</div>
</div>
</el-upload>
</div>
</template>
......@@ -40,7 +46,6 @@ export default {
default: false
},
defaultValue: {
default: ''
}
},
......@@ -49,9 +54,12 @@ export default {
model: {
value: '',
file: '',
path: ''
path: '',
name: ''
},
headers: {
Authorization: 'Bearer ' + this.$store.getters.token
},
uploadImgUrl: process.env.VUE_APP_BASE_API + '/common/uploadMinio' // 上传的图片服务器地址
}
},
......@@ -89,7 +97,8 @@ export default {
this.model = {
value: '',
file: '',
path: ''
path: '',
name:''
}
},
setDefaultValue(val) {
......@@ -102,12 +111,13 @@ export default {
console.log(file)
},
handleSuccess(res, file) {
if (res === 200) {
this.model.path = res.url
if (res.code === 200) {
this.model.path = process.env.VUE_APP_IMAGE_API + res.url
this.model.name = res.originalFilename
this.$refs.fileUpload.clearFiles()
this.$message.success('上传成功')
} else {
this.$message.error('error')
console.log(res, file)
}
},
handleExceed(files, fileList) {
......
<template>
<div
ref="chart"
style="width: 100%; height: 100%; display: flex; justify-content: center"
style="width: 100%; height: 10rem; display: flex;margin-top: 2rem; justify-content: center"
></div>
</template>
<script>
......@@ -33,9 +33,15 @@ export default {
series: [
{
type: 'liquidFill',
name: '添加',
//data: [0.6, 0.5, 0.4, 0.3],
data: [0.6, 0.5, 0.4, 0.3],
radius: '80%',
data: [
{
name: '添加',
value: 1
}
],
radius: '75%',
// 水球颜色
color: ['#49d088', '#38b470', '#2aaf66'],
center: ['15%', '55%'],
......@@ -52,8 +58,11 @@ export default {
normal: {
// textStyle: {
color: '#49d088',
insideColor: 'yellow',
fontSize: 24
// insideColor: 'yellow',
formatter: e => {
return '添加\n\n'+ e.value.toFixed(2) * 100 + '%'
},
fontSize: 18
// }
}
},
......@@ -67,8 +76,14 @@ export default {
{
type: 'liquidFill',
//data: [0.6, 0.5, 0.4, 0.3],
data: [0.3, 0.2, 0.1, 0.05],
radius: '80%',
data: [
{
name: '修改',
value: 0
}
],
name: '修改',
radius: '75%',
// 水球颜色
color: ['#FE5555', '#F07581', '#FB5E61'],
center: ['50%', '55%'],
......@@ -84,10 +99,13 @@ export default {
label: {
normal: {
textStyle: {
color: '#FE5555',
insideColor: 'yellow',
fontSize: 24
}
color: '#FE5555'
// insideColor: 'yellow',
},
formatter: e => {
return '修改\n\n'+ e.value.toFixed(2) * 100 + '%'
},
fontSize: 18
}
},
// 内图 背景色 边
......@@ -99,9 +117,16 @@ export default {
},
{
type: 'liquidFill',
name: '删除',
data: [
{
name: '删除',
value: 0
}
],
//data: [0.6, 0.5, 0.4, 0.3],
data: [0.1, 0.05, 0.25],
radius: '80%',
data: [0, 0, 0, 0],
radius: '75%',
// 水球颜色
color: ['#FFBF11', '#F4B30E', '#EACE36'],
center: ['85%', '55%'],
......@@ -117,10 +142,13 @@ export default {
label: {
normal: {
textStyle: {
color: '#FFBF11',
insideColor: 'yellow',
fontSize: 24
}
color: '#FFBF11'
// insideColor: 'yellow',
},
fontSize: 18,
formatter: e => {
return '删除\n\n'+ e.value.toFixed(2) * 100 + '%'
},
}
},
// 内图 背景色 边
......
......@@ -30,7 +30,7 @@ export default {
// 3.配置数据
const option = {
grid: {
top: '10%',
top: '15%',
bottom: '20%', //也可设置left和right设置距离来控制图表的大小
left: '10%',
right: '10%'
......@@ -65,6 +65,7 @@ export default {
},
yAxis: {
type: 'value',
name:'(个)',
nameTextStyle: {
color: '#b4dbfc'
},
......@@ -108,7 +109,7 @@ export default {
])
}
},
data: [120, 380, 248, 135, 290, 280, 320, 125]
data: [12, 38, 24, 13, 20, 28, 32, 12]
}
]
}
......
<template>
<div class="chart-box">
<div
ref="chart"
style="width: 130%; height: 100%; display: flex; justify-content: center"
></div>
<div class="chart-x">● 攻击手段</div>
<div class="chart-y">攻击方式</div>
</div>
</template>
<script>
export default {
name: 'AverageTest',
props: {
value: {
type: Number,
default: 20
}
},
data() {
return {
chart: null
}
},
mounted() {
this.init()
},
methods: {
init() {
// 2.初始化
this.chart = this.$echarts.init(this.$refs.chart)
this.chart.setOption({}, true)
// 3.配置数据
const option = {
grid: {
top: '15%',
bottom: '30%', //也可设置left和right设置距离来控制图表的大小
left: '8%',
right: '2%'
},
xAxis: {
data: [
'信息\n收集',
'环境\n控制',
'初始\n访问',
'命令\n/脚本\n执行',
'持久\n化控\n制',
'权限\n提升',
'绕过',
'凭证\n获取',
'信息\n发现',
'横向\n移动'
],
axisLine: {
show: false, //隐藏X轴轴线
lineStyle: {
color: '#01FCE3'
}
},
axisTick: {
show: false //隐藏X轴刻度
},
axisLabel: {
show: true,
textStyle: {
color: '#b4dbfc',
fontSize: 12 //X轴文字颜色,
}
}
},
yAxis: {
type: 'value',
name:'(个)',
nameTextStyle: {
color: '#b4dbfc'
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false,
lineStyle: {
color: '#FFFFFF',
fontSize: 12
}
},
axisLabel: {
show: true,
textStyle: {
color: '#b4dbfc'
}
}
},
series: [
{
name: '主营业务',
type: 'bar',
barWidth: 15,
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#00FFE3'
},
{
offset: 1,
color: '#4693EC'
}
])
}
},
data: [3, 6, 6, 2, 4, 5, 6, 6, 10, 5]
}
]
}
// 4.传入数据
this.chart.setOption(option)
}
}
}
</script>
<style lang="scss" scoped>
.chart-box {
position: relative;
height: 100%;
.chart-x {
color: #00FFE3;
position: absolute;
z-index: 100;
right: 10px;
top: 5px;
font-weight: bold;
font-size: 12px;
}
.chart-y {
color: #fff;
font-size: 12px;
position: absolute;
z-index: 100;
right: 10px;
bottom: 10px;
font-weight: bold;
}
}
</style>
......@@ -9,27 +9,28 @@
</tr>
<tr>
<td>1</td>
<td>1</td>
<td><el-tag type="warning" effect="plain">111</el-tag></td>
<td>1</td>
<td>01</td>
<td>2024.09.01</td>
<td><el-tag type="warning" effect="plain">体系审查</el-tag></td>
<td>发布第一版,V20240901</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td><el-tag type="warning" effect="plain">222</el-tag></td>
<td>2</td>
<td>02</td>
<td>2024.09.01</td>
<td><el-tag type="danger" effect="plain">车型审查</el-tag></td>
<td>发布第一版,v20240901</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td><el-tag type="warning" effect="plain">111</el-tag></td>
<td>1</td>
<td>03</td>
<td>2024.09.01</td>
<td><el-tag type="success" effect="plain">车型检验</el-tag></td>
<td>发布第一版,V20240901</td>
</tr>
</table>
<div class="desc">检验标准:汽车整车信息安全技术要求</div>
<!-- <div class="desc">检验标准:汽车整车信息安全技术要求</div> -->
</div>
</template>
<script>
......@@ -59,7 +60,7 @@ td {
}
th,
td {
padding: 2px;
padding: 10px;
text-align: center;
border-top: rgba(255, 255, 255, 0.3);
border-bottom: rgba(255, 255, 255, 0.3);
......@@ -67,7 +68,10 @@ td {
::v-deep {
.el-tag--plain {
background: transparent;
width: 60px;
width: 100px;
height: 30px;
line-height: 30px;
font-size: 14px;
}
}
.desc {
......
<template>
<div>
<table class="chart-table">
<tr>
<th>名称</th>
<th>更新时间</th>
<th>检验类型</th>
<th>内容详情</th>
</tr>
<tr>
<td>01</td>
<td>2024.09.01</td>
<td><el-tag type="warning" effect="plain">体系审查</el-tag></td>
<td>发布第一版,V20240901</td>
</tr>
<tr>
<td>02</td>
<td>2024.09.01</td>
<td><el-tag type="danger" effect="plain">车型审查</el-tag></td>
<td>发布第一版,v20240901</td>
</tr>
<tr>
<td>03</td>
<td>2024.09.01</td>
<td><el-tag type="success" effect="plain">车型检验</el-tag></td>
<td>发布第一版,V20240901</td>
</tr>
</table>
<!-- <div class="desc">检验标准:汽车整车信息安全技术要求</div> -->
</div>
</template>
<script>
export default {
name: 'card',
props: {
title: String
}
}
</script>
<style lang="scss" scoped>
.chart-table {
width: 100%;
border-collapse: collapse;
}
th {
background: #2c89f2;
color: #fff;
}
td {
font-size: 14px;
font-family: Microsoft YaHei, Microsoft YaHei-400;
font-weight: 400;
text-align: LEFT;
color: #b4dbfc;
background: rgba(44, 137, 242, 0.15);
}
th,
td {
padding: 10px;
text-align: center;
border-top: rgba(255, 255, 255, 0.3);
border-bottom: rgba(255, 255, 255, 0.3);
}
::v-deep {
.el-tag--plain {
background: transparent;
width: 100px;
height: 30px;
line-height: 30px;
font-size: 14px;
}
}
.desc {
font-size: 12px;
font-family: Microsoft YaHei, Microsoft YaHei-400;
font-weight: 400;
text-align: center;
color: #ffffff;
line-height: 24px;
margin-top: 10px;
}
</style>
......@@ -37,28 +37,50 @@
</div>
</card>
</div>
<div class="home-page-center"></div>
<div class="home-page-center">
<div class="center-back"></div>
<div
v-for="(item, key) in center"
:key="key"
:class="'center-item-' + (key + 1)"
>
<el-image :src="item.img" alt="" class="center-item-img" />
<div class="center-item-title">
{{ item.title }}
</div>
<div class="center-item-number">
{{ item.number }}
</div>
</div>
</div>
<div class="home-page-other">
<cardRight title="变更检验内容-重点">
<cardRight title="信息安全变更的检验内容">
<table-chart></table-chart>
</cardRight>
<cardRight title="检验内容变更方式占比">
<pieChart></pieChart>
<cardRight title="软件升级变更的检验内容">
<table-chart-2></table-chart-2>
</cardRight>
<cardRight title="知识库">
<cardRight title="汽车安全场景知识库">
<div style="height: 24vh">
<planChart></planChart>
<planChart2></planChart2>
</div>
</cardRight>
</div>
</div>
<div class="home-page-bottom">
<div class="bottom-list">
<div v-for="(item, key) in bottom" :key="key" class="bottom-card" @click="$router.push(item.link)">
<div
v-for="(item, key) in bottom"
:key="key"
class="bottom-item"
@click="$router.push(item.link)"
>
<div class="bottom-card">
<el-image :src="item.img" class="bottomd-card-img" />
<div class="bottom-card-title">
{{ item.title }}
</div>
</div>
</div>
</div>
</div>
......@@ -68,8 +90,11 @@
import card from '../components/homeComponents/card.vue'
import cardRight from '../components/homeComponents/cardRight.vue'
import planChart from '../components/homeComponents/planChart.vue'
import planChart2 from '../components/homeComponents/planChart2.vue'
import pieChart from '../components/homeComponents/pieChart.vue'
import table from '../components/homeComponents/table.vue'
import table2 from '../components/homeComponents/table2.vue'
import { mapGetters } from 'vuex'
export default {
name: 'HomePage',
components: {
......@@ -77,90 +102,158 @@ export default {
planChart,
cardRight,
pieChart,
'table-chart':table
planChart2,
'table-chart': table,
'table-chart-2': table2
},
data() {
return {
info: [
{
title: '审查要点(条)',
number: '22',
number: '47',
img: require('@/assets/images/home/card1.png')
},
{
title: '审查细则(条)',
number: '73',
number: '161',
img: require('@/assets/images/home/card2.png')
},
{
title: '审查场景(条)',
number: '22',
number: '121',
img: require('@/assets/images/home/card3.png')
},
{
title: '测试用例(条)',
number: '73',
number: '122',
img: require('@/assets/images/home/card4.png')
}
],
soft: [
{
title: '审查要点(条)',
number: '142',
number: '156',
img: require('@/assets/images/home/card5.png')
},
{
title: '审查细则(条)',
number: '345',
number: '189',
img: require('@/assets/images/home/card6.png')
},
{
title: '审查场景(条)',
number: '545',
number: '266',
img: require('@/assets/images/home/card7.png')
},
{
title: '测试用例(条)',
number: '556',
number: '39',
img: require('@/assets/images/home/card8.png')
}
],
bottom: [
{
title: '标准文本',
link:'/setting/standard',
link: '/setting/standard',
img: require('@/assets/images/home/bottom1.png')
},
{
title: '检测要点',
link: '/setting/standardPoint',
img: require('@/assets/images/home/bottom2.png')
},
{
title: '实施细则',
link: '/setting/standardTerms',
img: require('@/assets/images/home/bottom3.png')
}
],
center: [
{
title: '数据抓包',
number: 13,
img: require('@/assets/images/home/box1.png')
},
{
title: '测试用例',
link: '/setting/standardTerms',
img: require('@/assets/images/home/bottom4.png')
title: '访问控制',
number: 9,
img: require('@/assets/images/home/box2.png')
},
{
title: '检测方案',
link: '/plan/customized',
img: require('@/assets/images/home/bottom5.png')
title: '扫描漏洞',
number: 9,
img: require('@/assets/images/home/box5.png')
},
{
title: '拒绝服务',
number: 9,
img: require('@/assets/images/home/box4.png')
},
{
title: '内容评审',
link: '/review/review/createReview',
img: require('@/assets/images/home/bottom6.png')
title: '非授权访问写入',
number: 13,
img: require('@/assets/images/home/box3.png')
}
]
}
},
cumputed: {
...mapGetters(['roles'])
},
created() {},
mounted() {},
mounted() {
let role = this.$store.state.user.roles[0]
this.bottom.push()
switch (role) {
case 'testing-institution':
this.bottom = this.bottom.concat(
{
title: '检测方案',
link: '/plan/customized',
img: require('@/assets/images/home/bottom5.png')
},
{
title: '内容评审',
link: '/review/review/createReview',
img: require('@/assets/images/home/bottom6.png')
}
)
break
case 'government-department':
this.bottom = this.bottom.concat({
title: '车企档案',
link: '/basic/archives?view=2',
img: require('@/assets/images/home/bottom5.png')
})
break
case 'standard_change_review':
this.bottom = this.bottom.concat(
{
title: '我的待审',
link: '/review/wait',
img: require('@/assets/images/home/bottom5.png')
},
{
title: '我的已审',
link: '/review/already',
img: require('@/assets/images/home/bottom6.png')
}
)
break
case 'admin':
this.bottom = this.bottom.concat(
{
title: '车企档案',
link: '/basic/archives?view=2',
img: require('@/assets/images/home/bottom5.png')
},
{
title: '权限管理',
link: '/system/role',
img: require('@/assets/images/home/bottom6.png')
}
)
break
default:
break
}
},
methods: {}
}
</script>
......@@ -91,8 +91,8 @@ export default {
logoImg: logoImg,
codeUrl: '',
loginForm: {
username: 'admin',
password: '123456@a',
username: '',
password: '',
rememberMe: false,
code: '',
uuid: ''
......
......@@ -248,14 +248,14 @@ export default {
let queryParams = {
inspectionTtem:this.inspectionItem,
inspectionStandardId: this.task.inspectionStandardId,
inspectionstandardName: this.task.inspectionstandardName,
inspectionStandardName: this.task.inspectionStandardName,
inspectCarCompanyName: this.task.inspectCarCompanyName,
carModel: this.task.carModel,
testorganizationName: this.task.testorganizationName,
testOrganizationName: this.task.testOrganizationName,
createTime: this.task.createTime,
carExperimentRequest: {
regulationName: this.task.inspectionStandardName,
matchUseCases: this.task.useCaseNo.split(',')
matchUseCases: this.task.useCaseNo?this.task.useCaseNo.split(','):[]
}
}
console.log(queryParams)
......
......@@ -185,12 +185,17 @@ export default {
})
},
async handleConfirm() {
const res = await this.$refs.check.getValidateVaule()
this.$refs.form.validate(valid => {
this.$refs.form.validate(async valid => {
if (valid) {
let form = JSON.parse(JSON.stringify(this.form))
if(form.inspectionItem.indexOf('trfis') !== -1){
const res = await this.$refs.check.getValidateVaule()
form.specifyPlan = JSON.stringify(res.record)
form.useCaseNo = res.codes
}
form.inspectionItem = form.inspectionItem.join(',')
add(form).then(res => {
if (res.code == 200) {
......
......@@ -45,6 +45,14 @@
></right-toolbar>
</el-form-item> -->
</el-form>
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
style="margin-bottom: 10px"
@click="handleAdd"
>定制方案</el-button
>
<el-table
v-if="refreshTable"
v-loading="loading"
......@@ -263,7 +271,11 @@ export default {
path: '/plan/customized?id=' + id
})
},
handleAdd() {
this.$router.push({
path: '/plan/customized'
})
},
getComponentSelect() {
componentSelect({
pageNum: 1,
......
......@@ -34,7 +34,7 @@
clearable
>
<el-option
v-for="dict in dict.type.type"
v-for="dict in dict.type.cene_type_wait"
:key="dict.value"
:label="dict.label"
:value="dict.value"
......@@ -78,14 +78,7 @@
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
label="评审单编号"
sortable
min-width="200"
align="left"
prop="id"
>
</el-table-column>
<el-table-column
label="检验标准"
sortable
......@@ -146,7 +139,8 @@
sortable
min-width="200"
align="left"
prop="innovationBaseResult"
prop="decision"
:formatter="formatDecision"
></el-table-column>
<el-table-column
label="操作"
......@@ -215,7 +209,9 @@
import page from '@/mixins/page'
import dialog from './components/dialog.vue'
import { getDicts } from '../../../api/system/dict/data'
import { listInnovationFinsh } from '../../../api/innovation/innovation';
import { listReviewerFinish } from '@/views/review/already';
export default {
components: {
'yan-dialog': dialog
......@@ -252,7 +248,8 @@ export default {
}
},
reviewTypeList:[],
typeList:[]
typeList:[],
reviewStatusList:[]
}
},
watch: {
......@@ -270,6 +267,7 @@ export default {
gainDictDataList(){
const obj = 'scene_type_wait'
const obj1= 'review_type'
const obj2= 'system_review_test'
// 获取 review_type 字典数据
getDicts('review_type').then(response => {
this.reviewTypeList = response.data || []
......@@ -278,16 +276,45 @@ export default {
// 获取 type 字典数据
getDicts('scene_type_wait').then(response => {
this.typeList = response.data || []
})
// 获取 system_review_test 字典数据
getDicts('system_review_test').then(response => {
this.reviewStatusList = response.data || []
})
},
formatOperationSort(row,column) {
const reviewTypeList= this.reviewTypeList.find(item => item.dictValue === row.operationSort)
return reviewTypeList ? reviewTypeList.dictLabel : ''
formatOperationSort(row, column,cellValue) {
switch (cellValue) {
case 'ADD_SCENE':
return '+新增审查场景';
case 'ADD_DETAILS':
return '+新增审查细则';
case 'ADD_KEYPOINT':
return '+新增审查要点';
case 'DELETE_SCENE':
return '×删除审查场景';
case 'DELETE_DETAILS':
return '×删除审查细则';
case 'DELETE_KEYPOINT':
return '×删除审查要点';
case 'ADD_USECASE':
return '+新增测试用例';
case 'DELETE_USECASE':
return '×删除测试用例';
case 'UPDATE_USECASE':
return '修改测试用例';
default:
return cellValue
}
},
formatType(row,column){
const typeList= this.typeList.find(item => item.dictValue === row.type)
return typeList ? typeList.dictLabel : ''
},
formatReviewStatus(row,column){
const reviewStatusList= this.reviewStatusList.find(item => item.dictValue === row.decision)
return reviewStatusList ? reviewStatusList.dictLabel : ''
},
/* 关闭移交弹窗-保存*/
handleClose() {
this.handOverDialog.visible = false
......@@ -345,10 +372,16 @@ export default {
//打印参数
// console.log(this.queryParams)
// console.log(6666)
listInnovationFinsh(this.queryParams).then(response => {
listReviewerFinish(this.queryParams).then(response => {
this.tableData = response.rows
}).catch(error => {console.error("Error fetching data:", error)})
},
formatDecision(row, column) {
if (row.decision === 'PASS') {
return '通过'}else if (row.decision === 'REJECT') {
return '不通过'}
}
},
/* 重置*/
resetQuery() {
this.queryParams.page = 1
......@@ -359,9 +392,9 @@ export default {
this.handleQuery()
},
/* 数据字典转换*/
}
}
</script>
<style lang="scss" scoped>
/* 标题样式 */
......
......@@ -386,6 +386,9 @@ export default {
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
//下拉框 选择检验类型
......@@ -414,9 +417,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -526,7 +529,7 @@ export default {
const aa = response
if(aa){
alert('提交成功')
this.$router.push({path: '/login'});
this.$router.push({path: '/review/createReview'});
}else{
alert('提交失败')
}
......
......@@ -331,6 +331,9 @@ export default {
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
//下拉框 选择检验类型
......@@ -359,9 +362,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -472,7 +475,7 @@ export default {
const aa = response
if(aa){
alert('提交成功')
this.$router.push({path: '/login'});
this.$router.push({path: '/review/createReview'});
}else{
alert('提交失败')
}
......
......@@ -431,6 +431,9 @@ export default {
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
//下拉框 选择检验类型
......@@ -459,9 +462,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -555,6 +558,7 @@ export default {
.then(response => {
this.receivedScene = response
this.newResDataAdd.newText = this.receivedScene.scene
this.newResDataAdd.reviewSceneId = this.receivedScene.reviewSceneId
this.dialogVisibleScene = true
})
.catch(error => {
......@@ -575,13 +579,15 @@ export default {
this.newResDataAdd.newText = this.newReviewSceneText
this.newResDataAdd.remark = this.newReviewSceneRemark
this.newResDataAdd.reviewSceneId = this.selectedSceneSave.id
console.log(this.newResDataAdd, '提交之前')
testInitatereviewAdd(this.newResDataAdd)
.then(response => {
const aa = response
if(aa){
alert('提交成功')
this.$router.push({path: '/login'});
this.$router.push({path: '/review/createReview'});
}else{
alert('提交失败')
}
......
......@@ -454,7 +454,7 @@ export default {
const aa = response
if (aa) {
alert('提交成功')
this.$router.push({ path: '/login' })
this.$router.push({ path: '/review/createReview' })
} else {
alert('提交失败')
}
......
......@@ -349,6 +349,9 @@
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
//下拉框 选择检验类型
......@@ -377,9 +380,9 @@
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -488,7 +491,7 @@
const aa = response
if(aa){
alert('提交成功')
this.$router.push({path: '/login'});
this.$router.push({path: '/review/createReview'});
}else{
alert('提交失败')
}
......
......@@ -318,6 +318,9 @@ export default {
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
// 表单提交验证
......@@ -353,9 +356,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -465,7 +468,7 @@ export default {
const aa = response
if (aa) {
alert('提交成功')
this.$router.push({ path: '/login' })
this.$router.push({ path: '/review/createReview' })
} else {
alert('提交失败')
}
......
......@@ -219,12 +219,26 @@
<el-col :span="18">
<el-form-item label="">
<div class="assessor-text">
评审人员:
<div
v-for="(reviewer, index) in this.receivedReviewer"
:key="index"
style="margin-bottom: 10px"
style="
margin-bottom: 30px;
display: flex;
position: relative;
flex-flow: row;
"
>
{{ reviewer.dept.deptName }}:{{ reviewer.dept.leader }}
<p
style="
display: inline-block;
white-space: normal;
word-wrap: break-word;
"
>
{{ reviewer.nickName }} ({{ reviewer.dept.deptName }})
</p>
</div>
</div>
</el-form-item>
......@@ -315,7 +329,7 @@ export default {
standard: '',
type: '',
keypointId:'',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
......@@ -396,6 +410,9 @@ export default {
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
//下拉框 选择检验类型
......@@ -424,9 +441,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -484,7 +501,7 @@ export default {
this.receivedkeypoints = response
//keypointId => /review/scene/change/task/getKeyPointList
//keypoint => /review/scene/change/task/getKeyPointList
this.newResDataAdd.keypointId = this.receivedkeypoints.data.keypointId
this.newResDataAdd.keypoint = this.receivedkeypoints.data.keypoint
this.dialogVisibleKeypoints = true
......@@ -536,7 +553,7 @@ export default {
const aa = response
if (aa) {
alert('提交成功')
this.$router.push({ path: '/login' })
this.$router.push({ path: '/review/createReview' })
} else {
alert('提交失败')
}
......
......@@ -27,9 +27,7 @@
placeholder="车型检验"
@change="handleSelectType(formModel.tiaokuanfenlei)"
>
<el-option
:value = '车型检验'
/>
<el-option :value="'test'" />
</el-select>
</el-form-item>
</el-col>
......@@ -97,7 +95,7 @@
<el-input
v-model="formModel.yonglibianhao"
placeholder="请输入用例编号"
:autosize="{ minRows: 3, maxRows: 6 }"
:autosize="{ minRows: 3, maxRows: 6 }"
></el-input>
</el-form-item>
</el-col>
......@@ -105,7 +103,6 @@
<el-col :span="10"><p></p></el-col>
</el-row>
<el-row>
<el-col :span="3"><p></p></el-col>
<el-col :span="8">
......@@ -179,12 +176,13 @@
<script>
import {
testType,
testTypeUse,
testKeypoint,
testDetails,
testInitatereviewAdd,
testReviewer
} from '@/api/task/test'
import { stringify } from 'postcss';
export default {
name: 'ReviewData',
......@@ -204,6 +202,17 @@ export default {
standardId: '',
keypointId: '',
detailsId: '',
newResDataUse: {
offset: {
offset: 0,
limit: 9999
},
searchFields: {
serialNumber: '',
requirements: ''
}
},
stringifyNewResDataUse: '',
newResData: {
pageNum: '1',
pageSize: '10',
......@@ -293,7 +302,7 @@ export default {
yonglibianhao: '',
shenchaxize: '',
// shenchachangjing: '',
yonglimiaoshu:'',
yonglimiaoshu: ''
}
}
},
......@@ -307,7 +316,10 @@ export default {
.catch(error => {
console.log('testReviewer方法出错', error)
})
this.newResData.type = 'car'
this.newResData.type = 'car'
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
},
methods: {
//下拉框 选择检验类型
......@@ -336,9 +348,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement() {
this.newResData.standardNo = this.pageIndexSec.standardNo
this.newResData.standardId = this.pageIndexSec.id
this.newResData.name = this.pageIndexSec.name
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
......@@ -352,18 +364,10 @@ export default {
},
// 按钮-选择标准要求
handleReSelectRequirements() {
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
// //operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
// this.newResDataAdd.inspectStandardId = this.pageIndexSec.id
// this.newResDataAdd.inspectStandardNo = this.pageIndexSec.standardNo
// this.newResDataAdd.operationSort = this.pageIndexSec.operationSort
// //这里newResData有type name inspectstandardNo inspectStandardId
this.stringifyNewResDataUse = JSON.stringify(this.newResDataUse)
testType(this.newResData)
testTypeUse(this.stringifyNewResDataUse)
.then(response => {
this.receivedRequirements = response
......@@ -374,7 +378,7 @@ export default {
this.dialogVisible = true
})
.catch(error => {
console.log('testType方法出错', error)
console.log('testTypeUse方法出错', error)
})
//弹窗展示ReceivedRequirements内容 并且可以选择更改为哪一条标准要求
},
......@@ -439,11 +443,11 @@ export default {
this.newResDataAdd.newText = this.formModel.yonglibianhao
this.newResDataAdd.remark = this.newReviewSceneRemark
this.newResDataAdd.usecaseId = this.formModel.yonglibianhao
this.newResDataAdd.usecaseDescribe = this.formModel.yonglimiaoshu
this.newResDataAdd.reviewUsecaseId = ''
this.newResDataAdd.type = 'car'
this.newResDataAdd.usecaseId = this.formModel.yonglibianhao
this.newResDataAdd.usecaseDescribe = this.formModel.yonglimiaoshu
this.newResDataAdd.reviewUsecaseId = ''
this.newResDataAdd.type = 'car'
console.log(this.newResDataAdd, '提交之前')
testInitatereviewAdd(this.newResDataAdd)
......@@ -451,7 +455,7 @@ export default {
const aa = response
if (aa) {
alert('提交成功')
this.$router.push({ path: '/login' })
this.$router.push({ path: '/review/createReview' })
} else {
alert('提交失败')
}
......@@ -463,6 +467,10 @@ export default {
//remark => 由填写的时候赋值
// this.newResDataAdd.newText = newText
// this.newResDataAdd.remark = remark
},
//字符串化
stringify(obj) {
return JSON.stringify(obj)
}
},
watch: {
......
......@@ -645,7 +645,7 @@ export default {
const aa = response
if (aa) {
alert('提交成功')
this.$router.push({ path: '/login' })
this.$router.push({ path: '/review/createReview' })
} else {
alert('提交失败')
}
......
......@@ -299,14 +299,29 @@ export default {
return '×删除审查细则';
case 'DELETE_KEYPOINT':
return '×删除审查要点';
case 'ADD_USECASE':
return '+新增测试用例';
case 'DELETE_USECASE':
return '×删除测试用例';
case 'UPDATE_USECASE':
return '修改测试用例';
default:
return cellValue
}
},
formatType(row, column) {
const typeList = this.typeList.find(item => item.dictValue === row.type)
return typeList ? typeList.dictLabel : ''
formatType(row, column,cellValue) {
switch(cellValue){
case'car':
return '车型审查';
case'system':
return '体系审查';
case'test':
return '车型检验';
default:
return cellValue
}
},
formatTaskResult(row, column, cellValue) {
switch (cellValue) {
......
......@@ -78,14 +78,7 @@
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
label="评审单编号"
sortable
min-width="200"
align="left"
prop="id"
>
</el-table-column>
<el-table-column
label="检验标准"
sortable
......@@ -301,11 +294,30 @@ export default {
this.typeList = response.data || []
})
},
formatOperationSort(row, column) {
const reviewTypeList = this.reviewTypeList.find(
item => item.dictValue === row.operationSort
)
return reviewTypeList ? reviewTypeList.dictLabel : ''
formatOperationSort(row, column,cellValue) {
switch (cellValue) {
case 'ADD_SCENE':
return '+新增审查场景';
case 'ADD_DETAILS':
return '+新增审查细则';
case 'ADD_KEYPOINT':
return '+新增审查要点';
case 'DELETE_SCENE':
return '×删除审查场景';
case 'DELETE_DETAILS':
return '×删除审查细则';
case 'DELETE_KEYPOINT':
return '×删除审查要点';
case 'ADD_USECASE':
return '+新增测试用例';
case 'DELETE_USECASE':
return '×删除测试用例';
case 'UPDATE_USECASE':
return '修改测试用例';
default:
return cellValue
}
},
formatType(row, column) {
console.log('row.type:', row.type);
......
......@@ -95,7 +95,11 @@
:file-list="fileList"
>
<el-button size="small" type="primary">更新模板文件</el-button>
<div slot="tip" class="el-upload__tip"></div>
<div slot="tip" class="el-upload__tip">
<div v-if="model.path">
<el-link :href="model.path">{{ model.name }}</el-link>
</div>
</div>
</el-upload>
</el-form-item>
<el-form-item label="检验结论" prop="conclusion">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment