TabLiveComponent.ets 2.16 KB
import { LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index'
import { ListHasNoMoreDataUI } from 'wdComponent/Index'
import { StringUtils } from 'wdKit/Index'
import { LiveViewModel } from '../../viewModel/LiveViewModel'
import { TabLiveItemComponent } from './TabLiveItemComponent'

@Component
export struct TabLiveComponent {
  liveViewModel: LiveViewModel = new LiveViewModel()
  @State liveList: Array<LiveRoomItemBean> = []
  @Consume @Watch('updateDate') liveDetailsBean: LiveDetailsBean

  updateDate() {
    this.getLiveList()
  }

  aboutToAppear(): void {

  }

  build() {
    Stack() {
      if (this.liveList.length == 0) {
        ListHasNoMoreDataUI({ style: 2 })
      } else {
        List() {
          ForEach(this.liveList, (item: LiveRoomItemBean) => {
            ListItem() {
              TabLiveItemComponent({ item: item })
            }
          })
          ListItem() {
            ListHasNoMoreDataUI()
          }
        }
      }
    }
    .alignContent(Alignment.Top)
    .backgroundColor('#F5F5F5')
    .height('100%')
    .width('100%')

  }

  getLiveList() {
    this.liveViewModel.getLiveList(
      1,
      this.liveDetailsBean?.liveInfo?.mlive?.mliveId,
      this.liveDetailsBean?.newsId,
      20)
      .then(
        (data) => {
          /**
           * 在直播聊天添加一条新内容逻辑:
           判断 oldNewsId:迁移id非空 且 直播状态不是预约:"wait"
           消息内容:
           1.头像固定:APP默认头像
           2.名称固定:人民日报主持人
           3.内容:详情接口的简介,newIntroduction
           */
          if (StringUtils.isNotEmpty(this.liveDetailsBean.oldNewsId) && this.liveDetailsBean && this.liveDetailsBean.liveInfo.liveState != 'wait') {
            let liveRoomItemBeanTemp: LiveRoomItemBean = {} as LiveRoomItemBean
            liveRoomItemBeanTemp.text = this.liveDetailsBean.newIntroduction
            liveRoomItemBeanTemp.senderUserName = '人民日报主持人'
            data.barrageResponses.push(liveRoomItemBeanTemp)
          }
          this.liveList = data.barrageResponses
        },
        () => {

        })
  }

  aboutToDisappear(): void {
  }
}