From e37e45cfe1123928dba5d9c5a427b0ee497b7ad6 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 23 八月 2022 03:21:32 +0800
Subject: [PATCH] 修复算法配置的字段内容

---
 src/views/equipmentManagement/equipmentList/components/FormList.vue |  381 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 227 insertions(+), 154 deletions(-)

diff --git a/src/views/equipmentManagement/equipmentList/components/FormList.vue b/src/views/equipmentManagement/equipmentList/components/FormList.vue
index 01bd855..7bce9b9 100644
--- a/src/views/equipmentManagement/equipmentList/components/FormList.vue
+++ b/src/views/equipmentManagement/equipmentList/components/FormList.vue
@@ -23,12 +23,7 @@
         <div class="cluster">
           鎵�灞為泦缇�
           <el-select v-model="cluster" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in clusterArr"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+            <el-option v-for="item in clusterArr" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </div>
@@ -41,12 +36,8 @@
     </div>
 
     <div class="btns">
-      <div class="button add" @click="isShowAdd = true">
-        <span>+</span>娣诲姞璁惧
-      </div>
-      <div class="button export">
-        <span class="iconfont">&#xe614;</span>瀵煎嚭
-      </div>
+      <div class="button add" @click="isShowAdd = true"><span>+</span>娣诲姞璁惧</div>
+      <div class="button export" @click="exportFile"><span class="iconfont">&#xe614;</span>瀵煎嚭</div>
     </div>
 
     <div class="table-area">
@@ -59,28 +50,12 @@
         :default-sort="{ prop: 'createTime', order: 'descending' }"
         :stripe="true"
       >
-        <el-table-column label="搴忓彿" width="48" class-name="index">
-          <template slot-scope="scope">{{
-            scope.$index + 1 + (page - 1) * size
-          }}</template>
+        <el-table-column label="搴忓彿" width="80" class-name="index">
+          <template slot-scope="scope">{{ scope.$index + 1 + (page - 1) * size }}</template>
         </el-table-column>
-        <el-table-column
-          prop="devId"
-          label="璁惧ID"
-          min-width="180"
-          show-overflow-tooltip
-        ></el-table-column>
-        <el-table-column
-          prop="devName"
-          label="璁惧鍚嶇О"
-          min-width="140"
-          show-overflow-tooltip
-        ></el-table-column>
-        <el-table-column
-          prop="devIp"
-          label="IP鍦板潃"
-          min-width="150"
-        ></el-table-column>
+        <el-table-column prop="devId" label="璁惧ID" min-width="210" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="devName" label="璁惧鍚嶇О" min-width="140" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="devIp" label="IP鍦板潃" min-width="150"></el-table-column>
         <el-table-column label="瀹夎鏃堕棿" min-width="159">
           <template slot-scope="scope">
             <div v-if="scope.row.installTime.length > 1">
@@ -90,7 +65,7 @@
             <div v-else>--</div>
           </template>
         </el-table-column>
-        <el-table-column label="棣栨浣跨敤鏃堕棿" min-width="159">
+        <!-- <el-table-column label="棣栨浣跨敤鏃堕棿" min-width="159">
           <template slot-scope="scope">
             <div v-if="scope.row.firstUseTime.length > 1">
               <div>{{ scope.row.firstUseTime[0] }}</div>
@@ -98,10 +73,10 @@
             </div>
             <div v-else>--</div>
           </template>
-        </el-table-column>
+        </el-table-column> -->
 
         <el-table-column label="鎵�灞為泦缇�" show-overflow-tooltip min-width="154">
-          <template> -- </template>
+          <template slot-scope="scope"> {{ scope.row.clusterName }} </template>
         </el-table-column>
 
         <el-table-column label="鐘舵��" min-width="70">
@@ -114,28 +89,47 @@
         <el-table-column label="鎿嶄綔" min-width="180">
           <template slot-scope="scope">
             <!-- 鍔犲叆 -->
-            <span
-              class="iconfont option"
-              @click="joinCluster(scope.row)"
-              v-if="scope.row.clusterId"
-              >&#xe640;</span
-            >
+            <el-tooltip content="鍔犲叆闆嗙兢" placement="top" v-if="!scope.row.clusterId">
+              <span
+                class="iconfont option"
+                @click="joinCluster(scope.row)"
+                :class="{ disable: scope.row.isOnline != 1 }"
+                >&#xe640;</span
+              >
+            </el-tooltip>
             <!-- 閫�鍑� -->
-            <span class="iconfont option" @click="quitCluster(scope.row)" v-else
-              >&#xe63c;</span
-            >
+            <el-tooltip content="閫�鍑洪泦缇�" placement="top" v-else>
+              <span
+                class="iconfont option"
+                @click="quitCluster(scope.row)"
+                :class="{ disable: scope.row.isOnline != 1 }"
+                >&#xe63c;</span
+              >
+            </el-tooltip>
             <!-- 绠楁硶璇︽儏 -->
