From fa7044f3ccc9a91bc2bc117d1a06f650d86554f2 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期二, 15 六月 2021 16:07:16 +0800
Subject: [PATCH] 优化联动规则加载场景列表的操作

---
 src/pages/areaManage/index/App.vue |   87 +++++++++++++++++++++----------------------
 1 files changed, 43 insertions(+), 44 deletions(-)

diff --git a/src/pages/areaManage/index/App.vue b/src/pages/areaManage/index/App.vue
index c7e1025..ff52c59 100644
--- a/src/pages/areaManage/index/App.vue
+++ b/src/pages/areaManage/index/App.vue
@@ -1,12 +1,12 @@
 <template>
-  <div>
+  <div class="areas">
     <div class="top-operation">
       <el-button type="primary" size="small" @click="createArea">鏂板鍖哄煙</el-button>
     </div>
-    <el-table :data="groups" border>
+    <el-table :data="groups" border height="calc(100% - 100px)">
       <el-table-column type="index" width="50" label="搴忓彿" align="center"></el-table-column>
-      <el-table-column prop="name" label="鍖哄煙鍚嶇О" align="center"></el-table-column>
-      <el-table-column prop="id" label="鍖哄煙ID" align="center"></el-table-column>
+      <el-table-column prop="name" label="鍖哄煙鍚嶇О" align="center" sortable></el-table-column>
+      <el-table-column prop="id" label="鍖哄煙ID" align="center" sortable></el-table-column>
       <el-table-column prop="desc" label="鎻忚堪" align="center"></el-table-column>
       <el-table-column width="100" label="鎿嶄綔" align="center">
         <template slot-scope="scope">
@@ -33,7 +33,7 @@
           </el-form-item>
         </div>
         <div class="checklist">
-          <el-form-item>
+          <el-form-item style="margin-right:0">
             <!-- <el-transfer v-model="checkedData" :props="{key:'model',label:'label'}" :titles="['鍏ㄩ儴鍖哄煙', '閫変腑鍖哄煙']" :button-texts="['宸︾Щ','鍙崇Щ']" filterable @change="handleChange" :data="areaData"></el-transfer> -->
             <el-transfer
               v-model="checkedData"
@@ -58,7 +58,7 @@
 import { guid } from '@/scripts/util.js'
 import { findAllPolygons, getAllAreas, saveAreaInfo, delArea } from '@/api/camera'
 export default {
-  data () {
+  data() {
     return {
       isEdit: false,
       groups: [],
@@ -98,20 +98,19 @@
       checkedData: []
     }
   },
-  mounted () {
+  mounted() {
     this.renderTable();
     this.getAllPolygons();
   },
   methods: {
-    renderTable () {
+    renderTable() {
       getAllAreas().then(res => {
         if (res.code == 200) {
-          debugger
           this.groups = res.data
         }
       })
     },
-    getAllPolygons () {
+    getAllPolygons() {
       findAllPolygons().then(res => {
         if (res.code == 200) {
           this.areaData = res.data.map(item => {
@@ -128,16 +127,15 @@
         }
       });
     },
-    edit (row) {
+    edit(row) {
       this.isEdit = true;
       this.dialogFormVisible = true;
       this.areaForm = row;
-      debugger
       //鍥炴樉绌挎妗�
       let _this = this;
+      _this.checkedData = [];
       row.camPolygons.forEach(camPolygon => {
         camPolygon.pgns.forEach(polygon => {
-          debugger
           let symbol = camPolygon.cameraId + '&' + polygon.polygonId
           // let checkedItem = {};
           // checkedItem.cameraId = camPolygon.cameraId;
@@ -149,16 +147,17 @@
       });
       console.log(this.checkedData)
     },
-    createArea () {
+    createArea() {
       this.isEdit = false;
       this.dialogFormVisible = true;
+      this.areaForm = JSON.parse(JSON.stringify(this.areaForm));
       this.areaForm.name = '';
       this.areaForm.id = '';
       this.areaForm.desc = '';
       this.areaForm.camPolygons = [];
       this.checkedData = [];
     },
-    removeItem (id) {
+    removeItem(id) {
       this.$confirm('纭畾鍒犻櫎璇ラ」鍚�?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
@@ -177,38 +176,33 @@
 
       });
     },
-    getIdCode () {
+    getIdCode() {
       this.areaForm.id = guid();
     },
-    handleChange (value, direction, movedKeys) {
+    handleChange(value, direction, movedKeys) {
       console.log(value, direction, movedKeys);
 
     },
-    save () {
-      // this.checkedData.forEach(item=>{
-      //   let node = JSON.parse(item);
-      //   this.camPolygon.cameraId = node.cameraId;
-      //   this.camPolygon.cameraName = node.cameraName;
-      //   this.pgn.polygonId = node.polygonId;
-      //   this.pgn.polygonName = node.polygonName;
-      //   this.camPolygon.pgns.push(this.pgn);
-      //   this.areaForm.camPolygons.push(this.camPolygon);
-      //   let _this = this;
-      //   saveAreaInfo(this.areaForm).then(res=>{
-      //     if(res.code==200){
-      //       _this.$notify({
-      //         type:'success',
-      //         message:'淇濆瓨鎴愬姛!'
-      //       });
-      //       _this.dialogFormVisible = false;
-      //       _this.getAllAreas();
-      //     }
-      //   })
-      // });
+    save() {
+      if (this.areaForm.id === "") {
+        this.$notify({
+          type: 'error',
+          message: '鍖哄煙ID涓嶈兘涓虹┖'
+        });
+
+        return;
+      }
+      let sameOne = this.groups.findIndex(item => item.id == this.areaForm.id);
+      if(sameOne>=0){
+        this.$notify({
+          type: 'error',
+          message: '鍖哄煙ID涓嶈兘閲嶅'
+        });
+        return;
+      }
       let tempArr = [];
       let tempIdArr = [];
       this.areaForm.camPolygons = [];
-      debugger
       this.checkedData.forEach(item => {
         let tempCameraItem = { pgns: [] };
         let cameraId = item.split('&')[0];
@@ -239,7 +233,6 @@
       })
       let _this = this;
       console.log(this.areaForm);
-      debugger
       saveAreaInfo(this.areaForm).then(res => {
         if (res.code == 200) {
           _this.$notify({
@@ -262,6 +255,10 @@
 }
 .red {
   color: rgb(255, 94, 0);
+}
+.areas{
+  width: 100%;
+  height: calc(100% - 60px);
 }
 .top-operation {
   padding: 30px 30px 20px;
@@ -289,7 +286,6 @@
 }
 .el-form-item {
   display: flex;
-  margin-right: 40px;
 }
 .el-form-item label {
   font-weight: bold;
@@ -324,10 +320,10 @@
   border-color: #9eb4f0 !important;
 }
 /deep/.el-dialog {
-  min-width: 764px;
+  min-width: 940px;
 }
 /deep/.el-textarea__inner {
-  width: 566px;
+  width: 763px;
   height: 60px;
 }
 /deep/.el-transfer-panel__item.el-checkbox .el-checkbox__label {
@@ -336,7 +332,7 @@
 /deep/.el-transfer-panel__item.el-checkbox .el-checkbox__label {
   overflow: visible;
 }
-/deep/.el-transfer-panel__item.el-checkbox .el-checkbox__label span{
+/deep/.el-transfer-panel__item.el-checkbox .el-checkbox__label span {
   font-size: 12px !important;
   padding-right: 20px;
 }
@@ -346,4 +342,7 @@
   .el-checkbox__label {
   font-size: 14px !important;
 }
+/deep/.el-transfer-panel {
+  width: 300px;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0