liyubing

Merge remote-tracking branch 'origin/main'

@@ -15,3 +15,5 @@ export { AssignChannelParam } from './src/main/ets/utils/HomeChannelUtils'; @@ -15,3 +15,5 @@ export { AssignChannelParam } from './src/main/ets/utils/HomeChannelUtils';
15 export { RouterJumpInterceptor, JumpInterceptorAction } from './src/main/ets/router/RouterJumpInterceptor' 15 export { RouterJumpInterceptor, JumpInterceptorAction } from './src/main/ets/router/RouterJumpInterceptor'
16 16
17 export { AppInnerLink } from './src/main/ets/utils/AppInnerLink' 17 export { AppInnerLink } from './src/main/ets/utils/AppInnerLink'
  18 +
  19 +export { ContentType } from './src/main/ets/common/ContentType'
  1 +export enum ContentType {
  2 +
  3 + /// 不跳转
  4 + Unknown = 0,
  5 + ///点播
  6 + Video = 1,
  7 +
  8 + ///直播
  9 + Live = 2,
  10 +
  11 + ///活动
  12 + Activity = 3,
  13 +
  14 + ///信息流广告
  15 + InfoflowAD = 4,
  16 +
  17 + ///专题
  18 + Subject = 5,
  19 +
  20 + ///链接
  21 + Link = 6,
  22 +
  23 + ///榜单
  24 + RankList = 7,
  25 +
  26 + /// 图文
  27 + ImageText = 8,
  28 + /// 组图
  29 + Pictures = 9,
  30 +
  31 + /// H5新闻 (仅海外版存在,视界和中文端无此类型。中文端按照图文8类型+link)
  32 + H5News = 10,
  33 + /// 频道
  34 + Channel = 11,
  35 + ///组件
  36 + Module = 12,
  37 + ///音频
  38 + Audio = 13,
  39 + ///动态图文
  40 + DynamicImageText = 14,
  41 +
  42 + ///动态视频
  43 + DynamicVideo = 15,
  44 +
  45 + ///问政留言
  46 + Ask = 16,
  47 +
  48 + /// 金刚位
  49 + KeyPosition = 30,
  50 +
  51 + /// 合集
  52 + Serials = 101,
  53 +
  54 +
  55 +
  56 +}
@@ -39,6 +39,8 @@ export interface ShareContentLink { @@ -39,6 +39,8 @@ export interface ShareContentLink {
39 desc?: string 39 desc?: string
40 link: string 40 link: string
41 icon?: string 41 icon?: string
  42 + deeplink: string // 根据内容详情,生成的深度链接 如:rmrbapp://rmrb.app/openwith?type=article&subType=h5_template_article&contentId=30000762651&relId=500000038702&skipType=1&relType=1
  43 +
42 } 44 }
43 45
44 export type ShareContent = ShareContentText | ShareContentImageAndText | ShareContentLink 46 export type ShareContent = ShareContentText | ShareContentImageAndText | ShareContentLink
@@ -6,6 +6,9 @@ import { AsyncCallback } from '@kit.BasicServicesKit'; @@ -6,6 +6,9 @@ import { AsyncCallback } from '@kit.BasicServicesKit';
6 import { common } from '@kit.AbilityKit'; 6 import { common } from '@kit.AbilityKit';
7 import { systemShare } from '@kit.ShareKit'; 7 import { systemShare } from '@kit.ShareKit';
8 import { uniformTypeDescriptor as utd } from '@kit.ArkData'; 8 import { uniformTypeDescriptor as utd } from '@kit.ArkData';
  9 +import { JSON } from '@kit.ArkTS';
  10 +
  11 +const TAG = "WDSystemShare"
