|
|
|
@ -64,16 +64,16 @@ |
|
|
|
|
<el-drawer v-model="drawerIshow"> |
|
|
|
|
<template #header><h4>策略导入</h4></template> |
|
|
|
|
<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> |
|
|
|
|
<el-radio v-for="(item,index) in celueList" :key="index" class="celueBox" v-model="radio" :label="item.strategyName" size="large" @change="selectCeLue(item)"> |
|
|
|
|
<span style="font-weight: bold; display: inline-block; margin-bottom: 20px;">{{ item.strategyName }}</span> |
|
|
|
|
<el-timeline> |
|
|
|
|
<el-timeline-item v-for="(items,index) in item.flow" :key="index" placement="top" |
|
|
|
|
:timestamp="items.timestamp" |
|
|
|
|
<el-timeline-item v-for="(items,index) in item.scenesList" :key="index" placement="top" |
|
|
|
|
:timestamp="items.title" |
|
|
|
|
:hollow="items.hollow" |
|
|
|
|
:icon="items.icon" |
|
|
|
|
:type="items.type" |
|
|
|
|
> |
|
|
|
|
{{items.step}} |
|
|
|
|
{{items.sceneName}},{{items.sceneRemark}} |
|
|
|
|
</el-timeline-item> |
|
|
|
|
</el-timeline> |
|
|
|
|
|
|
|
|
@ -347,13 +347,15 @@ const celueList = ref([ |
|
|
|
|
]) |
|
|
|
|
function getStrategyListFun(){ |
|
|
|
|
getStrategyList().then((res)=>{ |
|
|
|
|
// celueList.value = res.data |
|
|
|
|
console.log('```````',res) |
|
|
|
|
celueList.value = res.data |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
//选择策略 |
|
|
|
|
const SenceControlArr = ref([]) |
|
|
|
|
// const SenceControlArr = ref([]) |
|
|
|
|
let celueItem; |
|
|
|
|
function selectCeLue(item){ |
|
|
|
|
console.log(item) |
|
|
|
|
celueItem = item |
|
|
|
|
// //拼数组对象 |
|
|
|
|
// //1、 |
|
|
|
@ -388,28 +390,27 @@ function selectCeLue(item){ |
|
|
|
|
//执行另一个策略将所有策略的icon和type清空 |
|
|
|
|
function clearLastCelue(){ |
|
|
|
|
celueList.value.forEach((celue) => { |
|
|
|
|
celue.flow.forEach((flow) => { |
|
|
|
|
flow.icon = '' |
|
|
|
|
flow.type = '' |
|
|
|
|
celue.scenesList.forEach((scenesList) => { |
|
|
|
|
scenesList.icon = '' |
|
|
|
|
scenesList.type = '' |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
celueItem.flow.forEach((flow) => { |
|
|
|
|
flow.icon = flow.icon || '' |
|
|
|
|
flow.type = flow.type || '' |
|
|
|
|
celueItem.scenesList.forEach((scenesList) => { |
|
|
|
|
scenesList.icon = scenesList.icon || '' |
|
|
|
|
scenesList.type = scenesList.type || '' |
|
|
|
|
}) |
|
|
|
|
console.log('qqqqqq',celueItem) |
|
|
|
|
} |
|
|
|
|
// const getIcon = (item) => { return item.icon || '' } |
|
|
|
|
// const getType = (item) => { return item.type || '' } |
|
|
|
|
|
|
|
|
|
//执行 |
|
|
|
|
function confirmClick() { |
|
|
|
|
if(SenceControlArr.value.length != 0){ |
|
|
|
|
if(celueItem == undefined){ |
|
|
|
|
ElMessage.warning('请先选择策略') |
|
|
|
|
}else{ |
|
|
|
|
ElMessageBox.confirm(`确定执行 ${radio.value} ?`).then(() => { |
|
|
|
|
// drawerIshow.value = false; |
|
|
|
|
console.log('执行的策略:',celueItem.flow) |
|
|
|
|
// console.log('传入的参数',celueItem.commandList) |
|
|
|
|
// console.log('执行的策略:',celueItem.scenesList) |
|
|
|
|
|
|
|
|
|
const loading = ElLoading.service({ |
|
|
|
|
lock: true, |
|
|
|
@ -418,38 +419,38 @@ function confirmClick() { |
|
|
|
|
}) |
|
|
|
|
setTimeout(() => { |
|
|
|
|
loading.close() |
|
|
|
|
}, celueItem.flow.length * 1000) |
|
|
|
|
}, celueItem.scenesList.length * 1000) |
|
|
|
|
|
|
|
|
|
getSenceControl(SenceControlArr.value).then((res)=>{ |
|
|
|
|
getSenceControl(celueItem.commandList).then((res)=>{ |
|
|
|
|
if(res.code == 200){ |
|
|
|
|
clearLastCelue() |
|
|
|
|
//执行过程 |
|
|
|
|
function setFlowItem(i) { |
|
|
|
|
if (i >= celueItem.flow.length) { |
|
|
|
|
return; // 递归终止条件 |
|
|
|
|
if (i >= celueItem.scenesList.length) { |
|
|
|
|
return; //递归终止条件 |
|
|
|
|
} |
|
|
|
|
celueItem.flow[i].type = 'success'; |
|
|
|
|
celueItem.flow[i].icon = 'Check'; |
|
|
|
|
celueItem.scenesList[i].type = 'success'; |
|
|
|
|
celueItem.scenesList[i].icon = 'Check'; |
|
|
|
|
setTimeout(function() { |
|
|
|
|
setFlowItem(i + 1); // 递归调用 |
|
|
|
|
}, 1000); // 延迟1秒执行 |
|
|
|
|
setFlowItem(i + 1); //递归调用 |
|
|
|
|
}, 1000); |
|
|
|
|
} |
|
|
|
|
setFlowItem(0); // 调用递归函数,从数组第一个元素开始赋值 |
|
|
|
|
setFlowItem(0); //调用递归函数,从数组第一个元素开始赋值 |
|
|
|
|
|
|
|
|
|
setTimeout(()=>{ |
|
|
|
|
ElMessage.success('导入成功') |
|
|
|
|
},celueItem.flow.length * 1000) |
|
|
|
|
},celueItem.scenesList.length * 1000) |
|
|
|
|
getControlLogListFun() |
|
|
|
|
}else{ |
|
|
|
|
for(let i = 0;i < celueItem.flow.length;i++) { |
|
|
|
|
for(let i = 0;i < celueItem.scenesList.length;i++) { |
|
|
|
|
setTimeout(() => { |
|
|
|
|
celueItem.flow[i].type = 'warning' |
|
|
|
|
celueItem.flow[i].icon = 'Close' |
|
|
|
|
},celueItem.flow.length * 1000) |
|
|
|
|
celueItem.scenesList[i].type = 'warning' |
|
|
|
|
celueItem.scenesList[i].icon = 'Close' |
|
|
|
|
},celueItem.scenesList.length * 1000) |
|
|
|
|
} |
|
|
|
|
setTimeout(()=>{ |
|
|
|
|
ElMessage.warning('导入失败') |
|
|
|
|
},celueItem.flow.length * 1000) |
|
|
|
|
},celueItem.scenesList.length * 1000) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|