-            <span class="iconfont option" @click="algorithmDetail(scope.row)"
-              >&#xe621;</span
-            >
+            <el-tooltip content="搴旂敤璇︽儏" placement="top">
+              <span
+                class="iconfont option"
+                :class="{ disable: scope.row.isOnline != 1 }"
+                @click="algorithmDetail(scope.row)"
+                >&#xe621;</span
+              >
+            </el-tooltip>
             <!-- 璁惧璇︽儏 -->
-            <span class="iconfont option" @click="checkDetail(scope.row)"
-              >&#xe619;</span
-            >
+            <el-tooltip content="璁惧璇︽儏" placement="top">
+              <span
+                class="iconfont option"
+                :class="{ disable: scope.row.isOnline != 1 }"
+                @click="checkDetail(scope.row)"
+                >&#xe619;</span
+              >
+            </el-tooltip>
             <!-- 瑙g粦 -->
-            <span class="iconfont option" @click="Untying(scope.row)"
-              >&#xe617;</span
-            >
+            <el-tooltip content="瑙i櫎缁戝畾" placement="top">
+              <span class="iconfont option" @click="Untying(scope.row)" :class="{ disable: scope.row.isOnline != 1 }"
+                >&#xe617;</span
+              >
+            </el-tooltip>
           </template>
         </el-table-column>
       </el-table>
@@ -154,54 +148,41 @@
     </div>
 
     <!-- 瑙g粦寮圭獥 -->
-    <UnbindBox
-      @close="closeUnbindBox"
-      v-if="isShowUnbind"
-      :id="unbindId"
-      @reflash="reflash"
-    ></UnbindBox>
+    <UnbindBox @close="closeUnbindBox" v-if="isShowUnbind" :id="unbindId" @reflash="reflash"></UnbindBox>
 
     <!-- 娣诲姞璁惧寮圭獥 -->
     <AddBox @close="closeAddBox" v-if="isShowAdd"></AddBox>
 
     <!-- 閫�鍑洪泦缇ゅ脊绐� -->
-    <QuitClusterBox
-      :equipment="activeEquipment"
-      v-if="showQuit"
-      @close="showQuit = false"
-    ></QuitClusterBox>
+    <QuitClusterBox :equipment="activeEquipment" v-if="showQuit" @close="showQuit = false"></QuitClusterBox>
 
     <!-- 鍔犲叆闆嗙兢寮圭獥 -->
-    <JoinClusterBox
-      :equipment="activeEquipment"
-      v-if="showJoin"
-      @close="showJoin = false"
-    ></JoinClusterBox>
+    <JoinClusterBox :equipment="activeEquipment" v-if="showJoin" @close="showJoin = false"></JoinClusterBox>
   </div>
 </template>
 
 <script>
