From 4a800a8fc83c6bd1f86a8e847b079a51a7532c09 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 20 七月 2022 15:05:58 +0800 Subject: [PATCH] 修复国标配置的bug --- src/pages/cameraAccess/components/LinkageRule.vue | 274 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 166 insertions(+), 108 deletions(-) diff --git a/src/pages/cameraAccess/components/LinkageRule.vue b/src/pages/cameraAccess/components/LinkageRule.vue index c48517a..d57a3d7 100644 --- a/src/pages/cameraAccess/components/LinkageRule.vue +++ b/src/pages/cameraAccess/components/LinkageRule.vue @@ -1,38 +1,63 @@ <template> <div class="s-linkage-rules"> - <div class="top"> + <!-- <div class="top"> <p style="text-align:left;margin-bottom: 14px;"> - <b style="font-size: 14px;line-height: 18px;">宸查�夌畻娉�</b> + <b style="font-size: 14px;line-height: 18px;">鍦烘櫙</b> </p> - - <div class="clearfix"> + <div class="clearfix" style="min-width:1570px;"> <div class="slide-scene"> - <span class="task-tip" v-if="tableRuleList.length == 0 ">鏆傛棤绠楁硶锛岃鍦ㄧ嫭绔嬭鍒欎腑閫夋嫨绠楁硶</span> <slide-scene :sceneData="tableRuleList"></slide-scene> </div> - <!-- <slide-scene :sceneData="Camera.rules"></slide-scene> --> - <!-- 绯荤粺淇℃伅 --> <div class="top-right"> <sysinfo v-if="showSysInfo" - style="margin-left: 10px;margin-top: -10px;" + style="margin-top: -10px;" :ShowLocalVedio="this.TreeDataPool.treeActiveName !== 'camera'" :showRealPoll="this.TreeDataPool.treeActiveName == 'camera'" /> </div> </div> + </div>--> + <div class="top"> + <p class="task-css"> + <b style="font-size: 14px; line-height: 18px">鍦烘櫙</b> + </p> + <div class="clearfix"> + <slide-scene :sceneData="tableRuleList"></slide-scene> + <div class="top-right"> + <sysinfo + v-if="showSysInfo" + style="margin-top: -10px" + :ShowLocalVedio="this.TreeDataPool.treeActiveName !== 'camera'" + :showRealPoll="this.TreeDataPool.treeActiveName == 'camera'" + /> + <!-- <sysinfo + :showRealPoll="cameraType === 'camera'" + :ShowLocalVedio="cameraType === 'dataStack'" + v-if="showSysInfo" + style="margin-top:-10px" + />--> + </div> + </div> </div> - <div class="bottom"> <div class="devide"></div> <div class="bottom-right"> <div class="draw-and-time-box"> <div class="draw-box"> - <p style="text-align:left;padding: 10px 0px 0px 0px;box-sizing: border-box;"> + <p + style=" + text-align: left; + padding: 10px 0px 0px 0px; + box-sizing: border-box; + " + > <b style="font-size: 14px">鏌ョ湅鍖哄煙</b> </p> <div class="img-box"> - <span class="camera-tip" v-show="swipercanvasData.length == 0 ">鏆傛棤鍖哄煙锛岃鑷冲皯閫夋嫨2涓憚鍍忔満</span> + <span class="camera-tip" v-show="swipercanvasData.length == 0" + >鏆傛棤鍖哄煙锛岃鑷冲皯閫夋嫨2涓憚鍍忔満</span + > <!-- swiper 灞曠ず --> <swiper ref="swiper" @@ -40,8 +65,15 @@ @slideChange="swiperSlideChange" class="swiper-box-container2" > - <swiper-slide v-for="(data, index) in swipercanvasData" :key="index"> - <b class="video-title" style="font-size:14px;margin-top:-10px">{{ data.name }}</b> + <swiper-slide + v-for="(data, index) in swipercanvasData" + :key="index" + > + <b + class="video-title" + style="font-size: 14px; margin-top: -10px" + >{{ data.name }}</b + > <polygon-canvas ref="canvas" v-loading="loading" @@ -57,27 +89,38 @@ :currentCameraId="data.cameraId" @changeLoading="changeLoading" @fromCanvas="getCanvasData" + @refresh="refresh" ></polygon-canvas> </swiper-slide> </swiper> - <div class="swiper-local-prev" v-show="swipercanvasData.length>1"> + <div + class="swiper-local-prev" + v-show="swipercanvasData.length > 1" + > <div class="icon-btn" slot="button-prev"> <i class="iconfont iconzuo"></i> </div> </div> - <div class="swiper-local-next" v-show="swipercanvasData.length>1"> + <div + class="swiper-local-next" + v-show="swipercanvasData.length > 1" + > <div class="icon-btn" slot="button-next"> <i class="iconfont iconyou1"></i> </div> </div> </div> </div> - <div style="float:left;width:calc(10% - 90px);height:100%;"></div> + <div style="float: left; width: calc(10% - 90px); height: 100%"></div> <div class="time-box" - style="width:calc(90% + 90px - 576px);overflow-x:auto;overflow-y:hidden" + style=" + width: calc(90% + 90px - 576px); + overflow-x: auto; + overflow-y: hidden; + " > - <p style="text-align:left;padding: 10px;box-sizing: border-box"> + <p style="text-align: left; padding: 10px; box-sizing: border-box"> <b style="font-size: 14px">鏃堕棿瑙勫垯</b> </p> <time-slider ref="timeSlider" :type="'link'" /> @@ -91,6 +134,7 @@ :tableRuleList="tableRuleList" :onSaveScene="saveSceneRule" @delete-rule="showRules" + v-loading="loadingRuleList" ></scene-rule> </div> </div> @@ -98,15 +142,13 @@ </template> <script> -import { - saveLinkScene, - getLinkSceneRule, -} from '@/api/scene' +import { saveLinkScene, getLinkSceneRule } from "@/api/scene"; import VideoRuleData from "@/Pool/VideoRuleData"; import polygonCanvas from "@/components/canvas"; import TimeSlider from "./TimeSlider"; -import Sysinfo from "./SystemInfo" +//import Sysinfo from "./SystemInfo" +import Sysinfo from "@/components/subComponents/SystemInfo"; import SceneRule from "./SceneRule"; import SlideScene from "./scene/SlideScene"; @@ -116,32 +158,18 @@ polygonCanvas, SceneRule, Sysinfo, - SlideScene + SlideScene, }, computed: { selectedCameraIds() { - let ids = []; - if (this.TreeDataPool.treeActiveName == 'dataStack') { - if (this.TreeDataPool.checkedLocalVedio.length > 0) { - ids = this.TreeDataPool.checkedLocalVedio.map(i => { - return i.id; - }) - - } - } else { - if (this.TreeDataPool.selectedNodes.length > 0) { - ids = this.TreeDataPool.selectedNodes; - } - } - - return ids; - } + return this.TreeDataPool.selectedNodes; + }, }, data() { return { loading: false, + loadingRuleList: false, Carmeras: [], - Camera: new VideoRuleData(), tasksTable: {}, swipercanvasData: [], seqNumber: 0, @@ -151,26 +179,27 @@ grabCursor: true, pagination: { el: ".swiper-pagination", - type: "fraction" + type: "fraction", }, navigation: { nextEl: ".swiper-local-next", - prevEl: ".swiper-local-prev" - } + prevEl: ".swiper-local-prev", + }, }, swiperTaskOption: { slidesPerView: 4, // spaceBetween: 10, pagination: { el: ".swiper-pagination", - clickable: true + clickable: true, }, navigation: { nextEl: ".next-border", - prevEl: ".pre-border" - } + prevEl: ".pre-border", + }, }, - showSysInfo: false + showSysInfo: false, + requestSeq: "", }; }, watch: { @@ -178,31 +207,32 @@ handler(newVal, oldVal) { this.setSwiperData(); }, - deep: true - } + deep: true, + }, }, methods: { swiperSlideChange() { this.swiperIndex = this.$refs.swiper.swiper.activeIndex; }, - initCameraData() { + initCameraData(type) { this.$nextTick(() => { this.Carmeras = []; - this.loading = false; - this.showSysInfo = true - if (this.TreeDataPool.treeActiveName == 'dataStack') { - this.TreeDataPool.checkedLocalVedio.forEach(camera => { - this.Carmeras.push(new VideoRuleData(camera.id)); + this.showSysInfo = true; + + if (type === 1) { + this.selectedCameraIds.forEach((cid) => { + this.Carmeras.push(new VideoRuleData(cid, true)); }); } else { - this.TreeDataPool.selectedNodes.forEach(camera => { - this.Carmeras.push(new VideoRuleData(camera)); + this.selectedCameraIds.forEach((cid) => { + this.Carmeras.push(new VideoRuleData(cid)); }); } + this.$refs.timeSlider.activeTab = this.VideoManageData.TimeRules[0].id; this.showRules(); - }) + }); }, setSwiperData() { let swipers = []; @@ -218,15 +248,35 @@ } this.swipercanvasData = swipers; }, - getCanvasData() { }, + refresh(url, id) { + this.swipercanvasData.forEach((data) => { + if (data.cameraId == id) { + data.baseImg = url; + } + }); + //this.Camera.baseImg = url + }, + getCanvasData() {}, + newUid() { + let originStr = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; + let originChar = "0123456789abcdef"; + let len = originChar.length; + return originStr.replace(/x/g, function (match) { + return originChar.charAt(Math.floor(Math.random() * len)); + }); + }, showRules() { this.tableRuleList = []; if (this.selectedCameraIds.length > 0) { - getLinkSceneRule({ cameraIds: this.selectedCameraIds }).then( - rsp => { - if (rsp && rsp.success) { + this.loadingRuleList = true; + let seq = this.newUid(); + this.requestSeq = seq; + getLinkSceneRule({ cameraIds: this.selectedCameraIds }) + .then((rsp) => { + this.loadingRuleList = false; + if (rsp && rsp.success && seq === this.requestSeq) { this.tableRuleList = rsp.data; // 缁熶竴瑙勫垯缂栬緫鐨勬暟鎹粨鏋� @@ -235,71 +285,81 @@ } } // this.TreeDataPool.fetchTreeData(); - } - ); + }) + .catch(() => { + this.loadingRuleList = false; + }); } - }, saveSceneRule(groupRule) { - const payload = { ...groupRule } + const payload = { ...groupRule }; + if (!payload.rules) { + this.$message({ + type: "warning", + message: "瑙勫垯鍙傛暟鏈夎", + }); + + return; + } + payload.cameraIds = this.selectedCameraIds; - saveLinkScene(payload).then(rsp => { - if (rsp && rsp.success) { - //this.Camera.update(); - this.initCameraData(); - this.$notify({ - type: "success", - message: "浠诲姟淇濆瓨鎴愬姛锛�" - }); - } else { - this.$notify({ + saveLinkScene(payload) + .then((rsp) => { + if (rsp && rsp.success) { + //this.Camera.update(); + this.initCameraData(); + // this.showRules(); + this.$notify({ + type: "success", + message: "浠诲姟淇濆瓨鎴愬姛锛�", + }); + } else { + this.$notify({ + type: "error", + message: rsp.data, + }); + } + }) + .catch((err) => { + this.$message({ type: "error", - message: rsp.data + message: "淇濆瓨澶辫触锛�", }); - } - }).catch(err => { - this.$message({ - type: "error", - message: "淇濆瓨澶辫触锛�" + err.data }); - }); }, changeLoading(params) { - this.loading = params - } - } + this.loading = params; + }, + }, }; </script> <style lang="scss"> .s-linkage-rules { width: 100%; //height: 100%; - padding: 13px 0 20px; + //padding: 13px 0 20px; position: relative; - .devide{ + .devide { height: 10px; - background: #E9EBF2; + background: #e9ebf2; } .top { width: 100%; padding: 10px 20px; box-sizing: border-box; - top: 0; .swiper-box { height: 100%; float: left; - width: 48%; + width: 46%; margin-top: -10px; position: relative; } .swiper-container { position: initial; min-width: 472px; - width: 80%; - - // height: 124px; + width: 86%; } .swiper-slide { position: relative; @@ -338,10 +398,6 @@ backdrop-filter: blur(1px) brightness(100%); display: none; } - - // @media screen and(max-width: 1280px) { - // max-width: 110px; - // } @media screen and(max-width: 1440px) { max-width: 110px; } @@ -383,8 +439,17 @@ } .top-right { float: right; - width: 52%; + width: 54%; height: 144px; + .card-box { + width: 54% !important; + } + .eCharts-box { + width: 45%; + canvas { + width: 98% !important; + } + } } .task-css { text-align: left; @@ -394,7 +459,7 @@ .bottom { width: 100%; - + margin-bottom: 20px; .bottom-side { height: 100%; width: 250px; @@ -547,13 +612,6 @@ } .add-btn:hover { color: #2249b4; - } - .task-tip { - font-family: PingFangSC-Regular; - font-size: 12px; - color: #cccccc; - margin-top: 10%; - margin-left: 38%; } } </style> -- Gitblit v1.8.0