This commit is contained in:
2022-02-24 09:15:24 +08:00
14 changed files with 87 additions and 91 deletions

View File

@@ -38,8 +38,12 @@
transferGroupOwner
} from '@/apis/interfaces/im.js'
import utils from '@/utils/index.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase
],
props: {
targetId: {
type: String,
@@ -67,13 +71,6 @@
iconSize: 14
}
},
computed: {
contact() {
return function(targetId) {
return this.$store.getters.contactInfo(targetId)
}
}
},
created() {
this.avatarSize = utils.rpx2px(84)
this.labelSize = utils.rpx2px(24)

View File

@@ -2,13 +2,12 @@
<view class="message--cell">
<view class="avatar">
<u-badge max="99" shape="horn" absolute :offset="[-5, -8]" :value="item.unreadMessageCount" />
<!-- <u-avatar :src="item.portraitUrl !== '' ? contact(item.targetId).portraitUrl : require('@/static/user/cover-s.png')" shape="square" :size="avatarSize" /> -->
<u-avatar :src="require('@/static/user/cover-s.png')" shape="square" :size="avatarSize" />
<u-avatar :src="contact(item.targetId).portraitUrl" shape="square" :size="avatarSize" />
</view>
<view class="content">
<view class="header">
<view class="name">
{{ contact(item.targetId).name }} {{item.portraitUrl}}
{{ contact(item.targetId).name }}
<text v-if="item.conversationType === 3" class='group'>[]</text>
</view>
<view class="time">{{ item.sentTime|timeCustomCN }}</view>
@@ -22,8 +21,12 @@
<script>
import messagePreview from './messagePreview'
import utils from '@/utils/index.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase
],
props: {
item: {
type: Object,
@@ -32,21 +35,6 @@
}
}
},
data() {
return {
avatarRpx: 84
}
},
computed: {
avatarSize() {
return utils.rpx2px(this.avatarRpx)
},
contact() {
return function(targetId) {
return this.$store.getters.contactInfo(targetId)
}
}
},
components: {
messagePreview
}

View File

