From 7e1762d879fc8b360e877a5828deef42eb14cc3b Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期三, 28 十月 2020 18:28:40 +0800
Subject: [PATCH] 引入simple-uploader源文件并更新assignBrowse方法,标注页面更新,首页分页器样式更新

---
 src/pages/labelMark/components/RightSide.vue |  271 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 194 insertions(+), 77 deletions(-)

diff --git a/src/pages/labelMark/components/RightSide.vue b/src/pages/labelMark/components/RightSide.vue
index 7e94302..fddcff1 100644
--- a/src/pages/labelMark/components/RightSide.vue
+++ b/src/pages/labelMark/components/RightSide.vue
@@ -1,75 +1,109 @@
 <template>
   <div class="right-side">
     <div class="figure">
-      <div class="action-bar">
-        <el-button
-          class="drawboard-trigger"
-          size="small"
-          @click="isEdit=!isEdit"
-          :icon="isEdit?'el-icon-lock':'el-icon-edit'"
-        >{{isEdit?'閿佸畾':'缂栬緫'}}</el-button>
-      </div>
-      <div class="drawboard">
-        <div class="mask" :class="{'edit-status-mask':isEdit}" ref="editBoard">
-          <div
-            class="label"
-            @click="editLabel(item)"
-            v-for="(item,index) in labels"
-            :key="index"
-            :style="{left:`${item.x}px`, top:`${item.y}px`, backgroundColor: colorPick, width: `${dotSize}px`, height: `${dotSize}px` }"
-          ></div>
-        </div>
-        <img :src="`/httpImage/${snapshot_url}`" alt />
-        <div
-          class="popBox"
-          v-show="isShowPop"
-          :style="`top:${curLabel.y + 22}px;left:${curLabel.x}px`"
-        >
-          <div class="title">鏍囨敞淇℃伅</div>
-          <div class="details">
-            <div class="detail-item">
-              <div class="left">
-                <label for>骞抽潰鍧愭爣X:</label>
-                <span class="fix-width">{{curLabel.x}}</span>
-                <i>px</i>
+      <el-collapse v-model="actPage" @change="chnageActPage">
+        <el-collapse-item title="鎽勫儚鏈烘爣娉�" name="1">
+          <div class="action-bar">
+            <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>
-              <span class="devide"></span>
-              <div class="right">
-                <label for>瀹為檯鍧愭爣X:</label>
-                <el-input type="text" size="mini" style="width:90px" v-model="curLabel.posX"></el-input>
+              <div style="width:250px;">
+                <label for>绗旇Е:</label>
+                <el-slider v-model="dotSize" :min="1" :max="20"></el-slider>
               </div>
-            </div>
-            <div class="detail-item">
-              <div class="left">
-                <label for>骞抽潰鍧愭爣Y:</label>
-                <span class="fix-width">{{curLabel.y}}</span>
-                <i>px</i>
+              <div>
+                <el-button
+                  class="drawboard-trigger"
+                  size="small"
+                  @click="isEdit=!isEdit"
+                  :icon="isEdit?'el-icon-lock':'el-icon-edit'"
+                >{{isEdit?'閿佸畾':'缂栬緫'}}</el-button>
               </div>
-              <span class="devide"></span>
-              <div class="right">
-                <label for>瀹為檯鍧愭爣Y:</label>
-                <el-input type="text" size="mini" style="width:90px" v-model="curLabel.posY"></el-input>
-              </div>
-            </div>
-            <div class="btns">
-              <el-button size="mini" type="danger" @click="deleteLabel">鍒犻櫎</el-button>
-              <el-button size="mini" type="primary" @click="cancle">鍙栨秷</el-button>
-              <el-button size="mini" type="success" @click="submitInfo">纭畾</el-button>
             </div>
           </div>
-        </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 class="drawboard">
+            <div class="mask" :class="{'edit-status-mask':isEdit}" ref="editBoard">
+              <div
+                class="label"
+                @click="editLabel(item)"
+                v-for="(item,index) in labels"
+                :key="index"
+                :style="{left:`${item.x}px`, top:`${item.y}px`, backgroundColor: colorPick, width: `${dotSize}px`, height: `${dotSize}px` }"
+              ></div>
+            </div>
+            <img v-show="snapshot_url" :src="`/httpImage/${snapshot_url}`" alt />
+            <div
+              class="popBox"
+              v-show="isShowPop"
+              :style="`top:${curLabel.y + 22}px;left:${curLabel.x}px`"
+            >
+              <div class="title">鏍囨敞淇℃伅</div>
+              <div class="details">
+                <div class="detail-item">
+                  <div class="left">
+                    <label for>骞抽潰鍧愭爣X:</label>
+                    <span class="fix-width">{{curLabel.x}}</span>
+                    <i>px</i>
+                  </div>
+                  <span class="devide"></span>
+                  <div class="right">
+                    <label for>瀹為檯鍧愭爣X:</label>
+                    <el-input type="text" size="mini" style="width:90px" v-model="curLabel.posX"></el-input>
+                  </div>
+                </div>
+                <div class="detail-item">
+                  <div class="left">
+                    <label for>骞抽潰鍧愭爣Y:</label>
+                    <span class="fix-width">{{curLabel.y}}</span>
+                    <i>px</i>
+                  </div>
+                  <span class="devide"></span>
+                  <div class="right">
+                    <label for>瀹為檯鍧愭爣Y:</label>
+                    <el-input type="text" size="mini" style="width:90px" v-model="curLabel.posY"></el-input>
+                  </div>
+                </div>
+                <div class="btns">
+                  <el-button size="mini" type="danger" @click="deleteLabel">鍒犻櫎</el-button>
+                  <el-button size="mini" type="primary" @click="cancle">鍙栨秷</el-button>
+                  <el-button size="mini" type="success" @click="submitInfo">纭畾</el-button>
+                </div>
+              </div>
+            </div>
+          </div>
+        </el-collapse-item>
+        <el-collapse-item title="杩借釜瀹炴櫙鍧愭爣" name="2">
+          <div class="user-upload">
+            <div class="img-card">
+              <el-upload
+                class="upload-demo"
+                drag
+                action="https://jsonplaceholder.typicode.com/posts/"
+                :http-request="definedUpload"
+                :on-change="onChange"
+                :show-file-list="false"
+              >
+                <el-image
+                  class="preview"
+                  v-if="userImg"
+                  :src="userImg"
+                  fit="contain"
+                  @mousemove="showCurPos"
+                  @mouseout="isShowCurPos=false"
+                ></el-image>
+                <div class="el-upload__text">
+                  灏嗘枃浠舵嫋鍒版澶勶紝鎴�
+                  <em>鐐瑰嚮涓婁紶</em>
+                </div>
+              </el-upload>
+            </div>
+            <div class="info" v-show="isShowCurPos">褰撳墠浣嶇疆:{{traceX}},{{traceY}}</div>
+          </div>
+        </el-collapse-item>
+      </el-collapse>
     </div>
   </div>
 </template>
