zhangzengfei
2023-09-06 c0c034b3ef0fdf0fd9c802d5984dbd717db6817a
src/pages/desktop/index/components/ToolsEntry.vue
@@ -45,9 +45,9 @@
</template>
<script>
import draggable from "vuedraggable";
import { findAllSdk } from "@/api/taskMange";
import bus from "@/plugin/bus";
import draggable from "vuedraggable"
import { findAllSdk } from "@/api/taskMange"
import bus from "@/plugin/bus"
export default {
  name: "toolsEntry",
  data() {
@@ -67,131 +67,133 @@
      // ],
      //rowSize: 3,
      // badgeNum: 0,
    };
    }
  },
  computed: {
    stateDocks() {
      return this.$store.state.desktop.docks;
      console.log("carousels", this.$store.state.desktop.docks)
      return this.$store.state.desktop.docks
    },
    carousels() {
      let pages = 0;
      let tempArr = this.stateDocks.concat(this.installedSdk);
      let upgradeArr = tempArr.filter((item) => item.isUpgrade);
      let arr = null;
      let pages = 0
      let tempArr = this.stateDocks.concat(this.installedSdk)
      let upgradeArr = tempArr.filter((item) => item.isUpgrade)
      let arr = null
      //根据屏幕高度来判断是展示3排还是4排 阈值:970
      if (window.innerHeight >= 930) {
        //this.rowSize = 4;
        arr = this.chunk(tempArr, 24);
        arr = this.chunk(tempArr, 24)
      } else {
        //this.rowSize = 3;
        arr = this.chunk(tempArr, 18);
        arr = this.chunk(tempArr, 18)
      }
      return arr;
      return arr
    },
    badgeNum() {
      let tempArr = this.stateDocks.concat(this.installedSdk);
      return tempArr.filter((item) => item.isUpgrade).length;
      let tempArr = this.stateDocks.concat(this.installedSdk)
      return tempArr.filter((item) => item.isUpgrade).length
    },
    rowSize() {
      if (window.innerHeight >= 930) {
        return 4;
        return 4
      } else {
        return 3;
        return 3
      }
    }
  },
  mounted() {
    this.getAllSdk();
    let _this = this;
    this.getAllSdk()
    let _this = this
    window.addEventListener("message", (e) => {
      if (e.data && e.data.msg) {
        let msg = e.data.msg;
        let msg = e.data.msg
        if (msg === "logout") {
          location.assign("/");
          return;
          location.assign("/")
          return
        }
        if (msg.indexOf("toSearch") >= 0) {
          let params = msg.substring(7);
          this.addFrameByName("search", params);
          let params = msg.substring(7)
          this.addFrameByName("search", params)
        }
        if (msg.indexOf("toCluster") >= 0) {
          let params = msg.substring(8);
          this.addFrameByName("searchForCluster", params);
          let params = msg.substring(8)
          this.addFrameByName("searchForCluster", params)
        }
        if (msg.indexOf("toSetting") > -1) {
          const str = msg.split("?")[1];
          this.addFrameByName("settings", str);
          const str = msg.split("?")[1]
          this.addFrameByName("settings", str)
        }
        if (msg.indexOf("toVindicate") > -1) {
          const str = msg.split("?")[1];
          this.addFrameByName("vindicate", str);
          const str = msg.split("?")[1]
          this.addFrameByName("vindicate", str)
        }
        if (msg.indexOf("toAI") > -1) {
          const str = msg.split("?")[1];
          this.addFrameByName("algorithmManage", str);
          const str = msg.split("?")[1]
          this.addFrameByName("algorithmManage", str)
        }
        if (msg.indexOf("toOpenApp") >= 0) {
          let id = msg.substring(10);
          this.addFrameByID(id);
          let id = msg.substring(10)
          this.addFrameByID(id)
        }
        if (msg.indexOf("changeBackground") > -1) {
          const name = e.data.msg.split("?")[1];
          _this.$emit("changeBackground", `/images/desktop/${name}.png`);
          const name = e.data.msg.split("?")[1]
          _this.$emit("changeBackground", `/images/desktop/${name}.png`)
        }
        if (msg == "AppUpdate") {
          this.getAllSdk();
          this.getAllSdk()
        }
      }
    });
    })
  },
  methods: {
    chunk(arr, size) {
      size = Math.max(size, 0);
      const len = arr == null ? 0 : arr.length;
      size = Math.max(size, 0)
      const len = arr == null ? 0 : arr.length
      if (!len || size < 1) {
        return [];
        return []
      }
      let index = 0;
      let resIndex = 0;
      const result = new Array(Math.ceil(len / size));
      let index = 0
      let resIndex = 0
      const result = new Array(Math.ceil(len / size))
      while (index < len) {
        result[resIndex++] = arr.slice(index, (index += size));
        result[resIndex++] = arr.slice(index, (index += size))
      }
      return result;
      return result
    },
    onJumpToDock(name) {
      let togo;
      let togo
      this.carousels.forEach((arr) => {
        arr.forEach((x) => {
          if (x.title == name) {
            togo = x;
            togo = x
          }
        });
      });
      this.dockClick(togo);
        })
      })
      this.dockClick(togo)
    },
    getAllSdk() {
      findAllSdk()
        .then((res) => {
          this.installedSdk = res.data.filter((item) => item.installed);
          this.installedSdk = res.data.filter((item) => item.installed)
        })
        .catch((e) => {
          console.log(e);
        });
          console.log(e)
        })
    },
    dockClick(dock) {
      if (dock.type === "1") {
        window.open(dock.url);
        window.open(dock.url)
      } else if (dock.type === "2" && !dock.isOpen) {
        if(dock.url== "/view/debuggTool/"){
          return true;
        if (dock.url == "/view/debuggTool/") {
          return true
        }
        this.$store.dispatch("desktop/addFrame", {
          id: dock.id,
          icon: dock.src,
          title: dock.title,
          url: dock.url
        });
        })
        this.$store.commit("desktop/addMinDock", {
          id: dock.id,
          src: dock.src,
@@ -200,44 +202,44 @@
          highlight: true,
          url: dock.url,
          screenshot: ""
        });
        })
        //打开应用后异步抓拍,之后的抓拍采用这张固定的
        //if(dock.name=='cameraVideo'||dock.name=='search'||dock.name=='library'||dock.name=='cameraAccess'||dock.name=='dataStack'){
        setTimeout(() => {
          this.$parent.screenShot(dock);
        }, 1500);
          this.$parent.screenShot(dock)
        }, 1500)
        //}
      } else if (dock.type === "2" && dock.isOpen) {
        this.$store.commit("desktop/resetMinFrame", dock.id);
        this.$store.commit("desktop/resetMinFrame", dock.id)
      }
    },
    resetDockItem() {
      const dockItems = document.getElementsByClassName("dock-item");
      const dockMask = document.getElementsByClassName("dock-mask")[0];
      const dockItems = document.getElementsByClassName("dock-item")
      const dockMask = document.getElementsByClassName("dock-mask")[0]
      for (let i = 0; i < dockItems.length; i++) {
        dockItems[i].width = 60;
        dockItems[i].width = 60
        if (dockItems[i].parentNode.nextElementSibling) {
          dockItems[i].parentNode.nextElementSibling.style.marginLeft = "-35px";
          dockItems[i].parentNode.nextElementSibling.style.marginLeft = "-35px"
        }
      }
      dockMask.style.width = dockItems.length * 60 + 40 + "px";
      dockMask.style.width = dockItems.length * 60 + 40 + "px"
    },
    addFrameByName(name, params) {
      let dock = null;
      let dock = null
      this.$store.state.desktop.docks.forEach((app) => {
        if (app.name === name) {
          dock = app;
          dock = app
        }
      });
      })
      if (dock.isOpen) {
        this.$store.dispatch("desktop/closeFrame", dock);
        this.$store.dispatch("desktop/closeFrame", dock)
      }
      this.$store.dispatch("desktop/addFrame", {
        id: dock.id,
        icon: dock.src,
        title: dock.title,
        url: dock.url + "?" + params
      });
      })
      this.$store.commit("desktop/addMinDock", {
        id: dock.id,
        src: dock.src,
@@ -246,23 +248,23 @@
        highlight: true,
        url: dock.url,
        screenshot: ""
      });
      })
    },
    addFrameByID(id, params) {
      let dock = null;
      let toClose = null;
      let dock = null
      let toClose = null
      this.$store.state.desktop.docks.forEach((app) => {
        if (app.id == id) {
          dock = app;
          dock = app
        }
        if (app.name == "algorithmManage") {
          toClose = app;
          toClose = app
        }
      });
      this.dockClick(dock);
      })
      this.dockClick(dock)
    }
  }
};
}
</script>
<style lang="scss">