9 12
10 export class WDSystemShare implements WDShareInterface { 13 export class WDSystemShare implements WDShareInterface {
11 14
@@ -14,7 +17,8 @@ export class WDSystemShare implements WDShareInterface { @@ -14,7 +17,8 @@ export class WDSystemShare implements WDShareInterface {
14 return new Promise((resolve, fail) => { 17 return new Promise((resolve, fail) => {
15 try { 18 try {
16 19
17 - let controller: systemShare.ShareController = new systemShare.ShareController(this.getShareData(content, contentType)); 20 + let data = this.getShareData(content, contentType)
  21 + let controller: systemShare.ShareController = new systemShare.ShareController(data);
18 let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext 22 let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
19 23
20 controller.on('dismiss', () => { 24 controller.on('dismiss', () => {
@@ -53,7 +57,7 @@ export class WDSystemShare implements WDShareInterface { @@ -53,7 +57,7 @@ export class WDSystemShare implements WDShareInterface {
53 }); 57 });
54 data.addRecord({ 58 data.addRecord({
55 utd: utd.UniformDataType.PNG, 59 utd: utd.UniformDataType.PNG,
56 - uri: imageAndText.imgURI 60 + uri: imageAndText.imgURI // 这里必须为本地连接
57 }); 61 });
58 return data 62 return data
59 } 63 }
@@ -64,12 +68,26 @@ export class WDSystemShare implements WDShareInterface { @@ -64,12 +68,26 @@ export class WDSystemShare implements WDShareInterface {
64 utd: utd.UniformDataType.PLAIN_TEXT, 68 utd: utd.UniformDataType.PLAIN_TEXT,
65 content: link.title 69 content: link.title
66 }); 70 });
  71 + let shareLink = this.generateShareLink(link)
  72 + console.log("分享 shareLink ==> " + shareLink)
67 data.addRecord({ 73 data.addRecord({
68 utd: utd.UniformDataType.HYPERLINK, 74 utd: utd.UniformDataType.HYPERLINK,
69 - uri: link.link 75 + // uri: link.link // SDK 设计 不能传这里
  76 + content: link.link
70 }); 77 });
71 return data 78 return data
72 } 79 }
73 80
74 - 81 + generateShareLink(shareContent: ShareContentLink) {
  82 + let link = "https://peopledailychinahosactivity.drcn.agconnect.link/?deeplink=" + encodeURI(shareContent.deeplink)
  83 + link += "&harmonyos_deeplink=" + encodeURI(shareContent.deeplink)
  84 + link += "&harmonyos_package_name=com.peopledailychina.hosactivity"
  85 + link += "&harmonyos_fallback_url=" + encodeURI(shareContent.link)
  86 + link += "&landing_page_type=1"
  87 + // link += "&social_desc=" + encodeURIComponent(shareContent.desc || " ")
  88 + // link += "&social_image=" + encodeURI(shareContent.icon || " ")
  89 + // link += "&social_title=" + encodeURIComponent(shareContent.title)
  90 + link += "&region_id=0"
  91 + return link
  92 + }
75 } 93 }
@@ -93,7 +93,8 @@ export struct CardMediaInfo { @@ -93,7 +93,8 @@ export struct CardMediaInfo {
93 .fontFamily('BebasNeue') 93 .fontFamily('BebasNeue')
94 94
95 } 95 }
96 - } .margin({ left: 68,top: 135}) 96 + }
  97 + // .margin({ left: 68,top: 135})
97 } else if (this.contentDTO.objectType === '2') { 98 } else if (this.contentDTO.objectType === '2') {
98 // liveInfo.liveState 直播新闻-直播状态 wait待开播running直播中end已结束cancel已取消paused暂停 99 // liveInfo.liveState 直播新闻-直播状态 wait待开播running直播中end已结束cancel已取消paused暂停
99 // 显示直播信息 100 // 显示直播信息
@@ -191,7 +192,7 @@ export struct CardMediaInfo { @@ -191,7 +192,7 @@ export struct CardMediaInfo {
191 .mediaTextImgtype() 192 .mediaTextImgtype()
192 .fontFamily('BebasNeue') 193 .fontFamily('BebasNeue')
193 } 194 }
194 - .margin({ left: 80,top: 55}) 195 + // .margin({ left: 80,top: 55})
195 196
196 } else if (this.contentDTO.objectType === '13') { 197 } else if (this.contentDTO.objectType === '13') {
197 // 显示音频信息 198 // 显示音频信息
@@ -112,13 +112,12 @@ export struct QualityCommentsComponent { @@ -112,13 +112,12 @@ export struct QualityCommentsComponent {
112 Image($r('app.media.comment_img_banner')).width('100%') 112 Image($r('app.media.comment_img_banner')).width('100%')
113 .height(283) 113 .height(283)
114 // .aspectRatio(375 / 283); 114 // .aspectRatio(375 / 283);
115 - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])  
116 } 115 }
117 .onAreaChange((oldValue: Area, newValue: Area) => { 116 .onAreaChange((oldValue: Area, newValue: Area) => {
118 - if (Number(oldValue.globalPosition.y) == 0 && Number(newValue.globalPosition.y) > 30) {  
119 - this.firstPositionY = Number(newValue.globalPosition.y)  
120 - return  
121 - } 117 + // if (Number(oldValue.globalPosition.y) == 0 && Number(newValue.globalPosition.y) > 30) {
  118 + // this.firstPositionY = Number(newValue.globalPosition.y)
  119 + // return
  120 + // }
122 Logger.debug(TAG, "oldValue.globalPosition.y : " + oldValue.globalPosition.y) 121 Logger.debug(TAG, "oldValue.globalPosition.y : " + oldValue.globalPosition.y)
123 Logger.debug(TAG, 122 Logger.debug(TAG,
124 "newValue.globalPosition.y : " + newValue.globalPosition.y + `,this.topSafeHeight : ` + this.topSafeHeight) 123 "newValue.globalPosition.y : " + newValue.globalPosition.y + `,this.topSafeHeight : ` + this.topSafeHeight)
@@ -128,9 +127,16 @@ export struct QualityCommentsComponent { @@ -128,9 +127,16 @@ export struct QualityCommentsComponent {
128 persent = 1 127 persent = 1
129 } 128 }
130 this.tileOpacity = persent 129 this.tileOpacity = persent
131 - 130 + this.topOpacityChange()
132 }) 131 })
133 } 132 }
  133 + topOpacityChange(){
  134 + if(this.tileOpacity > 0.8){
  135 + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', })
  136 + }else{
  137 + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff'})
  138 + }
  139 + }
