From ccee429d379e0108b7445f72ade8d97c110a6fb3 Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期二, 09 十一月 2021 18:01:59 +0800 Subject: [PATCH] 问题修复 --- src/pages/panoramicView/components/RelateCamera.vue | 136 ++++++++++++++++++++++++++++++++------------- 1 files changed, 97 insertions(+), 39 deletions(-) diff --git a/src/pages/panoramicView/components/RelateCamera.vue b/src/pages/panoramicView/components/RelateCamera.vue index f196ec6..8933b5a 100644 --- a/src/pages/panoramicView/components/RelateCamera.vue +++ b/src/pages/panoramicView/components/RelateCamera.vue @@ -40,6 +40,7 @@ </div> </div> <!-- <div class="part" v-if="groupList.length"> --> + <el-divider></el-divider> <div class="part" v-if="groupList.length!==0 && Object.keys(curGroup)"> <div class="title">缁樺埗鍖哄煙(鐢ㄤ簬绠楁硶鍒嗘瀽)</div> <div class="relative-partment" v-if="curGroup.cameras&&curGroup.cameras.length"> @@ -48,6 +49,7 @@ </div> </div> </div> + <el-divider></el-divider> <div class="part relative-config" v-if="Object.keys(curGroup)"> <div class="title"> <div class="left"> @@ -58,7 +60,7 @@ </div> </div> <div class="relative-list"> - <div class="relative-item" v-for="item in relativeList" :key="item.id"> + <div class="relative-item" v-for="(item,index) in relativeList" :key="item.id"> <div class="left"> <el-select v-model="item.sourceObj" value-key="polygonId" size="small"> <el-option @@ -80,9 +82,18 @@ </div> <div class="right"> <el-button type="text" @click="saveRelativePolygon(item)">淇濆瓨</el-button> - <div class="btn-del" @click="delRelation(item)"> - <i class="el-icon-delete"></i> - </div> + + <el-popconfirm title="纭畾鍒犻櫎璇ラ厤缃悧?" @onConfirm="delRelation(item)" v-if="item.id"> + <el-button class="btn-del" slot="reference" type="text" icon="el-icon-delete"></el-button> + </el-popconfirm> + <el-button + @click="delRelation(item,index)" + class="btn-del" + slot="reference" + type="text" + icon="el-icon-delete" + v-else + ></el-button> </div> </div> </div> @@ -133,7 +144,7 @@ export default { components: { SlideCanvas }, - data () { + data() { return { cameraData: [], relativeList: [], @@ -152,11 +163,11 @@ cameraAndPolygonData: [] } }, - mounted () { + mounted() { this.getAllCameraData(); }, methods: { - getAllCameraData () { + getAllCameraData() { let _this = this; getCamerasByServer().then(res => { if (res.success) { @@ -167,22 +178,27 @@ console.log(e) }) }, - polygonUpdate () { + polygonUpdate() { this.getAllGroups(); }, - delRelation (item) { + delRelation(item, index) { let _this = this; - delRelation(item.id).then(res => { - if (res.success) { - this.$notify({ - type: 'success', - message: res.data - }); - _this.findRelationByGroup(); - } - }) + if (item.id) { + delRelation(item.id).then(res => { + if (res.success) { + this.$notify({ + type: 'success', + message: res.data + }); + _this.findRelationByGroup(); + } + }) + } else { + this.relativeList.splice(index, 1); + } + }, - findRelationByGroup () { + findRelationByGroup() { let _this = this; findByGroup({ groupId: this.curGroup.id }).then(res => { @@ -199,8 +215,22 @@ }) }) }, - saveRelativePolygon (item) { - debugger + saveRelativePolygon(item) { + // debugger + if (!item.sourceObj || !item.targetObj) { + this.$notify({ + type: 'warning', + message: '璇峰畬鍠勫叧鑱斿尯鍩熶俊鎭�!' + }); + return; + } + if (item.sourceObj.cameraId == item.targetObj.cameraId) { + this.$notify({ + type: 'warning', + message: '鐩稿悓鎽勫儚鏈轰笉瀛樺湪鍏宠仈鍖哄煙锛岃閲嶆柊閫夋嫨!' + }); + return; + } let _this = this; let params = { groupId: this.curGroup.id, @@ -222,17 +252,21 @@ }) }, - async findPolygonByIds (cameras) { + async findPolygonByIds(cameras) { for (var i = 0; i < cameras.length; i++) { + if (Object.keys(cameras[i]).length == 0) + continue let res = await getAllPolygon({ cameraId: cameras[i].id }); cameras[i].canvasData = res.data; } return cameras }, - async getAllGroupInfo () { + async getAllGroupInfo() { let _this = this; + console.log("_this.cameraData", _this.cameraData) let res = await findCameraGroups(); + console.log("res", res); let groupArr = res.data.map(item => { let obj = {}; //group obj.groupName = item.groupName; @@ -275,39 +309,55 @@ // _this.checkCurrentGroup(_this.groupList[0]); // }) // }, - async getAllGroups () { + async getAllGroups() { let _this = this; let groups = await this.getAllGroupInfo(); + console.log("groups", groups) for (var i = 0; i < groups.length; i++) { groups[i].cameras = await _this.findPolygonByIds(groups[i].cameras) } this.groupList = groups; - //閫変腑绗竴涓� - this.groupList.length && this.checkCurrentGroup(_this.groupList[0]); + this.groupList.reverse(); + //濡傛灉鍒氭柊寤哄垯閫変腑绗竴涓�,缂栬緫鍒欓�変腑缂栬緫鐨勯偅鏉� + if (!this.groupForm.id) { + this.groupList.length && this.checkCurrentGroup(_this.groupList[0]); + } else { + let group = this.groupList.find(one => one.id == this.groupForm.id); + if (group) { + this.groupList.length && this.checkCurrentGroup(group); + } else { + this.groupList.length && this.checkCurrentGroup(_this.groupList[0]); + } + + } + }, - addRelation () { + addRelation() { let obj = { cameraArea1: '', cameraArea2: '' }; this.relativeList.push(obj) }, - editGroup (group) { + editGroup(group) { + // debugger this.groupModelVisible = true; //this.$refs['groupForm'].resetFields(); - this.groupForm = group; + //this.groupForm = group; + this.groupForm = JSON.parse(JSON.stringify(group)); }, - removeGroup (group) { + removeGroup(group) { let _this = this; delCameraGroup(group.id).then(res => { _this.getAllGroups() }) }, - checkCurrentGroup (group) { + checkCurrentGroup(group) { this.groupList.forEach(group => { group.checked = false; - }) + }); this.curGroup = group; + this.groupForm = JSON.parse(JSON.stringify(group)); this.curGroup.checked = true; this.findRelationByGroup(); //鏌ヨ绗竴涓垎缁勪笅鎽勫儚鏈哄尯鍩� @@ -332,10 +382,9 @@ tempArr = tempArr.concat(cameraArea) }); this.cameraAreas = tempArr; - console.log(this.cameraAreas) }) }, - confirmGroupDialog () { + confirmGroupDialog() { //璇锋眰淇濆瓨鏂板缓鎴栫紪杈戝垎缁� let _this = this; let params = { @@ -370,12 +419,18 @@ }) //this.groupList.push(this.groupForm); saveCameraGroupInfo(params).then(res => { + if (res.success) { + this.$notify({ + type: 'success', + message: '淇濆瓨鎴愬姛!' + }) + } _this.getAllGroups(); }) this.groupModelVisible = false; }, - newGroup () { + newGroup() { this.groupModelVisible = true; this.$nextTick(() => { this.$refs['groupForm'].resetFields(); @@ -440,8 +495,8 @@ .details { display: -webkit-box; overflow: hidden; - text-overflow:ellipsis; - word-break:break-all; + text-overflow: ellipsis; + word-break: break-all; -webkit-box-orient: vertical; -webkit-line-clamp: 2; //flex-wrap: wrap; @@ -460,7 +515,7 @@ position: relative; display: flex; &:after { - content: ''; + content: ""; position: absolute; font-size: 0; width: 1px; @@ -482,7 +537,7 @@ margin-bottom: 20px; .relative-partment { width: 1200px; - margin: 0 auto; + // margin: 0 auto; display: flex; justify-content: space-between; .area-wrap { @@ -512,6 +567,9 @@ .right { display: flex; align-items: center; + .el-button + .el-button { + margin-left: 0; + } } i { font-size: 20px; -- Gitblit v1.8.0