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 | 453 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 431 insertions(+), 22 deletions(-) diff --git a/src/views/video/index.vue b/src/views/video/index.vue index 995f959..6c98008 100644 --- a/src/views/video/index.vue +++ b/src/views/video/index.vue @@ -1,32 +1,441 @@ <template> - <div> - <el-button @click="getRegion">1111111</el-button> - </div> + <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-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> --> + </el-header> + + <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.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 + layout="prev, pager, next" + @current-change="currentPageChange" + :total="totalNum" + :page-size="pageSize" + ></el-pagination> + </div> + </el-footer> + </el-container> + </el-container> </template> <script> -export default { - data(){ - return{ +// 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", + }; }, - methods:{ - getRegion(){ - // this.$axios.get('sccg/sccg-region/getTree').then(res=>{ - // console.log(res); - // }) - this.$axios({ - method:'get', - url:'sccg/sccg-region/getTree', - }) - .then(res=>{ - console.log(res); - }) - } + + 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; + color: rgb(75, 155, 183); + border: 1px solid rgb(75, 155, 183); +} + +.button-two { + height: 40px; + width: 80px; + padding: 0; + // background-color: #09152f; + color: rgb(75, 155, 183); + border: 1px solid rgb(75, 155, 183); +} +.el-button + .el-button { + margin: 0; +} +.button-third { + height: 40px; + width: 80px; + padding: 0; + // background-color: #09152f; + color: rgb(75, 155, 183); + border: 1px solid rgb(75, 155, 183); +} + +.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%; } } -</script> -<style lang="scss" scoped> +.bottonOne { + color: rgb(75, 155, 183); + font-size: 11px; + position: absolute; + height: 30px; + line-height: 30px; + margin-left: 20px; + width: 33.3%; + border: 1px solid rgb(75, 155, 183); + cursor: pointer; +} + +.bottonTwo { + color: rgb(75, 155, 183); + font-size: 11px; + position: absolute; + height: 30px; + line-height: 30px; + width: 33.3%; + border: 1px solid rgb(75, 155, 183); + margin-left: 90px; + cursor: pointer; +} +.el-pagination { + line-height: 40px; +} +.bottonThird { + color: rgb(75, 155, 183); + font-size: 11px; + position: absolute; + height: 30px; + line-height: 30px; + width: 33.3%; + border: 1px solid rgb(75, 155, 183); + margin-left: 160px; + cursor: pointer; +} + +::v-deep .el-header { + // background-color: #09152f; + color: #000; + line-height: 60px; +} + +// ::v-deep .el-aside { +// background-color: #09152f; +// } + +// ::v-deep .el-menu { + // background-color: #09152f; +// } + +::v-deep .el-main, +// ::v-deep .el-footer { +// background-color: #09152f; +// } + +::v-deep .el-tree-node__label { + line-height: 30px; + font-size: 14px; + color: rgb(75, 155, 183); +} +.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