From 3c4d54bcb66d7cec4a35defc999250e200b4fdd2 Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期四, 25 五月 2023 15:39:37 +0800 Subject: [PATCH] 不予立案 --- src/views/cause/Group.vue | 552 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 394 insertions(+), 158 deletions(-) diff --git a/src/views/cause/Group.vue b/src/views/cause/Group.vue index c2b58ab..e6d35a0 100644 --- a/src/views/cause/Group.vue +++ b/src/views/cause/Group.vue @@ -1,7 +1,14 @@ <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" suffix-icon="el-icon-search" class="inputleft" placeholder="璇疯緭鍏�"> + <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> --> </el-input> <el-tree ref="tree" :data="treeData" :filter-node-method="filterNode" :props="treeProps" @@ -14,59 +21,74 @@ <div class="group-right-box"> <div class="group-right-left-seach"> <div class="group-right-left-seach-body"> - <el-select v-model="queryInfo.status" placeholder="璇烽�夋嫨"> - <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - <el-input style="margin-left: 5px" v-model="queryInfo.select" placeholder="璇疯緭鍏ユ垚鍛樻垨鍐呭"></el-input> - <el-button style="margin-left: 5px" type="primary" @click="search">鎼滅储</el-button> - </div> + <el-select v-model="queryInfo.status" placeholder="璇烽�夋嫨"> + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + <el-input v-model="queryInfo.select" placeholder="璇疯緭鍏ユ垚鍛樻垨鍐呭" style="margin-left: 5px"></el-input> + <el-button style="margin-left: 5px" type="primary" @click="search">鎼滅储</el-button> + </div> <div class="group-right-left-seach-body-box"> - <ul style="overflow:auto;height: 558px" class="group-right-left-seach-body-box-ul"> - <li v-for="messageOne in messageList" class="group-right-left-seach-body-box-li" > - <div class="group-right-left-seach-body-box-imgmessage"> - <img class="group-img" v-if="messageOne.pic != null && messageOne.pic != ''" :src="messageOne.pic" - > - <img class="group-img" v-if="messageOne.pic == null || messageOne.pic == ''" - src="../../icons/7bedbaa41b1744fbfe0c55b507fd9e28.png"> - <div style="margin-left: 10px">{{ messageOne.userName }} {{ messageOne.ctime }}</div> - </div> - <div class="group-right-left-seach-body-box-text">{{ messageOne.text }}</div> + <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.flag =='0'" src="../../icons/userman.jpg" 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> </li> </ul> </div> - <div class="group-right-left-seach-body-box-reply"> + <div class="group-right-left-seach-body-box-reply"> <span style="margin-left: 15px">娑堟伅鍥炲</span> <el-input v-model="field103" :autosize="{ minRows: 4, maxRows: 8 }" :style="{ width: '100%' }" placeholder="璇疯緭鍏ュ洖澶嶄俊鎭�" type="textarea"> </el-input> <div style="text-align: right"> - <el-button :disabled="sendBtn" style="text-align: right" size="mini" type="primary" @click="seedMessage">鍙戦��</el-button> + <el-button :disabled="sendBtn" size="mini" style="text-align: right" type="primary" @click="seedMessage"> + 鍙戦�� + </el-button> </div> </div> </div> <div class="group-right-box-ul"> <ul class="group-right-box-ul-title" style="padding: 0 10px"> - <div> - 缇ゅ叕鍛� - </div> + <div> + 缇ゅ叕鍛� + </div> <li v-for="(item,index) in groupAnList" :key="index"> - 缇ゅ叕鍛婏細 {{item.text}} + 缇ゅ叕鍛婏細 {{ item.text }} </li> </ul> </div> <div class="group-right-box-ul"> <ul class="group-right-box-ul-title" style="margin: 0"> - <div style="display: flex;justify-content: space-between;align-items: center;border-bottom: 1px solid #ccc;padding: 0 10px"> + <div + style="display: flex;justify-content: space-between;align-items: center;border-bottom: 1px solid #ccc;padding: 0 10px"> <span>缇ゆ垚鍛�</span> - <el-button style="color: #0086b3;margin-right: 10px" icon="el-icon-turn-off-microphone" type="text" @click="allBanSpeech">鍏ㄤ綋绂佽█</el-button> + <el-button icon="el-icon-turn-off-microphone" style="color: #0086b3;margin-right: 10px" type="text" + @click="allBanSpeech">鍏ㄤ綋绂佽█ + </el-button> </div> <li v-for="(item,index) in tableData" :key="index" style="padding: 0 10px"> - {{item.userName}} - <el-button v-if="item.banSpeech==0" style="color: red" type="text" @click="speech(item.userId, item.banSpeech, item.groupId)" >绂佽█</el-button> - <el-button v-if="item.banSpeech==1" style="color: green" type="text" @click="speech(item.userId, item.banSpeech, item.groupId)">鍏佽鍙戣█</el-button> + {{ item.userName }} + <el-button v-if="item.banSpeech==0" style="color: red" type="text" + @click="speech(item.userId, item.banSpeech, item.groupId)">绂佽█ + </el-button> + <el-button v-if="item.banSpeech==1" style="color: green" type="text" + @click="speech(item.userId, item.banSpeech, item.groupId)">鍏佽鍙戣█ + </el-button> </li> </ul> </div> @@ -87,7 +109,7 @@ setBanSpeechAll, getGroupMessage, getGroupMessageContext, - seed, + seed, delmsg, //saveSubject } from '@/api/group' import {Message} from 'element-ui'; @@ -98,12 +120,34 @@ 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, count: 0, - sendBtn:true, + sendBtn: true, options: [ { value: '0', @@ -140,111 +184,257 @@ created() { this.init(); }, + beforeDestroy() { + clearInterval(this.timer); + }, + 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 }, //缇ょ粍鍚嶇О - init() { - getName().then( - res => { - this.treeData[0].children = res; - } - ) - var params = window.location.href.split("id=") - if (params.length != 1) { - var param = {id: params[1]} - this.handleNodeClick(param) - + init() { + getName().then( + res => { + this.treeData[0].children = res; } - }, - filterNode(value, data) { - if (!value) return true; - return data.groupName.indexOf(value) !== -1; - }, - // pick(){ - // this.filterNode(this.filterVal,this.data); - // }, - handleNodeClick(data) { - if (data.id != null) { - this.groupName = data.groupName; - var _this = this; - getAllMessage(data.id).then((res) => { + ) + var params = window.location.href.split("id=") + if (params.length != 1) { + var param = {id: params[1]} + this.handleNodeClick(param) - for (let item of res) { - if (item.pic === '' || item.pic === null) { - } else { - getImgUrl(item.pic).then(res => { - item.pic = res - }) - } - } - this.messageList = res - this.sendBtn=false + } + }, + filterNode(value, data) { + if (!value) return true; + return data.groupName.indexOf(value) !== -1; + }, + // pick(){ + // this.filterNode(this.filterVal,this.data); + // }, + setHand() { + if (this.groupIdlist) { + this.handleNodeClick(this.groupIdlist) + } else { + return + } + }, + async getListGro(data) { + console.log(data) + await getAllMessage(data.id).then((res) => { + + for (let item of res) { + if (item.pic === '' || item.pic === null) { + } else { + getImgUrl(item.pic).then(res => { + item.pic = res }) - getAllNotice(data.id).then(res => this.groupAnList = res) - getAllUser(data.id).then(res => this.tableData = res) - this.groupId = data.id; } - }, - search() { - if (this.queryInfo.status == 0) { - getGroupMessage(this.queryInfo, this.groupId).then(res => this.messageList = res) + } + res.map(item => { + item.remark = null + }) + this.messageList = res + + this.sendBtn = false + }) + await getAllNotice(data.id).then(res => this.groupAnList = res) + await getAllUser(data.id).then(res => { + console.log(this.messageList) + console.log(res) + + for (let i = 0; i < this.messageList.length; i++) { + for (let j = 0; j < res.length; j++) { + if (this.messageList[i].userName == res[j].userName) { + this.messageList[i].remark = res[j].remark + } } - if (this.queryInfo.status == 1) { - getGroupMessageContext(this.queryInfo, this.groupId).then(res => this.messageList = res) + } + this.tableData = res + + }) + this.scrollHeight() + }, + async handleNodeClick(data) { + console.log(data) + this.groupIdlist = data + this.groupId = data.id; + if (data.id != null) { + this.groupName = data.groupName; + var _this = this; + this.userIdAll = data.id + + await getAllMessage(data.id).then((res) => { + + for (let item of res) { + if (item.pic === '' || item.pic === null) { + } else { + getImgUrl(item.pic).then(res => { + item.pic = res + }) + } } - }, - allBanSpeech() { - setBanSpeechAll(this.groupId).then( - res => { - this.$message({ - message: '绂佽█鎴愬姛', - type: 'success' - }); - getAllUser(this.groupId).then(res => this.tableData = res) + res.map(item => { + item.remark = null + }) + this.messageList = res + + this.sendBtn = false + }) + await getAllNotice(data.id).then(res => this.groupAnList = res) + await getAllUser(data.id).then(res => { + console.log(this.messageList) + console.log(res) + + for (let i = 0; i < this.messageList.length; i++) { + for (let j = 0; j < res.length; j++) { + if (this.messageList[i].userName == res[j].userName) { + this.messageList[i].remark = res[j].remark } - ) - }, - speech(val, val2, val3) { - if (val2 == 0) { - setBanSpeech(val, val3).then( - res => { - this.$message({ - message: '绂佽█鎴愬姛', - type: 'success' - }); - getAllUser(val3).then(res => this.tableData = res) + } + } + this.tableData = res + + }) + console.log(this.messageList) + this.scrollHeight() + } + + }, + async getAlluserList(id) { + await getAllUser(this.userIdAll).then(res => { + + console.log(res) + for (let i = 0; i < this.messageList.length; i++) { + for (let j = 0; j < res.length; j++) { + if (this.messageList[i].userName == res[j].userName) { + this.messageList[i].remark = res[j].remark + } + } + } + this.tableData = res + console.log(this.messageList) + }) + }, + scrollHeight() { + let message = document.getElementById('container'); + message.scrollTop = message.scrollHeight; + }, + search() { + if (this.queryInfo.status == 0) { + getGroupMessage(this.queryInfo, this.groupId).then(res => this.messageList = res) + } + if (this.queryInfo.status == 1) { + getGroupMessageContext(this.queryInfo, this.groupId).then(res => this.messageList = res) + } + }, + allBanSpeech() { + setBanSpeechAll(this.groupId).then( + res => { + this.$message({ + message: '绂佽█鎴愬姛', + type: 'success' + }); + getAllUser(this.groupId).then(res => this.tableData = res) + } + ) + }, + speech(val, val2, val3) { + if (val2 == 0) { + setBanSpeech(val, val3).then( + res => { + this.$message({ + message: '绂佽█鎴愬姛', + type: 'success' + }); + getAllUser(val3).then(res => this.tableData = res) + } + ) + + } + if (val2 == 1) { + setAllowSpeech(val, val3).then( + res => { + this.$message({ + message: '鍏佽鍙戣█', + type: 'success' + }); + getAllUser(val3).then(res => this.tableData = res) + } + ) + } + }, + seedMessage() { + + seed(this.field103, this.groupId).then(async res => { + this.$message({ + message: '鍥炲鎴愬姛', + type: 'success' + }); + await getAllMessage(this.groupId).then(res => { + res.map(item => { + if (item.pic === '' || item.pic === null) { + + } else { + item.pic = '/minio/img/' + item.pic } - ) + + }) + this.messageList = res + // console.log(res) + + }) + this.getAlluserList() + this.scrollHeight() + // for (let item of this.messageList) { + // if (item.pic === '' || item.pic === null) { + // } else { + // getImgUrl(item.pic).then(res => { + // item.pic = res + // }) + // } + // } + + this.field103 = ''; } - if (val2 == 1) { - setAllowSpeech(val, val3).then( - res => { - this.$message({ - message: '鍏佽鍙戣█', - type: 'success' - }); - getAllUser(val3).then(res => this.tableData = res) - } - ) - } - }, - seedMessage() { - seed(this.field103, this.groupId).then(res => { - this.$message({ - message: '鍥炲鎴愬姛', - type: 'success' - }); - getAllMessage(this.groupId).then(res => this.messageList = res) - this.field103 = ''; - } - ) - }, - }, + ) + }, + }, } </script> @@ -253,83 +443,100 @@ * { list-style: none; } -.groupCommunication{ + +.groupCommunication { display: flex; height: 100%; background-color: #fff; - .group-left{ + + .group-left { width: 300px; - .inputleft{ + + .inputleft { margin-top: 10px; margin-left: 5px; } } - .group-right{ + + .group-right { margin-left: 10px; border-left: 1px solid #ccc; padding-left: 10px; background-color: #fff; //flex-grow: 1; - .group-right-name{ + .group-right-name { margin-bottom: 10px; font-size: 16px; font-weight: 900; margin-top: 10px; } - .group-right-box{ + + .group-right-box { display: flex; - .group-right-left-seach{ + + .group-right-left-seach { width: 420px; - .group-right-left-seach-body{ - display: flex; - } - .group-right-left-seach-body-box{ - .group-right-left-seach-body-box-ul{ - .group-right-left-seach-body-box-li{ - margin-top: 15px; - .group-right-left-seach-body-box-imgmessage{ - display: flex; - color: #ccc; - .group-img{ - width: 25px; - height: 25px; - border-radius: 100px; - - } - } - .group-right-left-seach-body-box-text{ - margin-left: 35px; - } - } - } + .group-right-left-seach-body { + display: flex; } - .group-right-left-seach-body-box-reply{ + + .group-right-left-seach-body-box { + .group-right-left-seach-body-box-ul { + .group-right-left-seach-body-box-li { + margin-top: 15px; + + .group-right-left-seach-body-box-imgmessage { + display: flex; + color: #ccc; + + .group-img { + width: 25px; + height: 25px; + border-radius: 100px; + + } + } + + .group-right-left-seach-body-box-text { + margin-left: 35px; + } + } + } + + } + + .group-right-left-seach-body-box-reply { padding: 10px; border: 1px solid #ccc; - ::v-deep .el-textarea__inner{ + + ::v-deep .el-textarea__inner { border: none; resize: none; } } } - .group-right-box-ul{ + + .group-right-box-ul { border: 1px solid #ccc; margin-left: 15px; width: 420px; overflow: auto; - .group-right-box-ul-title{ + + .group-right-box-ul-title { padding: 0; } - .group-right-box-ul-title>li{ - margin-top: 10px; + + .group-right-box-ul-title > li { + margin-top: 10px; } } } } } + .container { width: 34%; } @@ -399,17 +606,17 @@ width: 25%; } -.table >>> .el-table__row > td { +.table > > > .el-table__row > td { /* 鍘婚櫎琛ㄦ牸绾� */ border: none; } -.table1 >>> .el-table__row > td { +.table1 > > > .el-table__row > td { /* 鍘婚櫎琛ㄦ牸绾� */ border: none; } -.table2 >>> .el-table__row > td { +.table2 > > > .el-table__row > td { /* 鍘婚櫎琛ㄦ牸绾� */ border: none; } @@ -432,4 +639,33 @@ ::v-deep(.el-table thead) { color: #000000; } + +.activemess { + 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> -- Gitblit v1.8.0