diff --git a/api/tui-kit.js b/api/tui-kit.js index 0e10573..0f0cf74 100644 --- a/api/tui-kit.js +++ b/api/tui-kit.js @@ -150,6 +150,14 @@ export const confirmLiveActivity = data => { }) } +/** 结束活动 */ +export const endLiveActivity = activityId => { + return http({ + url: `/api/service/imLiveActivity/end/${activityId}`, + method: 'post' + }) +} + /** 查询活动参与状态 */ export const getLiveActivityRecord = id => { return http({ @@ -175,6 +183,14 @@ export const getLiveRecordDetail = id => { }) } +/** 直播记录详情 */ +export const getLIveRecordDetailByRoomId = roomId => { + return http({ + url: `/api/service/imLiveRoom/room/${roomId}`, + method: 'get' + }) +} + /** 生成直播ID */ export const getLiveId = () => { return http({ diff --git a/pages/anchor/components/activity.nvue b/pages/anchor/components/activity.nvue index 81bdfdb..a405396 100644 --- a/pages/anchor/components/activity.nvue +++ b/pages/anchor/components/activity.nvue @@ -290,6 +290,7 @@ margin-top: 20rpx; font-size: 28rpx; text-align: right; + color: white; } } diff --git a/pages/anchor/index.nvue b/pages/anchor/index.nvue index 59e8f11..a2fdef1 100644 --- a/pages/anchor/index.nvue +++ b/pages/anchor/index.nvue @@ -274,7 +274,8 @@ imAddLive, imDataStartLive, getLiveActivityDetail, - imDataEndLive + imDataEndLive, + endLiveActivity } from '@/api/tui-kit' import BeforeLivePanel from '../../components/BeforeLivePanel.nvue' import LiveStatusInfoCard from '@/uni_modules/tuikit-atomic-x/components/LiveStatusInfoCard.nvue' @@ -723,13 +724,25 @@ // 添加活动 const userAddActivity = () => { getLiveActivityDetail(roomDataId.value).then(res => { + console.log("活动数据=======",res.data) if (res?.data && res.data.status === 1) { // status: 0-未开始 1-进行中 2-已结束 3-已取消 uni.showModal({ title: `提示`, - content: '您有一个活动正在进行中,请勿重复添加活动', - showCancel: false, + content: '您有一个活动正在进行中,是否提前结束?', confirmText: '确定' + }).then(()=>{ + endLiveActivity(res.data.activityId).then(res=>{ + uni.showToast({ + title: '结束成功', + icon: 'none' + }) + }).catch(()=>{ + uni.showToast({ + title: '结束失败', + icon: 'none' + }) + }) }) } else { isShowActivity.value = true diff --git a/pages/audience/index.nvue b/pages/audience/index.nvue index 7dc202c..5a0313a 100644 --- a/pages/audience/index.nvue +++ b/pages/audience/index.nvue @@ -216,7 +216,8 @@ import { imDataEndLive, getLiveActivityDetail, - getLiveActivityRecord + getLiveActivityRecord, + getLIveRecordDetailByRoomId } from '@/api/tui-kit' import { onLoad } from '@dcloudio/uni-app' import { @@ -413,6 +414,10 @@ onLoad(options => { console.warn('Live page onLoad = ', options) liveID.value = options?.liveID + getLIveRecordDetailByRoomId(liveID.value).then(res=>{ + console.log('初始化虚拟人数===========', res.data.virtualViewers) + topNUmber.value = res.data.virtualViewers + }) getLiveActivityDetail(liveID.value).then(res => { if (res?.data && res.data.status === 1) { // status: 0-未开始 1-进行中 2-已结束 3-已取消 @@ -738,7 +743,7 @@ disconnect({ liveID: uni?.$liveID }) - exitSheetItems.value = ['退2出直播间'] + exitSheetItems.value = ['退出直播间'] exitSheetTitle.value = '' uni.$localGuestStatus = 'IDLE' return @@ -751,18 +756,19 @@ leaveLive({ success: () => { uni.$liveID = '' - uni.redirectTo({ - url: `/pages/discover/livelist/index`, - delta: 1, - animationType: 'pop-out', - animationDuration: 300, - success: () => { - console.log('返回成功') - }, - fail: err => { - console.error('返回失败', err) - } - }) + uni.navigateBack() + // uni.redirectTo({ + // url: `/pages/discover/livelist/list`, + // delta: 1, + // animationType: 'pop-out', + // animationDuration: 300, + // success: () => { + // console.log('返回成功') + // }, + // fail: err => { + // console.error('返回失败', err) + // } + // }) } }) } diff --git a/pages/discover/livelist/h5-live-player.vue b/pages/discover/livelist/h5-live-player.vue index 9014dd6..284c666 100644 --- a/pages/discover/livelist/h5-live-player.vue +++ b/pages/discover/livelist/h5-live-player.vue @@ -32,7 +32,8 @@ import { useAuthUser } from '../../../composables/useAuthUser' import { getLiveActivityDetail, - getLiveActivityRecord + getLiveActivityRecord, + getLIveRecordDetailByRoomId } from '../../../api/tui-kit' import { LIVE_BUSINESS } from '@/constants/live-keys' @@ -71,6 +72,7 @@ /** 是否显示活动按钮 */ const isShowActivity = ref(false) const shareDialog = ref(false) + const topNUmber = ref('') const audienceListTitle = computed( () => `在线人数 (${audienceList.value.length})` @@ -137,6 +139,10 @@ currentLive.value?.liveOwner.userId liveOwnerAvatar.value = currentLive.value?.liveOwner.avatarUrl } + getLIveRecordDetailByRoomId(e.liveId).then(res => { + console.log('初始化虚拟人数===========', res.data.virtualViewers) + topNUmber.value = res.data.virtualViewers + }) const res = await getLiveActivityDetail(liveId) // status: 0-未开始 1-进行中 2-已结束 3-已取消 console.log('活动数据============= ', currentLive.value) @@ -249,7 +255,10 @@ :src="item.avatarUrl" :size="24" /> -
+
+ {{ Number(topNUmber) > 100 ? '99+' : topNUmber }} +
+
{{ audienceList.length }}
diff --git a/pages/discover/livelist/list.vue b/pages/discover/livelist/list.vue index 6f061d7..ef691fb 100644 --- a/pages/discover/livelist/list.vue +++ b/pages/discover/livelist/list.vue @@ -20,12 +20,13 @@ const onGo = item => { // #ifdef APP-PLUS uni.$liveID = item.roomId - navigateTo('/pages/audience/index', { liveID: item.roomId }) + navigateTo('/pages/audience/index', { liveID: item.roomId,id: item.id }) // #endif // #ifdef H5 navigateTo('/pages/discover/livelist/h5-live-player', { - liveId: item.roomId + liveId: item.roomId, + id: item.id }) // #endif } diff --git a/pages/liveend/index.nvue b/pages/liveend/index.nvue index adc76ae..05d3bd8 100644 --- a/pages/liveend/index.nvue +++ b/pages/liveend/index.nvue @@ -78,7 +78,7 @@ const handleToLive = () => { uni.redirectTo({ - url: '/pages/discover/livelist/index', + url: '/pages/discover/livelist/list', success() { console.log('跳转成功'); },