From f551b10b0c04a902ea089b4a434bb9537b94496e Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期四, 29 十二月 2022 17:14:59 +0800
Subject: [PATCH] Merge branch 'dev1.0' of http://42.193.1.25:9521/r/sccg_ui into dev1.0

---
 src/views/video/index.vue |  504 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 344 insertions(+), 160 deletions(-)

diff --git a/src/views/video/index.vue b/src/views/video/index.vue
index 9f8688f..6c98008 100644
--- a/src/views/video/index.vue
+++ b/src/views/video/index.vue
@@ -1,66 +1,309 @@
 <template>
-  <el-container style="height: 100%;">
-    <el-aside heigth="100%" width="200px ">
-      <div style="line-height: 40px;text-align: left;padding: 0 20px 0 10px;">
-        <span style="color:rgb(75, 155, 183);font-weight: 500; width: 196px;">缁勭粐鏈烘瀯</span>
-        <el-input placeholder="璇疯緭鍏ユ満鏋�"></el-input>
-      </div>
-      <el-tree :data="treedata" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
-
-
+  <el-container style="height: 100%">
+    <el-aside heigth="100%" width="200px">
+      <department-aside @selectedDepartment="selectedDepartment" />
     </el-aside>
 
     <el-container>
-      <el-header style="display:flex;flex-direction: column;height: 120px;">
-        <div style="display:flex;justify-content: space-between;height: 80px;">
-          <span style="color:rgb(75, 155, 183);font-weight: 500;text-align: left; font-size: 16px;">鏁翠綋瓒嬪娍</span>
+      <el-header style="display: flex; flex-direction: column; height: 120px">
+        <div
+          style="display: flex; justify-content: space-between; height: 80px"
+        >
+          <span
+            style="
+              color: rgb(75, 155, 183);
+              font-weight: 500;
+              text-align: left;
+              font-size: 16px;
+            "
+            >鏁翠綋瓒嬪娍</span
+          >
           <el-date-picker v-model="value" type="date" placeholder="閫夋嫨鏃ユ湡">
           </el-date-picker>
         </div>
-        <div style="height:60px;display: flex;justify-content: flex-start;">
-          <el-button class="button-one">
-            瑙嗛棰勮
-          </el-button>
-          <el-button class="button-two">
-            瑙嗛宸℃煡
-          </el-button>
-          <el-button class="button-third">
-            鍥剧墖宸℃煡
-          </el-button>
-        </div>
+        <!-- <div style="height: 60px; display: flex; justify-content: flex-start">
+          <el-button class="button-one"> 瑙嗛棰勮 </el-button>
+          <el-button class="button-two"> 瑙嗛宸℃煡 </el-button>
+          <el-button class="button-third"> 鍥剧墖宸℃煡 </el-button>
+        </div> -->
       </el-header>
 
-      <el-main style="display:flex;flex-wrap: wrap;overflow-y: scroll;">
-        <div v-for="item in videoDate " style="height: 240px ;width: 210px; position: relative;margin-left:20px ;">
+      <el-main style="display: flex; flex-wrap: wrap; overflow-y: scroll">
+        <div
+          v-for="item in videoData"
+          :key="item.id"
+          style="
+            height: 360px;
+            width: 400px;
+            position: relative;
+            margin-left: 20px;
+          "
+        >
           <div
-            style="color:rgb(75, 155, 183); font-size: 11px;line-height: 18px; position: absolute; z-index: 1;left: 50px;">
-            {{ item.steert }}{{ item.community }}</div>
-          <video id="my-video" class="video-js" controls preload="auto" width="210px" height="150px"
-            :poster="item.imageUrl" data-setup="{}">
-            <source :src="item.videoUrl" type="video/mp4" />
-          </video>
-          <div class="bottonOne" @click="">鏌ョ湅瑙嗛</div>
-          <div class="bottonTwo">瑙嗛涓婃姤</div>
-          <div class="bottonThird">瀵硅</div>
+            style="
+              color: rgb(75, 155, 183);
+              font-size: 11px;
+              line-height: 18px;
+              position: absolute;
+              z-index: 1;
+              left: 50px;
+            "
+          >
+            {{ item.community }}-{{ item.name }}
+          </div>
+          <video
+            :id="item.id"
+            class="video-js"
+            controls
+            preload="auto"
+            width="400px"
+            height="300px"
+            type="video/mp4"
+          ></video>
+          <div class="button-div">
+            <div @click="loadVideo(item)">鏌ョ湅瑙嗛</div>
+            <div>瑙嗛涓婃姤</div>
+            <div @click="create(item)">瀵硅</div>
+          </div>
         </div>
       </el-main>
