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/desktop/index/components/ToolsEntry.vue |   96 +++++++++++++++++++++++++----------------------
 1 files changed, 51 insertions(+), 45 deletions(-)

diff --git a/src/pages/desktop/index/components/ToolsEntry.vue b/src/pages/desktop/index/components/ToolsEntry.vue
index 6d329c8..6c84eb8 100644
--- a/src/pages/desktop/index/components/ToolsEntry.vue
+++ b/src/pages/desktop/index/components/ToolsEntry.vue
@@ -1,7 +1,12 @@
 <template>
   <div class="tools-entry">
     <div class="entry-wrap">
-      <el-carousel :height="rowSize==3?'600px':'770px'" :autoplay="false" arrow="never" :indicator-position="carousels.length==1?'none':''">
+      <el-carousel
+        :height="rowSize==3?'600px':'770px'"
+        :autoplay="false"
+        arrow="never"
+        :indicator-position="carousels.length==1?'none':''"
+      >
         <el-carousel-item v-for="(carousel,index) in carousels" :key="index">
           <div class="app-list clearFix sdk-list">
             <!-- <draggable v-model="carousel" @start="drag=true" @end="drag=false"> -->
@@ -23,33 +28,12 @@
                   <div class="app-icon">
                     <img
                       :src="item.iconBlob.indexOf(',')>0? item.iconBlob:`data:image/png;base64,${item.iconBlob}`"
-                      style="width:82%"
                     />
                   </div>
                   <div class="app-name">{{item.sdk_name}}</div>
                 </div>
               </div>
             </div>
-            <!-- </draggable> -->
-            <!-- <div class="app" v-for="dock in stateDocks" :key="dock.id" @click="dockClick(dock)">
-              <div class="wrap">
-                <div class="app-icon">
-                  <img :src="dock.src" :alt="dock.alt" />
-                </div>
-                <div class="app-name">{{dock.title}}</div>
-              </div>
-            </div>
-            <div class="app sdk" v-for="(item,index) in sdkList" :key="index+'sdk'">
-              <div class="wrap">
-                <div class="app-icon">
-                  <img
-                    :src="item.iconBlob.indexOf(',')>0? item.iconBlob:`data:image/png;base64,${item.iconBlob}`"
-                    style="width:82%"
-                  />
-                </div>
-                <div class="app-name">{{item.sdk_name}}</div>
-              </div>
-            </div>-->
           </div>
         </el-carousel-item>
       </el-carousel>
@@ -64,11 +48,11 @@
 <script>
 import draggable from "vuedraggable"
 import { findAllSdk } from '@/api/taskMange';
