wszhyWx/src/components/setParamsControl.vue
2024-04-11 08:54:13 +08:00

463 lines
18 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="set-params collapse scroll">
<div class="set-top">
<img src="../assets/image/set-icon.png" alt="" />设定值参数
</div>
<div class="set-tips">
<!-- <div @click="toHome($store.state.equipmentIndex)">
日光温室特殊参数丽水项目</div> -->
</div>
<el-collapse v-model="$store.state.activeNames">
<template v-for="(item, index) in routerList">
<el-collapse-item :class="routerNow == item.router || item.router.indexOf(routerNow) != -1 ? 'active' : ''"
:name="index + 1" :key="index" v-if="!item.isRouter">
<template slot="title" class="collapse-title">
<span class="name">{{ item.name }}</span>
</template>
<!-- -->
<ul class="table-ul">
<li @click="toRouter(item1)" :class="routerNow == item1.router && routerIndex == index1 + 1
? 'active'
: ''
" class="table-li" v-for="(item1, index1) in item.list" :key="index1">
{{ item1.name }}
<div class="status" :class="item1.status == 0 ? 'outline' : 'online'" v-if="item1.status >= 0">
{{ item1.status == 0 ? "离线" : "在线" }}
</div>
</li>
</ul>
</el-collapse-item>
<div @click="toRouter(item)" :class="routerNow == item.router ? 'active' : ''" class="no-list" v-else>
{{ item.name }}
</div>
</template>
</el-collapse>
</div>
</template>
<script>
export default {
data() {
return {
routerList: [],
routerNow: "skylight",
routerIndex: 1,
purview: [], //权限数组
loading:null,
};
},
watch: {
$route(newName, oldName) {
this.gerRouter();
},
"$store.state.equipmentIndex"(newName, oldName) {
var store = this.$store.state;
var item = store.equipmentList[store.equipmentIndex - 1]
if(item.deviceName == 10 || item.deviceName == 30){
this.dataInit();
}
},
},
mounted() {
this.gerRouter();
this.dataInit();
},
methods: {
countData(data) {
if (data) {
return (data - 400) / 10
} else {
return 0
}
},
// 计算展示值 计算公式 x/10
countData10(data) {
if (data) {
return data / 10
} else {
return 0
}
},
dataInit() {
this.loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var store = this.$store.state;
var data = store.equipmentList[store.equipmentIndex - 1].deviceId;
this.api.getcontrol_cpermission(data).then((res) => {
this.routerList = [];
this.purview = res.data.data;
this.purview.forEach((el, index) => {
if (el.id == 1) {
this.routerList.push(
{
id: el.id, sort: el.sort,
name: el.nickName,
router: "targetTemperature",
list: [
{ name: "目标温度", list: [], router: "targetTemperature", isRouter: true, index: 1 },
{ name: "目标湿度", list: [], router: "targetHumidity", isRouter: true, index: 2 },
{ name: "目标CO2", list: [], router: "targetCo2", isRouter: true, index: 3 }
],
},
);
} else if (el.id == 3) {
this.routerList.push(
{
id: el.id, sort: el.sort,
name: el.nickName,
router: "alarmSettings",
list: [],
isRouter: true
},
);
} else if (el.id == 19) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [
{ name: '通风窗1', status: -1, router: 'sunroofControl', index: 1 },
{ name: '通风窗2', status: -1, router: 'sunroofControl', index: 2 },
{ name: '通风窗3', status: -1, router: 'sunroofControl', index: 3 },
{ name: '通风窗4', status: -1, router: 'sunroofControl', index: 4 },
], router: "sunroofControl",
});
} else if (el.id == 25) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [
{ name: '外遮阳1', status: -1, router: 'outsizeSunshade', index: 1 },
{ name: '外遮阳2', status: -1, router: 'outsizeSunshade', index: 2 },
], router: "outsizeSunshade",
});
} else if (el.id == 24) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [
{ name: '内遮阳1', status: -1, router: 'insizeSunshade', index: 1 },
{ name: '内遮阳2', status: -1, router: 'insizeSunshade', index: 2 },
], router: "insizeSunshade",
});
} else if (el.id == 27) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [
{ name: '内保温1', status: -1, router: 'internalInsulation', index: 1 },
{ name: '内保温2', status: -1, router: 'internalInsulation', index: 2 },
], router: "internalInsulation",
});
} else if (el.id == 26) {
this.routerList.push({
id: el.id, sort: el.sort, name: el.nickName, list: [
{ name: '风机', status: -1, router: 'wetFan', index: 1 },
{ name: '湿帘泵', status: -1, router: 'wetFan', index: 2 },
{ name: '湿帘外翻窗', status: -1, router: 'wetFan', index: 3 },
], router: "wetFan"
});
} else if (el.id == 21) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [
{ name: '环流风扇1', status: -1, router: 'circulationCan', index: 1 },
{ name: '环流风扇2', status: -1, router: 'circulationCan', index: 2 },
], router: "circulationCan",
});
} else if (el.id == 20) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [], router: "LED",
isRouter: true,
});
} else if (el.id == 23) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName, list: [
{ name: '高压微雾1', status: -1, router: 'coercionMist', index: 1 },
{ name: '高压微雾2', status: -1, router: 'coercionMist', index: 2 },
], router: "coercionMist"
});
} else if (el.id == 11 || el.id == 12 || el.id == 13 || el.id == 14 || el.id == 15 || el.id == 16 || el.id == 17 || el.id == 18) {
if (!this.routerList.some(item => item.router === "electromagneticControl")) {
this.routerList.push({
id: el.id, sort: el.sort,
name: '电磁阀',
list: [],
router: "electromagneticControl"
});
}
let targetObject = this.routerList.find(item => item.router === 'electromagneticControl');
if (el.id == 11) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 1 });
} else if (el.id == 12) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 2 });
} else if (el.id == 13) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 3 });
} else if (el.id == 14) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 4 });
} else if (el.id == 15) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 5 });
} else if (el.id == 16) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 6 });
} else if (el.id == 17) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 7 });
} else if (el.id == 18) {
targetObject.list.push({ name: el.nickName, status: -1, router: 'electromagneticControl', index: 8 });
}
} else if (el.id == 5) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName,
list: [],
router: "sensorSet-con",
isRouter: true,
});
} else if (el.id == 6) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName,
list: [],
router: "synthesis-con",
isRouter: true,
});
} else if (el.id == 7) {
this.routerList.push({
id: el.id, sort: el.sort,
name: el.nickName,
list: [],
router: "upload-con",
isRouter: true,
});
} else if (el.id == 2) {
this.routerList.push({ id: el.id, sort: el.sort, name: el.nickName, list: [], router: "forceOutput", isRouter: true });
} else if (el.id == 4) {
this.routerList.push({ id: el.id, sort: el.sort, name: el.nickName, list: [], router: "intrinsicParameter", isRouter: true });
} else if (el.id == 22) {
this.routerList.push({ name: el.nickName, list: [], router: "parameterSet", isRouter: true });
} else if (el.id == 8) {
this.routerList.push(
{ id: el.id, sort: el.sort, name: "加热水泵", list: [], router: "waterPump", isRouter: true },
{
id: el.id, sort: el.sort,
name: "地热风机",
list: [],
router: "geothermalFan",
isRouter: true,
},
{ id: el.id, sort: el.sort, name: "上风口", list: [], router: "uptake", isRouter: true },
{ id: el.id, sort: el.sort, name: "下风口", list: [], router: "downtake", isRouter: true },
{ id: el.id, sort: el.sort, name: "卷被", list: [], router: "rollByRoll", isRouter: true },
{ id: el.id, sort: el.sort, name: "除雪", list: [], router: "snowRemoval", isRouter: true }
);
if (
this.routerNow != "/waterPump" &&
this.routerNow != "/geothermalFan" &&
this.routerNow != "/uptake" &&
this.routerNow != "/downtake" &&
this.routerNow != "/rollByRoll" &&
this.routerNow != "/snowRemoval"
) {
this.loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
//调取数据
var store = this.$store.state;
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then((res) => {
this.loading.close()
store.ControlData = res.data.data
//加热水泵数据处理waterPump
store.ControlData['21521'] = this.countData(store.ControlData['21521'])
store.ControlData['21522'] = this.countData10(store.ControlData['21522'])
store.ControlData['21523'] = this.countData(store.ControlData['21523'])
store.ControlData['21524'] = this.countData(store.ControlData['21524'])
//下风口downtake
store.ControlData["21544"] = this.countData(store.ControlData["21544"]);
//地热风机geothermalFan
store.ControlData['21527'] = this.countData(store.ControlData['21527'])
store.ControlData['21528'] = this.countData10(store.ControlData['21528'])
//卷被rollByRoll
store.ControlData['21552'] = this.countData(store.ControlData['21552'])
store.ControlData['21550'] = this.countData10(store.ControlData['21550'])
//除雪snowRemoval
store.ControlData['21544'] = this.countData(store.ControlData['21544'])
//上风口
store.ControlData['21532'] = this.countData(store.ControlData['21532'])
store.ControlData['21533'] = this.countData10(store.ControlData['21533'])
store.ControlData['21562'] = this.countData10(store.ControlData['21562'])
});
}
} else if (el.id == 9) {
this.routerList.push(
{
id: el.id, sort: el.sort,
name: "日光温室特殊参数(山地型温室)",
router: "skylight",
list: [
{ name: "顶卷膜1", status: -1, router: "skylight", index: 1 },
{ name: "顶卷膜2", status: -1, router: "skylight", index: 2 },
{ name: "顶卷膜3", status: -1, router: "skylight", index: 3 },
{ name: "顶卷膜4", status: -1, router: "skylight", index: 4 },
],
},
{
id: el.id, sort: el.sort,
name: "风机(山地型温室)",
router: "fan",
list: [
{ name: "风机1", status: -1, router: "fan", index: 1 },
{ name: "风机2", status: -1, router: "fan", index: 2 },
{ name: "风机3", status: -1, router: "fan", index: 3 },
{ name: "风机4", status: -1, router: "fan", index: 4 },
{ name: "风机5", status: -1, router: "fan", index: 5 },
],
}
);
}
})
// this.routerList.sort((a, b) => a.sort - b.sort);
this.routerList.push({ name: '系统参数配置', list: [], router: 'systemSet-con', isRouter: true, },);
var router = this.$route.query
if (router.token && router.userid) {
return
}
if(this.$route.name==this.routerList[0].router){
return
}
this.$router.push({ path: `/${this.routerList[0].router}` });
});
},
//去首页
toHome(index) {
this.$router.push({ path: `/status?eqbyIndex=` + index });
},
gerRouter() {
this.routerNow = this.$route.name;
this.routerIndex = this.$route.query.id ? this.$route.query.id : 1;
},
toRouter(item) {
if (item.router) {
if (item.http) {
window.location.href = item.http;
}
// else if (
// item.router == "skylight" &&
// this.$route.query.id != item.index
// ) {
// this.$router.push({ path: `/skylight?id=${item.index}` });
// } else if (item.router == "fan" && this.$route.query.id != item.index) {
// this.$router.push({ path: `/fan?id=${item.index}` });
// } else if (item.router == 'electromagneticControl' && this.$route.query.id != item.index) {
// this.$router.push({ path: `/electromagneticControl?id=${item.index}` })
// } else if (item.router == 'sunroofControl' && this.$route.query.id != item.index) {
// this.$router.push({ path: `/sunroofControl?id=${item.index}` })
// } else if (item.router == 'outsizeSunshade' && this.$route.query.id != item.index) {
// this.$router.push({ path: `/outsizeSunshade?id=${item.index}` })
// } else if (item.router == 'outsizeSunshade' && this.$route.query.id != item.index) {
// this.$router.push({ path: `/outsizeSunshade?id=${item.index}` })
// } else if (item.router == 'insizeSunshade' && this.$route.query.id != item.index) {
// this.$router.push({ path: `/insizeSunshade?id=${item.index}` })
// }
else {
if (item.index) {
if (item.router == this.routerNow && item.index == this.$route.query.id) {
return
}
this.$router.push({ path: `/${item.router}?id=${item.index}` })
return
}
if (item.router == this.routerNow) {
return
}
this.$router.push({ name: item.router });
}
}
},
},
};
</script>
<style lang="scss" scoped>
.set-params {
width: 280px;
height: 100%;
background: rgba(0, 92, 178, 0.15);
border: 2px solid rgba(0, 186, 255, 0.2);
.set-top {
font-size: 20px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #ffffff;
width: 100%;
padding-left: 20px;
display: flex;
align-items: center;
padding-top: 20px;
img {
width: 40px;
height: 40px;
margin-right: 10px;
}
}
.el-collapse-item {
&.active {}
}
.no-list {
color: #a8b6c8;
&.active {
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.3);
color: #fff;
}
}
.set-tips {
width: 100%;
border-bottom: 1px solid rgba(168, 182, 200, 0.2);
margin-top: 17px;
padding-bottom: 17px;
padding-left: 10px;
cursor: pointer;
>div {
width: 260px;
height: 40px;
// background: rgba(255, 255, 255, 0.1);
// border: 1px solid rgba(255, 255, 255, 0.3);
display: flex;
align-items: center;
padding-left: 10px;
}
}
}
</style>