+      <el-dialog
+        :visible.sync="dialogCreate"
+        title="鏌ョ湅瑙嗛"
+        v-show="dialogCreate"
+        :before-close="handleClose2"
+      >
+        <div class="dom" style="width: 100%; height: 600px; position: relative">
+          <div id="dom1" class="dom1"></div>
+          <div id="dom2" class="dom2"></div>
+          <div id="dom3" class="dom3"></div>
+        </div>
+      </el-dialog>
       <el-footer>
-        <div style="margin-bottom:0;">
-          <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
-            :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" @next-click="handleNext">
-          </el-pagination>
+        <div style="margin-bottom: 0">
+          <el-pagination
+            layout="prev, pager, next"
+            @current-change="currentPageChange"
+            :total="totalNum"
+            :page-size="pageSize"
+          ></el-pagination>
         </div>
       </el-footer>
     </el-container>
   </el-container>
 </template>
+
+<script>
+// import "../../video_lib/DHWs.js";
+import departmentAside from "@/views/operate/fivepack/threepack/components/aside";
+import videoPoint from "@/api/system/videoPoint";
+
+export default {
+  components: { departmentAside },
+  data() {
+    return {
+      currentPage: 1,
+      totalNum: 7,
+      pageSize: 8,
+      videoData: [],
+      value: null,
+      dialogCreate: false,
+      cutPosX: 10,
+      cutPosY: 10,
+      cutWidth: 100,
+      cutHeight: 100,
+      crtPosX: 0,
+      crtPosY: 0,
+      crtWidth: 1000,
+      crtHeight: 600,
+      domId: "dom1",
+      ctrl: "ctrl1",
+    };
+  },
+
+  created() {
+    this.getVideoPointList();
+  },
+  mounted() {},
+  methods: {
+    loadVideo(item) {
+      if (item.platResourceId) {
+        if (Hls.isSupported()) {
+          var video = document.getElementById(item.id);
+          var hls = new Hls();
+          videoPoint.getVideoPointUrl(item.platResourceId).then((res) => {
+            if (res.code === 0) {
+              hls.loadSource(res.data);
+              hls.attachMedia(video);
+              // hls.on(Hls.Events.MANIFEST_PARSED, function () {
+              //   video.play();
+              //   document.body.addEventListener(
+              //     "click",
+              //     function () {
+              //       video.play();
+              //     },
+              //     false
+              //   );
+              // });
+              setTimeout(() => {
+                video.play();
+              }, 2000);
+            }
+          });
+        }
+      } else {
+        this.$message.error("鏆傛棤瑙嗛");
+      }
+    },
+    getVideoPointList(data) {
+      let communityId, streetId;
+      if (data) {
+        communityId = data.id;
+        streetId = data.parentId;
+      }
+      videoPoint
+        .getVideoPointList({
+          current: this.currentPage,
+          size: this.pageSize,
+          communityId,
+          streetId,
+        })
+        .then(({ records, total }) => {
+          this.videoData = records;
+          this.totalNum = total;
+        })
+        .catch((err) => this.$message.error(err));
+    },
+    selectedDepartment(data) {
+      this.getVideoPointList(data);
+    },
+    currentPageChange(page) {
+      this.currentPage = page;
+      this.getVideoPointList();
+    },
+    handleClose2() {
+      this.dialogCreate = false;
+      this.destroy();
+    },
+    login() {
+      // 璋冪敤鐧诲綍鎺ュ彛
+      this.ws.detectConnectQt().then((res) => {
+        if (res) {
+          // 杩炴帴瀹㈡埛绔垚鍔�
+          this.ws.login({
+            loginIp: "183.245.159.161",
+            loginPort: "8282",
+            userName: "suichang",
+            userPwd: "a12345677",
+            https: 1,
+          });
+          this.$message.info("鐧诲綍涓�...");
+          this.ws.on("loginState", (res) => {
+            this.isLogin = res;
+            if (res) {
+              this.$message.success("鐧诲綍鎴愬姛");
+              this.activePanel = "key2";
+            } else {
+              this.$message.info("鐧诲綍澶辫触");
+            }
+          });
+        } else {
+          // 杩炴帴瀹㈡埛绔け璐�
+          this.$message.info("璇烽噸鏂板畨瑁呭鎴风");
+        }
+      });
+    },
+    logout() {
+      // 璋冪敤鐧诲嚭鎺ュ彛
+      this.ws.logout({
+        loginIp: this.loginIp,
+      });
+    },
+    create(item) {
+      if (item.code) {
+        const DHWsInstance = DHWs.getInstance();
+        this.ws = DHWsInstance;
+        console.log(this.ws);
+        this.login();
+        // 璋冪敤鍒涘缓鎺т欢鎺ュ彛
+        // if (!this.isLogin) {
+        //      this.$message.info('姝e湪鐧婚檰瀹㈡埛绔紝璇风◢绛�......');
+        //     return false;
+        // }
+        this.dialogCreate = true;
+        setTimeout(() => {
+          let _this = this;
+          const params = [
+            {
+              // ctrlType: "realMonitorUI",
+              ctrlType: "playerWin",
+              ctrlCode: this.ctrl,
+              ctrlProperty: {
+                displayMode: 1,
+                splitNum: 1,
+                channelList: [{ channelId: item.code }],
+              },
+              visible: true,
+              domId: this.domId,
+            },
+          ];
+          this.setPos();
+          _this.ws
+            .createCtrl(params)
+            .then((res) => {
+              this.$message.success("鍒涘缓鎴愬姛");
+              console.log("res", res);
+            })
+            .catch((e) => {
+              console.log("error;", e);
+            });
+          _this.ws.on("createCtrlResult", (res) => {
+            console.warn(res);
+          });
+        }, 1000);
+      } else {
+        this.$message.error("鏆傛棤瑙嗛");
+      }
+    },
+
+    destroy() {
+      // 璋冪敤閿�姣佹帶浠舵帴鍙�
+      if (!this.isLogin) {
+        this.$Message.info("姝e湪鐧婚檰瀹㈡埛绔紝璇风◢绛�......");
+        return false;
+      }
+      const ctrls = this.ws.ctrls.map((i) => {
+        if (i.ctrlCode === this.ctrl) {
+          return i.ctrlCode;
+        }
+      });
+      this.ws.destroyCtrl(ctrls);
+    },
+    setPos() {
+      let target = document.getElementById(this.domId);
+      console.log(target, "target");
+      target.style.right = `${this.crtPosX}px`;
+      target.style.top = `${this.crtPosY}px`;
+      target.style.width = `${this.crtWidth}px`;
+      target.style.height = `${this.crtHeight}px`;
+      if (document.createEvent) {
+        var event = document.createEvent("HTMLEvents");
+        event.initEvent("resize", true, true);
+        window.dispatchEvent(event);
+      } else if (document.createEventObject) {
+        window.fireEvent("onresize");
+      }
+    },
+  },
+};
+</script>
 <style lang="scss" scoped>
 .button-one {
   height: 40px;
   width: 80px;
   margin-left: 20px;
   padding: 0;
-  background-color: #09152f;
+  // background-color: #09152f;
   color: rgb(75, 155, 183);
   border: 1px solid rgb(75, 155, 183);
 }
