|
|
|
|
@ -66,16 +66,30 @@ |
|
|
|
|
<template #default> |
|
|
|
|
<el-radio v-for="(item,index) in celueList" :key="index" class="celueBox" v-model="radio" :label="item.sceneName" size="large" @change="selectCeLue(item)"> |
|
|
|
|
<span style="font-weight: bold; display: inline-block; margin-bottom: 20px;">{{ item.sceneName }}</span> |
|
|
|
|
<div class="celueItem" v-for="items in item.data" :key="items.device_id"> |
|
|
|
|
<span>{{ items.device_name }}</span> |
|
|
|
|
<div class="itemsValue"> |
|
|
|
|
<span class="txtInput" v-for="itemsValue in items.value" :key="itemsValue.sceneKey"> |
|
|
|
|
<span class="txt">{{ itemsValue.sceneContext }}:</span> |
|
|
|
|
<input type="text" :value="`${itemsValue.sceneValue}℃`" disabled/> |
|
|
|
|
</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<el-timeline> |
|
|
|
|
<el-timeline-item v-for="(items,index) in item.flow" :key="index" :timestamp="items.timestamp" :hollow="items.hollow" :type="items.type" placement="top"> |
|
|
|
|
{{items.step}} |
|
|
|
|
</el-timeline-item> |
|
|
|
|
</el-timeline> |
|
|
|
|
|
|
|
|
|
<!-- <div class="celueItem" v-for="items in item.data" :key="items.device_id">--> |
|
|
|
|
<!-- <span>{{ items.device_name }}</span>--> |
|
|
|
|
<!-- <div class="itemsValue">--> |
|
|
|
|
<!-- <span class="txtInput" v-for="itemsValue in items.value" :key="itemsValue.sceneKey">--> |
|
|
|
|
<!-- <span class="txt">{{ itemsValue.sceneContext }}:</span>--> |
|
|
|
|
<!-- <input type="text" :value="`${itemsValue.sceneValue}℃`" disabled/>--> |
|
|
|
|
<!-- </span>--> |
|
|
|
|
<!-- </div>--> |
|
|
|
|
<!-- </div>--> |
|
|
|
|
</el-radio> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <div style="display: flex; flex-direction: column;">--> |
|
|
|
|
<!-- <el-checkbox v-for="item in celueList" :key="item.sceneId" v-model="item.isCheck" :label="item.sceneName + '(' + item.sceneRemark + ')'"/>--> |
|
|
|
|
<!-- </div>--> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</template> |
|
|
|
|
<template #footer> |
|
|
|
|
<div style="flex: auto"> |
|
|
|
|
@ -188,43 +202,152 @@ function indexMethod1(index){ |
|
|
|
|
/** 策略导入处理*/ |
|
|
|
|
const drawerIshow = ref(false) |
|
|
|
|
const radio = ref() |
|
|
|
|
const celueList = ref([]) |
|
|
|
|
const celueList = ref([ |
|
|
|
|
{ |
|
|
|
|
sceneName:'电磁锅炉供暖模式', |
|
|
|
|
flow:[ |
|
|
|
|
{ |
|
|
|
|
timestamp:'第一步', |
|
|
|
|
step:'开启断路器,锅炉循环泵供电。', |
|
|
|
|
hollow: false, |
|
|
|
|
type: '', |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第二步', |
|
|
|
|
step:'开启断路器,电磁锅炉供电,在控制界面可启停和调节锅炉出水温度。锅炉启动时会自动开启锅炉循环泵。', |
|
|
|
|
hollow: true, |
|
|
|
|
type: '', |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第三步', |
|
|
|
|
step:'当中间水箱温度达到实验要求时,开启断路器,启动热网循环泵。', |
|
|
|
|
hollow: false, |
|
|
|
|
type: '', |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
sceneName:'空气源热泵供暖模式', |
|
|
|
|
flow:[ |
|
|
|
|
{ |
|
|
|
|
timestamp:'第一步', |
|
|
|
|
step:'开启空气源热泵循环泵断路器,空气源热泵循环泵供电。', |
|
|
|
|
hollow: false, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第二步', |
|
|
|
|
step:'开启空气源热泵断路器,空气源热泵供电,在控制界面可启停和调节空气源热泵出水温度。锅炉启动时会自动开启空气源热泵循环泵。', |
|
|
|
|
hollow: true, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第三步', |
|
|
|
|
step:'当中间水箱温度达到实验要求时,开启热网循环泵断路器和风机盘管断路器断路器,启动热网循环泵和风机盘管,通过风机盘管控制界面可进行设置控制。', |
|
|
|
|
hollow: false, |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
sceneName:'电磁锅炉水蓄热模式', |
|
|
|
|
flow:[ |
|
|
|
|
{ |
|
|
|
|
timestamp:'第一步', |
|
|
|
|
step:'开启锅炉蓄热循环泵断路器,锅炉蓄热循环泵供电。', |
|
|
|
|
hollow: false, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第二步', |
|
|
|
|
step:'开启电磁锅炉电箱中的电磁锅炉断路器,电磁锅炉供电。', |
|
|
|
|
hollow: true, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第三步', |
|
|
|
|
step:'在控制界面进行锅炉启动和出水温度设置,锅炉启动会自动启动相应循环水泵。', |
|
|
|
|
hollow: true, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第四步', |
|
|
|
|
step:'蓄热完成后关闭电磁锅炉及水泵。', |
|
|
|
|
hollow: false, |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
sceneName:'空气源热泵水蓄热模式', |
|
|
|
|
flow:[ |
|
|
|
|
{ |
|
|
|
|
timestamp:'第一步', |
|
|
|
|
step:'开启空气源热泵蓄热循环泵断路器,蓄热循环水泵供电。', |
|
|
|
|
hollow: false, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第二步', |
|
|
|
|
step:'开启空气源热泵电箱中的空气源热泵断路器,空气源热泵供电。', |
|
|
|
|
hollow: true, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第三步', |
|
|
|
|
step:'在控制界面进行空气源热泵启动和出水温度设置,空气源启动会自动启动相应循环水泵。', |
|
|
|
|
hollow: true, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
timestamp:'第四步', |
|
|
|
|
step:'蓄热完成后关闭空气源热泵及水泵。', |
|
|
|
|
hollow: false, |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
sceneName:'蓄热水箱暖气片供暖模式', |
|
|
|
|
flow:[ |
|
|
|
|
{ |
|
|
|
|
timestamp:'第一步', |
|
|
|
|
step:'开启热网循环泵断路器,热网循环泵开启。', |
|
|
|
|
hollow: false, |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
]) |
|
|
|
|
function getStrategyListFun(){ |
|
|
|
|
getStrategyList().then((res)=>{ |
|
|
|
|
celueList.value = res.data |
|
|
|
|
// celueList.value = res.data |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
//选择策略 |
|
|
|
|
const SenceControlArr = ref([]) |
|
|
|
|
function selectCeLue(item){ |
|
|
|
|
//拼数组对象 |
|
|
|
|
//1、 |
|
|
|
|
let dataArr = []; |
|
|
|
|
for(let i = 0;i < item.data.length;i++){ |
|
|
|
|
//2、 |
|
|
|
|
let dataObject = {}; |
|
|
|
|
// deviceId = item.data[i].device_id; |
|
|
|
|
dataObject.deviceId = item.data[i].device_id; |
|
|
|
|
|
|
|
|
|
//3、 |
|
|
|
|
let tempArr = []; |
|
|
|
|
for(let j = 0;j < item.data[i].value.length;j++){ |
|
|
|
|
//4、 |
|
|
|
|
let tempObject = {}; |
|
|
|
|
tempObject.controlKey = item.data[i].value[j].sceneKey |
|
|
|
|
tempObject.controlValue = item.data[i].value[j].sceneValue |
|
|
|
|
|
|
|
|
|
//5、 |
|
|
|
|
tempArr.push(tempObject) |
|
|
|
|
dataObject.data = tempArr |
|
|
|
|
} |
|
|
|
|
//6、 |
|
|
|
|
dataArr.push(dataObject); |
|
|
|
|
} |
|
|
|
|
console.log(item) |
|
|
|
|
// for(let i = 0;i < item.flow.length;i++){ |
|
|
|
|
// item.flow[i].type = 'primary' |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
//最终要传参的格式 |
|
|
|
|
// console.log(JSON.stringify(dataArr, null, 4)); |
|
|
|
|
SenceControlArr.value = JSON.stringify(dataArr, null, 4) |
|
|
|
|
// //拼数组对象 |
|
|
|
|
// //1、 |
|
|
|
|
// let dataArr = []; |
|
|
|
|
// for(let i = 0;i < item.data.length;i++){ |
|
|
|
|
// //2、 |
|
|
|
|
// let dataObject = {}; |
|
|
|
|
// // deviceId = item.data[i].device_id; |
|
|
|
|
// dataObject.deviceId = item.data[i].device_id; |
|
|
|
|
// |
|
|
|
|
// //3、 |
|
|
|
|
// let tempArr = []; |
|
|
|
|
// for(let j = 0;j < item.data[i].value.length;j++){ |
|
|
|
|
// //4、 |
|
|
|
|
// let tempObject = {}; |
|
|
|
|
// tempObject.controlKey = item.data[i].value[j].sceneKey |
|
|
|
|
// tempObject.controlValue = item.data[i].value[j].sceneValue |
|
|
|
|
// |
|
|
|
|
// //5、 |
|
|
|
|
// tempArr.push(tempObject) |
|
|
|
|
// dataObject.data = tempArr |
|
|
|
|
// } |
|
|
|
|
// //6、 |
|
|
|
|
// dataArr.push(dataObject); |
|
|
|
|
// } |
|
|
|
|
// |
|
|
|
|
// //最终要传参的格式 |
|
|
|
|
// // console.log(JSON.stringify(dataArr, null, 4)); |
|
|
|
|
// SenceControlArr.value = JSON.stringify(dataArr, null, 4) |
|
|
|
|
} |
|
|
|
|
//执行 |
|
|
|
|
function confirmClick() { |
|
|
|
|
@ -303,10 +426,11 @@ function getSetTemperatureFun(item){ |
|
|
|
|
flex-wrap: wrap; |
|
|
|
|
width: 100%; |
|
|
|
|
height: 50%; |
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
overflow-y: auto; |
|
|
|
|
.dev_control_item{ |
|
|
|
|
width: 24%; |
|
|
|
|
height: 47%; |
|
|
|
|
height: 49%; |
|
|
|
|
margin-right: 12px; |
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
background-color: #2F3D8A; |
|
|
|
|
@ -321,7 +445,7 @@ function getSetTemperatureFun(item){ |
|
|
|
|
background-color: #374590; |
|
|
|
|
padding: 0 10px; |
|
|
|
|
span{ |
|
|
|
|
font-size: 16px; |
|
|
|
|
font-size: 14px; |
|
|
|
|
font-weight: bold; |
|
|
|
|
line-height: 37px; |
|
|
|
|
} |
|
|
|
|
@ -455,6 +579,12 @@ function getSetTemperatureFun(item){ |
|
|
|
|
float: right; |
|
|
|
|
margin-top: 5px; |
|
|
|
|
} |
|
|
|
|
::v-deep .el-timeline-item__content{ |
|
|
|
|
white-space: normal; |
|
|
|
|
} |
|
|
|
|
::v-deep .el-timeline{ |
|
|
|
|
padding-left: 3px; |
|
|
|
|
} |
|
|
|
|
::v-deep .el-button{ |
|
|
|
|
border-radius: 2px; |
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
@ -504,5 +634,13 @@ function getSetTemperatureFun(item){ |
|
|
|
|
::v-deep .el-button.is-disabled{ |
|
|
|
|
background-color: #dddddd; |
|
|
|
|
} |
|
|
|
|
::v-deep .el-drawer{ |
|
|
|
|
width: 45% !important; |
|
|
|
|
} |
|
|
|
|
::v-deep .el-checkbox{ |
|
|
|
|
width: 100% !important; |
|
|
|
|
white-space: normal !important; |
|
|
|
|
//margin-bottom: 20px; |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
|