修改样式

This commit is contained in:
GGJ
2024-12-05 15:22:46 +08:00
parent 8e2a22cf61
commit ea4edfadd0
10 changed files with 1619 additions and 1582 deletions

View File

@@ -10,7 +10,7 @@
/> />
<!-- 表格主体 --> <!-- 表格主体 -->
<div class='card table-main'> <div class='table-main' :class='{ card: showCard }' >
<!-- 表格头部 操作按钮 --> <!-- 表格头部 操作按钮 -->
<div class='table-header'> <div class='table-header'>
<div class='header-button-lf'> <div class='header-button-lf'>
@@ -126,6 +126,7 @@ export interface ProTableProps {
requestError?: (params: any) => void; // 表格 api 请求错误监听 ==> 非必传 requestError?: (params: any) => void; // 表格 api 请求错误监听 ==> 非必传
dataCallback?: (data: any) => any; // 返回数据的回调函数,可以对数据进行处理 ==> 非必传 dataCallback?: (data: any) => any; // 返回数据的回调函数,可以对数据进行处理 ==> 非必传
title?: string; // 表格标题 ==> 非必传 title?: string; // 表格标题 ==> 非必传
showCard?: boolean; // 下个是否需要卡片
pagination?: boolean; // 是否需要分页组件 ==> 非必传默认为true pagination?: boolean; // 是否需要分页组件 ==> 非必传默认为true
initParam?: any; // 初始化请求参数 ==> 非必传(默认为{} initParam?: any; // 初始化请求参数 ==> 非必传(默认为{}
border?: boolean; // 是否带有纵向边框 ==> 非必传默认为true border?: boolean; // 是否带有纵向边框 ==> 非必传默认为true
@@ -141,6 +142,7 @@ const props = withDefaults(defineProps<ProTableProps>(), {
pagination: true, pagination: true,
initParam: {}, initParam: {},
border: true, border: true,
showCard: true,
toolButton: true, toolButton: true,
rowKey: 'id', rowKey: 'id',
searchCol: () => ({ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 }), searchCol: () => ({ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 }),

View File

@@ -500,6 +500,18 @@
} }
} }
.el-message-box__headerbtn{
top: 5px;
}
.el-message-box__close{
svg{
color: #fff;
}
:hover{
color: #409eff;
}
}
.el-message-box__content{ .el-message-box__content{
padding: 10px ; padding: 10px ;
border-bottom: 1px solid #cccccc; border-bottom: 1px solid #cccccc;
@@ -507,4 +519,60 @@
.el-message-box__btns { .el-message-box__btns {
padding: 10px;} padding: 10px;}
} }
.form-one {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.el-form-item {
display: flex;
width: 98%;
margin-bottom: 15px !important;
.el-form-item__content {
flex: 1;
.el-select,
.el-cascader,
.el-input__inner,
.el-date-editor {
width: 100%;
}
}
}
}
.form-two {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.el-form-item {
display: flex;
width: 48%;
.el-form-item__content {
flex: 1;
.el-select,
.el-cascader,
.el-input__inner,
.el-date-editor {
width: 100%;
}
}
}
}
.form-three {
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
.el-form-item {
display: flex;
width: 32.3%;
.el-form-item__content {
flex: 1;
.el-select,
.el-cascader,
.el-input__inner,
.el-date-editor {
width: 100%;
}
}
}
}

View File

