From e2234fabe971a539fcffd1e0dec1f5cedd6078fa Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Mon, 12 Apr 2021 09:39:38 +0800
Subject: [PATCH] 修改,图例,top长度,省份间距,标题文字

---
 src/views/realTimePolice/real.vue               |   24 ++++
 src/components/liu-legend/Legend.vue            |   54 ++++++++++
 src/views/dataL/dataL.vue                       |  126 +++++++++++++++++++-----
 src/views/clientManagement/clientManagement.vue |   18 +++
 src/views/system/cs.vue                         |   53 ++++++----
 5 files changed, 227 insertions(+), 48 deletions(-)

diff --git a/src/components/liu-legend/Legend.vue b/src/components/liu-legend/Legend.vue
new file mode 100644
index 0000000..72570c6
--- /dev/null
+++ b/src/components/liu-legend/Legend.vue
@@ -0,0 +1,54 @@
+<template>
+  <span id="l-legendOur">
+    <span v-for="(value,index) in datas" :key="index" class="l-l-o">
+      <span class="l-l-Img" :style="{backgroundColor: value.color}"></span>
+      <span class="l-l-Text">{{value.text}}</span>
+    </span>
+  </span>
+</template>
+<script>
+import { color } from "echarts"
+
+
+export default ({
+    props:['datas'],
+    data(){
+        return{
+            datalist:[//示例数据格式
+                {
+                    color: 'rgb(233, 39, 25)',
+                    text: '掉线'
+                },
+                {
+                    color: 'black',
+                    text: '在线'
+                }
+            ]
+        }
+    }
+})
+</script>
+
+<style lang="scss" >
+#l-legendOur{
+    position: absolute;
+    right: 0;
+    .l-l-o{
+        color: rgba($color: #000000, $alpha: .5);
+        position: relative;
+        right: 150px;
+        margin-left: 10px;
+        font-size: 12px;
+        font-weight: 300;
+        font-family: 'Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol';
+    }
+    .l-l-Img{
+        display: inline-block;
+        width: 7px;
+        height: 7px;
+        // border: 1px solid rgb(17, 198, 253);
+        border-radius: 7px;
+        margin-right: 7px;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/clientManagement/clientManagement.vue b/src/views/clientManagement/clientManagement.vue
index 2f1ee48..5612908 100644
--- a/src/views/clientManagement/clientManagement.vue
+++ b/src/views/clientManagement/clientManagement.vue
@@ -37,6 +37,9 @@
                        v-if="permission.clientManagement_delete"
                        @click="handleDelete">删 除
             </el-button>
+            <span><!--图例 components-->
+              <Legend :datas="datalistLIU"></Legend>
+            </span>
           </template>
 
 
@@ -193,13 +196,28 @@
   import {getList, remove, update, add, getclient, getDeptLazyTree, getAll, updates} from "@/api/client/client";
   import {mapGetters} from "vuex";
   import axios from "axios";
+  import Legend from '../../components/liu-legend/Legend'
 
   export default {
+    components:{
+      Legend,
+    },
     created() {
       //this.payWin();
     },
     data() {
       return {
+        //legend-liu数据
+        datalistLIU:[
+                {
+                    color: 'rgb(233, 39, 25)',
+                    text: '掉线'
+                },
+                {
+                    color: 'black',
+                    text: '在线'
+                }
+            ],
         form: {},
         query: {},
         showMap: false,
diff --git a/src/views/dataL/dataL.vue b/src/views/dataL/dataL.vue
index c415d3c..32577e2 100644
--- a/src/views/dataL/dataL.vue
+++ b/src/views/dataL/dataL.vue
@@ -12,7 +12,8 @@
                 :class="{
                   'l-t-s-grey': state == dataState[0],
                   'l-t-s-green': state == dataState[1],
-                  'l-t-s-red': state == dataState[2],
+                  'l-t-s-yewllo': state == dataState[3],
+                  'l-t-s-red': state == dataState[3],
                   'l-t-s-yuan': true,
                 }"
               ></span>
@@ -133,7 +134,7 @@
                         {{ value.year }}年
                       </p>
                       <div class="l-m-2-m-tablemain">
-                        <el-table :data="value.data" style="width: 100%">
+                        <el-table :data="value.data" style="width: 100%" highlight-current-row @current-change="handleCurrentChange"><!--highlight-current-row: 单选,current-change单选事件-->
                           <el-table-column type="index"> </el-table-column>
                           <el-table-column label="日期" prop="day">
                           </el-table-column>
@@ -158,8 +159,9 @@
                               <el-tag>{{ props.row.state }}</el-tag>
                             </template>
                           </el-table-column>
-                          <el-table-column label="跳转实时" prop="">
-                          </el-table-column>
+                          <!-- <el-table-column label="跳转实时" prop="">
+                            
+                          </el-table-column> -->
                         </el-table>
                       </div>
                     </div>
@@ -436,8 +438,6 @@
                               ></el-input>
                             </el-form-item>
                           </el-col>
-                        </el-row>
-                        <el-row>
                           <el-col span="12">
                             <el-form-item label="心跳时间">
                               <el-input
@@ -534,7 +534,7 @@
                 width="100%"
                 height="100%"
               ></iframe> -->
-             
+              <!-- <button @click="re">刷新</button> -->
               <iframe
                 id="detailMap"
                 ref="detailMap"
@@ -591,7 +591,13 @@
       isRecord: true,
       screens: false,
       //复选框
-      dataState: ["掉线", "在线", "报警"], //[grey,green,red][0,1,2]
+      dataState: ["掉线", "在线", '故障', "预警"], 
+      // [grey,green,red][
+      //   onlineStatus = 0,
+      //   onlineStatus = 1,
+      //   state!= "",
+      //   jtype != 2
+      //   ]
       checkAll: false,
       checkedCities: [], //选择的
       cities: cityOptions,
@@ -839,9 +845,9 @@
       this.myChart.setOption(option);
       this.myChart.hideLoading();
       //建议加上以下这一行代码,不加的效果图如下(当浏览器窗口缩小的时候)。超过了div的界限(红色边框)
-      window.addEventListener("resize", function () {
-        myChart.resize();
-      });
+      // window.addEventListener("resize", function () {
+      //   this.myChart.resize();
+      // });
     },
     modifyl() {
       //right 修改按钮
@@ -933,12 +939,28 @@
     },
     stetDetails(d) {
       this.name = "无数据" && d.deviceName;
-      this.state =
-        "无数据" && this.a.dtype == 0
-          ? this.dataState[0]
-          : this.a.dtype == 1
-          ? this.dataState[1]
-          : this.dataState[2];
+      //设备状态
+      // [grey,green,red][
+      //   onlineStatus = 0,
+      //   onlineStatus = 1,
+      //   state!= "",
+      //   jtype != 2
+      //   ]
+      var states,
+      o = this.a.onlineStatus,
+      s = this.a.state,
+      j = this.a.jtype;
+      if(o == 0){
+        states = '掉线';
+      }else if(o == 1){
+        states = '在线';
+      }else if(s != ""){
+        states = '故障';
+      }else if(j != 2){
+        states = '预警';
+      }
+      this.state = "无数据" && states;
+
       this.evaluate = "空气质量";
       this.machineCode = "无数据" && d.deviceNumber;
       this.smoke = "烟雾";
@@ -947,7 +969,8 @@
       this.contacts = "无数据" && d.oneContacts;
       this.calls = "无数据" && d.onePhone;
       this.labels = ["无数据"] && [d.deviceType];
-      this.imgsl = ["no"];
+      var imgD = ["no"];
+      this.imgsl = ["no"] && imgD;
       this.deploymentTime = "无数据" && d.stime;
 
       this.detailsData = {
@@ -1037,6 +1060,18 @@
           creates(i, tData);
         }
       }
+      for(var k1 in Num){//添加序号
+        var n2 = Num[k1];
+        for(var k2 in n2){
+          if(k2 == 'year'){continue};
+          // console.log(n2[k2])
+          var n3 = n2[k2];
+          for(var k3 in n3){
+            // console.log(+k3 + 1);
+            n3[k3].i = +k3 + 1;
+          }
+        }
+      }
       // console.log(Num);
       this.eventDetaill = Num;
       this.eventDetails = this.eventDetaill; //载入历史事件数据
@@ -1060,6 +1095,22 @@
       // console.log(dataM);
       this.numdatalist = dataM;
       this.startEcharts01();
+    },
+    getMap() {
+      window.frames[0].init("DetailMap", {
+        x: this.a.jd,
+        y: this.a.wd,
+      });
+    },
+    re() {
+      //   var _body = window.parent;
+      //   var _iframe1=_body.document.getElementById('detailMap');
+      //   window.onbeforeunload=function(){};
+      //   _iframe1.contentWindow.location.reload(true);
+      location.reload();
+    },
+    handleCurrentChange(val){
+        console.log(val.i)
     }
   },
   created() {
@@ -1068,7 +1119,7 @@
     this.a = this.$route.query;
     this.baseUrl = `/map/index.html?ISinit=1&openid=DetailMap&jd=${this.a.jd}&wd=${this.a.wd}`;
     this.myDeviceNumber = this.$route.query.deviceNumber;
-
+    // console.log(this.a);
     // console.log(this.myDeviceNumber);
     this.getdata();
     this.getdataG();
@@ -1078,12 +1129,19 @@
     this.loginEcharts01(); //载入折线图等待数据
     // this.eventDetails = this.eventDetaill;//载入历史事件数据
     // this.doEvents();
-      this.$refs.detailMap.onload = () => {
-         window.frames[0].init("DetailMap", {
-          x: this.a.jd,
-          y: this.a.wd,
-        });
-      };
+    // var timel = setTimeout(() => {
+    this.$refs.detailMap.onload = () => {
+      // window.frames[0].init("DetailMap", {
+      //   x: this.a.jd,
+      //   y: this.a.wd,
+      // });
+      if (window.frames[0].init) {
+        this.getMap();
+      } else {
+        // this.re();
+        this.getMap();
+      }
+    };
   },
 };
 </script>
