group mangage

This commit is contained in:
cansnow
2026-01-10 15:40:38 +08:00
parent 825ac3457d
commit 941464c330
12 changed files with 392 additions and 181 deletions
@@ -1,5 +1,5 @@
<template>
<view>
<view v-if="storeCurrentMemberInGroup.muteEndTime===0">
<view class="chat_footer">
<!-- 语音信息 -->
<image class="action_btn" v-show="inputType == 'keyboard'" @click.prevent="swtichInputType('record')" mode="heightFix" src="@/static/images/chating_footer_audio.png" alt="" srcset="" />
@@ -43,12 +43,17 @@
</view>
<!-- #endif -->
</view>
<view v-else>
<view class="forbidden_footer">
<view class="mute_tip">您被禁言至{{date(storeCurrentMemberInGroup.muteEndTime)}}</view>
</view>
</view>
</template>
<script>
import {mapGetters,mapActions} from "vuex";
import {getPurePath,html2Text,getVideoCover,getVideoInfo} from "@/util/common";
import {offlinePushInfo} from "@/util/imCommon";
import {offlinePushInfo,date} from "@/util/imCommon";
import {ChatingFooterActionTypes,UpdateMessageTypes,} from "@/constant";
import IMSDK, {IMMethods,MessageStatus,MessageType,} from "openim-uniapp-polyfill";
import CustomEditor from "./CustomEditor";
@@ -101,7 +106,8 @@
"storeCurrentConversation",
"storeCurrentGroup",
"storeBlackList",
"storeCurrentUserID"
"storeCurrentUserID",
"storeCurrentMemberInGroup"
]),
hasContent() {
return html2Text(this.inputHtml) !== "";
@@ -113,6 +119,8 @@
},
},
mounted() {
console.log(this.storeCurrentGroup)
console.log(this.storeCurrentMemberInGroup)
this.setKeyboardListener();
},
beforeDestroy() {
@@ -120,6 +128,7 @@
},
methods: {
...mapActions("message", ["pushNewMessage", "updateOneMessage"]),
date,
async createTextMessage() {
let message = "";
const text = html2Text(this.inputHtml);
@@ -510,6 +519,9 @@
max-height: 120px;
padding: 10rpx 20rpx;
gap: 20rpx;
.mute_tip{
}
.input_content {
flex: 1;
@@ -1,6 +1,6 @@
<template>
<view class="text_message_container bg_container">
<u-parse :content="getContent" :previewImg="false" :showImgMenu="false" selectable></u-parse>
<u-parse :content="getContent" :previewImg="false" :showImgMenu="false"></u-parse>
</view>
</template>
+27 -15
View File
@@ -26,7 +26,7 @@
import SelectHeader from "./components/SelectHeader";
import SelectFooter from "./components/SelectFooter";
import {markConversationAsRead} from "@/util/imCommon";
import IMSDK, {MessageType} from "openim-uniapp-polyfill";
import IMSDK, {MessageType,GroupMemberRole} from "openim-uniapp-polyfill";
export default {
components: {
ChatingHeader,
@@ -52,8 +52,18 @@
...mapGetters([
"storeHistoryMessageList",
"storeCurrentUserID",
"storeCurrentConversation","storeCurrentMsg",'storeCurrentMsgID'
"storeCurrentConversation",
"storeCurrentMsg",
'storeCurrentMsgID',
"storeCurrentGroup",
"storeCurrentMemberInGroup"
]),
isOwner() {
return this.storeCurrentMemberInGroup.roleLevel === GroupMemberRole.Owner;
},
isAdmin() {
return this.storeCurrentMemberInGroup.roleLevel === GroupMemberRole.Admin;
},
},
created() {
this.Audio = uni.createInnerAudioContext(); //音频
@@ -174,7 +184,7 @@
this.onUserMessageEvent({type: 'cancelSelect'});
},
async doForwarMsg(userList, groupList, msgiem)
{
{b
//console.log(userList,groupList);
const _this = this;
for (var i = 0; i < userList.length; i++) {
@@ -234,7 +244,11 @@
}
return;
}
if (e.type == 'deleteMsg') {
if (e.type == 'deleteMsg' || e.type == 'deleteServerMsg') {
let method = IMSDK.IMMethods.DeleteMessageFromLocalStorage;
if(e.type == 'deleteServerMsg'){
method = IMSDK.IMMethods.DeleteMessage
}
let deleteMsgs = [];
if (!data) {
deleteMsgs = [...this.selectItems];
@@ -243,19 +257,11 @@
}
for (let i = 0; i < deleteMsgs.length; i++) {
let element = deleteMsgs[i];
IMSDK.asyncApi(IMSDK.IMMethods.DeleteMessageFromLocalStorage, IMSDK.uuid(), {
//IMSDK.asyncApi(IMSDK.IMMethods.DeleteMessage, IMSDK.uuid(), {
IMSDK.asyncApi(method, IMSDK.uuid(), {
conversationID: _this.storeCurrentConversation.conversationID,
clientMsgID: element.clientMsgID
}).then(res => {
}).catch(res => {
console.log('catch',res);
}).finally(() => {
console.log('finally',arguments);
})
});
}
this.selectItems = [];
this.$refs.chatingListRef.loadMessageList();
return;
@@ -316,7 +322,7 @@
})
return;
}
if(e.type == 'audio_msg_click'){
if (e.type == 'audio_msg_click'){
if(_this.storeCurrentMsgID){
_this.updateCurrentMsg({clientMsgID:""});
}else{
@@ -338,6 +344,9 @@
if (_this.storeCurrentUserID == data.sendID && diff < 120000) {
menu.push('撤回')
}
if(_this.isAdmin | _this.isOwner){
menu.push('删除(管理员功能)')
}
uni.showActionSheet({
itemList: menu,
success({tapIndex}) {
@@ -377,6 +386,9 @@
case "删除":
_this.onUserMessageEvent({type: 'deleteMsg'}, data);
break;
case "删除(管理员功能)":
_this.onUserMessageEvent({type: 'deleteServerMsg'}, data);
break;
default:
break;
}