Files
uniapp-im-shop/TUIKit/components/TUIChat/message-input-toolbar/live-stream/index.vue
2026-01-12 17:52:15 +08:00

73 lines
1.8 KiB
Vue

<script setup>
import { ref } from '../../../../adapter-vue'
import custom from '../../../../assets/icon/live-stream.svg'
import ToolbarItemContainer from '../toolbar-item-container/index.vue'
import { isUniFrameWork } from '../../../../utils/env'
import { navigateTo } from '../../../../../utils/router'
import { getAnchorDetail } from '../../../../../api/tui-kit'
import { useUI } from '../../../../../utils/use-ui'
const { showDialog } = useUI()
const evaluateIcon = custom
const props = defineProps({
/** 距离顶部高度 */
groupId: {
type: String,
default: ''
}
})
const container = ref()
/**
* 主播申请状态
* 0 待审核 1 审核通过 2 审核拒绝 3 已封禁 9 新增
*/
const stateData = ref(0)
const onDialogShow = async () => {
const res = await getAnchorDetail()
if (res?.data) {
stateData.value = res.data.status
} else {
stateData.value = 9
}
container?.value?.toggleDialogDisplay(false)
if ([0, 2, 9].includes(stateData.value)) {
navigateTo(
'/TUIKit/components/TUIChat/message-input-toolbar/live-stream/apply',
{ type: stateData.value }
)
return
}
if (stateData.value === 1) {
// 跳转到开播页面
uni.navigateTo({
url: `/pages/anchor/index?groupId=${encodeURIComponent(
props.groupId
)}`
})
return
}
if (stateData.value === 3) {
showDialog('提示', '您已被封禁,请联系管理员解封', false)
return
}
}
</script>
<template>
<ToolbarItemContainer
ref="container"
:iconFile="evaluateIcon"
:iconWidth="isUniFrameWork ? '34px' : '20px'"
:iconHeight="isUniFrameWork ? '34px' : '20px'"
title="直播"
@onDialogShow="onDialogShow"
></ToolbarItemContainer>
</template>
<style scoped lang="scss"></style>