@@ -69,18 +312,18 @@
   height: 40px;
   width: 80px;
   padding: 0;
-  background-color: #09152f;
+  // background-color: #09152f;
   color: rgb(75, 155, 183);
   border: 1px solid rgb(75, 155, 183);
 }
-.el-button+.el-button{
+.el-button + .el-button {
   margin: 0;
 }
 .button-third {
   height: 40px;
   width: 80px;
   padding: 0;
-  background-color: #09152f;
+  // background-color: #09152f;
   color: rgb(75, 155, 183);
   border: 1px solid rgb(75, 155, 183);
 }
@@ -88,6 +331,26 @@
 .video-js {
   border: 1px solid rgb(75, 155, 183);
   margin-left: 20px;
+}
+.button-div {
+  color: rgb(75, 155, 183);
+  position: absolute;
+  height: 30px;
+  line-height: 30px;
+  width: 100%;
+  margin-left: 20px;
+  display: flex;
+  justify-content: center;
+
+  div {
+    font-size: 11px;
+    display: flex;
+    justify-content: center;
+    cursor: pointer;
+    border: 1px solid rgb(75, 155, 183);
+
+    width: 33.3%;
+  }
 }
 
 .bottonOne {
@@ -97,7 +360,7 @@
   height: 30px;
   line-height: 30px;
   margin-left: 20px;
-  width: 70px;
+  width: 33.3%;
   border: 1px solid rgb(75, 155, 183);
   cursor: pointer;
 }
@@ -108,12 +371,12 @@
   position: absolute;
   height: 30px;
   line-height: 30px;
-  width: 70px;
+  width: 33.3%;
   border: 1px solid rgb(75, 155, 183);
   margin-left: 90px;
   cursor: pointer;
 }
