<template> <el-card class="remoteTitle"> <div class="card-content"> <div class="demo-image"> <div class="block"> <span class="demonstration">通讯异常</span> <el-icon><Connection color="rgb(255,0,0)"/></el-icon> </div> <div class="block"> <span class="demonstration">读写失败</span> <el-icon><Failed color="rgb(255,0,0)"/></el-icon> </div> <div class="block"> <span class="demonstration">读写成功</span> <el-icon><CircleCheckFilled color="rgb(0,255,0)"/></el-icon> </div> </div> <div class="demo-button"> <el-button type="primary" size="small" :loading="isLoading" @click="ReadAllStatus">读取全部</el-button> <el-button type="primary" size="small" :loading="isLoading" @click="WriteAllStatus">写入全部</el-button> </div> </div> </el-card> <el-loading :visible="isLoading" text="加载中..."></el-loading> <div class="remoteContent"> <el-table ref="tableRef" v-model:checked="selectedRows" @selection-change="handleSelectionChange" @row-click="handleRowClick" style="width: 700px;" show-header="true" :height="tableHeight" :cell-style="setCellStyle" border highlight-current-row :header-cell-style="setHeaderCellStyle" :data="visibleData" v-loading="isLoading" :row-key="getRowId" element-loading-text="数据加载中......" :element-loading-spinner="svg" element-loading-svg-view-box="-10, -10, 50, 50" element-loading-background="rgba(122, 122, 122, 0.8)" > <el-table-column type="selection" width="55px" /> <el-table-column prop="rowIndex" label="序号" width="60px" /> <el-table-column prop="transferId" label="机组编号" v-if="false" /> <el-table-column prop="transferName" label="换热机组" /> <el-table-column label="状态" width="60px"> <template #default="{ row }"> <el-icon v-if="row.transferStatus === 0"></el-icon> <el-icon v-if="row.transferStatus === 1"><CircleCheckFilled color="rgb(0,255,0)"/></el-icon> <el-icon v-if="row.transferStatus === 2"><Failed color="rgb(255,0,0)"/></el-icon> <el-icon v-if="row.transferStatus === 3"><Connection color="rgb(255,0,0)"/></el-icon> </template> </el-table-column> </el-table> <div :style="{ height: tableHeight + 'px', paddingTop: 10 + 'px' }" style="width: 100%; margin: 0 5px; display:flex; flex-direction: column; align-items: center; vertical-align: top;"> <h3 >{{ forms.transferName }}</h3> <el-form :model="forms" label-width="180px" :style="{ height: (tableHeight-80) + 'px'}" style="overflow-y: auto; width: 100%;"> <el-form-item label="夜间降温1:"> <el-col :span="1.5" class="text-center"> <span class="text-gray-500">温度:</span> </el-col> <el-col :span="4"> <el-input v-model="forms.nightCooling1" style="width: 80px;" v-float-number/> ℃ </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartHour1" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour1 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartMin1" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin1 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndHour1" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour1 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndMin1" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin1 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> </el-form-item> <el-form-item label="夜间降温2:"> <el-col :span="1.5" class="text-center"> <span class="text-gray-500">温度:</span> </el-col> <el-col :span="4"> <el-input v-model="forms.nightCooling2" style="width: 80px;" v-float-number/> ℃ </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartHour2" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour2 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartMin2" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin2 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndHour2" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour2 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndMin2" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin2 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> </el-form-item> <el-form-item label="夜间降温3:"> <el-col :span="1.5" class="text-center"> <span class="text-gray-500">温度:</span> </el-col> <el-col :span="4"> <el-input v-model="forms.nightCooling3" style="width: 80px;" v-float-number/> ℃ </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartHour3" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour3 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartMin3" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin3 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndHour3" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour3 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndMin3" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin3 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> </el-form-item> <el-form-item label="夜间降温4:"> <el-col :span="1.5" class="text-center"> <span class="text-gray-500">温度:</span> </el-col> <el-col :span="4"> <el-input v-model="forms.nightCooling4" style="width: 80px;" v-float-number/> ℃ </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartHour4" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour4 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartMin4" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin4 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndHour4" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour4 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndMin4" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin4 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> </el-form-item> <el-form-item label="夜间降温5:"> <el-col :span="1.5" class="text-center"> <span class="text-gray-500">温度:</span> </el-col> <el-col :span="4"> <el-input v-model="forms.nightCooling5" style="width: 80px;" v-float-number/> ℃ </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartHour5" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour5 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartMin5" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin5 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndHour5" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour5 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndMin5" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin5 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> </el-form-item> <el-form-item label="夜间降温6:"> <el-col :span="1.5" class="text-center"> <span class="text-gray-500">温度:</span> </el-col> <el-col :span="4"> <el-input v-model="forms.nightCooling6" style="width: 80px;" v-float-number/> ℃ </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartHour6" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour6 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorStartMin6" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin6 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">时</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndHour6" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour6 === null"> <el-option v-for="item in hour" :key="item" :label="item" :value="item" /> </el-select> </el-col> <el-col :span="0.9" class="text-center"> <span class="text-gray-500">分</span> </el-col> <el-col :span="3"> <el-select v-model="forms.nightOutdoorEndMin6" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin6 === null"> <el-option v-for="item in min" :key="item" :label="item" :value="item" /> </el-select> </el-col> </el-form-item> </el-form> <div style="height:30px; margin: 5px;"> <el-button type="primary" :isLoading="isLoading" size="small" @click="ReadStatus(forms)">读 取</el-button> <el-button type="primary" :isLoading="isLoading" :disabled="forms.isDisabled" size="small" @click="WriteStatus(forms)">写 入</el-button> </div> </div> </div> <el-card style="height: 50px; padding: 0;"> <el-progress :indeterminate="myIndeterminate" :stroke-width="16" :percentage="progress" /> </el-card> </template> <script setup> import { ref, reactive, computed, onMounted, onUnmounted, watch,toRefs,nextTick } from 'vue'; import http from '../../api/http'; import store from "../../store/index"; import { ElMessage } from "element-plus"; import { vFloatNumber } from "../../utils/directives.js"; const enterpriseId = store.getters.getEnterpriseId(); const props = defineProps(['activeRadio']); const tableRef = ref([]); const selectedRows = ref([]); const isLoading= ref(true); const visibleData = ref([]); const tableHeight = ref(500); const progress =ref(0); const myIndeterminate=ref(false); const hour = reactive([]); const min = reactive([]); const forms = reactive({ transferId:"", transferName:"", isDisabled: true, transferStatus: 0, nightCooling1: null, nightCooling2: null, nightCooling3: null, nightCooling4: null, nightCooling5: null, nightCooling6: null, nightOutdoorStartHour1: null, nightOutdoorStartHour2: null, nightOutdoorStartHour3: null, nightOutdoorStartHour4: null, nightOutdoorStartHour5: null, nightOutdoorStartHour6: null, nightOutdoorStartMin1: null, nightOutdoorStartMin2: null, nightOutdoorStartMin3: null, nightOutdoorStartMin4: null, nightOutdoorStartMin5: null, nightOutdoorStartMin6: null, nightOutdoorEndHour1: null, nightOutdoorEndHour2: null, nightOutdoorEndHour3: null, nightOutdoorEndHour4: null, nightOutdoorEndHour5: null, nightOutdoorEndHour6: null, nightOutdoorEndMin1: null, nightOutdoorEndMin2: null, nightOutdoorEndMin3: null, nightOutdoorEndMin4: null, nightOutdoorEndMin5: null, nightOutdoorEndMin6: null, }); onMounted(() => { for(let i = 0; i<= 23;i++){ hour.push(i.toString().padStart(2, '0')); } for(let i = 0; i<= 60;i++){ min.push(i.toString().padStart(2, '0')); } setContentHeight(); window.addEventListener('resize', setContentHeight); }) onUnmounted(() => { window.removeEventListener('resize', setContentHeight); }) watch(() =>props.activeRadio, (oldValue, newValue) => { initData(); },{deep:true}); function setContentHeight() { tableHeight.value = window.innerHeight - 300; } async function initData(){ isLoading.value = true; var type = 0; if(enterpriseId === "9BCA54BC-8F27-4849-8D7D-50C5099E1949".toLowerCase()){ type = 1; } var result = await http.post('/api/remote/GetNight',{"SupplyType":type, "DeviceId": props.activeRadio}); // console.log(result); if(result.success){ visibleData.value = result.data; handleRowClick(visibleData.value[0]); }else{ ElMessage.error(result.message); } isLoading.value = false; } initData(); async function ReadStatus(row){ row.transferStatus = 0; handleRowClick(row); myIndeterminate.value = !myIndeterminate.value; progress.value=50; isLoading.value = true; await ReadStation(row); isLoading.value = false; myIndeterminate.value = !myIndeterminate.value; progress.value=100; } async function ReadAllStatus(){ if(selectedRows.value.length === 0){ ElMessage.warning("请勾选需要远程控制的换热站!"); return; } myIndeterminate.value = !myIndeterminate.value; progress.value=1; isLoading.value = true; if(selectedRows){ var total = selectedRows.value.length; var count =0; for(const item of selectedRows.value){ item.transferStatus = 0; } for(const item of selectedRows.value){ await ReadStation(item); count=count+1; progress.value = (count/total*100).toFixed(2); } } isLoading.value = false; myIndeterminate.value = !myIndeterminate.value; progress.value=100; } async function WriteStatus(row){ row.transferStatus = 0; myIndeterminate.value = !myIndeterminate.value; progress.value=50; isLoading.value = true; await WriteStation(row); isLoading.value = false; myIndeterminate.value = !myIndeterminate.value; progress.value=100; } async function WriteAllStatus(){ if(selectedRows.value.length === 0){ ElMessage.warning("请勾选需要远程控制的换热站!"); return; } if(forms.isDisabled === true){ ElMessage.error(forms.transferName +" 先读取后写入"); return; } myIndeterminate.value = !myIndeterminate.value; progress.value=1; isLoading.value = true; if(selectedRows){ var total = selectedRows.value.length; var count =0; for(const item of selectedRows.value){ item.transferStatus = 0; } for(const item of selectedRows.value){ if(item.isDisabled === false){ await WriteStation(item); }else{ ElMessage.warning(item.transferName + " 写入失败,应先读取再写入"); item.transferStatus = 2; } count=count+1; progress.value = (count/total*100).toFixed(2); } } isLoading.value = false; myIndeterminate.value = !myIndeterminate.value; progress.value=100; } async function ReadStation(row){ var result = await http.post('/api/remote/ReadNight', row.transferId); if(result.success){ var jobj = result.data[0]; //console.log("Value:"+jobj); if(jobj && visibleData){ for(const element of visibleData.value){ if(element.transferId === row.transferId){ element.nightCooling1 = jobj.nightCooling1; element.nightCooling2 = jobj.nightCooling2; element.nightCooling3 = jobj.nightCooling3; element.nightCooling4 = jobj.nightCooling4; element.nightCooling5 = jobj.nightCooling5; element.nightCooling6 = jobj.nightCooling6; element.nightOutdoorStartHour1 = jobj.nightOutdoorStartHour1; element.nightOutdoorStartHour2 = jobj.nightOutdoorStartHour2; element.nightOutdoorStartHour3 = jobj.nightOutdoorStartHour3; element.nightOutdoorStartHour4 = jobj.nightOutdoorStartHour4; element.nightOutdoorStartHour5 = jobj.nightOutdoorStartHour5; element.nightOutdoorStartHour6 = jobj.nightOutdoorStartHour6; element.nightOutdoorStartMin1 = jobj.nightOutdoorStartMin1; element.nightOutdoorStartMin2 = jobj.nightOutdoorStartMin2; element.nightOutdoorStartMin3 = jobj.nightOutdoorStartMin3; element.nightOutdoorStartMin4 = jobj.nightOutdoorStartMin4; element.nightOutdoorStartMin5 = jobj.nightOutdoorStartMin5; element.nightOutdoorStartMin6 = jobj.nightOutdoorStartMin6; element.nightOutdoorEndHour1 = jobj.nightOutdoorEndHour1; element.nightOutdoorEndHour2 = jobj.nightOutdoorEndHour2; element.nightOutdoorEndHour3 = jobj.nightOutdoorEndHour3; element.nightOutdoorEndHour4 = jobj.nightOutdoorEndHour4; element.nightOutdoorEndHour5 = jobj.nightOutdoorEndHour5; element.nightOutdoorEndHour6 = jobj.nightOutdoorEndHour6; element.nightOutdoorEndMin1 = jobj.nightOutdoorEndMin1; element.nightOutdoorEndMin2 = jobj.nightOutdoorEndMin2; element.nightOutdoorEndMin3 = jobj.nightOutdoorEndMin3; element.nightOutdoorEndMin4 = jobj.nightOutdoorEndMin4; element.nightOutdoorEndMin5 = jobj.nightOutdoorEndMin5; element.nightOutdoorEndMin6 = jobj.nightOutdoorEndMin6; element.isDisabled = false; element.transferStatus = jobj.transferStatus; ElMessage.success(row.transferName +" 读取成功"); handleRowClick(element); //console.log("gainMode:"+jobj.gainMode); break; } }; } }else{ ElMessage.error(row.transferName +": "+ result.message); row.transferStatus = 3; } } async function WriteStation(element){ try{ //console.log("write row:"+element.transferName); var writeValue = ""; if(element.nightCooling1 != null && element.nightCooling1 != ""){ writeValue +="NightCooling1:"+forms.nightCooling1 + ";"; element.nightCooling1=forms.nightCooling1; } if(element.nightCooling2 != null && element.nightCooling2 != ""){ writeValue +="NightCooling2:"+forms.nightCooling2 + ";"; element.nightCooling2=forms.nightCooling2; } if(element.nightCooling3 != null && element.nightCooling3 != ""){ writeValue +="NightCooling3:"+forms.nightCooling3 + ";"; element.nightCooling3=forms.nightCooling3; } if(element.nightCooling4 != null && element.nightCooling4 != ""){ writeValue +="NightCooling4:"+forms.nightCooling4 + ";"; element.nightCooling4=forms.nightCooling4; } if(element.nightCooling5 != null && element.nightCooling5 != ""){ writeValue +="NightCooling5:"+forms.nightCooling5 + ";"; element.nightCooling5=forms.nightCooling5; } if(element.nightCooling6 != null && element.nightCooling6 != ""){ writeValue +="NightCooling6:"+forms.nightCooling6 + ";"; element.nightCooling6=forms.nightCooling6; } if(element.nightOutdoorStartHour1 != null && element.nightOutdoorStartHour1 != ""){ writeValue +="NightOutdoorStartHour1:"+forms.nightOutdoorStartHour1 + ";"; element.nightOutdoorStartHour1=forms.nightOutdoorStartHour1; } if(element.nightOutdoorStartHour2 != null && element.nightOutdoorStartHour2 != ""){ writeValue +="NightOutdoorStartHour2:"+forms.nightOutdoorStartHour2 + ";"; element.nightOutdoorStartHour2=forms.nightOutdoorStartHour2; } if(element.nightOutdoorStartHour3 != null && element.nightOutdoorStartHour3 != ""){ writeValue +="NightOutdoorStartHour3:"+forms.nightOutdoorStartHour3 + ";"; element.nightOutdoorStartHour3=forms.nightOutdoorStartHour3; } if(element.nightOutdoorStartHour4 != null && element.nightOutdoorStartHour4 != ""){ writeValue +="NightOutdoorStartHour4:"+forms.nightOutdoorStartHour4 + ";"; element.nightOutdoorStartHour4=forms.nightOutdoorStartHour4; } if(element.nightOutdoorStartHour5 != null && element.nightOutdoorStartHour5 != ""){ writeValue +="NightOutdoorStartHour5:"+forms.nightOutdoorStartHour5 + ";"; element.nightOutdoorStartHour5=forms.nightOutdoorStartHour5; } if(element.nightOutdoorStartHour6 != null && element.nightOutdoorStartHour6 != ""){ writeValue +="NightOutdoorStartHour6:"+forms.nightOutdoorStartHour6 + ";"; element.nightOutdoorStartHour6=forms.nightOutdoorStartHour6; } if(element.nightOutdoorStartMin1 != null && element.nightOutdoorStartMin1 != ""){ writeValue +="NightOutdoorStartMin1:"+forms.nightOutdoorStartMin1 + ";"; element.nightOutdoorStartMin1=forms.nightOutdoorStartMin1; } if(element.nightOutdoorStartMin2 != null && element.nightOutdoorStartMin2 != ""){ writeValue +="NightOutdoorStartMin2:"+forms.nightOutdoorStartMin2 + ";"; element.nightOutdoorStartMin2=forms.nightOutdoorStartMin2; } if(element.nightOutdoorStartMin3 != null && element.nightOutdoorStartMin3 != ""){ writeValue +="NightOutdoorStartMin3:"+forms.nightOutdoorStartMin3 + ";"; element.nightOutdoorStartMin3=forms.nightOutdoorStartMin3; } if(element.nightOutdoorStartMin4 != null && element.nightOutdoorStartMin4 != ""){ writeValue +="NightOutdoorStartMin4:"+forms.nightOutdoorStartMin4 + ";"; element.nightOutdoorStartMin4=forms.nightOutdoorStartMin4; } if(element.nightOutdoorStartMin5 != null && element.nightOutdoorStartMin5 != ""){ writeValue +="NightOutdoorStartMin5:"+forms.nightOutdoorStartMin5 + ";"; element.nightOutdoorStartMin5=forms.nightOutdoorStartMin5; } if(element.nightOutdoorStartMin6 != null && element.nightOutdoorStartMin6 != ""){ writeValue +="NightOutdoorStartMin6:"+forms.nightOutdoorStartMin6 + ";"; element.nightOutdoorStartMin6=forms.nightOutdoorStartMin6; } if(element.nightOutdoorEndHour1 != null && element.nightOutdoorEndHour1 != ""){ writeValue +="NightOutdoorEndHour1:"+forms.nightOutdoorEndHour1 + ";"; element.nightOutdoorEndHour1=forms.nightOutdoorEndHour1; } if(element.nightOutdoorEndHour2 != null && element.nightOutdoorEndHour2 != ""){ writeValue +="NightOutdoorEndHour2:"+forms.nightOutdoorEndHour2 + ";"; element.nightOutdoorEndHour2=forms.nightOutdoorEndHour2; } if(element.nightOutdoorEndHour3 != null && element.nightOutdoorEndHour3 != ""){ writeValue +="NightOutdoorEndHour3:"+forms.nightOutdoorEndHour3 + ";"; element.nightOutdoorEndHour3=forms.nightOutdoorEndHour3; } if(element.nightOutdoorEndHour4 != null && element.nightOutdoorEndHour4 != ""){ writeValue +="NightOutdoorEndHour4:"+forms.nightOutdoorEndHour4 + ";"; element.nightOutdoorEndHour4=forms.nightOutdoorEndHour4; } if(element.nightOutdoorEndHour5 != null && element.nightOutdoorEndHour5 != ""){ writeValue +="NightOutdoorEndHour5:"+forms.nightOutdoorEndHour5 + ";"; element.nightOutdoorEndHour5=forms.nightOutdoorEndHour5; } if(element.nightOutdoorEndHour6 != null && element.nightOutdoorEndHour6 != ""){ writeValue +="NightOutdoorEndHour6:"+forms.nightOutdoorEndHour6 + ";"; element.nightOutdoorEndHour6=forms.nightOutdoorEndHour6; } if(element.nightOutdoorEndMin1 != null && element.nightOutdoorEndMin1 != ""){ writeValue +="NightOutdoorEndMin1:"+forms.nightOutdoorEndMin1 + ";"; element.nightOutdoorEndMin1=forms.nightOutdoorEndMin1; } if(element.nightOutdoorEndMin2 != null && element.nightOutdoorEndMin2 != ""){ writeValue +="NightOutdoorEndMin2:"+forms.nightOutdoorEndMin2 + ";"; element.nightOutdoorEndMin2=forms.nightOutdoorEndMin2; } if(element.nightOutdoorEndMin3 != null && element.nightOutdoorEndMin3 != ""){ writeValue +="NightOutdoorEndMin3:"+forms.nightOutdoorEndMin3 + ";"; element.nightOutdoorEndMin3=forms.nightOutdoorEndMin3; } if(element.nightOutdoorEndMin4 != null && element.nightOutdoorEndMin4 != ""){ writeValue +="NightOutdoorEndMin4:"+forms.nightOutdoorEndMin4 + ";"; element.nightOutdoorEndMin4=forms.nightOutdoorEndMin4; } if(element.nightOutdoorEndMin5 != null && element.nightOutdoorEndMin5 != ""){ writeValue +="NightOutdoorEndMin5:"+forms.nightOutdoorEndMin5 + ";"; element.nightOutdoorEndMin5=forms.nightOutdoorEndMin5; } if(element.nightOutdoorEndMin6 != null && element.nightOutdoorEndMin6 != ""){ writeValue +="NightOutdoorEndMin6:"+forms.nightOutdoorEndMin6 + ";"; element.nightOutdoorEndMin6=forms.nightOutdoorEndMin6; } if(writeValue === ''){ ElMessage.error(element.transferName +" 未获取到写入数据"); return; } //console.log(writeValue); var result = await http.post('/api/remote/WriteTransfer', {"TransferId":element.transferId, "WriteValues": writeValue, "PanelType": 3}); if(result.success){ ElMessage.success(element.transferName +" "+ result.data); element.transferStatus = 1; handleRowClick(forms); }else{ ElMessage.error(element.transferName +" "+ result.message); if(result.message === "连接异常"){ element.transferStatus = 3; }else{ element.transferStatus = 2; } } }catch(error){ ElMessage.error(element.transferName +" "+ error.message); element.transferStatus = 3; } } function setCellStyle({ row, column, rowIndex, columnIndex }) { let css_color = {}; css_color['padding-left'] = '0px'; css_color['padding-right'] = '0px'; css_color['borderColor'] = '#97d5fd'; css_color['padding'] = '0px'; css_color['textAlign'] = 'center'; if(row.transferId === forms.transferId){ css_color['backgroundColor'] = '#f0faff'; }else{ css_color['backgroundColor'] = '#fff'; } return css_color; } function setHeaderCellStyle({ row, column, rowIndex, columnIndex }) { let css_color; var backcolor = 'd9f1ff'; css_color = { 'background-color': '#' + backcolor, 'padding-left': '0px', 'padding-right': '0px', 'borderColor': '#97d5fd', 'color': '#000', 'text-align': 'center', 'vertical-align': 'top' }; var backcolor = 'd9f1ff'; css_color = { 'background-color': '#' + backcolor, 'padding-left': '0px', 'padding-right': '0px', 'borderColor': '#97d5fd', 'color': '#000', 'text-align': 'center', 'vertical-align': 'top' }; return css_color; } const handleSelectionChange = (selection) => { selectedRows.value = selection; }; const handleRowClick=(row)=>{ visibleData.value.forEach((item) =>{ nextTick(() => { if(item.transferId === forms.transferId){ tableRef.value.toggleRowSelection(item,true); } }); }) forms.transferId = row.transferId; forms.transferName = row.transferName; forms.isDisabled = row.isDisabled; forms.transferStatus = row.transferStatus; forms.nightCooling1 = row.nightCooling1; forms.nightCooling2 = row.nightCooling2; forms.nightCooling3 = row.nightCooling3; forms.nightCooling4 = row.nightCooling4; forms.nightCooling5 = row.nightCooling5; forms.nightCooling6 = row.nightCooling6; forms.nightOutdoorStartHour1 = row.nightOutdoorStartHour1; forms.nightOutdoorStartHour2 = row.nightOutdoorStartHour2; forms.nightOutdoorStartHour3 = row.nightOutdoorStartHour3; forms.nightOutdoorStartHour4 = row.nightOutdoorStartHour4; forms.nightOutdoorStartHour5 = row.nightOutdoorStartHour5; forms.nightOutdoorStartHour6 = row.nightOutdoorStartHour6; forms.nightOutdoorStartMin1 = row.nightOutdoorStartMin1; forms.nightOutdoorStartMin2 = row.nightOutdoorStartMin2; forms.nightOutdoorStartMin3 = row.nightOutdoorStartMin3; forms.nightOutdoorStartMin4 = row.nightOutdoorStartMin4; forms.nightOutdoorStartMin5 = row.nightOutdoorStartMin5; forms.nightOutdoorStartMin6 = row.nightOutdoorStartMin6; forms.nightOutdoorEndHour1 = row.nightOutdoorEndHour1; forms.nightOutdoorEndHour2 = row.nightOutdoorEndHour2; forms.nightOutdoorEndHour3 = row.nightOutdoorEndHour3; forms.nightOutdoorEndHour4 = row.nightOutdoorEndHour4; forms.nightOutdoorEndHour5 = row.nightOutdoorEndHour5; forms.nightOutdoorEndHour6 = row.nightOutdoorEndHour6; forms.nightOutdoorEndMin1 = row.nightOutdoorEndMin1; forms.nightOutdoorEndMin2 = row.nightOutdoorEndMin2; forms.nightOutdoorEndMin3 = row.nightOutdoorEndMin3; forms.nightOutdoorEndMin4 = row.nightOutdoorEndMin4; forms.nightOutdoorEndMin5 = row.nightOutdoorEndMin5; forms.nightOutdoorEndMin6 = row.nightOutdoorEndMin6; } const svg = ` <path class="path" d=" M 30 15 L 28 17 M 25.61 25.61 A 15 15, 0, 0, 1, 15 30 A 15 15, 0, 1, 1, 27.99 7.5 L 15 15 " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>` function updateStartDay(row){ var days = 31; const year = new Date().getFullYear(); days = new Date(year, row.holidayMonStart, 0).getDate(); startDay.length =0; for(var i = 0; i<= days;i++){ startDay.push(i.toString().padStart(2, '0')); } row.holidayDayStart = 0; } function updateEndDay(row){ var days = 31; const year = new Date().getFullYear(); days = new Date(year, row.holidayMonEnd, 0).getDate(); endDay.length =0; for(var i = 0; i<= days;i++){ endDay.push(i.toString().padStart(2, '0')); } row.holidayDayEnd = 0; } </script> <style scoped> .remoteTitle{ width: 100%; } .card-content { display: flex; justify-content: space-between; height: 20px; } .remoteContent{ width:100%; height: 100%; display: flex; justify-content:center; align-items: center; } .demo-button{ display: right; width: 20%; } .demo-image { width: 80%; display: left; flex: 9; margin-top: -10px; } .demo-image .block { padding: 1px 0; text-align: center; border-right: solid 1px var(--el-border-color); display: inline-block; width: 80px; box-sizing: border-box; vertical-align: top; } .demo-image .block:last-child { border-right: none; } .demo-image .demonstration { display: block; color: var(--el-text-color-secondary); font-size: 12px; margin-bottom: 0px; } .el-select{ width:80px; } </style>