From 2cb264ec2b7c7dd9798d1821927104fad35bd063 Mon Sep 17 00:00:00 2001 From: ZZJ <10913410+zzj2100@user.noreply.gitee.com> Date: 星期二, 28 六月 2022 14:47:43 +0800 Subject: [PATCH] 系统设置自适应 --- src/pages/cameraAccess/components/SeparateRules.vue | 373 ++++++++++++++++++++++++++++++----------------------- 1 files changed, 210 insertions(+), 163 deletions(-) diff --git a/src/pages/cameraAccess/components/SeparateRules.vue b/src/pages/cameraAccess/components/SeparateRules.vue index 19fb894..bb1e9e3 100644 --- a/src/pages/cameraAccess/components/SeparateRules.vue +++ b/src/pages/cameraAccess/components/SeparateRules.vue @@ -2,7 +2,7 @@ <div class="s-separate-rules"> <div class="ai"> <div class="check-area"> - <div class="ai-select"> + <div class="ai-select" v-if="TreeDataPool.selectedNode.type !== 'MENU'"> <div v-show="cameraType === 'camera'"> <span> <span class="label">瑙嗛鍒嗘瀽澶勭悊</span> @@ -15,7 +15,11 @@ </span> </div> - <div v-if="Camera.analytics" class="flex-box" v-show="cameraType === 'camera'"> + <div + v-if="Camera.analytics" + class="flex-box" + v-show="cameraType === 'camera'" + > <span class="label">澶勭悊鏂瑰紡</span> <toggle-button :value="Camera.dealWay" @@ -24,20 +28,29 @@ :color="{ checked: '#3D68E1', unchecked: '#FF7733', - disabled: '#CCCCCC' + disabled: '#CCCCCC', }" :sync="true" @change="changePoll" /> </div> - <div v-if="Camera.analytics" class="flex-box" v-show="cameraType === 'camera'"> + <div + v-if="Camera.analytics" + class="flex-box" + v-show="cameraType === 'camera'" + > <span class="label">澶勭悊鐘舵��: {{ camStatus }}</span> </div> - <div v-if="Camera.analytics" class="flex-box" v-show="cameraType === 'camera'"> + <div + v-if="Camera.analytics" + class="flex-box" + v-show="cameraType === 'camera'" + > <span class="label" >鍒嗚鲸鐜�: {{ - Camera.camearInfo.resolution_width == 0 || Camera.camearInfo.resolution_height == 0 + Camera.camearInfo.resolution_width == 0 || + Camera.camearInfo.resolution_height == 0 ? "鏈満鍒嗚鲸鐜�" : `${Camera.camearInfo.resolution_width} * ${Camera.camearInfo.resolution_height}` }}</span @@ -51,7 +64,12 @@ <div v-if="Camera.analytics" class="flex-box"> <span class="label">绠楁硶蹇�熼�氶亾</span> <div class="channel flex-box"> - <el-tooltip effect="dark" content="澶嶅埗姝ゆ憚鍍忔満绠楁硶瑙勫垯" placement="bottom" popper-class="atooltip"> + <el-tooltip + effect="dark" + content="澶嶅埗姝ゆ憚鍍忔満绠楁硶瑙勫垯" + placement="bottom" + popper-class="atooltip" + > <span style="color: #3d68e1; cursor: pointer; font-size: 23px" @click="ctrlC" @@ -61,7 +79,9 @@ <el-tooltip effect="dark" :content=" - !TreeDataPool.ctrlCameraId ? '绮樿创绠楁硶瑙勫垯' : `绮樿创绠楁硶瑙勫垯锛屾潵婧愶細${TreeDataPool.ctrlCameraName}` + !TreeDataPool.ctrlCameraId + ? '绮樿创绠楁硶瑙勫垯' + : `绮樿创绠楁硶瑙勫垯锛屾潵婧愶細${TreeDataPool.ctrlCameraName}` " placement="bottom" popper-class="atooltip" @@ -108,13 +128,19 @@ <div class="draw-box"> <div class="draw-box-title"> <b style="font-size: 14px">缁樺埗鍖哄煙</b> - <span class="el-dropdown-link" @click="drawBaseImg" style="position: relative; top: 5px; cursor: pointer"> + <span + class="el-dropdown-link" + @click="drawBaseImg" + style="position: relative; top: 5px; cursor: pointer" + > <i class="iconfont iconbianji1" style="font-size: 28px"></i> </span> </div> <div style="width: 590px; height: 16px"> <b style="font-size: 14px">{{ - Camera.camearInfo.alias ? Camera.camearInfo.alias : Camera.camearInfo.name + Camera.camearInfo.alias + ? Camera.camearInfo.alias + : Camera.camearInfo.name }}</b> </div> <div class="img-box"> @@ -150,9 +176,16 @@ class="swiper-box-container2" style="width: 100%" > - <swiper-slide v-for="(data, index) in swipercanvasData" :key="index"> + <swiper-slide + v-for="(data, index) in swipercanvasData" + :key="index" + > <div> - <b class="video-title" style="font-size: 14px; margin-top: -10px">{{ data.name }}</b> + <b + class="video-title" + style="font-size: 14px; margin-top: -10px" + >{{ data.name }}</b + > <polygon-canvas class="cavas" ref="canvas" @@ -176,12 +209,20 @@ </div> </swiper-slide> </swiper> - <div class="swiper-local-prev" v-show="swipercanvasData.length > 1" @click="prevClick"> + <div + class="swiper-local-prev" + v-show="swipercanvasData.length > 1" + @click="prevClick" + > <div class="icon-btn" slot="button-prev"> <i class="iconfont iconzuo"></i> </div> </div> - <div class="swiper-local-next" v-show="swipercanvasData.length > 1" @click="nextClick"> + <div + class="swiper-local-next" + v-show="swipercanvasData.length > 1" + @click="nextClick" + > <div class="icon-btn" slot="button-next"> <i class="iconfont iconyou1"></i> </div> @@ -219,21 +260,21 @@ </template> <script> -import { savePolygon } from "@/api/polygon" +import { savePolygon } from "@/api/polygon"; -import { pasteRules } from "@/api/task" -import { getCameraInfo } from "@/api/camera" -import { saveCameraScene } from "@/api/scene" +import { pasteRules } from "@/api/task"; +import { getCameraInfo } from "@/api/camera"; +import { saveCameraScene } from "@/api/scene"; -import { changeRunType } from "@/api/pollConfig" -import { findAllFileByStackId } from "@/api/localVedio" -import VideoRuleData from "@/Pool/VideoRuleData" +import { changeRunType } from "@/api/pollConfig"; +import { findAllFileByStackId } from "@/api/localVedio"; +import VideoRuleData from "@/Pool/VideoRuleData"; -import TimeSlider from "./TimeSlider" -import polygonCanvas from "@/components/canvas" -import Sysinfo from "@/components/subComponents/SystemInfo" -import SceneRule from "./SceneRule" -import SlideScene from "./scene/SlideScene" +import TimeSlider from "./TimeSlider"; +import polygonCanvas from "@/components/canvas"; +import Sysinfo from "@/components/subComponents/SystemInfo"; +import SceneRule from "./SceneRule"; +import SlideScene from "./scene/SlideScene"; export default { components: { @@ -241,19 +282,21 @@ polygonCanvas, Sysinfo, SceneRule, - SlideScene + SlideScene, }, directives: { focus: { - inserted: function(el) { - el.querySelector("input").focus() - } - } + inserted: function (el) { + el.querySelector("input").focus(); + }, + }, }, computed: { cameraType() { - return this.TreeDataPool.treeActiveName === "camera" ? "camera" : "dataStack" - } + return this.TreeDataPool.treeActiveName === "camera" + ? "camera" + : "dataStack"; + }, }, data() { return { @@ -266,12 +309,12 @@ grabCursor: true, pagination: { el: ".swiper-pagination", - type: "fraction" + type: "fraction", }, navigation: { nextEl: ".swiper-local-next", - prevEl: ".swiper-local-prev" - } + prevEl: ".swiper-local-prev", + }, }, tableRuleList: [], camStatus: "", @@ -284,28 +327,28 @@ swiperIndex: 0, swipercanvasData: [], stackFilesPage: 1, - stackFilesSize: 5 - } + stackFilesSize: 5, + }; }, mounted() { - this.PollData.statistics() + this.PollData.statistics(); }, watch: { "Camera.cameraId": { handler(n, o) { if (n) { if (this.TreeDataPool.treeActiveName == "dataStack") { - this.stackFilesPage = 1 - this.stackFilesSize = 5 - this.stackId = n + this.stackFilesPage = 1; + this.stackFilesSize = 5; + this.stackId = n; if (this.stackId) { - this.swipercanvasData = [] - this.getStackFiles() + this.swipercanvasData = []; + this.getStackFiles(); } } } - } - } + }, + }, }, methods: { getStatus() { @@ -313,296 +356,300 @@ if (res.success) { switch (res.data.status) { case 0: - this.camStatus = "鏈厤瑙勫垯" - return + this.camStatus = "鏈厤瑙勫垯"; + return; case 1: - this.camStatus = "绛夊緟杞澶勭悊" - return + this.camStatus = "绛夊緟杞澶勭悊"; + return; case 2: - this.camStatus = "姝e湪鎵ц鍒嗘瀽澶勭悊" - return + this.camStatus = "姝e湪鎵ц鍒嗘瀽澶勭悊"; + return; case -1: - this.camStatus = "鍏朵粬鎯呭喌瀵艰嚧鏈鐞�" - return + this.camStatus = "鍏朵粬鎯呭喌瀵艰嚧鏈鐞�"; + return; case -2: - this.camStatus = "鏁呴殰瀵艰嚧鏈鐞�" - return + this.camStatus = "鏁呴殰瀵艰嚧鏈鐞�"; + return; } } - }) + }); }, prevClick() { if (this.swiperIndex == 0) { if (this.stackFilesPage > 1) { - this.stackFilesPage-- - this.getStackFiles(true) + this.stackFilesPage--; + this.getStackFiles(true); } else { this.$message({ type: "info", - message: "褰撳墠宸叉槸绗竴椤�" - }) + message: "褰撳墠宸叉槸绗竴椤�", + }); } } }, nextClick() { if (this.swiperIndex == this.swipercanvasData.length - 1) { - this.stackFilesPage++ - this.getStackFiles(true) + this.stackFilesPage++; + this.getStackFiles(true); } }, getStackFiles(onClick = false) { - this.getStackFileLoading = true - let _this = this + this.getStackFileLoading = true; + let _this = this; findAllFileByStackId({ name: "", stackId: this.stackId, page: this.stackFilesPage, size: this.stackFilesSize, - type: 0 + type: 0, }) .then((res) => { if (res && res.success) { if (res.data.dataList.length > 0) { - this.swipercanvasData = [] + this.swipercanvasData = []; this.swipercanvasData = res.data.dataList.map((item) => { return { name: item.name, stackId: item.stack_id, baseImg: - item.type == 2 ? `/files/${item.path.substr(item.path.lastIndexOf("/") + 1)}` : item.snapshot_url, + item.type == 2 + ? `/files/${item.path.substr( + item.path.lastIndexOf("/") + 1 + )}` + : item.snapshot_url, type: item.type, id: item.id, - loading: false - } - }) - this.swiperIndex = 0 - this.$refs.swiper.swiper.activeIndex = 0 + loading: false, + }; + }); + this.swiperIndex = 0; + this.$refs.swiper.swiper.activeIndex = 0; } else { if (onClick) { this.$message({ type: "warning", - message: "宸叉棤鏇村鏁版嵁!" - }) + message: "宸叉棤鏇村鏁版嵁!", + }); } } } else { this.$message({ type: "error", - message: "鏁版嵁璇锋眰澶辫触,璇风◢鍚庨噸璇�!" - }) + message: "鏁版嵁璇锋眰澶辫触,璇风◢鍚庨噸璇�!", + }); } - this.getStackFileLoading = false + this.getStackFileLoading = false; }) .catch((e) => { - this.getStackFileLoading = false - }) + this.getStackFileLoading = false; + }); }, swiperSlideChange() { - this.swiperIndex = this.$refs.swiper.swiper.activeIndex + this.swiperIndex = this.$refs.swiper.swiper.activeIndex; }, drawBaseImg() { if (Array.isArray(this.$refs.canvas)) { if (this.$refs.canvas.length > 0) { - this.$refs.canvas[0].showModal() + this.$refs.canvas[0].showModal(); } } else { - this.$refs.canvas.showModal() + this.$refs.canvas.showModal(); } }, getCanvasData(data) { - let polyon = { ...data } - polyon.camera_id = this.Camera.cameraId + let polyon = { ...data }; + polyon.camera_id = this.Camera.cameraId; savePolygon(polyon).then((rsp) => { - this.Camera.getPolygon() + this.Camera.getPolygon(); //this.Camera.getCameraTask(); - }) + }); }, refresh(url) { - this.Camera.baseImg = url + this.Camera.baseImg = url; }, // 鍒濆鍖栨憚鍍忔満淇℃伅锛岀埗缁勪欢璋冪敤 async initCameraData(id, type) { - this.Camera = new VideoRuleData() + this.Camera = new VideoRuleData(); if (id && id !== "") { - this.loading = false - this.Camera.cameraId = id - this.Camera.gb28181 = type === 1 + this.loading = false; + this.Camera.cameraId = id; + this.Camera.gb28181 = type === 1; if (type === 1) { - await this.Camera.update(true) + await this.Camera.update(true); } else { - await this.Camera.update() + await this.Camera.update(); } } - this.$refs.timeSlider.activeTab = this.VideoManageData.TimeRules[0].id - this.showSysInfo = true + this.$refs.timeSlider.activeTab = this.VideoManageData.TimeRules[0].id; + this.showSysInfo = true; // 鍒ゆ柇姝e湪鎵ц瀹炴椂鎴栬�呰疆璇换鍔� this.PollData.CameraList.forEach((element) => { if (element.id === this.Camera.cameraId) { - this.runType = element.run_type + this.runType = element.run_type; } - }) + }); }, saveSceneRule(groupRule) { - const payload = { ...groupRule } - payload.cameraIds = [this.Camera.cameraId] - let _this = this + const payload = { ...groupRule }; + payload.cameraIds = [this.Camera.cameraId]; + let _this = this; saveCameraScene(payload).then((rsp) => { if (rsp && rsp.success) { - this.Camera.update() + this.Camera.update(); this.$notify({ type: "success", - message: "绛栫暐淇濆瓨鎴愬姛锛�" - }) + message: "绛栫暐淇濆瓨鎴愬姛锛�", + }); //鍒锋柊宸︿晶鏍� - _this.$root.$children[0].$children[0].querySearchAsync("camera") + _this.$root.$children[0].$children[0].querySearchAsync("camera"); } - }) + }); }, delScenRule() { - this.Camera.update() + this.Camera.update(); }, changeLoading(params) { - this.loading = params + this.loading = params; }, //鏄惁杩涜瑙嗛鍒嗘瀽澶勭悊 pollEnable(row) { - let val = 0 + let val = 0; if (row) { if (this.PollData.RealTimeSum < this.PollData.channelTotal) { - this.Camera.dealWay = true - val = 1 + this.Camera.dealWay = true; + val = 1; } else { - this.Camera.dealWay = false - val = 0 + this.Camera.dealWay = false; + val = 0; } } else { - this.Camera.dealWay = false - val = -1 + this.Camera.dealWay = false; + val = -1; } if (this.Camera.cameraId && this.Camera.cameraId !== undefined) { changeRunType({ camera_ids: [this.Camera.cameraId], - run_type: val + run_type: val, }).then((rsp) => { - this.getStatus() + this.getStatus(); if (rsp && rsp.success) { this.$notify({ type: "success", - message: "閰嶇疆鎴愬姛" - }) + message: "閰嶇疆鎴愬姛", + }); } else { this.$notify({ type: "error", - message: "閰嶇疆澶辫触" - }) + message: "閰嶇疆澶辫触", + }); } - this.TreeDataPool.fetchTreeData() - }) + this.TreeDataPool.fetchTreeData(); + }); } - this.PollData.statisticTaskInfo() + this.PollData.statisticTaskInfo(); }, //瀹炴椂銆佽疆璇㈠垏鎹� changePoll(row) { //鍒ゆ柇鏄柊澧炶繕鏄洿鏂� - debugger + debugger; if (this.Camera.cameraId && this.Camera.cameraId !== undefined) { if (this.PollData.RealTimeSum < this.PollData.channelTotal) { if (row.value) { - this.Camera.dealWay = true + this.Camera.dealWay = true; } else { - this.Camera.dealWay = false + this.Camera.dealWay = false; } - debugger + debugger; changeRunType({ camera_ids: [this.Camera.cameraId], - run_type: this.Camera.dealWay ? 1 : 0 + run_type: this.Camera.dealWay ? 1 : 0, }).then((rsp) => { if (rsp && rsp.success) { this.$notify({ type: "success", - message: "閰嶇疆鎴愬姛" - }) + message: "閰嶇疆鎴愬姛", + }); } else { this.$notify({ type: "error", - message: "閰嶇疆澶辫触" - }) + message: "閰嶇疆澶辫触", + }); } - }) + }); } else { if (this.Camera.dealWay) { - this.Camera.dealWay = false - debugger + this.Camera.dealWay = false; + debugger; changeRunType({ camera_ids: [this.Camera.cameraId], - run_type: this.Camera.dealWay ? 1 : 0 + run_type: this.Camera.dealWay ? 1 : 0, }).then((rsp) => { if (rsp && rsp.success) { this.$notify({ type: "success", - message: "閰嶇疆鎴愬姛" - }) + message: "閰嶇疆鎴愬姛", + }); } else { this.$notify({ type: "error", - message: "閰嶇疆澶辫触" - }) + message: "閰嶇疆澶辫触", + }); } - }) + }); } } - this.TreeDataPool.fetchTreeData() - this.PollData.statisticTaskInfo() + this.TreeDataPool.fetchTreeData(); + this.PollData.statisticTaskInfo(); } }, //澶嶅埗 ctrlC() { - this.TreeDataPool.ctrlCameraId = this.Camera.cameraId - this.TreeDataPool.ctrlCameraName = this.Camera.cameraName + this.TreeDataPool.ctrlCameraId = this.Camera.cameraId; + this.TreeDataPool.ctrlCameraName = this.Camera.cameraName; this.$notify({ type: "success", - message: "澶嶅埗绠楁硶鎴愬姛锛�" - }) + message: "澶嶅埗绠楁硶鎴愬姛锛�", + }); }, ctrlV() { if (this.Camera.cameraId === this.TreeDataPool.ctrlCameraId) { this.$notify({ type: "warning", - message: "涓嶈兘绮樿创鏈憚鍍忔満鐨勭畻娉曞埌鏈憚鍍忔満锛�" - }) - return false + message: "涓嶈兘绮樿创鏈憚鍍忔満鐨勭畻娉曞埌鏈憚鍍忔満锛�", + }); + return false; } pasteRules({ sourceId: this.TreeDataPool.ctrlCameraId, - targetIds: [this.Camera.cameraId] + targetIds: [this.Camera.cameraId], }) .then((res) => { if (res && res.success) { this.$notify({ type: "success", - message: "绮樿创绠楁硶鎴愬姛锛�" - }) - this.initCameraData(this.Camera.cameraId) + message: "绮樿创绠楁硶鎴愬姛锛�", + }); + this.initCameraData(this.Camera.cameraId); } else { this.$notify({ type: "error", - message: "绮樿创绠楁硶澶辫触锛�" - }) + message: "绮樿创绠楁硶澶辫触锛�", + }); } }) .catch((err) => { this.$notify({ type: "error", - message: "绮樿创绠楁硶澶辫触锛�" - }) - }) - } - } -} + message: "绮樿创绠楁硶澶辫触锛�", + }); + }); + }, + }, +}; </script> <style lang="scss"> .el-message--info .el-message__content { -- Gitblit v1.8.0