Merge branch 'main' of http://192.168.1.42/developOne/harmonyPool
Showing
54 changed files
with
1216 additions
and
477 deletions
| 1 | { | 1 | { |
| 2 | "app": { | 2 | "app": { |
| 3 | + // "signingConfigs": [ | ||
| 4 | + // { | ||
| 5 | + // "name": "default", | ||
| 6 | + // "type": "HarmonyOS", | ||
| 7 | + // "material": { | ||
| 8 | + // "certpath": "C:\\Users\\pc\\.ohos\\config\\default_sight_harmony_l75MehGV9G3TUayEtL68-EIWqyYDqfVXfu9D-DPJ7I0=.cer", | ||
| 9 | + // "storePassword": "0000001AB256FAF47AA4D68E4841C95D357490DE9FBB26A3A9161AD3069E31B3623E25CB49409CCA9CF7", | ||
| 10 | + // "keyAlias": "debugKey", | ||
| 11 | + // "keyPassword": "0000001AFB06818C2BC8DC275326668AAC62B91EBF7D3F84E8BE0F156D02623AA0F4F8C6B73F362CB371", | ||
| 12 | + // "profile": "C:\\Users\\pc\\.ohos\\config\\default_sight_harmony_l75MehGV9G3TUayEtL68-EIWqyYDqfVXfu9D-DPJ7I0=.p7b", | ||
| 13 | + // "signAlg": "SHA256withECDSA", | ||
| 14 | + // "storeFile": "C:\\Users\\pc\\.ohos\\config\\default_sight_harmony_l75MehGV9G3TUayEtL68-EIWqyYDqfVXfu9D-DPJ7I0=.p12" | ||
| 15 | + // } | ||
| 16 | + // } | ||
| 17 | + // ], | ||
| 3 | "signingConfigs": [ | 18 | "signingConfigs": [ |
| 4 | { | 19 | { |
| 5 | "name": "default", | 20 | "name": "default", |
| 6 | "type": "HarmonyOS", | 21 | "type": "HarmonyOS", |
| 7 | "material": { | 22 | "material": { |
| 8 | - "certpath": "C:\\Users\\pc\\.ohos\\config\\default_sight_harmony_l75MehGV9G3TUayEtL68-EIWqyYDqfVXfu9D-DPJ7I0=.cer", | ||
| 9 | - "storePassword": "0000001AB256FAF47AA4D68E4841C95D357490DE9FBB26A3A9161AD3069E31B3623E25CB49409CCA9CF7", | ||
| 10 | - "keyAlias": "debugKey", | ||
| 11 | - "keyPassword": "0000001AFB06818C2BC8DC275326668AAC62B91EBF7D3F84E8BE0F156D02623AA0F4F8C6B73F362CB371", | ||
| 12 | - "profile": "C:\\Users\\pc\\.ohos\\config\\default_sight_harmony_l75MehGV9G3TUayEtL68-EIWqyYDqfVXfu9D-DPJ7I0=.p7b", | 23 | + "storePassword": "0000001EF28F8A628911F4F52B75E452C814EE4370854DD8DFCE186496B6AD88F8DE5AD3E10F24C1079F2EDD1FFF", |
| 24 | + "certpath": "./singing_config/manual_com.peopledailychina.hosactivity_sign/鸿蒙中文版客户端证书.cer", | ||
| 25 | + "keyAlias": "peopledailyhosalias", | ||
| 26 | + "keyPassword": "0000001E2E8A50EFF2E6D2023242B432388B2748F8299D8BB319C0B06CFF7DCEA7482C5E3CDF1398CCE095BDC68B", | ||
| 27 | + "profile": "./singing_config/manual_com.peopledailychina.hosactivity_sign/peopledaiychina-hos-profile-debugDebug.p7b", | ||
| 13 | "signAlg": "SHA256withECDSA", | 28 | "signAlg": "SHA256withECDSA", |
| 14 | - "storeFile": "C:\\Users\\pc\\.ohos\\config\\default_sight_harmony_l75MehGV9G3TUayEtL68-EIWqyYDqfVXfu9D-DPJ7I0=.p12" | 29 | + "storeFile": "./singing_config/manual_com.peopledailychina.hosactivity_sign/keystorefile.p12" |
| 15 | } | 30 | } |
| 16 | } | 31 | } |
| 17 | ], | 32 | ], |
| @@ -10,6 +10,10 @@ export class SpConstants{ | @@ -10,6 +10,10 @@ export class SpConstants{ | ||
| 10 | static USER_STATUS="user_status" | 10 | static USER_STATUS="user_status" |
| 11 | static USER_TEMP_TOKEN="tempToken" | 11 | static USER_TEMP_TOKEN="tempToken" |
| 12 | static USER_PHONE = "user_phone" | 12 | static USER_PHONE = "user_phone" |
| 13 | + static USER_CREATOR_ID = "creatorId" | ||
| 14 | + static USER_HEAD_PHOTO_URL = "headPhotoUrl" | ||
| 15 | + static USER_SEX = "sex" | ||
| 16 | + static USER_BIRTHDAY = "birthday" | ||
| 13 | //协议相关 | 17 | //协议相关 |
| 14 | static NET_SERVICE_PROTOCOL = "user_protocol" //人民日报客户端网络服务使用协议 | 18 | static NET_SERVICE_PROTOCOL = "user_protocol" //人民日报客户端网络服务使用协议 |
| 15 | static PRIVATE_PROTOCOL = "private_protocol" //人民日报客户端用户隐私协议 | 19 | static PRIVATE_PROTOCOL = "private_protocol" //人民日报客户端用户隐私协议 |
| @@ -65,6 +65,8 @@ export function registerRouter() { | @@ -65,6 +65,8 @@ export function registerRouter() { | ||
| 65 | return WDRouterPage.audioDetail | 65 | return WDRouterPage.audioDetail |
| 66 | } else if (action.params?.detailPageType == 18) { | 66 | } else if (action.params?.detailPageType == 18) { |
| 67 | return WDRouterPage.multiPictureListPage | 67 | return WDRouterPage.multiPictureListPage |
| 68 | + } else if (action.params?.detailPageType == 19) { | ||
| 69 | + return WDRouterPage.videoPlayPage | ||
| 68 | }else if (action.params?.detailPageType == 30) { | 70 | }else if (action.params?.detailPageType == 30) { |
| 69 | return WDRouterPage.themeListPage | 71 | return WDRouterPage.themeListPage |
| 70 | } | 72 | } |
| @@ -59,6 +59,8 @@ export class WDRouterPage { | @@ -59,6 +59,8 @@ export class WDRouterPage { | ||
| 59 | static multiPictureDetailPage = new WDRouterPage("phone", "ets/pages/detail/MultiPictureDetailPage"); | 59 | static multiPictureDetailPage = new WDRouterPage("phone", "ets/pages/detail/MultiPictureDetailPage"); |
| 60 | //大图列表页 | 60 | //大图列表页 |
| 61 | static multiPictureListPage = new WDRouterPage("wdComponent", "ets/pages/MultiPictureListPage"); | 61 | static multiPictureListPage = new WDRouterPage("wdComponent", "ets/pages/MultiPictureListPage"); |
| 62 | + //单个视频播放页 | ||
| 63 | + static videoPlayPage = new WDRouterPage("wdComponent", "ets/pages/VideoPlayPage"); | ||
| 62 | // 音乐详情页 | 64 | // 音乐详情页 |
| 63 | static audioDetail = new WDRouterPage("phone", "ets/pages/detail/AudioDetail"); | 65 | static audioDetail = new WDRouterPage("phone", "ets/pages/detail/AudioDetail"); |
| 64 | // 动态详情页 | 66 | // 动态详情页 |
| 1 | -import { Action, ContentDTO, Params, PhotoListBean } from 'wdBean'; | 1 | +import { Action, ContentDTO, Params, PhotoListBean, commentInfo } from 'wdBean'; |
| 2 | import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO'; | 2 | import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO'; |
| 3 | import { Logger } from 'wdKit'; | 3 | import { Logger } from 'wdKit'; |
| 4 | import { StringUtils } from 'wdKit/src/main/ets/utils/StringUtils'; | 4 | import { StringUtils } from 'wdKit/src/main/ets/utils/StringUtils'; |
| @@ -133,6 +133,24 @@ export class ProcessUtils { | @@ -133,6 +133,24 @@ export class ProcessUtils { | ||
| 133 | Logger.debug(TAG, `gotoWeb, ${content.objectId}`); | 133 | Logger.debug(TAG, `gotoWeb, ${content.objectId}`); |
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | + static commentGotoWeb(content: commentInfo) { | ||
| 137 | + let taskAction: Action = { | ||
| 138 | + type: 'JUMP_INNER_NEW_PAGE', | ||
| 139 | + params: { | ||
| 140 | + contentID: content?.newsId, | ||
| 141 | + pageID: 'IMAGE_TEXT_DETAIL', | ||
| 142 | + extra: { | ||
| 143 | + relType: content?.relType, | ||
| 144 | + relId: content?.relId, | ||
| 145 | + sourcePage: '5', | ||
| 146 | + commentId: content?.commentId | ||
| 147 | + } as ExtraDTO | ||
| 148 | + } as Params, | ||
| 149 | + }; | ||
| 150 | + WDRouterRule.jumpWithAction(taskAction) | ||
| 151 | + Logger.debug(TAG, `commentGotoWeb, ${content.newsId}`); | ||
| 152 | + } | ||
| 153 | + | ||
| 136 | private static gotoWeb(content: ContentDTO) { | 154 | private static gotoWeb(content: ContentDTO) { |
| 137 | let taskAction: Action = { | 155 | let taskAction: Action = { |
| 138 | type: 'JUMP_INNER_NEW_PAGE', | 156 | type: 'JUMP_INNER_NEW_PAGE', |
| @@ -143,7 +161,8 @@ export class ProcessUtils { | @@ -143,7 +161,8 @@ export class ProcessUtils { | ||
| 143 | relType: content?.relType, | 161 | relType: content?.relType, |
| 144 | relId: content?.relId, | 162 | relId: content?.relId, |
| 145 | channelId: content?.channelId, | 163 | channelId: content?.channelId, |
| 146 | - sourcePage: '5' | 164 | + sourcePage: '5', |
| 165 | + commentId: content?.commentInfo?.commentId | ||
| 147 | } as ExtraDTO | 166 | } as ExtraDTO |
| 148 | } as Params, | 167 | } as Params, |
| 149 | }; | 168 | }; |
| @@ -256,4 +275,20 @@ export class ProcessUtils { | @@ -256,4 +275,20 @@ export class ProcessUtils { | ||
| 256 | Logger.error(TAG, 'jumpExternalWebPage success, error: ' + JSON.stringify(err)) | 275 | Logger.error(TAG, 'jumpExternalWebPage success, error: ' + JSON.stringify(err)) |
| 257 | }) | 276 | }) |
| 258 | } | 277 | } |
| 278 | + | ||
| 279 | + /** | ||
| 280 | + * 打开端内web页面 | ||
| 281 | + * @param url web地址 | ||
| 282 | + */ | ||
| 283 | + public static gotoDefaultWebPage(url: string) { | ||
| 284 | + let taskAction: Action = { | ||
| 285 | + type: 'JUMP_H5_BY_WEB_VIEW', | ||
| 286 | + params: { | ||
| 287 | + url: url, | ||
| 288 | + } as Params, | ||
| 289 | + }; | ||
| 290 | + WDRouterRule.jumpWithAction(taskAction) | ||
| 291 | + } | ||
| 292 | + | ||
| 293 | + | ||
| 259 | } | 294 | } |
| @@ -15,6 +15,8 @@ export { ItemBean } from './src/main/ets/bean/ItemBean'; | @@ -15,6 +15,8 @@ export { ItemBean } from './src/main/ets/bean/ItemBean'; | ||
| 15 | // Content | 15 | // Content |
| 16 | export { ContentDTO } from './src/main/ets/bean/content/ContentDTO'; | 16 | export { ContentDTO } from './src/main/ets/bean/content/ContentDTO'; |
| 17 | 17 | ||
| 18 | +export { commentInfo } from './src/main/ets/bean/content/commentInfo'; | ||
| 19 | + | ||
| 18 | export { AudioDTO } from './src/main/ets/bean/content/AudioDTO'; | 20 | export { AudioDTO } from './src/main/ets/bean/content/AudioDTO'; |
| 19 | 21 | ||
| 20 | export { Action } from './src/main/ets/bean/content/Action' | 22 | export { Action } from './src/main/ets/bean/content/Action' |
| @@ -146,3 +148,8 @@ export { | @@ -146,3 +148,8 @@ export { | ||
| 146 | InfluenceData | 148 | InfluenceData |
| 147 | } from './src/main/ets/bean/peoples/PeopleShipUserDetailData'; | 149 | } from './src/main/ets/bean/peoples/PeopleShipUserDetailData'; |
| 148 | 150 | ||
| 151 | +export { | ||
| 152 | + UserDetail, | ||
| 153 | + UserExtend | ||
| 154 | +} from './src/main/ets/bean/user/UserDetail'; | ||
| 155 | + |
| @@ -15,4 +15,5 @@ export interface ExtraDTO extends ItemDTO { | @@ -15,4 +15,5 @@ export interface ExtraDTO extends ItemDTO { | ||
| 15 | relType: string; | 15 | relType: string; |
| 16 | liveStreamType?: number; | 16 | liveStreamType?: number; |
| 17 | photoList: PhotoListBean[]; | 17 | photoList: PhotoListBean[]; |
| 18 | + commentId?: string; | ||
| 18 | } | 19 | } |
| @@ -19,7 +19,10 @@ export interface Params { | @@ -19,7 +19,10 @@ export interface Params { | ||
| 19 | // 13.音频详情页 | 19 | // 13.音频详情页 |
| 20 | // 17.多图(图集)详情页 | 20 | // 17.多图(图集)详情页 |
| 21 | // 18.大图列表页 | 21 | // 18.大图列表页 |
| 22 | + // 19.单个视频播放页 | ||
| 22 | detailPageType?: number; // 详情页类型 | 23 | detailPageType?: number; // 详情页类型 |
| 23 | liveStyle?: number; // 直播类型:0横屏,1竖屏 | 24 | liveStyle?: number; // 直播类型:0横屏,1竖屏 |
| 24 | creatorId?: string; //号主id | 25 | creatorId?: string; //号主id |
| 26 | + videoUrl?: string; | ||
| 27 | + videoCoverUrl?: string; | ||
| 25 | } | 28 | } |
| @@ -3,5 +3,9 @@ export interface commentInfo { | @@ -3,5 +3,9 @@ export interface commentInfo { | ||
| 3 | newsTitle: string, | 3 | newsTitle: string, |
| 4 | userName: string, | 4 | userName: string, |
| 5 | userHeaderUrl: string, | 5 | userHeaderUrl: string, |
| 6 | - publishTime: number | 6 | + publishTime: number, |
| 7 | + commentId: string, | ||
| 8 | + newsId: string, | ||
| 9 | + relId: string; | ||
| 10 | + relType: string; | ||
| 7 | } | 11 | } |
| @@ -16,4 +16,11 @@ export interface LiveRoomItemBean { | @@ -16,4 +16,11 @@ export interface LiveRoomItemBean { | ||
| 16 | //是否置顶 1置顶0不置顶 | 16 | //是否置顶 1置顶0不置顶 |
| 17 | isTop: number | 17 | isTop: number |
| 18 | role: string | 18 | role: string |
| 19 | + //ZH_TEXT_AND_IMAGE_MSG :图文,ZH_TEXT_MSG:文本,ZH_VIDEO_MSG:视频,ZH_AUDIO_MSG:音频 | ||
| 20 | + dataType: string | ||
| 21 | + transcodeImageUrl: string | ||
| 22 | + videoUrl: string | ||
| 23 | + pictureResolutions: string[] | ||
| 24 | + //音视频长度 | ||
| 25 | + duration: number | ||
| 19 | } | 26 | } |
| 1 | +export interface UserDetail{ | ||
| 2 | + createTime:string | ||
| 3 | + headPhotoStatus:number | ||
| 4 | + id:number | ||
| 5 | + modifyNumber:number | ||
| 6 | + phone:string | ||
| 7 | + status:number | ||
| 8 | + tenancy:number | ||
| 9 | + userNameStatus:number | ||
| 10 | + userType:number | ||
| 11 | + userName:string | ||
| 12 | + userExtend:UserExtend | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | + export interface UserExtend{ | ||
| 16 | + airec:number | ||
| 17 | + deviceId:string | ||
| 18 | + lastLoginTime:string | ||
| 19 | + sex:number | ||
| 20 | + address:string | ||
| 21 | + birthday:string | ||
| 22 | + city:string | ||
| 23 | + county:string | ||
| 24 | + headPhotoUrl:string | ||
| 25 | + introduction:string | ||
| 26 | + province:string | ||
| 27 | + sign:string | ||
| 28 | + creatorId:string | ||
| 29 | +} | ||
| 30 | + |
| @@ -14,6 +14,7 @@ import display from '@ohos.display'; | @@ -14,6 +14,7 @@ import display from '@ohos.display'; | ||
| 14 | import { BusinessError } from '@ohos.base'; | 14 | import { BusinessError } from '@ohos.base'; |
| 15 | import { CommonConstants } from 'wdConstant/Index'; | 15 | import { CommonConstants } from 'wdConstant/Index'; |
| 16 | import { CardMediaInfo } from '../components/cardCommon/CardMediaInfo' | 16 | import { CardMediaInfo } from '../components/cardCommon/CardMediaInfo' |
| 17 | +import router from '@ohos.router'; | ||
| 17 | const TAG = 'DynamicDetailComponent' | 18 | const TAG = 'DynamicDetailComponent' |
| 18 | @Preview | 19 | @Preview |
| 19 | @Component | 20 | @Component |
| @@ -32,6 +33,7 @@ export struct DynamicDetailComponent { | @@ -32,6 +33,7 @@ export struct DynamicDetailComponent { | ||
| 32 | newsType:15 | 33 | newsType:15 |
| 33 | } as ContentDetailDTO | 34 | } as ContentDetailDTO |
| 34 | //变量 | 35 | //变量 |
| 36 | + scroller: Scroller = new Scroller(); | ||
| 35 | /** | 37 | /** |
| 36 | * 默认未关注 点击去关注 | 38 | * 默认未关注 点击去关注 |
| 37 | */ | 39 | */ |
| @@ -55,7 +57,6 @@ export struct DynamicDetailComponent { | @@ -55,7 +57,6 @@ export struct DynamicDetailComponent { | ||
| 55 | } | 57 | } |
| 56 | 58 | ||
| 57 | build() { | 59 | build() { |
| 58 | - Row() { | ||
| 59 | Column(){ | 60 | Column(){ |
| 60 | //logo、日期 | 61 | //logo、日期 |
| 61 | Row() { | 62 | Row() { |
| @@ -77,259 +78,307 @@ export struct DynamicDetailComponent { | @@ -77,259 +78,307 @@ export struct DynamicDetailComponent { | ||
| 77 | .width('100%') | 78 | .width('100%') |
| 78 | .height($r('app.float.margin_7')) | 79 | .height($r('app.float.margin_7')) |
| 79 | .margin({left: $r('app.float.margin_16'), right: $r('app.float.margin_16')} ) | 80 | .margin({left: $r('app.float.margin_16'), right: $r('app.float.margin_16')} ) |
| 80 | - //号主信息 | ||
| 81 | - Row() { | ||
| 82 | - //头像 | ||
| 83 | - Stack() { | ||
| 84 | - Image(this.contentDetailData.rmhInfo?.rmhHeadUrl) | ||
| 85 | - .alt(this.contentDetailData.rmhInfo?.userType=='1'?$r('app.media.default_head'):$r('app.media.icon_default_head_mater')) | ||
| 86 | - .width($r('app.float.margin_32')) | ||
| 87 | - .height($r('app.float.margin_32')) | ||
| 88 | - .objectFit(ImageFit.Cover) | ||
| 89 | - .borderRadius($r('app.float.margin_16')) | ||
| 90 | - Image($r('app.media.icon_border_test')) | ||
| 91 | - .width($r('app.float.margin_48')) | ||
| 92 | - .height($r('app.float.margin_48')) | ||
| 93 | - .objectFit(ImageFit.Cover) | ||
| 94 | - .borderRadius($r('app.float.margin_24')) | ||
| 95 | - } | ||
| 96 | - .width($r('app.float.margin_48')) | ||
| 97 | - .height($r('app.float.margin_48')) | ||
| 98 | - .alignContent(Alignment.Center) | ||
| 99 | - Column(){ | ||
| 100 | - //昵称 | ||
| 101 | - Text(this.contentDetailData.rmhInfo?.rmhName) | ||
| 102 | - .fontSize($r('app.float.font_size_14')) | ||
| 103 | - .fontColor($r('app.color.color_222222')) | ||
| 104 | - .fontWeight(FontWeight.Medium) | ||
| 105 | - .margin({ left: $r('app.float.margin_5') }) | ||
| 106 | - .alignSelf(ItemAlign.Start) | ||
| 107 | - //简介 | ||
| 108 | - Text(this.contentDetailData.rmhInfo?.rmhDesc) | ||
| 109 | - .fontSize($r('app.float.font_size_14')) | ||
| 110 | - .fontColor($r('app.color.color_B0B0B0')) | ||
| 111 | - .fontWeight(FontWeight.Medium) | ||
| 112 | - .maxLines(1) | ||
| 113 | - .margin({ left: $r('app.float.margin_5') }) | ||
| 114 | - .alignSelf(ItemAlign.Start) | ||
| 115 | - } | ||
| 116 | - .width('63%') | ||
| 117 | - .margin({right: $r('app.float.margin_6')}) | ||
| 118 | - if (this.followStatus == '0') { | ||
| 119 | - Text('关注') | ||
| 120 | - .width($r('app.float.margin_54')) | ||
| 121 | - .height($r('app.float.margin_24')) | ||
| 122 | - .textAlign(TextAlign.Center) | ||
| 123 | - .fontSize($r('app.float.font_size_12')) | ||
| 124 | - .borderRadius($r('app.float.vp_3')) | ||
| 125 | - .backgroundColor($r('app.color.color_ED2800')) | ||
| 126 | - .fontColor($r('app.color.color_fff')) | ||
| 127 | - .onClick(() => { | ||
| 128 | - // this.handleAccention(this.item, 1) | ||
| 129 | - }) | ||
| 130 | - } else { | ||
| 131 | - Text('已关注') | ||
| 132 | - .width($r('app.float.margin_54')) | ||
| 133 | - .height($r('app.float.margin_24')) | ||
| 134 | - .borderWidth(1) | ||
| 135 | - .textAlign(TextAlign.Center) | ||
| 136 | - .fontSize($r('app.float.font_size_12')) | ||
| 137 | - .borderRadius($r('app.float.vp_3')) | ||
| 138 | - .borderColor($r('app.color.color_CCCCCC')) | ||
| 139 | - .fontColor($r('app.color.color_CCCCCC')) | ||
| 140 | - .onClick(() => { | ||
| 141 | - // this.handleAccention(this.item, 0) | ||
| 142 | - }) | ||
| 143 | - } | ||
| 144 | - } | ||
| 145 | - .width('100%') | ||
| 146 | - .margin({ left: $r('app.float.margin_16')}) | ||
| 147 | - //内容 | ||
| 148 | - Text(StringUtils.isEmpty(this.contentDetailData.newsContent) | ||
| 149 | - ?StringUtils.isEmpty(this.contentDetailData.newsSummary) | ||
| 150 | - ?this.contentDetailData.newsTitle | ||
| 151 | - :this.contentDetailData.newsSummary | ||
| 152 | - :this.contentDetailData.newsContent) | ||
| 153 | - .fontColor($r('app.color.color_222222')) | ||
| 154 | - .fontSize($r('app.float.font_size_18')) | ||
| 155 | - .lineHeight($r('app.float.margin_25')) | ||
| 156 | - .margin({ top: $r('app.float.margin_6') | ||
| 157 | - ,left: $r('app.float.margin_16') | ||
| 158 | - ,right: $r('app.float.margin_16') }) | ||
| 159 | - .alignSelf(ItemAlign.Start) | ||
| 160 | - if(this.contentDetailData.newsType+"" == ContentConstants.TYPE_FOURTEEN){ | ||
| 161 | - //附件内容:图片/视频 | ||
| 162 | - if(this.contentDetailData.photoList!= null && this.contentDetailData.photoList.length>0){ | ||
| 163 | - // 图片-从无图到9图展示 | ||
| 164 | - GridRow({ | ||
| 165 | - gutter: { x: 2, y: 2 } | ||
| 166 | - }) { | ||
| 167 | - ForEach(this.contentDetailData.photoList, (item: PhotoListBean, index: number) => { | ||
| 168 | - if (this.contentDetailData.photoList.length === 1) { | ||
| 169 | - if (this.getPicType(item) !== 3) { | ||
| 170 | - GridCol({ | ||
| 171 | - span: this.getPicType(item) === 1 ? 12 : 8 | ||
| 172 | - }){ | ||
| 173 | - Stack({ | ||
| 174 | - alignContent: Alignment.BottomEnd | ||
| 175 | - }) { | ||
| 176 | - if (this.getPicType(item) === 1) { | 81 | + Stack({ alignContent: Alignment.Bottom }) { |
| 82 | + Scroll(this.scroller) { | ||
| 83 | + Column() { | ||
| 84 | + //号主信息 | ||
| 85 | + Row() { | ||
| 86 | + //头像 | ||
| 87 | + Stack() { | ||
| 88 | + Image(this.contentDetailData.rmhInfo?.rmhHeadUrl) | ||
| 89 | + .alt(this.contentDetailData.rmhInfo?.userType=='1'?$r('app.media.default_head'):$r('app.media.icon_default_head_mater')) | ||
| 90 | + .width($r('app.float.margin_32')) | ||
| 91 | + .height($r('app.float.margin_32')) | ||
| 92 | + .objectFit(ImageFit.Cover) | ||
| 93 | + .borderRadius($r('app.float.margin_16')) | ||
| 94 | + Image($r('app.media.icon_border_test')) | ||
| 95 | + .width($r('app.float.margin_48')) | ||
| 96 | + .height($r('app.float.margin_48')) | ||
| 97 | + .objectFit(ImageFit.Cover) | ||
| 98 | + .borderRadius($r('app.float.margin_24')) | ||
| 99 | + } | ||
| 100 | + .width($r('app.float.margin_48')) | ||
| 101 | + .height($r('app.float.margin_48')) | ||
| 102 | + .alignContent(Alignment.Center) | ||
| 103 | + Column(){ | ||
| 104 | + //昵称 | ||
| 105 | + Text(this.contentDetailData.rmhInfo?.rmhName) | ||
| 106 | + .fontSize($r('app.float.font_size_14')) | ||
| 107 | + .fontColor($r('app.color.color_222222')) | ||
| 108 | + .fontWeight(FontWeight.Medium) | ||
| 109 | + .margin({ left: $r('app.float.margin_5') }) | ||
| 110 | + .alignSelf(ItemAlign.Start) | ||
| 111 | + //简介 | ||
| 112 | + Text(this.contentDetailData.rmhInfo?.rmhDesc) | ||
| 113 | + .fontSize($r('app.float.font_size_14')) | ||
| 114 | + .fontColor($r('app.color.color_B0B0B0')) | ||
| 115 | + .fontWeight(FontWeight.Medium) | ||
| 116 | + .maxLines(1) | ||
| 117 | + .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 118 | + .margin({ left: $r('app.float.margin_5') }) | ||
| 119 | + .alignSelf(ItemAlign.Start) | ||
| 120 | + } | ||
| 121 | + .width('63%') | ||
| 122 | + .margin({right: $r('app.float.margin_6')}) | ||
| 123 | + if (this.followStatus == '0') { | ||
| 124 | + Text('关注') | ||
| 125 | + .width($r('app.float.margin_54')) | ||
| 126 | + .height($r('app.float.margin_24')) | ||
| 127 | + .textAlign(TextAlign.Center) | ||
| 128 | + .fontSize($r('app.float.font_size_12')) | ||
| 129 | + .borderRadius($r('app.float.vp_3')) | ||
| 130 | + .backgroundColor($r('app.color.color_ED2800')) | ||
| 131 | + .fontColor($r('app.color.color_fff')) | ||
| 132 | + .onClick(() => { | ||
| 133 | + // this.handleAccention(this.item, 1) | ||
| 134 | + }) | ||
| 135 | + } else { | ||
| 136 | + Text('已关注') | ||
| 137 | + .width($r('app.float.margin_54')) | ||
| 138 | + .height($r('app.float.margin_24')) | ||
| 139 | + .borderWidth(1) | ||
| 140 | + .textAlign(TextAlign.Center) | ||
| 141 | + .fontSize($r('app.float.font_size_12')) | ||
| 142 | + .borderRadius($r('app.float.vp_3')) | ||
| 143 | + .borderColor($r('app.color.color_CCCCCC')) | ||
| 144 | + .fontColor($r('app.color.color_CCCCCC')) | ||
| 145 | + .onClick(() => { | ||
| 146 | + // this.handleAccention(this.item, 0) | ||
| 147 | + }) | ||
| 148 | + } | ||
| 149 | + } | ||
| 150 | + .width('100%') | ||
| 151 | + .margin({ left: $r('app.float.margin_16')}) | ||
| 152 | + //内容 | ||
| 153 | + Text(StringUtils.isEmpty(this.contentDetailData.newsContent) | ||
| 154 | + ?StringUtils.isEmpty(this.contentDetailData.newsSummary) | ||
| 155 | + ?this.contentDetailData.newsTitle | ||
| 156 | + :this.contentDetailData.newsSummary | ||
| 157 | + :this.contentDetailData.newsContent) | ||
| 158 | + .fontColor($r('app.color.color_222222')) | ||
| 159 | + .fontSize($r('app.float.font_size_18')) | ||
| 160 | + .lineHeight($r('app.float.margin_25')) | ||
| 161 | + .margin({ top: $r('app.float.margin_6') | ||
| 162 | + ,left: $r('app.float.margin_16') | ||
| 163 | + ,right: $r('app.float.margin_16') }) | ||
| 164 | + .alignSelf(ItemAlign.Start) | ||
| 165 | + if(this.contentDetailData.newsType+"" == ContentConstants.TYPE_FOURTEEN){ | ||
| 166 | + //附件内容:图片/视频 | ||
| 167 | + if(this.contentDetailData.photoList!= null && this.contentDetailData.photoList.length>0){ | ||
| 168 | + // 图片-从无图到9图展示 | ||
| 169 | + GridRow({ | ||
| 170 | + gutter: { x: 2, y: 2 } | ||
| 171 | + }) { | ||
| 172 | + ForEach(this.contentDetailData.photoList, (item: PhotoListBean, index: number) => { | ||
| 173 | + if (this.contentDetailData.photoList.length === 1) { | ||
| 174 | + if (this.getPicType(item) !== 3) { | ||
| 175 | + GridCol({ | ||
| 176 | + span: this.getPicType(item) === 1 ? 12 : 8 | ||
| 177 | + }){ | ||
| 178 | + Stack({ | ||
| 179 | + alignContent: Alignment.BottomEnd | ||
| 180 | + }) { | ||
| 181 | + if (this.getPicType(item) === 1) { | ||
| 182 | + Image(item.picPath) | ||
| 183 | + .width('100%') | ||
| 184 | + .height(172) | ||
| 185 | + .autoResize(true) | ||
| 186 | + .borderRadius(this.caclImageRadius(index)) | ||
| 187 | + } else if (this.getPicType(item) === 2) { | ||
| 188 | + Image(item.picPath) | ||
| 189 | + .width('100%') | ||
| 190 | + .height(305) | ||
| 191 | + .autoResize(true) | ||
| 192 | + .borderRadius(this.caclImageRadius(index)) | ||
| 193 | + } | ||
| 194 | + Flex({ direction: FlexDirection.Row }) { | ||
| 195 | + Image($r('app.media.icon_long_pic')) | ||
| 196 | + .width(14) | ||
| 197 | + .height(14) | ||
| 198 | + .margin({right: 4}) | ||
| 199 | + Text('长图') | ||
| 200 | + .fontSize(12) | ||
| 201 | + .fontWeight(400) | ||
| 202 | + .fontColor(0xffffff) | ||
| 203 | + .fontFamily('PingFang SC') | ||
| 204 | + } | ||
| 205 | + .width(48) | ||
| 206 | + .padding({bottom: 9}) | ||
| 207 | + | ||
| 208 | + } | ||
| 209 | + } | ||
| 210 | + .onClick((event: ClickEvent) => { | ||
| 211 | + ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList) | ||
| 212 | + }) | ||
| 213 | + } else { | ||
| 214 | + GridCol({ | ||
| 215 | + span: { xs: 8 } | ||
| 216 | + }) { | ||
| 217 | + Image(item.picPath) | ||
| 218 | + .width('100%') | ||
| 219 | + .borderRadius(this.caclImageRadius(index)) | ||
| 220 | + .autoResize(true) | ||
| 221 | + .opacity(!item.width && !item.height ? 0 : 1) | ||
| 222 | + .onComplete(callback => { | ||
| 223 | + item.width = callback?.width || 0; | ||
| 224 | + item.height = callback?.height || 0; | ||
| 225 | + }) | ||
| 226 | + } | ||
| 227 | + } | ||
| 228 | + } else if (this.contentDetailData.photoList.length === 4) { | ||
| 229 | + GridCol({ | ||
| 230 | + span: { xs: 4 } | ||
| 231 | + }) { | ||
| 177 | Image(item.picPath) | 232 | Image(item.picPath) |
| 178 | - .width('100%') | ||
| 179 | - .height(172) | ||
| 180 | - .autoResize(true) | 233 | + .aspectRatio(1) |
| 181 | .borderRadius(this.caclImageRadius(index)) | 234 | .borderRadius(this.caclImageRadius(index)) |
| 182 | - } else if (this.getPicType(item) === 2) { | 235 | + } |
| 236 | + } else { | ||
| 237 | + GridCol({ | ||
| 238 | + span: { sm: 4, lg: 3 } | ||
| 239 | + }) { | ||
| 183 | Image(item.picPath) | 240 | Image(item.picPath) |
| 184 | - .width('100%') | ||
| 185 | - .height(305) | ||
| 186 | - .autoResize(true) | 241 | + .aspectRatio(1) |
| 187 | .borderRadius(this.caclImageRadius(index)) | 242 | .borderRadius(this.caclImageRadius(index)) |
| 188 | } | 243 | } |
| 189 | - Flex({ direction: FlexDirection.Row }) { | ||
| 190 | - Image($r('app.media.icon_long_pic')) | ||
| 191 | - .width(14) | ||
| 192 | - .height(14) | ||
| 193 | - .margin({right: 4}) | ||
| 194 | - Text('长图') | ||
| 195 | - .fontSize(12) | ||
| 196 | - .fontWeight(400) | ||
| 197 | - .fontColor(0xffffff) | ||
| 198 | - .fontFamily('PingFang SC') | ||
| 199 | - } | ||
| 200 | - .width(48) | ||
| 201 | - .padding({bottom: 9}) | ||
| 202 | - | ||
| 203 | } | 244 | } |
| 204 | - } | ||
| 205 | - .onClick((event: ClickEvent) => { | ||
| 206 | - ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList) | ||
| 207 | }) | 245 | }) |
| 208 | - } else { | ||
| 209 | - GridCol({ | ||
| 210 | - span: { xs: 8 } | ||
| 211 | - }) { | ||
| 212 | - Image(item.picPath) | ||
| 213 | - .width('100%') | ||
| 214 | - .borderRadius(this.caclImageRadius(index)) | ||
| 215 | - .autoResize(true) | ||
| 216 | - .opacity(!item.width && !item.height ? 0 : 1) | ||
| 217 | - .onComplete(callback => { | ||
| 218 | - item.width = callback?.width || 0; | ||
| 219 | - item.height = callback?.height || 0; | ||
| 220 | - }) | ||
| 221 | - } | ||
| 222 | - } | ||
| 223 | - } else if (this.contentDetailData.photoList.length === 4) { | ||
| 224 | - GridCol({ | ||
| 225 | - span: { xs: 4 } | ||
| 226 | - }) { | ||
| 227 | - Image(item.picPath) | ||
| 228 | - .aspectRatio(1) | ||
| 229 | - .borderRadius(this.caclImageRadius(index)) | ||
| 230 | - } | ||
| 231 | - } else { | ||
| 232 | - GridCol({ | ||
| 233 | - span: { sm: 4, lg: 3 } | ||
| 234 | - }) { | ||
| 235 | - Image(item.picPath) | ||
| 236 | - .aspectRatio(1) | ||
| 237 | - .borderRadius(this.caclImageRadius(index)) | ||
| 238 | } | 246 | } |
| 247 | + .margin({ left: $r('app.float.margin_16'),right: $r('app.float.margin_16'),top: $r('app.float.margin_8')}) | ||
| 239 | } | 248 | } |
| 240 | - }) | ||
| 241 | - } | ||
| 242 | - .margin({ left: $r('app.float.margin_16'),right: $r('app.float.margin_16'),top: $r('app.float.margin_8')}) | ||
| 243 | - } | ||
| 244 | - }else{ | ||
| 245 | - if(this.contentDetailData.videoInfo!= null && this.contentDetailData.videoInfo.length>0){ | ||
| 246 | - GridRow() { | ||
| 247 | - if (this.contentDetailData.videoInfo[0].videoLandScape === 1) { | ||
| 248 | - // 横屏 | ||
| 249 | - GridCol({ | ||
| 250 | - span: { xs: 12 } | ||
| 251 | - }) { | ||
| 252 | - Stack() { | ||
| 253 | - Image(this.contentDetailData.fullColumnImgUrls!= null && this.contentDetailData.fullColumnImgUrls.length>0&&!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url)? | ||
| 254 | - this.contentDetailData.fullColumnImgUrls[0].url: | ||
| 255 | - this.contentDetailData.videoInfo[0].firstFrameImageUri) | ||
| 256 | - .width(CommonConstants.FULL_WIDTH) | ||
| 257 | - .aspectRatio(16 / 9) | ||
| 258 | - .borderRadius($r('app.float.image_border_radius')) | ||
| 259 | - CardMediaInfo({ contentDTO: this.mJumpInfo }) | ||
| 260 | - } | ||
| 261 | - .align(Alignment.BottomEnd) | ||
| 262 | - } | ||
| 263 | - } else { | ||
| 264 | - // 竖图显示,宽度占50%,高度自适应 | ||
| 265 | - GridCol({ | ||
| 266 | - span: { xs: 6 } | ||
| 267 | - }) { | ||
| 268 | - Stack() { | ||
| 269 | - Image(this.contentDetailData.fullColumnImgUrls!= null && this.contentDetailData.fullColumnImgUrls.length>0&&!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url)? | ||
| 270 | - this.contentDetailData.fullColumnImgUrls[0].url: | ||
| 271 | - this.contentDetailData.videoInfo[0].firstFrameImageUri) | ||
| 272 | - .width(CommonConstants.FULL_WIDTH) | ||
| 273 | - .borderRadius($r('app.float.image_border_radius')) | ||
| 274 | - CardMediaInfo({ contentDTO: this.mJumpInfo }) | 249 | + }else{ |
| 250 | + if(this.contentDetailData.videoInfo!= null && this.contentDetailData.videoInfo.length>0){ | ||
| 251 | + GridRow() { | ||
| 252 | + if (this.contentDetailData.videoInfo[0].videoLandScape === 1) { | ||
| 253 | + // 横屏 | ||
| 254 | + GridCol({ | ||
| 255 | + span: { xs: 12 } | ||
| 256 | + }) { | ||
| 257 | + Stack() { | ||
| 258 | + Image(this.contentDetailData.fullColumnImgUrls!= null && this.contentDetailData.fullColumnImgUrls.length>0&&!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url)? | ||
| 259 | + this.contentDetailData.fullColumnImgUrls[0].url: | ||
| 260 | + this.contentDetailData.videoInfo[0].firstFrameImageUri) | ||
| 261 | + .width(CommonConstants.FULL_WIDTH) | ||
| 262 | + .aspectRatio(16 / 9) | ||
| 263 | + .borderRadius($r('app.float.image_border_radius')) | ||
| 264 | + CardMediaInfo({ contentDTO: this.mJumpInfo }) | ||
| 265 | + } | ||
| 266 | + .align(Alignment.BottomEnd) | ||
| 267 | + } | ||
| 268 | + } else { | ||
| 269 | + // 竖图显示,宽度占50%,高度自适应 | ||
| 270 | + GridCol({ | ||
| 271 | + span: { xs: 6 } | ||
| 272 | + }) { | ||
| 273 | + Stack() { | ||
| 274 | + Image(this.contentDetailData.fullColumnImgUrls!= null && this.contentDetailData.fullColumnImgUrls.length>0&&!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url)? | ||
| 275 | + this.contentDetailData.fullColumnImgUrls[0].url: | ||
| 276 | + this.contentDetailData.videoInfo[0].firstFrameImageUri) | ||
| 277 | + .width(CommonConstants.FULL_WIDTH) | ||
| 278 | + .borderRadius($r('app.float.image_border_radius')) | ||
| 279 | + CardMediaInfo({ contentDTO: this.mJumpInfo }) | ||
| 280 | + } | ||
| 281 | + .align(Alignment.BottomEnd) | ||
| 282 | + } | ||
| 283 | + } | ||
| 275 | } | 284 | } |
| 276 | - .align(Alignment.BottomEnd) | 285 | + .margin({ left: $r('app.float.margin_16'),right: $r('app.float.margin_16'),top: $r('app.float.margin_8')}) |
| 286 | + .onClick((event: ClickEvent) => { | ||
| 287 | + this.mJumpInfo.objectType = ContentConstants.TYPE_VOD; | ||
| 288 | + ProcessUtils.processPage(this.mJumpInfo) | ||
| 289 | + }) | ||
| 277 | } | 290 | } |
| 278 | } | 291 | } |
| 292 | + //特别声明 | ||
| 293 | + Text("特别声明:本文为人民日报新媒体平台“人民号”作者上传并发布,仅代表作者观点。人民日报仅提供信息发布平台。") | ||
| 294 | + .fontColor($r('app.color.color_CCCCCC')) | ||
| 295 | + .fontSize($r('app.float.font_size_12')) | ||
| 296 | + .lineHeight($r('app.float.margin_16')) | ||
| 297 | + .margin({ top: $r('app.float.margin_16') | ||
| 298 | + ,left: $r('app.float.margin_16') | ||
| 299 | + ,right: $r('app.float.margin_16') }) | ||
| 300 | + //微信/朋友圈/微博 | ||
| 301 | + Row(){ | ||
| 302 | + Image($r('app.media.xxhdpi_pic_wechat')) | ||
| 303 | + .width($r('app.float.margin_116')) | ||
| 304 | + .height($r('app.float.margin_36')) | ||
| 305 | + .objectFit(ImageFit.Cover) | ||
| 306 | + Image($r('app.media.xxhdpi_pic_pyq')) | ||
| 307 | + .width($r('app.float.margin_116')) | ||
| 308 | + .height($r('app.float.margin_36')) | ||
| 309 | + .margin({ left: $r('app.float.margin_4_negative')}) | ||
| 310 | + .objectFit(ImageFit.Cover) | ||
| 311 | + Image($r('app.media.xxhdpi_pic_wb')) | ||
| 312 | + .width($r('app.float.margin_116')) | ||
| 313 | + .height($r('app.float.margin_36')) | ||
| 314 | + .margin({ left: $r('app.float.margin_4_negative')}) | ||
| 315 | + .objectFit(ImageFit.Cover) | ||
| 316 | + } | ||
| 317 | + .margin({ top: $r('app.float.margin_24')}) | ||
| 318 | + //点赞 | ||
| 319 | + Row(){ | ||
| 320 | + Image($r('app.media.icon_like_selected_redheart')) | ||
| 321 | + .width($r('app.float.margin_24')) | ||
| 322 | + .height($r('app.float.margin_24')) | ||
| 323 | + .objectFit(ImageFit.Cover) | ||
| 324 | + Text("2.6万") | ||
| 325 | + .fontColor($r('app.color.color_999999')) | ||
| 326 | + .fontSize($r('app.float.font_size_16')) | ||
| 327 | + .lineHeight($r('app.float.margin_20')) | ||
| 328 | + .margin({ left: $r('app.float.margin_2')}) | ||
| 329 | + } | ||
| 330 | + .margin({top:$r('app.float.margin_16')}) | ||
| 331 | + //fixme 评论组件 | ||
| 279 | } | 332 | } |
| 280 | - .margin({ left: $r('app.float.margin_16'),right: $r('app.float.margin_16'),top: $r('app.float.margin_8')}) | ||
| 281 | - .onClick((event: ClickEvent) => { | ||
| 282 | - this.mJumpInfo.objectType = ContentConstants.TYPE_VOD; | ||
| 283 | - ProcessUtils.processPage(this.mJumpInfo) | ||
| 284 | - }) | ||
| 285 | } | 333 | } |
| 286 | - } | ||
| 287 | - //特别声明 | ||
| 288 | - Text("特别声明:本文为人民日报新媒体平台“人民号”作者上传并发布,仅代表作者观点。人民日报仅提供信息发布平台。") | ||
| 289 | - .fontColor($r('app.color.color_CCCCCC')) | ||
| 290 | - .fontSize($r('app.float.font_size_12')) | ||
| 291 | - .lineHeight($r('app.float.margin_16')) | ||
| 292 | - .margin({ top: $r('app.float.margin_16') | ||
| 293 | - ,left: $r('app.float.margin_16') | ||
| 294 | - ,right: $r('app.float.margin_16') }) | ||
| 295 | - //微信/朋友圈/微博 | ||
| 296 | - Row(){ | ||
| 297 | - Image($r('app.media.xxhdpi_pic_wechat')) | ||
| 298 | - .width($r('app.float.margin_116')) | ||
| 299 | - .height($r('app.float.margin_36')) | ||
| 300 | - .objectFit(ImageFit.Cover) | ||
| 301 | - Image($r('app.media.xxhdpi_pic_pyq')) | ||
| 302 | - .width($r('app.float.margin_116')) | ||
| 303 | - .height($r('app.float.margin_36')) | ||
| 304 | - .margin({ left: $r('app.float.margin_4_negative')}) | ||
| 305 | - .objectFit(ImageFit.Cover) | ||
| 306 | - Image($r('app.media.xxhdpi_pic_wb')) | ||
| 307 | - .width($r('app.float.margin_116')) | ||
| 308 | - .height($r('app.float.margin_36')) | ||
| 309 | - .margin({ left: $r('app.float.margin_4_negative')}) | ||
| 310 | - .objectFit(ImageFit.Cover) | ||
| 311 | - } | ||
| 312 | - .margin({ top: $r('app.float.margin_24')}) | ||
| 313 | - //点赞 | ||
| 314 | - Row(){ | ||
| 315 | - Image($r('app.media.icon_like_selected_redheart')) | ||
| 316 | - .width($r('app.float.margin_24')) | ||
| 317 | - .height($r('app.float.margin_24')) | ||
| 318 | - .objectFit(ImageFit.Cover) | ||
| 319 | - Text("2.6万") | ||
| 320 | - .fontColor($r('app.color.color_999999')) | ||
| 321 | - .fontSize($r('app.float.font_size_16')) | ||
| 322 | - .lineHeight($r('app.float.margin_20')) | ||
| 323 | - .margin({ left: $r('app.float.margin_2')}) | ||
| 324 | - } | ||
| 325 | - //评论组件/底部组件 | 334 | + .width(CommonConstants.FULL_WIDTH) |
| 335 | + .height(CommonConstants.FULL_HEIGHT) | ||
| 336 | + .padding({ bottom: 76 }) | ||
| 337 | + .scrollBar(BarState.Off) | ||
| 338 | + .alignSelf(ItemAlign.Start) | ||
| 339 | + //底部交互区 | ||
| 340 | + Row() { | ||
| 341 | + Image($r('app.media.icon_arrow_left')) | ||
| 342 | + .width(24) | ||
| 343 | + .height(24) | ||
| 344 | + .onClick((event: ClickEvent) => { | ||
| 345 | + router.back() | ||
| 346 | + }) | ||
| 347 | + | ||
| 348 | + Row() { | ||
| 349 | + Image($r('app.media.icon_comment')) | ||
| 350 | + .width(24) | ||
| 351 | + .height(24) | ||
| 352 | + .margin({ right: 24 }) | ||
| 353 | + .id('comment') | ||
| 326 | 354 | ||
| 355 | + Image($r('app.media.icon_star')) | ||
| 356 | + .width(24) | ||
| 357 | + .height(24) | ||
| 358 | + .margin({ right: 24 }) | ||
| 359 | + | ||
| 360 | + Image($r('app.media.icon_listen')) | ||
| 361 | + .width(24) | ||
| 362 | + .height(24) | ||
| 363 | + .margin({ right: 24 }) | ||
| 364 | + | ||
| 365 | + Image($r('app.media.icon_forward')) | ||
| 366 | + .width(24) | ||
| 367 | + .height(24) | ||
| 368 | + | ||
| 369 | + } | ||
| 370 | + } | ||
| 371 | + .width(CommonConstants.FULL_WIDTH) | ||
| 372 | + .height(56) | ||
| 373 | + .padding({ left: 15, right: 15, bottom: 50, top: 20 }) | ||
| 374 | + .justifyContent(FlexAlign.SpaceBetween) | ||
| 375 | + .backgroundColor(Color.White) | ||
| 376 | + } | ||
| 327 | } | 377 | } |
| 328 | .alignSelf(ItemAlign.Start) | 378 | .alignSelf(ItemAlign.Start) |
| 329 | - } | ||
| 330 | - .backgroundColor('#FFFFFFFF') | ||
| 331 | - .width('100%') | ||
| 332 | - .height('100%') | 379 | + .backgroundColor('#FFFFFFFF') |
| 380 | + .width('100%') | ||
| 381 | + .height('100%') | ||
| 333 | } | 382 | } |
| 334 | /** | 383 | /** |
| 335 | * 请求(动态)详情页数据 | 384 | * 请求(动态)详情页数据 |
| 1 | -import { ContentDTO, FullColumnImgUrlDTO } from 'wdBean'; | 1 | +import { ContentDTO, FullColumnImgUrlDTO, PhotoListBean } from 'wdBean'; |
| 2 | import { RmhTitle } from '../cardCommon/RmhTitle' | 2 | import { RmhTitle } from '../cardCommon/RmhTitle' |
| 3 | import { ProcessUtils } from 'wdRouter'; | 3 | import { ProcessUtils } from 'wdRouter'; |
| 4 | import { CommonConstants } from 'wdConstant/Index'; | 4 | import { CommonConstants } from 'wdConstant/Index'; |
| @@ -92,8 +92,17 @@ export struct Card19Component { | @@ -92,8 +92,17 @@ export struct Card19Component { | ||
| 92 | } | 92 | } |
| 93 | // 图片-从无图到9图展示 | 93 | // 图片-从无图到9图展示 |
| 94 | createImg({ fullColumnImgUrls: this.contentDTO.fullColumnImgUrls }) | 94 | createImg({ fullColumnImgUrls: this.contentDTO.fullColumnImgUrls }) |
| 95 | - .onClick((event: ClickEvent) => { | ||
| 96 | - ProcessUtils.processPage(this.contentDTO) | 95 | + .onClick(() => { |
| 96 | + const photoList: PhotoListBean[] = this.contentDTO.fullColumnImgUrls.map(item => { | ||
| 97 | + const photo: PhotoListBean = { | ||
| 98 | + width: item.weight, | ||
| 99 | + height: item.height, | ||
| 100 | + picPath: item.fullUrl, | ||
| 101 | + picDesc: '' | ||
| 102 | + } | ||
| 103 | + return photo | ||
| 104 | + }) | ||
| 105 | + ProcessUtils.gotoMultiPictureListPage(photoList) | ||
| 97 | }) | 106 | }) |
| 98 | //TODO 底部的:分享、评论、点赞 功能;需要引用一个公共组件 | 107 | //TODO 底部的:分享、评论、点赞 功能;需要引用一个公共组件 |
| 99 | } | 108 | } |
| @@ -103,6 +112,9 @@ export struct Card19Component { | @@ -103,6 +112,9 @@ export struct Card19Component { | ||
| 103 | top: $r('app.float.card_comp_pagePadding_tb'), | 112 | top: $r('app.float.card_comp_pagePadding_tb'), |
| 104 | bottom: $r('app.float.card_comp_pagePadding_tb') | 113 | bottom: $r('app.float.card_comp_pagePadding_tb') |
| 105 | }) | 114 | }) |
| 115 | + .onClick((event: ClickEvent) => { | ||
| 116 | + ProcessUtils.processPage(this.contentDTO) | ||
| 117 | + }) | ||
| 106 | } | 118 | } |
| 107 | } | 119 | } |
| 108 | 120 |
| 1 | -import { CompDTO, ContentDTO, Params } from 'wdBean'; | 1 | +import { commentInfo, CompDTO, ContentDTO, Params } from 'wdBean'; |
| 2 | import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'; | 2 | import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'; |
| 3 | import { HttpUrlUtils } from 'wdNetwork/Index'; | 3 | import { HttpUrlUtils } from 'wdNetwork/Index'; |
| 4 | import { postInteractAccentionOperateParams } from 'wdBean'; | 4 | import { postInteractAccentionOperateParams } from 'wdBean'; |
| @@ -68,6 +68,9 @@ export struct ZhSingleRow06 { | @@ -68,6 +68,9 @@ export struct ZhSingleRow06 { | ||
| 68 | .backgroundColor(0xf9f9f9) | 68 | .backgroundColor(0xf9f9f9) |
| 69 | .borderRadius(4) | 69 | .borderRadius(4) |
| 70 | .margin({bottom: 12}) | 70 | .margin({bottom: 12}) |
| 71 | + .onClick(() => { | ||
| 72 | + ProcessUtils.commentGotoWeb(this.compDTO.operDataList[0]?.commentInfo as commentInfo) | ||
| 73 | + }) | ||
| 71 | 74 | ||
| 72 | Row() { | 75 | Row() { |
| 73 | Text(DateTimeUtils.getCommentTime(this.compDTO.operDataList[0]?.commentInfo?.publishTime)) | 76 | Text(DateTimeUtils.getCommentTime(this.compDTO.operDataList[0]?.commentInfo?.publishTime)) |
| @@ -97,9 +100,6 @@ export struct ZhSingleRow06 { | @@ -97,9 +100,6 @@ export struct ZhSingleRow06 { | ||
| 97 | .backgroundColor($r('app.color.white')) | 100 | .backgroundColor($r('app.color.white')) |
| 98 | .margin({ bottom: 8 }) | 101 | .margin({ bottom: 8 }) |
| 99 | .height(251) | 102 | .height(251) |
| 100 | - .onClick(() => { | ||
| 101 | - WDRouterRule.jumpWithPage(WDRouterPage.QualityCommentsPage) | ||
| 102 | - }) | ||
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | @Builder | 105 | @Builder |
| @@ -128,6 +128,9 @@ export struct ZhSingleRow06 { | @@ -128,6 +128,9 @@ export struct ZhSingleRow06 { | ||
| 128 | .width(14) | 128 | .width(14) |
| 129 | .height(14) | 129 | .height(14) |
| 130 | } | 130 | } |
| 131 | + .onClick(() => { | ||
| 132 | + WDRouterRule.jumpWithPage(WDRouterPage.QualityCommentsPage) | ||
| 133 | + }) | ||
| 131 | } | 134 | } |
| 132 | .margin({bottom: 10}) | 135 | .margin({bottom: 10}) |
| 133 | .justifyContent(FlexAlign.SpaceBetween) | 136 | .justifyContent(FlexAlign.SpaceBetween) |
| @@ -11,7 +11,7 @@ import { VideoChannelDetail } from 'wdDetailPlayShortVideo/Index'; | @@ -11,7 +11,7 @@ import { VideoChannelDetail } from 'wdDetailPlayShortVideo/Index'; | ||
| 11 | const TAG = 'TopNavigationComponent'; | 11 | const TAG = 'TopNavigationComponent'; |
| 12 | 12 | ||
| 13 | PersistentStorage.persistProp('channelIds', ''); | 13 | PersistentStorage.persistProp('channelIds', ''); |
| 14 | -PersistentStorage.persistProp('indexSettingChannelId', 0); | 14 | +PersistentStorage.persistProp('indexSettingChannelId', 2002); |
| 15 | 15 | ||
| 16 | const storage = LocalStorage.getShared(); | 16 | const storage = LocalStorage.getShared(); |
| 17 | 17 | ||
| @@ -36,7 +36,7 @@ export struct TopNavigationComponent { | @@ -36,7 +36,7 @@ export struct TopNavigationComponent { | ||
| 36 | // 顶导数据 | 36 | // 顶导数据 |
| 37 | @State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = [] | 37 | @State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = [] |
| 38 | @State compList: LazyDataSource<CompDTO> = new LazyDataSource(); | 38 | @State compList: LazyDataSource<CompDTO> = new LazyDataSource(); |
| 39 | - @StorageProp('indexSettingChannelId') indexSettingChannelId: number = 0 | 39 | + @StorageProp('indexSettingChannelId') indexSettingChannelId: number = 2002 |
| 40 | //我的频道id列表 | 40 | //我的频道id列表 |
| 41 | @State channelIds: number[] = [] | 41 | @State channelIds: number[] = [] |
| 42 | //本地缓存频道id列表 | 42 | //本地缓存频道id列表 |
| @@ -121,13 +121,9 @@ export struct TopNavigationComponent { | @@ -121,13 +121,9 @@ export struct TopNavigationComponent { | ||
| 121 | this.myChannelList = _myChannelList | 121 | this.myChannelList = _myChannelList |
| 122 | 122 | ||
| 123 | //缓存首页频道 | 123 | //缓存首页频道 |
| 124 | - if (!this.indexSettingChannelId) { | ||
| 125 | - AppStorage.set('indexSettingChannelId', this.homeChannelList[0].channelId) | ||
| 126 | - } else { | ||
| 127 | - let index = this.myChannelList.findIndex(_item => _item.channelId === this.indexSettingChannelId) | ||
| 128 | - if (index > -1) { | ||
| 129 | - this.currentTopNavSelectedIndex = index | ||
| 130 | - } | 124 | + let index = this.myChannelList.findIndex(_item => _item.channelId === this.indexSettingChannelId) |
| 125 | + if (index > -1) { | ||
| 126 | + this.currentTopNavSelectedIndex = index | ||
| 131 | } | 127 | } |
| 132 | } | 128 | } |
| 133 | 129 |
| @@ -151,7 +151,7 @@ export struct PeopleShipHomeArticleListComponent { | @@ -151,7 +151,7 @@ export struct PeopleShipHomeArticleListComponent { | ||
| 151 | try { | 151 | try { |
| 152 | this.isLoading = true | 152 | this.isLoading = true |
| 153 | let listData: ArticleListData = await PeopleShipHomePageDataModel.getPeopleShipHomePageArticleListData(this.creatorId, this.currentPage, 20, this.typeModel.type) | 153 | let listData: ArticleListData = await PeopleShipHomePageDataModel.getPeopleShipHomePageArticleListData(this.creatorId, this.currentPage, 20, this.typeModel.type) |
| 154 | - Logger.debug(TAG, `获取页面信息, ${listData.list.length}`); | 154 | + Logger.debug(TAG, `获取页面信息, ${JSON.stringify(listData.list)}`); |
| 155 | Logger.debug(TAG, `已更新值最新, ${this.currentPage}`); | 155 | Logger.debug(TAG, `已更新值最新, ${this.currentPage}`); |
| 156 | 156 | ||
| 157 | if (resolve ) { | 157 | if (resolve ) { |
| @@ -173,7 +173,7 @@ export struct PeopleShipHomeArticleListComponent { | @@ -173,7 +173,7 @@ export struct PeopleShipHomeArticleListComponent { | ||
| 173 | } | 173 | } |
| 174 | this.isLoading = false | 174 | this.isLoading = false |
| 175 | this.queryArticleContentInteractCount(listData) | 175 | this.queryArticleContentInteractCount(listData) |
| 176 | - Logger.debug(TAG, '展示的总数', `${this.arr.length}`) | 176 | + Logger.debug(TAG, '展示的总数'+`${this.arr.length}`) |
| 177 | }catch (exception) { | 177 | }catch (exception) { |
| 178 | if (resolve) { | 178 | if (resolve) { |
| 179 | resolve('') | 179 | resolve('') |
| @@ -236,7 +236,8 @@ export struct PeopleShipHomeArticleListComponent { | @@ -236,7 +236,8 @@ export struct PeopleShipHomeArticleListComponent { | ||
| 236 | // 19.动态图文卡-人民号,20.动态视频卡-人民号, | 236 | // 19.动态图文卡-人民号,20.动态视频卡-人民号, |
| 237 | // 21 小视频卡-人民号 | 237 | // 21 小视频卡-人民号 |
| 238 | contentDTO.objectType = `${element.type}`; | 238 | contentDTO.objectType = `${element.type}`; |
| 239 | - | 239 | + // 时间显示 |
| 240 | + contentDTO.isSearch = true | ||
| 240 | // contentDTO.productNum = element.productCount; | 241 | // contentDTO.productNum = element.productCount; |
| 241 | // if (master) { | 242 | // if (master) { |
| 242 | // contentDTO.customWorkStatus = element.workStatus; | 243 | // contentDTO.customWorkStatus = element.workStatus; |
| @@ -277,8 +278,10 @@ export struct PeopleShipHomeArticleListComponent { | @@ -277,8 +278,10 @@ export struct PeopleShipHomeArticleListComponent { | ||
| 277 | 278 | ||
| 278 | 279 | ||
| 279 | //图集数量 | 280 | //图集数量 |
| 280 | - contentDTO.photoNum = element.mainPicCount; | ||
| 281 | - | 281 | + if (element.mainPicCount) { |
| 282 | + contentDTO.photoNum = element.mainPicCount; | ||
| 283 | + } | ||
| 284 | + Logger.debug(TAG, '图集数量:' + `${element.mainPicCount}`) | ||
| 282 | if (element.contentExt && element.contentExt.length > 0) { | 285 | if (element.contentExt && element.contentExt.length > 0) { |
| 283 | let extModel = element.contentExt[0]; | 286 | let extModel = element.contentExt[0]; |
| 284 | contentDTO.openLikes = extModel.openLikes; | 287 | contentDTO.openLikes = extModel.openLikes; |
| 1 | -import { DisplayUtils, Logger } from 'wdKit' | 1 | +import { DisplayUtils, Logger } from 'wdKit' |
| 2 | import { PeopleShipHomePageDataModel } from '../../viewmodel/PeopleShipHomePageDataModel' | 2 | import { PeopleShipHomePageDataModel } from '../../viewmodel/PeopleShipHomePageDataModel' |
| 3 | import { PeopleShipHomeArticleListComponent } from './PeopleShipHomeArticleListComponent' | 3 | import { PeopleShipHomeArticleListComponent } from './PeopleShipHomeArticleListComponent' |
| 4 | import { ArticleCountData, ArticleTypeData } from 'wdBean' | 4 | import { ArticleCountData, ArticleTypeData } from 'wdBean' |
| @@ -8,9 +8,7 @@ import { RefreshLayoutBean } from '../page/RefreshLayoutBean' | @@ -8,9 +8,7 @@ import { RefreshLayoutBean } from '../page/RefreshLayoutBean' | ||
| 8 | 8 | ||
| 9 | @Component | 9 | @Component |
| 10 | export struct PeopleShipHomeListComponent { | 10 | export struct PeopleShipHomeListComponent { |
| 11 | - | ||
| 12 | private controller: TabsController = new TabsController() | 11 | private controller: TabsController = new TabsController() |
| 13 | - | ||
| 14 | @State tabArr: ArticleTypeData[] = [] | 12 | @State tabArr: ArticleTypeData[] = [] |
| 15 | @State creatorId: string = '' | 13 | @State creatorId: string = '' |
| 16 | // 发布数量 | 14 | // 发布数量 |
| @@ -19,47 +17,69 @@ export struct PeopleShipHomeListComponent { | @@ -19,47 +17,69 @@ export struct PeopleShipHomeListComponent { | ||
| 19 | @State private isLoading: boolean = false | 17 | @State private isLoading: boolean = false |
| 20 | @Consume topHeight: number | 18 | @Consume topHeight: number |
| 21 | 19 | ||
| 22 | - | ||
| 23 | build() { | 20 | build() { |
| 24 | if (this.isLoading) { | 21 | if (this.isLoading) { |
| 25 | this.LoadingLayout() | 22 | this.LoadingLayout() |
| 26 | } | 23 | } |
| 27 | // 列表 | 24 | // 列表 |
| 28 | - else if(this.publishCount == 0) { | 25 | + else if (this.publishCount == 0) { |
| 29 | // 无数据展示 | 26 | // 无数据展示 |
| 30 | EmptyComponent().height(DisplayUtils.getDeviceHeight() - this.topHeight) | 27 | EmptyComponent().height(DisplayUtils.getDeviceHeight() - this.topHeight) |
| 31 | - } else { | ||
| 32 | - Tabs({ barPosition: BarPosition.Start, controller: this.controller}) { | ||
| 33 | - ForEach(this.tabArr, (item: ArticleTypeData, index: number) => { | ||
| 34 | - TabContent() { | ||
| 35 | - PeopleShipHomeArticleListComponent({ | ||
| 36 | - typeModel: item, | ||
| 37 | - creatorId: this.creatorId, | ||
| 38 | - currentTopSelectedIndex: this.currentIndex, | ||
| 39 | - currentIndex: index | ||
| 40 | - }) | ||
| 41 | - }.tabBar(this.tabBuilder(index, item.name ?? '')) | 28 | + } else { |
| 29 | + Column() { | ||
| 30 | + Column() { | ||
| 31 | + // 页签 | ||
| 32 | + Row() { | ||
| 33 | + Scroll() { | ||
| 34 | + Row() { | ||
| 35 | + ForEach(this.tabArr, (item: ArticleTypeData, index: number) => { | ||
| 36 | + this.Tab(index, item.name ?? '') | ||
| 37 | + }) | ||
| 38 | + } | ||
| 39 | + .justifyContent(FlexAlign.Start) | ||
| 40 | + } | ||
| 41 | + .align(Alignment.Start) | ||
| 42 | + .scrollable(ScrollDirection.Horizontal) | ||
| 43 | + .scrollBar(BarState.Off) | ||
| 44 | + .width('100%') | ||
| 45 | + } | ||
| 46 | + .alignItems(VerticalAlign.Bottom) | ||
| 47 | + .width('100%') | ||
| 48 | + } | ||
| 49 | + .alignItems(HorizontalAlign.Start) | ||
| 50 | + .width('100%') | ||
| 42 | 51 | ||
| 43 | - }) | 52 | + Tabs({ barPosition: BarPosition.Start, controller: this.controller }) { |
| 53 | + ForEach(this.tabArr, (item: ArticleTypeData, index: number) => { | ||
| 54 | + TabContent() { | ||
| 55 | + PeopleShipHomeArticleListComponent({ | ||
| 56 | + typeModel: item, | ||
| 57 | + creatorId: this.creatorId, | ||
| 58 | + currentTopSelectedIndex: this.currentIndex, | ||
| 59 | + currentIndex: index | ||
| 60 | + }) | ||
| 61 | + } | ||
| 62 | + // }.tabBar(this.tabBuilder(index, item.name ?? '')) | ||
| 63 | + }) | ||
| 44 | 64 | ||
| 65 | + } | ||
| 66 | + .backgroundColor(Color.White) | ||
| 67 | + .barWidth('100%') | ||
| 68 | + .barHeight(0) | ||
| 69 | + .vertical(false) | ||
| 70 | + .height(DisplayUtils.getDeviceHeight() - 144) | ||
| 71 | + .animationDuration(0) | ||
| 72 | + .divider({ | ||
| 73 | + strokeWidth: '0.5vp', | ||
| 74 | + color: $r('app.color.color_F5F5F5'), | ||
| 75 | + startMargin: 0, | ||
| 76 | + endMargin: 0 | ||
| 77 | + }) | ||
| 78 | + .onChange((index: number) => { | ||
| 79 | + this.currentIndex = index | ||
| 80 | + }) | ||
| 45 | } | 81 | } |
| 46 | - .backgroundColor(Color.White) | ||
| 47 | - .barWidth('100%') | ||
| 48 | - .barHeight('44vp') | ||
| 49 | - .vertical(false) | ||
| 50 | - .height(DisplayUtils.getDeviceHeight() - 100) | ||
| 51 | - .animationDuration(0) | ||
| 52 | - .divider({ | ||
| 53 | - strokeWidth: '0.5vp', | ||
| 54 | - color: $r('app.color.color_F5F5F5'), | ||
| 55 | - startMargin: 0, | ||
| 56 | - endMargin: 0 | ||
| 57 | - }) | ||
| 58 | - .onChange((index: number) => { | ||
| 59 | - this.currentIndex = index | ||
| 60 | - }) | ||
| 61 | } | 82 | } |
| 62 | - | ||
| 63 | } | 83 | } |
| 64 | 84 | ||
| 65 | @Builder | 85 | @Builder |
| @@ -70,21 +90,33 @@ export struct PeopleShipHomeListComponent { | @@ -70,21 +90,33 @@ export struct PeopleShipHomeListComponent { | ||
| 70 | }).height(DisplayUtils.getDeviceHeight() - this.topHeight) | 90 | }).height(DisplayUtils.getDeviceHeight() - this.topHeight) |
| 71 | } | 91 | } |
| 72 | 92 | ||
| 73 | - @Builder tabBuilder(index: number, name: string) { | 93 | + // 单独的页签 |
| 94 | + @Builder | ||
| 95 | + Tab(index: number, name: string) { | ||
| 74 | Column() { | 96 | Column() { |
| 75 | Text(name) | 97 | Text(name) |
| 76 | - .fontColor(this.currentIndex === index ? $r('app.color.color_222222') : $r('app.color.color_666666') ) | 98 | + .fontColor(this.currentIndex === index ? $r('app.color.color_222222') : $r('app.color.color_666666')) |
| 77 | .fontSize(18) | 99 | .fontSize(18) |
| 78 | .fontWeight(this.currentIndex === index ? 500 : 400) | 100 | .fontWeight(this.currentIndex === index ? 500 : 400) |
| 79 | .lineHeight(22) | 101 | .lineHeight(22) |
| 80 | .height(22) | 102 | .height(22) |
| 81 | - .margin({ top: 11, bottom: 1 }) | ||
| 82 | Divider() | 103 | Divider() |
| 83 | .width('15vp') | 104 | .width('15vp') |
| 84 | .strokeWidth(2) | 105 | .strokeWidth(2) |
| 85 | .color('#CB0000') | 106 | .color('#CB0000') |
| 86 | .opacity(this.currentIndex === index ? 1 : 0) | 107 | .opacity(this.currentIndex === index ? 1 : 0) |
| 87 | - }.width('100%') | 108 | + } |
| 109 | + .justifyContent(FlexAlign.Center) | ||
| 110 | + .constraintSize({ minWidth: 35 }) | ||
| 111 | + .margin({ | ||
| 112 | + left: '16vp', | ||
| 113 | + right: '16vp' | ||
| 114 | + }) | ||
| 115 | + .height('44vp') | ||
| 116 | + .onClick(() => { | ||
| 117 | + this.controller.changeIndex(index) | ||
| 118 | + this.currentIndex = index | ||
| 119 | + }) | ||
| 88 | } | 120 | } |
| 89 | 121 | ||
| 90 | async aboutToAppear() { | 122 | async aboutToAppear() { |
| @@ -187,6 +187,8 @@ export struct EmptyComponent { | @@ -187,6 +187,8 @@ export struct EmptyComponent { | ||
| 187 | contentString = '获取内容失败请重试' // 前方拥堵,请耐心等待 | 187 | contentString = '获取内容失败请重试' // 前方拥堵,请耐心等待 |
| 188 | } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoContent1) { | 188 | } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoContent1) { |
| 189 | contentString = '暂无内容' | 189 | contentString = '暂无内容' |
| 190 | + } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoFollow) { | ||
| 191 | + contentString = '暂无关注' | ||
| 190 | } | 192 | } |
| 191 | 193 | ||
| 192 | return contentString | 194 | return contentString |
| @@ -217,7 +219,7 @@ export struct EmptyComponent { | @@ -217,7 +219,7 @@ export struct EmptyComponent { | ||
| 217 | imageString = $r('app.media.icon_no_master1') | 219 | imageString = $r('app.media.icon_no_master1') |
| 218 | } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoVideo) { | 220 | } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoVideo) { |
| 219 | imageString = $r('app.media.icon_no_content') | 221 | imageString = $r('app.media.icon_no_content') |
| 220 | - } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoContent1) { | 222 | + } else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoContent1 || this.emptyType === WDViewDefaultType.WDViewDefaultType_NoFollow) { |
| 221 | imageString = $r('app.media.icon_no_appointmentMade1') | 223 | imageString = $r('app.media.icon_no_appointmentMade1') |
| 222 | } | 224 | } |
| 223 | return imageString | 225 | return imageString |
| 1 | +import { DateFormatUtil, WDPlayerController, WDPlayerRenderLiveView } from 'wdPlayer/Index'; | ||
| 2 | +import router from '@ohos.router'; | ||
| 3 | +import { StringUtils } from 'wdKit/Index'; | ||
| 4 | +import { Action } from 'wdBean'; | ||
| 5 | + | ||
| 6 | +const TAG = 'VideoPlayPage'; | ||
| 7 | + | ||
| 8 | +@Entry | ||
| 9 | +@Component | ||
| 10 | +export struct VideoPlayPage { | ||
| 11 | + //是否处于播放状态中 | ||
| 12 | + @State isPlayStatus: boolean = true | ||
| 13 | + playerController: WDPlayerController = new WDPlayerController(); | ||
| 14 | + //视频地址 | ||
| 15 | + @State videoUrl: string = '' | ||
| 16 | + //封面图 | ||
| 17 | + @State videoCoverUrl: string = '' | ||
| 18 | + @State currentTime: string = '' | ||
| 19 | + @State totalTime: string = '' | ||
| 20 | + @State progressVal: number = 0; | ||
| 21 | + | ||
| 22 | + aboutToAppear(): void { | ||
| 23 | + let par: Action = router.getParams() as Action | ||
| 24 | + let params = par?.params | ||
| 25 | + this.videoUrl = params?.videoUrl ? params?.videoUrl : '' | ||
| 26 | + this.videoCoverUrl = params?.videoCoverUrl ? params?.videoCoverUrl : '' | ||
| 27 | + //播放进度监听 | ||
| 28 | + this.playerController.onTimeUpdate = (position: number, duration: number) => { | ||
| 29 | + this.currentTime = DateFormatUtil.secondToTime(Math.floor(position / 1000)); | ||
| 30 | + this.totalTime = DateFormatUtil.secondToTime(Math.floor(duration / 1000)); | ||
| 31 | + this.progressVal = Math.floor(position * 100 / duration); | ||
| 32 | + } | ||
| 33 | + this.playerController.onCanplay = () => { | ||
| 34 | + this.playerController.play() | ||
| 35 | + } | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + build() { | ||
| 39 | + Stack() { | ||
| 40 | + WDPlayerRenderLiveView({ | ||
| 41 | + playerController: this.playerController, | ||
| 42 | + onLoad: async () => { | ||
| 43 | + this.playerController.firstPlay(this.videoUrl) | ||
| 44 | + } | ||
| 45 | + }) | ||
| 46 | + .height('100%') | ||
| 47 | + .width('100%') | ||
| 48 | + .visibility(StringUtils.isEmpty(this.videoUrl) ? Visibility.None : Visibility.Visible) | ||
| 49 | + Image(this.videoCoverUrl) | ||
| 50 | + .objectFit(ImageFit.Contain) | ||
| 51 | + .visibility(StringUtils.isEmpty(this.videoUrl) ? Visibility.Visible : Visibility.None) | ||
| 52 | + Column() { | ||
| 53 | + this.getTopUIComponent() | ||
| 54 | + Stack() | ||
| 55 | + .layoutWeight(1) | ||
| 56 | + this.getBottomUIComponent() | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + .width('100%') | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Builder | ||
| 63 | + getTopUIComponent() { | ||
| 64 | + Column() { | ||
| 65 | + Row() { | ||
| 66 | + Image($r('app.media.icon_arrow_left_white')) | ||
| 67 | + .width(24) | ||
| 68 | + .aspectRatio(1) | ||
| 69 | + .margin({ | ||
| 70 | + right: 10 | ||
| 71 | + }) | ||
| 72 | + .onClick(() => { | ||
| 73 | + router.back() | ||
| 74 | + }) | ||
| 75 | + } | ||
| 76 | + .width('100%') | ||
| 77 | + .alignItems(VerticalAlign.Center) | ||
| 78 | + .margin({ | ||
| 79 | + bottom: 10 | ||
| 80 | + }) | ||
| 81 | + }.width('100%') | ||
| 82 | + .padding({ | ||
| 83 | + top: 20, | ||
| 84 | + bottom: 6, | ||
| 85 | + left: 10, | ||
| 86 | + right: 10 | ||
| 87 | + }) | ||
| 88 | + .alignItems(HorizontalAlign.Start) | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + @Builder | ||
| 92 | + getBottomUIComponent() { | ||
| 93 | + Row() { | ||
| 94 | + this.playOrPauseBtn() | ||
| 95 | + Text(this.currentTime) | ||
| 96 | + .fontColor(Color.White) | ||
| 97 | + .fontWeight(600) | ||
| 98 | + .fontSize('12fp') | ||
| 99 | + .margin({ | ||
| 100 | + left: 16 | ||
| 101 | + }) | ||
| 102 | + this.playProgressView() | ||
| 103 | + Text(this.totalTime) | ||
| 104 | + .fontColor(Color.White) | ||
| 105 | + .fontWeight(600) | ||
| 106 | + .fontSize('12fp') | ||
| 107 | + .margin({ | ||
| 108 | + right: 16 | ||
| 109 | + }) | ||
| 110 | + } | ||
| 111 | + .alignItems(VerticalAlign.Center) | ||
| 112 | + .width('100%') | ||
| 113 | + .padding({ | ||
| 114 | + left: 10, | ||
| 115 | + right: 10, | ||
| 116 | + top: 15, | ||
| 117 | + bottom: 15 | ||
| 118 | + }) | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + @Builder | ||
| 122 | + playOrPauseBtn() { | ||
| 123 | + //暂停、播放 | ||
| 124 | + Image(this.isPlayStatus ? $r('app.media.icon_live_player_pause') : $r('app.media.player_play_ic')) | ||
| 125 | + .width(24) | ||
| 126 | + .height(24) | ||
| 127 | + .onClick(() => { | ||
| 128 | + if (this.isPlayStatus) { | ||
| 129 | + this.isPlayStatus = false | ||
| 130 | + this.playerController.pause() | ||
| 131 | + } else { | ||
| 132 | + this.isPlayStatus = true | ||
| 133 | + this.playerController.play() | ||
| 134 | + } | ||
| 135 | + }) | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + @Builder | ||
| 139 | + playProgressView() { | ||
| 140 | + Slider({ | ||
| 141 | + value: this.progressVal, | ||
| 142 | + step: 1, | ||
| 143 | + style: SliderStyle.OutSet | ||
| 144 | + }) | ||
| 145 | + .blockSize({ | ||
| 146 | + width: 18, | ||
| 147 | + height: 12 | ||
| 148 | + }) | ||
| 149 | + .blockStyle({ | ||
| 150 | + type: SliderBlockType.IMAGE, | ||
| 151 | + image: $r('app.media.ic_player_block') | ||
| 152 | + }) | ||
| 153 | + .blockColor(Color.White) | ||
| 154 | + .trackColor('#4DFFFFFF') | ||
| 155 | + .selectedColor('#FFED2800') | ||
| 156 | + .height(14) | ||
| 157 | + .trackThickness(1) | ||
| 158 | + .layoutWeight(1) | ||
| 159 | + .margin({ | ||
| 160 | + left: 8, | ||
| 161 | + right: 8 | ||
| 162 | + }) | ||
| 163 | + .onChange((value: number, mode: SliderChangeMode) => { | ||
| 164 | + this.playerController?.setSeekTime(value, mode); | ||
| 165 | + }) | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + onPageHide(): void { | ||
| 169 | + this.playerController?.pause() | ||
| 170 | + this.playerController?.stop() | ||
| 171 | + } | ||
| 172 | +} |
736 Bytes
sight_harmony/features/wdComponent/src/main/resources/base/media/icon_live_player_pause.png
0 → 100644
581 Bytes
2.13 KB
| @@ -20,6 +20,7 @@ | @@ -20,6 +20,7 @@ | ||
| 20 | "pages/MultiPictureListPage", | 20 | "pages/MultiPictureListPage", |
| 21 | "components/page/LiveMorePage", | 21 | "components/page/LiveMorePage", |
| 22 | "components/page/ReserveMorePage", | 22 | "components/page/ReserveMorePage", |
| 23 | + "pages/VideoPlayPage", | ||
| 23 | "components/page/ThemeListPage" | 24 | "components/page/ThemeListPage" |
| 24 | ] | 25 | ] |
| 25 | } | 26 | } |
| 1 | import { LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index' | 1 | import { LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index' |
| 2 | -import { EmptyComponent, ErrorComponent, ListHasNoMoreDataUI, WDViewDefaultType } from 'wdComponent/Index' | 2 | +import { EmptyComponent, ErrorComponent, WDViewDefaultType } from 'wdComponent/Index' |
| 3 | import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout' | 3 | import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout' |
| 4 | -import LoadMoreLayout from 'wdComponent/src/main/ets/components/page/LoadMoreLayout' | ||
| 5 | import RefreshLayout from 'wdComponent/src/main/ets/components/page/RefreshLayout' | 4 | import RefreshLayout from 'wdComponent/src/main/ets/components/page/RefreshLayout' |
| 6 | import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean' | 5 | import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean' |
| 7 | import PageModel from 'wdComponent/src/main/ets/viewmodel/PageModel' | 6 | import PageModel from 'wdComponent/src/main/ets/viewmodel/PageModel' |
| 8 | import { ViewType } from 'wdConstant/Index' | 7 | import { ViewType } from 'wdConstant/Index' |
| 9 | -import { Logger } from 'wdKit/Index' | ||
| 10 | import { LiveViewModel } from '../../viewModel/LiveViewModel' | 8 | import { LiveViewModel } from '../../viewModel/LiveViewModel' |
| 11 | import { TabChatItemComponent } from './TabChatItemComponent' | 9 | import { TabChatItemComponent } from './TabChatItemComponent' |
| 12 | 10 |
| 1 | import { LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index' | 1 | import { LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index' |
| 2 | -import { EmptyComponent, ErrorComponent, ListHasNoMoreDataUI, WDViewDefaultType } from 'wdComponent/Index' | ||
| 3 | -import { LiveViewModel } from '../../viewModel/LiveViewModel' | 2 | +import { EmptyComponent, ErrorComponent, ListHasNoMoreDataUI, |
| 3 | + WDViewDefaultType } from 'wdComponent/Index' | ||
| 4 | import { TabLiveItemComponent } from './TabLiveItemComponent' | 4 | import { TabLiveItemComponent } from './TabLiveItemComponent' |
| 5 | import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout' | 5 | import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout' |
| 6 | import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean' | 6 | import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean' |
| @@ -9,6 +9,7 @@ import { ViewType } from 'wdConstant/Index' | @@ -9,6 +9,7 @@ import { ViewType } from 'wdConstant/Index' | ||
| 9 | import LoadMoreLayout from 'wdComponent/src/main/ets/components/page/LoadMoreLayout' | 9 | import LoadMoreLayout from 'wdComponent/src/main/ets/components/page/LoadMoreLayout' |
| 10 | import RefreshLayout from 'wdComponent/src/main/ets/components/page/RefreshLayout' | 10 | import RefreshLayout from 'wdComponent/src/main/ets/components/page/RefreshLayout' |
| 11 | import { StringUtils } from 'wdKit/Index' | 11 | import { StringUtils } from 'wdKit/Index' |
| 12 | +import { LiveViewModel } from '../../viewModel/LiveViewModel' | ||
| 12 | 13 | ||
| 13 | @Component | 14 | @Component |
| 14 | export struct TabLiveComponent { | 15 | export struct TabLiveComponent { |
| @@ -110,6 +111,7 @@ export struct TabLiveComponent { | @@ -110,6 +111,7 @@ export struct TabLiveComponent { | ||
| 110 | liveRoomItemBeanTemp.senderUserName = '人民日报主持人' | 111 | liveRoomItemBeanTemp.senderUserName = '人民日报主持人' |
| 111 | liveRoomItemBeanTemp.pictureUrls=[] | 112 | liveRoomItemBeanTemp.pictureUrls=[] |
| 112 | liveRoomItemBeanTemp.pictureUrls.push(this.liveDetailsBean?.fullColumnImgUrls[0]?.url) | 113 | liveRoomItemBeanTemp.pictureUrls.push(this.liveDetailsBean?.fullColumnImgUrls[0]?.url) |
| 114 | + liveRoomItemBeanTemp.dataType='ZH_TEXT_AND_IMAGE_MSG' | ||
| 113 | this.liveList.push(liveRoomItemBeanTemp) | 115 | this.liveList.push(liveRoomItemBeanTemp) |
| 114 | } | 116 | } |
| 115 | } | 117 | } |
| 1 | -import { LiveRoomItemBean, PhotoListBean, } from 'wdBean/Index'; | ||
| 2 | -import { DateTimeUtils, StringUtils } from 'wdKit/Index'; | ||
| 3 | -import { Action, Params } from 'wdBean'; | ||
| 4 | -import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO'; | ||
| 5 | -import { WDRouterRule } from 'wdRouter/Index'; | 1 | +import { Action, LiveRoomItemBean, Params, PhotoListBean } from 'wdBean/Index' |
| 2 | +import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO' | ||
| 3 | +import { DateTimeUtils, StringUtils } from 'wdKit/Index' | ||
| 4 | +import { WDRouterRule } from 'wdRouter/Index' | ||
| 6 | 5 | ||
| 7 | @Component | 6 | @Component |
| 8 | export struct TabLiveItemComponent { | 7 | export struct TabLiveItemComponent { |
| @@ -14,108 +13,190 @@ export struct TabLiveItemComponent { | @@ -14,108 +13,190 @@ export struct TabLiveItemComponent { | ||
| 14 | } | 13 | } |
| 15 | 14 | ||
| 16 | build() { | 15 | build() { |
| 17 | - Column() { | ||
| 18 | - Row() { | ||
| 19 | - Image(StringUtils.isEmpty(this.item.senderUserAvatarUrl) ? $r('app.media.default_head') : this.item.senderUserAvatarUrl) | ||
| 20 | - .borderRadius(90) | ||
| 21 | - .width(24) | ||
| 22 | - .height(24) | ||
| 23 | - Text(this.item.senderUserName) | ||
| 24 | - .maxLines(1) | ||
| 25 | - .textOverflow({ overflow: TextOverflow.Ellipsis }) | 16 | + Row() { |
| 17 | + Image(StringUtils.isEmpty(this.item.senderUserAvatarUrl) ? $r('app.media.default_head') : this.item.senderUserAvatarUrl) | ||
| 18 | + .borderRadius(90) | ||
| 19 | + .width(24) | ||
| 20 | + .height(24) | ||
| 21 | + | ||
| 22 | + Column() { | ||
| 23 | + Row() { | ||
| 24 | + Text(this.item.senderUserName) | ||
| 25 | + .maxLines(1) | ||
| 26 | + .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 27 | + .fontSize('14fp') | ||
| 28 | + .fontWeight(400) | ||
| 29 | + .fontColor('#222222') | ||
| 30 | + Text('主持人') | ||
| 31 | + .maxLines(1) | ||
| 32 | + .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 33 | + .fontSize('11fp') | ||
| 34 | + .fontWeight(400) | ||
| 35 | + .fontColor('#968562') | ||
| 36 | + .backgroundColor('#F1EFEB') | ||
| 37 | + .padding({ | ||
| 38 | + left: 4, | ||
| 39 | + top: 1, | ||
| 40 | + right: 4, | ||
| 41 | + bottom: 1 | ||
| 42 | + }) | ||
| 43 | + .borderRadius(2) | ||
| 44 | + .margin({ left: 8 }) | ||
| 45 | + .visibility('host' == this.item.role ? Visibility.Visible : Visibility.None) | ||
| 46 | + Text(DateTimeUtils.getCommentTime(new Date(this.item.time).getTime())) | ||
| 47 | + .maxLines(1) | ||
| 48 | + .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 49 | + .fontSize('12fp') | ||
| 50 | + .fontWeight(400) | ||
| 51 | + .fontColor('#999999') | ||
| 52 | + .margin({ left: 8 }) | ||
| 53 | + .visibility(StringUtils.isNotEmpty(this.item.time) ? Visibility.Visible : Visibility.None) | ||
| 54 | + | ||
| 55 | + Text('置顶') | ||
| 56 | + .fontSize('11fp') | ||
| 57 | + .fontWeight(400) | ||
| 58 | + .fontColor('#ED2800') | ||
| 59 | + .backgroundColor('#F1EFEB') | ||
| 60 | + .padding({ | ||
| 61 | + left: 4, | ||
| 62 | + top: 1, | ||
| 63 | + right: 4, | ||
| 64 | + bottom: 1 | ||
| 65 | + }) | ||
| 66 | + .borderRadius(2) | ||
| 67 | + .margin({ left: 8 }) | ||
| 68 | + .width(100) | ||
| 69 | + .visibility(1 == this.item.isTop ? Visibility.Visible : Visibility.None) | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + Text(this.item.text) | ||
| 26 | .fontSize('14fp') | 73 | .fontSize('14fp') |
| 27 | .fontWeight(400) | 74 | .fontWeight(400) |
| 28 | .fontColor('#222222') | 75 | .fontColor('#222222') |
| 29 | - .margin({ left: 8 }) | ||
| 30 | - Text('主持人') | ||
| 31 | - .maxLines(1) | ||
| 32 | - .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 33 | - .fontSize('11fp') | ||
| 34 | - .fontWeight(400) | ||
| 35 | - .fontColor('#968562') | ||
| 36 | - .backgroundColor('#F1EFEB') | ||
| 37 | - .padding({ | ||
| 38 | - left: 4, | ||
| 39 | - top: 1, | ||
| 40 | - right: 4, | ||
| 41 | - bottom: 1 | 76 | + .margin({ |
| 77 | + top: 6 | ||
| 42 | }) | 78 | }) |
| 43 | - .borderRadius(2) | ||
| 44 | - .margin({ left: 8 }) | ||
| 45 | - .visibility('host' == this.item.role ? Visibility.Visible : Visibility.None) | ||
| 46 | - Text(DateTimeUtils.getCommentTime(new Date(this.item.time).getTime())) | ||
| 47 | - .maxLines(1) | ||
| 48 | - .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 49 | - .fontSize('12fp') | ||
| 50 | - .fontWeight(400) | ||
| 51 | - .fontColor('#999999') | ||
| 52 | - .margin({ left: 8 }) | ||
| 53 | - .visibility(StringUtils.isNotEmpty(this.item.time) ? Visibility.Visible : Visibility.None) | ||
| 54 | - Blank() | ||
| 55 | - Text('置顶') | ||
| 56 | - .maxLines(1) | ||
| 57 | - .textOverflow({ overflow: TextOverflow.Ellipsis }) | ||
| 58 | - .fontSize('11fp') | ||
| 59 | - .fontWeight(400) | ||
| 60 | - .fontColor('#ED2800') | ||
| 61 | - .backgroundColor('#F1EFEB') | ||
| 62 | - .padding({ | ||
| 63 | - left: 4, | ||
| 64 | - top: 1, | ||
| 65 | - right: 4, | ||
| 66 | - bottom: 1 | 79 | + .width('100%') |
| 80 | + .textAlign(TextAlign.Start) | ||
| 81 | + //ZH_TEXT_AND_IMAGE_MSG :图文,ZH_TEXT_MSG:文本,ZH_VIDEO_MSG:视频,ZH_AUDIO_MSG:音频 | ||
| 82 | + //图文 | ||
| 83 | + if (this.item.dataType === 'ZH_TEXT_AND_IMAGE_MSG') { | ||
| 84 | + List({ space: this.item.pictureUrls.length == 1 ? 0 : 5 }) { | ||
| 85 | + ForEach(this.item.pictureUrls, (item: string, index: number) => { | ||
| 86 | + ListItem() { | ||
| 87 | + Image(item) | ||
| 88 | + .width(`${100 / this.item.pictureUrls.length}%`) | ||
| 89 | + .height(this.item.pictureUrls.length > 1 ? 70 : 174) | ||
| 90 | + .objectFit(ImageFit.Auto) | ||
| 91 | + .borderRadius(4) | ||
| 92 | + }.onClick(() => { | ||
| 93 | + this.photoList = [] | ||
| 94 | + for (let item of this.item.pictureUrls) { | ||
| 95 | + this.photoList.push({ | ||
| 96 | + width: 0, | ||
| 97 | + height: 0, | ||
| 98 | + picPath: item, | ||
| 99 | + picDesc: '' | ||
| 100 | + }) | ||
| 101 | + } | ||
| 102 | + this.gotoMultipleListImagePage() | ||
| 103 | + }) | ||
| 104 | + }) | ||
| 105 | + } | ||
| 106 | + .listDirection(Axis.Horizontal) | ||
| 107 | + .margin({ | ||
| 108 | + top: 8, | ||
| 109 | + right: 16 | ||
| 67 | }) | 110 | }) |
| 68 | - .borderRadius(2) | ||
| 69 | - .margin({ left: 8 }) | ||
| 70 | - .visibility(1 == this.item.isTop ? Visibility.Visible : Visibility.None) | ||
| 71 | - } | ||
| 72 | - .width('100%') | ||
| 73 | - | ||
| 74 | - Text(this.item.text) | ||
| 75 | - .fontSize('14fp') | ||
| 76 | - .fontWeight(400) | ||
| 77 | - .fontColor('#222222') | ||
| 78 | - .margin({ | ||
| 79 | - left: 32, | ||
| 80 | - top: 6 | ||
| 81 | - }) | ||
| 82 | - .width('100%') | ||
| 83 | - .textAlign(TextAlign.Start) | ||
| 84 | - List() { | ||
| 85 | - ForEach(this.item.pictureUrls, (item: string, index: number) => { | ||
| 86 | - ListItem() { | ||
| 87 | - Image(item) | ||
| 88 | - .height(174) | ||
| 89 | - .width(310) | ||
| 90 | - .aspectRatio(310 / 174) | ||
| 91 | - .objectFit(ImageFit.Auto) | ||
| 92 | - .borderRadius(4) | ||
| 93 | - }.onClick(() => { | ||
| 94 | - this.photoList=[] | ||
| 95 | - for (let item of this.item.pictureUrls) { | ||
| 96 | - this.photoList.push({ | ||
| 97 | - width: 0, | ||
| 98 | - height: 0, | ||
| 99 | - picPath: item, | ||
| 100 | - picDesc: '' | 111 | + } |
| 112 | + //音频 | ||
| 113 | + else if (this.item.dataType === 'ZH_AUDIO_MSG') { | ||
| 114 | + Row() { | ||
| 115 | + Image($r('app.media.icon_voice')) | ||
| 116 | + .width(20) | ||
| 117 | + .aspectRatio(1) | ||
| 118 | + .margin({ | ||
| 119 | + left: 8, | ||
| 120 | + right: 6 | ||
| 101 | }) | 121 | }) |
| 122 | + Text(DateTimeUtils.getFormattedDuration(this.item.duration)) | ||
| 123 | + .fontColor('#666666') | ||
| 124 | + .fontWeight(400) | ||
| 125 | + .fontSize('14fp') | ||
| 126 | + } | ||
| 127 | + .backgroundColor(Color.White) | ||
| 128 | + .height(36) | ||
| 129 | + .borderRadius(4) | ||
| 130 | + .margin({ top: 8, right: 16 }) | ||
| 131 | + .width('100%') | ||
| 132 | + } | ||
| 133 | + //视频 | ||
| 134 | + else if (this.item.dataType === 'ZH_VIDEO_MSG') { | ||
| 135 | + RelativeContainer() { | ||
| 136 | + Image(this.item.transcodeImageUrl) | ||
| 137 | + .width('100%') | ||
| 138 | + .objectFit(ImageFit.Cover) | ||
| 139 | + .borderRadius(4) | ||
| 140 | + .id('iv_id') | ||
| 141 | + Stack() { | ||
| 142 | + Row() | ||
| 143 | + .borderRadius(90) | ||
| 144 | + .width(32) | ||
| 145 | + .height(32) | ||
| 146 | + .backgroundColor('#000000') | ||
| 147 | + Image($r('app.media.player_play_ic')) | ||
| 148 | + .height(16) | ||
| 149 | + .aspectRatio(1) | ||
| 102 | } | 150 | } |
| 103 | - this.gotoMultipleListImagePage() | 151 | + .alignRules({ |
| 152 | + left: { anchor: "iv_id", align: HorizontalAlign.Start }, | ||
| 153 | + bottom: { anchor: "iv_id", align: VerticalAlign.Bottom } | ||
| 154 | + }) | ||
| 155 | + .margin({ | ||
| 156 | + left: 12, | ||
| 157 | + bottom: 12 | ||
| 158 | + }) | ||
| 159 | + .id('play_id') | ||
| 160 | + } | ||
| 161 | + .margin({ | ||
| 162 | + top: 8, | ||
| 163 | + right: 16 | ||
| 164 | + }) | ||
| 165 | + .aspectRatio(Number.parseFloat(this.item.pictureResolutions[0]?.split('*')[0]) / Number.parseFloat(this.item.pictureResolutions[0]?.split('*')[1])) | ||
| 166 | + .onClick(() => { | ||
| 167 | + this.gotoVideoPlayPage() | ||
| 104 | }) | 168 | }) |
| 105 | - }) | ||
| 106 | - }.margin({ | ||
| 107 | - left: 32, | ||
| 108 | - top: 8 | 169 | + } |
| 170 | + | ||
| 171 | + } | ||
| 172 | + .margin({ | ||
| 173 | + left: 8, | ||
| 174 | + right: 16 | ||
| 109 | }) | 175 | }) |
| 110 | - }.margin({ | ||
| 111 | - left: 15, | ||
| 112 | - top: 15, | ||
| 113 | - right: 15 | 176 | + .layoutWeight(1) |
| 177 | + .alignItems(HorizontalAlign.Start) | ||
| 178 | + } | ||
| 179 | + .alignItems(VerticalAlign.Top) | ||
| 180 | + .padding({ | ||
| 181 | + left: 17, | ||
| 182 | + top: 8, | ||
| 183 | + bottom: 8, | ||
| 114 | }) | 184 | }) |
| 115 | } | 185 | } |
| 116 | 186 | ||
| 117 | - aboutToDisappear(): void { | ||
| 118 | - | 187 | + /** |
| 188 | + * @param content | ||
| 189 | + * */ | ||
| 190 | + gotoVideoPlayPage() { | ||
| 191 | + let taskAction: Action = { | ||
| 192 | + type: 'JUMP_DETAIL_PAGE', | ||
| 193 | + params: { | ||
| 194 | + detailPageType: 19, | ||
| 195 | + videoUrl: this.item.videoUrl, | ||
| 196 | + videoCoverUrl: this.item.transcodeImageUrl | ||
| 197 | + } as Params, | ||
| 198 | + }; | ||
| 199 | + WDRouterRule.jumpWithAction(taskAction) | ||
| 119 | } | 200 | } |
| 120 | 201 | ||
| 121 | /** | 202 | /** |
| @@ -134,4 +215,8 @@ export struct TabLiveItemComponent { | @@ -134,4 +215,8 @@ export struct TabLiveItemComponent { | ||
| 134 | }; | 215 | }; |
| 135 | WDRouterRule.jumpWithAction(taskAction) | 216 | WDRouterRule.jumpWithAction(taskAction) |
| 136 | } | 217 | } |
| 218 | + | ||
| 219 | + aboutToDisappear(): void { | ||
| 220 | + | ||
| 221 | + } | ||
| 137 | } | 222 | } |
| @@ -269,7 +269,8 @@ export struct PlayUIComponent { | @@ -269,7 +269,8 @@ export struct PlayUIComponent { | ||
| 269 | .blockSize({ | 269 | .blockSize({ |
| 270 | width: 18, | 270 | width: 18, |
| 271 | height: 12 | 271 | height: 12 |
| 272 | - })// .blockStyle({ | 272 | + }) |
| 273 | + // .blockStyle({ | ||
| 273 | // type: SliderBlockType.IMAGE, | 274 | // type: SliderBlockType.IMAGE, |
| 274 | // image: $r('app.media.ic_player_block') | 275 | // image: $r('app.media.ic_player_block') |
| 275 | // }) | 276 | // }) |
2.05 KB
| @@ -30,7 +30,8 @@ export struct DetailPlayShortVideoPage { | @@ -30,7 +30,8 @@ export struct DetailPlayShortVideoPage { | ||
| 30 | @Provide videoLandScape?: number = 1; // 视频朝向, 横屏视频:1;竖屏视频:2 | 30 | @Provide videoLandScape?: number = 1; // 视频朝向, 横屏视频:1;竖屏视频:2 |
| 31 | @Provide newsStatusOfUser: batchLikeAndCollectResult | undefined = undefined // 点赞、收藏状态 | 31 | @Provide newsStatusOfUser: batchLikeAndCollectResult | undefined = undefined // 点赞、收藏状态 |
| 32 | @Provide followStatus: string = '0' // 关注状态 | 32 | @Provide followStatus: string = '0' // 关注状态 |
| 33 | - @Provide isOpenDetail: boolean = false | 33 | + @Provide isOpenDetail: boolean = false // 查看详情按钮点击 |
| 34 | + @Provide isDragging: boolean = false // 拖动时间进度条 | ||
| 34 | @Consume @Watch('pageShowChange') pageShow: number | 35 | @Consume @Watch('pageShowChange') pageShow: number |
| 35 | @Consume @Watch('pageHideChange') pageHide: number | 36 | @Consume @Watch('pageHideChange') pageHide: number |
| 36 | 37 | ||
| @@ -138,9 +139,13 @@ export struct DetailPlayShortVideoPage { | @@ -138,9 +139,13 @@ export struct DetailPlayShortVideoPage { | ||
| 138 | build() { | 139 | build() { |
| 139 | Stack({ alignContent: Alignment.Top }) { | 140 | Stack({ alignContent: Alignment.Top }) { |
| 140 | this.playerViewBuilder() | 141 | this.playerViewBuilder() |
| 141 | - PlayerBottomView() | ||
| 142 | - PlayerRightView() | ||
| 143 | - | 142 | + PlayerBottomView({ |
| 143 | + playerController: this.playerController | ||
| 144 | + }) | ||
| 145 | + PlayerRightView({ | ||
| 146 | + playerController: this.playerController | ||
| 147 | + }) | ||
| 148 | + | ||
| 144 | } | 149 | } |
| 145 | .height('100%') | 150 | .height('100%') |
| 146 | .width('100%') | 151 | .width('100%') |
| 1 | +export class PlayerConstants { | ||
| 2 | + static readonly STATUS_IDLE: number = 0; | ||
| 3 | + static readonly STATUS_START: number = 1; | ||
| 4 | + static readonly STATUS_PAUSE: number = 2; | ||
| 5 | + static readonly STATUS_STOP: number = 3; | ||
| 6 | +} | ||
| 7 | + | ||
| 8 | + | ||
| 1 | @Preview | 9 | @Preview |
| 2 | @Component | 10 | @Component |
| 3 | export struct Test { | 11 | export struct Test { |
| 4 | - build() { | ||
| 5 | - Stack({ alignContent: Alignment.Top }) { | 12 | + @State progressVal: number = 10; |
| 13 | + @State status: number = PlayerConstants.STATUS_PAUSE; | ||
| 6 | 14 | ||
| 7 | - Text('视频').width('100%').height('50%').backgroundColor('#000').fontColor(Color.White) | 15 | + padding1(num: string) { |
| 16 | + let length = 2; | ||
| 17 | + for (let len = (num.toString()).length; len < length; len = num.length) { | ||
| 18 | + num = `${'0'}${num}`; | ||
| 19 | + } | ||
| 20 | + return num; | ||
| 21 | + } | ||
| 8 | 22 | ||
| 9 | - Row() { | ||
| 10 | - Text('title') | ||
| 11 | - Text('contentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontent') | 23 | + secondToTime(seconds: number) { |
| 24 | + let time = '00:00' | ||
| 25 | + let hourUnit = 60 * 60; | ||
| 26 | + let hour = Math.floor(seconds / hourUnit); | ||
| 27 | + let minute = Math.floor((seconds - hour * hourUnit) / 60); | ||
| 28 | + let second = seconds - hour * hourUnit - minute * 60; | ||
| 29 | + if (hour > 0) { | ||
| 30 | + return `${this.padding1(hour.toString())}${':'}${this.padding1(minute.toString())}${':'}${this.padding1(second.toString())}`; | ||
| 31 | + } | ||
| 32 | + if (minute > 0) { | ||
| 33 | + return `${this.padding1(minute.toString())}${':'}${this.padding1(second.toString())}`; | ||
| 34 | + } else { | ||
| 35 | + return `${'00'}${':'}${this.padding1(second.toString())}`; | ||
| 36 | + } | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + build() { | ||
| 40 | + Column() { | ||
| 41 | + | ||
| 42 | + Text() { | ||
| 43 | + Span(this.secondToTime(6)) | ||
| 44 | + Span(' / ') | ||
| 45 | + Span('00:06') | ||
| 12 | } | 46 | } |
| 13 | - .backgroundColor('#ff0000') | ||
| 14 | - .align(Alignment.BottomStart) | ||
| 15 | - .position({ y: '100%' }) | ||
| 16 | - .markAnchor({ y: '100%' }) | 47 | + .fontSize(24) |
| 48 | + .fontColor(Color.White) | ||
| 49 | + .fontWeight(600) | ||
| 50 | + .margin({ bottom: 30 }) | ||
| 51 | + | ||
| 52 | + // .visibility(Visibility.None) | ||
| 53 | + | ||
| 54 | + Slider({ | ||
| 55 | + value: this.progressVal, | ||
| 56 | + step: 0.01, | ||
| 57 | + // style: SliderStyle.OutSet | ||
| 58 | + }) | ||
| 59 | + .blockColor(this.status === PlayerConstants.STATUS_START ? Color.Transparent : $r('app.color.play_block_color')) | ||
| 60 | + .trackColor(this.status === PlayerConstants.STATUS_START ? $r('app.color.play_track_color') : $r('app.color.pause_track_color')) | ||
| 61 | + .selectedColor(this.status === PlayerConstants.STATUS_START ? $r('app.color.play_selected_color') : $r('app.color.pause_selected_color')) | ||
| 62 | + .trackThickness(this.status === PlayerConstants.STATUS_START ? 1 : 4) | ||
| 63 | + .blockStyle({ | ||
| 64 | + type: this.status === PlayerConstants.STATUS_START ? SliderBlockType.DEFAULT : SliderBlockType.IMAGE, | ||
| 65 | + image: $r('app.media.ic_player_block') | ||
| 66 | + }) | ||
| 67 | + .blockSize({ width: 18, height: 12 }) | ||
| 68 | + .width('100%')// .height(19) | ||
| 69 | + .onChange((value: number, mode: SliderChangeMode) => { | ||
| 70 | + // this.playerController?.setSeekTime(Math.floor(value), mode); | ||
| 71 | + }) | ||
| 17 | 72 | ||
| 18 | } | 73 | } |
| 19 | - .width(300) | ||
| 20 | - .height(600) | ||
| 21 | - .backgroundColor('#cccccc') | 74 | + .backgroundColor(Color.Blue) |
| 75 | + .height('100%') | ||
| 22 | } | 76 | } |
| 23 | } | 77 | } |
| @@ -26,7 +26,7 @@ const TAG = 'VideoChannelDetail' | @@ -26,7 +26,7 @@ const TAG = 'VideoChannelDetail' | ||
| 26 | let timer: number = -1 | 26 | let timer: number = -1 |
| 27 | 27 | ||
| 28 | const storage = LocalStorage.getShared(); | 28 | const storage = LocalStorage.getShared(); |
| 29 | - | 29 | + |
| 30 | @Entry(storage) | 30 | @Entry(storage) |
| 31 | @Component | 31 | @Component |
| 32 | export struct VideoChannelDetail { | 32 | export struct VideoChannelDetail { |
| @@ -2,20 +2,21 @@ import { WDPlayerController } from 'wdPlayer/Index'; | @@ -2,20 +2,21 @@ import { WDPlayerController } from 'wdPlayer/Index'; | ||
| 2 | import { PlayerTitleView } from './PlayerTitleView' | 2 | import { PlayerTitleView } from './PlayerTitleView' |
| 3 | import { PlayerProgressView } from './PlayerProgressView' | 3 | import { PlayerProgressView } from './PlayerProgressView' |
| 4 | import { PlayerCommentView } from './PlayerCommentView' | 4 | import { PlayerCommentView } from './PlayerCommentView' |
| 5 | +import { PlayerTimeSeekView } from './PlayerTimeSeekView' | ||
| 5 | 6 | ||
| 6 | @Component | 7 | @Component |
| 7 | export struct PlayerBottomView { | 8 | export struct PlayerBottomView { |
| 9 | + private playerController?: WDPlayerController; | ||
| 8 | @Consume showComment?: boolean | 10 | @Consume showComment?: boolean |
| 9 | @Consume isOpenDetail?: boolean | 11 | @Consume isOpenDetail?: boolean |
| 10 | - private playerController?: WDPlayerController; | 12 | + @Consume isDragging?: boolean |
| 11 | 13 | ||
| 12 | build() { | 14 | build() { |
| 13 | Column() { | 15 | Column() { |
| 14 | PlayerTitleView() | 16 | PlayerTitleView() |
| 15 | PlayerProgressView({ playerController: this.playerController }) | 17 | PlayerProgressView({ playerController: this.playerController }) |
| 16 | - .visibility(this.isOpenDetail ? Visibility.None : Visibility.Visible) | ||
| 17 | if (this.showComment) { | 18 | if (this.showComment) { |
| 18 | - PlayerCommentView().visibility(this.isOpenDetail ? Visibility.None : Visibility.Visible) | 19 | + PlayerCommentView() |
| 19 | } | 20 | } |
| 20 | } | 21 | } |
| 21 | .alignItems(HorizontalAlign.Start) | 22 | .alignItems(HorizontalAlign.Start) |
| @@ -3,6 +3,7 @@ import router from '@ohos.router'; | @@ -3,6 +3,7 @@ import router from '@ohos.router'; | ||
| 3 | @Component | 3 | @Component |
| 4 | export struct PlayerCommentView { | 4 | export struct PlayerCommentView { |
| 5 | @Consume showComment?: boolean | 5 | @Consume showComment?: boolean |
| 6 | + @Consume isOpenDetail?: boolean | ||
| 6 | @State comment: string = ''; | 7 | @State comment: string = ''; |
| 7 | 8 | ||
| 8 | build() { | 9 | build() { |
| @@ -30,5 +31,6 @@ export struct PlayerCommentView { | @@ -30,5 +31,6 @@ export struct PlayerCommentView { | ||
| 30 | .backgroundColor(Color.Black) | 31 | .backgroundColor(Color.Black) |
| 31 | .alignItems(VerticalAlign.Center) | 32 | .alignItems(VerticalAlign.Center) |
| 32 | .padding({ left: 16, right: 16, top: 11, bottom: 11 }) | 33 | .padding({ left: 16, right: 16, top: 11, bottom: 11 }) |
| 34 | + .visibility(this.isOpenDetail ? Visibility.None : Visibility.Visible) | ||
| 33 | } | 35 | } |
| 34 | } | 36 | } |
| 1 | +import { ContentDetailDTO } from 'wdBean/Index'; | ||
| 2 | +import { DateTimeUtils } from 'wdKit/Index'; | ||
| 1 | import { PlayerConstants, WDPlayerController } from 'wdPlayer/Index'; | 3 | import { PlayerConstants, WDPlayerController } from 'wdPlayer/Index'; |
| 2 | 4 | ||
| 3 | @Component | 5 | @Component |
| 4 | export struct PlayerProgressView { | 6 | export struct PlayerProgressView { |
| 5 | private playerController?: WDPlayerController; | 7 | private playerController?: WDPlayerController; |
| 8 | + @Consume contentDetailData: ContentDetailDTO | ||
| 6 | @Consume progressVal: number; | 9 | @Consume progressVal: number; |
| 10 | + @Consume isOpenDetail: boolean | ||
| 11 | + @Consume isDragging: boolean | ||
| 7 | @State status: number = PlayerConstants.STATUS_START; | 12 | @State status: number = PlayerConstants.STATUS_START; |
| 8 | 13 | ||
| 9 | aboutToAppear() { | 14 | aboutToAppear() { |
| 10 | if (this.playerController) { | 15 | if (this.playerController) { |
| 11 | this.playerController.onStatusChange = (status: number) => { | 16 | this.playerController.onStatusChange = (status: number) => { |
| 12 | this.status = status | 17 | this.status = status |
| 18 | + console.log('=============', this.status) | ||
| 13 | } | 19 | } |
| 14 | } | 20 | } |
| 15 | } | 21 | } |
| 16 | 22 | ||
| 17 | build() { | 23 | build() { |
| 18 | - Slider({ | ||
| 19 | - value: this.progressVal, | ||
| 20 | - step: 0.01, | ||
| 21 | - // style: SliderStyle.OutSet | ||
| 22 | - }) | ||
| 23 | - .blockColor(this.status === PlayerConstants.STATUS_START ? Color.Transparent : $r('app.color.play_block_color')) | ||
| 24 | - .trackColor(this.status === PlayerConstants.STATUS_START ? $r('app.color.play_track_color') : $r('app.color.pause_track_color')) | ||
| 25 | - .selectedColor(this.status === PlayerConstants.STATUS_START ? $r('app.color.play_selected_color') : $r('app.color.pause_selected_color')) | ||
| 26 | - .trackThickness(this.status === PlayerConstants.STATUS_START ? 1 : 4) | ||
| 27 | - .blockStyle({ | ||
| 28 | - type: this.status === PlayerConstants.STATUS_START ? SliderBlockType.DEFAULT : SliderBlockType.IMAGE, | ||
| 29 | - image: $r('app.media.ic_player_block') | ||
| 30 | - }) | ||
| 31 | - .blockSize({ width: 18, height: 12 }) | ||
| 32 | - .width('100%') | ||
| 33 | - .height(19) | ||
| 34 | - .onChange((value: number, mode: SliderChangeMode) => { | ||
| 35 | - this.playerController?.setSeekTime(Math.floor(value), mode); | 24 | + Column() { |
| 25 | + Text() { | ||
| 26 | + Span(DateTimeUtils.secondToTime(Math.floor(this.progressVal / 100 * this.contentDetailData.videoInfo[0].videoDuration))) | ||
| 27 | + Span(' / ') | ||
| 28 | + Span(DateTimeUtils.secondToTime(this.contentDetailData.videoInfo[0].videoDuration || 0)) | ||
| 29 | + } | ||
| 30 | + .fontSize(24) | ||
| 31 | + .fontColor(Color.White) | ||
| 32 | + .fontWeight(600) | ||
| 33 | + .margin({ bottom: 30 }) | ||
| 34 | + .visibility(this.isDragging ? Visibility.Visible : Visibility.None) | ||
| 35 | + | ||
| 36 | + Slider({ | ||
| 37 | + value: this.progressVal, | ||
| 38 | + step: 0.01, | ||
| 39 | + // style: SliderStyle.OutSet | ||
| 36 | }) | 40 | }) |
| 41 | + .blockColor(this.status === PlayerConstants.STATUS_PAUSE || this.isDragging ? $r('app.color.play_block_color') : Color.Transparent) | ||
| 42 | + .trackColor(this.status === PlayerConstants.STATUS_PAUSE || this.isDragging ? $r('app.color.pause_track_color') : $r('app.color.play_track_color')) | ||
| 43 | + .selectedColor(this.status === PlayerConstants.STATUS_PAUSE || this.isDragging ? $r('app.color.pause_selected_color') : $r('app.color.play_selected_color')) | ||
| 44 | + .trackThickness(this.status === PlayerConstants.STATUS_PAUSE || this.isDragging ? 4 : 1) | ||
| 45 | + .blockStyle({ | ||
| 46 | + type: this.status === PlayerConstants.STATUS_PAUSE || this.isDragging ? SliderBlockType.IMAGE : SliderBlockType.DEFAULT, | ||
| 47 | + image: $r('app.media.ic_player_block') | ||
| 48 | + }) | ||
| 49 | + .blockSize({ width: 18, height: 12 }) | ||
| 50 | + .width('100%') | ||
| 51 | + .height(19) | ||
| 52 | + .onChange((value: number, mode: SliderChangeMode) => { | ||
| 53 | + this.progressVal = value | ||
| 54 | + if (mode === SliderChangeMode.Moving) { | ||
| 55 | + this.isDragging = true | ||
| 56 | + } | ||
| 57 | + if (mode === SliderChangeMode.End) { | ||
| 58 | + this.isDragging = false | ||
| 59 | + } | ||
| 60 | + this.playerController?.setSeekTime(value, mode); | ||
| 61 | + console.log('slider onChange:', value, mode) | ||
| 62 | + | ||
| 63 | + }) | ||
| 64 | + }.visibility(this.isOpenDetail ? Visibility.None : Visibility.Visible) | ||
| 37 | } | 65 | } |
| 38 | } | 66 | } |
| @@ -33,6 +33,7 @@ export struct PlayerRightView { | @@ -33,6 +33,7 @@ export struct PlayerRightView { | ||
| 33 | @Consume newsStatusOfUser: batchLikeAndCollectResult | 33 | @Consume newsStatusOfUser: batchLikeAndCollectResult |
| 34 | @Consume followStatus: string | 34 | @Consume followStatus: string |
| 35 | @Consume isOpenDetail: boolean | 35 | @Consume isOpenDetail: boolean |
| 36 | + @Consume isDragging: boolean | ||
| 36 | @State operationList: OperationItem[] = [ | 37 | @State operationList: OperationItem[] = [ |
| 37 | { | 38 | { |
| 38 | icon: $r('app.media.ic_like_uncheck'), | 39 | icon: $r('app.media.ic_like_uncheck'), |
| @@ -309,6 +310,6 @@ export struct PlayerRightView { | @@ -309,6 +310,6 @@ export struct PlayerRightView { | ||
| 309 | .position({ x: '100%', y: '100%' }) | 310 | .position({ x: '100%', y: '100%' }) |
| 310 | .markAnchor({ x: '100%', y: '100%' }) | 311 | .markAnchor({ x: '100%', y: '100%' }) |
| 311 | .padding({ bottom: 72 }) | 312 | .padding({ bottom: 72 }) |
| 312 | - .visibility(this.isOpenDetail ? Visibility.None : Visibility.Visible) | 313 | + .visibility(this.isOpenDetail || this.isDragging ? Visibility.None : Visibility.Visible) |
| 313 | } | 314 | } |
| 314 | } | 315 | } |
| @@ -9,6 +9,7 @@ export struct PlayerTitleView { | @@ -9,6 +9,7 @@ export struct PlayerTitleView { | ||
| 9 | @Consume contentDetailData: ContentDetailDTO | 9 | @Consume contentDetailData: ContentDetailDTO |
| 10 | @Consume windowWidth: number | 10 | @Consume windowWidth: number |
| 11 | @Consume isOpenDetail: boolean | 11 | @Consume isOpenDetail: boolean |
| 12 | + @Consume isDragging: boolean | ||
| 12 | @State titleHeight: number = 0 | 13 | @State titleHeight: number = 0 |
| 13 | dialogController: CustomDialogController = new CustomDialogController({ | 14 | dialogController: CustomDialogController = new CustomDialogController({ |
| 14 | builder: DetailDialog({ | 15 | builder: DetailDialog({ |
| @@ -104,6 +105,6 @@ export struct PlayerTitleView { | @@ -104,6 +105,6 @@ export struct PlayerTitleView { | ||
| 104 | .width(this.windowWidth - 100 + 'px') | 105 | .width(this.windowWidth - 100 + 'px') |
| 105 | .padding({ left: 16, right: 22 }) | 106 | .padding({ left: 16, right: 22 }) |
| 106 | .alignItems(HorizontalAlign.Start) | 107 | .alignItems(HorizontalAlign.Start) |
| 107 | - .visibility(this.isOpenDetail ? Visibility.None : Visibility.Visible) | 108 | + .visibility(this.isOpenDetail || this.isDragging ? Visibility.None : Visibility.Visible) |
| 108 | } | 109 | } |
| 109 | } | 110 | } |
| @@ -7,6 +7,7 @@ import { CheckVerifyBean } from './CheckVerifyBean'; | @@ -7,6 +7,7 @@ import { CheckVerifyBean } from './CheckVerifyBean'; | ||
| 7 | import { | 7 | import { |
| 8 | SpConstants | 8 | SpConstants |
| 9 | } from '../../../../../../../commons/wdNetwork/oh_modules/wdConstant/src/main/ets/constants/SpConstants' | 9 | } from '../../../../../../../commons/wdNetwork/oh_modules/wdConstant/src/main/ets/constants/SpConstants' |
| 10 | +import { UserDetail } from 'wdBean/Index'; | ||
| 10 | 11 | ||
| 11 | 12 | ||
| 12 | const TAG = 'LoginModel' | 13 | const TAG = 'LoginModel' |
| @@ -302,5 +303,26 @@ export class LoginModel { | @@ -302,5 +303,26 @@ export class LoginModel { | ||
| 302 | }) | 303 | }) |
| 303 | } | 304 | } |
| 304 | 305 | ||
| 306 | + queryUserDetail() { | ||
| 307 | + let bean: Record<string, string> = {}; | ||
| 308 | + let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); | ||
| 309 | + return new Promise<UserDetail>((success, fail) => { | ||
| 310 | + HttpBizUtil.get<ResponseDTO<UserDetail>>(HttpUrlUtils.queryUserDetail(), headers).then((data: ResponseDTO<UserDetail>) => { | ||
| 311 | + if (!data || !data.data) { | ||
| 312 | + fail("数据为空") | ||
| 313 | + return | ||
| 314 | + } | ||
| 315 | + if (data.code != 0) { | ||
| 316 | + fail(data.message) | ||
| 317 | + return | ||
| 318 | + } | ||
| 319 | + success(data.data) | ||
| 320 | + }, (error: Error) => { | ||
| 321 | + fail(error.message) | ||
| 322 | + Logger.debug("LoginViewModel:error ", error.toString()) | ||
| 323 | + }) | ||
| 324 | + }) | ||
| 325 | + } | ||
| 326 | + | ||
| 305 | } | 327 | } |
| 306 | 328 |
| @@ -321,13 +321,7 @@ struct LoginPage { | @@ -321,13 +321,7 @@ struct LoginPage { | ||
| 321 | ///同步兴趣tag | 321 | ///同步兴趣tag |
| 322 | let interestsModel = new InterestsHobbiesModel() | 322 | let interestsModel = new InterestsHobbiesModel() |
| 323 | interestsModel.updateInterests() | 323 | interestsModel.updateInterests() |
| 324 | - | ||
| 325 | - router.back({ | ||
| 326 | - params: { userName: data.userName, | ||
| 327 | - userId:data.id}, | ||
| 328 | - url: `${WDRouterPage.getBundleInfo()}` | ||
| 329 | - } | ||
| 330 | - ) | 324 | + this.queryUserDetail() |
| 331 | }).catch((error:string)=>{ | 325 | }).catch((error:string)=>{ |
| 332 | promptAction.showToast({ message: error }) | 326 | promptAction.showToast({ message: error }) |
| 333 | }) | 327 | }) |
| @@ -339,12 +333,12 @@ struct LoginPage { | @@ -339,12 +333,12 @@ struct LoginPage { | ||
| 339 | ///同步兴趣tag | 333 | ///同步兴趣tag |
| 340 | let interestsModel = new InterestsHobbiesModel() | 334 | let interestsModel = new InterestsHobbiesModel() |
| 341 | interestsModel.updateInterests() | 335 | interestsModel.updateInterests() |
| 342 | - | ||
| 343 | - router.back({ | ||
| 344 | - params: { userName: data.userName, | ||
| 345 | - userId:data.id}, | ||
| 346 | - url: `${WDRouterPage.getBundleInfo()}` | ||
| 347 | - }) | 336 | + this.queryUserDetail() |
| 337 | + // router.back({ | ||
| 338 | + // params: { userName: data.userName, | ||
| 339 | + // userId:data.id}, | ||
| 340 | + // url: `${WDRouterPage.getBundleInfo()}` | ||
| 341 | + // }) | ||
| 348 | }).catch((value: string) => { | 342 | }).catch((value: string) => { |
| 349 | promptAction.showToast({ message: value }) | 343 | promptAction.showToast({ message: value }) |
| 350 | }) | 344 | }) |
| @@ -352,6 +346,19 @@ struct LoginPage { | @@ -352,6 +346,19 @@ struct LoginPage { | ||
| 352 | 346 | ||
| 353 | } | 347 | } |
| 354 | 348 | ||
| 349 | + queryUserDetail(){ | ||
| 350 | + this.loginViewModel.queryUserDetail().then(()=>{ | ||
| 351 | + router.back({ | ||
| 352 | + url: `${WDRouterPage.getBundleInfo()}` | ||
| 353 | + } | ||
| 354 | + ) | ||
| 355 | + }).catch(()=>{ | ||
| 356 | + router.back({ | ||
| 357 | + url: `${WDRouterPage.getBundleInfo()}` | ||
| 358 | + }) | ||
| 359 | + }) | ||
| 360 | + } | ||
| 361 | + | ||
| 355 | //登录 | 362 | //登录 |
| 356 | loginSubmit() { | 363 | loginSubmit() { |
| 357 | Logger.debug(TAG, "loginSubmit " + this.checkCodePage) | 364 | Logger.debug(TAG, "loginSubmit " + this.checkCodePage) |
| @@ -9,6 +9,7 @@ import { encryptMessage } from '../../utils/cryptoUtil' | @@ -9,6 +9,7 @@ import { encryptMessage } from '../../utils/cryptoUtil' | ||
| 9 | 9 | ||
| 10 | import { HttpUrlUtils } from 'wdNetwork/src/main/ets/http/HttpUrlUtils' | 10 | import { HttpUrlUtils } from 'wdNetwork/src/main/ets/http/HttpUrlUtils' |
| 11 | import { SpConstants } from 'wdConstant/Index' | 11 | import { SpConstants } from 'wdConstant/Index' |
| 12 | +import { UserDetail } from 'wdBean/Index'; | ||
| 12 | 13 | ||
| 13 | const TAG = "LoginViewModel" | 14 | const TAG = "LoginViewModel" |
| 14 | 15 | ||
| @@ -213,4 +214,26 @@ export class LoginViewModel { | @@ -213,4 +214,26 @@ export class LoginViewModel { | ||
| 213 | return bufferStr; | 214 | return bufferStr; |
| 214 | 215 | ||
| 215 | } | 216 | } |
| 217 | + | ||
| 218 | + queryUserDetail(){ | ||
| 219 | + return new Promise<UserDetail>((success, fail) => { | ||
| 220 | + this.loginModel.queryUserDetail().then((data: UserDetail) => { | ||
| 221 | + //保存sp | ||
| 222 | + if(data){ | ||
| 223 | + SPHelper.default.save(SpConstants.USER_NAME, data.userName) | ||
| 224 | + SPHelper.default.save(SpConstants.USER_PHONE, data.phone) | ||
| 225 | + } | ||
| 226 | + if(data.userExtend){ | ||
| 227 | + SPHelper.default.save(SpConstants.USER_SEX, data.userExtend.sex) | ||
| 228 | + SPHelper.default.save(SpConstants.USER_CREATOR_ID, data.userExtend.creatorId+"") | ||
| 229 | + SPHelper.default.save(SpConstants.USER_HEAD_PHOTO_URL, data.userExtend.headPhotoUrl) | ||
| 230 | + SPHelper.default.save(SpConstants.USER_BIRTHDAY, data.userExtend.birthday) | ||
| 231 | + } | ||
| 232 | + | ||
| 233 | + success(data) | ||
| 234 | + }).catch(() => { | ||
| 235 | + fail() | ||
| 236 | + }) | ||
| 237 | + }) | ||
| 238 | + } | ||
| 216 | } | 239 | } |
| 1 | import router from '@ohos.router' | 1 | import router from '@ohos.router' |
| 2 | -import { WDRouterRule } from 'wdRouter'; | 2 | +import { ProcessUtils, WDRouterRule } from 'wdRouter'; |
| 3 | import { WDRouterPage } from 'wdRouter'; | 3 | import { WDRouterPage } from 'wdRouter'; |
| 4 | import { Logger, SPHelper } from 'wdKit/Index'; | 4 | import { Logger, SPHelper } from 'wdKit/Index'; |
| 5 | import { SpConstants } from 'wdConstant/Index'; | 5 | import { SpConstants } from 'wdConstant/Index'; |
| @@ -178,23 +178,14 @@ struct LaunchAdvertisingPage { | @@ -178,23 +178,14 @@ struct LaunchAdvertisingPage { | ||
| 178 | // openType 端外 端内 打开 | 178 | // openType 端外 端内 打开 |
| 179 | if (this.model.launchAdInfo[0].matInfo.openType == '2') { | 179 | if (this.model.launchAdInfo[0].matInfo.openType == '2') { |
| 180 | //端外打开 | 180 | //端外打开 |
| 181 | - let context = getContext(this) as common.UIAbilityContext; | ||
| 182 | - let wantInfo: Want = { | ||
| 183 | - // uncomment line below if wish to implicitly query only in the specific bundle. | ||
| 184 | - // bundleName: 'com.example.myapplication', | ||
| 185 | - action: 'ohos.want.action.viewData', | ||
| 186 | - // entities can be omitted. | ||
| 187 | - entities: ['entity.system.browsable'], | ||
| 188 | - uri: 'https://news.bjd.com.cn/2024/03/19/10724331.shtml' | ||
| 189 | - } | ||
| 190 | - context.startAbility(wantInfo).then(() => { | ||
| 191 | - // ... | ||
| 192 | - }).catch((err: BusinessError) => { | ||
| 193 | - // ... | ||
| 194 | - }) | 181 | + |
| 182 | + ProcessUtils.jumpExternalWebPage(this.model.launchAdInfo[0].matInfo.linkUrl) | ||
| 183 | + clearInterval(this.timer) | ||
| 184 | + | ||
| 195 | }else { | 185 | }else { |
| 196 | //端内打开 | 186 | //端内打开 |
| 197 | - | 187 | + ProcessUtils.gotoDefaultWebPage(this.model.launchAdInfo[0].matInfo.linkUrl) |
| 188 | + clearInterval(this.timer) | ||
| 198 | 189 | ||
| 199 | } | 190 | } |
| 200 | } | 191 | } |
| @@ -98,6 +98,12 @@ struct LaunchPage { | @@ -98,6 +98,12 @@ struct LaunchPage { | ||
| 98 | //获取本地存储的启动页数据 | 98 | //获取本地存储的启动页数据 |
| 99 | 99 | ||
| 100 | let dataModelStr : string = SPHelper.default.getSync(SpConstants.APP_LAUNCH_PAGE_DATA_MODEL,'') as string | 100 | let dataModelStr : string = SPHelper.default.getSync(SpConstants.APP_LAUNCH_PAGE_DATA_MODEL,'') as string |
| 101 | + if (!dataModelStr) { | ||
| 102 | + //直接跳转首页 | ||
| 103 | + WDRouterRule.jumpWithReplacePage(WDRouterPage.mainPage) | ||
| 104 | + return | ||
| 105 | + } | ||
| 106 | + | ||
| 101 | let dataModel : LaunchDataModel = JSON.parse(dataModelStr) | 107 | let dataModel : LaunchDataModel = JSON.parse(dataModelStr) |
| 102 | console.log(dataModelStr) | 108 | console.log(dataModelStr) |
| 103 | 109 |
| 1 | +-----BEGIN NEW CERTIFICATE REQUEST----- | ||
| 2 | +MIIBSjCB8gIBADBgMQswCQYDVQQGEwI4NjEOMAwGA1UECBMFQW5odWkxDjAMBgNV | ||
| 3 | +BAcTBUhlZmVpMRIwEAYDVQQKEwlXb25kZXJUZWsxDzANBgNVBAsTBldvbmRlcjEM | ||
| 4 | +MAoGA1UEAxMDWEdZMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcpXWRUmv/W+Q | ||
| 5 | +j25o83pS3Ftb6VtfwUsapOYxIqoxmpauFHTKg1RA7h3QlILy3rhNW7I8wiwNA+kp | ||
| 6 | +jfLqCGzMQqAwMC4GCSqGSIb3DQEJDjEhMB8wHQYDVR0OBBYEFPdvSvMO2yFULBr+ | ||
| 7 | +iUFb6ytXskNHMAoGCCqGSM49BAMCA0cAMEQCID4oV66jJ0KJ23jAHFlQ+5xioszZ | ||
| 8 | +dYhhRK7tG9Dsy4VpAiAx3rhNI8RbM7s+t2hqEsbrBXznNK7omEU4hooOkewbaw== | ||
| 9 | +-----END NEW CERTIFICATE REQUEST----- |
sight_harmony/singing_config/manual_com.peopledailychina.hosactivity_sign/keystorefile.p12
0 → 100644
No preview for this file type
| 1 | +#_GCF&H_ |
No preview for this file type
| 1 | +kat[n*ytgIe |
| 1 | +ß(“a† šw‘T.âŞÄl |
| 1 | +P+"Jx.M<X |
No preview for this file type
No preview for this file type
| 1 | +-----BEGIN CERTIFICATE----- | ||
| 2 | +MIICGjCCAaGgAwIBAgIIShhpn519jNAwCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC | ||
| 3 | +Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE | ||
| 4 | +AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDMxNjAzMDQzOVoXDTQ5MDMx | ||
| 5 | +NjAzMDQzOVowUzELMAkGA1UEBhMCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE | ||
| 6 | +CwwKSHVhd2VpIENCRzEeMBwGA1UEAwwVSHVhd2VpIENCRyBSb290IENBIEcyMHYw | ||
| 7 | +EAYHKoZIzj0CAQYFK4EEACIDYgAEWidkGnDSOw3/HE2y2GHl+fpWBIa5S+IlnNrs | ||
| 8 | +GUvwC1I2QWvtqCHWmwFlFK95zKXiM8s9yV3VVXh7ivN8ZJO3SC5N1TCrvB2lpHMB | ||
| 9 | +wcz4DA0kgHCMm/wDec6kOHx1xvCRo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T | ||
| 10 | +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUo45a9Vq8cYwqaiVyfkiS4pLcIAAwCgYIKoZI | ||
| 11 | +zj0EAwMDZwAwZAIwMypeB7P0IbY7c6gpWcClhRznOJFj8uavrNu2PIoz9KIqr3jn | ||
| 12 | +BlBHJs0myI7ntYpEAjBbm8eDMZY5zq5iMZUC6H7UzYSix4Uy1YlsLVV738PtKP9h | ||
| 13 | +FTjgDHctXJlC5L7+ZDY= | ||
| 14 | +-----END CERTIFICATE----- | ||
| 15 | +-----BEGIN CERTIFICATE----- | ||
| 16 | +MIIDATCCAoigAwIBAgIIXmuDXbWpOB8wCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC | ||
| 17 | +Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE | ||
| 18 | +AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDcwOTAyMDQyNFoXDTMwMDcw | ||
| 19 | +NzAyMDQyNFowYjELMAkGA1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE | ||
| 20 | +CwwKSHVhd2VpIENCRzEtMCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVs | ||
| 21 | +YXRpb25zIENBIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE65LdoIZh1hlpZ2gP | ||
| 22 | +bJ6gPhHsvYSRe22KETgdqeVeYnrbRHI9wsPT6RGYS+pU4mPl6wxzgDMqN6SY/BoZ | ||
| 23 | +luhkE1PzaHoPoNIWIq0O33hpyKyyYwAacIUEjYurkw1E9r9no4IBGDCCARQwHwYD | ||
| 24 | +VR0jBBgwFoAUo45a9Vq8cYwqaiVyfkiS4pLcIAAwHQYDVR0OBBYEFNtek7Ij6NDk | ||
| 25 | +/nF6Zumkc0dbf/NeMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEGCCsGAQUFBwIBFiVo | ||
| 26 | +dHRwOi8vY3BraS1jYXdlYi5odWF3ZWkuY29tL2Nwa2kvY3BzMBIGA1UdEwEB/wQI | ||
| 27 | +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMGYGA1UdHwRfMF0wW6BZoFeGVWh0dHA6 | ||
| 28 | +Ly9jcGtpLWNhd2ViLmh1YXdlaS5jb20vY3BraS9zZXJ2bGV0L2NybEZpbGVEb3du | ||
| 29 | +LmNybD9jZXJ0eXBlPTEwJi9yb290X2cyX2NybC5jcmwwCgYIKoZIzj0EAwMDZwAw | ||
| 30 | +ZAIwWO1X5q2MdfpR1Q237GpUHGbL1C13rGyFg2p3AYo44FpZ2/A9ss0wOHKM4KDl | ||
| 31 | +ZPqdAjBLkf8NPZy7KVog98+iCTLq35DJ2ZVxkCxknA9YhiHVyXf4HPm4JlT7rW7o | ||
| 32 | +Q+FzM3c= | ||
| 33 | +-----END CERTIFICATE----- | ||
| 34 | +-----BEGIN CERTIFICATE----- | ||
| 35 | +MIIC0jCCAligAwIBAgIOY8sBbjnB96BZITO8K44wCgYIKoZIzj0EAwMwYjELMAkG | ||
| 36 | +A1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEt | ||
| 37 | +MCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVsYXRpb25zIENBIEcyMB4X | ||
| 38 | +DTI0MDQyMzEwNDkxNVoXDTI1MDQyMzEwNDkxNVowgYExCzAJBgNVBAYTAkNOMRgw | ||
| 39 | +FgYDVQQKDA/kurrmsJHml6XmiqXnpL4xHDAaBgNVBAsMEzE0MDU5MDg1MTcwMDg3 | ||
| 40 | +Mjk5ODUxOjA4BgNVBAMMMeS6uuawkeaXpeaKpeekvigxNDA1OTA4NTE3MDA4NzI5 | ||
| 41 | +OTg1KVwsRGV2ZWxvcG1lbnQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARyldZF | ||
| 42 | +Sa/9b5CPbmjzelLcW1vpW1/BSxqk5jEiqjGalq4UdMqDVEDuHdCUgvLeuE1bsjzC | ||
| 43 | +LA0D6SmN8uoIbMxCo4HRMIHOMAwGA1UdEwEB/wQCMAAwWQYDVR0fBFIwUDBOoEyg | ||
| 44 | +SoZIaHR0cDovL2g1aG9zdGluZy1kcmNuLmRiYW5rY2RuLmNuL2NjaDUvY3JsL2hk | ||
| 45 | +cmNhZzIvSHVhd2VpQ0JHSERSRzJjcmwuY3JsMB8GA1UdIwQYMBaAFNtek7Ij6NDk | ||
| 46 | +/nF6Zumkc0dbf/NeMB0GA1UdDgQWBBT3b0rzDtshVCwa/olBW+srV7JDRzAOBgNV | ||
| 47 | +HQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwCgYIKoZIzj0EAwMDaAAw | ||
| 48 | +ZQIxALQlPju1pWaQmEkj4DRezSJGS2jiPFfpSjxTJDrG2ipXHQ5jkC4QP/3AzlLe | ||
| 49 | +LJ70VAIwBpsn6UOHBmNywFrdw2qpdJNueiHHefZlXFD8043LtpeYfQaHi0/gIdCQ | ||
| 50 | +BclpH6Ga | ||
| 51 | +-----END CERTIFICATE----- |
sight_harmony/singing_config/manual_com.peopledailychina.hosactivity_sign/鸿蒙中文版客户端证书正式.cer
0 → 100644
| 1 | +-----BEGIN CERTIFICATE----- | ||
| 2 | +MIICGjCCAaGgAwIBAgIIShhpn519jNAwCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC | ||
| 3 | +Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE | ||
| 4 | +AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDMxNjAzMDQzOVoXDTQ5MDMx | ||
| 5 | +NjAzMDQzOVowUzELMAkGA1UEBhMCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE | ||
| 6 | +CwwKSHVhd2VpIENCRzEeMBwGA1UEAwwVSHVhd2VpIENCRyBSb290IENBIEcyMHYw | ||
| 7 | +EAYHKoZIzj0CAQYFK4EEACIDYgAEWidkGnDSOw3/HE2y2GHl+fpWBIa5S+IlnNrs | ||
| 8 | +GUvwC1I2QWvtqCHWmwFlFK95zKXiM8s9yV3VVXh7ivN8ZJO3SC5N1TCrvB2lpHMB | ||
| 9 | +wcz4DA0kgHCMm/wDec6kOHx1xvCRo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T | ||
| 10 | +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUo45a9Vq8cYwqaiVyfkiS4pLcIAAwCgYIKoZI | ||
| 11 | +zj0EAwMDZwAwZAIwMypeB7P0IbY7c6gpWcClhRznOJFj8uavrNu2PIoz9KIqr3jn | ||
| 12 | +BlBHJs0myI7ntYpEAjBbm8eDMZY5zq5iMZUC6H7UzYSix4Uy1YlsLVV738PtKP9h | ||
| 13 | +FTjgDHctXJlC5L7+ZDY= | ||
| 14 | +-----END CERTIFICATE----- | ||
| 15 | +-----BEGIN CERTIFICATE----- | ||
| 16 | +MIIDATCCAoigAwIBAgIIXmuDXbWpOB8wCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC | ||
| 17 | +Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE | ||
| 18 | +AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDcwOTAyMDQyNFoXDTMwMDcw | ||
| 19 | +NzAyMDQyNFowYjELMAkGA1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE | ||
| 20 | +CwwKSHVhd2VpIENCRzEtMCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVs | ||
| 21 | +YXRpb25zIENBIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE65LdoIZh1hlpZ2gP | ||
| 22 | +bJ6gPhHsvYSRe22KETgdqeVeYnrbRHI9wsPT6RGYS+pU4mPl6wxzgDMqN6SY/BoZ | ||
| 23 | +luhkE1PzaHoPoNIWIq0O33hpyKyyYwAacIUEjYurkw1E9r9no4IBGDCCARQwHwYD | ||
| 24 | +VR0jBBgwFoAUo45a9Vq8cYwqaiVyfkiS4pLcIAAwHQYDVR0OBBYEFNtek7Ij6NDk | ||
| 25 | +/nF6Zumkc0dbf/NeMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEGCCsGAQUFBwIBFiVo | ||
| 26 | +dHRwOi8vY3BraS1jYXdlYi5odWF3ZWkuY29tL2Nwa2kvY3BzMBIGA1UdEwEB/wQI | ||
| 27 | +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMGYGA1UdHwRfMF0wW6BZoFeGVWh0dHA6 | ||
| 28 | +Ly9jcGtpLWNhd2ViLmh1YXdlaS5jb20vY3BraS9zZXJ2bGV0L2NybEZpbGVEb3du | ||
| 29 | +LmNybD9jZXJ0eXBlPTEwJi9yb290X2cyX2NybC5jcmwwCgYIKoZIzj0EAwMDZwAw | ||
| 30 | +ZAIwWO1X5q2MdfpR1Q237GpUHGbL1C13rGyFg2p3AYo44FpZ2/A9ss0wOHKM4KDl | ||
| 31 | +ZPqdAjBLkf8NPZy7KVog98+iCTLq35DJ2ZVxkCxknA9YhiHVyXf4HPm4JlT7rW7o | ||
| 32 | +Q+FzM3c= | ||
| 33 | +-----END CERTIFICATE----- | ||
| 34 | +-----BEGIN CERTIFICATE----- | ||
| 35 | +MIICzjCCAlOgAwIBAgIOCfqzV9Lb4emhfwEBhZkwCgYIKoZIzj0EAwMwYjELMAkG | ||
| 36 | +A1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEt | ||
| 37 | +MCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVsYXRpb25zIENBIEcyMB4X | ||
| 38 | +DTI0MDQyMzEwNTA0OFoXDTI3MDQyMzEwNTA0OFowfTELMAkGA1UEBhMCQ04xGDAW | ||
| 39 | +BgNVBAoMD+S6uuawkeaXpeaKpeekvjEcMBoGA1UECwwTMTQwNTkwODUxNzAwODcy | ||
| 40 | +OTk4NTE2MDQGA1UEAwwt5Lq65rCR5pel5oql56S+KDE0MDU5MDg1MTcwMDg3Mjk5 | ||
| 41 | +ODUpXCxSZWxlYXNlMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcpXWRUmv/W+Q | ||
| 42 | +j25o83pS3Ftb6VtfwUsapOYxIqoxmpauFHTKg1RA7h3QlILy3rhNW7I8wiwNA+kp | ||
| 43 | +jfLqCGzMQqOB0TCBzjAMBgNVHRMBAf8EAjAAMFkGA1UdHwRSMFAwTqBMoEqGSGh0 | ||
| 44 | +dHA6Ly9oNWhvc3RpbmctZHJjbi5kYmFua2Nkbi5jbi9jY2g1L2NybC9oZHJjYWcy | ||
| 45 | +L0h1YXdlaUNCR0hEUkcyY3JsLmNybDAfBgNVHSMEGDAWgBTbXpOyI+jQ5P5xembp | ||
| 46 | +pHNHW3/zXjAdBgNVHQ4EFgQU929K8w7bIVQsGv6JQVvrK1eyQ0cwDgYDVR0PAQH/ | ||
| 47 | +BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMAoGCCqGSM49BAMDA2kAMGYCMQD1 | ||
| 48 | +UL0Qj+pCjOirB7hB80Pcd5jrvy1fM1a6MptJdmZtIpUBcMPk8CKO/GeUu4rPrdEC | ||
| 49 | +MQDN7j9hEa4VJWu35BmoSAyZuJw4bmZ5Y56qmtLX1xFwvu9NDQiO4uZyR7q0M3Oj | ||
| 50 | +FgA= | ||
| 51 | +-----END CERTIFICATE----- |
-
Please register or login to post a comment