系数校准多装置按行展示

This commit is contained in:
sjl
2025-01-08 11:40:12 +08:00
parent a1d113562b
commit 5a32d5b7a8
10 changed files with 549 additions and 754 deletions

View File

@@ -19,6 +19,6 @@ VITE_API_URL=/api
# 开发环境跨域代理,支持配置多个
VITE_PROXY=[["/api","http://192.168.1.124:18092/"]]
VITE_PROXY=[["/api","http://192.168.1.127:18092/"]]
#VITE_PROXY=[["/api","http://192.168.1.125:18092/"]]
# VITE_PROXY=[["/api","http://192.168.1.138:8080/"]]张文

View File

@@ -1,6 +1,6 @@
import http from "@/api";
import {ChannelsTest} from "@/api/home/interface/channelsTest";
export const getBigTestItem = () => {
return http.get('');
}
//系数校准发送基本信息
export const getCoefficientCheck = (params: any) => {
return http.post(`/prepare/coefficientCheck`, params)
}

View File

@@ -3,20 +3,24 @@ export namespace ChannelsTest {
// 系数校准列表
export interface CoefficientVO {
devName?: string;//设备名称
type?:string;//区分大小电压
monitorNum: string;//监测点序号
desc: string;//描述
aVuData:string;//电压通道A数据
aVuXi:string;//电压通道A系数
bVuData:string;//电压通道B数据
bVuXi:number;//电压通道B系数
cVuData:number;//电压通道C数据
cVuXi?:string;//电压通道C系数
aIeData?:string;//电流通道A数据
aIeXi?:string;//电流通道A系数
bIeData?:string;//电流通道B数据
bIeXi?:string;//电流通道B系数
cIeData?:string;//电流通道C数据
cIeXi?:string;//电流通道C系数
bVuXi:string;//电压通道B系数
cVuData:string;//电压通道C数据
cVuXi:string;//电压通道C系数
aIeData:string;//电流通道A数据
aIeXi:string;//电流通道A系数
bIeData:string;//电流通道B数据
bIeXi:string;//电流通道B系数
cIeData:string;//电流通道C数据
cIeXi:string;//电流通道C系数
loading: boolean;
}
}

View File

@@ -313,7 +313,7 @@
border: 1px solid #dcdfe6;
border-radius: 4px;
line-height: 40px;
width: 110%;
width: 100%;
height: 35px;
padding-inline-start: 0px;
padding-left: 10px;

View File

