From 14e02654e0545ee69456d64aef2f35c7c219d708 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 07 May 2021 11:26:49 +0800
Subject: [PATCH] 地图模式设备状态修改

---
 src/views/system/cs.vue |  238 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 138 insertions(+), 100 deletions(-)

diff --git a/src/views/system/cs.vue b/src/views/system/cs.vue
index aa0c4b8..15c292f 100644
--- a/src/views/system/cs.vue
+++ b/src/views/system/cs.vue
@@ -99,20 +99,35 @@
       append-to-body="true"
       class="right-open"
     >
-      <el-divider content-position="left">点击查看详情</el-divider>
+      <el-divider></el-divider>
       <div class="r-o-our">
         <avue-crud
           :option="options"
-          :data="datas"
-          :table-loading="loadings"
-          :page="pages"
           @on-load="onLoads"
+          :data="datas"
+          :page="pages"
           @search-change="searchChanges"
           @search-reset="searchResets"
           @row-click="rowClicks"
           @current-change="currentChanges"
           @size-change="sizeChanges"
         >
+          <template slot="states" slot-scope="scope">
+            <el-tag
+              :class="[
+                scope.row.states == '掉线'
+                  ? 'diaoxianl'
+                  : scope.row.states == '在线'
+                  ? 'zaixianl'
+                  : scope.row.states == '故障'
+                  ? 'guzhagnl'
+                  : scope.row.states == '预警'
+                  ? 'baojinl'
+                  : '',
+              ]"
+              >{{ scope.row.states }}</el-tag
+            >
+          </template>
         </avue-crud>
       </div>
     </el-dialog>
@@ -120,7 +135,7 @@
 </template>
 
 <script>
-import { getAll, getListliu } from "@/api/client/client";
+import { getListliu, getListliuc } from "@/api/client/client";
 import {
   getList,
   getDetail,
@@ -159,9 +174,10 @@
       datasourceBox: false,
       dialogVisible: false, //右侧弹窗
       onceData: {}, //数据
-      datas: "", //cc
+      datas: [], //cc
       loadings: true, //等待
       querys: {}, //搜索
+      isEdit:false,
       pages: {
         pageSize: 10,
         currentPage: 1,
@@ -173,6 +189,7 @@
         height: "auto",
         indexLabel: "序号",
         index: true,
+        card: true,
         menu: false,
         header: false,
         searchShow: true,
@@ -209,46 +226,21 @@
             prop: "deviceNumber",
             width: 110,
           },
-          // {
-          //   label: "使用方",
-          //   search: true,
-          //   // searchValue: this.getAnimalType(),
-          //   prop: "deptId",
-          //   width: 200,
-          //   type: "select",
-          //   dicUrl: "/api/blade-system/dept/trees",
-          //   dicData: [], //getUser中直接赋值
-          //   // [
-          //   //   {
-          //   //     label: "正常",
-          //   //     value: 0
-          //   //   },
-          //   //   {
-          //   //     label: "异常",
-          //   //     value: 1
-          //   //   }
-          //   // ],
-          // },
           {
-              label: "使用方",
-              prop: "deptId",
-              width: 200,
-              type: "tree",
-              dicUrl: "/api/blade-system/dept/trees",
-              multiple: true,
-              dicData: [],
-              checkStrictly:true,
-              props: {
-                label: "title"
-              },
-              rules: [
-                {
-                  required: true,
-                  message: "请选择使用方",
-                  trigger: "click"
-                }
-              ]
-            },
+            label: "使用方",
+            prop: "pid",
+            width: 200,
+            search: true,
+            hide: true,
+            type: "select",
+            // dicUrl: "/api/blade-system/dept/trees",
+            dicData: [], //getUser中直接赋值
+          },
+          {
+            label: "使用方",
+            prop: "deptName",
+            width: 200,
+          },
           {
             label: "布撤防状态",
             prop: "stateSevicestate",
@@ -258,6 +250,8 @@
             label: "设备状态",
             prop: "states",
             width: 90,
+            slot: true,
+            // className: "cityClass1",
           },
         ],
       },
@@ -384,30 +378,30 @@
             labelWidth: "0",
             className: "cityClass3",
           },
