2024-11-18 22:04:59 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<el-tabs type="border-card">
|
2024-12-04 21:36:12 +08:00
|
|
|
|
<el-tab-pane label="预检测项目">
|
2024-11-19 19:34:00 +08:00
|
|
|
|
<div class="form-grid">
|
|
|
|
|
|
<el-checkbox
|
|
|
|
|
|
v-for="(item, index) in detectionOptions"
|
|
|
|
|
|
v-model="item.selected"
|
|
|
|
|
|
:key="index"
|
|
|
|
|
|
:label="item.name"
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
2024-11-19 19:34:00 +08:00
|
|
|
|
></el-checkbox
|
|
|
|
|
|
>
|
2024-11-21 23:02:43 +08:00
|
|
|
|
<!-- disabled="true" -->
|
2024-11-19 19:34:00 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
|
</el-tabs>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
|
|
|
|
|
|
<div class = "test-dialog">
|
|
|
|
|
|
<div class="dialog-left">
|
|
|
|
|
|
<el-steps direction="vertical" :active="activeIndex" :process-status="currentStepStatus" finish-status="success">
|
|
|
|
|
|
<el-step title="源通讯校验" />
|
|
|
|
|
|
<el-step title="设备通讯校验" />
|
|
|
|
|
|
<el-step title="协议校验" />
|
|
|
|
|
|
<el-step title="相序校验" />
|
|
|
|
|
|
<el-step title="检测完成" />
|
|
|
|
|
|
</el-steps>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dialog-right">
|
2024-11-20 11:22:05 +08:00
|
|
|
|
<el-collapse v-model="collapseActiveName" accordion>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
<el-collapse-item title="源通讯校验" name="1">
|
2024-11-20 21:30:05 +08:00
|
|
|
|
<div class = "div-log">
|
2024-11-21 23:02:43 +08:00
|
|
|
|
<p v-for="(item, index) in step1InitLog" :key="index" :style="{color:item.type==='error'?'#F56C6C':'var(--el-text-color-regular)'}">
|
|
|
|
|
|
{{ item.log }} <br />
|
|
|
|
|
|
</p>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</el-collapse-item>
|
|
|
|
|
|
<el-collapse-item title="设备通讯校验" name="2">
|
2024-11-20 21:30:05 +08:00
|
|
|
|
<div class = "div-log">
|
2024-11-21 23:02:43 +08:00
|
|
|
|
<p v-for="(item, index) in step2InitLog" :key="index" :style="{color:item.type==='error'?'#F56C6C':'var(--el-text-color-regular)'}">
|
|
|
|
|
|
{{ item.log }} <br />
|
|
|
|
|
|
</p>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</el-collapse-item>
|
|
|
|
|
|
<el-collapse-item title="协议校验" name="3">
|
2024-11-20 21:30:05 +08:00
|
|
|
|
<div class = "div-log">
|
2024-11-21 23:02:43 +08:00
|
|
|
|
<p v-for="(item, index) in step3InitLog" :key="index" :style="{color:item.type==='error'?'#F56C6C':'var(--el-text-color-regular)'}">
|
|
|
|
|
|
{{ item.log }} <br />
|
|
|
|
|
|
</p>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</el-collapse-item>
|
|
|
|
|
|
<el-collapse-item title="相序校验" name="4">
|
2024-11-20 21:30:05 +08:00
|
|
|
|
<div class = "div-log">
|
2024-11-21 23:02:43 +08:00
|
|
|
|
<p v-for="(item, index) in step4InitLog" :key="index" :style="{color:item.type==='error'?'#F56C6C':'var(--el-text-color-regular)'}">
|
|
|
|
|
|
{{ item.log }} <br />
|
|
|
|
|
|
</p>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</el-collapse-item>
|
2024-11-19 19:34:00 +08:00
|
|
|
|
</el-collapse>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script lang="tsx" setup name="preTest">
|
2024-11-21 23:02:43 +08:00
|
|
|
|
const step1InitLog = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
log:'暂无数据,等待检测开始',
|
|
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const step1Log = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
log:'源通讯校验成功',
|
|
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const step2InitLog = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
log:'暂无数据,等待检测开始',
|
|
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const step2Log = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240001通讯校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240002通讯校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240003通讯校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240004通讯校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const step3InitLog = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
log:'暂无数据,等待检测开始',
|
|
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const step3Log = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240001协议校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240002协议校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240003协议校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240004协议校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const step4InitLog = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
|
|
|
|
|
log:'暂无数据,等待检测开始',
|
|
|
|
|
|
},
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
const step4Log = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240001相序校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240002相序校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240003相序校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
type: 'info',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
log:'被检设备:240004相序校验成功',
|
2024-11-21 23:02:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
])
|
2024-11-18 22:04:59 +08:00
|
|
|
|
|
2024-11-20 11:22:05 +08:00
|
|
|
|
const collapseActiveName = ref('1')
|
2024-11-18 22:04:59 +08:00
|
|
|
|
const activeIndex = ref(0)
|
|
|
|
|
|
const activeTotalNum = ref(5)
|
|
|
|
|
|
//定义与预检测配置数组
|
|
|
|
|
|
const detectionOptions = ref([
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 0,
|
|
|
|
|
|
name: "源通讯检测",//判断源通讯是否正常
|
|
|
|
|
|
selected: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 1,
|
|
|
|
|
|
name: "设备通讯检测",//判断设备的IP、Port、识别码、秘钥是否正常
|
|
|
|
|
|
selected: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 2,
|
|
|
|
|
|
name: "协议校验",//ICD报告触发测试
|
|
|
|
|
|
selected: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 3,
|
|
|
|
|
|
name: "相序校验",//判断装置的接线是否正确
|
|
|
|
|
|
selected: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
// {
|
|
|
|
|
|
// id: 4,
|
|
|
|
|
|
// name: "守时校验",//判断装置24小时内的守时误差是否小于1s
|
|
|
|
|
|
// selected: true,
|
|
|
|
|
|
// },
|
|
|
|
|
|
// {
|
|
|
|
|
|
// id: 5,
|
|
|
|
|
|
// name: "通道系数校准",//通过私有协议与装置进行通讯,校准三相电压电流的通道系数
|
|
|
|
|
|
// selected: true,
|
|
|
|
|
|
// },
|
|
|
|
|
|
// {
|
|
|
|
|
|
// id: 6,
|
|
|
|
|
|
// name: "实时数据比对",
|
|
|
|
|
|
// },
|
|
|
|
|
|
// {
|
|
|
|
|
|
// id: 7,
|
|
|
|
|
|
// name: "录波数据比对",
|
|
|
|
|
|
// },
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process'>('finish');
|
|
|
|
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
|
|
|
|
testStatus: {
|
|
|
|
|
|
type: String,
|
|
|
|
|
|
default: 'wait'
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
const testStatus = toRef(props, 'testStatus');
|
|
|
|
|
|
const ts = ref('');
|
2024-11-20 11:22:05 +08:00
|
|
|
|
|
|
|
|
|
|
watch(activeIndex, function (newValue, oldValue) {
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
|
|
|
|
|
if(activeIndex.value === 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
step1InitLog.value.length = 0;
|
|
|
|
|
|
step1InitLog.value = step1Log.value;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(activeIndex.value === 2)
|
|
|
|
|
|
{
|
|
|
|
|
|
step2InitLog.value.length = 0;
|
|
|
|
|
|
step2InitLog.value = step2Log.value;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(activeIndex.value === 3)
|
|
|
|
|
|
{
|
|
|
|
|
|
step3InitLog.value.length = 0;
|
|
|
|
|
|
step3InitLog.value = step3Log.value;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(activeIndex.value > 3)
|
|
|
|
|
|
{
|
|
|
|
|
|
step4InitLog.value.length = 0;
|
|
|
|
|
|
step4InitLog.value = step4Log.value;
|
|
|
|
|
|
}
|
2024-11-20 11:22:05 +08:00
|
|
|
|
if(activeIndex.value < activeTotalNum.value - 2)
|
|
|
|
|
|
collapseActiveName.value = (newValue+1).toString()
|
|
|
|
|
|
else
|
|
|
|
|
|
collapseActiveName.value = (activeTotalNum.value - 1).toString()
|
|
|
|
|
|
})
|
|
|
|
|
|
|
2024-11-18 22:04:59 +08:00
|
|
|
|
//监听goods_sn的变化
|
|
|
|
|
|
watch(testStatus, function (newValue, oldValue) {
|
|
|
|
|
|
ts.value = props.testStatus;
|
|
|
|
|
|
if(ts.value==='start')
|
|
|
|
|
|
{
|
|
|
|
|
|
ts.value = 'process'
|
|
|
|
|
|
|
|
|
|
|
|
let timer = setInterval(() => {
|
|
|
|
|
|
if(activeIndex.value < activeTotalNum.value - 2)
|
|
|
|
|
|
activeIndex.value++
|
|
|
|
|
|
else if(activeIndex.value === activeTotalNum.value -2)
|
|
|
|
|
|
{
|
|
|
|
|
|
activeIndex.value++
|
|
|
|
|
|
activeIndex.value++
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
clearInterval(timer)
|
|
|
|
|
|
ts.value = 'success'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-11-21 23:02:43 +08:00
|
|
|
|
}, 1500);
|
2024-11-18 22:04:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
const emit = defineEmits(['update:testStatus']);
|
|
|
|
|
|
//监听sn
|
|
|
|
|
|
watch(ts, function (newValue, oldValue) {
|
|
|
|
|
|
//修改父组件
|
|
|
|
|
|
emit('update:testStatus',ts.value)
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|
2024-11-25 21:11:10 +08:00
|
|
|
|
<style scoped lang="scss">
|
2024-11-18 22:04:59 +08:00
|
|
|
|
|
|
|
|
|
|
.test-dialog{
|
2024-11-20 21:30:05 +08:00
|
|
|
|
height: 350px;
|
2024-11-18 22:04:59 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
flex-direction: row; /* 横向排列 */
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
/* .dialog-left{
|
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
|
} */
|
|
|
|
|
|
}
|
|
|
|
|
|
.dialog-left{
|
2024-11-20 21:30:05 +08:00
|
|
|
|
width: 15%;
|
2024-11-18 22:04:59 +08:00
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
}
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
2024-11-25 21:11:10 +08:00
|
|
|
|
/* .dialog-left :deep(.test-head-steps){
|
|
|
|
|
|
height: 80px;
|
|
|
|
|
|
/* margin-bottom: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
*/
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
2024-11-25 21:11:10 +08:00
|
|
|
|
/* .dialog-left :deep(.el-step__title) {
|
|
|
|
|
|
font-size: 18px !important; /* 设置标题字体大小
|
|
|
|
|
|
} */
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
2024-11-25 21:11:10 +08:00
|
|
|
|
/* .dialog-left :deep(.el-step__icon-inner) {
|
|
|
|
|
|
font-size: 24px !important;
|
|
|
|
|
|
} */
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
2024-11-18 22:04:59 +08:00
|
|
|
|
.dialog-right{
|
|
|
|
|
|
margin-left: 20px;
|
2024-11-20 21:30:05 +08:00
|
|
|
|
width: 80%;
|
|
|
|
|
|
height: 100%;
|
2024-11-18 22:04:59 +08:00
|
|
|
|
}
|
2024-11-25 21:11:10 +08:00
|
|
|
|
.dialog-right :deep(.el-collapse-item__header) {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-11-20 21:30:05 +08:00
|
|
|
|
.div-log{
|
|
|
|
|
|
height: 100px;
|
2024-11-21 23:02:43 +08:00
|
|
|
|
padding-left: 10px;
|
2024-11-20 21:30:05 +08:00
|
|
|
|
}
|
2024-11-18 22:04:59 +08:00
|
|
|
|
</style>
|