134 140
135 /*透明导航栏*/ 141 /*透明导航栏*/
136 @Builder 142 @Builder
@@ -164,16 +170,20 @@ export struct QualityCommentsComponent { @@ -164,16 +170,20 @@ export struct QualityCommentsComponent {
164 @Builder 170 @Builder
165 TabbarNormal() { 171 TabbarNormal() {
166 Stack({ alignContent: Alignment.Top }) { 172 Stack({ alignContent: Alignment.Top }) {
  173 + //// 默认显示的白色返回按钮
167 Row() { 174 Row() {
168 - }  
169 - .width('100%')  
170 - .height(px2vp(this.topSafeHeight))  
171 - .backgroundColor($r('app.color.white'))  
172 - .opacity(this.tileOpacity)  
173 - .visibility(this.tileOpacity > 0 ? 0 : 1)  
174 - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) 175 + Image($r('app.media.icon_arrow_left_white'))
  176 + .width(24).height(24)
  177 + .objectFit(ImageFit.Auto)
  178 + .margin({ left: 16, top: px2vp(this.topSafeHeight) + (44 - 24)/2})
  179 + .onClick(() => {
  180 + router.back()
  181 + })
  182 + }.width('100%').height(px2vp(this.topSafeHeight) + 44)
  183 + .opacity(1- this.tileOpacity)
175 184
176 - Stack({ alignContent: Alignment.Start }) { 185 + //// 上滑显示的黑色按钮和标题
  186 + Stack({ alignContent: Alignment.Top }) {
177 Row() { 187 Row() {
178 Text('精选评论')// .height('42lpx') 188 Text('精选评论')// .height('42lpx')
179 .maxLines(1) 189 .maxLines(1)
@@ -182,25 +192,25 @@ export struct QualityCommentsComponent { @@ -182,25 +192,25 @@ export struct QualityCommentsComponent {
182 .fontWeight(400) 192 .fontWeight(400)
183 .fontColor($r('app.color.color_222222')) 193 .fontColor($r('app.color.color_222222'))
184 .lineHeight('42lpx') 194 .lineHeight('42lpx')
185 - .visibility(this.tileOpacity < 0.8 ? 1 : 0)  
186 } 195 }
187 - .height(44)  
188 - .width('100%') 196 + .height(44).width('100%')
189 .justifyContent(FlexAlign.Center) 197 .justifyContent(FlexAlign.Center)
190 .alignItems(VerticalAlign.Center) 198 .alignItems(VerticalAlign.Center)
191 - .opacity(this.tileOpacity)  
192 - .backgroundColor($r('app.color.white'))  
193 199
194 - Image(this.tileOpacity < 0.8 ? $r('app.media.icon_arrow_left_white') : $r('app.media.icon_arrow_left'))  
195 - .width(24)  
196 - .height(24) 200 + Row() {
  201 + Image($r('app.media.icon_arrow_left'))
  202 + .width(24).height(24)
197 .objectFit(ImageFit.Auto) 203 .objectFit(ImageFit.Auto)
198 - .margin({ left: 16 }) 204 + .margin({ left: 16, top: (44-24)/2})
199 .onClick(() => { 205 .onClick(() => {
200 router.back() 206 router.back()
201 }) 207 })
202 - 208 + }.height(44).width('100%')
203 } 209 }
  210 + .width('100%').height(px2vp(this.topSafeHeight) + 44)
  211 + .backgroundColor($r('app.color.white'))
  212 + .opacity(this.tileOpacity)
  213 + .padding({top:px2vp(this.topSafeHeight)})
204 } 214 }
205 215
206 } 216 }
@@ -113,9 +113,11 @@ export struct TopNavigationComponentNew { @@ -113,9 +113,11 @@ export struct TopNavigationComponentNew {
113 'middle': { 'anchor': '__container__', 'align': HorizontalAlign.Center }, 113 'middle': { 'anchor': '__container__', 'align': HorizontalAlign.Center },
114 'bottom': { 'anchor': '__container__', 'align': VerticalAlign.Bottom } 114 'bottom': { 'anchor': '__container__', 'align': VerticalAlign.Bottom }
115 }) 115 })
116 - .onChange((index) => {  
117 - Logger.info(TAG, `onChange index : ${index}`);  
118 - 116 + .onAnimationStart((curIndex: number, index: number)=>{
  117 + Logger.info(TAG, `onAnimationStart ${curIndex} ${index}`);
  118 + if (curIndex === index) {
  119 + return
  120 + }
119 if (this.isBroadcastByIndex(index)) { 121 if (this.isBroadcastByIndex(index)) {
120 // 跳转到播报页面 122 // 跳转到播报页面
121 ProcessUtils.gotoBroadcastPage(this.myChannelList[index].pageId) 123 ProcessUtils.gotoBroadcastPage(this.myChannelList[index].pageId)
@@ -133,7 +135,12 @@ export struct TopNavigationComponentNew { @@ -133,7 +135,12 @@ export struct TopNavigationComponentNew {
133 this.currentTopNavSelectedIndex = index; 135 this.currentTopNavSelectedIndex = index;
134 this.changePage(this.currentTopNavSelectedIndex) 136 this.changePage(this.currentTopNavSelectedIndex)
135 } 137 }
136 - 138 + })
  139 + // .onAnimationEnd((index: number)=>{
  140 + // Logger.info(TAG, `onAnimationEnd ${index}`);
  141 + // })
  142 + .onChange((index) => {
  143 + Logger.info(TAG, `onChange index : ${index}`);
137 }) 144 })
138 } 145 }
139 .width('100%') 146 .width('100%')
@@ -241,7 +241,7 @@ export struct OperRowListView { @@ -241,7 +241,7 @@ export struct OperRowListView {
241 .padding({ 241 .padding({
242 top: 10, 242 top: 10,
243 // bottom: 10 243 // bottom: 10
244 - bottom: `${this.bottomSafeHeight}px` 244 + bottom: px2vp(this.bottomSafeHeight)
245 // bottom: 50 245 // bottom: 50
246 }) 246 })
247 } 247 }
@@ -2,6 +2,7 @@ import { ContentDetailDTO, ContentDTO, PageInfoDTO, ShareInfoDTO, TopicInfo } fr @@ -2,6 +2,7 @@ import { ContentDetailDTO, ContentDTO, PageInfoDTO, ShareInfoDTO, TopicInfo } fr
2 import { SharePosterItemBean } from 'wdBean/src/main/ets/bean/detail/SharePosterItemBean'; 2 import { SharePosterItemBean } from 'wdBean/src/main/ets/bean/detail/SharePosterItemBean';
3 import { ShareScene, ShareType, WDShareBase } from 'wdShareBase/Index'; 3 import { ShareScene, ShareType, WDShareBase } from 'wdShareBase/Index';
4 import { ShareContentType } from 'wdShareBase/src/main/ets/Constant'; 4 import { ShareContentType } from 'wdShareBase/src/main/ets/Constant';
  5 +import { DeepLinkUtil } from './utils/DeepLinkUtil';
5 6
6 export class WDShare { 7 export class WDShare {
7 8
@@ -17,6 +18,7 @@ export class WDShare { @@ -17,6 +18,7 @@ export class WDShare {
17 title: content.shareInfo.shareTitle, 18 title: content.shareInfo.shareTitle,
18 desc: content.shareInfo.shareSummary, 19 desc: content.shareInfo.shareSummary,
19 link: content.shareInfo.shareUrl, 20 link: content.shareInfo.shareUrl,
  21 + deeplink:DeepLinkUtil.generateDeepLinkWithConent(content),
20 } 22 }
21 }) 23 })
22 } 24 }
@@ -32,6 +34,7 @@ export class WDShare { @@ -32,6 +34,7 @@ export class WDShare {
32 title: program.shareInfo.shareTitle, 34 title: program.shareInfo.shareTitle,
33 desc: program.shareInfo.shareSummary, 35 desc: program.shareInfo.shareSummary,
34 link: program.shareInfo.shareUrl, 36 link: program.shareInfo.shareUrl,
  37 + deeplink:DeepLinkUtil.generateDeepLinkWithProgram(program),
35 } 38 }
36 }) 39 })
37 } 40 }
  1 +import { ContentDetailDTO, ContentDTO } from 'wdBean/Index';
  2 +import { BreakpointSystem } from 'wdKit/Index';
  3 +import { ContentType } from 'wdRouter/Index';
  4 +
  5 +export class DeepLinkUtil {
  6 +
  7 + private static DEEP_LINK_PREFIX = "rmrbapp:rmrb.app/openwith"
  8 +
  9 + static generateDeepLinkWithConent(content: ContentDetailDTO): string {
  10 +
  11 + return DeepLinkUtil.generate(content.newsType, content.newsId +'', content.reLInfo?.relId, content.newsLinkUrl)
  12 + }
  13 +
  14 + static generateDeepLinkWithProgram(content: ContentDTO) {
  15 +
  16 + return DeepLinkUtil.generate(Number(content.objectType), content.objectId +'', content.relId, content.linkUrl)
  17 + }
  18 +
  19 + private static generate(contentType: number, contentId?: string, relId?: string, link?: string): string {
  20 + let deeplink = DeepLinkUtil.DEEP_LINK_PREFIX
  21 +
  22 + let pubParam = `&contentId=${contentId}}&relId=${relId}&skipType=1`
  23 +
  24 + let type: ContentType = Number(contentType)
  25 + switch (type) {
  26 + case ContentType.Video:
  27 + deeplink += "?type=video&subType=vod_video"
  28 + break
  29 + case ContentType.Live:
  30 + deeplink += "?type=live"
  31 + break
  32 + case ContentType.ImageText:
  33 + if (link && link.length) {
  34 + deeplink += "?type=article&subType=h5"
  35 + deeplink += "&url=" + encodeURIComponent(link)
  36 + } else {
  37 + deeplink += "type=article&subType=h5_template_article"
  38 + }
  39 + break
  40 + case ContentType.DynamicImageText:
  41 + deeplink += "?type=dynamic"
  42 + break
  43 + case ContentType.DynamicVideo:
  44 + deeplink += "?type=dynamic"
  45 + break
  46 + case ContentType.Pictures:
  47 + deeplink += "?type=picture"
  48 + break
  49 + case ContentType.Audio:
  50 + deeplink += "?type=audio"
  51 + break
  52 + case ContentType.Ask:
  53 + deeplink += "?type=ask"
  54 + break
  55 + default:
  56 + pubParam = ""
  57 + break;
  58 + }
  59 +
  60 + deeplink += pubParam
  61 + return deeplink
  62 + }
  63 +
  64 +
  65 +}
