You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
299 lines
8.5 KiB
Vue
299 lines
8.5 KiB
Vue
<template>
|
|
<div class="realTimeMonitor" v-loading="mainLoading">
|
|
<div class="monitor-container">
|
|
<div class="allSide">
|
|
<div class="typeList">
|
|
<el-radio-group v-model="typeRadio" size="mini" @input="getTypeRadio">
|
|
<el-radio-button :label="-1">全部</el-radio-button>
|
|
<el-radio-button
|
|
:label="1"
|
|
v-if="roleName === 'superadmin' || roleName === 'Matthew'"
|
|
>活动</el-radio-button
|
|
>
|
|
</el-radio-group>
|
|
</div>
|
|
<sideBar ref="sideTree" v-if="allTreeFlag"></sideBar>
|
|
<activeSiderBar ref="activesideTree" v-else></activeSiderBar>
|
|
</div>
|
|
|
|
<div class="picListBox">
|
|
<div class="previewBox" v-if="LineFlag">
|
|
<!-- 预览图页面 -->
|
|
<previewContain ref="previewRef"></previewContain>
|
|
</div>
|
|
<div class="previewBox" v-if="towerFlag">
|
|
<div class="swiperBox" v-loading="swiperLoading">
|
|
<div class="title">
|
|
<el-breadcrumb separator="/">
|
|
<el-breadcrumb-item> {{ towertitle }}</el-breadcrumb-item>
|
|
</el-breadcrumb>
|
|
</div>
|
|
<carouselChart
|
|
ref="carouselpic"
|
|
:terminalPhoto="terminalPhoto"
|
|
:photoNum="photoNum"
|
|
:protocolInfo="protocolInfo"
|
|
v-if="terminalPhoto.length !== 0"
|
|
></carouselChart>
|
|
</div>
|
|
<div class="parameterArea">
|
|
<parameterArea ref="areaRef"></parameterArea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<morePicPreveiw ref="morePicPreveiw_ref"></morePicPreveiw>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { getTerminalPhotoListJoggle } from "@/utils/api/index";
|
|
import sideBar from "./components/siderBar";
|
|
import activeSiderBar from "./components/activeSiderBar";
|
|
import previewContain from "./components/previewContain";
|
|
import carouselChart from "./components/carouselChart";
|
|
import parameterArea from "./components/parameterArea";
|
|
import morePicPreveiw from "./components/morePicPreveiw";
|
|
|
|
import { mapGetters, mapState } from "vuex";
|
|
import ActiveSiderBar from "./components/activeSiderBar.vue";
|
|
export default {
|
|
name: "realTimeMonitor",
|
|
data() {
|
|
return {
|
|
LineFlag: false, //如果是线路显示
|
|
towerFlag: false, //如果杆塔显示
|
|
mainLoading: false, //全局loading
|
|
page: 1, // 当前页数
|
|
towertitle: "", //杆塔名称
|
|
lineLoading: false, //杆塔loading
|
|
swiperLoading: false,
|
|
terminalPhoto: [], //获取装置当前图片数据
|
|
photoNum: 5,
|
|
dateValue: "", //当前时间
|
|
protocolInfo: "",
|
|
nopicPath: require("@/assets/img/nopic.jpg"),
|
|
typeRadio: -1, //类型选择
|
|
allTreeFlag: true,
|
|
roleName: "",
|
|
};
|
|
},
|
|
watch: {
|
|
treeSelectData: {
|
|
handler(newVal, oldVal) {},
|
|
deep: true,
|
|
immediate: true,
|
|
},
|
|
},
|
|
components: {
|
|
sideBar,
|
|
activeSiderBar,
|
|
previewContain,
|
|
carouselChart,
|
|
parameterArea,
|
|
morePicPreveiw,
|
|
},
|
|
computed: {
|
|
treeSelectData() {
|
|
return this.$store.state.currentData;
|
|
},
|
|
},
|
|
created() {
|
|
this.roleName = localStorage.getItem("userName");
|
|
//this.treeSelectData = currentData;
|
|
//获取当前时间
|
|
},
|
|
mounted() {
|
|
this.mainLoading = true;
|
|
setTimeout(() => {
|
|
this.mainLoading = false;
|
|
}, 1000);
|
|
},
|
|
methods: {
|
|
getTypeRadio() {
|
|
console.log(this.typeRadio);
|
|
if (this.typeRadio == -1) {
|
|
this.allTreeFlag = true;
|
|
} else {
|
|
this.allTreeFlag = false;
|
|
}
|
|
},
|
|
getCurrentData(data) {
|
|
console.log("执行父组件", this.treeSelectData);
|
|
if (this.treeSelectData.dyValue) {
|
|
console.log("电压");
|
|
this.LineFlag = true;
|
|
this.towerFlag = false;
|
|
this.lineLoading = true;
|
|
this.type = 1;
|
|
this.$nextTick(() => {
|
|
this.$refs.previewRef.getPicList(
|
|
this.treeSelectData.id,
|
|
this.type,
|
|
this.page
|
|
);
|
|
});
|
|
} else if (this.treeSelectData.dyLevelId) {
|
|
console.log("线路");
|
|
this.LineFlag = true;
|
|
this.towerFlag = false;
|
|
this.type = 2;
|
|
console.log(this.treeSelectData);
|
|
this.$nextTick(() => {
|
|
this.$refs.previewRef.getPicList(
|
|
this.treeSelectData.id,
|
|
this.type,
|
|
this.page
|
|
);
|
|
});
|
|
} else {
|
|
console.log("杆塔");
|
|
this.LineFlag = false;
|
|
this.towerFlag = true;
|
|
this.terminalPhoto = [];
|
|
this.protocolInfo = this.treeSelectData.protocol;
|
|
console.log("asddddddddddddddddddddd", this.treeSelectData);
|
|
this.towertitle = this.treeSelectData.name;
|
|
this.$nextTick(() => {
|
|
this.$refs.areaRef.getChannelList();
|
|
this.$refs.areaRef.takepicFun();
|
|
});
|
|
}
|
|
},
|
|
getPhotoList(channelId, date, termId) {
|
|
console.log(channelId, date, termId);
|
|
this.swiperLoading = true;
|
|
console.log("zhanshi asdadadadadadsddadadadadad", this.terminalPhoto);
|
|
this.terminalPhoto = [];
|
|
getTerminalPhotoListJoggle({
|
|
channelid: channelId,
|
|
time: date,
|
|
terminalid: termId,
|
|
})
|
|
.then((res) => {
|
|
console.log(res);
|
|
if (res.data.list.length == 0) {
|
|
this.terminalPhoto = [
|
|
{
|
|
path: this.nopicPath,
|
|
termId: termId,
|
|
mediatype: 0,
|
|
},
|
|
];
|
|
} else {
|
|
this.terminalPhoto = res.data.list;
|
|
}
|
|
// let newDataList = [];
|
|
// let current = 0;
|
|
// if (this.terminalPhoto && this.terminalPhoto.length > 0) {
|
|
// for (let i = 0; i <= this.terminalPhoto.length - 1; i++) {
|
|
// if (i % this.photoNum !== 0 || i === 0) {
|
|
// if (!newDataList[current]) {
|
|
// newDataList.push([this.terminalPhoto[i]]);
|
|
// } else {
|
|
// newDataList[current].push(this.terminalPhoto[i]);
|
|
// }
|
|
// } else {
|
|
// current++;
|
|
// newDataList.push([this.terminalPhoto[i]]);
|
|
// }
|
|
// }
|
|
// }
|
|
// this.terminalPhoto = [...newDataList];
|
|
// this.$nextTick(() => {
|
|
// this.$refs.carouselpic.changeBigPic(this.terminalPhoto[0][0], 0);
|
|
// });
|
|
this.$nextTick(() => {
|
|
this.$refs.carouselpic.changeBigPic(this.terminalPhoto[0], 0);
|
|
});
|
|
|
|
this.swiperLoading = false;
|
|
})
|
|
.catch((err) => {
|
|
console.log(err); //代码错误、请求失败捕获
|
|
});
|
|
},
|
|
//点击图片列表执行函数
|
|
jumpTowerPic(data) {
|
|
console.log("我是从子组件过来的数据");
|
|
console.log(data);
|
|
this.$refs.morePicPreveiw_ref.display(data);
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="less">
|
|
.realTimeMonitor {
|
|
width: calc(100% - 0px);
|
|
height: calc(100% - 12px);
|
|
padding: 12px 0px 0px 0px;
|
|
background: #ffffff;
|
|
.monitor-container {
|
|
display: flex;
|
|
height: 100%;
|
|
box-sizing: border-box;
|
|
background: #ffffff;
|
|
border: 1px solid #dddddd;
|
|
border-radius: 4px;
|
|
.allSide {
|
|
height: 100%;
|
|
.typeList {
|
|
width: 94%;
|
|
margin: 0 auto;
|
|
margin-top: 8px;
|
|
}
|
|
}
|
|
.picListBox {
|
|
display: flex;
|
|
width: 100%;
|
|
height: 100%;
|
|
flex: 1;
|
|
overflow: hidden;
|
|
border-left: 1px solid #dddddd;
|
|
.previewBox {
|
|
display: flex;
|
|
width: 100%;
|
|
height: 100%;
|
|
flex: 1;
|
|
}
|
|
.swiperBox {
|
|
-webkit-box-flex: 1;
|
|
-ms-flex: 1;
|
|
flex: 1;
|
|
width: auto;
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: relative;
|
|
.title {
|
|
height: 32px;
|
|
padding-left: 12px;
|
|
line-height: 32px;
|
|
color: #fff;
|
|
font-size: 12px;
|
|
//background-color: #169e8cb0;
|
|
background: linear-gradient(180deg, #4cdbc8 10%, #128071 100%);
|
|
|
|
.el-breadcrumb {
|
|
line-height: 32px;
|
|
color: #fff !important;
|
|
font-size: 14px;
|
|
height: 32px;
|
|
.el-breadcrumb__inner,
|
|
.el-breadcrumb__separator {
|
|
color: #fff !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.parameterArea {
|
|
width: 220px;
|
|
padding: 0px 8px;
|
|
border-left: 1px solid #dddddd;
|
|
position: relative;
|
|
overflow-y: auto;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|