zhenghy

视频缺省图

Showing 25 changed files with 54 additions and 25 deletions
1 -import {  
2 - NetworkUtil,  
3 - Logger,  
4 - NetworkType,  
5 - SPHelper,  
6 -} from 'wdKit'; 1 +import { NetworkUtil, Logger, NetworkType, SPHelper, } from 'wdKit';
7 import { ResponseDTO } from 'wdNetwork'; 2 import { ResponseDTO } from 'wdNetwork';
8 import { 3 import {
9 ContentDetailDTO, 4 ContentDetailDTO,
@@ -68,7 +63,7 @@ export struct MultiPictureDetailPageComponent { @@ -68,7 +63,7 @@ export struct MultiPictureDetailPageComponent {
68 }) 63 })
69 // 注册监听网络连接 64 // 注册监听网络连接
70 let netStatus = NetworkUtil.isNetConnected() 65 let netStatus = NetworkUtil.isNetConnected()
71 - if(netStatus) { 66 + if (netStatus) {
72 // 有网络 67 // 有网络
73 this.getContentDetailData() 68 this.getContentDetailData()
74 } else { 69 } else {
@@ -270,8 +265,12 @@ export struct MultiPictureDetailPageComponent { @@ -270,8 +265,12 @@ export struct MultiPictureDetailPageComponent {
270 .height(px2vp(this.titleHeight) + 64) 265 .height(px2vp(this.titleHeight) + 64)
271 266
272 } 267 }
273 - if(this.netStatus !== undefined) {  
274 - EmptyComponent({ emptyType: $netStatus, emptyButton:true, retry: () => {this.getContentDetailData()}}) 268 + if (this.netStatus !== undefined) {
  269 + EmptyComponent({
  270 + emptyType: this.netStatus, emptyButton: true, retry: () => {
  271 + this.getContentDetailData()
  272 + }
  273 + })
275 .id('e_empty_content') 274 .id('e_empty_content')
276 .alignRules({ 275 .alignRules({
277 center: { anchor: "__container__", align: VerticalAlign.Center }, 276 center: { anchor: "__container__", align: VerticalAlign.Center },
@@ -307,7 +306,8 @@ export struct MultiPictureDetailPageComponent { @@ -307,7 +306,8 @@ export struct MultiPictureDetailPageComponent {
307 306
308 getContentDetailData() { 307 getContentDetailData() {
309 try { 308 try {
310 - PageRepository.fetchDetailData(this.relId, this.contentId, this.relType).then(async (resDTO: ResponseDTO<ContentDetailDTO[]>) => { 309 + PageRepository.fetchDetailData(this.relId, this.contentId, this.relType)
  310 + .then(async (resDTO: ResponseDTO<ContentDetailDTO[]>) => {
311 if (!resDTO || !resDTO.data) { 311 if (!resDTO || !resDTO.data) {
312 Logger.error(TAG, 'fetchDetailData is empty'); 312 Logger.error(TAG, 'fetchDetailData is empty');
313 return 313 return
@@ -319,7 +319,7 @@ export struct MultiPictureDetailPageComponent { @@ -319,7 +319,7 @@ export struct MultiPictureDetailPageComponent {
319 this.netStatus = undefined 319 this.netStatus = undefined
320 this.contentDetailData = resDTO.data?.[0]; 320 this.contentDetailData = resDTO.data?.[0];
321 // this.contentDetailData.photoList = [] 321 // this.contentDetailData.photoList = []
322 - if(this.contentDetailData?.photoList && this.contentDetailData?.photoList?.length === 0) { 322 + if (this.contentDetailData?.photoList && this.contentDetailData?.photoList?.length === 0) {
323 // 暂无内容 323 // 暂无内容
324 this.netStatus = 0 324 this.netStatus = 0
325 Logger.info(TAG, `this.netStatus:${JSON.stringify(this.netStatus)}`) 325 Logger.info(TAG, `this.netStatus:${JSON.stringify(this.netStatus)}`)
@@ -331,7 +331,8 @@ export struct MultiPictureDetailPageComponent { @@ -331,7 +331,8 @@ export struct MultiPictureDetailPageComponent {
331 this.getInteractBrowsOperate() 331 this.getInteractBrowsOperate()
332 this.getBatchAttentionStatus() 332 this.getBatchAttentionStatus()
333 } 333 }
334 - }).catch((err: Error) => { 334 + })
  335 + .catch((err: Error) => {
335 Logger.info(TAG, `fetchDetailData then,err: ${JSON.stringify(err)}`); 336 Logger.info(TAG, `fetchDetailData then,err: ${JSON.stringify(err)}`);
336 // 内容获取失败 337 // 内容获取失败
337 this.netStatus = 9 338 this.netStatus = 9
@@ -46,13 +46,13 @@ export const enum WDViewDefaultType { @@ -46,13 +46,13 @@ export const enum WDViewDefaultType {
46 /** 46 /**
47 * 空数据/无数据 47 * 空数据/无数据
48 */ 48 */
49 -@Preview 49 +// @Preview
50 @Component 50 @Component
51 export struct EmptyComponent { 51 export struct EmptyComponent {
52 // private emptySize: SizeOptions = {}; 52 // private emptySize: SizeOptions = {};
53 @State emptyWidth: string | number = CommonConstants.FULL_PARENT; 53 @State emptyWidth: string | number = CommonConstants.FULL_PARENT;
54 @State emptyHeight: string | number = CommonConstants.FULL_PARENT; 54 @State emptyHeight: string | number = CommonConstants.FULL_PARENT;
55 - @Link emptyType: number 55 + @State emptyType: number = WDViewDefaultType.WDViewDefaultType_Default
56 @State emptyButton: boolean = false 56 @State emptyButton: boolean = false
57 @State timeNum: number = 10 57 @State timeNum: number = 10
58 /** 58 /**
1 import { LiveDetailsBean } from 'wdBean/Index'; 1 import { LiveDetailsBean } from 'wdBean/Index';
2 import { WDPlayerController, WDPlayerRenderVLiveView, WDPlayerRenderView } from 'wdPlayer/Index'; 2 import { WDPlayerController, WDPlayerRenderVLiveView, WDPlayerRenderView } from 'wdPlayer/Index';
3 -import componentUtils from '@ohos.arkui.componentUtils';  
4 3
5 const TAG = 'PlayerComponent' 4 const TAG = 'PlayerComponent'
6 5
7 @Component 6 @Component
8 export struct PlayerComponent { 7 export struct PlayerComponent {
9 private playerController?: WDPlayerController; 8 private playerController?: WDPlayerController;
10 - // playerController: WDPlayerController = new WDPlayerController();  
11 @Consume @Watch('updateData') liveDetailsBean: LiveDetailsBean 9 @Consume @Watch('updateData') liveDetailsBean: LiveDetailsBean
  10 + @Consume @Watch('pageShowChange') pageShow: number
  11 + @Consume @Watch('pageHideChange') pageHide: number
12 @State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0 12 @State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
13 @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 13 @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
14 @State imgUrl: string = '' 14 @State imgUrl: string = ''
@@ -16,6 +16,14 @@ export struct PlayerComponent { @@ -16,6 +16,14 @@ export struct PlayerComponent {
16 @State liveStreamType: number | null = -1 16 @State liveStreamType: number | null = -1
17 @State playUrl: string = '' 17 @State playUrl: string = ''
18 18
  19 + pageShowChange() {
  20 + this.playerController?.play()
  21 + }
  22 +
  23 + pageHideChange() {
  24 + this.playerController?.pause()
  25 + }
  26 +
19 aboutToAppear(): void { 27 aboutToAppear(): void {
20 console.log(TAG, 'aboutToAppear') 28 console.log(TAG, 'aboutToAppear')
21 if (this.playerController) { 29 if (this.playerController) {
1 -import { Action, ContentDetailDTO, InteractDataDTO } from 'wdBean/Index'; 1 +import { ContentDetailDTO, InteractDataDTO } from 'wdBean/Index';
2 import { ContentDetailRequest } from 'wdDetailPlayApi/Index' 2 import { ContentDetailRequest } from 'wdDetailPlayApi/Index'
3 -import { ResponseDTO } from 'wdNetwork/Index';  
4 import { DetailPlayShortVideoPage } from './DetailPlayShortVideoPage' 3 import { DetailPlayShortVideoPage } from './DetailPlayShortVideoPage'
5 -// import { Test } from './Test'  
6 -import router from '@ohos.router';  
7 -import window from '@ohos.window'; 4 +import {
  5 + WDViewDefaultType,
  6 + EmptyComponent
  7 +} from '../../../../../wdComponent/src/main/ets/components/view/EmptyComponent'
8 import { 8 import {
9 batchContentDetailParams, 9 batchContentDetailParams,
10 compListItem, 10 compListItem,
11 contentListParams, 11 contentListParams,
12 - contentsItem,  
13 getRecCompInfoParams 12 getRecCompInfoParams
14 } from 'wdDetailPlayApi/src/main/ets/request/ContentDetailRequest'; 13 } from 'wdDetailPlayApi/src/main/ets/request/ContentDetailRequest';
15 import { Logger, WindowModel } from 'wdKit/Index'; 14 import { Logger, WindowModel } from 'wdKit/Index';
16 -import { BusinessError } from '@kit.BasicServicesKit';  
17 import { PictureLoading } from './PictureLoading'; 15 import { PictureLoading } from './PictureLoading';
18 16
19 interface loadMoreData { 17 interface loadMoreData {
@@ -23,8 +21,6 @@ interface loadMoreData { @@ -23,8 +21,6 @@ interface loadMoreData {
23 } 21 }
24 22
25 const TAG = 'VideoChannelDetail' 23 const TAG = 'VideoChannelDetail'
26 -let timer: number = -1  
27 -  
28 const storage = LocalStorage.getShared(); 24 const storage = LocalStorage.getShared();
29 25
30 @Entry(storage) 26 @Entry(storage)
@@ -54,6 +50,7 @@ export struct VideoChannelDetail { @@ -54,6 +50,7 @@ export struct VideoChannelDetail {
54 @State interactDataList: InteractDataDTO[] = [] 50 @State interactDataList: InteractDataDTO[] = []
55 @State totalCount: number = 0 51 @State totalCount: number = 0
56 @State isMouted: boolean = false 52 @State isMouted: boolean = false
  53 + @State isRequestError: boolean = false
57 54
58 pageShowChange() { 55 pageShowChange() {
59 if (this.bottomNavIndex === 2 && this.topNavIndex === 0) { 56 if (this.bottomNavIndex === 2 && this.topNavIndex === 0) {
@@ -149,6 +146,7 @@ export struct VideoChannelDetail { @@ -149,6 +146,7 @@ export struct VideoChannelDetail {
149 } 146 }
150 147
151 await ContentDetailRequest.getRecCompInfo(params).then(res => { 148 await ContentDetailRequest.getRecCompInfo(params).then(res => {
  149 + this.isRequestError = false
152 console.log('根据视频频道传参查询视频楼层信息totalCount', res.data?.totalCount + '') 150 console.log('根据视频频道传参查询视频楼层信息totalCount', res.data?.totalCount + '')
153 151
154 this.totalCount = res.data?.totalCount || 0 152 this.totalCount = res.data?.totalCount || 0
@@ -182,6 +180,9 @@ export struct VideoChannelDetail { @@ -182,6 +180,9 @@ export struct VideoChannelDetail {
182 this.isMouted = true 180 this.isMouted = true
183 }, 500) 181 }, 500)
184 182
  183 + }).catch(() => {
  184 + // 获取内容失败请重试
  185 + this.isRequestError = true
185 }) 186 })
186 } 187 }
187 188
@@ -211,6 +212,16 @@ export struct VideoChannelDetail { @@ -211,6 +212,16 @@ export struct VideoChannelDetail {
211 212
212 build() { 213 build() {
213 Column() { 214 Column() {
  215 + if (this.isRequestError) {
  216 + EmptyComponent({
  217 + emptyType: WDViewDefaultType.WDViewDefaultType_NoVideo,
  218 + emptyButton: true,
  219 + retry: () => {
  220 + this.getRecCompInfo()
  221 + }
  222 + })
  223 + } else {
  224 +
214 PictureLoading().visibility(this.isMouted ? Visibility.None : Visibility.Visible) 225 PictureLoading().visibility(this.isMouted ? Visibility.None : Visibility.Visible)
215 Swiper(this.swiperController) { 226 Swiper(this.swiperController) {
216 ForEach(this.data, (item: ContentDetailDTO, index: number) => { 227 ForEach(this.data, (item: ContentDetailDTO, index: number) => {
@@ -247,6 +258,7 @@ export struct VideoChannelDetail { @@ -247,6 +258,7 @@ export struct VideoChannelDetail {
247 }) 258 })
248 259
249 } 260 }
  261 + }
250 .width('100%') 262 .width('100%')
251 .height('100%') 263 .height('100%')
252 .backgroundColor('#000000') 264 .backgroundColor('#000000')
@@ -9,6 +9,14 @@ @@ -9,6 +9,14 @@
9 "value": "14fp" 9 "value": "14fp"
10 }, 10 },
11 { 11 {
  12 + "name": "font_size_12",
  13 + "value": "12fp"
  14 + },
  15 + {
  16 + "name": "normal_text_size",
  17 + "value": "16fp"
  18 + },
  19 + {
12 "name": "title_popup_image_size", 20 "name": "title_popup_image_size",
13 "value": "24vp" 21 "value": "24vp"
14 }, 22 },