Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
liyubing
2024-05-29 10:22:31 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d0c0e2e235cbab26f6a0913ec93df4f44e1affee
d0c0e2e2
1 parent
754d0f1f
feat: 进入横屏多路直播-置空-评论预显示禁止直播间,大家聊不支持下拉刷新
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
72 additions
and
29 deletions
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLiveCommon.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLivePage.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabChatComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabInfoComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabLiveComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/TopPlayComponet.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLiveCommon.ets
View file @
d0c0e2e
...
...
@@ -71,7 +71,6 @@ export struct DetailPlayLiveCommon {
.then((data: Array<ContentDetailDTO>) => {
console.log(TAG, '查询视频详情用于评论展示 getContentDetail:', JSON.stringify(data))
if (data) {
let detailData = data[0]
this.liveLandscape =
detailData?.liveInfo?.liveLandScape //String(this.contentDetailData?.liveInfo?.liveLandScape || '')
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLivePage.ets
View file @
d0c0e2e
...
...
@@ -84,6 +84,7 @@ export struct DetailPlayLivePage {
}
}).visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None)
// LiveCommentComponent({ heartNum: this.liveRoomDataBean.likeNum })
// .visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None)
}
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabChatComponent.ets
View file @
d0c0e2e
...
...
@@ -12,6 +12,10 @@ import { publishCommentModel } from 'wdComponent/src/main/ets/components/comment
const TAG: string = 'TabChatComponent';
/**
*
* 非沉浸式---大家聊
*/
@Component
export struct TabChatComponent {
@State private pageModel: PageModel = new PageModel()
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabComponent.ets
View file @
d0c0e2e
...
...
@@ -13,11 +13,9 @@ export struct TabComponent {
@State currentIndex: number = 0
private controller: TabsController = new TabsController()
@Prop tabs: string[] = []
aboutToAppear(): void {
}
/**
* 评论切换到大家聊
*/
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabInfoComponent.ets
View file @
d0c0e2e
import { ContentDetailDTO, LiveDetailsBean } from 'wdBean/Index'
import { LiveCountdownComponent } from './LiveCountdownComponent'
/**
* 非沉浸式---简介
*/
@Component
export struct TabInfoComponent {
@Consume contentDetailData: ContentDetailDTO
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/TabLiveComponent.ets
View file @
d0c0e2e
import { ContentDetailDTO, LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index'
import { EmptyComponent, ErrorComponent, ListHasNoMoreDataUI, WDViewDefaultType } from 'wdComponent/Index'
import { ContentDetailDTO, LiveRoomItemBean } from 'wdBean/Index'
import { CustomPullToRefresh, EmptyComponent, ErrorComponent, WDViewDefaultType } from 'wdComponent/Index'
import { TabLiveItemComponent } from './TabLiveItemComponent'
import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout'
import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean'
import PageModel from 'wdComponent/src/main/ets/viewmodel/PageModel'
import { ViewType } from 'wdConstant/Index'
import RefreshLayout from 'wdComponent/src/main/ets/components/page/RefreshLayout'
import { StringUtils } from 'wdKit/Index'
import { LazyDataSource, StringUtils } from 'wdKit/Index'
import { LiveViewModel } from '../../viewModel/LiveViewModel'
import { Logger } from 'wdKit'
import LoadMoreLayout from 'wdComponent/src/main/ets/components/page/LoadMoreLayout'
import { PeopleShipNoMoreData } from 'wdComponent/src/main/ets/components/reusable/PeopleShipNoMoreData'
const TAG: string = 'TabLiveComponent';
...
...
@@ -18,9 +19,10 @@ const TAG: string = 'TabLiveComponent';
@Component
export struct TabLiveComponent {
liveViewModel: LiveViewModel = new LiveViewModel()
@State liveList:
Array<LiveRoomItemBean> = []
@State liveList:
LazyDataSource<LiveRoomItemBean> = new LazyDataSource();
@Consume @Watch('updateData') contentDetailData: ContentDetailDTO
@State private pageModel: PageModel = new PageModel()
private scroller: Scroller = new Scroller()
aboutToAppear(): void {
this.getLiveList()
...
...
@@ -35,7 +37,19 @@ export struct TabLiveComponent {
} else if (this.pageModel.viewType == ViewType.EMPTY) {
EmptyComponent({ emptyType: WDViewDefaultType.WDViewDefaultType_NoContent1 })
} else {
CustomPullToRefresh({
alldata: this.liveList,
scroller: this.scroller,
hasMore: false,
customList: () => {
this.ListLayout()
},
onRefresh: (resolve) => {
this.pageModel.currentPage = 1
this.getLiveList(resolve)
},
})
}
}
.alignContent(Alignment.Top)
...
...
@@ -46,32 +60,35 @@ export struct TabLiveComponent {
@Builder
ListLayout() {
List() {
ListItem() {
// 下拉刷新 TODO 待对接新的下拉刷新组件
// RefreshLayout({
// refreshBean: new RefreshLayoutBean(this.pageModel.isVisiblePullDown, this.pageModel.pullDownRefreshImage,
// this.pageModel.pullDownRefreshText, this.pageModel.pullDownRefreshHeight)
// })
}
ForEach(this.liveList, (item: LiveRoomItemBean) => {
List({ scroller: this.scroller }) {
// 下拉刷新
LazyForEach(this.liveList, (item: LiveRoomItemBean, index: number) => {
ListItem() {
TabLiveItemComponent({ item: item })
}
})
},
(item: LiveRoomItemBean, contentIndex: number) => JSON.stringify(item)
)
// 加载更多
ListItem() {
if (this.pageModel.hasMore) {
// LoadMoreLayout({
// refreshBean: new RefreshLayoutBean(this.pageModel.isVisiblePullUpLoad, this.pageModel.pullUpLoadImage,
// this.pageModel.pullUpLoadText, this.pageModel.pullUpLoadHeight)
// })
} else {
ListHasNoMoreDataUI()
if (this.pageModel.hasMore && this.liveList && this.liveList.totalCount() > 0) {
LoadMoreLayout({ isVisible: this.pageModel.hasMore })
} else if (!this.pageModel.hasMore && !this.pageModel.isLoading) {
PeopleShipNoMoreData()
}
}
}
.edgeEffect(EdgeEffect.None)
.scrollBar(BarState.Off)
.onReachEnd(() => {
Logger.debug(TAG, "触底了");
if (!this.pageModel.isLoading && this.pageModel.hasMore) {
//加载分页数据
//this.currentPage++;
this.getLiveList()
}
})
}
@Builder
...
...
@@ -82,19 +99,35 @@ export struct TabLiveComponent {
})
}
getLiveList(
) {
async getLiveList(resolve?: (value: string | PromiseLike<string>) => void
) {
if (!this.contentDetailData || !this.contentDetailData.newsId) {
// 参数不够,直接拦截接口
return
}
if (this.pageModel.isLoading) {
if (resolve) {
resolve('已更新至最新')
}
return
}
this.pageModel.isLoading = true
this.pageModel.currentPage = 1
this.liveViewModel.getLiveList(
this.pageModel.currentPage,
this.contentDetailData?.liveInfo?.mlive?.mliveId,
this.contentDetailData?.newsId
+
'',
this.contentDetailData?.newsId
+
'',
20)
.then(
(data) => {
this.pageModel.isLoading = false
if (resolve) {
if (this.pageModel.currentPage == 1) {
resolve('已更新至最新')
} else {
resolve('')
}
}
Logger.debug(TAG, '直播间数据:' + `${JSON.stringify(data)}`)
if (data.barrageResponses && data.barrageResponses.length > 0) {
/**
...
...
@@ -106,6 +139,10 @@ export struct TabLiveComponent {
3.内容:详情接口的简介,newIntroduction
*/
this.pageModel.viewType = ViewType.LOADED;
if(this.pageModel.currentPage ===1){
this.liveList.clear()
}
this.liveList.push(...data.barrageResponses)
if (data.barrageResponses.length === this.pageModel.pageSize) {
this.pageModel.currentPage++;
...
...
@@ -124,9 +161,11 @@ export struct TabLiveComponent {
&& this.contentDetailData.liveInfo.liveState != 'wait') {
this.pageModel.viewType = ViewType.LOADED;
this.updateLiveListData()
this.pageModel.hasMore = false;
} else {
this.pageModel.viewType = ViewType.EMPTY;
}
}
},
() => {
...
...
@@ -155,7 +194,7 @@ export struct TabLiveComponent {
}
updateData() {
if (this.liveList.
length
> 0) {
if (this.liveList.
totalCount()
> 0) {
// TODO 拦截刷新?根据业务斟酌下
return
}
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/TopPlayComponet.ets
View file @
d0c0e2e
...
...
@@ -63,7 +63,6 @@ export struct TopPlayComponent {
}
updateData() {
// 检测等待中的直播预告是否视频资源
if (this.contentDetailData.liveInfo && this.contentDetailData.liveInfo.previewType === 1
&& this.contentDetailData.liveInfo.previewUrl &&
...
...
Please
register
or
login
to post a comment