<!-- * @Author: your name * @Date: 2022-01-26 20:07:52 * @LastEditTime: 2022-03-17 09:05:30 * @LastEditors: Please set LastEditors * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: /test/hello-world/src/views/components/deviceA.vue --> <template> <div class="devicea-wrapper"> <div class="title"> {{ deviceData.nickName }} </div> <div class="close" @click="close"> <!-- <img src="@/assets/mapImages/closeBtn.png" alt="" /> --> <i class="el-icon-close" style="font-size:20px;color:#5dfefe;"></i> </div> <p style="background-image: linear-gradient(to right, #5dfefe, #071738); width:100%;height:1px;"></p> <div> <div class="top flex top-top"> <div class="group" style="width:20%"> <div class="left">联系人:</div> <div class="right zzz">{{ deviceData.linkman }}</div> </div> <div class="group" style="width:30%"> <div class="left">联系电话:</div> <div v-unValue class="right zzz"> {{ deviceData.phone }} </div> </div> <div class="group" style="width:30%"> <div class="left">联系地址:</div> <div :title="deviceData.address" class="right last zzz"> {{ deviceData.address || "-" }} </div> </div> </div> <!-- <div class="top flex top-bottom"> <div class="group"> <div class="left">联系地址:</div> <div :title="deviceData.address" class="right last zzz"> {{ deviceData.address || "-" }} </div> </div> </div> --> <template v-if="deviceData.detectorCountList"> <div class="foot"> <div class="thead flex"> <div class="first">设备类型</div> <div>设备数量</div> <div>在线设备</div> <div>离线设备</div> <!-- <div>历史报警</div> <div>已处理报警</div> --> <div class="last">报警中</div> </div> <div v-for="data in deviceData.detectorCountList" :key="data.userId" class="tbody flex" > <div v-unValue class="first zzz">{{ data.detectorType }}</div> <div class="">{{ data.detectorCount }}</div> <div v-unValue class=""> {{ data.onLineNum }} </div> <div v-unValue class=""> {{ data.offLineNum }} </div> <!-- <div v-unValue class=""> {{ data.historyAlarmNum }} </div> <div v-unValue class=""> {{ data.cancelAlarmNum }} </div> --> <div v-unValue class="last zzz"> {{ data.processingAlarmNum }} </div> </div> </div> </template> </div> <div style="width:100%;display: flex;"> <div class="btn"> <div>感知设备</div> </div> <p style="width:85%;height:10px;background-color: #022346;margin-top: 22px;margin-left: -10px;"></p> <div @click="btnClick"> <img @click="flag = !flag" src="../../assets/second/box-down.png" :class="{ 'arrowTransform': !flag, 'arrowTransformReturn': flag}" alt="" style="width:30px;height:30px;margin-top: 12px;cursor: pointer;"> </div> </div> <UserCenter :title="centerTitle" :show="userCenterShow" ref="userCenter" :detcetorList="detcetorList" :userId="centerUserId" :total="centerTotal" :pageSize="5" v-show="!isShow" /> </div> </template> <script> import { getUser, } from "@/api/bigWindowOld/getDevice"; import { companyType, deviceType } from "@/utils/mapClassForBigOld/config.js"; import { listDetectorInfo } from "@/api/detector/detectorInfo"; import { detectorUserList } from "@/api/detector/detectorUser"; import UserCenter from "@/components/bigWindowOld/UserCenter.vue"; export default { components: { UserCenter, }, data() { return { flag: true, isShow: true , companyType, deviceType, centerTitle: "", detcetorList: [], centerUserId: null, centerTotal: null, userCenterShow: false, }; }, computed: { prodTest() { return this.vueRoot.$store.state.user.systemSetting.prod_test; }, company() { return this.vueRoot.$store.state.bigWindowCompany.company; }, }, mounted() { // 如果不是测试,而是真数据,就要用帧数据的东西 if (this.prodTest != "test") { this.companyType = {}; this.company.forEach((item) => { this.companyType[item.conpanyId] = item.companyName; }); } this.myHttp(); // console.log(this.deviceData); }, methods: { //用户的设备center getDetectorInfoList(httpFunc, queryParams, title) { console.log(queryParams); return httpFunc(queryParams).then((res) => { // console.log("queryParamssssssssssss", res); if (res.code == 200) { this.detcetorList = res.rows; this.centerUserId = queryParams.userId; // 总数据 this.centerTotal = res.total; // this.$refs.userCenter.fade = "fade"; this.otherCenterShow = false; this.userCenterShow = true; this.centerTitle = title; // 传递回去 return res.code; } }); }, close() { this.mapClass.infowindowClose(); }, btnClick() { this.isShow = !this.isShow; // this.vueRoot.centerDataFunc(this.deviceData.pressureFlows); this.getDetectorInfoList( listDetectorInfo, { userId: this.deviceData.userId,pageNum: 1, pageSize: 5, }, this.deviceData.nickName ); }, myHttp() { detectorUserList({ userId: this.deviceData.userId }).then((res) => { if (res.code == 200) { const data = res.data.filter( (item) => item.userId == this.deviceData.userId )[0].detectorCountList; this.deviceData.detectorCountList = data; } }); }, }, }; </script> <style lang="scss" scoped> .arrowTransform { transition: 0s; transform-origin: center; transform: rotateZ(180deg); } .arrowTransformReturn { transition: 0s; transform-origin: center; transform: rotateZ(0deg); } .devicea-wrapper { box-shadow: 0px 0px 10px #54e0ef inset; background-color: #071738; padding: 10px; position: relative; width: 740px; .title { // padding-top: 10px; // padding-left: 10px; font-size: 14px; line-height: 14px; color: #ffffff; } .close { position: absolute; right: 10px; top: 5px; cursor: pointer; } .top { margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; &.top-top { // div{ // width: 33%; // } } .group { height: 30px; display: flex; justify-content: space-between; box-sizing: border-box; div { flex: 1; box-sizing: border-box; text-align: left; font-size: 14px; color: #ffffff; line-height: 30px; padding: 0 5px; &.last { border-right: none; } } .left { text-align: left; } } &.top-bottom { .left { flex: none; width: 192px !important; } .right { flex: 1; } } } // .middle { // width: 100%; // padding: 5px; // border: 1px solid #ffffff; // box-sizing: border-box; // font-size: 14px; // color: #ffffff; // text-indent: 2em; // margin-bottom: 10px; // } .foot { font-size: 14px; color: #ffffff; background: url('../../assets/second/box-bg.png'); background-size: 100% 100%; background-repeat: no-repeat; padding: 1px; .thead, .tbody { div { flex: 1; text-align: left; box-sizing: border-box; text-align: center; border: 1px solid #1b365d; } // .first { // flex: 2; // } // .last { // border-right: none; // } } .tbody { border-top: none; } // .thead { // div { // background-color: rgba(255, 255, 255, 0.1); // } // } } .btn { position: relative; margin-top: 10px; div { font-size: 14px; color: #ffffff; background: url('../../assets/second/boxbtn-bg.png'); background-size: 100% 100%; background-repeat: no-repeat; padding: 7px 15px; } } .flex { display: flex; justify-content: space-between; } } </style>