haoxuan
2023-08-31 401524fb5661d57ffb2229d683fe4de85b65fd1c
src/pages/desktop/index/components/ToolsEntry.vue
@@ -1,55 +1,53 @@
<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-item v-for="(carousel,index) in carousels" :key="index">
      <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"> -->
            <div v-for="item in carousel" :key="item.id">
              <div class="app" v-if="item.url" @click="dockClick(item)">
              <div
                class="app"
                v-if="item.url && !item.sdk_name"
                @click="dockClick(item)"
              >
                <div class="wrap">
                  <div class="app-icon">
                    <div
                      class="badge"
                      v-if="item.name=='algorithmManage' && badgeNum > 0"
                    >{{badgeNum}}</div>
                      v-if="item.name == 'algorithmManage' && badgeNum > 0"
                    >
                      {{ badgeNum }}
                    </div>
                    <img :src="item.src" :alt="item.alt" />
                  </div>
                  <div class="app-name">{{item.title}}</div>
                  <div class="app-name">{{ item.title }}</div>
                </div>
              </div>
              <div class="app sdk" v-if="item.sdk_name">
              <div
                class="app sdk"
                v-if="item.sdk_name"
                @click="openSdkVideo(item)"
              >
                <div class="wrap">
                  <div class="app-icon">
                    <img
                      :src="item.iconBlob.indexOf(',')>0? item.iconBlob:`data:image/png;base64,${item.iconBlob}`"
                      style="width:82%"
                      :src="
                        item.iconBlob.indexOf(',') > 0
                          ? item.iconBlob
                          : `data:image/png;base64,${item.iconBlob}`
                      "
                    />
                  </div>
                  <div class="app-name">{{item.sdk_name}}</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>
@@ -58,73 +56,88 @@
        <img :src="`${publicPath}images/desktop/desk-logo.png`" alt />
      </div>
    </div>
    <div class="videolist_appbox" v-if="showVideo">
      <div class="video_t">
        <video
          width="1164"
          height="655"
          :src="videoUrl"
          type="video/mp4"
          poster=""
          controls="controls"
          preload="none"
          autoplay="autoplay"
          controlslist="nodownload"
        ></video>
      </div>
      <!-- <div class="mask"></div> -->
      <div class="video_close" @click="showVideo = false">
        <!-- <img src="../../assets/img/about_dot18.png"> -->
        <!-- <span class="icon iconfont">&#xe70b;</span> -->
        <i class="el-icon-close"></i>
      </div>
    </div>
  </div>
