hanbaoshan
2020-10-27 1e84774c0c0752c61e60592e7f7fc1c0d25a1dab
首页加入算法
6个文件已修改
174 ■■■■ 已修改文件
src/components/subComponents/FileUpload/btn.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/subComponents/FileUpload/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/subComponents/FileUpload/uploader.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/ai/index/App.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/desktop/index/components/ToolsEntry.vue 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/labelMark/components/RightSide.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/subComponents/FileUpload/btn.vue
@@ -26,14 +26,15 @@
      default() {
        return {}
      }
    }
    },
  },
  watch: {
    attrs: {
      handler(n, o) {
        this.$nextTick(() => {
        //this.$nextTick(() => {
          this.uploader.uploader.assignBrowse(this.$refs.btn, this.directory, this.single, n)
        })
        //})
      },
      deep: true
    }
src/components/subComponents/FileUpload/index.vue
@@ -81,11 +81,11 @@
    },
    attrs: {
      type: Object,
      // default () {
      //   return {
      default () {
        return {
      //   }
      // }
        }
      }
    }
  },
  data() {
src/components/subComponents/FileUpload/uploader.vue
@@ -5,8 +5,8 @@
      <uploader-unsupport></uploader-unsupport>
      <uploader-drop>
        <!-- <p>拖动文件到该区域上传</p> -->
        <uploader-btn :attrs="attrs">选择文件</uploader-btn>
        <uploader-btn :directory="true" :attrs="attrs">选择文件夹</uploader-btn>
        <uploader-btn >选择文件</uploader-btn>
        <uploader-btn :directory="true" >选择文件夹</uploader-btn>
      </uploader-drop>
      <uploader-list></uploader-list>
    </slot>
@@ -37,10 +37,10 @@
    attrs:{
      handler(n,o){
        console.log('uploader attrs update',n)
        this.$nextTick(()=>{
          //this.unBindUploader();
        //this.$nextTick(()=>{
          this.unBindUploader();
          this.bindUploader();
        })
        //})
      },
      deep: true
    },
@@ -168,6 +168,9 @@
    // uploader.on('fileRemoved', this.fileRemoved)
    // uploader.on('filesSubmitted', this.filesSubmitted)
  },
  mounted(){
    //this.bindUploader();
  },
  destroyed() {
    this.unBindUploader();
    // const uploader = this.uploader
src/pages/ai/index/App.vue
@@ -624,16 +624,16 @@
          setTimeout(() => {
            if (action == 'upgrade') {
              app.upgradeLoading = false;
              _this.$notify({
                type: 'success',
                message: '升级成功'
              });
              // _this.$notify({
              //   type: 'success',
              //   message: '升级成功'
              // });
            } else {
              app.installLoading = false;
              _this.$notify({
                type: 'success',
                message: '安装成功'
              });
              // _this.$notify({
              //   type: 'success',
              //   message: '安装成功'
              // });
            }
            _this.getAllApps();
            window.parent.postMessage({
src/pages/desktop/index/components/ToolsEntry.vue
@@ -1,8 +1,32 @@
<template>
  <div class="tools-entry">
    <div class="entry-wrap">
      <div class="app-list clearFix">
        <div class="app" v-for="dock in stateDocks" :key="dock.id" @click="dockClick(dock)">
      <el-carousel height="600px" :autoplay="false" >
        <el-carousel-item v-for="(carousel,index) in carousels" :key="index">
          <div class="app-list clearFix sdk-list" >
            <div v-for="item in carousel" :key="item.id">
              <div class="app" v-if="item.url" @click="dockClick(item)">
              <div class="wrap">
                <div class="app-icon">
                  <img :src="item.src" :alt="item.alt" />
                </div>
                <div class="app-name">{{item.title}}</div>
              </div>
            </div>
            <div class="app sdk" v-if="item.sdk_name">
              <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>
            <!-- <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" />
@@ -10,7 +34,21 @@
            <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>
      <div class="logo">
        <img :src="`${publicPath}images/desktop/desk-logo.png`" alt />
      </div>
@@ -19,21 +57,44 @@
</template>
<script>
import { findAllSdk } from '@/api/taskMange';
export default {
  name: 'toolsEntry',
  data() {
    return {
      publicPath: process.env.BASE_URL,
      loading: true,
      localApps: []
      //carousels: [],
      localApps: [],
      installedSdk: [],
      sdkList: [
        {
          src: 'data:image/png;base64,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',
          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: '人员跟踪'
        }
      ]
    }
  },
  computed: {
    stateDocks() {
      return this.$store.state.desktop.docks
    },
    carousels () {
      let pages = 0;
      let tempArr = this.stateDocks.concat(this.installedSdk);
      let arr = this.chunk(tempArr,18);
      console.log(arr)
      return arr
    }
  },
  mounted() {
    this.getAllSdk();
    //this.carousels =
    window.addEventListener('message', e => {
      if (e.data && e.data.msg) {
        let msg = e.data.msg;
@@ -53,6 +114,27 @@
  },
  methods: {
    chunk(arr,size){
      size = Math.max(size,0);
      const len = arr == null ? 0: arr.length;
      if(!len || size <1){
        return []
      }
      let index = 0;
      let resIndex = 0;
      const result = new Array(Math.ceil(len/size))
      while(index<len){
        result[resIndex++] = arr.slice(index,index+=size)
      }
      return result
    },
    getAllSdk () {
      findAllSdk().then(res => {
        this.installedSdk = res.data.filter(item => item.installed)
      }).catch(e => {
        console.log(e)
      })
    },
    dockClick(dock) {
      if (dock.type === '1') {
        window.open(dock.url);
@@ -127,6 +209,12 @@
</script>
<style lang="scss">
.el-carousel__arrow--left{
  left: 0 !important;
}
.el-carousel__arrow--right{
  right: 0 !important;
}
.tools-entry {
  //margin-top: 130px;
  position: absolute;
@@ -187,6 +275,7 @@
      text-align: right;
      padding-right: 50px;
      user-select: none;
      margin-top: -100px;
      img {
        user-select: none;
        -webkit-user-drag: none;
src/pages/labelMark/components/RightSide.vue
@@ -1,16 +1,6 @@
<template>
  <div class="right-side">
    <div class="tool-bar">
      <div>
        <!-- <input type="color" ref="colorPicker" v-model="color"> -->
        <label for>拾色器:</label>
        <el-color-picker v-model="colorPick" show-alpha size="mini"></el-color-picker>
      </div>
      <div style="width:250px;">
        <label for>笔触:</label>
        <el-slider v-model="dotSize" :min="1" :max="20"></el-slider>
      </div>
    </div>
    <div class="figure">
    <div class="action-bar">
      <el-button
        class="drawboard-trigger"
@@ -70,6 +60,18 @@
      </div>
    </div>
  </div>
    <div class="tool-bar">
      <div>
        <!-- <input type="color" ref="colorPicker" v-model="color"> -->
        <label for>拾色器:</label>
        <el-color-picker v-model="colorPick" show-alpha size="mini"></el-color-picker>
      </div>
      <div style="width:250px;">
        <label for>笔触:</label>
        <el-slider v-model="dotSize" :min="1" :max="20"></el-slider>
      </div>
    </div>
  </div>
</template>
<script>
@@ -109,6 +111,7 @@
  watch: {
    'TreeDataPool.selectedNode': {
      handler(n, o) {
        debugger
        let curCamera = this.cameraData.find(item => item.id == n.id);
        this.snapshot_url = curCamera.snapshot_url;
      },
@@ -126,6 +129,7 @@
    getAllCameraData() {
      getCamerasByServer().then(res => {
        if (res.success) {
          debugger
          this.cameraData = res.data;
        }
      }).catch(e => {
@@ -153,6 +157,7 @@
      this.isNewLabel = true;
    },
    editLabel(label) {
      debugger
      if (!this.isEdit) return;
      this.isShowPop = true;
      this.curLabel = JSON.parse(JSON.stringify(label));
@@ -183,9 +188,13 @@
.right-side {
  height: 100%;
  background: #d2dcea;
  .figure{
    float: left;
  }
  .tool-bar {
    width: 100%;
    height: 60px;
    float: right;
    width: 40px;
    height: 100%;
    padding: 10px 20px;
    box-sizing: border-box;
    background: rgb(250, 250, 250);