271 lines
5.7 KiB
Vue
271 lines
5.7 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="TUI-Create-conversation-container">
|
|||
|
|
<view class="tui-search-area">
|
|||
|
|
<view class="tui-search-bar">
|
|||
|
|
<image class="tui-searchcion"
|
|||
|
|
src="https://jw-uniapp.oss-cn-beijing.aliyuncs.com/static/assets/serach-icon.svg"></image>
|
|||
|
|
<input class="tui-search-bar-input" :value="groupID" placeholder="请输入群ID(5213)" @input="groupIDInput"
|
|||
|
|
@confirm="searchGroupByID" @blur="searchGroupByID" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="tui-person-to-invite" v-if="searchGroup.groupID">
|
|||
|
|
<image @tap="handleChoose" class="tui-normal-choose"
|
|||
|
|
:src="isChoose ? 'https://jw-uniapp.oss-cn-beijing.aliyuncs.com/static/assets/single-choice-hover.svg' : 'https://jw-uniapp.oss-cn-beijing.aliyuncs.com/static/assets/single-choice-normal.svg'">
|
|||
|
|
</image>
|
|||
|
|
<view class="tui-person-profile">
|
|||
|
|
<image class="tui-person-profile-avatar"
|
|||
|
|
:src="groupAvatar || 'https://jw-uniapp.oss-cn-beijing.aliyuncs.com/static/images/gruopavatar.png'">
|
|||
|
|
</image>
|
|||
|
|
<view>
|
|||
|
|
<view class="tui-person-profile-nick">{{ searchGroup.name }}</view>
|
|||
|
|
<view class="tui-person-profile-userID">群ID:{{ searchGroup.groupID }}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="tui-confirm-btn" @tap="bindConfirmJoin">确认加入</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
export default {
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
groupID: '',
|
|||
|
|
searchGroup: {
|
|||
|
|
groupID: '',
|
|||
|
|
name: ''
|
|||
|
|
},
|
|||
|
|
isChoose: false,
|
|||
|
|
groupAvatar: ''
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
components: {},
|
|||
|
|
props: {},
|
|||
|
|
methods: {
|
|||
|
|
goBack() {
|
|||
|
|
uni.navigateBack({
|
|||
|
|
delta: 1
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
groupIDInput(e) {
|
|||
|
|
this.setData({
|
|||
|
|
groupID: e.detail.value
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
searchGroupByID() {
|
|||
|
|
uni.$TUIKit
|
|||
|
|
.searchGroupByID(this.groupID)
|
|||
|
|
.then(imResponse => {
|
|||
|
|
if (imResponse.data.group.groupID !== '') {
|
|||
|
|
this.searchGroup = imResponse.data.group;
|
|||
|
|
if (imResponse.data.group.avatar !== 'FaceUrl') {
|
|||
|
|
this.groupAvatar = imResponse.data.group.avatar;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
.catch(imError => {
|
|||
|
|
uni.hideLoading();
|
|||
|
|
|
|||
|
|
if (imError.code === 10007) {
|
|||
|
|
uni.showToast({
|
|||
|
|
title: '讨论组类型群不允许申请加群',
|
|||
|
|
icon: 'none'
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
uni.showToast({
|
|||
|
|
title: '未找到该群组',
|
|||
|
|
icon: 'none'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
handleChoose() {
|
|||
|
|
this.isChoose = !this.isChoose;
|
|||
|
|
this.setData({
|
|||
|
|
searchGroup: this.searchGroup
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
bindConfirmJoin() {
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (this.isChoose) {
|
|||
|
|
uni.$TUIKit
|
|||
|
|
.joinGroup({
|
|||
|
|
groupID: this.groupID,
|
|||
|
|
type: this.searchGroup.type
|
|||
|
|
})
|
|||
|
|
.then(imResponse => {
|
|||
|
|
switch (imResponse.data.status) {
|
|||
|
|
case uni.$TUIKitTIM.TYPES.JOIN_STATUS_WAIT_APPROVAL:
|
|||
|
|
// 等待管理员同意
|
|||
|
|
console.log('等待管理员同意')
|
|||
|
|
this.$msg('等待管理员同意');
|
|||
|
|
break;
|
|||
|
|
case uni.$TUIKitTIM.TYPES.JOIN_STATUS_SUCCESS:
|
|||
|
|
// 加群成功
|
|||
|
|
console.log('加群成功', imResponse.data.group); // 加入的群组资料
|
|||
|
|
uni.redirectTo({
|
|||
|
|
url: `/pages/im/chat/chat?conversationID=GROUP${this.searchGroup.groupID}`
|
|||
|
|
});
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case uni.$TUIKitTIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP:
|
|||
|
|
// 已经在群中
|
|||
|
|
console.log('已经在群中'); // 加入的群组资料
|
|||
|
|
this.$msg('已经在群中');
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
.catch(imError => {
|
|||
|
|
console.warn('joinGroup error:', imError); // 申请加群失败的相关信息
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
uni.showToast({
|
|||
|
|
title: '请选择相关群聊',
|
|||
|
|
icon: 'error'
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped>
|
|||
|
|
.TUI-Create-conversation-container {
|
|||
|
|
width: 100vw;
|
|||
|
|
height: 100vh;
|
|||
|
|
background-color: #f4f5f9;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-navigatorbar {
|
|||
|
|
position: absolute;
|
|||
|
|
top: 0;
|
|||
|
|
width: 750rpx;
|
|||
|
|
height: 176rpx;
|
|||
|
|
background-color: #5856d5;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-navigatorbar-back {
|
|||
|
|
position: absolute;
|
|||
|
|
width: 48rpx;
|
|||
|
|
height: 48rpx;
|
|||
|
|
left: 24rpx;
|
|||
|
|
bottom: 20rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.conversation-title {
|
|||
|
|
position: absolute;
|
|||
|
|
width: 350rpx;
|
|||
|
|
height: 88rpx;
|
|||
|
|
line-height: 56rpx;
|
|||
|
|
font-size: 36rpx;
|
|||
|
|
color: #ffffff;
|
|||
|
|
z-index: 100;
|
|||
|
|
bottom: 0;
|
|||
|
|
left: 200rpx;
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: center;
|
|||
|
|
align-items: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-search-area {
|
|||
|
|
position: absolute;
|
|||
|
|
width: 750rpx;
|
|||
|
|
height: 144rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-search-bar {
|
|||
|
|
display: flex;
|
|||
|
|
flex-wrap: nowrap;
|
|||
|
|
align-items: center;
|
|||
|
|
margin-left: 40rpx;
|
|||
|
|
margin-top: 32rpx;
|
|||
|
|
width: 670rpx;
|
|||
|
|
height: 80rpx;
|
|||
|
|
background: #ffffff;
|
|||
|
|
border-radius: 40rpx;
|
|||
|
|
border-radius: 40rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-searchcion {
|
|||
|
|
display: inline-block;
|
|||
|
|
margin-left: 24rpx;
|
|||
|
|
width: 48rpx;
|
|||
|
|
height: 48rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-search-bar-input {
|
|||
|
|
margin-left: 16rpx;
|
|||
|
|
line-height: 40rpx;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
width: 100%;
|
|||
|
|
display: inline-block;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-person-to-invite {
|
|||
|
|
position: absolute;
|
|||
|
|
display: flex;
|
|||
|
|
flex-wrap: nowrap;
|
|||
|
|
width: 750rpx;
|
|||
|
|
height: 150rpx;
|
|||
|
|
background-color: #ffffff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-normal-choose {
|
|||
|
|
margin-left: 40rpx;
|
|||
|
|
margin-right: 40rpx;
|
|||
|
|
margin-top: 52rpx;
|
|||
|
|
margin-bottom: 50rpx;
|
|||
|
|
width: 48rpx;
|
|||
|
|
height: 48rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-person-profile {
|
|||
|
|
width: 622rpx;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-person-profile-avatar {
|
|||
|
|
width: 96rpx;
|
|||
|
|
height: 96rpx;
|
|||
|
|
margin-right: 24rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-person-profile-nick {
|
|||
|
|
color: #333333;
|
|||
|
|
line-height: 50rpx;
|
|||
|
|
font-size: 36rpx;
|
|||
|
|
margin-bottom: 4rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-person-profile-userID {
|
|||
|
|
color: #999999;
|
|||
|
|
line-height: 40rpx;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tui-confirm-btn {
|
|||
|
|
position: absolute;
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: center;
|
|||
|
|
align-items: center;
|
|||
|
|
bottom: 100rpx;
|
|||
|
|
width: 670rpx;
|
|||
|
|
height: 96rpx;
|
|||
|
|
background: #5856d5;
|
|||
|
|
color: #ffffff;
|
|||
|
|
border-radius: 48rpx;
|
|||
|
|
border-radius: 48rpx;
|
|||
|
|
margin-left: 40rpx;
|
|||
|
|
line-height: 44rpx;
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
}
|
|||
|
|
</style>
|