zhangzengfei
2020-08-05 4c3e08670a6a98deea9984c7090994e8e47d3339
src/pages/desktop/index/components/ToolsEntry.vue
@@ -12,7 +12,7 @@
            <div class="app-icon">
              <img :src="dock.src" :alt="dock.alt" />
            </div>
            <div class="app-name">{{dock.name}}</div>
            <div class="app-name">{{dock.title}}</div>
          </div>
        </div>
      </div>
@@ -28,16 +28,33 @@
      publicPath: process.env.BASE_URL,
    }
  },
  mounted() {
    window.addEventListener('message', e => {
      if (e.data && e.data.msg) {
        let msg = e.data.msg;
        // token 不合法, 退出
        if (msg === "logout") {
          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)
        }
      }
    })
  },
  methods: {
    dockClick(dock) {
      debugger
      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,
          title: dock.name,
          title: dock.title,
          url: dock.url
        });
        debugger
@@ -63,6 +80,24 @@
      }
      dockMask.style.width = dockItems.length * 60 + 40 + 'px';
    },
    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);
      }
      this.$store.dispatch('desktop/addFrame', {
        id: dock.id,
        icon: dock.src,
        title: dock.title,
        url: dock.url + "?" + params
      });
    }
  }
};
</script>