@@ -1,279 +1,283 @@
<template> <template>
<div> <div>
<div class = "test-dialog"> <div class="test-dialog">
<div class="dialog-content"> <div class="dialog-content">
<div class="right-title"> <div class="right-title">
<!-- <div>系数校准表</div> --> <!-- <div>系数校准表</div> -->
<div>当前源输出为Ua=Ub=Uc=57.74V Ia=Ib=Ic=1A 电压误差为±0.1Un% 电流误差为±0.5%</div> <div>当前源输出为Ua=Ub=Uc=57.74V Ia=Ib=Ic=1A 电压误差为±0.1Un% 电流误差为±0.5%</div>
<div> <div>
<el-button type="primary" loading v-if="activeIndex > 0 && activeIndex < activeTotalNum">通道系数已校准3台/共3台</el-button> <span style=" font-size: 18px;font-weight: 600;">
<el-button type="primary" :disabled="true" v-if="activeIndex === activeTotalNum">通道系数已校准3台/共3台</el-button> 设备已合格 <span style="color: #67C23A">{{ qualified }}</span> / <span style="color: green">{{ total }}</span>
</span>
<!-- <el-button type="primary" loading
v-if="activeIndex > 0 && activeIndex < activeTotalNum">通道系数已校准3台/共3台</el-button>
<el-button type="primary" :disabled="true" v-if="activeIndex === activeTotalNum">通道系数已校准3台/共3台</el-button> -->
</div> </div>
</div> </div>
<div class="right-content"> <div class="right-content">
<el-tabs type="border-card"> <el-tabs type="border-card">
<el-empty description="暂无数据,等待检测开始" v-if="activeIndex === 0"/> <el-empty description="暂无数据,等待检测开始" v-if="activeIndex === 0" />
<el-tab-pane label="被检设备1" v-if="activeIndex > 0"> <el-tab-pane label="被检设备1" v-if="activeIndex > 0">
<channelsTestTable <channelsTestTable :tableData="tableData1"></channelsTestTable>
:tableData="tableData1" </el-tab-pane>
></channelsTestTable> <el-tab-pane label="被检设备2" v-if="activeIndex > 1">
</el-tab-pane> <template #label>
<el-tab-pane label="被检设备2" v-if="activeIndex > 1 "> <span class="custom-tabs-label">
<template #label> <span>被检设备2</span>
<span class="custom-tabs-label"> <el-icon>
<span>被检设备2</span> <Failed />
<el-icon><Failed /></el-icon> </el-icon>
</span> </span>
</template> </template>
<channelsTestTable <channelsTestTable :tableData="tableData2"></channelsTestTable>
:tableData="tableData2"></channelsTestTable> </el-tab-pane>
</el-tab-pane> <el-tab-pane label="被检设备3" v-if="activeIndex > 2">
<el-tab-pane label="被检设备3" v-if="activeIndex > 2 "> <channelsTestTable :tableData="tableData3"></channelsTestTable>
<channelsTestTable </el-tab-pane>
:tableData="tableData3"></channelsTestTable> </el-tabs>
</el-tab-pane>
</el-tabs>
</div>
</div> </div>
</div>
</div> </div>
</div> </div>
</template> </template>
<script lang="tsx" setup name="channelsTest"> <script lang="tsx" setup name="channelsTest">
import { SuccessFilled,Failed } from '@element-plus/icons-vue' import { SuccessFilled, Failed } from '@element-plus/icons-vue'
const activeIndex = ref(0) const activeIndex = ref(0)
const activeTotalNum = ref(3) const activeTotalNum = ref(3)
const qualified = ref(0)
const total = ref(0)
const activities = [ const activities = [
{ {
content: '开始检测', content: '开始检测',
timestamp: '2018-04-12 20:46', timestamp: '2018-04-12 20:46',
size: 'large', size: 'large',
color: '#0bbd87', color: '#0bbd87',
icon: SuccessFilled, icon: SuccessFilled,
}, },
{ {
content: 'GPS上送时刻', content: 'GPS上送时刻',
timestamp: '2018-04-03 20:46', timestamp: '2018-04-03 20:46',
hollow: true, hollow: true,
}, },
{ {
content: '设备最早上送时刻', content: '设备最早上送时刻',
timestamp: '2018-04-03 20:46', timestamp: '2018-04-03 20:46',
hollow: true, hollow: true,
}, },
{ {
content: '设备最晚上送时刻', content: '设备最晚上送时刻',
timestamp: '2018-04-03 20:46', timestamp: '2018-04-03 20:46',
hollow: true, hollow: true,
}, },
{ {
content: '检测结束', content: '检测结束',
timestamp: '2018-04-03 20:46', timestamp: '2018-04-03 20:46',
hollow: true, hollow: true,
}, },
] ]
const tableData1 = ref([ const tableData1 = ref([
{ {
id: '1', id: '1',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备1', deviceName: '被检设备1',
MonitorIdx: 1, MonitorIdx: 1,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '2', id: '2',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备1', deviceName: '被检设备1',
MonitorIdx: 2, MonitorIdx: 2,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '3', id: '3',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备1', deviceName: '被检设备1',
MonitorIdx: 3, MonitorIdx: 3,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '4', id: '4',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备1', deviceName: '被检设备1',
MonitorIdx: 4, MonitorIdx: 4,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
]) ])
const tableData2 = ref([ const tableData2 = ref([
{ {
id: '1', id: '1',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备2', deviceName: '被检设备2',
MonitorIdx: 1, MonitorIdx: 1,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '2', id: '2',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备2', deviceName: '被检设备2',
MonitorIdx: 2, MonitorIdx: 2,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '不合格', Result: '不合格',
}, },
{ {
id: '3', id: '3',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备2', deviceName: '被检设备2',
MonitorIdx: 3, MonitorIdx: 3,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '4', id: '4',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备2', deviceName: '被检设备2',
MonitorIdx: 4, MonitorIdx: 4,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '不合格', Result: '不合格',
}, },
]) ])
const tableData3 = ref([ const tableData3 = ref([
{ {
id: '1', id: '1',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备3', deviceName: '被检设备3',
MonitorIdx: 1, MonitorIdx: 1,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '2', id: '2',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备3', deviceName: '被检设备3',
MonitorIdx: 2, MonitorIdx: 2,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '3', id: '3',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备3', deviceName: '被检设备3',
MonitorIdx: 3, MonitorIdx: 3,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
{ {
id: '4', id: '4',
updateTime: '2024-10-10 10:30:00', updateTime: '2024-10-10 10:30:00',
deviceName:'被检设备3', deviceName: '被检设备3',
MonitorIdx: 4, MonitorIdx: 4,
Ua:1.0003, Ua: 1.0003,
Ub:1.0003, Ub: 1.0003,
Uc:0.0096, Uc: 0.0096,
Ia:1.0003, Ia: 1.0003,
Ib:1.0003, Ib: 1.0003,
Ic:1.0008, Ic: 1.0008,
Result: '合格', Result: '合格',
}, },
]) ])
const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process'>('finish'); const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process'>('finish');
const props = defineProps({ const props = defineProps({
testStatus: { testStatus: {
type: String, type: String,
default: 'wait' default: 'wait'
} }
}) })
const testStatus = toRef(props, 'testStatus'); const testStatus = toRef(props, 'testStatus');
const ts = ref(''); const ts = ref('');
//监听goods_sn的变化 //监听goods_sn的变化
watch(testStatus, function (newValue, oldValue) { watch(testStatus, function (newValue, oldValue) {
ts.value = props.testStatus; ts.value = props.testStatus;
if(ts.value==='start') if (ts.value === 'start') {
{ ts.value = 'process'
ts.value = 'process'
let timer = setInterval(() => { let timer = setInterval(() => {
if(activeIndex.value < activeTotalNum.value) if (activeIndex.value < activeTotalNum.value) {
activeIndex.value++ activeIndex.value++
else if(activeIndex.value === activeTotalNum.value) qualified.value = activeIndex.value
{
clearInterval(timer)
ts.value = 'success'
} }
else else if (activeIndex.value === activeTotalNum.value) {
{ clearInterval(timer)
clearInterval(timer) ts.value = 'success'
ts.value = 'success'
} }
else {
}, 1000); clearInterval(timer)
} ts.value = 'success'
}
total.value = activeTotalNum.value
}, 1000);
}
}) })
// watch(activeIndex, function (newValue, oldValue) { // watch(activeIndex, function (newValue, oldValue) {
@@ -333,33 +337,41 @@ if(ts.value==='start')
const emit = defineEmits(['update:testStatus']); const emit = defineEmits(['update:testStatus']);
//监听sn //监听sn
watch(ts, function (newValue, oldValue) { watch(ts, function (newValue, oldValue) {
//修改父组件 //修改父组件
emit('update:testStatus',ts.value) emit('update:testStatus', ts.value)
}) })
</script> </script>
<style scoped> <style scoped>
.right-title{ .right-title {
display: flex; display: flex;
flex-direction: row; /* 横向排列 */ flex-direction: row;
justify-content: space-between; /* 横向排列 */
margin-bottom: 10px; justify-content: space-between;
} margin-bottom: 10px;
.right-content{ }
/* max-height: 400px; */
}
.custom-tabs-label .el-icon { .right-content {
/* max-height: 400px; */
}
.custom-tabs-label .el-icon {
vertical-align: middle; vertical-align: middle;
} }
.custom-tabs-label span { .custom-tabs-label span {
vertical-align: middle; vertical-align: middle;
margin-left: 4px; margin-left: 4px;
} }
.dialog-content{
.dialog-content {
height: 472px; height: 472px;
} }
.el-tabs--border-card { .el-tabs--border-card {
height: 435px; height: 425px;
}
.el-icon svg {
color: #ff7171;
} }
</style> </style>

View File

@@ -1,11 +1,11 @@
<template> <template>
<div class="table-container"> <div class="table-container table-main">
<el-table :data="tableData" :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" > <el-table :data="tableData" :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" >
<el-table-column prop="id" label="序号" width="70" /> <el-table-column prop="id" label="序号" width="70" />
<el-table-column prop="updateTime" label="上送时刻" /> <el-table-column prop="updateTime" label="上送时刻" width="180"/>
<el-table-column prop="deviceName" label="设备名称" /> <!-- <el-table-column prop="deviceName" label="设备名称" /> -->
<el-table-column prop="MonitorIdx" label="监测点序号" /> <el-table-column prop="MonitorIdx" label="监测点序号" />
<el-table-column label="电压通道" > <el-table-column label="电压通道" >

View File

@@ -2,30 +2,20 @@
<el-dialog title="数据查询" :model-value='visible' @close="handleCancel" width="1065px" draggable> <el-dialog title="数据查询" :model-value='visible' @close="handleCancel" width="1065px" draggable>
<div class="data-check-dialog"> <div class="data-check-dialog">
<div class="data-check-title"> <div class="data-check-title">
<el-form :model='formContent'> <el-form :model='formContent' label-width="auto" class="form-three ">
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label="检测脚本:" > <el-form-item label="检测脚本:" >
<el-input v-model='testScriptName' :disabled="true"/> <el-input v-model='testScriptName' :disabled="true"/>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="误差体系:" > <el-form-item label="误差体系:" >
<el-input v-model='errorSysName' :disabled="true"/> <el-input v-model='errorSysName' :disabled="true"/>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="数据处理原则:" > <el-form-item label="数据处理原则:" >
<el-input v-model='dataRule' :disabled="true"/> <el-input v-model='dataRule' :disabled="true"/>
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label="设备名称:" > <el-form-item label="设备名称:" >
<el-input v-model='deviceName' :disabled="true"/> <el-input v-model='deviceName' :disabled="true"/>
</el-form-item> </el-form-item>
</el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
<el-form-item label='复检次数:'> <el-form-item label='复检次数:'>
<el-select v-model="reCheckIdx"> <el-select v-model="reCheckIdx">
@@ -38,7 +28,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> --> </el-col> -->
<el-col :span="8">
<el-form-item label='通道号:'> <el-form-item label='通道号:'>
<el-select v-model="monitorIdx"> <el-select v-model="monitorIdx">
<el-option <el-option
@@ -49,8 +38,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</div> </div>
<div class="data-check-content"> <div class="data-check-content">

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="table-container"> <div class="table-container table-main">
<el-table :data="tableData" stripe :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" height="310px" style="width: 100%" > <el-table :data="tableData" stripe border :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" height="310px" style="width: 100%" >
<el-table-column prop="id" label="序号" width="70" /> <el-table-column prop="id" label="序号" width="70" />
<el-table-column prop="updateTime" label="数据时间" /> <el-table-column prop="updateTime" label="数据时间" />
<el-table-column prop="L1" label="L1V" /> <el-table-column prop="L1" label="L1V" />

View File

@@ -1,8 +1,8 @@
<template> <template>
<div class="table-container"> <div class="table-container table-main">
<el-table :data="tableData" max-height="300" :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" > <el-table :data="tableData" height="310px" :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" >
<el-table-column prop="id" label="序号" width="70" /> <el-table-column prop="id" label="序号" width="70" />
<el-table-column prop="standardValue" label="标准值V" /> <el-table-column prop="standardValue" label="标准值V" />
@@ -102,7 +102,7 @@ text-align: center; /* 所有单元格文字居中 */
} }
.table-container { .table-container {
max-height: 400px; /* 根据需要调整高度 */ /* max-height: 400px; */
overflow-y: auto; /* 允许垂直滚动 */ overflow-y: auto; /* 允许垂直滚动 */
overflow-x: hidden; /* 隐藏水平滚动条 */ overflow-x: hidden; /* 隐藏水平滚动条 */
} }

View File

@@ -40,8 +40,8 @@
<!-- v-on:cell-click="handleClick" --> <!-- v-on:cell-click="handleClick" -->
<!-- <el-table :key="tableKey" :data="tableData" :row-class-name="tableRowClassName" row-key="id" height="545px" :header-cell-style="{ background: '#003078', color: '#eee', textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" border> --> <!-- <el-table :key="tableKey" :data="tableData" :row-class-name="tableRowClassName" row-key="id" height="545px" :header-cell-style="{ background: '#003078', color: '#eee', textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" border> -->
<!-- <el-table :data="tableData" :row-class-name="tableRowClassName" row-key="id" height="545px" :header-cell-style="{ background: '#003078', color: '#eee', textAlign: 'center' } " style="width: 100%" border> --> <!-- <el-table :data="tableData" :row-class-name="tableRowClassName" row-key="id" height="545px" :header-cell-style="{ background: '#003078', color: '#eee', textAlign: 'center' } " style="width: 100%" border> -->
<div class="dialog-content"> <div class="dialog-content ">
<el-table :data="tableData" :cell-class-name="tableCell" row-key="id" height="545px" :header-cell-style="{ background: '#003078', color: '#eee', textAlign: 'center' } " style="width: 100%" border> <el-table :data="tableData" :cell-class-name="tableCell" row-key="id" height="450px" :header-cell-style="{ background: '#003078', color: '#eee', textAlign: 'center' } " style="width: 100%" border>
<el-table-column fixed prop="scriptItemName" label="检测项目" width="250px"> <el-table-column fixed prop="scriptItemName" label="检测项目" width="250px">
<!-- <template #default="scope"> <!-- <template #default="scope">
<div :style="{ backgroundColor: '#003078' }"> <div :style="{ backgroundColor: '#003078' }">
@@ -226,8 +226,8 @@
</el-table-column> --> </el-table-column> -->
</el-table> </el-table>
</div> </div>
<div > <div style="height: 98px;">
<el-collapse model-value="0" accordion> <el-collapse model-value="1" accordion>
<el-collapse-item title="检测日志:" name="1"> <el-collapse-item title="检测日志:" name="1">
<div ref="scrollContainer" class="dialog-log"> <div ref="scrollContainer" class="dialog-log">
<p v-for="(item, index) in testLogList" :key="index" :style="{color:item.type==='error'?'#F56C6C':'var(--el-text-color-regular)'}"> <p v-for="(item, index) in testLogList" :key="index" :style="{color:item.type==='error'?'#F56C6C':'var(--el-text-color-regular)'}">
@@ -1925,7 +1925,7 @@ watch(ts, function (newValue, oldValue) {
margin-bottom:10px; margin-bottom:10px;
} }
.dialog-content{ .dialog-content{
max-height: 545px; max-height: 450px;
overflow-y: auto; overflow-y: auto;
} }
@@ -1939,3 +1939,12 @@ watch(ts, function (newValue, oldValue) {
</style> </style>
<style lang="scss" scoped>
:deep(.el-button--small) {
height: 20px !important;
width: 20px !important;
}
:deep(.el-table--default td ){
padding: 5px 0 !important;
}
</style>

View File

@@ -1,14 +1,15 @@
<template> <template>
<div> <div>
<div class = "test-dialog"> <div class="test-dialog">
<div class="dialog-left"> <div class="dialog-left">
<el-steps direction="vertical" :active="activeIndex" :process-status="currentStepStatus" finish-status="success"> <el-steps direction="vertical" :active="activeIndex" :process-status="currentStepStatus"
<el-step title="开始检测" :description="startTime"/> finish-status="success">
<el-step title="GPS完成上送" :description="gpsTime"/> <el-step title="开始检测" :description="startTime" />
<el-step title="设备开始上送时刻" :description="devStartTime"/> <el-step title="GPS完成上送" :description="gpsTime" />
<el-step title="设备最晚上送时刻" :description="devEndTime"/> <el-step title="设备开始上送时刻" :description="devStartTime" />
<el-step title="检测完成" :description="finishTime"/> <el-step title="设备最晚上送时刻" :description="devEndTime" />
</el-steps> <el-step title="检测完成" :description="finishTime" />
</el-steps>
<!-- <el-timeline style="max-width: 600px"> <!-- <el-timeline style="max-width: 600px">
<el-timeline-item <el-timeline-item
v-for="(activity, index) in activities" v-for="(activity, index) in activities"
@@ -23,27 +24,26 @@
{{ activity.content }} {{ activity.content }}
</el-timeline-item> </el-timeline-item>
</el-timeline> --> </el-timeline> -->
</div> </div>
<div class="dialog-right"> <div class="dialog-right">
<div class="right-title"> <div class="right-title">
<!-- <div>设备上送时刻表</div> --> <!-- <div>设备上送时刻表</div> -->
<div> <span style=" font-size: 18px;font-weight: 600;">
<el-button type="primary" loading v-if="activeIndex > 0 && activeIndex < activeTotalNum">设备已合格3台/共4台</el-button> 设备已合格 <span style="color: #67C23A">{{ qualified }}</span> / <span style="color: green">4</span>
<el-button type="primary" disabled="true" v-if="activeIndex === activeTotalNum">设备已合格3台/共4台</el-button> </span>
</div> <div>
<!-- <el-button type="primary" loading v-if="activeIndex > 0 && activeIndex < activeTotalNum">设备已合格3台/共4台</el-button>
<el-button type="primary" disabled="true" v-if="activeIndex === activeTotalNum">设备已合格3台/共4台</el-button> -->
</div>
</div> </div>
<div class="right-content"> <div class="right-content">
<ProTable <ProTable ref='proTable' :pagination='false' :toolButton='false' :showCard='false' :columns='columns'
ref='proTable' :data='deviceOperatorData' stripe :header-cell-style="{ textAlign: 'center' }"
:pagination = 'false' :cell-style="{ textAlign: 'center' }" style="width: 100%; height:435px" border>
:toolButton = 'false'
:columns='columns'
:data='deviceOperatorData'
stripe :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%; height:390px" border
>
</ProTable> </ProTable>
<!-- <el-table :data="deviceOperatorData" stripe :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" border> <!-- <el-table :data="deviceOperatorData" stripe :header-cell-style="{ textAlign: 'center' } " :cell-style="{ textAlign: 'center' }" style="width: 100%" border>
<el-table-column prop="deviceName" label="设备名" /> <el-table-column prop="deviceName" label="设备名" />
<el-table-column prop="updataTime" label="上送时刻" /> <el-table-column prop="updataTime" label="上送时刻" />
<el-table-column prop="ErrorValue" label="守时误差(ms)" /> <el-table-column prop="ErrorValue" label="守时误差(ms)" />
@@ -51,12 +51,12 @@
<template #default="scope"> <template #default="scope">
<el-tag :type="scope.row.Result === '合格' ? 'success' : 'danger'">{{ scope.row.Result }}</el-tag> <el-tag :type="scope.row.Result === '合格' ? 'success' : 'danger'">{{ scope.row.Result }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
</el-table> --> </el-table> -->
</div> </div>
</div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="tsx" setup name="timeTest"> <script lang="tsx" setup name="timeTest">
@@ -78,6 +78,7 @@ interface Activity {
color?: string; color?: string;
icon?: any; icon?: any;
} }
const qualified = ref(0)
const activities = ref<Activity[]>([ const activities = ref<Activity[]>([
{ {
content: '开始检测', content: '开始检测',
@@ -86,62 +87,62 @@ const activities = ref<Activity[]>([
const deviceOperatorData = ref([ const deviceOperatorData = ref([
{ {
deviceName: '240001', deviceName: '240001',
updataTime: '—', updataTime: '—',
ErrorValue:'—', ErrorValue: '—',
Result: '—', Result: '—',
}, },
{ {
deviceName: '240002', deviceName: '240002',
updataTime: '—', updataTime: '—',
ErrorValue:'—', ErrorValue: '—',
Result: '—', Result: '—',
}, },
{ {
deviceName: '240003', deviceName: '240003',
updataTime: '—', updataTime: '—',
ErrorValue:'—', ErrorValue: '—',
Result: '—', Result: '—',
}, },
{ {
deviceName: '240004', deviceName: '240004',
updataTime: '—', updataTime: '—',
ErrorValue:'—', ErrorValue: '—',
Result: '—', Result: '—',
}, },
]) ])
const deviceData = ref([ const deviceData = ref([
{ {
deviceName: '240001', deviceName: '240001',
updataTime: '2024-12-05 10:30:08.136', updataTime: '2024-12-05 10:30:08.136',
ErrorValue:'148', ErrorValue: '148',
Result: '合格', Result: '合格',
}, },
{ {
deviceName: '240002', deviceName: '240002',
updataTime: '2024-12-05 10:30:08.136', updataTime: '2024-12-05 10:30:08.136',
ErrorValue:'136', ErrorValue: '136',
Result: '合格', Result: '合格',
}, },
{ {
deviceName: '240003', deviceName: '240003',
updataTime: '2024-12-05 10:30:09.006', updataTime: '2024-12-05 10:30:09.006',
ErrorValue:'1006', ErrorValue: '1006',
Result: '不合格', Result: '不合格',
}, },
{ {
deviceName: '240004', deviceName: '240004',
updataTime: '2024-12-05 10:30:08.736', updataTime: '2024-12-05 10:30:08.736',
ErrorValue:'736', ErrorValue: '736',
Result: '合格', Result: '合格',
}, },
]) ])
const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process'>('finish'); const currentStepStatus = ref<'error' | 'finish' | 'wait' | 'success' | 'process'>('finish');
const props = defineProps({ const props = defineProps({
testStatus: { testStatus: {
type: String, type: String,
default: 'wait' default: 'wait'
} }
@@ -171,42 +172,37 @@ const columns = reactive([
label: '检测结果', label: '检测结果',
width: 100, width: 100,
render: (scope) => { render: (scope) => {
if(scope.row.Result === '不合格') if (scope.row.Result === '不合格') {
{ return (
return ( <el-tag type='danger'>{scope.row.Result}</el-tag>
<el-tag type='danger'>{ scope.row.Result }</el-tag> )
) }
} else {
else return (
{ <span>{scope.row.Result}</span>
return ( )
<span>{ scope.row.Result }</span> }
) },
}
},
}, },
]) ])
//监听testStatus的变化 //监听testStatus的变化
watch(testStatus, function (newValue, oldValue) { watch(testStatus, function (newValue, oldValue) {
ts.value = props.testStatus; ts.value = props.testStatus;
if(ts.value==='start') if (ts.value === 'start') {
{
ts.value = 'process' ts.value = 'process'
let timer = setInterval(() => { let timer = setInterval(() => {
if(activeIndex.value < activeTotalNum.value - 2) if (activeIndex.value < activeTotalNum.value - 2)
activeIndex.value++ activeIndex.value++
else if(activeIndex.value === activeTotalNum.value -2) else if (activeIndex.value === activeTotalNum.value - 2) {
{ activeIndex.value++
activeIndex.value++ activeIndex.value++
activeIndex.value++ }
} else {
else clearInterval(timer)
{ ts.value = 'success'
clearInterval(timer) }
ts.value = 'success' }, 1000);
}
}, 1000);
} }
}) })
@@ -224,101 +220,105 @@ function formatDateTime(date) {
watch(activeIndex, function (newValue, oldValue) { watch(activeIndex, function (newValue, oldValue) {
if(activeIndex.value === 1) if (activeIndex.value === 1) {
{ startTime.value = formatDateTime(new Date());
startTime.value = formatDateTime(new Date());
// activities.value.length = 0; // activities.value.length = 0;
// activities.value.push({ // activities.value.push({
// content: '开始检测', // content: '开始检测',
// timestamp: '2018-04-12 20:46', // timestamp: '2018-04-12 20:46',
// size: 'large', // size: 'large',
// color: '#0bbd87', // color: '#0bbd87',
// icon: SuccessFilled, // icon: SuccessFilled,
// }); // });
} }
if(activeIndex.value === 2) if (activeIndex.value === 2) {
{ gpsTime.value = formatDateTime(new Date());
gpsTime.value = formatDateTime(new Date()); // activities.value.push({
// activities.value.push({ // content: 'GPS上送时刻',
// content: 'GPS上送时刻', // timestamp: '2018-04-03 20:46',
// timestamp: '2018-04-03 20:46', // color: '#0bbd87',
// color: '#0bbd87', // icon: SuccessFilled,
// icon: SuccessFilled, // size: 'large',
// size: 'large', // });
// }); }
} if (activeIndex.value === 3) {
if(activeIndex.value === 3) // activities.value.push({
{ // content: '设备最早上送时刻',
// activities.value.push({ // timestamp: '2018-04-03 20:46',
// content: '设备最早上送时刻', // color: '#0bbd87',
// timestamp: '2018-04-03 20:46', // icon: SuccessFilled,
// color: '#0bbd87', // size: 'large',
// icon: SuccessFilled, // });
// size: 'large', devStartTime.value = formatDateTime(new Date());
// }); deviceOperatorData.value.length = 0;
devStartTime.value = formatDateTime(new Date()); deviceOperatorData.value = deviceData.value;
deviceOperatorData.value.length = 0; qualified.value = 3
deviceOperatorData.value = deviceData.value; }
} if (activeIndex.value > 3) {
if(activeIndex.value > 3) devEndTime.value = formatDateTime(new Date());
{ finishTime.value = formatDateTime(new Date());
devEndTime.value = formatDateTime(new Date());
finishTime.value = formatDateTime(new Date());
// activities.value.push({ // activities.value.push({
// content: '设备最晚上送时刻', // content: '设备最晚上送时刻',
// timestamp: '2018-04-03 20:46', // timestamp: '2018-04-03 20:46',
// color: '#0bbd87', // color: '#0bbd87',
// icon: SuccessFilled, // icon: SuccessFilled,
// size: 'large', // size: 'large',
// }); // });
// activities.value.push({ // activities.value.push({
// content: '检测结束', // content: '检测结束',
// timestamp: '2018-04-03 20:46', // timestamp: '2018-04-03 20:46',
// color: '#0bbd87', // color: '#0bbd87',
// icon: SuccessFilled, // icon: SuccessFilled,
// size: 'large', // size: 'large',
// }); // });
} }
}) })
const emit = defineEmits(['update:testStatus']); const emit = defineEmits(['update:testStatus']);
//监听sn //监听sn
watch(ts, function (newValue, oldValue) { watch(ts, function (newValue, oldValue) {
//修改父组件 //修改父组件
emit('update:testStatus',ts.value) emit('update:testStatus', ts.value)
}) })
</script> </script>
<style scoped> <style scoped>
.test-dialog {
display: flex;
.test-dialog{ flex-direction: row;
display: flex; /* 横向排列 */
/* margin-top: 20px; */
flex-direction: row; /* 横向排列 */ /* min-height: 300px; */
/* margin-top: 20px; */ height: 472px;
/* min-height: 300px; */ /* .dialog-left{
height: 472px;
/* .dialog-left{
margin-right: 20px; margin-right: 20px;
} */ } */
} }
.dialog-left{
margin-left: 20px; .dialog-left {
width: 20%; margin-left: 20px;
} width: 20%;
.dialog-right{ }
margin-top: 25px;
margin-left: 20px; .dialog-right {
width: 80%; /* margin-top: 25px;
} margin-left: 20px; */
.right-title{ width: 80%;
display: flex; }
flex-direction: row; /* 横向排列 */
justify-content: flex-end; .right-title {
margin-bottom: 10px; height: 32px;
} display: flex;
/* width: 100%; flex-direction: row;
/* 横向排列 */
justify-content: flex-end;
/* margin-bottom: 10px; */
}
/* width: 100%;
height: auto; height: auto;
background: #fff; background: #fff;
border-radius: 4px; border-radius: 4px;