Commit da404ade authored by 王亚晖's avatar 王亚晖

修改换热站寄存器远程控制界面

parent 609b1ac9
<template>
夜间降温参数组
<el-table>
<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>
<el-table
ref="tableRef"
v-model:checked="selectedRows"
@selection-change="handleSelectionChange"
width="100%"
show-header="true"
:height="tableHeight"
:cell-style="setCellStyle"
border
highlight-current-row
:header-cell-style="setHeaderCellStyle"
:data="visibleData"
v-loading="isLoading"
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="55" />
<el-table-column prop="rowIndex" label="序号" width="45px" fixed />
<el-table-column prop="transferId" label="机组编号" v-if="false" fixed />
<el-table-column prop="transferName" label="换热机组" fixed style="min-width: 100px;"/>
<el-table-column prop="nightCooling1" label="夜间降温1" width="100px" >
<template #default="{ row }">
<div v-if="row.nightCooling1 === null"></div>
<div v-else>
<el-input v-model="row.nightCooling1" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartHour1" label="夜间降温起始(时)1" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartHour1 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartHour1" placeholder="起始时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartMin1" label="夜间降温起始(分)1" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartMin1 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartMin1" placeholder="起始分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndHour1" label="夜间降温终止(时)1" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndHour1 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndHour1" placeholder="终止时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndMin1" label="夜间降温终止(分)1" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndMin1 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndMin1" placeholder="终止分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightCooling2" label="夜间降温2" width="100px" >
<template #default="{ row }">
<div v-if="row.nightCooling2 === null"></div>
<div v-else>
<el-input v-model="row.nightCooling2" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartHour2" label="夜间降温起始(时)2" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartHour2 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartHour2" placeholder="起始时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartMin2" label="夜间降温起始(分)2" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartMin2 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartMin2" placeholder="起始分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndHour2" label="夜间降温终止(时)2" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndHour2 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndHour2" placeholder="终止时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndMin2" label="夜间降温终止(分)2" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndMin2 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndMin2" placeholder="终止分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightCooling3" label="夜间降温3" width="100px" >
<template #default="{ row }">
<div v-if="row.nightCooling3 === null"></div>
<div v-else>
<el-input v-model="row.nightCooling3" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartHour3" label="夜间降温起始(时)3" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartHour3 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartHour3" placeholder="起始时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartMin3" label="夜间降温起始(分)3" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartMin3 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartMin3" placeholder="起始分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndHour3" label="夜间降温终止(时)3" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndHour3 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndHour3" placeholder="终止时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndMin3" label="夜间降温终止(分)3" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndMin3 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndMin3" placeholder="终止分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightCooling4" label="夜间降温4" width="100px" >
<template #default="{ row }">
<div v-if="row.nightCooling4 === null"></div>
<div v-else>
<el-input v-model="row.nightCooling4" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartHour4" label="夜间降温起始(时)4" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartHour4 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartHour4" placeholder="起始时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartMin4" label="夜间降温起始(分)4" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartMin4 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartMin4" placeholder="起始分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndHour4" label="夜间降温终止(时)4" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndHour4 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndHour4" placeholder="终止时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndMin4" label="夜间降温终止(分)4" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndMin4 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndMin4" placeholder="终止分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightCooling5" label="夜间降温5" width="100px" >
<template #default="{ row }">
<div v-if="row.nightCooling5 === null"></div>
<div v-else>
<el-input v-model="row.nightCooling5" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartHour5" label="夜间降温起始(时)5" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartHour5 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartHour5" placeholder="起始时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartMin5" label="夜间降温起始(分)5" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartMin5 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartMin5" placeholder="起始分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndHour5" label="夜间降温终止(时)5" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndHour5 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndHour5" placeholder="终止时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndMin5" label="夜间降温终止(分)5" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndMin5 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndMin5" placeholder="终止分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightCooling6" label="夜间降温6" width="100px" >
<template #default="{ row }">
<div v-if="row.nightCooling6 === null"></div>
<div v-else>
<el-input v-model="row.nightCooling6" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartHour6" label="夜间降温起始(时)6" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartHour6 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartHour6" placeholder="起始时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorStartMin6" label="夜间降温起始(分)6" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorStartMin6 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorStartMin6" placeholder="起始分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndHour6" label="夜间降温终止(时)6" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndHour6 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndHour6" placeholder="终止时" size="small">
<el-option
v-for="item in hours"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column prop="nightOutdoorEndMin6" label="夜间降温终止(分)6" width="100px" >
<template #default="{ row }">
<div v-if="row.nightOutdoorEndMin6 === null"></div>
<div v-else>
<el-select v-model="row.nightOutdoorEndMin6" placeholder="终止分" size="small">
<el-option
v-for="item in mins"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="状态" width="50">
<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-column fixed="right" label="操作" width="100">
<template #default="{ row }">
<el-button link type="primary" :isLoading="isLoading" size="small" @click="ReadStatus(row)">读取</el-button>
<el-button link type="primary" :isLoading="isLoading" :disabled="row.isDisabled" size="small" @click="WriteStatus(row)">写入</el-button>
</template>
</el-table-column>
</el-table>
</template>
\ No newline at end of file
<el-card style="height: 50px; padding: 0;">
<el-progress
:indeterminate="myIndeterminate"
:stroke-width="16"
:percentage="progress"
/>
</el-card>
</template>
<script lang="ts" setup>
import { ref, reactive, computed, onMounted, onUnmounted, watch,toRefs } 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 hours = reactive([]);
const mins = reactive([]);
onMounted(() => {
hours.length=0;
mins.length =0;
for(let i = 0; i<= 60;i++){
mins.push(i.toString().padStart(2, '0'));
}
for(let i = 0; i<= 23;i++){
hours.push(i.toString().padStart(2, '0'));
}
setContentHeight();
window.addEventListener('resize', setContentHeight);
})
onUnmounted(() => {
window.removeEventListener('resize', setContentHeight);
})
//监听修改actionValue状态
watch(() =>props.activeRadio, (oldValue, newValue) => {
initData();
},{deep:true});
function setContentHeight() {
tableHeight.value = window.innerHeight - 290;
}
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;
}else{
ElMessage.error(result.message);
}
isLoading.value = false;
}
initData();
async function ReadStatus(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){
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){
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;
}
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){
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 +" 读取成功");
//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);
var writeValue = "";
if(element.nightCooling1 != null){
writeValue +="NightCooling1:"+element.nightCooling1 + ";";
}
if(element.nightCooling2 != null){
writeValue +="NightCooling2:"+element.nightCooling2 + ";";
}
if(element.nightCooling3 != null){
writeValue +="NightCooling3:"+element.nightCooling3 + ";";
}
if(element.nightCooling4 != null){
writeValue +="NightCooling4:"+element.nightCooling4 + ";";
}
if(element.nightCooling5 != null){
writeValue +="NightCooling5:"+element.nightCooling5 + ";";
}
if(element.nightCooling6 != null){
writeValue +="NightCooling6:"+element.nightCooling6 + ";";
}
if(element.nightOutdoorStartHour1 != null){
writeValue +="NightOutdoorStartHour1:"+element.nightOutdoorStartHour1 + ";";
}
if(element.nightOutdoorStartHour2 != null){
writeValue +="NightOutdoorStartHour2:"+element.nightOutdoorStartHour2 + ";";
}
if(element.nightOutdoorStartHour3 != null){
writeValue +="NightOutdoorStartHour3:"+element.nightOutdoorStartHour3 + ";";
}
if(element.nightOutdoorStartHour4 != null){
writeValue +="NightOutdoorStartHour4:"+element.nightOutdoorStartHour4 + ";";
}
if(element.nightOutdoorStartHour5 != null){
writeValue +="NightOutdoorStartHour5:"+element.nightOutdoorStartHour5 + ";";
}
if(element.nightOutdoorStartHour6 != null){
writeValue +="NightOutdoorStartHour6:"+element.nightOutdoorStartHour6 + ";";
}
if(element.nightOutdoorStartMin1 != null){
writeValue +="NightOutdoorStartMin1:"+element.nightOutdoorStartMin1 + ";";
}
if(element.nightOutdoorStartMin2 != null){
writeValue +="NightOutdoorStartMin2:"+element.nightOutdoorStartMin2 + ";";
}
if(element.nightOutdoorStartMin3 != null){
writeValue +="NightOutdoorStartMin3:"+element.nightOutdoorStartMin3 + ";";
}
if(element.nightOutdoorStartMin4 != null){
writeValue +="NightOutdoorStartMin4:"+element.nightOutdoorStartMin4 + ";";
}
if(element.nightOutdoorStartMin5 != null){
writeValue +="NightOutdoorStartMin5:"+element.nightOutdoorStartMin5 + ";";
}
if(element.nightOutdoorStartMin6 != null){
writeValue +="NightOutdoorStartMin6:"+element.nightOutdoorStartMin6 + ";";
}
if(element.nightOutdoorEndHour1 != null){
writeValue +="NightOutdoorEndHour1:"+element.nightOutdoorEndHour1 + ";";
}
if(element.nightOutdoorEndHour2 != null){
writeValue +="NightOutdoorEndHour2:"+element.nightOutdoorEndHour2 + ";";
}
if(element.nightOutdoorEndHour3 != null){
writeValue +="NightOutdoorEndHour3:"+element.nightOutdoorEndHour3 + ";";
}
if(element.nightOutdoorEndHour4 != null){
writeValue +="NightOutdoorEndHour4:"+element.nightOutdoorEndHour4 + ";";
}
if(element.nightOutdoorEndHour5 != null){
writeValue +="NightOutdoorEndHour5:"+element.nightOutdoorEndHour5 + ";";
}
if(element.nightOutdoorEndHour6 != null){
writeValue +="NightOutdoorEndHour6:"+element.nightOutdoorEndHour6 + ";";
}
if(element.nightOutdoorEndMin1 != null){
writeValue +="NightOutdoorEndMin1:"+element.nightOutdoorEndMin1 + ";";
}
if(element.nightOutdoorEndMin2 != null){
writeValue +="NightOutdoorEndMin2:"+element.nightOutdoorEndMin2 + ";";
}
if(element.nightOutdoorEndMin3 != null){
writeValue +="NightOutdoorEndMin3:"+element.nightOutdoorEndMin3 + ";";
}
if(element.nightOutdoorEndMin4 != null){
writeValue +="NightOutdoorEndMin4:"+element.nightOutdoorEndMin4 + ";";
}
if(element.nightOutdoorEndMin5 != null){
writeValue +="NightOutdoorEndMin5:"+element.nightOutdoorEndMin5 + ";";
}
if(element.nightOutdoorEndMin6 != null){
writeValue +="NightOutdoorEndMin6:"+element.nightOutdoorEndMin6 + ";";
}
//console.log(element.secCriclePumpAutoOrManual);
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;
}else{
ElMessage.error(element.transferName +" "+ result.data);
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';
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 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)"/>`
</script>
<style scoped>
.remoteTitle{
width: 100%;
}
.card-content {
display: flex;
justify-content: space-between;
height: 20px;
}
.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;
}
</style>
\ No newline at end of file
......@@ -22,11 +22,13 @@
</div>
</el-card>
<el-loading :visible="isLoading" text="加载中..."></el-loading>
<div class="remoteContent">
<el-table
ref="tableRef"
v-model:checked="selectedRows"
@selection-change="handleSelectionChange"
width="100%"
@row-click="handleRowClick"
width="500px"
show-header="true"
:height="tableHeight"
:cell-style="setCellStyle"
......@@ -35,112 +37,17 @@
: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="55" />
<el-table-column prop="rowIndex" label="序号" width="45px" fixed />
<el-table-column prop="transferId" label="机组编号" v-if="false" fixed />
<el-table-column prop="transferName" label="换热机组" fixed />
<el-table-column prop="ecv1OpeningSet" label="1#电调阀给定" width="100px" >
<template #default="{ row }">
<div v-if="row.ecv1OpeningSet === null"></div>
<div v-else>
<el-input v-model="row.ecv1OpeningSet" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="ecv2OpeningSet" label="2#电调阀给定" width="100px" >
<template #default="{ row }">
<div v-if="row.ecv2OpeningSet === null"></div>
<div v-else>
<el-input v-model="row.ecv2OpeningSet" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="ecv3OpeningSet" label="3#电调阀给定" width="100px" >
<template #default="{ row }">
<div v-if="row.ecv3OpeningSet === null"></div>
<div v-else>
<el-input v-model="row.ecv3OpeningSet" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="ecv4OpeningSet" label="4#电调阀给定" width="100px" >
<template #default="{ row }">
<div v-if="row.ecv4OpeningSet === null"></div>
<div v-else>
<el-input v-model="row.ecv4OpeningSet" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="criclePump1FreqGiven" label="1#循环泵频率给定" width="100px" >
<template #default="{ row }">
<div v-if="row.criclePump1FreqGiven === null"></div>
<div v-else>
<el-input v-model="row.criclePump1FreqGiven" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="criclePump2FreqGiven" label="2#循环泵频率给定" width="100px" >
<template #default="{ row }">
<div v-if="row.criclePump2FreqGiven === null"></div>
<div v-else>
<el-input v-model="row.criclePump2FreqGiven" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="criclePump3FreqGiven" label="3#循环泵频率给定" width="100px" >
<template #default="{ row }">
<div v-if="row.criclePump3FreqGiven === null"></div>
<div v-else>
<el-input v-model="row.criclePump3FreqGiven" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="tempGainValue" label="温度增益值" width="100px" >
<template #default="{ row }">
<div v-if="row.tempGainValue === null"></div>
<div v-else>
<el-input v-model="row.tempGainValue" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="pressureDiffSetting" label="压差设定" width="100px" >
<template #default="{ row }">
<div v-if="row.pressureDiffSetting === null"></div>
<div v-else>
<el-input v-model="row.pressureDiffSetting" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="waterBoxOpen" label="水箱进水低液位开阀" width="100px" >
<template #default="{ row }">
<div v-if="row.waterBoxOpen === null"></div>
<div v-else>
<el-input v-model="row.waterBoxOpen" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="waterBoxClose" label="水箱进水高液位关阀" width="100px" >
<template #default="{ row }">
<div v-if="row.waterBoxClose === null"></div>
<div v-else>
<el-input v-model="row.waterBoxClose" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column prop="jdSecondInletTemp" label="华为二次网供水温度设定值" width="100px" >
<template #default="{ row }">
<div v-if="row.jdSecondInletTemp === null"></div>
<div v-else>
<el-input v-model="row.jdSecondInletTemp" v-float-number/>
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="状态" width="50">
<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>
......@@ -148,13 +55,63 @@
<el-icon v-if="row.transferStatus === 3"><Connection color="rgb(255,0,0)"/></el-icon>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<!-- <el-table-column fixed="right" label="操作" width="100px">
<template #default="{ row }">
<el-button link type="primary" :isLoading="isLoading" size="small" @click="ReadStatus(row)">读取</el-button>
<el-button link type="primary" :isLoading="isLoading" :disabled="row.isDisabled" size="small" @click="WriteStatus(row)">写入</el-button>
</template>
</el-table-column>
</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="300px" :style="{ height: (tableHeight-80) + 'px'}" style="overflow-y: auto; width: 100%;">
<el-form-item label="1#电调阀给定:" v-if="forms.ecv1OpeningSet != null">
<el-input v-model="forms.ecv1OpeningSet" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="2#电调阀给定:" v-if="forms.ecv2OpeningSet != null">
<el-input v-model="forms.ecv2OpeningSet" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="3#电调阀给定:" v-if="forms.ecv3OpeningSet != null">
<el-input v-model="forms.ecv3OpeningSet" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="4#电调阀给定:" v-if="forms.ecv4OpeningSet != null">
<el-input v-model="forms.ecv4OpeningSet" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="1#循环泵频率给定" v-if="forms.criclePump1FreqGiven != null">
<el-input v-model="forms.criclePump1FreqGiven" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="2#循环泵频率给定:" v-if="forms.criclePump2FreqGiven != null">
<el-input v-model="forms.criclePump2FreqGiven" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="3#循环泵频率给定:" v-if="forms.criclePump3FreqGiven != null">
<el-input v-model="forms.criclePump3FreqGiven" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="4#循环泵频率给定:" v-if="forms.criclePump4FreqGiven != null">
<el-input v-model="forms.criclePump4FreqGiven" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="温度增益值:" v-if="forms.tempGainValue != null">
<el-input v-model="forms.tempGainValue" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="压差设定:" v-if="forms.pressureDiffSetting != null">
<el-input v-model="forms.pressureDiffSetting" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="水箱进水低液位开阀:" v-if="forms.waterBoxOpen != null">
<el-input v-model="forms.waterBoxOpen" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="水箱进水高液位关阀:" v-if="forms.waterBoxClose != null">
<el-input v-model="forms.waterBoxClose" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="华为二次网供水温度设定值:" v-if="forms.jdSecondInletTemp != null">
<el-input v-model="forms.jdSecondInletTemp" style="width: 200px;" v-float-number/>
</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"
......@@ -163,8 +120,8 @@
/>
</el-card>
</template>
<script lang="ts" setup>
import { ref, reactive, computed, onMounted, onUnmounted, watch,toRefs } from 'vue';
<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";
......@@ -179,6 +136,25 @@
const tableHeight = ref(500);
const progress =ref(0);
const myIndeterminate=ref(false);
const forms = reactive({
transferId:"",
transferName:"",
isDisabled: true,
transferStatus: 0,
ecv1OpeningSet: null,
ecv2OpeningSet: null,
ecv3OpeningSet: null,
ecv4OpeningSet: null,
criclePump1FreqGiven: null,
criclePump2FreqGiven: null,
criclePump3FreqGiven: null,
criclePump4FreqGiven: null,
tempGainValue: null,
pressureDiffSetting: null,
waterBoxOpen: null,
waterBoxClose: null,
jdSecondInletTemp: null
});
onMounted(() => {
setContentHeight();
......@@ -189,13 +165,12 @@
window.removeEventListener('resize', setContentHeight);
})
//监听修改actionValue状态
watch(() =>props.activeRadio, (oldValue, newValue) => {
initData();
},{deep:true});
function setContentHeight() {
tableHeight.value = window.innerHeight - 290;
tableHeight.value = window.innerHeight - 300;
}
async function initData(){
......@@ -208,6 +183,7 @@
// console.log(result);
if(result.success){
visibleData.value = result.data;
handleRowClick(visibleData.value[0]);
}else{
ElMessage.error(result.message);
}
......@@ -216,6 +192,8 @@
initData();
async function ReadStatus(row){
row.transferStatus = 0;
handleRowClick(row);
myIndeterminate.value = !myIndeterminate.value;
progress.value=50;
isLoading.value = true;
......@@ -236,6 +214,9 @@
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;
......@@ -247,6 +228,7 @@
progress.value=100;
}
async function WriteStatus(row){
row.transferStatus = 0;
myIndeterminate.value = !myIndeterminate.value;
progress.value=50;
isLoading.value = true;
......@@ -266,6 +248,9 @@
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);
......@@ -276,6 +261,7 @@
count=count+1;
progress.value = (count/total*100).toFixed(2);
}
}
isLoading.value = false;
myIndeterminate.value = !myIndeterminate.value;
......@@ -304,6 +290,7 @@
element.isDisabled = false;
element.transferStatus = jobj.transferStatus;
ElMessage.success(row.transferName +" 读取成功");
handleRowClick(element);
//console.log("gainMode:"+jobj.gainMode);
break;
}
......@@ -316,54 +303,71 @@
}
async function WriteStation(element){
try{
console.log("write row:"+element);
//console.log("write row:"+element.transferName);
var writeValue = "";
if(element.ecv1OpeningSet != null){
writeValue +="Ecv1OpeningSet:"+element.ecv1OpeningSet + ";";
if(forms.ecv1OpeningSet != null){
element.ecv1OpeningSet=forms.ecv1OpeningSet;
writeValue +="Ecv1OpeningSet:"+forms.ecv1OpeningSet + ";";
}
if(element.ecv2OpeningSet != null){
writeValue +="Ecv2OpeningSet:"+element.ecv2OpeningSet + ";";
if(forms.ecv2OpeningSet != null){
element.ecv2OpeningSet=forms.ecv2OpeningSet;
writeValue +="Ecv2OpeningSet:"+forms.ecv2OpeningSet + ";";
}
if(element.ecv3OpeningSet != null){
writeValue +="Ecv3OpeningSet:"+element.ecv3OpeningSet + ";";
if(forms.ecv3OpeningSet != null){
element.ecv3OpeningSet=forms.ecv3OpeningSet;
writeValue +="Ecv3OpeningSet:"+forms.ecv3OpeningSet + ";";
}
if(element.ecv4OpeningSet != null){
writeValue +="Ecv4OpeningSet:"+element.ecv4OpeningSet + ";";
if(forms.ecv4OpeningSet != null){
element.ecv4OpeningSet=forms.ecv4OpeningSet;
writeValue +="Ecv4OpeningSet:"+forms.ecv4OpeningSet + ";";
}
if(element.criclePump1FreqGiven != null){
writeValue +="CriclePump1FreqGiven:"+element.criclePump1FreqGiven + ";";
if(forms.criclePump1FreqGiven != null){
element.criclePump1FreqGiven=forms.criclePump1FreqGiven;
writeValue +="CriclePump1FreqGiven:"+forms.criclePump1FreqGiven + ";";
}
if(element.criclePump2FreqGiven != null){
writeValue +="CriclePump2FreqGiven:"+element.criclePump2FreqGiven + ";";
if(forms.criclePump2FreqGiven != null){
element.criclePump2FreqGiven=forms.criclePump2FreqGiven;
writeValue +="CriclePump2FreqGiven:"+forms.criclePump2FreqGiven + ";";
}
if(element.criclePump3FreqGiven != null){
writeValue +="CriclePump3FreqGiven:"+element.criclePump3FreqGiven + ";";
if(forms.criclePump3FreqGiven != null){
element.criclePump3FreqGiven=forms.criclePump3FreqGiven;
writeValue +="CriclePump3FreqGiven:"+forms.criclePump3FreqGiven + ";";
}
if(element.tempGainValue != null){
writeValue +="TempGainValue:"+element.tempGainValue + ";";
if(forms.tempGainValue != null){
element.tempGainValue=forms.tempGainValue;
writeValue +="TempGainValue:"+forms.tempGainValue + ";";
}
if(element.pressureDiffSetting != null){
writeValue +="PressureDiffSetting:"+element.pressureDiffSetting + ";";
if(forms.pressureDiffSetting != null){
element.pressureDiffSetting=forms.pressureDiffSetting;
writeValue +="PressureDiffSetting:"+forms.pressureDiffSetting + ";";
}
if(element.waterBoxOpen != null){
writeValue +="WaterBoxOpen:"+element.waterBoxOpen + ";";
if(forms.waterBoxOpen != null){
element.waterBoxOpen=forms.waterBoxOpen;
writeValue +="WaterBoxOpen:"+forms.waterBoxOpen + ";";
}
if(element.waterBoxClose != null){
writeValue +="WaterBoxClose:"+element.waterBoxClose + ";";
if(forms.waterBoxClose != null){
element.waterBoxClose=forms.waterBoxClose;
writeValue +="WaterBoxClose:"+forms.waterBoxClose + ";";
}
if(element.jdSecondInletTemp != null){
writeValue +="JDSecondInletTemp:"+element.jdSecondInletTemp + ";";
if(forms.jdSecondInletTemp != null){
element.jdSecondInletTemp=forms.jdSecondInletTemp;
writeValue +="JDSecondInletTemp:"+forms.jdSecondInletTemp + ";";
}
// console.log(element.secCriclePumpAutoOrManual);
//console.log(writeValue);
var result = await http.post('/api/remote/WriteTransfer', {"TransferId":element.transferId, "WriteValues": writeValue, "PanelType": 1});
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{
ElMessage.error(element.transferName +" "+ result.data);
element.transferStatus = 2;
}
}
}catch(error){
ElMessage.error(element.transferName +" "+ error.message);
element.transferStatus = 3;
......@@ -376,6 +380,12 @@
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;
}
......@@ -394,6 +404,26 @@
selectedRows.value = selection;
};
const handleRowClick=(row)=>{
// console.log(row);
forms.transferId = row.transferId;
forms.transferName = row.transferName;
forms.isDisabled = row.isDisabled;
forms.transferStatus = row.transferStatus;
forms.ecv1OpeningSet = row.ecv1OpeningSet;
forms.ecv2OpeningSet = row.ecv2OpeningSet;
forms.ecv3OpeningSet = row.ecv3OpeningSet;
forms.ecv4OpeningSet = row.ecv4OpeningSet;
forms.criclePump1FreqGiven = row.criclePump1FreqGiven;
forms.criclePump2FreqGiven = row.criclePump2FreqGiven;
forms.criclePump3FreqGiven = row.criclePump3FreqGiven;
forms.tempGainValue = row.tempGainValue;
forms.pressureDiffSetting = row.pressureDiffSetting;
forms.waterBoxOpen = row.waterBoxOpen;
forms.waterBoxClose = row.waterBoxClose;
forms.jdSecondInletTemp = row.jdSecondInletTemp;
}
const svg = `
<path class="path" d="
M 30 15
......@@ -412,9 +442,17 @@
}
.card-content {
display: flex;
justify-content: space-between;
height: 20px;
display: flex;
justify-content: space-between;
height: 20px;
}
.remoteContent{
width:100%;
height: 100%;
display: flex;
justify-content:center;
align-items: center;
}
.demo-button{
......@@ -430,22 +468,26 @@ height: 20px;
}
.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;
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;
border-right: none;
}
.demo-image .demonstration {
display: block;
color: var(--el-text-color-secondary);
font-size: 12px;
margin-bottom: 0px;
display: block;
color: var(--el-text-color-secondary);
font-size: 12px;
margin-bottom: 0px;
}
/* 在你的样式文件中 */
.selected-row {
background-color: #f0f0f0; /* 选中行的背景颜色 */
color: #333; /* 选中行的文字颜色 */
}
</style>
\ No newline at end of file
......@@ -7,6 +7,7 @@ import store from '@/store'
//import nProgress from 'nprogress'
import screenDisplay from '@/views/Gis/screenDisplay.vue'
import iframe from '@/views/iframe.vue'
//import remote from './remote'
// 定义路由规则
const routes = [
......@@ -31,7 +32,9 @@ const routes = [
path: '/Home',
name: "Home",
component: HomePage,
children: [{
children: [
// ...remote,//远程控制
{
path: '/RealSupply',
name: 'RealSupplyPage',
component: () => import('@/views/RealPage/RealSupplyPage.vue'),
......
<template>
<el-card class="card-contianer">
<div>
</div>
<label>{{radioTitle}}</label>
<el-radio-group v-model="activeRadio" style="margin-left: 50px;">
<el-radio
......@@ -53,12 +50,24 @@
<NightFrequency :activeRadio="activeRadio"/>
</el-tab-pane>
</el-tabs>
<!-- <el-tabs v-model="activeTab" @tab-click="handleClick" :tab-position="tabPosition" style="height: 100%" class="demo-tabs">
<el-tab-pane
v-for="item in editableTabs"
:key="item.name"
:label="item.title"
:name="item.name"
></el-tab-pane> -->
<!-- <el-tab-pane name="TransferStatusControl" label="换热站状态" v-if="isTransferStatus"></el-tab-pane>
<el-tab-pane name="TransferRegControl" label="远程寄存器" v-if="isTransferRegControl"></el-tab-pane> -->
<!-- </el-tabs> -->
<!-- <router-view /> -->
</template>
<script lang="ts" setup>
import { ref, reactive, onMounted, onUnmounted, watch } from 'vue';
import http from '../../api/http';
import store from "../../store/index";
import { useRoute, useRouter } from 'vue-router';
import TransferStatusControl from '../../components/Remote/TransferStatusControl.vue';
import TransferRegControl from '../../components/Remote/TransferRegControl.vue';
import HolidayControl from '../../components/Remote/HolidayControl.vue';
......@@ -90,6 +99,32 @@
const isOutdoorTempControl = ref(false);
const isNightFrequency = ref(false);
// const editableTabs = reactive([
// {
// title: '换热站状态',
// path: '../../components/Remote/TransferStatusControl.vue',
// name: 'TransferStatusControl',
// isActive: false,
// component: TransferStatusControl
// },
// {
// title: '远程寄存器值',
// path: '/Remote/RemoteTransferReg',
// name: 'TransferRegControl',
// isActive: false,
// component: TransferRegControl
// }
// ])
// function handleTabClick(tab) {
// activeTab.value = tab.name
// }
// const handleClick = (tab, event) => {
// console.log(tab.props.name);
// console.log(editableTabs.find(t => t.name === tab.props.name).path);
// router.push(editableTabs.find(t => t.name === tab.props.name).path);
// };
//初始化页面
function initPage(){
initRadioList();
......
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