|
@@ -1,424 +1,452 @@
|
|
|
<template>
|
|
|
- <div class="app-container bulletinBoard" style="background: #f0f2f5 !important;height:90vw">
|
|
|
- <div class="height100 component1" style="margin-left:10px;">
|
|
|
- <div class="type type1">
|
|
|
- <p class="color1">上海永天科技</p>
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <p class="desc">站点名称</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height100 component2">
|
|
|
- <div class="left">
|
|
|
- <p class="color2">0.98 <span>/0.88</span></p>
|
|
|
- </div>
|
|
|
- <div class="right">
|
|
|
- <p class="">平均功率因数</p>
|
|
|
- <p class="">2025年7月2日 起</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height100 component1">
|
|
|
- <div class="type type1">
|
|
|
- <p class="color3">1023</p>
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <p class="desc">运行天数</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height100 component3" >
|
|
|
- <div class="type">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <div class="title color5">告警</div>
|
|
|
- <p class="desc3">平均功率因数</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height100 component3">
|
|
|
- <div class="type">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <div class="title color1">在线</div>
|
|
|
- <p class="desc3">站点通讯状态</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height100 component3">
|
|
|
- <div class="type">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <div class="title color1">正常</div>
|
|
|
- <p class="desc3">站点故障状态</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height190 component4" style="margin-left:8px;">
|
|
|
- <div class="top">
|
|
|
- <p>今日用电<span>(kWh)</span></p>
|
|
|
- <img src="@/assets/images/day/31.png" alt="">
|
|
|
- </div>
|
|
|
- <div class="middle">
|
|
|
- 1968
|
|
|
- </div>
|
|
|
- <div class="bottom">
|
|
|
- <p>昨日同期<span>2775</span></p>
|
|
|
- <p><span>28.32%</span><span></span></p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height190 component4" style="display: inline-block;">
|
|
|
- <div class="top">
|
|
|
- <p>本月用电<span>(kWh)</span></p>
|
|
|
- <img src="@/assets/images/month/7.png" alt="">
|
|
|
- </div>
|
|
|
- <div class="middle">
|
|
|
- 247605
|
|
|
+ <div class="app-container SiteDistribution" style="padding:0">
|
|
|
+ <div class="top">
|
|
|
+ <div class="statistics" v-if="mode == 1">
|
|
|
+ <div class="item" v-for="(item, index) in statistics" :key="index">
|
|
|
+ <img :src="item.img" alt="">
|
|
|
+ <div class="text">
|
|
|
+ <span :style="{ color: item.color }">{{ item.num }}</span>
|
|
|
+ <span>{{ item.text }}</span>
|
|
|
</div>
|
|
|
- <div class="bottom">
|
|
|
- <p>上月同期<span>1322913</span></p>
|
|
|
- <p><span>28.32%</span><span></span></p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="height190 component5 echarts" style="margin-top:-185px;width:62%;">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>今日用电趋势</span>
|
|
|
</div>
|
|
|
- <chart :data="ydqs"/>
|
|
|
</div>
|
|
|
- <div class="height190 component6 echarts" style="margin-top:-185px;height:380px;">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>告警处理统计</span>
|
|
|
- </div>
|
|
|
- <pie :data="alarm"/>
|
|
|
+ <div class="query" v-if="mode == 2">
|
|
|
+ <a-tree-select
|
|
|
+ v-model:value="city"
|
|
|
+ :tree-data="cityArray"
|
|
|
+ placeholder="请选择城市"
|
|
|
+ tree-default-expand-all
|
|
|
+ class="citySelect"
|
|
|
+ style="width:120px;margin-right:10px;"
|
|
|
+ >
|
|
|
+ </a-tree-select>
|
|
|
+ <a-select
|
|
|
+ v-model:value="siteSlect"
|
|
|
+ placeholder=""
|
|
|
+ :options="siteArray"
|
|
|
+ @change="handleChange"
|
|
|
+ class="state"
|
|
|
+ >
|
|
|
+ </a-select>
|
|
|
+ <a-input-search
|
|
|
+ v-model:value="siteName"
|
|
|
+ placeholder="站点名称"
|
|
|
+ enter-button
|
|
|
+ @search="onSearch"
|
|
|
+ class="siteName"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <div class="height190 component7 echarts" style="margin-left:10px;" >
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>支路用能占比</span>
|
|
|
+ <div class="modeSwitching">
|
|
|
+ <div @click="switchMode(1)" :class="{ active: mode == 1 }">
|
|
|
+ <img src="@/assets/svg/map.svg" alt="">
|
|
|
</div>
|
|
|
- <div class="time">
|
|
|
- <div :class="['switch',dateType == '1' ? 'active': '']" @click="dateSwitch(1)">月</div>
|
|
|
- <div :class="['switch',dateType == '2' ? 'active': '']" @click="dateSwitch(2)">年</div>
|
|
|
+ <div @click="switchMode(2)" :class="{ active: mode == 2 }">
|
|
|
+ <img src="@/assets/svg/menu.svg" alt="">
|
|
|
</div>
|
|
|
- <pie :data="zlydzb"/>
|
|
|
</div>
|
|
|
- <div class="height190 component7 echarts" style="height:375px;width:28.3%;">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>事件告警列表</span>
|
|
|
- </div>
|
|
|
- <tableD :data="eventList"/>
|
|
|
+ <div class="city">
|
|
|
+
|
|
|
</div>
|
|
|
- <div class="height190 component5 echarts" style="height:375px !important;width:calc(50% - 23px)">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>有功功率</span>
|
|
|
- </div>
|
|
|
- <chart :data="ydqs"/>
|
|
|
+ </div>
|
|
|
+ <div class="middle">
|
|
|
+ <div id="map" ref="map" style="width:100%;height:100%;" v-if="mode == 1"></div>
|
|
|
+ <div class="table" v-if="mode == 2">
|
|
|
+ <tableC :data="tableData" />
|
|
|
</div>
|
|
|
- <div class="height190 component5 echarts" style="margin-left:10px;width:calc(50% - 23px)">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>有功功率同比分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="bottom" v-if="mode == 1">
|
|
|
+ <div class="itemWrap">
|
|
|
+ <div class="item" @click="site(4)" :class="{ active: siteState.includes(4) }" v-if="siteState.includes(1)">
|
|
|
+ <img src="@/assets/svg/name.svg" alt="">
|
|
|
+ <p>名称</p>
|
|
|
</div>
|
|
|
- <chart :data="ydqs"/>
|
|
|
- </div>
|
|
|
- <div class="height190 component5 echarts" style="width:calc(50% - 23px)">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>功率因数</span>
|
|
|
+ <div class="item" @click="site(3)" :class="{ active: siteState.includes(3) }" v-if="siteState.includes(1)">
|
|
|
+ <img src="@/assets/svg/wifi.svg" alt="">
|
|
|
+ <p>在线</p>
|
|
|
</div>
|
|
|
- <chart :data="ydqs"/>
|
|
|
- </div>
|
|
|
- <div class="height190 component5 echarts" style="margin-left:10px;width:calc(50% - 23px)">
|
|
|
- <div class="top">
|
|
|
- <img src="@/assets/images/logo1.png" alt="">
|
|
|
- <span>环境温湿度</span>
|
|
|
+ <div class="item" @click="site(2)" :class="{ active: siteState.includes(2) }" v-if="siteState.includes(1)">
|
|
|
+ <img src="@/assets/svg/alerm.svg" alt="">
|
|
|
+ <p>告警</p>
|
|
|
</div>
|
|
|
- <chart :data="ydqs"/>
|
|
|
</div>
|
|
|
+ <div class="item" @click="site(1)" :class="{ active: siteState.includes(1) }">
|
|
|
+ <img src="@/assets/svg/site.svg" alt="">
|
|
|
+ <p>站点</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import chart from './components/chart'
|
|
|
-import pie from './components/pie'
|
|
|
-import tableD from './components/tableD'
|
|
|
-import { ref } from 'vue'
|
|
|
-
|
|
|
-//用电趋势
|
|
|
-const ydqs = ref({
|
|
|
- xAxis:["00:00", "02:00", "04:00", "06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00"],
|
|
|
- type:["总有功功率1(kW)","总有功功率2(kW)","总有功功率3(kW)","总有功功率4(kW)","总有功功率5(kW)"],
|
|
|
- data:[
|
|
|
- [100, 101, 120, 50, 70, 95, 65, 120, 5, 14, 78, 32],
|
|
|
- [5, 4, 10, 15, 13, 14, 9, 12, 45, 25, 32],
|
|
|
- [100,89,101,110,99,94,45,89,99,100,110,102],
|
|
|
- [11,8,33,22,11,66,22,8,13,8,46,16],
|
|
|
- [50,51,15,20,45,35,35,40,45,20,15,6]
|
|
|
- ],
|
|
|
- unit:""
|
|
|
-})
|
|
|
-//告警统计
|
|
|
-const alarm = ref({
|
|
|
- data:[
|
|
|
- {name: '未确认', value: 3},
|
|
|
- {name: '已确认', value: 3 },
|
|
|
- ],
|
|
|
- color:["red","#10aaeb"],
|
|
|
- type:"1"
|
|
|
-})
|
|
|
-//支路用电占比
|
|
|
-const zlydzb = ref({
|
|
|
- data:[
|
|
|
- {name: '路灯照明', value: 3},
|
|
|
- {name: '站内用电', value: 4 },
|
|
|
- {name: '站外用电', value: 5 },
|
|
|
- ],
|
|
|
- color:["red","#10aaeb","#FF691C"],
|
|
|
- type:"2"
|
|
|
-})
|
|
|
-const dateType = ref(1)
|
|
|
-
|
|
|
+/*----------------------------------组件引入-----------------------------------*/
|
|
|
+import tableC from "./components/table"
|
|
|
+/*----------------------------------接口引入-----------------------------------*/
|
|
|
+import { ref,onMounted } from "vue";
|
|
|
+/*----------------------------------store引入----------------------------------*/
|
|
|
+/*----------------------------------公共方法引入--------------------------------*/
|
|
|
+import { initMap, markers, labelState } from "@/assets/js/baiduMap.js";
|
|
|
+/*----------------------------------常量声明-----------------------------------*/
|
|
|
+import zhanDian from "@/assets/images/zhanDian.png";
|
|
|
+import liXian from "@/assets/images/liXian.png";
|
|
|
+import weiChuLi from "@/assets/images/weiChuLi.png";
|
|
|
+import sheBei from "@/assets/images/sheBei.png";
|
|
|
+/*----------------------------------变量声明-----------------------------------*/
|
|
|
+const mode = ref(1)//1:列表模式 2:地图模式
|
|
|
+const siteState = ref([]) //true:站点显示 false:站点隐藏
|
|
|
+const statistics = ref([
|
|
|
+ { num:1, img:zhanDian, text:'站点总数', color:'#2ACDDA'},
|
|
|
+ { num:2, img:liXian, text:'离线站总数', color:'#AAA' },
|
|
|
+ { num:3, img:weiChuLi, text:'未处理告警数', color:'#FFB00A' },
|
|
|
+ { num:4, img:sheBei, text:'设备数', color:'#2FA6FF' }
|
|
|
+])
|
|
|
+const markerArray = ref([
|
|
|
+ { longitude:121.486647, latitude:31.220165, name:"公司名称",state:0,tatal:100,alert:4,tel:"13120222222",address:"公司地址"},
|
|
|
+ { longitude:121.486647, latitude:31.010165, name:"公司名称2",state:1,tatal:10,alert:2,tel:"13120222222",address:"公司地址"},
|
|
|
+ { longitude:121.486647, latitude:30.010165, name:"公司名称3",state:0,tatal:1,alert:0,tel:"13120222222",address:"公司地址"}
|
|
|
+]) //点标记集
|
|
|
+const dian = ref([])
|
|
|
|
|
|
-//事件告警列表
|
|
|
-const eventList = ref([
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"0" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
- { name:"事件名称", time:"2021-10-10 10:10:10", deviceName:"设备1", statue:"1" },
|
|
|
+// 表格数据
|
|
|
+const cityArray = ref([
|
|
|
+ {
|
|
|
+ value: '1',
|
|
|
+ label: '上海',
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ value: '11',
|
|
|
+ label: '青浦',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '12',
|
|
|
+ label: '松江',
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '2',
|
|
|
+ label: '全部',
|
|
|
+ },
|
|
|
+
|
|
|
])
|
|
|
+const city = ref(1)
|
|
|
+const siteSlect = ref("")
|
|
|
+const siteArray = ref([
|
|
|
+ { value:"", label:"全部" },
|
|
|
+ { value:"1", label:"在线" },
|
|
|
+ { value:"0", label:"离线" },
|
|
|
+])
|
|
|
+const siteName = ref("")
|
|
|
+const total = ref(100)
|
|
|
+const pageSize = ref(15)
|
|
|
+const currentPage = ref(1)
|
|
|
+const tableData = ref([
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+ { platformAreaName: "名称"},
|
|
|
+])
|
|
|
+/*----------------------------------方法声明-----------------------------------*/
|
|
|
+onMounted(() => {
|
|
|
+ init()
|
|
|
+})
|
|
|
|
|
|
-function dateSwitch(type){
|
|
|
- dateType.value = type
|
|
|
+//初始化
|
|
|
+function init(){
|
|
|
+ initMap()
|
|
|
+ site(1)
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 切换模式
|
|
|
+ * @param {Number} val 1:列表模式 2:地图模式
|
|
|
+ */
|
|
|
+function switchMode(val) {
|
|
|
+ mode.value = val
|
|
|
+ if(val == 1){
|
|
|
+ setTimeout(() => {
|
|
|
+ init()
|
|
|
+ site(1)
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
-</script>
|
|
|
|
|
|
-<style lang="scss" scoped>
|
|
|
-.bulletinBoard{
|
|
|
- padding:0;
|
|
|
- .height100{
|
|
|
- height:100px;
|
|
|
- margin-top:10px;
|
|
|
- margin-right:10px;
|
|
|
- border-radius: 6px;
|
|
|
- display: inline-block;
|
|
|
- vertical-align: top;
|
|
|
- position: relative;
|
|
|
- .type{
|
|
|
- padding:10px 8px;
|
|
|
- }
|
|
|
- .type1{
|
|
|
- img{
|
|
|
- position: absolute;
|
|
|
- right:8px;;
|
|
|
- top:25px;
|
|
|
- }
|
|
|
- p:nth-child(1){
|
|
|
- font-size: 24px;
|
|
|
- }
|
|
|
-
|
|
|
- .desc{
|
|
|
- position: absolute;
|
|
|
- bottom:-5px;
|
|
|
- color:#fff;
|
|
|
+/**
|
|
|
+ * 站点隐、显控制
|
|
|
+*/
|
|
|
+function site(val){
|
|
|
+ //站点隐现其他项
|
|
|
+ siteState.value = siteState.value.includes(val) ? siteState.value.filter(item => item!== val) : [...siteState.value, val]
|
|
|
+ if(val == 1 || val == 2 || val == 3) {
|
|
|
+ //站点隐现(全部/在线/告警)
|
|
|
+ if(siteState.value.includes(1)){
|
|
|
+ dian.value = []
|
|
|
+ //站点在线并告警 / 所有站点
|
|
|
+ if(siteState.value.includes(2) && siteState.value.includes(3) || !siteState.value.includes(2) && !siteState.value.includes(3)){
|
|
|
+ markers(markerArray.value)
|
|
|
}
|
|
|
- .desc2{
|
|
|
- position: absolute;
|
|
|
- bottom:15px;
|
|
|
+ //告警设备隐现(离线)
|
|
|
+ if(siteState.value.includes(2) && !siteState.value.includes(3)){
|
|
|
+ for(let i=0;i<markerArray.value.length;i++){
|
|
|
+ if(!markerArray.value[i].state){
|
|
|
+ dian.value.push(markerArray.value[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ markers(dian.value)
|
|
|
}
|
|
|
- .time{
|
|
|
- position: absolute;
|
|
|
- bottom:-5px;
|
|
|
- font-size: 12px;
|
|
|
- color:#333;
|
|
|
+ //在线设备隐现
|
|
|
+ if(!siteState.value.includes(2) && siteState.value.includes(3)){
|
|
|
+ for(let i=0;i<markerArray.value.length;i++){
|
|
|
+ if(markerArray.value[i].state){
|
|
|
+ dian.value.push(markerArray.value[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ markers(dian.value)
|
|
|
}
|
|
|
}
|
|
|
+ if(!siteState.value.includes(1)){
|
|
|
+ markers()
|
|
|
+ }
|
|
|
}
|
|
|
- .component1{
|
|
|
- width:24.3%;
|
|
|
- background: linear-gradient(to right bottom, rgb(56, 148, 190), rgb(80, 227, 194));
|
|
|
+ //文本标注隐现4
|
|
|
+ if(siteState.value.includes(4)){
|
|
|
+ if(siteState.value.includes(1)){
|
|
|
+ labelState(dian.value.length == 0 ? markerArray.value : dian.value)
|
|
|
+ }else{
|
|
|
+ labelState()
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ labelState()
|
|
|
}
|
|
|
- .component2{
|
|
|
- width:24.3%;
|
|
|
- background:linear-gradient(to right bottom, rgb(27, 40, 52), rgb(27, 40, 52));
|
|
|
- >div{
|
|
|
- width:50%;
|
|
|
- display: inline-block;
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.SiteDistribution{
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+ .top{
|
|
|
+ .statistics{
|
|
|
+ position: absolute;
|
|
|
+ z-index: 1;
|
|
|
+ top:20px;
|
|
|
+ left:20px;
|
|
|
+ width:40%;
|
|
|
+ height:78px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+
|
|
|
+ .item{
|
|
|
+ width:100%;
|
|
|
+ height:100%;
|
|
|
+ background: #fff;
|
|
|
+ padding:14px 0 3% 3%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ img{
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-right:10px;
|
|
|
+ width:50px;
|
|
|
+ height:50px;
|
|
|
+ }
|
|
|
+ >div{
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ color:#333;
|
|
|
+ font-size: 14px;
|
|
|
+ margin-top:2px;
|
|
|
+ span:nth-child(1){
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ margin-bottom:10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- .left{
|
|
|
- font-size: 40px;
|
|
|
- color:rgb(80, 227, 194);
|
|
|
- text-align: center;
|
|
|
- vertical-align: middle;
|
|
|
- margin-top:25px;
|
|
|
- span{
|
|
|
- font-size: 14px;
|
|
|
- color:rgb(126, 147, 166);
|
|
|
- vertical-align: top;
|
|
|
- margin-top:10px;
|
|
|
+ .modeSwitching{
|
|
|
+ position: absolute;
|
|
|
+ z-index: 1;
|
|
|
+ top:20px;
|
|
|
+ right:20px;
|
|
|
+ width: 68px;
|
|
|
+ height: 32px;
|
|
|
+ display: flex;
|
|
|
+ border-radius: 2px;
|
|
|
+ background: #fff;
|
|
|
+ font-size: 22px;
|
|
|
+ cursor: pointer;
|
|
|
+ box-shadow: 0px 3px 7px 0px rgba(0,0,0,0.07);
|
|
|
+ >div{
|
|
|
+ width:50%;
|
|
|
+ height:100%;
|
|
|
+ line-height: 115%;;
|
|
|
display: inline-block;
|
|
|
+ background: none;
|
|
|
+ text-align: center;
|
|
|
+ img{
|
|
|
+ width:16px;
|
|
|
+ transform: translateX(80px);
|
|
|
+ filter: drop-shadow(#333 -80px 1px 0px);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .active{
|
|
|
+ background: #48A4FF;
|
|
|
+ img{
|
|
|
+ width:16px;
|
|
|
+ transform: translateX(80px);
|
|
|
+ filter: drop-shadow(#fff -80px 1px 0px);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- .right{
|
|
|
- color:rgb(126, 147, 166);
|
|
|
-
|
|
|
- vertical-align: middle;
|
|
|
-
|
|
|
+ .query{
|
|
|
+ position: absolute;
|
|
|
+ right:100px;
|
|
|
+ top:20px;
|
|
|
+ z-index: 1;
|
|
|
+ >div{
|
|
|
+ display: inline-block;
|
|
|
+ margin-right:10px;
|
|
|
+ }
|
|
|
+ .state{
|
|
|
+ width:80px;
|
|
|
+ }
|
|
|
+ .siteName{
|
|
|
+ width:200px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- .component3{
|
|
|
- width:7.5%;
|
|
|
- background: #fff;
|
|
|
- text-align: center;
|
|
|
- .title{
|
|
|
- font-weight: 600;
|
|
|
- margin:6px 0;
|
|
|
+ .middle{
|
|
|
+ width:100%;
|
|
|
+ height:100%;
|
|
|
+ position: absolute;
|
|
|
+ z-index: 0;
|
|
|
+ .table{
|
|
|
+ padding:20px;
|
|
|
+ margin-top:40px;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- .height100:last-child{
|
|
|
- margin-right:0;
|
|
|
- }
|
|
|
- .component4{
|
|
|
- width:15%;
|
|
|
- height:185px;
|
|
|
- margin-top:10px;
|
|
|
- margin-right:10px;
|
|
|
- margin-left:10px;
|
|
|
- background: #fff;
|
|
|
- // display: inline-block;
|
|
|
- >div{
|
|
|
- height: 50px;
|
|
|
- }
|
|
|
- .top{
|
|
|
- position: relative;
|
|
|
- padding:15px;
|
|
|
- p{
|
|
|
- font-size: 20px;
|
|
|
- span{
|
|
|
- font-size: 12px;
|
|
|
- }
|
|
|
- }
|
|
|
+ .bottom{
|
|
|
+ position: absolute;
|
|
|
+ z-index: 1;
|
|
|
+ bottom:20px;
|
|
|
+ right:20px;
|
|
|
+ .item{
|
|
|
+ padding:4px 8px 2px;
|
|
|
+ text-align: center;
|
|
|
+ border-bottom:1px solid #eee;
|
|
|
+ background: #fff;
|
|
|
+ cursor: pointer;
|
|
|
img{
|
|
|
- position: absolute;
|
|
|
- width:40px;
|
|
|
- top:15px;
|
|
|
- right:15px;
|
|
|
+ font-size: 14px;
|
|
|
+ transform: translateX(80px);
|
|
|
+ filter: drop-shadow(#333 -80px 1px 0px);
|
|
|
+ }
|
|
|
+ >p{
|
|
|
+ font-size: 12px;
|
|
|
+ color:#333;
|
|
|
+ margin:6px 0 0px;
|
|
|
}
|
|
|
}
|
|
|
- .middle{
|
|
|
- font-size:34px;
|
|
|
- color:#10aaeb;
|
|
|
- padding:15px 15px 40px 15px;
|
|
|
- border-bottom:2px solid #eee;
|
|
|
+ .item:last-child(1){
|
|
|
+ border-bottom:none;
|
|
|
}
|
|
|
- .bottom{
|
|
|
- padding:15px;
|
|
|
- color:rgba(0,0,0,0.65);
|
|
|
- p:nth-child(1){
|
|
|
- span:nth-child(1){
|
|
|
- margin-left:10px;
|
|
|
- }
|
|
|
- }
|
|
|
- p:nth-child(2){
|
|
|
- span{
|
|
|
- vertical-align: middle;
|
|
|
- }
|
|
|
- span:nth-child(1){
|
|
|
- color:#1BCCC1;
|
|
|
- }
|
|
|
- span:nth-child(2){
|
|
|
- margin-left:10px;
|
|
|
- margin-top:-4px;
|
|
|
- display: inline-block;
|
|
|
+ .active{
|
|
|
+ background: #48A4FF;
|
|
|
+ img{
|
|
|
+ transform: translateX(80px);
|
|
|
+ filter: drop-shadow(#fff -80px 1px 0px);
|
|
|
}
|
|
|
- span:nth-child(2)::after{
|
|
|
- display: inline-block;
|
|
|
- content: ""; /* 伪元素不包含内容 */
|
|
|
- width: 0; /* 必须设置为0,因为我们不显示宽度 */
|
|
|
- height: 0; /* 必须设置为0,因为我们不显示高度 */
|
|
|
- margin-left: -5px; /* 根据需要调整,这里是让箭头中心对齐 */
|
|
|
- margin-top:-10px;
|
|
|
- border-left: 5px solid transparent; /* 左边框透明 */
|
|
|
- border-right: 5px solid transparent; /* 右边框透明 */
|
|
|
- border-top: 5px solid #08b762; /* 上边框是三角形的颜色 */
|
|
|
+ p{
|
|
|
+ color:#fff;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- .component5{
|
|
|
- width:49%;
|
|
|
- height:380px !important;
|
|
|
- display: inline-block;
|
|
|
- vertical-align: top;
|
|
|
}
|
|
|
- .component6{
|
|
|
- width:20%;
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|
|
|
+<style>
|
|
|
+
|
|
|
+.BMap_copCtrl,.anchorBL{
|
|
|
+ display: none;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|
|
|
+<style lang="scss">
|
|
|
+.BMap_bubble_pop{
|
|
|
+ width:270px !important;
|
|
|
+ padding:0 !important;
|
|
|
+ border-radius: 4px !important;
|
|
|
+ box-shadow: 0px 3px 7px 0px rgba(0,0,0,0.07);
|
|
|
+ margin-top:35px;
|
|
|
+ margin-left:-26px;
|
|
|
+ // background: linear-gradient(to bottom right, #fff, #fff);
|
|
|
+ .BMap_bubble_center,.BMap_bubble_content,.boxs{
|
|
|
+ width:270px !important;
|
|
|
}
|
|
|
- .component7{
|
|
|
- width:20%;
|
|
|
- .time{
|
|
|
- margin:6px;
|
|
|
- .switch{
|
|
|
- width:40px;
|
|
|
- height:30px;
|
|
|
- line-height: 26px;
|
|
|
- text-align: center;
|
|
|
- margin-right:6px;
|
|
|
- padding:2px;
|
|
|
- color:rgba(0,0,0,0.65);
|
|
|
- border: 1px solid #ccc;
|
|
|
- display: inline-block;
|
|
|
- cursor: pointer;
|
|
|
+ .BMap_bubble_center{
|
|
|
+ margin-top:-30px;
|
|
|
+ .boxs{
|
|
|
+ .title{
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 40px;
|
|
|
+ padding-left:20px;
|
|
|
}
|
|
|
- .active{
|
|
|
- background: #6c7fff;
|
|
|
- color:#fff;
|
|
|
+ .content{
|
|
|
+ padding:0 20px 4px;
|
|
|
+ border-top: 1px solid #E9E9F3;
|
|
|
+ >div{
|
|
|
+ border-top: 1px solid #E9E9F3;
|
|
|
+ height:40px;
|
|
|
+ line-height: 40px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
+ >div:nth-child(1){
|
|
|
+ border-top:none;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
-.echarts{
|
|
|
- margin-top:10px;
|
|
|
- margin-right:10px;
|
|
|
- display: inline-block;
|
|
|
- vertical-align: top;
|
|
|
- border-top:solid 1px #1890ff;
|
|
|
- background: #fff;
|
|
|
- .top{
|
|
|
- background: #fafafa;
|
|
|
- padding:8px;
|
|
|
- img{
|
|
|
- width:25px;
|
|
|
- }
|
|
|
- img,span{
|
|
|
- display: inline-block;
|
|
|
- vertical-align: middle;
|
|
|
- }
|
|
|
- span{
|
|
|
- font-size: 16px;
|
|
|
- margin-left:10px;
|
|
|
+ .BMap_bubble_center:after{
|
|
|
+ content: ""; /* 伪元素不包含内容 */
|
|
|
+ position: absolute; /* 绝对定位相对于.arrow-down */
|
|
|
+ top: 100%; /* 向下定位 */
|
|
|
+ left: 50%; /* 水平居中定位 */
|
|
|
+ width: 0; /* 必须设置为0,因为我们不显示宽度 */
|
|
|
+ height: 0; /* 必须设置为0,因为我们不显示高度 */
|
|
|
+ margin-left: -15px; /* 根据需要调整,这里是让箭头中心对齐 */
|
|
|
+ border-left: 15px solid transparent; /* 左边框透明 */
|
|
|
+ border-right: 15px solid transparent; /* 右边框透明 */
|
|
|
+ border-top: 15px solid #fff; /* 上边框是三角形的颜色 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .BMap_bubble_buttons{
|
|
|
+ top:4px !important;
|
|
|
+ >div:nth-child(2){
|
|
|
+ >div{
|
|
|
+ font-size: 26px !important;
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
-.color1{
|
|
|
- color:#1BCCC1;
|
|
|
-}
|
|
|
-.color2{
|
|
|
- color:#FF691C ;
|
|
|
-}
|
|
|
-.color3{
|
|
|
- color:#8942F5 ;
|
|
|
-}
|
|
|
-.color4{
|
|
|
- color:#FF397F ;
|
|
|
- span{
|
|
|
- color:#333;
|
|
|
- margin-left:10px;
|
|
|
+ }
|
|
|
+ >img{
|
|
|
+ display: none;
|
|
|
}
|
|
|
}
|
|
|
-.color5{
|
|
|
- color:red
|
|
|
+.shadow{
|
|
|
+ display: none;
|
|
|
}
|
|
|
-</style>
|
|
|
+
|
|
|
+
|
|
|
+.BMap_bubble_buttons{
|
|
|
+ /* >div:nth-child(2){
|
|
|
+ width:100px;
|
|
|
+ } */
|
|
|
+}
|
|
|
+.el-table__header-wrapper { position: sticky; width: 100%; top:0px; z-index: 2;color:#333 }
|
|
|
+</style>
|