From d6bf6c38fe15510aac8e56569ca0450fb8656c89 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 30 七月 2020 18:55:09 +0800
Subject: [PATCH] 调整摄像机接入页面

---
 src/pages/cameraAccess/index/App.vue |  377 +++++++++++++----------------------------------------
 1 files changed, 93 insertions(+), 284 deletions(-)

diff --git a/src/pages/cameraAccess/index/App.vue b/src/pages/cameraAccess/index/App.vue
index d06b1f3..c88ca57 100644
--- a/src/pages/cameraAccess/index/App.vue
+++ b/src/pages/cameraAccess/index/App.vue
@@ -1,307 +1,116 @@
 <template>
-  <div class="s-video-manage">
-    <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
-      <el-tab-pane
-        :label="firstLabeName"
-        name="camera-info"
-        v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:info')"
-      >
-        <camera-info ref="cameraInfo" />
-      </el-tab-pane>
-      <el-tab-pane
-        :label="firstLabeName"
-        name="camera-info"
-        v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:stackInfo')"
-      >
-        <data-stack-info ref="dataStackInfo" />
-      </el-tab-pane>
-      <el-tab-pane
-        label="鐙珛鍦烘櫙"
-        name="separate-rule"
-        v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:selfRule')"
-      >
-        <separate-rules ref="sepRule" />
-        <!-- <local-separate ref="localSeparate" v-else></local-separate> -->
-      </el-tab-pane>
-      <el-tab-pane
-        label="鐙珛鍦烘櫙"
-        name="separate-rule"
-        v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:selfRule')"
-      >
-        <separate-rules ref="sepRule" />
-        <!-- <local-separate ref="localSeparate" v-else></local-separate> -->
-      </el-tab-pane>
-      <el-tab-pane
-        label="鑱斿姩鍦烘櫙"
-        name="linkage-rule"
-        v-if="(isShow('VIDEOCAMERA:camera:linkRule') || isShow('VIDEOCAMERA:dataStack:linkRule')) && this.TreeDataPool.treeActiveName == 'camera'"
-      >
-        <linkage-rule ref="linkRule" />
-      </el-tab-pane>
-      <el-tab-pane
-        label="绠楀姏閰嶇疆"
-        name="poll-setting"
-        v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:resourceCalc')"
-      >
-        <poll-setting ref="pullSetting" />
-      </el-tab-pane>
-      <el-tab-pane
-        label="绠楀姏閰嶇疆"
-        name="poll-setting"
-        v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:resourceCalc')"
-      >
-        <poll-setting ref="pullSetting" />
-      </el-tab-pane>
-    </el-tabs>
+  <div class="column">
+    <div class="column-left" :style="`height:${screenHeight}px;`">
+      <div class="resize-bar"></div>
+      <div class="resize-line"></div>
+      <div class="resize-save">
+        <left-nav :appName="'Video'" :height="screenHeight - 40"></left-nav>
+      </div>
+    </div>
+    <div class="column-right" :style="`height:${screenHeight}px;`">
+      <right-side />
+    </div>
   </div>
 </template>
 
 <script>