-.el-pagination{
+.el-pagination {
   line-height: 40px;
 }
 .bottonThird {
@@ -122,136 +385,57 @@
   position: absolute;
   height: 30px;
   line-height: 30px;
-  width: 70px;
+  width: 33.3%;
   border: 1px solid rgb(75, 155, 183);
-  margin-left: 20px;
+  margin-left: 160px;
   cursor: pointer;
 }
 
 ::v-deep .el-header {
-  background-color: #09152f;
+  // background-color: #09152f;
   color: #000;
   line-height: 60px;
 }
 
-::v-deep .el-aside {
-  background-color: #09152f;
-}
+// ::v-deep .el-aside {
+//   background-color: #09152f;
+// }
 
-::v-deep .el-menu {
-  background-color: #09152f;
-}
+// ::v-deep .el-menu {
+  // background-color: #09152f;
+// }
 
 ::v-deep .el-main,
-::v-deep .el-footer {
-  background-color: #09152f;
-}
+// ::v-deep .el-footer {
+//   background-color: #09152f;
+// }
 
 ::v-deep .el-tree-node__label {
   line-height: 30px;
   font-size: 14px;
   color: rgb(75, 155, 183);
 }
-</style>
-<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>
-<script>
-  export default {
-    data() {
-      return {
-        totalNum:7,
-        pageSize:10,
-        videoDate:[
-          {
-            id:12,
-            steert:"xx琛楅亾",
-            community:"xxx绀惧尯",
-            imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-f596f7046869736314107eed4003ce88_r.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1669953324&t=319eaeb3617f2bd98a0d5b845b35a537",
-            videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-          },
-          {
-            id:12,
-            steert:"xx琛楅亾",
-            community:"xxx绀惧尯",
-            imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-f596f7046869736314107eed4003ce88_r.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1669953324&t=319eaeb3617f2bd98a0d5b845b35a537",
-            videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-          },
-          {
-            id:12,
-            steert:"xx琛楅亾",
-            community:"xxx绀惧尯",
-            imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-f596f7046869736314107eed4003ce88_r.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1669953324&t=319eaeb3617f2bd98a0d5b845b35a537",
-            videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-          }
-          ,
-          {
-            id:12,
-            steert:"xx琛楅亾",
-            community:"xxx绀惧尯",
-            imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-f596f7046869736314107eed4003ce88_r.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1669953324&t=319eaeb3617f2bd98a0d5b845b35a537",
-            videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-          },
-          {
-            id:12,
-            steert:"xx琛楅亾",
-            community:"xxx绀惧尯",
-            imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-f596f7046869736314107eed4003ce88_r.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1669953324&t=319eaeb3617f2bd98a0d5b845b35a537",
-            videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-          }
-          ,
-          {
-            id:12,
-            steert:"xx琛楅亾",
-            community:"xxx绀惧尯",
-            imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-f596f7046869736314107eed4003ce88_r.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1669953324&t=319eaeb3617f2bd98a0d5b845b35a537",
-            videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-          }
-        ],
-        treedata: [{
-          label: '濡欓珮琛楅亾',
-          children: [{
-            label: '涓滆',
-            children: [{
-              label: '铻鸿洺鍨�'
-            }]
-          }]
-        }, {
-          label: '浜戝嘲琛楅亾',
-          children: [{
-            label: '涓滀涵',
-            children: [{
-              label: '闅旀邯'
-            }]
-          }, {
-            label: '椹ご',
-            children: [{
-              label: '榫欏彛'
-            }]
-          }]
-        }, {
-          label: '鏂拌矾婀鹃晣',
-          children: [{
-            label: '鏂拌矾婀鹃晣',
-            children: [{
-              label: '鏂拌矾婀鹃晣'
-            }]
-          }, {
-            label: '鏂拌矾婀鹃晣',
-            children: [{
-              label: '鏂拌矾婀鹃晣'
-            }]
-          }]
-        }],
-        defaultProps: {
-          children: 'children',
-          label: 'label'
-        },
-        value:''
-      };
-    },
-    methods: {
-      handleNodeClick(data) {
-        console.log(data);
-      }
-    }
-  };
-</script>
\ No newline at end of file
+.dom1 {
+  margin: 0 auto;
+}
+
+video::-webkit-media-controls-timeline {
+  display: none;
+}
+
+video::-webkit-media-controls-current-time-display {
+  display: none;
+}
+
+video::-webkit-media-controls-time-remaining-display {
+  display: none;
+}
+
+video::-webkit-media-controls-mute-button {
+  display: none;
+}
+
+video::-webkit-media-controls-toggle-closed-captions-button {
+  display: none;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0