@@ -35,7 +35,7 @@ const init = () => {
isRadius: false, //是否圆角
isSpace: false, //是否显示间隔
isLabelLine: true, //是否显示引导线
titleFontSize: '18px', //标题字体大小
titleFontSize: '14px', //标题字体大小
...props.customData,
};
legendData.value = {

File diff suppressed because it is too large Load Diff

View File

@@ -6,127 +6,127 @@
style="width: 100%"
max-height="400px"
:span-method="objectSpanMethod">
<el-table-column prop="MonitorIdx" label="监测点序号" width="80"/>
<el-table-column prop="deviceName" label="描述" width="90"/>
<el-table-column prop="monitorNum" label="监测点序号" width="80"/>
<el-table-column prop="desc" label="描述" width="90"/>
<el-table-column label="电压通道" >
<el-table-column prop="Ua" label="L1">
<el-table-column prop="UaData" label="数据(V)">
<el-table-column prop="aVuData" label="数据(V)">
<template #default="scope">
<el-icon v-if="scope.row.UaData === '—'&& loading" class="loading-box">
<el-icon v-if="scope.row.aVuData === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UaData }}
{{ scope.row.aVuData }}
</span>
</template>
</el-table-column>
<el-table-column prop="UaChannel" label="结果">
<el-table-column prop="aVuXi" label="结果">
<template #default="scope">
<el-tooltip
v-if="scope.row.UaChannel === '不合格'"
v-if="scope.row.aVuXi === '不合格'"
class="item"
effect="light"
placement="top-start"
:content="'电压L1系数校准不合格原因'+scope.row.UaData"
effect="dark"
placement="bottom-start"
:content="'电压L1系数校准不合格原因'+scope.row.aVuData"
>
<el-tag type="danger" class="tooltip-content">
{{ scope.row.UaChannel }}
{{ scope.row.aVuXi }}
</el-tag>
</el-tooltip>
<el-tooltip
v-else-if="scope.row.UaChannel === '合格'"
v-else-if="scope.row.aVuXi === '合格'"
class="item"
effect="light"
placement="top-start"
:content="'电压L1系数校准合格原因'+scope.row.UaData"
effect="dark"
placement="bottom-start"
:content="'电压L1系数校准合格原因'+scope.row.aVuData"
>
<span class="tooltip-content">{{ scope.row.UaChannel }}</span>
<el-tag type="success" class="tooltip-content">{{ scope.row.aVuXi }}</el-tag>
</el-tooltip>
<!-- <el-tag type="danger" v-if="scope.row.UaChannel === '不合格'">
{{ scope.row.UaChannel }}
<!-- <el-tag type="danger" v-if="scope.row.aVuXi === '不合格'">
{{ scope.row.aVuXi }}
</el-tag> -->
<el-icon v-else-if="scope.row.UaChannel === '—'&& loading" class="loading-box">
<el-icon v-else-if="scope.row.aVuXi === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<!-- <span v-else>
{{ scope.row.UaChannel }}
{{ scope.row.aVuXi }}
</span> -->
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Ub" label="L2">
<el-table-column prop="UbData" label="数据(V)">
<el-table-column prop="bVuData" label="数据(V)">
<template #default="scope">
<el-icon v-if="scope.row.UbData === '—'&& loading" class="loading-box">
<el-icon v-if="scope.row.bVuData === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UbData }}
{{ scope.row.bVuData }}
</span>
</template>
</el-table-column>
<el-table-column prop="UbChannel" label="结果">
<el-table-column prop="bVuXi" label="结果">
<template #default="scope">
<el-tooltip
v-if="scope.row.UbChannel === '不合格'"
v-if="scope.row.bVuXi === '不合格'"
class="item"
effect="light"
placement="top-start"
:content="'电压L2系数校准不合格原因'+scope.row.UbData"
effect="dark"
placement="bottom-start"
:content="'电压L2系数校准不合格原因'+scope.row.bVuData"
>
<el-tag type="danger" class="tooltip-content">
{{ scope.row.UbChannel }}
{{ scope.row.bVuXi }}
</el-tag>
</el-tooltip>
<el-tooltip
v-else-if="scope.row.UbChannel === '合格'"
v-else-if="scope.row.bVuXi === '合格'"
class="item"
effect="light"
placement="top-start"
:content="'电压L2系数校准合格原因'+scope.row.UbData"
effect="dark"
placement="bottom-start"
:content="'电压L2系数校准合格原因'+scope.row.bVuData"
>
<span class="tooltip-content">{{ scope.row.UbChannel }}</span>
<el-tag type="success" class="tooltip-content">{{ scope.row.bVuXi }}</el-tag>
</el-tooltip>
<el-icon v-else-if="scope.row.UbChannel === '—'&& loading" class="loading-box">
<el-icon v-else-if="scope.row.bVuXi === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Uc" label="L3">
<el-table-column prop="UcData" label="数据(V)">
<el-table-column prop="cVuData" label="数据(V)">
<template #default="scope">
<el-icon v-if="scope.row.UcData === '—'&& loading" class="loading-box">
<el-icon v-if="scope.row.cVuData === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.UcData }}
{{ scope.row.cVuData }}
</span>
</template>
</el-table-column>
<el-table-column prop="UcChannel" label="结果">
<el-table-column prop="cVuXi" label="结果">
<template #default="scope">
<el-tooltip
v-if="scope.row.UcChannel === '不合格'"
v-if="scope.row.cVuXi === '不合格'"
class="item"
effect="light"
placement="top-start"
:content="'电压L3系数校准不合格原因'+scope.row.UcData"
effect="dark"
placement="bottom-start"
:content="'电压L3系数校准不合格原因'+scope.row.cVuData"
>
<el-tag type="danger" class="tooltip-content">
{{ scope.row.UcChannel }}
{{ scope.row.cVuXi }}
</el-tag>
</el-tooltip>
<el-tooltip
v-else-if="scope.row.UcChannel === '合格'"
v-else-if="scope.row.cVuXi === '合格'"
class="item"
effect="light"
placement="top-start"
:content="'电压L3系数校准合格原因'+scope.row.UcData"
effect="dark"
placement="bottom-start"
:content="'电压L3系数校准合格原因'+scope.row.cVuData"
>
<span class="tooltip-content">{{ scope.row.UcChannel }}</span>
<el-tag type="success" class="tooltip-content">{{ scope.row.cVuXi }}</el-tag>
</el-tooltip>
<el-icon v-else-if="scope.row.UcChannel === '—'&& loading" class="loading-box">
<el-icon v-else-if="scope.row.cVuXi === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
</template>
@@ -135,117 +135,117 @@
</el-table-column>
<el-table-column label="电流通道" >
<el-table-column prop="Ia" label="L1">
<el-table-column prop="IaData" label="数据(A)">
<el-table-column prop="aIeData" label="数据(A)">
<template #default="scope">
<el-icon v-if="scope.row.IaData === '—'&& loading" class="loading-box">
<el-icon v-if="scope.row.aIeData === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IaData }}
{{ scope.row.aIeData }}
</span>
</template>
</el-table-column>
<el-table-column prop="IaChannel" label="结果">
<el-table-column prop="aIeXi" label="结果">
<template #default="scope">
<el-tooltip
v-if="scope.row.IaChannel === '不合格'"
v-if="scope.row.aIeXi === '不合格'"
class="item"
effect="light"
placement="top-start"
:content="'电流L1系数校准不合格原因'+scope.row.IaData"
effect="dark"
placement="bottom-start"
:content="'电流L1系数校准不合格原因'+scope.row.aIeData"
>
<el-tag type="danger" class="tooltip-content">
{{ scope.row.IaChannel }}
{{ scope.row.aIeXi }}
</el-tag>
</el-tooltip>
<el-tooltip
v-else-if="scope.row.IaChannel === '合格'"
v-else-if="scope.row.aIeXi === '合格'"
class="item"
effect="light"
placement="top-start"
:content="'电流L1系数校准合格原因'+scope.row.IaData"
effect="dark"
placement="bottom-start"
:content="'电流L1系数校准合格原因'+scope.row.aIeData"
>
<span class="tooltip-content">{{ scope.row.IaChannel }}</span>
<el-tag type="success" class="tooltip-content">{{ scope.row.aIeXi }}</el-tag>
</el-tooltip>
<el-icon v-else-if="scope.row.IaChannel === '—'&& loading" class="loading-box">
<el-icon v-else-if="scope.row.aIeXi === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Ib" label="L2">
<el-table-column prop="IbData" label="数据(A)">
<el-table-column prop="bIeData" label="数据(A)">
<template #default="scope">
<el-icon v-if="scope.row.IbData === '—'&& loading" class="loading-box">
<el-icon v-if="scope.row.bIeData === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IbData }}
{{ scope.row.bIeData }}
</span>
</template>
</el-table-column>
<el-table-column prop="IbChannel" label="结果">
<el-table-column prop="bIeXi" label="结果">
<template #default="scope">
<el-tooltip
v-if="scope.row.IbChannel === '不合格'"
v-if="scope.row.bIeXi === '不合格'"
class="item"
effect="light"
placement="top-start"
:content="'电流L2系数校准不合格原因'+scope.row.IbData"
effect="dark"
placement="bottom-start"
:content="'电流L2系数校准不合格原因'+scope.row.bIeData"
>
<el-tag type="danger" class="tooltip-content">
{{ scope.row.IbChannel }}
{{ scope.row.bIeXi }}
</el-tag>
</el-tooltip>
<el-tooltip
v-else-if="scope.row.IbChannel === '合格'"
v-else-if="scope.row.bIeXi === '合格'"
class="item"
effect="light"
placement="top-start"
:content="'电流L2系数校准合格原因'+scope.row.IbData"
effect="dark"
placement="bottom-start"
:content="'电流L2系数校准合格原因'+scope.row.bIeData"
>
<span class="tooltip-content">{{ scope.row.IbChannel }}</span>
<el-tag type="success" class="tooltip-content">{{ scope.row.bIeXi }}</el-tag>
</el-tooltip>
<el-icon v-else-if="scope.row.IbChannel === '—'&& loading" class="loading-box">
<el-icon v-else-if="scope.row.bIeXi === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="Ic" label="L3">
<el-table-column prop="IcData" label="数据(A)">
<el-table-column prop="cIeData" label="数据(A)">
<template #default="scope">
<el-icon v-if="scope.row.IcData === '—'&& loading" class="loading-box">
<el-icon v-if="scope.row.cIeData === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
<span v-else>
{{ scope.row.IcData }}
{{ scope.row.cIeData }}
</span>
</template>
</el-table-column>
<el-table-column prop="IcChannel" label="结果">
<el-table-column prop="cIeXi" label="结果">
<template #default="scope">
<el-tooltip
v-if="scope.row.IcChannel === '不合格'"
v-if="scope.row.cIeXi === '不合格'"
class="item"
effect="light"
placement="top-start"
:content="'电流L3系数校准不合格原因'+scope.row.IcData"
effect="dark"
placement="bottom-start"
:content="'电流L3系数校准不合格原因'+scope.row.cIeData"
>
<el-tag type="danger" class="tooltip-content">
{{ scope.row.IcChannel }}
{{ scope.row.cIeXi }}
</el-tag>
</el-tooltip>
<el-tooltip
v-else-if="scope.row.IcChannel === '合格'"
v-else-if="scope.row.cIeXi === '合格'"
class="item"
effect="light"
placement="top-start"
:content="'电流L3系数校准合格原因'+scope.row.IcData"
effect="dark"
placement="bottom-start"
:content="'电流L3系数校准合格原因'+scope.row.cIeData"
>
<span class="tooltip-content">{{ scope.row.IcChannel }}</span>
<el-tag type="success" class="tooltip-content">{{ scope.row.cIeXi }}</el-tag>
</el-tooltip>
<el-icon v-else-if="scope.row.IcChannel === '—'&& loading" class="loading-box">
<el-icon v-else-if="scope.row.cIeXi === '—'&& scope.row.loading" class="loading-box">
<el-icon-loading />
</el-icon>
</template>
@@ -259,29 +259,10 @@
<script lang="ts" setup name="ErrorSystemDialog">
import { defineProps } from 'vue';
import { ElIcon, ElLoading, ElTag } from 'element-plus';
//import IndicatorTypeDialog from "@/views/machine/errorSystem/components/IndicatorTypeDialog.vue"; // 导入子组件
import type { ChannelsTest } from '@/api/home/interface/channelsTest';
const props = defineProps<{
tableData: Array<{
id: string;
deviceName?: string;
MonitorIdx: number;
UaData?: number | string;
UaChannel?: number | string;
UbData?: number | string;
UbChannel?: number | string;
UcData?: number | string;
UcChannel?: number | string;
IaData?: number | string;
IaChannel?: number | string;
IbData?: number | string;
IbChannel?: number | string;
IcData?: number | string;
IcChannel?: number | string;
Result?: string | string;
updateTime?: string;
}>
loading: boolean; // 定义 loading 属性
tableData: Array<ChannelsTest.CoefficientVO>;
}>();
function objectSpanMethod({ row, column, rowIndex, columnIndex }: { row: any, column: any, rowIndex: number, columnIndex: number }) {
@@ -313,64 +294,6 @@
}
}
// const tableData = ref([
// {
// id: '1',
// updateTime: '2024-10-10 10:30:00',
// deviceName:'被检设备1',
// MonitorIdx: 1,
// Ua:1.0003,
// Ub:1.0003,
// Uc:0.0096,
// Ia:1.0003,
// Ib:1.0003,
// Ic:1.0008,
// Result: '合格',
// },
// {
// id: '2',
// updateTime: '2024-10-10 10:30:00',
// deviceName:'被检设备1',
// MonitorIdx: 2,
// Ua:1.0003,
// Ub:1.0003,
// Uc:0.0096,
// Ia:1.0003,
// Ib:1.0003,
// Ic:1.0008,
// Result: '合格',
// },
// {
// id: '3',
// updateTime: '2024-10-10 10:30:00',
// deviceName:'被检设备1',
// MonitorIdx: 3,
// Ua:1.0003,
// Ub:1.0003,
// Uc:0.0096,
// Ia:1.0003,
// Ib:1.0003,
// Ic:1.0008,
// Result: '合格',
// },
// {
// id: '4',
// updateTime: '2024-10-10 10:30:00',
// deviceName:'被检设备1',
// MonitorIdx: 4,
// Ua:1.0003,
// Ub:1.0003,
// Uc:0.0096,
// Ia:1.0003,
// Ib:1.0003,
// Ic:1.0008,
// Result: '合格',
// },
// ])
// 监听 tableData 的变化
</script>
<style scoped>