-           {
-              label: "地址",
-              prop: "address",
-              span:10,
-              // labelWidth: '60',
-              hide: true,
-            },
-            {
-              label: null,
-              prop: "map",
-              labelWidth: "0",
-              searchSpan:0,
-              maxlength:0,
-              hide: true,
-              span: 2,
-              // display:false,
-              component: "AvueMap"
-            },
+          {
+            label: "地址",
+            prop: "address",
+            span: 10,
+            // labelWidth: '60',
+            hide: true,
+          },
+          {
+            label: null,
+            prop: "map",
+            labelWidth: "0",
+            searchSpan: 0,
+            maxlength: 0,
+            hide: true,
+            span: 2,
+            // display:false,
+            component: "AvueMap",
+          },
           {
             label: "纬度",
             hide: true,
             addDisplay: false,
             prop: "wd",
-            span:6
+            span: 6,
           },
           {
             label: "经度",
@@ -415,7 +409,7 @@
             hide: true,
             addDisplay: false,
             prop: "jd",
-            span:5
+            span: 5,
           },
           {
             label: "账号额度",
@@ -734,22 +728,34 @@
       // form是表单或者表格绑定的数据集,v-model='form'
       handler(val) {
         if (val) {
-          getDetail(this.form.id).then((res) => {
-            this.form = res.data.data;
-          })
-          this.form.wd = val.latitude;
-          this.form.jd = val.longitude;
+          if(that.isEdit){
+            getDetail(this.form.id).then((res) => {
+              this.form = res.data.data;
+              this.form.wd = val.latitude;
+              this.form.jd = val.longitude;
+            });
+          }
           //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
           var address = val.formattedAddress.toString();
-          if(address.search("县") != -1){
-              this.form.address = address.substring(address.indexOf("县")+1,address.length);
+          if (address.search("县") != -1) {
+            this.form.address = address.substring(
+              address.indexOf("县") + 1,
+              address.length
+            );
           }
-          if(address.search("区") != -1){
-            this.form.address = address.substring(address.indexOf("区")+1,address.length);
+          if (address.search("区") != -1) {
+            this.form.address = address.substring(
+              address.indexOf("区") + 1,
+              address.length
+            );
           }
           //写入新的省市区
           that.form.province = val.addressComponent.province;
-          that.form.city = val.addressComponent.city;
+          if (val.addressComponent.city == "") {
+            that.form.city = val.addressComponent.province;
+          } else {
+            that.form.city = val.addressComponent.city;
+          }
           that.form.district = val.addressComponent.district;
         }
       },
@@ -899,6 +905,7 @@
     },
     beforeOpen(done, type) {
       if (["edit"].includes(type)) {
+        that.isEdit=true;
         getDetail(this.form.id).then((res) => {
           if (this.form.type == "1") {
             const data = res.data.data;
@@ -990,6 +997,10 @@
             });
           }
         });
+      }
+
+      if (["edit"].includes(type)) {
+        that.isEdit=false;        
       }
       done();
     },
@@ -1139,6 +1150,7 @@
     },
     changeDataOpen(dat) {
       //处理弹出框数据
+      console.log(dat);
       if (dat.length > 0) {
         for (var key in dat) {
           let states;
@@ -1166,21 +1178,29 @@
         }
       }
     },
+    getMout(fid) {
+      getListliuc(fid).then((res) => {
+        // console.log(res.data.data);
+        this.getUser(res.data.data);
+      });
+    },
     getUser(dat) {
       //建立使用方搜索关键词
+      // console.log(dat);
       if (dat.length > 0) {
         this.users = [];
-        var a = null;
         for (var key in dat) {
-          if (a != dat[key].ownership) {
-            this.users.push({
-              label: dat[key].ownership,
-              value: dat[key].ownership,
-            });
-          }
-          a = dat[key].ownership;
+          this.users.push({
+            label: dat[key].title,
+            value: dat[key].id,
+          });
         }
       }
+      // this.users.push([
+      //   {
+
+      //   }
+      // ])
       this.options.column[2].dicData = this.users;
     },
     searchResets() {
@@ -1208,40 +1228,38 @@
     onLoads(pages, params = {}) {
       // this.$message.success("分页信息:" + JSON.stringify(pages));
       // this.pages.total = 40;
+      // console.log(1)
       this.loadings = true;
+      //  console.log(2)
       let values = {
         ...params,
       };
+      // console.log(3)
       // getListliu(1, 10, {}, val.id).then((res) => {
       var useId = this.onceData.deptId;
+      // console.log(4)
       getListliu(pages.currentPage, pages.pageSize, values, useId).then(
         (res) => {
+          // console.log(5)
+          // console.log(pages.currentPage, pages.pageSize, values, useId,332332)
+          // console.log(this.datas);
           // getListliu('1', '10', {}, '1353972967828533249').then((res) => {
           //拿到数据
           this.datas = res.data.data.records;
-          console.log(res);
-          console.log(pages.currentPage);
-          console.log(pages.pageSize);
-          console.log(values);
-          console.log(this.onceData);
+          // console.log(this.datas);
+          // console.log(pages.currentPage);
+          // console.log(pages.pageSize);
+          // console.log(this.onceData);
           const data = res.data.data;
           this.pages.total = data.total;
           this.changeDataOpen(this.datas);
-          this.getUser(this.datas);
+          this.getMout(this.onceData.deptId);
           this.loadings = false;
         }
       );
     },
   },
-  mounted() {
-    // getAll().then((res) => {
-    //   //测试数据
-    //   this.datas = res.data.data;
-    //   this.changeDataOpen(this.datas);
-    //   this.getUser(this.datas)
-    //   console.log(this.datas);
-    // });
-  },
+  mounted() {},
 };
 </script>
 
@@ -1368,10 +1386,10 @@
 
   .el-dialog {
     margin: 0 auto !important;
-    height: 98%;
+    height: 100%;
     overflow: hidden;
     position: fixed;
-    top: 1%;
+    top: 0;
     right: 0;
     .el-dialog__body {
       position: absolute;
@@ -1412,4 +1430,24 @@
     overflow: auto;
   }
 }
+.diaoxianl {
+  border: 1px solid #fff;
+  color: #fff;
+  background-color: #cdcdcd;
+}
+.zaixianl {
+  border: 1px solid #fff;
+  color: #fff;
+  background-color: #32c1a2;
+}
+.guzhagnl {
+  border: 1px solid #fff;
+  color: #fff;
+  background-color: #f49966;
+}
+.baojinl {
+  border: 1px solid #fff;
+  color: #fff;
+  background-color: #f35b5b;
+}
 </style>

--
Gitblit v1.9.3