@@ -32,7 +32,6 @@ struct MultiPictureDetailPage { @@ -32,7 +32,6 @@ struct MultiPictureDetailPage {
32 relType: this.relType 32 relType: this.relType
33 }) 33 })
34 } 34 }
35 - .padding({top: `${this.topSafeHeight}px`,bottom:`${this.bottomSafeHeight}px`})  
36 35
37 } 36 }
38 .backgroundColor(Color.Black) 37 .backgroundColor(Color.Black)
@@ -5,7 +5,7 @@ import { SPHelper } from 'wdKit/Index'; @@ -5,7 +5,7 @@ import { SPHelper } from 'wdKit/Index';
5 import { SpConstants } from 'wdConstant/Index'; 5 import { SpConstants } from 'wdConstant/Index';
6 import { ButtonOptions, promptAction, window } from '@kit.ArkUI'; 6 import { ButtonOptions, promptAction, window } from '@kit.ArkUI';
7 import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index'; 7 import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index';
8 -import { ImageKnifeComponent } from '@ohos/imageknife'; 8 +import { ImageKnifeComponent,ScaleType } from '@ohos/imageknife';
9 9
10 @Entry 10 @Entry
11 @Component 11 @Component
@@ -13,6 +13,8 @@ struct LaunchInterestsHobbiesPage { @@ -13,6 +13,8 @@ struct LaunchInterestsHobbiesPage {
13 @State message: string = 'Hello World' 13 @State message: string = 'Hello World'
14 @State selectCount: number = 0 14 @State selectCount: number = 0
15 @State interestsArray: InterestsList[] = [] 15 @State interestsArray: InterestsList[] = []
  16 + @State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
  17 + @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
16 18
17 aboutToAppear(){ 19 aboutToAppear(){
18 //请求接口,获取兴趣偏好数据 20 //请求接口,获取兴趣偏好数据
@@ -39,6 +41,7 @@ struct LaunchInterestsHobbiesPage { @@ -39,6 +41,7 @@ struct LaunchInterestsHobbiesPage {
39 this.trackingLaunchJumpOver(false) 41 this.trackingLaunchJumpOver(false)
40 }) 42 })
41 } 43 }
  44 + .margin({top:px2vp(this.topSafeHeight)})