View File

@@ -319,6 +319,10 @@ isTimeCheck: {
type: Boolean,
required: true,
},
plan: {
type: Object,
default: null
}
})
//下拉框数据
@@ -847,26 +851,25 @@ const handleTest = async (val:string) => {
}
if(val === '系数校准') {
// //开始创建webSocket客户端
// const data = reactive({
// socketServe: socketClient.Instance,
// });
// const url = 'ws://localhost:7777/hello?name=cdf';
// socketClient.Instance.connect(url);
// data.socketServe = socketClient.Instance;
// data.socketServe.registerCallBack('aaa', (res: { code: number; }) => {
// // 处理来自服务器的消息
// console.log('Received message:', res);
// // 根据需要在这里添加更多的处理逻辑
// if(res.code === 20000){
// ElMessage.error(message.message)
// loading.close()
// }else {
// webMsgSend.value = res
// }
// });
channelsTest.value?.open(channelsSelection.value);
//开始创建webSocket客户端
const data = reactive({
socketServe: socketClient.Instance,
});
const url = 'ws://192.168.1.127:7777/hello?name=cdf';
socketClient.Instance.connect(url);
data.socketServe = socketClient.Instance;
data.socketServe.registerCallBack('aaa', (res: { code: number; }) => {
// 处理来自服务器的消息
console.log('Received message:', res);
// 根据需要在这里添加更多的处理逻辑
if(res.code === 20000){
ElMessage.error(message.message)
loading.close()
}else {
webMsgSend.value = res
}
});
channelsTest.value?.open(channelsSelection.value,props.plan);
return;
}