-import CameraInfo from "@/components/camera/CameraInfo";
-import DataStackInfo from "@/components/camera/DataStackInfo"
-import SeparateRules from "@/components/camera/SeparateRules";
-import LinkageRule from "@/components/camera/LinkageRule";
-import PollSetting from "@/components/camera/PollSetting";
-// import fTemplate from "@/components/common/fTemplate";
-// import localSeparate from "@/components/camera/localSeparate";
-
-//import bus from "@/main";
-import TreeDataPool from "@/Pool/TreeData";
+import LeftNav from "@/components/LeftNav";
+// import CameraVideo from "./components/Video.vue";
+import RightSide from "./VideoManage"
 
 export default {
+  name: "SearchPage",
   components: {
-    CameraInfo,
-    DataStackInfo,
-    SeparateRules,
-    LinkageRule,
-    PollSetting
+    LeftNav,
+    RightSide
   },
   data() {
     return {
-      activeName: "camera-info",
-      buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
-      intervalTimer: null
-    };
-  },
-  computed: {
-    isAdmin() {
-      if (
-        sessionStorage.getItem("userInfo") &&
-        sessionStorage.getItem("userInfo") !== ""
-      ) {
-        let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
-        return loginName === "superadmin" || loginName === "basic";
-      }
-      return false;
-    },
-    firstLabeName() {
-      return this.TreeDataPool.treeActiveName === "camera" ? "鎽勫儚鏈轰俊鎭�" : "鏁版嵁鏍堜俊鎭�"
+      screenHeight: 0,
     }
-  },
-  watch: {
-    // 鏁版嵁鏍堜笉鏄剧ず鑱斿姩瑙勫垯锛岄槻姝㈠湪閫変腑鑱斿姩瑙勫垯tab涓垏鎹㈠埌鏁版嵁鏍�
-    "TreeDataPool.treeActiveName": function (val) {
-      if (val === "dataStack" && this.activeName === "linkage-rule") {
-        this.activeName = "camera-info";
-      }
-    },
-    "TreeDataPool.selectedNode": function (node) {
-      if (this.activeName == "camera-info") {
-        if (this.TreeDataPool.treeActiveName == 'camera') {
-          this.$refs.cameraInfo.selectCamera(node);
-        }
-      } else if (this.activeName === "separate-rule") {
-        this.$refs.sepRule.Camera = {}
-        this.$refs.sepRule.initCameraData(node.id);
-      }
-    },
-    "TreeDataPool.selectedNodes": {
-      handler(nodes) {
-        if (this.activeName == "linkage-rule") {
-          this.$refs.linkRule.initCameraData();
-        }
-      },
-      deep: true
-    },
-    "DataStackPool.selectedDir": {
-      handler(node, oldNode) {
-        console.log(this.activeName)
-        console.log(node, '鍕鹃�夋湰鍦拌棰�')
-        if (this.TreeDataPool.treeActiveName !== 'dataStack') {
-          return
-        }
-        this.$nextTick(() => {
-          if (this.activeName == "camera-info") {
-            console.log("dataStackInfo.selectDir(node)")
-            this.$refs.dataStackInfo.selectDir(node);
-          } else if (this.activeName == "separate-rule" && node.length !== 0) {
-            this.$refs.sepRule.initCameraData(node.id);
-          }
-        })
-      },
-      deep: true
-    }
-  },
-  created() {
-    if (this.TreeDataPool.treeActiveName == 'camera') {
-      if (this.isShow('VIDEOCAMERA:camera:info')) {
-        this.activeName = "camera-info"
-      } else if (this.isShow('VIDEOCAMERA:camera:selfRule') || this.isShow('VIDEOCAMERA:datastack:selfRule')) {
-        this.activeName = "separate-rule"
-      } else if (this.isShow('VIDEOCAMERA:camera:linkRule') || this.isShow('VIDEOCAMERA:datastack:linkRule')) {
-        this.activeName = "linkage-rule"
-      } else if (this.isShow('VIDEOCAMERA:camera:resourceCalc') || this.isShow('VIDEOCAMERA:datastack:resourceCalc')) {
-        this.activeName = "poll-setting"
-      }
-    } else {
-      if (this.isShow('VIDEOCAMERA:camera:info')) {
-        this.activeName = "camera-info"
-      } else if (this.isShow('VIDEOCAMERA:camera:selfRule') || this.isShow('VIDEOCAMERA:datastack:selfRule')) {
-        this.activeName = "separate-rule"
-      } else if (this.isShow('VIDEOCAMERA:camera:linkRule') || this.isShow('VIDEOCAMERA:datastack:linkRule')) {
-        this.activeName = "linkage-rule"
-      } else if (this.isShow('VIDEOCAMERA:camera:resourceCalc') || this.isShow('VIDEOCAMERA:datastack:resourceCalc')) {
-        this.activeName = "poll-setting"
-      }
-    }
-    this.TreeDataPool.readonly = true;
-    this.TreeDataPool.gbReadonly = true;
-    this.TreeDataPool.multiple = false;
-    this.TreeDataPool.selectedNode = "";
-    this.selectedNodes = [];
-    this.VideoManageData.init();
-  },
-  beforeDestroy() {
-    clearInterval(this.intervalTimer);
-    //this.TreeDataPool.treeActiveName = "camera";
   },
   mounted() {
-    this.$nextTick(() => {
-    //   bus.$on("addCameraOnTree", node => {
-    //     this.handAddDevice(node);
-    //   });
-    //   bus.$on("addDirOnTree", node => {
-    //     this.handAddDIr(node);
-    //   });
-    //   this.TreeDataPool.clean();
-    });
-
-    let _this = this
-    this.intervalTimer = setInterval(() => {
-      _this.PollData.statisticTaskInfo();
-    }, 10000)
+    this.screenHeight = document.documentElement.clientHeight - 20;
+    window.onresize = () => {
+      return (() => {
+        this.screenHeight = document.documentElement.clientHeight - 20;
+      })();
+    };
   },
-  methods: {
-    isShow(authority) {
-      if (this.isAdmin) {
-        return true;
-      } else if (this.buttonAuthority.indexOf("," + authority + ",") > -1) {
-        return true;
-      } else if ("videoCamera:pollSetting" === authority) {
-        return true;
-      } else {
-        return false;
-      }
-    },
-    handAddDevice(node) {
-      let _this = this;
-      setTimeout(() => {
-        _this.$refs.cameraInfo.addDevice(node);
-        _this.activeName = "camera-info";
-      }, 100);
-    },
-    handAddDIr(node) {
-      let _this = this;
-      setTimeout(() => {
-        _this.$refs.dataStackInfo.addDir(node);
-        _this.activeName = "camera-info";
-      }, 100);
-    },
-    handleClick(tab, event) {
-      this.TreeDataPool.multiple = tab.name === "linkage-rule";
-      if (tab.name === "camera-info") {
-        if (this.TreeDataPool.treeActiveName == 'camera') {
-          this.$refs.cameraInfo.selectCamera(this.TreeDataPool.selectedNode);
-        } else if (this.TreeDataPool.treeActiveName == 'dataStack') {
-          this.$refs.dataStackInfo.selectDir(this.DataStackPool.selectedDir);
-        }
-      } else if (tab.name === "separate-rule") {
-        if (this.TreeDataPool.treeActiveName == 'camera') {
-          this.$refs.sepRule.initCameraData(this.TreeDataPool.selectedNode.id);
-        } else if (this.TreeDataPool.treeActiveName == 'dataStack') {
-          this.$refs.sepRule.initCameraData(this.DataStackPool.selectedDir.id);
-        }
-      } else if (this.activeName == "linkage-rule") {
-        this.$refs.linkRule.initCameraData();
-      } else if (this.activeName == "poll-setting") {
-        this.$nextTick(() => {
-          this.$refs.pullSetting.initLineChart();
-        })
-      }
-    }
-  }
 };
 </script>