-import {chunkArr} from '@/scripts/util';
+import { chunkArr } from '@/scripts/util';
+import bus from '@/plugin/bus'
 export default {
   name: 'toolsEntry',
-  components: { draggable },
-  data () {
+  data() {
     return {
       publicPath: process.env.BASE_URL,
       loading: true,
@@ -86,41 +70,41 @@
         }
       ],
       //rowSize: 3,
-      badgeNum: 0,
+      // badgeNum: 0,
     }
   },
   computed: {
-    stateDocks () {
+    stateDocks() {
       return this.$store.state.desktop.docks
     },
-    carousels () {
+    carousels() {
       let pages = 0;
       let tempArr = this.stateDocks.concat(this.installedSdk);
       let upgradeArr = tempArr.filter(item => item.isUpgrade);
-      this.badgeNum = upgradeArr.length;
       let arr = null;
       //鏍规嵁灞忓箷楂樺害鏉ュ垽鏂槸灞曠ず3鎺掕繕鏄�4鎺� 闃堝��:970
       if (window.innerHeight >= 930) {
         //this.rowSize = 4;
         arr = this.chunk(tempArr, 24);
-        //arr = chunkArr(tempArr,24);
       } else {
         //this.rowSize = 3;
         arr = this.chunk(tempArr, 18);
-        //arr = chunkArr(tempArr, 18);
       }
-      console.log(arr)
       return arr
     },
-    rowSize (){
+    badgeNum() {
+      let tempArr = this.stateDocks.concat(this.installedSdk);
+      return tempArr.filter(item => item.isUpgrade).length;
+    },
+    rowSize() {
       if (window.innerHeight >= 930) {
         return 4;
-      }else{
+      } else {
         return 3;
       }
     }
   },
-  mounted () {
+  mounted() {
     this.getAllSdk();
     //this.carousels = 
     window.addEventListener('message', e => {
@@ -131,18 +115,26 @@
           location.assign("/");
           return;
         }
-
-        // 鎵撳紑妫�绱�, toSearch?showType=findByPic&targetId=108ba0bc-b0a1-433d-8e1e-d5d2e712b53b&picSmUrl=192.168.20.10:6700/47628,7cc869f3a9c714&compType=1
         if (msg.indexOf("toSearch") >= 0) {
           let params = msg.substring(7);
           this.addFrameByName("search", params)
+        }
+        if (msg.indexOf("toCluster") >= 0) {
+          let params = msg.substring(8);
+          this.addFrameByName("searchForCluster", params)
+        }
+
+        if (msg.indexOf("toOpenApp") >= 0) {
+          let id = msg.substring(10);
+          console.log(id);
+          this.addFrameByID(id)
         }
       }
     });
 
   },
   methods: {
-    chunk (arr, size) {
+    chunk(arr, size) {
       size = Math.max(size, 0);
       const len = arr == null ? 0 : arr.length;
       if (!len || size < 1) {
@@ -156,18 +148,17 @@
       }
       return result
     },
-    getAllSdk () {
+    getAllSdk() {
       findAllSdk().then(res => {
         this.installedSdk = res.data.filter(item => item.installed)
       }).catch(e => {
         console.log(e)
       })
     },
-    dockClick (dock) {
+    dockClick(dock) {
       if (dock.type === '1') {
         window.open(dock.url);
       } else if (dock.type === '2' && !dock.isOpen) {
-
         this.$store.dispatch('desktop/addFrame', {
           id: dock.id,
           icon: dock.src,
@@ -192,8 +183,9 @@
       } else if (dock.type === '2' && dock.isOpen) {
         this.$store.commit('desktop/resetMinFrame', dock.id);
       }
+      
     },
-    resetDockItem () {
+    resetDockItem() {
       const dockItems = document.getElementsByClassName('dock-item');
       const dockMask = document.getElementsByClassName('dock-mask')[0];
       for (let i = 0; i < dockItems.length; i++) {
@@ -204,15 +196,13 @@
       }
       dockMask.style.width = dockItems.length * 60 + 40 + 'px';
     },
-    addFrameByName (name, params) {
-
+    addFrameByName(name, params) {
       let dock = null;
       this.$store.state.desktop.docks.forEach(app => {
         if (app.name === name) {
           dock = app;
         }
       });
-
       if (dock.isOpen) {
         this.$store.dispatch('desktop/closeFrame', dock);
       }
@@ -231,6 +221,19 @@
         url: dock.url,
         screenshot: ''
       });
+    },
+    addFrameByID(id, params) {
+      let dock = null;
+      let toClose = null
+      this.$store.state.desktop.docks.forEach(app => {
+        if (app.id == id) {
+          dock = app;
+        }
+        if (app.name == "algorithmManage") {
+          toClose = app
+        }
+      });
+      this.dockClick(dock)
     }
   }
 };
@@ -271,9 +274,12 @@
             height: 110px;
             margin: auto;
             position: relative;
+            border-radius: 10px;
             img {
               vertical-align: middle;
               margin-right: -3px;
+              width: 82px;
+              // height: 82px;
             }
             .badge {
               position: absolute;

--
Gitblit v1.8.0