From 1cc4da26c0dfb93bb3b9800f2c82988cfc4af3d6 Mon Sep 17 00:00:00 2001 From: odc.xiaohui <xiaohui@Q1> Date: 星期一, 22 五月 2023 11:45:07 +0800 Subject: [PATCH] 群组聊天修改 --- src/api/common.js | 2 src/api/group.js | 12 ++++- src/icons/userlady.jpg | 0 src/views/cause/Group.vue | 89 ++++++++++++++++++++++++++++++++++++++++++-- vue.config.js | 4 +- src/icons/userman.jpg | 0 6 files changed, 97 insertions(+), 10 deletions(-) diff --git a/src/api/common.js b/src/api/common.js index c914421..441ab79 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -36,4 +36,4 @@ method: 'post', data: params }) -} \ No newline at end of file +} diff --git a/src/api/group.js b/src/api/group.js index d7ec686..b47c50d 100644 --- a/src/api/group.js +++ b/src/api/group.js @@ -45,14 +45,14 @@ return request({ url: '/group/allowSpeech?id='+params+"&&groupId="+param1, method: 'put', - + }) } export function setBanSpeechAll(params) { return request({ url: '/group/banSpeechAll?id='+params, - method: 'put', + method: 'put', }) } @@ -75,4 +75,10 @@ url: '/group/sendMessage?text='+param+'&id='+param1, method: 'get', }) -} \ No newline at end of file +} +export function delmsg(param) { + return request({ + url: '/message/deleteById?id='+param, + method: 'delete', + }) +} diff --git a/src/icons/userlady.jpg b/src/icons/userlady.jpg new file mode 100644 index 0000000..2e6ece9 --- /dev/null +++ b/src/icons/userlady.jpg Binary files differ diff --git a/src/icons/userman.jpg b/src/icons/userman.jpg new file mode 100644 index 0000000..1454701 --- /dev/null +++ b/src/icons/userman.jpg Binary files differ diff --git a/src/views/cause/Group.vue b/src/views/cause/Group.vue index 29d926c..9ac20df 100644 --- a/src/views/cause/Group.vue +++ b/src/views/cause/Group.vue @@ -1,5 +1,12 @@ <template> <div class="groupCommunication"> + <ul + v-show="visible" + :style="{ left: left + 'px', top: top + 'px' }" + class="contextmenu" + > + <li @click="deletemsg">鍒犻櫎</li> + </ul> <div class="group-left"> <el-input v-model="filterText" class="inputleft" placeholder="璇疯緭鍏�" suffix-icon="el-icon-search"> <!-- <el-button slot="append" icon="el-icon-search" style="width:10px;" @click="pick"></el-button> --> @@ -25,13 +32,16 @@ <ul id="container" class="group-right-left-seach-body-box-ul" style="overflow:auto;height: 558px"> <li v-for="messageOne in messageList" class="group-right-left-seach-body-box-li"> <div class="group-right-left-seach-body-box-imgmessage"> - <img v-if="messageOne.pic != null && messageOne.pic != ''" :src="messageOne.pic" class="group-img" + <img v-if="messageOne.flag =='0'" src="../../icons/userman.jpg" class="group-img" > - <img v-if="messageOne.pic == null || messageOne.pic == ''" class="group-img" + <img v-else-if="messageOne.flag =='1'" class="group-img" + src="../../icons/userlady.jpg"> + <img v-else class="group-img" src="../../icons/7bedbaa41b1744fbfe0c55b507fd9e28.png"> <div style="margin-left: 10px">{{ messageOne.userName }} {{ messageOne.ctime }}</div> </div> <div + @contextmenu.prevent="openMenu($event,messageOne.messageId)" :class="messageOne.remark!==null&&messageOne.remark!==undefined?'activemess':'group-right-left-seach-body-box-text' "> {{ messageOne.text }} </div> @@ -99,7 +109,7 @@ setBanSpeechAll, getGroupMessage, getGroupMessageContext, - seed, + seed, delmsg, //saveSubject } from '@/api/group' import {Message} from 'element-ui'; @@ -110,10 +120,29 @@ watch: { filterText(val) { this.$refs.tree.filter(val); - } + }, + // 鐩戝惉灞炴�у璞★紝newValue涓烘柊鐨勫�硷紝涔熷氨鏄敼鍙樺悗鐨勫�� + visible(newValue, oldValue) { + if (newValue) { + //鑿滃崟鏄剧ず鐨勬椂鍊� + // document.body.addEventListener锛宒ocument.body.removeEventListener瀹冧滑閮芥帴鍙�3涓弬鏁� + // ("浜嬩欢鍚�" , "浜嬩欢澶勭悊鍑芥暟" , "甯冨皵鍊�"); + // 鍦╞ody涓婃坊鍔犱簨浠跺鐞嗙▼搴� + document.body.addEventListener("click", this.closeMenu); + } else { + //鑿滃崟闅愯棌鐨勬椂鍊� + // 绉婚櫎body涓婃坊鍔犵殑浜嬩欢澶勭悊绋嬪簭 + document.body.removeEventListener("click", this.closeMenu); + } + }, + }, data() { return { + delId:null, + visible: false, + top: 0, + left: 0, groupIdlist: null, timer: '', userIdAll: 1, @@ -161,7 +190,36 @@ mounted() { this.timer = setInterval(this.setHand, 5000) }, + methods: { + deletemsg(){ + console.log('鍒犻櫎娑堟伅锛�') + let obj={ + id:this.delId + } + delmsg(this.delId).then(res=>{ + console.log(res) + this.$message.success(res) + this.handleNodeClick(this.groupIdlist) + }) + }, + //鍙冲嚮 + openMenu(e,id) { + console.log(e,id) + clearInterval(this.timer); + this.delId = id + var x = e.pageX; //杩欎釜搴旇鏄浉瀵逛簬鏁翠釜娴忚鍣ㄩ〉闈㈢殑x鍧愭爣锛屽乏涓婅涓哄潗鏍囧師鐐癸紙0,0锛� + var y = e.pageY; //杩欎釜搴旇鏄浉瀵逛簬鏁翠釜娴忚鍣ㄩ〉闈㈢殑y鍧愭爣锛屽乏涓婅涓哄潗鏍囧師鐐癸紙0,0锛� + this.top = y; + this.left = x; + this.visible = true; //鏄剧ず鑿滃崟 + + }, + //鍏抽棴鑿滃崟 + closeMenu() { + this.visible = false; //鍏抽棴鑿滃崟 + this.timer = setInterval(this.setHand, 5000) + }, load() { this.count += 2 @@ -586,4 +644,27 @@ margin-left: 35px; color: red; } + +.contextmenu { + margin: 0; + background: #fff; + z-index: 3000; + position: fixed; //鍏抽敭鏍峰紡璁剧疆鍥哄畾瀹氫綅 + list-style-type: none; + padding: 5px 0; + border-radius: 4px; + font-size: 12px; + font-weight: 400; + color: #333; + box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); +} + +.contextmenu li { + margin: 0; + padding: 7px 16px; + cursor: pointer; +} +.contextmenu li:hover { + background: #eee; +} </style> diff --git a/vue.config.js b/vue.config.js index 3b9696e..65bd747 100644 --- a/vue.config.js +++ b/vue.config.js @@ -7,8 +7,8 @@ open: true, proxy: { '/api': { - // target: 'http://192.168.3.220:8080', - target: 'https://qyqjzdd.cdqingyang.gov.cn/qyjz', + target: 'http://192.168.3.220:8080', + // target: 'https://qyqjzdd.cdqingyang.gov.cn/qyjz', changeOrigin: true, pathRewrite: { '^/api': '' -- Gitblit v1.8.0