View File

@@ -91,10 +91,10 @@
<!--下方表格数据-->
<el-tabs class='tabs-menu' type='border-card' @tab-change='handleTabsChange' v-model='editableTabsValue'
:style='{ height: tabsHeight }'>
<el-tab-pane :label='tabLabel1' :style='{ height: tabPaneHeight }'>
<el-tab-pane :label='tabLabel1' :style='{ height: tabPaneHeight}'>
<!-- 列表数据 -->
<div class='container_table' :style='{ height: tableHeight }'>
<Table ref='tableRef1' :id='currentId' :isTimeCheck='isTimeCheck'></Table>
<Table ref='tableRef1' :id='currentId' :isTimeCheck='isTimeCheck' :plan = 'select_Plan'></Table>
</div>
</el-tab-pane>
</el-tabs>
@@ -146,6 +146,7 @@ const tableHeight = ref('calc(100% - 50px)') // 初始高度
const isTimeCheck = ref<boolean>(false)
const planList = ref<ResultData<Plan.ReqPlan[]>>()
const select_Plan = ref<Plan.ReqPlan>()
const handleCollapseChange = (val: CollapseModelValue) => {
// 计算新的高度
@@ -271,6 +272,7 @@ const getPieData = async (id: string) => {
const boundPqDevList = ref<Device.ResPqDev[]>([])//根据检测计划id查询出所有已绑定的设备
const plan = findPlanById(planList.value?.data || [], id)
planName.value = '所选计划:' + plan.name
select_Plan.value = plan
if (plan) {
//isTimeCheck.value = plan.timeCheck === 1; // 将 1 转换为 true0 转换为 false
isTimeCheck.value = false // 将 1 转换为 true0 转换为 false ----目前不用守时检测,先去除
@@ -433,6 +435,7 @@ onUnmounted(() => {
</script>
<style lang='scss' scoped>
.static {
.left_tree {
@@ -538,7 +541,7 @@ onUnmounted(() => {
padding: 0 15px;
font-weight: bold;
width: 100%;
font-size: 18px;
font-size: 14px;
}
}
@@ -617,4 +620,7 @@ onUnmounted(() => {
padding: 0 !important;
}
</style>