@@ -78,7 +112,7 @@
 import { getCamerasByServer } from '@/api/pollConfig'
 import TreeDataPool from "@/Pool/TreeData";
 export default {
-  data() {
+  data () {
     return {
       labels: [],
       colorPick: '#79f2fb',
@@ -95,7 +129,12 @@
       },
       baseUrl: '',
       snapshot_url: '',
+      userImg: '',
       cameraData: [],
+      traceX: 0,
+      traceY: 0,
+      isShowCurPos: false,
+      actPage: ['1', '2']
     }
   },
   computed: {
@@ -126,6 +165,29 @@
     }
   },
   methods: {
+    chnageActPage () {
+
+    },
+    showCurPos (e) {
+      console.log(e);
+      this.isShowCurPos = true;
+      this.traceX = e.offsetX;
+      this.traceY = e.offsetY;
+    },
+    onChange (file, fileList) {
+      fileList = [file]
+      //fileList.push(file)
+    },
+    definedUpload (params) {
+      let _file = params.file
+      let fileReader = new FileReader()
+      fileReader.onload = () => {
+        this.userImg = fileReader.result
+      }
+      if (_file) {
+        fileReader.readAsDataURL(_file)
+      }
+    },
     getAllCameraData () {
       getCamerasByServer().then(res => {
         if (res.success) {
@@ -185,25 +247,29 @@
 </script>
 
 <style lang="scss">
-.right-side {
-  height: 100%;
+.el-collapse-item__content{
   background: #d2dcea;
-  .figure{
-    float: left;
+}
+.figure .el-collapse-item__header{
+  padding-left: 14px;
+}
+.right-side {
+  background: #d2dcea;
+  .figure {
   }
   .tool-bar {
-    float: right;
-    width: 40px;
+    //width: 40px;
     height: 100%;
-    padding: 10px 20px;
+    padding: 10px 0 10px 20px;
     box-sizing: border-box;
-    background: rgb(250, 250, 250);
-    margin-bottom: 40px;
+    //background: rgb(250, 250, 250);
+    //margin-bottom: 40px;
     display: flex;
     align-items: center;
+    justify-content: flex-end;
     > div {
       cursor: pointer;
-      background: rgb(245, 245, 245);
+      background: rgba(245, 245, 245, 0.3);
       padding: 0 5px;
       height: 40px;
       margin: 7px;
@@ -221,7 +287,7 @@
   .action-bar {
     width: 960px;
     margin: auto;
-    margin-bottom: 20px;
+    //margin-bottom: 20px;
     text-align: right;
     .drawboard-trigger {
       background: transparent;
@@ -233,8 +299,10 @@
     margin: auto;
     width: 960px;
     height: 540px;
+    margin-bottom: 130px;
     position: relative;
-    background: #fff;
+    //background: #fff;
+    background: #f0ffca;
     box-shadow: 3px 3px 3px 1px rgba(0, 0, 0, 0.1);
     .mask {
       position: absolute;
@@ -258,6 +326,7 @@
     }
     .popBox {
       position: absolute;
+      z-index: 99;
       padding: 14px;
       border-radius: 3px;
       color: #fff;
@@ -302,5 +371,53 @@
       }
     }
   }
+  .user-upload {
+    margin: auto;
+    padding: 50px;
+    display: flex;
+    .img-card{
+      
+    }
+    .upload-demo,
+    .el-upload {
+      height: 100%;
+      width: 100%;
+      margin: 0 auto;
+    }
+    .upload-demo .el-upload__input {
+      visibility: hidden;
+    }
+    .upload-demo .el-upload-dragger {
+      width: 100%;
+      height: 90%;
+      width: 962px;
+      height: 542px;
+      margin: 20px 0 0;
+      background: transparent;
+      /* border: none; */
+      //position: relative;
+      overflow: visible;
+    }
+    .upload-demo .el-upload__text {
+      position: absolute;
+      top: -24px;
+      left: 50%;
+      margin-left: -91px;
+    }
+    .upload-demo .preview {
+      object-fit: contain;
+      //position: relative;
+      // width: 100%;
+      // height: 100%;
+    }
+    .upload-demo .preview img {
+      // position: absolute;
+      // top: 50%;
+      // left: 50%;
+      // transform: translate(-50%, -50%);
+      // width: 100%;
+      // height: 100%;
+    }
+  }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0