-<style lang="scss">
-.s-video-manage {
-  width: 100%;
+
+<style lang="scss" scoped>
+.column {
+  overflow: hidden;
+}
+.column-left {
+  height: inherit;
+  background-color: #fff;
+  position: relative;
+  float: left;
+}
+.column-right {
   height: 100%;
-  float: right;
-  box-sizing: border-box;
   padding: 16px;
-  background-color: #e9ebf2;
-  .el-tabs--border-card {
-    box-shadow: none;
-    -webkit-box-shadow: none;
-    border: none;
+  background-color: #eee;
+  box-sizing: border-box;
+  overflow: hidden;
+}
+.resize-save {
+  position: absolute;
+  top: 0;
+  right: 5px;
+  bottom: 0;
+  left: 0;
+  padding: 16px;
+  overflow-x: hidden;
+}
+.resize-bar {
+  width: 310px;
+  height: inherit;
+  resize: horizontal;
+  cursor: ew-resize;
+  opacity: 0;
+  overflow: scroll;
+  max-width: 500px; //璁惧畾鏈�澶ф媺浼搁暱搴�
+  min-width: 310px; //璁惧畾鏈�灏忓搴�
+}
+/* 鎷栨嫿绾� */
+.resize-line {
+  position: absolute;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  border-right: 2px solid #eee;
+  border-left: 1px solid #bbb;
+  pointer-events: none;
+}
+.resize-bar:hover ~ .resize-line,
+.resize-bar:active ~ .resize-line {
+  border-left: 1px dashed skyblue;
+}
+.resize-bar::-webkit-scrollbar {
+  width: 200px;
+  height: inherit;
+}
+
+/* Firefox鍙湁涓嬮潰涓�灏忓潡鍖哄煙鍙互鎷変几 */
+@supports (-moz-user-select: none) {
+  .resize-bar:hover ~ .resize-line,
+  .resize-bar:active ~ .resize-line {
+    border-left: 1px solid #bbb;
   }
-  // .s-video-manage-breadcrumb {
-  //   height: 5%;
-  //   -webkit-box-sizing: border-box;
-  //   border: 1px solid #e4e7ed;
-  //   -webkit-box-shadow: #e4e7ed 0px 0px 9px inset;
-  //   box-shadow: #e4e7ed 0px 0px 9px inset;
-  //   border-radius: 5px;
-  // }
-  .el-tabs--border-card {
-    height: 100%;
-    width: 100%;
-    .el-tabs__header {
-      .is-active {
-        color: #3d68e1 !important;
-      }
-      .el-tabs__item:not(.is-disabled):hover {
-        color: #3d68e1 !important;
-      }
-      height: 52px;
-      border-bottom: none;
-      background-color: #f8f9fb;
-      .el-tabs__nav-wrap,
-      .el-tabs__nav-scroll,
-      .el-tabs__nav,
-      .el-tabs__item {
-        height: calc(100% + 1px);
-      }
-      .el-tabs__item {
-        line-height: 52px;
-        width: 144px;
-        border-right-color: transparent;
-        border-left-color: transparent;
-        font-family: PingFangSC-Medium;
-        font-size: 14px;
-        color: #222222;
-      }
-    }
-  }
-  .el-tabs__content {
-    width: 100%;
-    height: calc(100% - 52px);
-    box-sizing: border-box;
-    padding: 13px 38px;
-  }
-  .el-tab-pane {
-    width: 100%;
-    height: 100%;
+  .resize-bar:hover ~ .resize-line::after,
+  .resize-bar:active ~ .resize-line::after {
+    content: "";
+    position: absolute;
+    width: 16px;
+    height: 16px;
+    bottom: 0;
+    right: -8px;
+    // background: url(./resize.svg);
+    background-size: 100% 100%;
   }
 }
 </style>

--
Gitblit v1.8.0