42 .width('100%') 45 .width('100%')
43 .justifyContent(FlexAlign.End) 46 .justifyContent(FlexAlign.End)
44 47
@@ -62,7 +65,7 @@ struct LaunchInterestsHobbiesPage { @@ -62,7 +65,7 @@ struct LaunchInterestsHobbiesPage {
62 ForEach(this.interestsArray,(item:InterestsList,index:number)=>{ 65 ForEach(this.interestsArray,(item:InterestsList,index:number)=>{
63 GridItem(){ 66 GridItem(){
64 Stack({alignContent:Alignment.TopStart}){ 67 Stack({alignContent:Alignment.TopStart}){
65 - ImageKnifeComponent({imageKnifeOption:{loadSrc:item.pic}}) 68 + ImageKnifeComponent({imageKnifeOption:{loadSrc:item.pic?item.pic:'',mainScaleType:ScaleType.FIT_XY}})
66 .width('100%') 69 .width('100%')
67 .height('100%') 70 .height('100%')
68 .backgroundColor(Color.White) 71 .backgroundColor(Color.White)
@@ -98,7 +101,7 @@ struct LaunchInterestsHobbiesPage { @@ -98,7 +101,7 @@ struct LaunchInterestsHobbiesPage {
98 Image(item.choose ? $r('app.media.interestsSelected') : $r('app.media.interestsSelectNot')) 101 Image(item.choose ? $r('app.media.interestsSelected') : $r('app.media.interestsSelectNot'))
99 .height('32lpx') 102 .height('32lpx')
100 .width('32lpx') 103 .width('32lpx')
101 - .margin({top:'80lpx',left:'110lpx'}) 104 + .margin({top:'80lpx',left:'120lpx'})
102 105
103 }.justifyContent(FlexAlign.Start) 106 }.justifyContent(FlexAlign.Start)
104 } 107 }
@@ -118,8 +121,7 @@ struct LaunchInterestsHobbiesPage { @@ -118,8 +121,7 @@ struct LaunchInterestsHobbiesPage {
118 }) 121 })
119 } 122 }
120 .width('90%') 123 .width('90%')
121 - // .height('70%')  
122 - .margin({top:'61lpx',bottom:'240lpx'}) 124 + .margin({top:'61lpx',bottom:'300lpx'})
123 .columnsTemplate('1fr 1fr 1fr') 125 .columnsTemplate('1fr 1fr 1fr')
124 .columnsGap('23lpx') 126 .columnsGap('23lpx')
125 .rowsGap('23lpx') 127 .rowsGap('23lpx')
@@ -129,7 +131,7 @@ struct LaunchInterestsHobbiesPage { @@ -129,7 +131,7 @@ struct LaunchInterestsHobbiesPage {
129 .height('100%') 131 .height('100%')
130 } 132 }
131 .width('100%') 133 .width('100%')
132 - .height(`calc(100% - ${108 + 'lpx'})`) 134 + .height(`calc(100% - ${158 + 'lpx'})`)
133 // .backgroundColor(Color.Red) 135 // .backgroundColor(Color.Red)
134 136
135 Stack({alignContent:Alignment.Center}){ 137 Stack({alignContent:Alignment.Center}){
@@ -123,30 +123,16 @@ export struct BottomNavigationComponent { @@ -123,30 +123,16 @@ export struct BottomNavigationComponent {
123 123
124 @Builder 124 @Builder
125 tabBarBuilder(navItem: BottomNavDTO, index: number) { 125 tabBarBuilder(navItem: BottomNavDTO, index: number) {
126 - Stack({ alignContent: Alignment.Bottom }) {  
127 - // Image(this.getBottomIcon(navItem, this.currentNavIndex === index))  
128 - // .height(CommonConstants.FULL_PARENT)  
129 - // .padding({  
130 - // bottom: 15,  
131 - // left: 10,  
132 - // right: 10,  
133 - // top: 2  
134 - // })  
135 - // .aspectRatio(this.ASPECT_RATIO_1_1)  
136 - // .alt(this.getBottomLocalIcon(navItem, this.currentNavIndex === index)) 126 + Column() {
137 ImageKnifeComponent({ imageKnifeOption: this.getBottomImageKnifeOption(navItem, this.currentNavIndex === index) }) 127 ImageKnifeComponent({ imageKnifeOption: this.getBottomImageKnifeOption(navItem, this.currentNavIndex === index) })
138 - .padding({  
139 - bottom: 15,  
140 - left: 10,  
141 - right: 10,  
142 - top: 2  
143 - })  
144 - .width('100%')  
145 - .height('100%') 128 + .padding(1)
  129 + .margin({ top: 2 })
  130 + .width(32)
  131 + .height(32)
146 .enabled(false) 132 .enabled(false)
147 133
148 Text(navItem.name) 134 Text(navItem.name)
149 - .margin({ bottom: $r('app.float.bottom_navigation_margin_bottom') }) 135 + .margin({ top: 2 })
150 .fontWeight(this.currentNavIndex === index ? FontWeight.Bold : FontWeight.Normal) 136 .fontWeight(this.currentNavIndex === index ? FontWeight.Bold : FontWeight.Normal)
151 .textAlign(TextAlign.Center) 137 .textAlign(TextAlign.Center)
152 .fontSize($r('app.float.font_size_10'))// .fontColor(this.currentNavIndex === index ? Color.Red : Color.Gray) 138 .fontSize($r('app.float.font_size_10'))// .fontColor(this.currentNavIndex === index ? Color.Red : Color.Gray)
@@ -45,8 +45,8 @@ export struct MultiPictureDetailPageComponent { @@ -45,8 +45,8 @@ export struct MultiPictureDetailPageComponent {
45 @Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO 45 @Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
46 @Provide windowWidth: number = AppStorage.get<number>('windowWidth') || 0 46 @Provide windowWidth: number = AppStorage.get<number>('windowWidth') || 0
47 @Provide windowHeight: number = AppStorage.get<number>('windowHeight') || 0 47 @Provide windowHeight: number = AppStorage.get<number>('windowHeight') || 0
48 - @Provide bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0  
49 - @Provide topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 48 + @Consume bottomSafeHeight: number
  49 + @Consume topSafeHeight: number
50 @Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01' 50 @Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01'
51 private swiperController: SwiperController = new SwiperController() 51 private swiperController: SwiperController = new SwiperController()
52 private swiperControllerItem: SwiperController = new SwiperController() 52 private swiperControllerItem: SwiperController = new SwiperController()
@@ -119,7 +119,7 @@ export struct MultiPictureDetailPageComponent { @@ -119,7 +119,7 @@ export struct MultiPictureDetailPageComponent {
119 currentIndex: $currentIndex, 119 currentIndex: $currentIndex,
120 showCommentList: $showCommentList, 120 showCommentList: $showCommentList,
121 publishCommentModel: $publishCommentModel, 121 publishCommentModel: $publishCommentModel,
122 - interactData:$interactData 122 + interactData: this.interactData
123 }) 123 })
124 124
125 } 125 }