</template>
<script>
import draggable from "vuedraggable"
import { findAllSdk } from '@/api/taskMange';
import {chunkArr} from '@/scripts/util';
import bus from '@/plugin/bus'
import draggable from "vuedraggable";
import { findAllSdk } from "@/api/taskMange";
import { chunkArr } from "@/scripts/util";
import bus from "@/plugin/bus";
export default {
  name: 'toolsEntry',
  components: { draggable },
  data () {
  name: "toolsEntry",
  data() {
    return {
      publicPath: process.env.BASE_URL,
      loading: true,
      //carousels: [],
      showVideo: false,
      localApps: [],
      installedSdk: [],
      videoUrl: "",
      sdkList: [
        {
          src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAEAYAAACTrr2IAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAADSpJREFUeNrt3XtcVGX+B/Dv9wzXRBQj7yaFWrprte5quIKIggj+tjSh1BCLQVxFbctoY8k2NC+IrW3qS5dbq9lC4C66W3EVGkQzRM3cUmzwsoomeAO8cJvz/P7YxV6ULwQZemY4n/efA+d5Ps95MR/OzJwzhwgAAAAAAAAAtIBlB4DOERwcHBwcrNNVpl+94tJz7FjxsvKWKdbbm/5Nj/Cifv3IX1yg+wYOvL1BDvejm+fO0c+pTGy8cIFW8Eb+qqioT5izWp28b19GRkZGRobJJHtdYF4ogC7CWwSmzxV9+6oHmq7bfhAdzd/Qv8SsmTMphW7wgt6973ngQVRAPlVV4iVKIFNqqjLaxqlxzurVBv702a383Xey1w0dgwKwUt7CW/xR2NiIZfbvVJTExFAGOdLUV1+lPrSLpjk5ddrEF+lp2nn9OgXTLfpk3TpeUb90wJiVKw1s4FhuapK9X6B9UABWxtNz6tQFC1xcOLRhVcOq9HTezlEc5esrLVA/sqOFRUVqku64KSsoqLh7lvH9mKoq2fsJ2gYFYCW8hbeImOfqKo7YXVZnFhfTEp5NqY88IjvXbVNoOf3nxAmOrn9SGTxunIENnJB46ZLsWNA6RXYAaN0vR/1yVMQ8W1u10b6nSEtPt7gnfrNsepMeHDZM/di+wvRCZuaI9OCg4CA7O9mxoHUoAAvXbVGvEnF+1Sr2pSfFcz4+svPcDcdTGL/v6el6/Vpaz1srV8rOA61DAVgob+Ev5gs3NzGdR4uvFy+Wnafd+tJlEbVkic/RgCEREe7usuPAnaEALJQ4Kv5uenvFCn6aHiBfe3vZedptDc+h7XZ2pmRTf9NbsbGy48CdoQAsjLfwFgvTnZxoDh0i26Ag2Xk6SvyRavnXQUHj7n+qOCyqe3fZeaAlFICFUXfaVzc+6O9PPaiUjA4OsvN0VPMRjJJU93PdjMmTZeeBllAAlsYgHMTFSZNkxzA33kql5OfnJzsHtIQCsDDsTtk05cEHZecwuypqFKGDBsmOAS2hACzNeh5Kmf37y45hbiKB9pGh663L2qEALIzYT5EU4ugoO4e58XyqE9u7dZOdA1pCAVgYPkTDxFfV1bJzmN0bVE12V67IjgEtoQAsjLhFa3n+yZOyc5jdcyKSlfJy2TGgJRSAheFfiB38ZWmp7Bxmd4QO8OiDB2XHgJZQABZGV2uzhmft2iU7h7mpBrWI6OOPZeeAllAAFqZwZJYxIaG8nEbQPhpbUiI7T4f9gdzEK198UTx397bE2hMnZMeBllAAFooPihheuWaN7BwdJcr4HKesXi07B9wZvhDEojF7pfrtCl9ZUMCbeROdmjBBdqK2Evn0BX9UWLjHLrc6sbb5zEYhZOeClnAEYNGEEJvUXqYQvV68T250ygo+HjxDkTT12jV+QBSJA3p98zpkx4I7wxGAlRjfw+9I+PGJEymV+tJ3WVnNl9vKznXb6+IDCmlo4N9wo/rJlCkGU+7AlPjCQtmxoHU4ArASRdV5jyc9WlAgFolysTkw0GKOCP73LcG8gMdyzbRpeOJbFxwBWKnxv/P9h/788OH0Eduyx9atNJQ30OTRo3+q+cU6mklvlpby39SewiY0tOjd/GeS+x87Jnu/QPugAKzc7fsDFNr7V8wLCxPe9JmIiY5mH5rAK93czDWPKKTPRMzp07SOQ9gpLk55rS55gGtSEu4HYN1QAF3M97cEqxnVc5qPj3pCVKo8fTpV00j2HDOGBtLf6Zvhw3kmNdKO7y/OEWlkS0E3btA5mkEjjh2jHnRUFJeUKMO4tyIyM3s/63zo2s7CQtwirGtBAUjiuXVS6Lzuw4axg80H4oRez4fULyluyhSqISLnhx6irzmKznfvTmHUTWyurFSZIpVeen3x3FzfxNqOn1H3w6/t/ubZjB0ZOxoaOjrueF+/J8KfCQwUq3gJ9UlJ4VcpjRr79KHF9DWtrKmhfuREyqlTNEu8KY5nZ6tvqzlKYEoKThSSAwXwE2l+wrn+qWa/89i1a0kVkygiMpIc6AK/bGNz1wHG02SaJ4SYQxWifPPmekX3r7rPo6NLhmYZP9xQUyNrXWO+DRjy/GJnZ4cFpn2OFatWkQdto98vXEhFlEuJfPe/rzrqJ9Y3NZHCuylh06ZLrzh71Hz+2mvmKiRoHQqgk3mc9Tj78j5HR7vPnT+vGZuVRRspied5e3d44CFiO22/elU8TGt55IYNjXOVNHXmn/+8f1DOueSlnXfZrcdZ/4H6d3r1sh2onqVXlixhPVWx45IlZOQQCnFx6fAEiyhcJBoMN+LsHtbNDww8ePDjXyUk3LzZWevROhRAJxtfNnmF/oPUVJpHe9gwc2ZnzdP8Gp6JLtGTeXnkKV4QMdnZXK781mZTTo6Bc/gvfPp0W8e7fV8Cd3VLU6S/v0hje97q789z6BY5+vl19k1IxcuUTmWpqXum5/ZM2jN7dmfNo3UogE7iNdU3Nvy6vz/XKnvpd9nZsvM0nzfACSKSRp45Izz5fhH8/UsHLhaXOcPZWUTwJjo6eDC/SKfpoR49ZOemy2KMOsvfv+jrvLdTJuXmyo7T1aAAOsl/z+EvLLS2c/gtTctrCiZOlJ2nq8GZgGY2KXRSaOi0+++naTyfnLy8ZOexduxJ09TzXl7N7z3IztPVoADMrP4Fxdk25tFH2Z8eo6M6new8Vu9/n5LYmahQ+FjgXZGtHArAzHS/pwHKc717y87R1XCwukMX1Lev7BxdDQrA3BxptzqhDZ/rQ/tgv3YKFACAhqEAADQMBQCgYSgAAA1DAQBoGAoAQMNQAAAahgIA0DAUAICGoQAANAwFAKBhKAAADUMBAGgYCsDC8EFawMbVq+ktIqL58+kmPUV9re+OO7dvJHJKzBVz4+KoWOyk/du2yc4FLaEALIwoVIrpsczMoom5uUlJCQkiQniJpRUVsnO1W7I4QD2NxqKzec8ne73+Ou3XLeOJGzfKjgUtoQAANAwFAKBhKAAADUMBAGgYCgBAw1AAABqGAgDQMBQAgIahAAA0DAUAoGEoAAANQwEAaBgKAEDDUABmJgaJNOX5+vp73Z5Hm/5D5xsbZa/D3EyD1edNSQ0N97z9n/hh+rLr7RfZUABmxtvpb+LflZXt3tCDXqQbjY23jDaHb/Y7eVL2OsxuhMNNijx5snmd7d1cUZXuiqcVXhZt4VAAZnbfUNv3HIcePkxnKJKmXrvW5g2D6AkR/eGHJUOzjB9uqKmRvQ5z23v5n54p8bW14juKEVu2bGnzhqNomVh+65YpwG66yf74cdnr6GpQAGaWZcwybgisrycjR4qT69ffdYOl5EMj9+6tc9H9pi7xpZdk5+9s9hXqQ7pXly377zceHTx4t98XrmKX8nR8fHOByM7f1djIDtBVFdnmnEteuny5V8nk5eHdyso4ifaTISBA/Ez4UZqqKp/SHPLIy6OnGnIGzMjIKGFDdCw3NcnO3dnyd+fvTkisrg44EzBk8afjxt3o2eR1a194OP2Tv6Glvr4USKnCqCg8jPX85s6dRW/krks88Ne/ys7dVbHsANA6rwS/I/qreXm8naM4ytdXdp62EiEiXsTn5++JyHs82cXPT3YeuDO8BADQMBQAgIbhPQCtWSbiab+q0ld8jBJOn779+GNiOEW4udEKjiIPBf8YNAIFoDWp1I+M1dVFKbmPJ/3a3b354fFhfpXhDleuEBGRh4uL7Jjw00DTA2gYCgBAw1AAABqGAgDQMBQAgIahAAA0DAUAoGEoAAANQwEAaBgKAEDDUAAAGoYCANAwFACAhqEAADQMBQCgYSgAAA1DAQBoGAoAQMNQAAAahgIA0DAUAICGoQAANAwFAKBhKAAADUMBAGgYCgBAw1AAABqGArBwnM4GxVVVzTagL0+lRUL86PFP+Bw9YTKZbZ5gfoHj7jAPWBQUgIUTIeIGDb540WwDjhBZFFBV9aPHXem82H3hgrmm4bMUQ93MmBs6BQrA0s3mNep7u3ebazixiyoEFRX96AdLxRTl2Zwcs82zQnzER8yXGzoHCsDCOY3QPXCfkpYmFot4+kd5+b2OI3ZRFeXX16vv6fQi+513fvhzm89MYTp6913xPrnRqerqew6s0uNi0bffOh22OewQlpoqe/9B61AAFi7LmGXcEFhfr45nk1o3YwaFUTexubKyzQN40It0o7GRrpM7D9Xr917OLk2JLyv74a8VbCvYtuWTigplNPWhi8HBdJGepp3Xr7d1GrGcXhNxFRWm/+NGZd706c25Ze8/aB3LDgDtMzF0Yuhvpw4Y0GSyGdV0KDaW7MVsuvrMM2TkEApxcaFq+hUNqaujAvoLbczP515qmTorNtbA+a4p8aWlbZ3H52jAkIgId/emgqbVqnNMDEfRBKr086PhvJ5GuLqKN8RztLaigmvpZzw2M5NfbNBx/7g4Axs4IfHSJdn7CUBTvIW3WJju5CQ7BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY0/8DuV+zWExU6z0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDctMTNUMTk6MzU6MzQrMDg6MDAy6d/MAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTA3LTEzVDE5OjM1OjM0KzA4OjAwQ7RncAAAAE50RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fOW9heDR5cWJjaWsvZ2V0aWppbmd6aGkuc3Zn3Yd/aQAAAABJRU5ErkJggg==',
          title: '个体静止'
        },
        {
          src: 'data:image/png;base64,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TER++23Yf3wmWvzbw+PV+9/6qr72NIxukYHBsz8qD6ZsExPVRLmKKlWlets5GPsn8mNyzeuQkXE6en2vhikpKW/6+expNN2ievXkIOljqcGECZApFYsmTy7zdTZeLGUXOt6niWXbgtex0NllvRnTZLbLx/jEHfr8cxGIP9AsIKCs46mdZFncsLI67eHra9Hjz/U53t0r+DCmxcKmrh9t6bx1K7Zjt1hz6FBZx5MsJH1Kb9q0wO1K7yhj7B8swy26uHt3mcfZIGS0MzN79WYuAMY0mEgV1UTrsh+DEFvIUnR7//1Xb+cCYEyT5ZCPPKxRo7IOI9pSkny14Pk6XACMaSB7mkck6+lRNh4Jy+HDyzqePBy7VesSE1+9nQuAMQ2S/8KX694zTnDy9sZjXMODZs1KPeCLC/JQgH5buhsd/erd/DXgO8aeJtEtqlo1d2fuTqBePWkVnZTi+TwLjbWQjuCEgQFqUQQymzUTAlni2LhxGCO+p5Vt2pR5/ERUxNKzZ0Nj16+0XN2p06t365VmTKY5egwdH5FYuXr1nLXy4LxZa9eqM3K2YvGnn6pWv/jZKFe8ZpsHJzgAgHh5lh59VI7j1xfeeLRrF2JffzcXgJZq127UqKSRhoY5a9XGufVOnhQu6IkhLVsCOK10NqY8+grjxSf37qn6CQeD6d7eEPgMWwtuxwWgpQy9xb9z948bBxesQnjLlkrnYZpFXKMV6D5/frBY51+rf0ZGYdtxAWgpaipWi9rOzgIw56uvsJfCcUYM/O9/Q0N9Lpqf8vEBAHgWvjl/C6ClRGtYkU3lykrnYBriCTxEo6gog/OZyRXmDRsGAEIUfWUuLgAtRWuFtzC4dEnpHExhvliDlH37cnbqX8wZ1b17UOutKaa9ir/MPheAlhLzcVA6uGoV2sFQjH8Dv1NnGolWoJ7olp5OC3AUJ2bMCG1qorJo7+p6ttFql0ZrHj8u6XhcAFoqNMK7Z90r0dGUTWbi4bBhuAdHVHn6VOlcrJylIRI/JCTQj1glti9dqmon39TraWUV5rA+1vLLJUuABUKI0i/Sy98SvyPyr8GoMlJ76f0yeLDUFBWpeePGFERZMCn/lWZYOZkifsf3mZm4iUPivYQEcqNvxPK7d3FDWinHRkSEhXl7W1hERQHF+0xfUv8HrASX0hIwkmoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDctMTNUMjA6MTM6MjcrMDg6MDBhLSN6AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTA3LTEzVDIwOjEzOjI3KzA4OjAwEHCbxgAAAEp0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fcWp6eWVjbDNocXIvZ2Vuem9uZy5zdmcBgnXEAAAAAElFTkSuQmCC',
          title: '人员跟踪'
        }
      ],
      //rowSize: 3,
      badgeNum: 0,
    }
    };
  },
  computed: {
    stateDocks () {
      return this.$store.state.desktop.docks
    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 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 = chunkArr(tempArr,24);
      } else {
        //this.rowSize = 3;
        arr = this.chunk(tempArr, 18);
        //arr = chunkArr(tempArr, 18);
      }
      console.log(arr)
      return 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 => {
    //this.carousels =
    window.addEventListener("message", (e) => {
      if (e.data && e.data.msg) {
        let msg = e.data.msg;
        // token 不合法, 退出
@@ -132,133 +145,133 @@
          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)
          this.addFrameByName("search", params);
        }
        if (msg.indexOf("toCluster") >= 0) {
          let params = msg.substring(8);
          this.addFrameByName("searchForCluster", params)
          this.addFrameByName("searchForCluster", params);
        }
        if (msg.indexOf("toOpenApp") >= 0) {
          let id = msg.substring(10);
          console.log(id);
          this.addFrameByID(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) {
        return []
        return [];
      }
      let index = 0;
      let resIndex = 0;
      const result = new Array(Math.ceil(len / size))
      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;
    },
    getAllSdk () {
      findAllSdk().then(res => {
        this.installedSdk = res.data.filter(item => item.installed)
      }).catch(e => {
        console.log(e)
      })
    getAllSdk() {
      findAllSdk()
        .then((res) => {
          this.installedSdk = res.data.filter((item) => item.installed);
        })
        .catch((e) => {
          console.log(e);
        });
    },
    dockClick (dock) {
      if (dock.type === '1') {
    dockClick(dock) {
      if (dock.type === "1") {
        window.open(dock.url);
      } else if (dock.type === '2' && !dock.isOpen) {
        this.$store.dispatch('desktop/addFrame', {
      } else if (dock.type === "2" && !dock.isOpen) {
        this.$store.dispatch("desktop/addFrame", {
          id: dock.id,
          icon: dock.src,
          title: dock.title,
          url: dock.url
          url: dock.url,
        });
        this.$store.commit('desktop/addMinDock', {
        this.$store.commit("desktop/addMinDock", {
          id: dock.id,
          src: dock.src,
          alt: dock.title,
          type: "3",
          highlight: true,
          url: dock.url,
          screenshot: ''
          screenshot: "",
        });
        //打开应用后异步抓拍,之后的抓拍采用这张固定的
        //if(dock.name=='cameraVideo'||dock.name=='search'||dock.name=='library'||dock.name=='cameraAccess'||dock.name=='dataStack'){
        setTimeout(() => {
          this.$parent.screenShot(dock);
        }, 1500)
        }, 1500);
        //}
      } else if (dock.type === '2' && dock.isOpen) {
        this.$store.commit('desktop/resetMinFrame', dock.id);
      } else if (dock.type === "2" && dock.isOpen) {
        this.$store.commit("desktop/resetMinFrame", dock.id);
      }
    },
    resetDockItem () {
      const dockItems = document.getElementsByClassName('dock-item');
      const dockMask = document.getElementsByClassName('dock-mask')[0];
    openSdkVideo(dock) {
      if (dock.url && dock.sdk_name) {
        this.videoUrl = dock.url;
        this.showVideo = true;
      }
    },
    resetDockItem() {
      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;
        if (dockItems[i].parentNode.nextElementSibling) {
          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) {
    addFrameByName(name, params) {
      let dock = null;
      this.$store.state.desktop.docks.forEach(app => {
      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/closeFrame", dock);
      }
      this.$store.dispatch('desktop/addFrame', {
      this.$store.dispatch("desktop/addFrame", {
        id: dock.id,
        icon: dock.src,
        title: dock.title,
        url: dock.url + "?" + params
        url: dock.url + "?" + params,
      });
      this.$store.commit('desktop/addMinDock', {
      this.$store.commit("desktop/addMinDock", {
        id: dock.id,
        src: dock.src,
        alt: dock.title,
        type: "3",
        highlight: true,
        url: dock.url,
        screenshot: ''
        screenshot: "",
      });
    },
    addFrameByID (id, params) {
    addFrameByID(id, params) {
      let dock = null;
      let toClose = null
      this.$store.state.desktop.docks.forEach(app => {
      let toClose = null;
      this.$store.state.desktop.docks.forEach((app) => {
        if (app.id == id) {
          dock = app;
        }
        if(app.name=="algorithmManage"){
          toClose = app
        if (app.name == "algorithmManage") {
          toClose = app;
        }
      });
      this.dockClick(dock)
    }
  }
      this.dockClick(dock);
    },
  },
};
</script>
@@ -297,9 +310,12 @@
            height: 110px;
            margin: auto;
            position: relative;
            border-radius: 10px;
            img {
              vertical-align: middle;
              margin-right: -3px;
              width: 82px;
              // height: 82px;
            }
            .badge {
              position: absolute;
@@ -355,5 +371,43 @@
      }
    }
  }
  .videolist_appbox {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 9999999;
  }
  .videolist_appbox .video_t {
    z-index: 2;
  }
  .videolist_appbox .mask {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
  }
  .video_close {
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    z-index: 3;
    color: #fff;
    background: lightgray;
    padding: 10px;
    border-radius: 20px;
    i{
          font-size: 20px;
    }
  }
}
</style>