-import { findDevList, findClustersBySearch } from "@/api/device";
-import AddBox from "@/views/equipmentManagement/equipmentList/components/AddBox";
-import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox";
-import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox";
-import JoinClusterBox from "@/views/equipmentManagement/equipmentList/components/JoinClusterBox";
+import { findDevList, findClustersBySearch, exportDevListExcel } from "@/api/device"
+import AddBox from "@/views/equipmentManagement/equipmentList/components/AddBox"
+import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox"
+import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox"
+import JoinClusterBox from "@/views/equipmentManagement/equipmentList/components/JoinClusterBox"
+
+import bus from "@/plugin/bus"
+
 export default {
   components: {
     AddBox,
     UnbindBox,
     QuitClusterBox,
-    JoinClusterBox,
+    JoinClusterBox
   },
   created() {
-    this.getCluster();
+    this.getCluster()
   },
   data() {
     return {
-      searchTime: [
-        this.$moment().format("YYYY-MM-DD 00:00:00"),
-        this.$moment().format("YYYY-MM-DD HH:mm:ss"),
-      ], //鎼滅储鏃堕棿
+      searchTime: [], //鎼滅储鏃堕棿
       page: 1,
       size: 10, //鍒嗛〉鐩稿叧
       inputText: "", //杈撳叆妗嗗唴瀹�
@@ -214,8 +195,8 @@
       cluster: null, //閫変腑鐨勯泦缇ょ被鍨�
       showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
       showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
-      activeEquipment: null, //澶勭悊涓殑璁惧
-    };
+      activeEquipment: null //澶勭悊涓殑璁惧
+    }
   },
   methods: {
     async getCluster() {
@@ -223,140 +204,212 @@
         InputText: "",
         Page: 1,
         Size: 10000,
-        userId: JSON.parse(sessionStorage.getItem("userInfo")).id,
-      });
+        userId: JSON.parse(sessionStorage.getItem("userInfo")).id
+      })
       if (res && res.success) {
         res.data.list.forEach((item) => {
           this.clusterArr.push({
             label: item.clusterName,
-            value: item.clusterId,
-          });
-        });
+            value: item.clusterId
+          })
+        })
       }
     },
 
     // 璺冲埌璁惧璇︽儏
     checkDetail(row) {
+      if (row.isOnline != 1) {
+        return
+      }
       this.$router.push({
         path: "/equipmentDetail",
         query: {
-          id: row.devId,
-        },
-      });
+          id: row.devId
+        }
+      })
     },
 
     // 璺冲埌绠楁硶璇︽儏
     algorithmDetail(row) {
+      if (row.isOnline != 1) {
+        return
+      }
       this.$router.push({
         path: "/algorithmDetail",
         query: {
-          id: row.devId,
-        },
-      });
+          id: row.devId
+        }
+      })
     },
 
     // 鏌ヨ鍒楄〃
     searchingBtn() {
-      let param = {
-        page: this.page,
-        size: this.size,
-        startTime: this.searchTime[0],
-        endTime: this.searchTime[1],
-        clusterId: this.cluster,
-        inputText: this.inputText,
-      };
+      let param = {}
+
+      if (!this.searchTime) {
+        param = {
+          page: this.page,
+          size: this.size,
+          startTime: "",
+          endTime: "",
+          clusterId: this.cluster,
+          inputText: this.inputText
+        }
+      } else {
+        param = {
+          page: this.page,
+          size: this.size,
+          startTime: this.searchTime[0],
+          endTime: this.searchTime[1],
+          clusterId: this.cluster,
+          inputText: this.inputText
+        }
+      }
+
       findDevList(param)
         .then((res) => {
-          this.dataList = res.data.list;
+          this.dataList = res.data.list
           //鏃堕棿鍒嗚鏄剧ず
           this.dataList.forEach((item) => {
-            item.installTime = item.installTime.split(" ");
-            item.firstUseTime = item.firstUseTime.split(" ");
-          });
-          this.total = res.data.total;
+            item.installTime = item.installTime.split(" ")
+            item.firstUseTime = item.firstUseTime.split(" ")
+          })
+          this.total = res.data.total
           if (res.data.total <= this.size) {
-            this.page = 1;
+            this.page = 1
           }
+
+          bus.$emit("refleshNode", this.dataList)
         })
         .catch((err) => {
-          console.log(err);
-        });
+          console.log(err)
+        })
     },
 
     //鍒嗛〉鍔熻兘
     handleSizeChange(size) {
-      this.size = size;
-      this.searchingBtn();
+      this.size = size
+      this.searchingBtn()
     },
     //鍒嗛〉鍔熻兘
     refrash(page) {
-      this.page = page;
-      this.searchingBtn();
+      this.page = page
+      this.searchingBtn()
     },
 
     //瑙g粦鎸夐挳
     Untying(row) {
-      console.log(row);
-      this.unbindId = row.devId;
-      this.isShowUnbind = true;
+      if (row.isOnline != 1) {
+        return
+      }
+      this.unbindId = row.devId
+      this.isShowUnbind = true
     },
 
     //鑾峰緱榛樿鏃堕棿
     getDateInit() {
       // 瑕佹眰 榛樿涓�涓湀
-      const end = new Date();
-      const start = new Date();
-      const nowDate = new Date();
-      nowDate.setHours(0);
-      nowDate.setMinutes(0);
-      nowDate.setSeconds(0);
-      nowDate.setMilliseconds(0);
-      start.setTime(nowDate.getTime() - 3600 * 1000 * 24 * 30);
-      end.setTime(nowDate.getTime() + 3600 * 1000 * 24 - 1);
-      return [
-        this.$moment(start).format("YYYY-MM-DD HH:mm:ss"),
-        this.$moment(end).format("YYYY-MM-DD HH:mm:ss"),
-      ];
+      const end = new Date()
+      const start = new Date()
+      const nowDate = new Date()
+      nowDate.setHours(0)
+      nowDate.setMinutes(0)
+      nowDate.setSeconds(0)
+      nowDate.setMilliseconds(0)
+      start.setTime(nowDate.getTime() - 3600 * 1000 * 24 * 30)
+      end.setTime(nowDate.getTime() + 3600 * 1000 * 24 - 1)
+      return [this.$moment(start).format("YYYY-MM-DD HH:mm:ss"), this.$moment(end).format("YYYY-MM-DD HH:mm:ss")]
     },
 
     //鍏抽棴鏂板寮圭獥
     closeAddBox() {
-      this.isShowAdd = false;
+      this.isShowAdd = false
+      this.searchingBtn()
     },
     // 鍏抽棴瑙g粦寮圭獥
     closeUnbindBox() {
-      this.isShowUnbind = false;
+      this.isShowUnbind = false
     },
 
     //瑙g粦鎴愬姛鍥炶皟
     reflash() {
-      this.isShowUnbind = false;
-      this.searchingBtn();
+      this.isShowUnbind = false
+      this.searchingBtn()
     },
 
     clearSearch() {
-      this.searchTime = this.getDateInit();
-      this.inputText = "";
-      this.searchingBtn();
+      this.searchTime = this.getDateInit()
+      this.inputText = ""
+      this.cluster = ""
+      this.searchingBtn()
     },
 
     //閫�鍑洪泦缇�
     quitCluster(equipment) {
-      this.activeEquipment = equipment;
-      this.showQuit = true;
+      if (equipment.isOnline != 1) {
+        return
+      }
+      this.activeEquipment = equipment
+      this.showQuit = true
     },
 
     //鍔犲叆闆嗙兢
     joinCluster(equipment) {
-      this.activeEquipment = equipment;
-      this.showJoin = true;
+      if (equipment.isOnline != 1) {
+        return
+      }
+      this.activeEquipment = equipment
+      this.showJoin = true
     },