@@ -32,8 +32,12 @@
import showText from './show/showText'
import showCall from './show/showCall'
import utils from '@/utils/index.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase
],
components: {
showCall,
showVoice,
@@ -52,21 +56,6 @@
default: false
}
},
data() {
return {
avatarRpx: 84
}
},
computed: {
avatarSize() {
return utils.rpx2px(this.avatarRpx)
},
contact() {
return function(targetId) {
return this.$store.getters.contactInfo(targetId)
}
}
},
methods: {
toUser(item) {
if (item.messageDirection == 1) {

View File

@@ -39,8 +39,12 @@
} from '@/apis/interfaces/im';
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import im from '@/utils/im/index.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase
],
data() {
return {
indexs: [],

View File

@@ -36,9 +36,11 @@
topGroupAnnouncement
} from '@/apis/interfaces/im.js'
import onGroupDismiss from '@/utils/im/onGroupDismiss.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase,
onGroupDismiss
],
data() {

View File

@@ -21,9 +21,11 @@
joinGroup
} from '@/apis/interfaces/im.js'
import onGroupDismiss from '@/utils/im/onGroupDismiss.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase,
onGroupDismiss
],
data() {

View File

@@ -22,9 +22,11 @@
import showMessageCell from '../components/showMessageCell'
import utils from '@/utils/index.js'
import onGroupDismiss from '@/utils/im/onGroupDismiss.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase,
onGroupDismiss
],
components: {

View File

@@ -3,7 +3,7 @@
<block v-if="groups.length > 0">
<view class="title"> 群聊 </view>
<view v-for="(item, index) in groups" :key="index" class="friend-flex" @click="toGroup(item.targetId)">
<u-avatar size="36" shape="square" :src="item.portraitUrl !== ''?contact(item.targetId).portraitUrl :require('@/static/user/cover-s.png')" />
<u-avatar size="36" shape="square" :src="contact(item.targetId).portraitUrl" />
<view class="info">
<view class="name">{{ item.name }} <span class="total">{{ item.members }} 成员</span></view>
</view>

View File

@@ -21,9 +21,9 @@
<u-cell-group class="cells" v-if="group.is_admin" :border="false">
<u-cell :border="false" class="u-border-bottom" isLink title="修改群聊名称" :value="groupName"
@click="onGroupName" />
<u-cell :border="false" class="u-border-bottom" isLink title="修改群头像" @click="onGroupAvatar">
<!-- <u-cell :border="false" class="u-border-bottom" isLink title="修改群头像" @click="onGroupAvatar">
<u-avatar slot="value" size="25" shape="square" :src="group.cover" />
</u-cell>
</u-cell> -->
<u-cell :border="false" class="u-border-bottom" isLink v-if="group.is_owner" title="准入方式" :value="joinType" @click="onChangeJoinType" />
</u-cell-group>
@@ -58,12 +58,14 @@
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import groupUserList from '../components/groupUserList'
import onGroupDismiss from '@/utils/im/onGroupDismiss.js'
import imBase from '@/utils/im/imBase.js'
export default {
components: {
groupUserList
},
mixins: [
imBase,
onGroupDismiss
],
data() {

View File

@@ -47,9 +47,11 @@
import utils from '@/utils/index.js'
import onGroupDismiss from '@/utils/im/onGroupDismiss.js'
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase,
onGroupDismiss
],
data() {
@@ -64,13 +66,6 @@
selectValue: []
};
},
computed: {
contact() {
return function(targetId) {
return this.$store.getters.contactInfo(targetId)
}
}
},
onLoad(e) {
this.targetId = e.targetId
this.getFriendList()

View File

@@ -35,9 +35,11 @@
import im from '@/utils/im/message.js'
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import onGroupDismiss from '@/utils/im/onGroupDismiss.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase,
onGroupDismiss
],
data() {

View File

@@ -5,9 +5,7 @@
<view class="custom-header">
<view class="header-flex">
<view class="tabs">
<view class="item" @click="tabsClick('all')" :class="activeId === 'all'?'active':''">全部</view>
<view class="item" @click="tabsClick('self')" :class="activeId === 'self'?'active':''">私聊</view>
<view class="item" @click="tabsClick('group')" :class="activeId === 'group'?'active':''">群聊</view>
<view class="item active">聊聊</view>
</view>
<view class="btns">
<view class="item" @click="scanQrCode">
@@ -48,8 +46,7 @@
return {
conversations: [], // 会话列表
connection: 0,
hasNewFriends: 0,
activeId:'all',
hasNewFriends: 0
}
},
components: {
@@ -57,7 +54,6 @@
connectionStatus
},
onLoad() {
// 监听新的好友申请
uni.$on('onNewContactConversation', () => {
console.log('更新好友申请数量');
@@ -89,10 +85,6 @@
uni.$off('onConnectionStatusChange')
},
methods: {
// 切换聊天模式
tabsClick(type){
this.activeId = type
},
checkNewFriendPending() {
im.getPendingList((pendings) => {
this.hasNewFriends = pendings.length
@@ -107,17 +99,15 @@
}
return true
},
// 获取私聊的会话列表
// 获取会话列表,最新的一千条
getConversationList() {
const count = 1000
const count = 200
const timestamp = 0
RongIMLib.getConversationList([1, 3], count, timestamp, ({
code,
conversations
}) => {
if (code === 0) {
console.log(conversations)
console.log("item.conversationType === 3............")
this.conversations = conversations
}
})

View File

@@ -18,8 +18,12 @@
import sentMessageBar from '../components/sentMessageBar'
import showMessageCell from '../components/showMessageCell'
import utils from '@/utils/index.js'
import imBase from '@/utils/im/imBase.js'
export default {
mixins: [
imBase
],
components: {
sentMessageBar,
showMessageCell
@@ -45,11 +49,6 @@
sentTime: 0
}
}
},
contact() {
return function(targetId) {
return this.$store.getters.contactInfo(targetId)
}
}
},
onLoad(e) {

24
utils/im/imBase.js Normal file
View File

@@ -0,0 +1,24 @@
import utils from '@/utils/index.js'
const imBase = {
onLoad() {
console.log('IM BASE MININX');
},
data() {
return {
}
},
computed: {
contact() {
return function(targetId) {
return this.$store.getters.contactInfo(targetId)
}
},
avatarSize() {
return utils.rpx2px(84)
}
}
}
export default imBase