@@ -1160,8 +1218,11 @@
             .l-t-s-green {
               background-color: rgb(41, 202, 135);
             }
+            .l-t-s-yewllo{
+              background-color: rgb(240, 181, 20);
+            }
             .l-t-s-red {
-              background-color: rgb(243, 75, 75);
+              background-color: rgba(247, 28, 28, 0.877);
             }
           }
         }
@@ -1271,7 +1332,12 @@
       .l-m-2-main {
         width: 100%;
         height: 370px;
-        overflow: scroll;
+        // overflow: scroll;
+        overflow-y: scroll;//滚动条
+        scrollbar-color: transparent transparent;
+        scrollbar-track-color: transparent;
+        -ms-scrollbar-track-color: transparent;
+
         // border: 1px solid rg b(23, 66, 209);
         .l-m-2-m-not {
           display: flex;
@@ -1368,7 +1434,9 @@
           display: flex;
           align-items: center;
           justify-content: space-between;
+          // border: 1px solid rgb(148, 199, 159);
           padding: 10px 0 10px 0;
+          margin-bottom: 5px;
         }
         .r-b-t-left {
           display: block;
@@ -1401,8 +1469,10 @@
       }
       .r-b-map {
         height: 500px;
-        border: 1px solid rgba(109, 109, 109, 0.2);
+        // border: 1px solid rgba(109, 109, 109, 0.2);
         #detailMap {
+          position: relative;
+          top: 25px;
           width: 100%;
           height: 500px;
         }
diff --git a/src/views/realTimePolice/real.vue b/src/views/realTimePolice/real.vue
index c46d4ef..3b88a0f 100644
--- a/src/views/realTimePolice/real.vue
+++ b/src/views/realTimePolice/real.vue
@@ -66,6 +66,9 @@
           @click="getQBdata(3)"
           >全部
         </el-button>
+        <span>
+          <Legend :datas="datalistLIU"></Legend>
+        </span>
       </template>
 
       <template slot-scope="{ row }" slot="jtype">
@@ -408,9 +411,30 @@
 
 import Recorder from "js-audio-recorder";
 
+import Legend from '../../components/liu-legend/Legend'
+
 export default {
+  components:{
+      Legend,
+    },
   data() {
     return {
+      //legend-liu数据
+      datalistLIU:[
+                {
+                    color: 'rgb(233, 39, 25)',
+                    text: '未处理'
+                },
+                {
+                    color: 'rgb(17, 198, 253)',
+                    text: '处理中'
+                },
+                {
+                    color: 'black',
+                    text: '已处理'
+                }
+            ],
+
       showMap: false,
       hls: "",
       videoSource: "",
diff --git a/src/views/system/cs.vue b/src/views/system/cs.vue
index aef990b..af4bced 100644
--- a/src/views/system/cs.vue
+++ b/src/views/system/cs.vue
@@ -104,6 +104,7 @@
         viewBtn: true,
         //dialogType: 'drawer',
         dialogClickModal: false,
+        //  searchSize: 'mini',
         column: [
           {
             label: "客户ID",
@@ -124,6 +125,7 @@
             search: true,
             width: 190,
             span: 12,
+            searchSpan: 3,
             rules: [{
               required: true,
               message: "请输入参数名称",
@@ -135,6 +137,7 @@
             prop: "linkman",
             width: 100,
             search: true,
+            searchSpan: 3,
             rules: [{
               required: true,
               message: "请输入联系人",
@@ -200,23 +203,23 @@
             className: "cityClass3"
           },
           {
-            label: '坐标',
+            label: '地址',
             prop: 'map',
             hide: true,
             span: 24,
             component: "AvueMap",
           },
           {
-            label: '经度',
-            hide: true,
-            addDisplay: false,
-            prop: 'jd',
-          },
-          {
             label: '纬度',
             hide: true,
             addDisplay: false,
             prop: 'wd',
+          },
+          {
+            label: '经度',
+            hide: true,
+            addDisplay: false,
+            prop: 'jd',
           },
           {
             label: "账号额度",
@@ -528,15 +531,16 @@
       }
     };
   },
-  watch:{
-    'form.map':{// form是表单或者表格绑定的数据集,v-model='form'
-      handler(val){
-        this.form.jd = val.latitude
-        this.form.wd = val.longitude
-      },
-      immediate: true
-    }
-  },
+  //报错: TypeError: val is undefined 处理时间2021.4.10,处理人  liuyg
+  // watch:{     
+  //   'form.map':{// form是表单或者表格绑定的数据集,v-model='form'
+  //     handler(val){
+  //       this.form.jd = val.latitude
+  //       this.form.wd = val.longitude
+  //     },
+  //     immediate: true
+  //   }
+  // },
   computed: {
     ...mapGetters(["userInfo", "permission"]),
     permissionList() {
@@ -849,42 +853,49 @@
 };
 </script>
 
-<style>
+<style lang="scss">
+$city-m-l: 10px;
 
   /*页面样式*/
   .el-card__body .cityClass1 {
     width: 155px;
     padding-right: 0px !important;
+    margin-left: $city-m-l;
   }
 
   .el-card__body .cityClass2 {
     width: 100px;
     padding-left: 0px !important;
     padding-right: 0px !important;
+    margin-left: $city-m-l;
   }
 
   .el-card__body .cityClass3 {
     width: 100px;
     padding-left: 0px !important;
     padding-right: 0px !important;
+    margin-left: $city-m-l;
   }
 
   /*新增窗体样式*/
   .el-dialog .cityClass1 {
     width: 220px;
     padding-right: 0px !important;
+    margin-left: $city-m-l;
   }
 
   .el-dialog .cityClass2 {
-    width: 110px;
+    width: 130px;
     padding-left: 5px !important;
     padding-right: 5px !important;
+    margin-left: $city-m-l;
   }
 
   .el-dialog .cityClass3 {
-    width: 110px;
+    width: 130px;
     padding-left: 0px !important;
     padding-right: 0px !important;
+    margin-left: $city-m-l;
   }
 
   .cityClass2 div label {
@@ -899,5 +910,7 @@
     font-size: 15px;
   }
 
-
+.el-input__inner{
+  width: aotu;
+}
 </style>

--
Gitblit v1.9.3