+
+    //瀵煎嚭鍒楄〃鏂囦欢
+    async exportFile() {
+      let param = {}
+
+      if (!this.searchTime) {
+        param = {
+          page: this.page,
+          size: this.size,
+          startTime: "",
+          endTime: "",
+          clusterId: this.cluster,
+          inputText: this.inputText
+        }
+      } else {
+        param = {
+          page: this.page,
+          size: this.size,
+          startTime: this.searchTime[0],
+          endTime: this.searchTime[1],
+          clusterId: this.cluster,
+          inputText: this.inputText
+        }
+      }
+      const result = await exportDevListExcel(param)
+
+      var blob = new Blob([result.body.data], {
+          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
+        }),
+        Temp = document.createElement("a")
+
+      Temp.href = window.URL.createObjectURL(blob)
+      Temp.download = window.decodeURI(result.fileName)
+
+      Temp.setAttribute("download", result.fileName)
+
+      document.body.appendChild(Temp)
+
+      Temp.click()
+
+      document.body.removeChild(Temp)
+
+      window.URL.revokeObjectURL(Temp)
+    }
   },
   mounted() {
-    this.searchTime = this.getDateInit();
-    this.searchingBtn();
-  },
-};
+    this.searchingBtn()
+  }
+}
 </script>
 
 <style scoped lang="scss">
@@ -364,9 +417,10 @@
   .search {
     display: flex;
     justify-content: space-between;
-    padding: 60px 0 30px 0;
+    padding: 20px 0 30px 0;
     font-size: 14px;
     border-bottom: 1px solid #e9ebee;
+    background-color: #fff;
 
     .left,
     .right,
@@ -379,7 +433,7 @@
 
     .cluster {
       .el-select {
-        width: 200px;
+        width: 190px;
         height: 40px;
         line-height: 40px;
 
@@ -420,7 +474,7 @@
     }
 
     .el-input ::v-deep {
-      width: 280px;
+      width: 270px;
       height: 40px;
       margin-left: 10px;
       margin-right: 20px;
@@ -438,7 +492,7 @@
     }
 
     .el-date-editor {
-      width: 318px;
+      width: 340px;
       height: 40px;
       margin-left: 10px;
       margin-right: 20px;
@@ -454,7 +508,7 @@
     }
 
     .searchBtn {
-      width: 120px;
+      width: 110px;
       height: 40px;
       line-height: 40px;
       text-align: center;
@@ -464,13 +518,17 @@
     }
 
     .resetBtn {
-      width: 120px;
+      width: 110px;
       height: 40px;
       line-height: 40px;
       text-align: center;
       color: #0065ff;
       border: 1px solid #0065ff;
     }
+  }
+
+  .table-area {
+    min-height: 600px;
   }
 
   .btns {
@@ -557,12 +615,17 @@
       font-size: 24px;
       color: rgb(0, 101, 255);
       cursor: pointer;
+
+      &.disable {
+        color: #666;
+        cursor: default;
+      }
     }
   }
 
   .el-pagination ::v-deep {
     margin-top: 30px;
-    text-align: center;
+    text-align: right;
     height: 24px;
     .el-pagination__sizes {
       margin-right: 0;
@@ -596,11 +659,21 @@
         border-color: #0065ff;
       }
     }
+
+    .el-pagination__jump {
+      margin-left: 12px;
+      .el-pagination__editor {
+        width: 37px;
+        input {
+          width: 32px;
+        }
+      }
+    }
   }
 }
 </style>
 
-<style >
+<style>
 .el-date-table td.start-date span,
 .el-date-table td.end-date span {
   background-color: #0065ff;
@@ -615,4 +688,4 @@
   color: #0065ff;
   border-color: #0065ff;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0