admin revoke

This commit is contained in:
commie
2026-01-12 18:07:21 +08:00
parent e39c06526d
commit dd16348558
13 changed files with 123 additions and 60 deletions
+42 -9
View File
@@ -11,12 +11,12 @@
/>
<view class="search_bar_wrap">
<u-search disabled class="search_bar" shape="square" placeholder="搜索" :showAction="false"
<u-search class="search_bar" shape="square" placeholder="搜索" :showAction="false"
v-model="keyword" />
</view>
<u-list class="member_list" @scrolltolower="loadMore" lowerThreshold="100" height="1">
<u-list-item v-for="member in groupMemberList" :key="member.userID">
<u-list-item v-for="member in filterGroupMemberList" :key="member.userID">
<user-item
@itemClick="userClick"
@updateCheck="updateCheck"
@@ -73,6 +73,7 @@
showConfirmModal: false,
comfirmLoading: false,
groupMemberList: [],
filterGroupMemberList:[],
choosedMemberIDList: [],
choosedTransferMember: {},
type: GroupMemberListTypes.Preview,
@@ -139,6 +140,15 @@
groupMemberLength() {
return this.$store.getters.storeCurrentGroup?.memberCount ?? 0;
},
},
watch:{
keyword(v){
this.filterGroupMemberList = this.getFilterGroupMemberList();
},
groupMemberList(v){
this.filterGroupMemberList = this.getFilterGroupMemberList();
},
},
onLoad(options) {
const {
@@ -173,6 +183,27 @@
},
methods: {
getFilterGroupMemberList(){
if(this.keyword){
return this.groupMemberList.filter((item)=>{
const kw = this.keyword.toLowerCase();
if(item.nickname && item.nickname.toLowerCase().includes(kw)){
return true;
}
if(item.showName && item.showName.toLowerCase().includes(kw)){
return true;
}
if(item.remark && item.remark.toLowerCase().includes(kw)){
return true;
}
if(item.groupName && item.groupName.toLowerCase().includes(kw)){
return true;
}
return false;
});
}
return this.groupMemberList;
},
async pageClick(e) {
if (!moreActionArea) {
moreActionArea = await this.getEl(".more_container");
@@ -290,6 +321,7 @@
data
}) => {
this.groupMemberList = [...this.groupMemberList, ...data];
this.filterGroupMemberList = this.getFilterGroupMemberList();
this.loadState.hasMore = data.length === 500;
})
.finally(() => (this.loadState.loading = false));
@@ -302,7 +334,7 @@
if(!this.isOwner&&!this.isAdmin){
return ;
}
if(this.$store.getters.storeCurrentMemberInGroup.roleLevel == member.roleLevel ){
if(this.$store.getters.storeCurrentMemberInGroup.roleLevel <= member.roleLevel ){
return ;
}
let itemList = [];
@@ -316,8 +348,9 @@
uni.showActionSheet({
itemList:itemList,
async success({tapIndex}) {
if(tapIndex == 0){
let roleId = itemList[tapIndex]=='设为管理员' ? GroupMemberRole.Admin : GroupMemberRole.Normal;
const label = itemList[tapIndex];
if(['设为管理员','取消管理员'].includes(label)){
let roleId = label=='设为管理员' ? GroupMemberRole.Admin : GroupMemberRole.Normal;
await IMSDK.asyncApi(IMSDK.IMMethods.SetGroupMemberInfo,IMSDK.uuid(),{
roleLevel:roleId,
@@ -332,21 +365,21 @@
});
return ;
}
if(tapIndex == 1){
if(itemList[tapIndex]=='取消禁言'){
if(['取消禁言','设置禁言'].includes(label)){
if(label == '取消禁言'){
_this.setMute(member.userID,0)
return ;
}
uni.showActionSheet({
itemList:['2小时','8小时','1天','3天','7天','15天','30天','1年'],
async success(res){
success(res){
const secs = [3600*2,3600*8,3600*24,3600*72,3600*24*7,3600*24*15,3600*24*30,3600*24*365];
_this.setMute(member.userID,secs[res.tapIndex])
}
});
return ;
}
if(tapIndex == 2){
if(label=="踢出群聊"){
await IMSDK.asyncApi(IMSDK.IMMethods.KickGroupMember,IMSDK.uuid(),{
groupID:_this.groupID,
reason:"",