Commit 3cc82046 authored by jiaxu.yan's avatar jiaxu.yan

Merge branch 'develop' into developer/yanjiaxu

parents d2d0a05c 56834dbc
......@@ -44,17 +44,17 @@
</el-form>
<el-row :gutter="10" class="mb10">
<el-col :span="1.5">
<el-button
v-hasPermi="['setting:scene:add']"
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- v-hasPermi="['setting:scene:add']"-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- >新增</el-button-->
<!-- >-->
<!-- </el-col>-->
<right-toolbar
:show-search.sync="showSearch"
@queryTable="loadData"
......
<template>
<el-dialog
:visible.sync="dialogManger.dialogVisible"
:title="modelTitle"
width="1200"
append-to-body
destroy-on-close
:before-close="handleClose"
>
<el-table
v-loading="loading"
style="width: 100%; min-height: 50vh"
border
:scroll-x="'1500px'"
:default-sort="{ prop: 'createTime', order: 'descending' }"
:data="tableData"
>
<el-table-column type="index" width="60" label="序号" align="center">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
prop="section"
label="测试场景"
min-width="200"
align="center"
>
</el-table-column>
<el-table-column
prop="require"
label="测试类型"
min-width="200"
align="center"
>
</el-table-column>
<el-table-column
prop="test"
label="用例编号"
min-width="200"
align="center"
>
</el-table-column>
<el-table-column
prop="test"
label="用例名称"
min-width="200"
align="center"
>
</el-table-column>
</el-table>
</el-dialog>
</template>
<script>
import page from '@/mixins/page'
export default {
mixins: [page],
props: {
dialogManger: {
type: Object,
default: () => {
return {
dialogVisible: false,
source: {}
}
}
}
},
data() {
return {
tableData: []
}
},
computed: {
modelTitle: function () {
return '检验内容'
}
},
created() {},
methods: {
handleClose() {
this.dialogManger.dialogVisible = false
}
}
}
</script>
<style scoped></style>
......@@ -87,14 +87,8 @@
></right-toolbar>
</el-row>
<div v-if="refreshTable && Number(queryParams.type) === 1">
{{ '体系审查' }}
</div>
<div v-if="refreshTable && Number(queryParams.type) === 2">
{{ '车型审查' }}
</div>
<el-table
v-if="refreshTable && Number(queryParams.type) === 3"
v-if="refreshTable && Number(queryParams.type) !== 3"
v-loading="loading"
style="width: 100%; min-height: 50vh"
border
......@@ -122,24 +116,74 @@
>
</el-table-column>
<el-table-column
prop="test"
label="检验结果描述(符合)"
prop="resultNO"
label="更新时间"
min-width="200"
align="center"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column
prop="check"
label="检验结果描述(不符合)"
min-width="200"
label="操作"
align="left"
min-width="160"
fixed="right"
class-name="fixed-width"
>
<template slot-scope="scope">
<el-button
v-hasPermi="['setting:standard:update']"
plain
size="mini"
type="text"
@click="handleUpdate(scope.row)"
>检验内容</el-button
>
</template>
</el-table-column>
</el-table>
<el-table
v-if="refreshTable && Number(queryParams.type) === 3"
v-loading="loading"
style="width: 100%; min-height: 50vh"
border
:scroll-x="'1500px'"
:default-sort="{ prop: 'createTime', order: 'descending' }"
:data="tableData"
>
<el-table-column type="index" width="60" label="序号" align="center">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
prop="section"
label="标准章节"
min-width="200"
align="center"
>
</el-table-column>
<el-table-column
prop="require"
label="标准要求"
min-width="200"
align="center"
>
</el-table-column>
<el-table-column
prop="test"
label="标准测试方法"
min-width="200"
align="center"
>
</el-table-column>
<el-table-column
prop="resultNO"
label="更新时间"
min-width="200"
align="left"
align="center"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
......@@ -158,15 +202,13 @@
plain
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button
@click="handleUpdate(3, scope.row)"
>检验内容</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-if="queryParams.type > 1"
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
......@@ -174,13 +216,21 @@
@pagination="loadData"
>
</pagination>
<vehiclemodel-dialog
:dialog-manger="vehicleModelDialogManger"
@close="vehicleModelDialogManger.dialogVisible = false"
>
</vehiclemodel-dialog>
</page-standard-option>
</template>
<script>
import page from '@/mixins/page'
import { mapGetters } from 'vuex'
import vehicleModelDialog from './components/vehicleModelDialog'
export default {
components: {},
components: {
'vehiclemodel-dialog': vehicleModelDialog
},
dicts: ['sys_scene_type'],
mixins: [page],
data() {
......@@ -196,12 +246,17 @@ export default {
ask: '2',
type: '3'
},
vehicleModelDialogManger: {
dialogVisible: false,
refreshList: false,
source: {}
},
refreshList: false
}
},
computed: {
...mapGetters(['standard'])
},
// computed: {
// ...mapGetters(['standard'])
// },
watch: {
refreshList(val) {
if (val) {
......@@ -209,15 +264,27 @@ export default {
this.refreshList = false
}
},
standard(val) {
'vehicleModelDialogManger.refreshList'(val) {
if (val) {
console.log(val)
this.loadData()
this.vehicleModelDialogManger.refreshList = false
}
}
// standard(val) {
// if (val) {
// console.log(val)
// }
// }
},
methods: {
handlePointUpdate() {},
handleUpdate() {}
handleUpdate(id, row) {
switch (id) {
case 3:
this.vehicleModelDialogManger.dialogVisible = true
this.vehicleModelDialogManger.dialogEditId = row
break
}
}
}
}
</script>
......
<template>
<page-standard>
<page-standard-option>
<div slot="tab">
<el-form
ref="queryForm"
:model="screen"
size="small"
:inline="true"
class="tab-form"
>
<el-form-item label="对应标准">
<el-select v-model="screen.ask" clearable style="width: 100%">
<el-option
key="1"
value="1"
label="汽车整车信息安全技术要求"
></el-option>
<el-option key="2" value="2" label="xxxxx软件升级要求"></el-option>
</el-select>
</el-form-item>
</el-form>
<!-- <el-form-->
<!-- ref="queryForm"-->
<!-- :model="screen"-->
<!-- size="small"-->
<!-- :inline="true"-->
<!-- class="tab-form"-->
<!-- >-->
<!-- <el-form-item label="对应标准">-->
<!-- <el-select v-model="screen.ask" clearable style="width: 100%">-->
<!-- <el-option-->
<!-- key="1"-->
<!-- value="1"-->
<!-- label="汽车整车信息安全技术要求"-->
<!-- ></el-option>-->
<!-- <el-option key="2" value="2" label="xxxxx软件升级要求"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
</div>
<el-table
v-loading="loading"
......@@ -31,21 +31,26 @@
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="报告模板分类" sortable prop="type" align="left">
<el-table-column label="模板分类" sortable prop="type" align="left">
</el-table-column>
<el-table-column label="报告模板编号" sortable prop="num" align="left">
<el-table-column label="模板编号" sortable prop="num" align="left">
</el-table-column>
<el-table-column label="报告模板名称" sortable prop="name" align="left">
</el-table-column>
<el-table-column label="报告模板文件" prop="file" align="left">
</el-table-column>
<el-table-column
label="检验结论"
prop="conclusion"
width="400"
align="left"
>
<el-table-column label="模板名称" sortable prop="name" align="left">
<template slot-scope="scope">
<span class="span-color" @click="viewTemplate">{{
scope.row.name
}}</span>
</template>
</el-table-column>
<!-- <el-table-column label="报告模板文件" prop="file" align="left">-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- label="检验结论"-->
<!-- prop="conclusion"-->
<!-- width="400"-->
<!-- align="left"-->
<!-- >-->
<!-- </el-table-column>-->
<el-table-column label="更新时间" align="left" sortable prop="createTime">
</el-table-column>
<el-table-column
......@@ -59,22 +64,21 @@
v-hasPermi="['setting:template:update']"
size="mini"
type="text"
icon="el-icon-edit"
plain
@click="handleUpdate(scope.row)"
>
修改</el-button
>
<el-button
v-hasPermi="['setting:template:view']"
size="mini"
type="text"
plain
icon="el-icon-arrow-right"
@click="viewTemplate(scope.row)"
>
查看模板</el-button
上传新文件</el-button
>
<!-- <el-button-->
<!-- v-hasPermi="['setting:template:view']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- plain-->
<!-- icon="el-icon-arrow-right"-->
<!-- @click="viewTemplate(scope.row)"-->
<!-- >-->
<!-- 查看模板</el-button-->
<!-- >-->
</template>
</el-table-column>
</el-table>
......@@ -120,9 +124,10 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</page-standard>
</page-standard-option>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
data() {
return {
......@@ -173,6 +178,16 @@ export default {
]
}
},
computed: {
...mapGetters(['standard'])
},
watch: {
standard(val) {
if (val) {
console.log(val)
}
}
},
methods: {
getList() {},
handleUpdate(row) {
......@@ -221,3 +236,10 @@ export default {
}
}
</script>
<style scoped>
.span-color {
color: #1890ff;
text-decoration: underline;
cursor: pointer;
}
</style>
<template>
<page-standard>
<el-table
:data="tableData"
style="width: 100%"
border
@cell-mouse-enter="cellMouseEnter"
@cell-mouse-leave="cellMouseLeave"
>
<el-table-column
prop="test"
width="240"
align="center"
label="测试场景\测试类型"
/>
<el-table-column prop="file" align="center" label="文件审核">
<template slot-scope="scope">
<div v-if="scope.row.file === '1'" class="table-span-style">
{{ '√' }}
</div>
</template>
</el-table-column>
<el-table-column prop="missedScan" align="center" label="系统服务漏扫" />
<el-table-column prop="portScanning" align="center" label="端口扫描" />
<el-table-column prop="tampering" align="center" label="篡改伪造" />
<el-table-column prop="fuzzing" align="center" label="模糊测试" />
<el-table-column prop="fuzzing" align="center" label="重放攻击" />
<el-table-column prop="fuzzing" align="center" label="非授权安装" />
<el-table-column prop="fuzzing" align="center" label="非授权访问" />
<el-table-column prop="fuzzing" align="center" label="非授权写入" />
<el-table-column prop="fuzzing" align="center" label="防病毒测试" />
<el-table-column prop="fuzzing" align="center" label="数据泄露" />
</el-table>
</page-standard>
</template>
<script>
export default {
name: 'Index',
data() {
return {
tableData: [
{
test: 'TBOX-蜂窝以太网接口',
file: '1',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: 'WiFi AP接口',
file: '',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: 'WiFi Client接口',
file: '1',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: '充电以太网接口',
file: '',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: 'CAN 诊断接口(OBD)',
file: '',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: '以太网诊断接口(OBD)',
file: '',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: '车载摄像头以太网接口(无线)',
file: '',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
},
{
test: '第三方应用软件',
file: '',
missedScan: '',
portScanning: '',
tampering: '',
fuzzing: ''
}
],
formConfig: {
isNoHoverColor: ''
}
}
},
methods: {
/** 鼠标悬浮时的操作 */
cellMouseEnter(e, row, cell, column) {
var selrange = document.getElementsByClassName(row.id)
console.log('row', row)
console.log('cell', cell)
console.log('selrange', selrange)
if (this.formConfig.isNoHoverColor) {
cell.style.backgroundColor = ''
for (var i = 0; i < selrange.length; i++) {
selrange[i].style.backgroundColor = ''
}
} else {
cell.style.backgroundColor = 'pink'
for (var i = 0; i < selrange.length; i++) {
selrange[i].style.backgroundColor = '#fec171'
}
}
},
/** 鼠标离开时的操作 */
cellMouseLeave(e, row, cell) {
var selrange = document.getElementsByClassName(row.id)
for (var i = 0; i < selrange.length; i++) {
selrange[i].style.backgroundColor = ''
}
}
}
}
</script>
<style scoped>
::v-deep .el-table__body tr:hover > td {
background-color: #fec171 !important;
}
.table-span-style {
text-align: center;
color: #1890ff;
}
</style>
......@@ -50,8 +50,8 @@
<el-col :span="8">
<el-form-item label="任务状态" prop="taskStatus">
<el-select
disabled
v-model="model.taskStatus"
disabled
style="width: 100%"
placeholder="请选择"
clearable
......@@ -421,6 +421,7 @@ export default {
],
data() {
return {
websock: null,
name: '',
formType: '1',
showTestScenario: false,
......@@ -561,13 +562,47 @@ export default {
}
},
created() {
this.initWebSocket()
this.getManufacturer()
this.$nextTick(() => {
this.leaderTop()
this.rowDrop()
})
},
destroyed() {
this.websock.close() // 离开路由之后断开websocket连接
},
methods: {
initWebSocket() {
// 初始化weosocket
const wsuri = 'ws://49.232.167.247:22032/websocket/1'
this.websock = new WebSocket(wsuri)
this.websock.onmessage = this.websocketonmessage
// this.websock.onopen = this.websocketonopen
this.websock.onerror = this.websocketonerror
this.websock.onclose = this.websocketclose
},
// websocketonopen() {
// // 连接建立之后执行send方法发送数据
// const actions = { test: '12345' }
// this.websocketsend(JSON.stringify(actions))
// },
websocketonerror() {
// 连接建立失败重连
this.initWebSocket()
},
websocketonmessage(e) {
// 数据接收
console.log('后端返回数据', e)
},
// websocketsend(Data) {
// // 数据发送
// this.websock.send(Data)
// },
websocketclose(e) {
// 关闭
console.log('断开连接', e)
},
/** 组长角色置顶逻辑 */
leaderTop() {
if (this.tableData.length !== 0) {
......
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