Merge branch 'master' of https://git.yuzhankeji.cn/TmOct5/ZhHealth
This commit is contained in:
4
App.vue
4
App.vue
@@ -5,7 +5,7 @@
|
|||||||
import im from '@/utils/im/index.js'
|
import im from '@/utils/im/index.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
onLaunch: function() {
|
onLaunch: function() {
|
||||||
im.initIm('lmxuhwaglu76d')
|
im.initIm('lmxuhwaglu76d')
|
||||||
return
|
return
|
||||||
//#ifdef APP-PLUS
|
//#ifdef APP-PLUS
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
uni.downloadFile({
|
uni.downloadFile({
|
||||||
url: res.info.download,
|
url: res.info.download,
|
||||||
success: apkPick => {
|
success: apkPick => {
|
||||||
plus.runtime.install(apkPick
|
plus.runtime.install(apkPick
|
||||||
.tempFilePath, '',
|
.tempFilePath, '',
|
||||||
installRES => {
|
installRES => {
|
||||||
// 安装完成用于提示新版本引导,暂时无用
|
// 安装完成用于提示新版本引导,暂时无用
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
"name" : "ZH-HEALTH",
|
"name" : "ZH-HEALTH",
|
||||||
"appid" : "__UNI__C29473D",
|
"appid" : "__UNI__C29473D",
|
||||||
"description" : "ZH-HEALTH,您手上的健康管理专家",
|
"description" : "ZH-HEALTH,您手上的健康管理专家",
|
||||||
"versionName" : "1.0.10",
|
"versionName" : "1.0.11",
|
||||||
"versionCode" : 110,
|
"versionCode" : 111,
|
||||||
"transformPx" : false,
|
"transformPx" : false,
|
||||||
/* 5+App特有相关 */
|
/* 5+App特有相关 */
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
@@ -24,7 +24,9 @@
|
|||||||
"SQLite" : {},
|
"SQLite" : {},
|
||||||
"VideoPlayer" : {},
|
"VideoPlayer" : {},
|
||||||
"Geolocation" : {},
|
"Geolocation" : {},
|
||||||
"Fingerprint" : {}
|
"Fingerprint" : {},
|
||||||
|
"Maps" : {},
|
||||||
|
"Push" : {}
|
||||||
},
|
},
|
||||||
/* 应用发布信息 */
|
/* 应用发布信息 */
|
||||||
"distribute" : {
|
"distribute" : {
|
||||||
@@ -80,7 +82,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ad" : {},
|
"ad" : {},
|
||||||
"push" : {},
|
"push" : {
|
||||||
|
"unipush" : {}
|
||||||
|
},
|
||||||
"geolocation" : {
|
"geolocation" : {
|
||||||
"amap" : {
|
"amap" : {
|
||||||
"__platform__" : [ "android" ],
|
"__platform__" : [ "android" ],
|
||||||
@@ -90,6 +94,12 @@
|
|||||||
"system" : {
|
"system" : {
|
||||||
"__platform__" : [ "android" ]
|
"__platform__" : [ "android" ]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"maps" : {
|
||||||
|
"amap" : {
|
||||||
|
"appkey_ios" : "",
|
||||||
|
"appkey_android" : "05b7f32ca9c897c8b63c505d92cd654b"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"icons" : {
|
"icons" : {
|
||||||
|
|||||||
@@ -28,9 +28,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
console.log(this.item);
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
contact() {
|
contact() {
|
||||||
return function(targetId) {
|
return function(targetId) {
|
||||||
|
|||||||
@@ -22,10 +22,10 @@
|
|||||||
<view class="preview" v-if="msg.objectName=='RC:LBSMsg'">
|
<view class="preview" v-if="msg.objectName=='RC:LBSMsg'">
|
||||||
<text v-if="conversationType == 3">{{ user.name }}:</text>[位置]
|
<text v-if="conversationType == 3">{{ user.name }}:</text>[位置]
|
||||||
</view>
|
</view>
|
||||||
<view class="preview" v-if="msg.objectName=='RC:AudioMsg'">
|
<view class="preview" v-if="msg.objectName=='RC:InfoNtf' && JSON.parse(msg.message).mediaType=='0'">
|
||||||
<text v-if="conversationType == 3">{{ user.name }}:</text>[语音通话]
|
<text v-if="conversationType == 3">{{ user.name }}:</text>[语音通话]
|
||||||
</view>
|
</view>
|
||||||
<view class="preview" v-if="msg.objectName=='RC:VideoMsg'">
|
<view class="preview" v-if="msg.objectName=='RC:InfoNtf' && JSON.parse(msg.message).mediaType=='1'">
|
||||||
<text v-if="conversationType == 3">{{ user.name }}:</text>[视频通话]
|
<text v-if="conversationType == 3">{{ user.name }}:</text>[视频通话]
|
||||||
</view>
|
</view>
|
||||||
<view class="preview" v-if="msg.objectName=='RC:GrpNtf'">
|
<view class="preview" v-if="msg.objectName=='RC:GrpNtf'">
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
methods: {
|
methods: {
|
||||||
singleCall(e) {
|
singleCall(e) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type
|
url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type + '&isCall=true'
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onPopupsItem(type) {
|
onPopupsItem(type) {
|
||||||
|
|||||||
85
pages/im/components/showCall.vue
Normal file
85
pages/im/components/showCall.vue
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<view class="msg--text">
|
||||||
|
<text class="name" v-if="!guest && name">{{ name }}</text>
|
||||||
|
<view>
|
||||||
|
<text class="im--text" :class="guest ? 'right': 'left'" v-if="message.mediaType == '1'">
|
||||||
|
<u-icon name="camera" /> {{ message.connected ? '通话时长' + message.duration : '未接通' }}
|
||||||
|
</text>
|
||||||
|
<text class="im--text" :class="guest ? 'right': 'left'" v-else>
|
||||||
|
<u-icon name="phone" /> {{ message.connected ? '通话时长' + message.duration : '未接通' }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<!-- msg
|
||||||
|
{
|
||||||
|
"message": "1",
|
||||||
|
"objectName": "RC:InfoNtf",
|
||||||
|
"userInfo": {
|
||||||
|
"userId": "10051",
|
||||||
|
"name": "Jason.电信",
|
||||||
|
"extra": "",
|
||||||
|
"portraitUrl": "http://storage.zh.shangkelian.cn/uploads/2022/02/16/29b13f5301694721ad7acd8b8b67bbd9.jpg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-->
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'showText',
|
||||||
|
props: {
|
||||||
|
msg: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
guest: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
message() {
|
||||||
|
return JSON.parse(this.msg.message)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
console.log(this.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.msg--text {
|
||||||
|
.name {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: $text-gray-m;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.im--text {
|
||||||
|
max-width: 508rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
line-height: 46rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: $text-color;
|
||||||
|
display: inline-block;
|
||||||
|
word-break: break-all;
|
||||||
|
|
||||||
|
&.left {
|
||||||
|
border-radius: 0 20rpx 20rpx 20rpx;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.right {
|
||||||
|
border-radius: 20rpx 0 20rpx 20rpx;
|
||||||
|
background: $main-color;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -37,7 +37,8 @@
|
|||||||
getFriendsLetter
|
getFriendsLetter
|
||||||
} from '@/apis/interfaces/im';
|
} from '@/apis/interfaces/im';
|
||||||
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
|
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
|
||||||
|
import im from '@/utils/im/index.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -229,7 +229,7 @@
|
|||||||
},
|
},
|
||||||
singleCall(e) {
|
singleCall(e) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type
|
url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type + '&isCall=true'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,9 +74,10 @@
|
|||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
this.targetId = e.targetId
|
this.targetId = e.targetId
|
||||||
// 获取群成员数量
|
// 获取群成员数量
|
||||||
getGroupBase(this.targetId).then(res => {
|
getGroupBase(this.targetId).then(res => {
|
||||||
|
console.log(res);
|
||||||
uni.setNavigationBarTitle({
|
uni.setNavigationBarTitle({
|
||||||
title: this.groupInfo.name + `(${res.members})`
|
title: res.name + `(${res.members})`
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// 获取历史消息列表
|
// 获取历史消息列表
|
||||||
@@ -100,9 +101,6 @@
|
|||||||
this.$refs.messageBar.onHidePopus()
|
this.$refs.messageBar.onHidePopus()
|
||||||
},
|
},
|
||||||
toUser(item) {
|
toUser(item) {
|
||||||
if (item.senderUserId == '__system__') {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (item.messageDirection == 1) {
|
if (item.messageDirection == 1) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages/im/friends/mine?targetId=' + item.senderUserId
|
url: '/pages/im/friends/mine?targetId=' + item.senderUserId
|
||||||
|
|||||||
@@ -1,27 +1,30 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="call">
|
<view class="call">
|
||||||
<view class="video">
|
<view class="video">
|
||||||
<RongCloud-Call-RCUniCallView ref="bigVideoView" :style="{width:windowWidth+'px',height:windowHeight+'px'}"
|
<RongCloud-Call-RCUniCallView ref="bigVideoView" :style="bigVideoStyle" class="bigVideoView">
|
||||||
class="bigVideoView">
|
|
||||||
</RongCloud-Call-RCUniCallView>
|
|
||||||
<RongCloud-Call-RCUniCallView ref="smallVideoView" class="smallVideoView">
|
|
||||||
</RongCloud-Call-RCUniCallView>
|
</RongCloud-Call-RCUniCallView>
|
||||||
|
|
||||||
|
<movable-area class="movableArea" :style="movableAreaStyle">
|
||||||
|
<movable-view class="movableView" direction="all" :x="50" :y="50" v-if="mediaType == 1 && connected">
|
||||||
|
<RongCloud-Call-RCUniCallView ref="smallVideoView" class="smallVideoView" @click="changeMine">
|
||||||
|
</RongCloud-Call-RCUniCallView>
|
||||||
|
</movable-view>
|
||||||
|
</movable-area>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="status" v-if="!connected || mediaType == 0">
|
<view class="status" v-if="!connected">
|
||||||
<view class="remote">
|
<view class="remote">
|
||||||
<u-avatar :src="contact(targetId).portraitUrl" shape="square" size="96" bgColor="#fff" />
|
<u-avatar :src="contact(targetId).portraitUrl" shape="square" :size="avatarSize" bgColor="#fff" />
|
||||||
<view><text class="nickname">{{ contact(targetId).name }}</text></view>
|
<view><text class="nickname">{{ contact(targetId).name }}</text></view>
|
||||||
<view v-if="remoteRinging"><text class="mediaType">等待对方接听</text></view>
|
<view v-if="remoteRinging"><text class="mediaType">等待对方接听</text></view>
|
||||||
<view v-if="connected"><text class="mediaType">已接通</text></view>
|
<view v-if="connected"><text class="mediaType">已接通</text></view>
|
||||||
<view v-else><text class="mediaType">{{ mediaType == 0 ? '邀请您语音通话' : '邀请您视频通话' }}</text></view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="buttons">
|
<view class="buttons">
|
||||||
<view class="btn" v-if="connected" @click="changeMicrophone">
|
<view class="btn" v-if="connected" @click="changeMicrophone">
|
||||||
<view class="icon">
|
<view class="icon">
|
||||||
<u-icon name="mic" color="#ffffff" size="30" />
|
<u-icon name="mic-off" color="#ffffff" size="30" v-if="micOff" />
|
||||||
<u-icon name="mic-off" color="#ffffff" size="30" />
|
<u-icon name="mic" color="#ffffff" size="30" v-else />
|
||||||
</view>
|
</view>
|
||||||
<text class="text">麦克风</text>
|
<text class="text">麦克风</text>
|
||||||
</view>
|
</view>
|
||||||
@@ -31,7 +34,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<text class="text">挂断</text>
|
<text class="text">挂断</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn" v-if="!connected" @click="accept">
|
<view class="btn" v-if="!connected && this.isCall == false" @click="accept">
|
||||||
<view class="icon">
|
<view class="icon">
|
||||||
<u-icon name="checkmark" color="#ffffff" size="30" />
|
<u-icon name="checkmark" color="#ffffff" size="30" />
|
||||||
</view>
|
</view>
|
||||||
@@ -39,8 +42,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="btn" v-if="connected" @click="changeSpeaker">
|
<view class="btn" v-if="connected" @click="changeSpeaker">
|
||||||
<view class="icon">
|
<view class="icon">
|
||||||
<u-icon name="volume-fill" color="#ffffff" size="27" />
|
<u-icon name="volume-off-fill" color="#ffffff" size="27" v-if="volumeOff" />
|
||||||
<u-icon name="volume-off-fill" color="#ffffff" size="27" />
|
<u-icon name="volume-fill" color="#ffffff" size="27" v-else />
|
||||||
</view>
|
</view>
|
||||||
<text class="text">扬声器</text>
|
<text class="text">扬声器</text>
|
||||||
</view>
|
</view>
|
||||||
@@ -51,25 +54,45 @@
|
|||||||
<script>
|
<script>
|
||||||
import * as CallLib from '@/uni_modules/RongCloud-CallWrapper/lib/index'
|
import * as CallLib from '@/uni_modules/RongCloud-CallWrapper/lib/index'
|
||||||
import * as IMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
|
import * as IMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
|
||||||
|
import utils from '@/utils/index.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
targetId: '',
|
targetId: '',
|
||||||
mediaType: 0, // 0 语音 1 视频
|
mediaType: 0, // 0 语音 1 视频
|
||||||
isOut: false,
|
|
||||||
connected: false,
|
connected: false,
|
||||||
micStatus: false,
|
micStatus: false,
|
||||||
speStatus: false,
|
speStatus: false,
|
||||||
remoteRinging: false,
|
remoteRinging: false,
|
||||||
ring: null
|
ring: null,
|
||||||
|
isCall: false,
|
||||||
|
avatarSize: 96,
|
||||||
|
bigVideoStyle: {},
|
||||||
|
movableAreaStyle: {},
|
||||||
|
// 关闭麦克风
|
||||||
|
micOff: false,
|
||||||
|
// 关闭扬声器
|
||||||
|
volumeOff: false,
|
||||||
|
// 通话时长
|
||||||
|
duration: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
|
this.avatarSize = utils.rpx2px(200)
|
||||||
this.targetId = e.targetId
|
this.targetId = e.targetId
|
||||||
this.mediaType = e.mediaType
|
this.mediaType = e.mediaType
|
||||||
|
this.isCall = Boolean(e.isCall)
|
||||||
// 进入页面开启外呼
|
// 进入页面开启外呼
|
||||||
CallLib.startSingleCall(this.targetId, this.mediaType, '');
|
if (this.isCall) {
|
||||||
|
CallLib.startSingleCall(this.targetId, this.mediaType, '');
|
||||||
|
if (this.mediaType == '1') {
|
||||||
|
const session = CallLib.getCurrentCallSession()
|
||||||
|
setTimeout(() => {
|
||||||
|
CallLib.setVideoView(session.mine.userId, this.$refs.bigVideoView.ref, 0, false)
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
}
|
||||||
// 响铃
|
// 响铃
|
||||||
this.startRing()
|
this.startRing()
|
||||||
// 监听通话链接状态
|
// 监听通话链接状态
|
||||||
@@ -81,6 +104,15 @@
|
|||||||
uni.$once('onRemoteUserJoined', () => {
|
uni.$once('onRemoteUserJoined', () => {
|
||||||
this.remoteRinging = false
|
this.remoteRinging = false
|
||||||
})
|
})
|
||||||
|
this.bigVideoStyle = {
|
||||||
|
width: this.windowWidth + 'px',
|
||||||
|
height: this.windowHeight + 'px',
|
||||||
|
// backgroundImage: `url("${this.contact(this.targetId).portraitUrl}")`
|
||||||
|
}
|
||||||
|
this.movableAreaStyle = {
|
||||||
|
width: this.windowWidth + 'px',
|
||||||
|
height: this.windowHeight + 'px',
|
||||||
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
|
||||||
@@ -99,11 +131,43 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
afterHangup() {
|
||||||
|
const conversationType = IMLib.ConversationType.PRIVATE // 会话类型
|
||||||
|
const targetId = this.targetId
|
||||||
|
const sentStatus = 30
|
||||||
|
const messageContent = {
|
||||||
|
objectName: 'RC:InfoNtf',
|
||||||
|
userInfo: this.$store.getters.sender,
|
||||||
|
message: JSON.stringify({
|
||||||
|
mediaType: this.mediaType,
|
||||||
|
connected: this.connected,
|
||||||
|
duration: this.duration
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const sentTime = 0 // 消息的发送时间
|
||||||
|
IMLib.insertOutgoingMessage(conversationType, targetId, sentStatus, messageContent, sentTime,
|
||||||
|
({
|
||||||
|
code,
|
||||||
|
message
|
||||||
|
}) => {
|
||||||
|
console.log(code);
|
||||||
|
// 插入消息成功
|
||||||
|
if (code === 0) {
|
||||||
|
console.log(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
uni.$emit('onReceiveMessage', {
|
||||||
|
targetId: this.targetId
|
||||||
|
})
|
||||||
|
},
|
||||||
changeMicrophone() {
|
changeMicrophone() {
|
||||||
|
this.micOff = !this.micOff
|
||||||
CallLib.enableMicrophone(this.micStatus)
|
CallLib.enableMicrophone(this.micStatus)
|
||||||
this.micStatus = !this.micStatus
|
this.micStatus = !this.micStatus
|
||||||
},
|
},
|
||||||
changeSpeaker() {
|
changeSpeaker() {
|
||||||
|
this.volumeOff = !this.volumeOff
|
||||||
CallLib.enableSpeaker(this.speStatus)
|
CallLib.enableSpeaker(this.speStatus)
|
||||||
this.speStatus = !this.speStatus
|
this.speStatus = !this.speStatus
|
||||||
},
|
},
|
||||||
@@ -116,7 +180,7 @@
|
|||||||
// 设置链接状态
|
// 设置链接状态
|
||||||
this.connected = true
|
this.connected = true
|
||||||
// 视频通话,才开摄像头
|
// 视频通话,才开摄像头
|
||||||
if (this.mediaType == 1) {
|
if (this.mediaType == '1') {
|
||||||
const session = CallLib.getCurrentCallSession()
|
const session = CallLib.getCurrentCallSession()
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
CallLib.setVideoView(session.targetId, this.$refs.bigVideoView.ref, 0, false)
|
CallLib.setVideoView(session.targetId, this.$refs.bigVideoView.ref, 0, false)
|
||||||
@@ -124,7 +188,25 @@
|
|||||||
}, 200)
|
}, 200)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 切换主屏显示人
|
||||||
|
changeMine() {
|
||||||
|
if (this.isCall) {
|
||||||
|
const session = CallLib.getCurrentCallSession()
|
||||||
|
setTimeout(() => {
|
||||||
|
CallLib.setVideoView(session.targetId, this.$refs.bigVideoView.ref, 0, false)
|
||||||
|
CallLib.setVideoView(session.mine.userId, this.$refs.smallVideoView.ref, 0, true)
|
||||||
|
}, 200)
|
||||||
|
} else {
|
||||||
|
const session = CallLib.getCurrentCallSession()
|
||||||
|
setTimeout(() => {
|
||||||
|
CallLib.setVideoView(session.targetId, this.$refs.smallVideoView.ref, 0, true)
|
||||||
|
CallLib.setVideoView(session.mine.userId, this.$refs.bigVideoView.ref, 0, false)
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
this.isCall = !this.isCall
|
||||||
|
},
|
||||||
hangup() {
|
hangup() {
|
||||||
|
this.afterHangup()
|
||||||
CallLib.hangup()
|
CallLib.hangup()
|
||||||
this.stopRing()
|
this.stopRing()
|
||||||
|
|
||||||
@@ -171,23 +253,33 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.video {
|
.video {
|
||||||
.bigVideoView {
|
.movableArea {
|
||||||
background: #000;
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
|
||||||
|
.movableView {
|
||||||
|
width: 180rpx;
|
||||||
|
height: 320rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.smallVideoView {
|
||||||
|
width: 180rpx;
|
||||||
|
height: 320rpx;
|
||||||
|
background-color: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.smallVideoView {
|
.bigVideoView {
|
||||||
background: blue;
|
background-color: #666;
|
||||||
position: absolute;
|
|
||||||
right: 100rpx;
|
|
||||||
top: 100rpx;
|
|
||||||
width: 180rpx;
|
|
||||||
height: 320rpx;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.status {
|
.status {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
background: #666;
|
|
||||||
width: 750rpx;
|
width: 750rpx;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@@ -226,10 +318,6 @@
|
|||||||
.btn {
|
.btn {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
&.hangup {
|
|
||||||
background: $text-price;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
background: $main-color;
|
background: $main-color;
|
||||||
width: 132rpx;
|
width: 132rpx;
|
||||||
@@ -238,6 +326,10 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
|
&.hangup {
|
||||||
|
background-color: $text-price;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
:msg="item.content" />
|
:msg="item.content" />
|
||||||
<show-text v-if="item.objectName === 'RC:TxtMsg'" :guest="item.messageDirection == 1"
|
<show-text v-if="item.objectName === 'RC:TxtMsg'" :guest="item.messageDirection == 1"
|
||||||
:msg="item.content" />
|
:msg="item.content" />
|
||||||
|
<show-call v-if="item.objectName === 'RC:InfoNtf'" :guest="item.messageDirection == 1"
|
||||||
|
:msg="item.content" />
|
||||||
<view class="state" v-if="item.messageDirection == 1">
|
<view class="state" v-if="item.messageDirection == 1">
|
||||||
<text
|
<text
|
||||||
:class="item.sentStatus === 50?'state-text':'state-text-active'">{{ item.sentStatus == 50 ? '已读': '未读'}}</text>
|
:class="item.sentStatus === 50?'state-text':'state-text-active'">{{ item.sentStatus == 50 ? '已读': '未读'}}</text>
|
||||||
@@ -34,13 +36,15 @@
|
|||||||
import showVoice from '../components/showVoice'
|
import showVoice from '../components/showVoice'
|
||||||
import showImage from '../components/showImage'
|
import showImage from '../components/showImage'
|
||||||
import showText from '../components/showText'
|
import showText from '../components/showText'
|
||||||
|
import showCall from '../components/showCall'
|
||||||
import sentMessageBar from '../components/sentMessageBar'
|
import sentMessageBar from '../components/sentMessageBar'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
sentMessageBar,
|
sentMessageBar,
|
||||||
showVoice,
|
showVoice,
|
||||||
showImage,
|
showImage,
|
||||||
showText
|
showText,
|
||||||
|
showCall
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -147,7 +151,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
/* 窗口 */
|
/* 窗口 */
|
||||||
@@ -189,18 +193,23 @@
|
|||||||
|
|
||||||
&.right {
|
&.right {
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
|
|
||||||
.state {
|
.state {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.msg {
|
.msg {
|
||||||
margin: 0 20rpx;
|
margin: 0 20rpx;
|
||||||
|
|
||||||
.state {
|
.state {
|
||||||
padding-top: 10rpx;
|
padding-top: 10rpx;
|
||||||
|
|
||||||
.state-text {
|
.state-text {
|
||||||
font-size: $title-size-m - 2;
|
font-size: $title-size-m - 2;
|
||||||
color: rgba($color: $main-color, $alpha: 0.3)
|
color: rgba($color: $main-color, $alpha: 0.3)
|
||||||
}
|
}
|
||||||
|
|
||||||
.state-text-active {
|
.state-text-active {
|
||||||
font-size: $title-size-m - 2;
|
font-size: $title-size-m - 2;
|
||||||
color: #cecece;
|
color: #cecece;
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ const getMessageList = (conversationType, targetId, timeStamp, count, isForward,
|
|||||||
'RC:SightMsg',
|
'RC:SightMsg',
|
||||||
'RC:ReferenceMsg',
|
'RC:ReferenceMsg',
|
||||||
'RC:CombineMsg',
|
'RC:CombineMsg',
|
||||||
'RC:GrpNtf'
|
'RC:GrpNtf',
|
||||||
|
'RC:InfoNtf'
|
||||||
]
|
]
|
||||||
|
|
||||||
RongIMLib.getHistoryMessagesByTimestamp(
|
RongIMLib.getHistoryMessagesByTimestamp(
|
||||||
|
|||||||
Reference in New Issue
Block a user