Merge branch 'main' of http://192.168.1.42/developOne/harmonyPool into main
* 'main' of http://192.168.1.42/developOne/harmonyPool: fix(17811): UI还原问题-【uat】意见反馈-电话和邮箱显示和android不一致,看图 ref |> 直播模块显示自己发的评论数据 ref |> 直播模块新增发布评论接口调用 ref |> 修复因为播放链接为空导致崩溃问题 desc:置顶top 字段添加 del log feat: 18024 搜索结果-时间轴专题样式卡,显示标题的时间轴卡,标题展示不全,见截图 fix:bug[17967] 号主页-页面展示_顶部展示异常 fix:频道订阅缓存问题修复 沉浸式播放--直播和搜索的颜色不正确,底部bar切换到视频,页面状态栏区域,tab标题位置不正确 web相关耗时优化——web初始化提前 fix:bug[18313] 【华为验收】【ux-直板机】【底部导航条适配】点击 我的-关注,进入该页面,该页面底部导航条未沉浸
Showing
33 changed files
with
359 additions
and
110 deletions
| @@ -29,6 +29,14 @@ | @@ -29,6 +29,14 @@ | ||
| 29 | "value": "14fp" | 29 | "value": "14fp" |
| 30 | }, | 30 | }, |
| 31 | { | 31 | { |
| 32 | + "name": "font_size_14_5", | ||
| 33 | + "value": "14.5fp" | ||
| 34 | + }, | ||
| 35 | + { | ||
| 36 | + "name": "font_size_15", | ||
| 37 | + "value": "15fp" | ||
| 38 | + }, | ||
| 39 | + { | ||
| 32 | "name": "font_size_16", | 40 | "name": "font_size_16", |
| 33 | "value": "16fp" | 41 | "value": "16fp" |
| 34 | }, | 42 | }, |
| 1 | +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="24" height="24" viewBox="0 0 24 24"><g><g></g><g style="opacity:0.5;"><g><path d="M20.314453125,11.330568125C20.314453125,6.360008125,16.285053124999997,2.330566406,11.314453125,2.330566406C6.343893125,2.330566406,2.314453125,6.360008125,2.314453125,11.330568125C2.314453125,13.375078125,2.999354125,15.317678125,4.237673125,16.891578125000002C5.933093125,19.046478125,8.518933125,20.330578125,11.314453125,20.330578125C16.285053124999997,20.330578125,20.314453125,16.301178125,20.314453125,11.330568125ZM4.314453125,11.330568125C4.314453125,7.464568125,7.448463125,4.330568125,11.314453125,4.330568125C15.180453125,4.330568125,18.314453125,7.464568125,18.314453125,11.330568125C18.314453125,15.196578125,15.180453125,18.330578125,11.314453125,18.330578125C9.138813125,18.330578125,7.129653125,17.332878125,5.8094931249999995,15.654978125C4.846133125,14.430478125,4.314453125,12.922378125,4.314453125,11.330568125Z" fill-rule="evenodd" fill="#8794A3" fill-opacity="1"/></g><g transform="matrix(0.7071067690849304,0.7071067690849304,-0.7071067690849304,0.7071067690849304,16.41416933434084,-7.627309776376933)" style="opacity:0.800000011920929;"><path d="M17.6140625,16L22.7906525,16C22.9393225,16,23.0360225,16.156463,22.9695325,16.289443L22.1695325,17.88944C22.1356625,17.9572,22.0664025,18,21.9906525,18L17.6140625,18C17.5036056,18,17.4140625,17.91046,17.4140625,17.8L17.4140625,16.2C17.4140625,16.0895431,17.5036056,16,17.6140625,16" fill="#8794A3" fill-opacity="0.800000011920929"/></g></g></g></svg> |
| 1 | +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="24" height="24" viewBox="0 0 24 24"><g><g></g><g style="opacity:0.5;"><g><path d="M20.314453125,11.330568125C20.314453125,6.360008125,16.285053124999997,2.330566406,11.314453125,2.330566406C6.343893125,2.330566406,2.314453125,6.360008125,2.314453125,11.330568125C2.314453125,13.375078125,2.999354125,15.317678125,4.237673125,16.891578125000002C5.933093125,19.046478125,8.518933125,20.330578125,11.314453125,20.330578125C16.285053124999997,20.330578125,20.314453125,16.301178125,20.314453125,11.330568125ZM4.314453125,11.330568125C4.314453125,7.464568125,7.448463125,4.330568125,11.314453125,4.330568125C15.180453125,4.330568125,18.314453125,7.464568125,18.314453125,11.330568125C18.314453125,15.196578125,15.180453125,18.330578125,11.314453125,18.330578125C9.138813125,18.330578125,7.129653125,17.332878125,5.8094931249999995,15.654978125C4.846133125,14.430478125,4.314453125,12.922378125,4.314453125,11.330568125Z" fill-rule="evenodd" fill="#000000" fill-opacity="1"/></g><g transform="matrix(0.7071067690849304,0.7071067690849304,-0.7071067690849304,0.7071067690849304,16.41416933434084,-7.627309776376933)" style="opacity:0.800000011920929;"><path d="M17.6140625,16L22.7906525,16C22.9393225,16,23.0360225,16.156463,22.9695325,16.289443L22.1695325,17.88944C22.1356625,17.9572,22.0664025,18,21.9906525,18L17.6140625,18C17.5036056,18,17.4140625,17.91046,17.4140625,17.8L17.4140625,16.2C17.4140625,16.0895431,17.5036056,16,17.6140625,16" fill="#000000" fill-opacity="0.800000011920929"/></g></g></g></svg> |
| @@ -681,6 +681,15 @@ export class HttpUrlUtils { | @@ -681,6 +681,15 @@ export class HttpUrlUtils { | ||
| 681 | return url | 681 | return url |
| 682 | } | 682 | } |
| 683 | 683 | ||
| 684 | + static getLiveSendBarrageUrl() { | ||
| 685 | + let url = HttpUrlUtils.getHost() + "/api/live-center-message/zh/c/live/message/chat/send" | ||
| 686 | + return url | ||
| 687 | + } | ||
| 688 | + static getLiveTouristSendBarrageUrl() { | ||
| 689 | + let url = HttpUrlUtils.getHost() + "/api/live-center-message/zh/a/live/message/chat/tourist/send" | ||
| 690 | + return url | ||
| 691 | + } | ||
| 692 | + | ||
| 684 | static getAppointmentStatusUrl() { | 693 | static getAppointmentStatusUrl() { |
| 685 | let url = HttpUrlUtils.getHost() + HttpUrlUtils.LIVE_APPOINTMENT_BATCH_PATH | 694 | let url = HttpUrlUtils.getHost() + HttpUrlUtils.LIVE_APPOINTMENT_BATCH_PATH |
| 686 | return url | 695 | return url |
| @@ -103,6 +103,7 @@ export class ContentDTO implements BaseDTO { | @@ -103,6 +103,7 @@ export class ContentDTO implements BaseDTO { | ||
| 103 | liveRoomDataBean : LiveRoomDataBean = {} as LiveRoomDataBean// 批查获取到的直播观看人数 | 103 | liveRoomDataBean : LiveRoomDataBean = {} as LiveRoomDataBean// 批查获取到的直播观看人数 |
| 104 | //本地字段:时间轴专题页节点组件时间;【如果开启模糊则显示时间->左右;0:否,1:是】 | 104 | //本地字段:时间轴专题页节点组件时间;【如果开启模糊则显示时间->左右;0:否,1:是】 |
| 105 | timeBlurred:number = 0 | 105 | timeBlurred:number = 0 |
| 106 | + top:number = 0 | ||
| 106 | 107 | ||
| 107 | static clone(old: ContentDTO): ContentDTO { | 108 | static clone(old: ContentDTO): ContentDTO { |
| 108 | let content = new ContentDTO(); | 109 | let content = new ContentDTO(); |
| @@ -49,10 +49,15 @@ export struct FeedBackActivity { | @@ -49,10 +49,15 @@ export struct FeedBackActivity { | ||
| 49 | Column() { | 49 | Column() { |
| 50 | Text($r('app.string.feedback_opinion_type')) | 50 | Text($r('app.string.feedback_opinion_type')) |
| 51 | .fontColor($r('app.color.color_222222')) | 51 | .fontColor($r('app.color.color_222222')) |
| 52 | - .fontSize($r('app.float.font_size_16')) | ||
| 53 | - .fontWeight(FontWeight.Bold) | 52 | + .fontSize($r('app.float.font_size_14_5')) |
| 53 | + .fontWeight(600) | ||
| 54 | .width('100%') | 54 | .width('100%') |
| 55 | .margin({ left: 24, top: $r('app.float.vp_14') }) | 55 | .margin({ left: 24, top: $r('app.float.vp_14') }) |
| 56 | + Blank() | ||
| 57 | + .height(0.5) | ||
| 58 | + .width('94%') | ||
| 59 | + .margin({ top: $r('app.float.vp_12') }) | ||
| 60 | + .backgroundColor($r('app.color.color_EDEDED')) | ||
| 56 | GridRow({ | 61 | GridRow({ |
| 57 | columns:3, | 62 | columns:3, |
| 58 | }) { | 63 | }) { |
| @@ -89,8 +94,8 @@ export struct FeedBackActivity { | @@ -89,8 +94,8 @@ export struct FeedBackActivity { | ||
| 89 | .backgroundColor($r('app.color.color_F5F5F5')) | 94 | .backgroundColor($r('app.color.color_F5F5F5')) |
| 90 | Text($r('app.string.feedback_opinion_tv')) | 95 | Text($r('app.string.feedback_opinion_tv')) |
| 91 | .fontColor($r('app.color.color_222222')) | 96 | .fontColor($r('app.color.color_222222')) |
| 92 | - .fontSize($r('app.float.font_size_16')) | ||
| 93 | - .fontWeight(FontWeight.Bold) | 97 | + .fontSize($r('app.float.font_size_14_5')) |
| 98 | + .fontWeight(600) | ||
| 94 | .width(CommonConstants.FULL_WIDTH) | 99 | .width(CommonConstants.FULL_WIDTH) |
| 95 | .margin({ left: 24, top: $r('app.float.vp_12') }) | 100 | .margin({ left: 24, top: $r('app.float.vp_12') }) |
| 96 | Stack({ alignContent: Alignment.BottomEnd }) { | 101 | Stack({ alignContent: Alignment.BottomEnd }) { |
| @@ -191,26 +196,46 @@ export struct FeedBackActivity { | @@ -191,26 +196,46 @@ export struct FeedBackActivity { | ||
| 191 | .fontSize($r('app.float.font_size_13_2')) | 196 | .fontSize($r('app.float.font_size_13_2')) |
| 192 | .width('94%') | 197 | .width('94%') |
| 193 | .margin({ top: $r('app.float.margin_24') }) | 198 | .margin({ top: $r('app.float.margin_24') }) |
| 199 | + | ||
| 194 | Row() { | 200 | Row() { |
| 201 | + Blank().width('3%') | ||
| 195 | Text($r('app.string.feedback_mail')) | 202 | Text($r('app.string.feedback_mail')) |
| 203 | + .height(CommonConstants.FULL_HEIGHT) | ||
| 196 | .fontColor($r('app.color.color_222222')) | 204 | .fontColor($r('app.color.color_222222')) |
| 197 | - .fontSize($r('app.float.font_size_14')) | ||
| 198 | - .fontWeight(FontWeight.Bold) | 205 | + .fontSize($r('app.float.font_size_13_2')) |
| 206 | + .fontWeight(600) | ||
| 207 | + .padding({left: $r('app.float.margin_12') }) | ||
| 208 | + .backgroundColor($r('app.color.color_F5F5F5')) | ||
| 209 | + .borderRadius({ | ||
| 210 | + topLeft: 4, | ||
| 211 | + topRight: 0, | ||
| 212 | + bottomLeft: 4, | ||
| 213 | + bottomRight: 0, | ||
| 214 | + }) | ||
| 215 | + | ||
| 199 | TextInput({ placeholder: $r('app.string.feedback_hideemail') }) | 216 | TextInput({ placeholder: $r('app.string.feedback_hideemail') }) |
| 200 | - .width(CommonConstants.FULL_WIDTH) | 217 | + .width(0) |
| 218 | + .layoutWeight(1) | ||
| 201 | .height(CommonConstants.FULL_HEIGHT) | 219 | .height(CommonConstants.FULL_HEIGHT) |
| 202 | - // .margin({left:15}) | 220 | + .fontColor($r('app.color.color_222222')) |
| 221 | + .fontSize($r('app.float.font_size_13_2')) | ||
| 222 | + .placeholderColor($r('app.color.color_CCCCCC')) | ||
| 223 | + .placeholderFont({size:$r('app.float.font_size_13_2')}) | ||
| 203 | .backgroundColor($r('app.color.color_F5F5F5')) | 224 | .backgroundColor($r('app.color.color_F5F5F5')) |
| 225 | + .borderRadius({ | ||
| 226 | + topLeft: 0, | ||
| 227 | + topRight: 4, | ||
| 228 | + bottomLeft: 0, | ||
| 229 | + bottomRight: 4, | ||
| 230 | + }) | ||
| 204 | .onChange((value) => { | 231 | .onChange((value) => { |
| 205 | - // Logger.debug(TAG, "onChange" + value + "/" + this.passwordContent) | ||
| 206 | this.email = value | 232 | this.email = value |
| 207 | }) | 233 | }) |
| 234 | + Blank().width('3%') | ||
| 208 | } | 235 | } |
| 209 | - .height(44) | ||
| 210 | - .width('94%') | ||
| 211 | - .backgroundColor($r('app.color.color_F5F5F5')) | ||
| 212 | - .margin({top: $r('app.float.margin_16') }) | ||
| 213 | - .borderRadius(4) | 236 | + .height(42) |
| 237 | + .width(CommonConstants.FULL_WIDTH) | ||
| 238 | + .margin({top: $r('app.float.margin_16')}) | ||
| 214 | Blank().layoutWeight(1) | 239 | Blank().layoutWeight(1) |
| 215 | } | 240 | } |
| 216 | } | 241 | } |
| @@ -222,8 +247,8 @@ export struct FeedBackActivity { | @@ -222,8 +247,8 @@ export struct FeedBackActivity { | ||
| 222 | Column(){ | 247 | Column(){ |
| 223 | Text($r('app.string.submit')) | 248 | Text($r('app.string.submit')) |
| 224 | .textAlign(TextAlign.Center) | 249 | .textAlign(TextAlign.Center) |
| 225 | - .height(44) | ||
| 226 | - .width('90%') | 250 | + .height(42) |
| 251 | + .width('94%') | ||
| 227 | .fontColor(this.canSubmit ? $r('app.color.color_fff') : $r('app.color.color_FFFFFF_40')) | 252 | .fontColor(this.canSubmit ? $r('app.color.color_fff') : $r('app.color.color_FFFFFF_40')) |
| 228 | .fontSize($r('app.float.font_size_18')) | 253 | .fontSize($r('app.float.font_size_18')) |
| 229 | .backgroundColor(this.canSubmit ? $r('app.color.color_ED2800') : $r('app.color.color_ED2800_99')) | 254 | .backgroundColor(this.canSubmit ? $r('app.color.color_ED2800') : $r('app.color.color_ED2800_99')) |
| @@ -117,9 +117,6 @@ export struct FollowChildComponent{ | @@ -117,9 +117,6 @@ export struct FollowChildComponent{ | ||
| 117 | }.height('202lpx') | 117 | }.height('202lpx') |
| 118 | .justifyContent(FlexAlign.Start) | 118 | .justifyContent(FlexAlign.Start) |
| 119 | 119 | ||
| 120 | - // Text().backgroundColor($r('app.color.color_EDEDED')) | ||
| 121 | - // .width('100%') | ||
| 122 | - // .height('2lpx') | ||
| 123 | Divider() | 120 | Divider() |
| 124 | .width('100%') | 121 | .width('100%') |
| 125 | .height('2lpx') | 122 | .height('2lpx') |
| @@ -236,10 +233,6 @@ export struct FollowChildComponent{ | @@ -236,10 +233,6 @@ export struct FollowChildComponent{ | ||
| 236 | }.height('146lpx') | 233 | }.height('146lpx') |
| 237 | .justifyContent(FlexAlign.Center) | 234 | .justifyContent(FlexAlign.Center) |
| 238 | 235 | ||
| 239 | - // Text().backgroundColor($r('app.color.color_EDEDED')) | ||
| 240 | - // .width('100%') | ||
| 241 | - // .height('2lpx') | ||
| 242 | - | ||
| 243 | Divider() | 236 | Divider() |
| 244 | .width('100%') | 237 | .width('100%') |
| 245 | .height('2lpx') | 238 | .height('2lpx') |
| @@ -95,6 +95,8 @@ export struct FollowFirstTabsComponent{ | @@ -95,6 +95,8 @@ export struct FollowFirstTabsComponent{ | ||
| 95 | TabContent(){ | 95 | TabContent(){ |
| 96 | FollowSecondTabsComponent({data:$data,firstIndex:index}) | 96 | FollowSecondTabsComponent({data:$data,firstIndex:index}) |
| 97 | }.tabBar(this.TabBuilder(index,item)) | 97 | }.tabBar(this.TabBuilder(index,item)) |
| 98 | + .backgroundColor($r('app.color.white')) | ||
| 99 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 98 | }, (item: FollowListItem, index: number) => index.toString()) | 100 | }, (item: FollowListItem, index: number) => index.toString()) |
| 99 | } | 101 | } |
| 100 | .vertical(false) | 102 | .vertical(false) |
| @@ -108,9 +110,11 @@ export struct FollowFirstTabsComponent{ | @@ -108,9 +110,11 @@ export struct FollowFirstTabsComponent{ | ||
| 108 | trackTabFirstClick(this.data[index].directoryName) | 110 | trackTabFirstClick(this.data[index].directoryName) |
| 109 | }) | 111 | }) |
| 110 | .width('100%') | 112 | .width('100%') |
| 113 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 111 | .layoutWeight(1) | 114 | .layoutWeight(1) |
| 112 | } | 115 | } |
| 113 | }.width('100%') | 116 | }.width('100%') |
| 117 | + .height("100%") | ||
| 114 | } | 118 | } |
| 115 | 119 | ||
| 116 | reloadNetWork(){ | 120 | reloadNetWork(){ |
| @@ -91,8 +91,6 @@ export struct FollowListDetailUI { | @@ -91,8 +91,6 @@ export struct FollowListDetailUI { | ||
| 91 | ListItem() { | 91 | ListItem() { |
| 92 | FollowChildComponent({ data: item, type: this.type }) | 92 | FollowChildComponent({ data: item, type: this.type }) |
| 93 | } | 93 | } |
| 94 | - .onClick(() => { | ||
| 95 | - }) | ||
| 96 | }, (item: FollowListDetailItem) => item.creatorId) | 94 | }, (item: FollowListDetailItem) => item.creatorId) |
| 97 | 95 | ||
| 98 | //没有更多数据 显示提示 | 96 | //没有更多数据 显示提示 |
| @@ -102,6 +100,7 @@ export struct FollowListDetailUI { | @@ -102,6 +100,7 @@ export struct FollowListDetailUI { | ||
| 102 | } | 100 | } |
| 103 | } | 101 | } |
| 104 | } | 102 | } |
| 103 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 105 | .edgeEffect(EdgeEffect.None) | 104 | .edgeEffect(EdgeEffect.None) |
| 106 | .cachedCount(5) | 105 | .cachedCount(5) |
| 107 | .padding({ left: '31lpx', right: '31lpx' }) | 106 | .padding({ left: '31lpx', right: '31lpx' }) |
| @@ -118,6 +117,7 @@ export struct FollowListDetailUI { | @@ -118,6 +117,7 @@ export struct FollowListDetailUI { | ||
| 118 | } | 117 | } |
| 119 | } | 118 | } |
| 120 | .width('100%') | 119 | .width('100%') |
| 120 | + .layoutWeight(1) | ||
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | async addFollowStatusObserver() { | 123 | async addFollowStatusObserver() { |
sight_harmony/features/wdComponent/src/main/ets/components/mine/follow/FollowSecondTabsComponent.ets
| @@ -22,15 +22,35 @@ export struct FollowSecondTabsComponent{ | @@ -22,15 +22,35 @@ export struct FollowSecondTabsComponent{ | ||
| 22 | 22 | ||
| 23 | if(this.data != null){ | 23 | if(this.data != null){ |
| 24 | if(this.data[this.firstIndex].children == null || this.data[this.firstIndex].children.length == 0){ | 24 | if(this.data[this.firstIndex].children == null || this.data[this.firstIndex].children.length == 0){ |
| 25 | + Stack({ alignContent: Alignment.Top }){ | ||
| 26 | + Row() | ||
| 27 | + .width("100%") | ||
| 28 | + .height("100%") | ||
| 29 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 30 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 31 | + | ||
| 25 | FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].id,type:1}) | 32 | FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].id,type:1}) |
| 33 | + .height("100%") | ||
| 34 | + .width("100%") | ||
| 35 | + }.width("100%") | ||
| 26 | .layoutWeight(1) | 36 | .layoutWeight(1) |
| 27 | }else{ | 37 | }else{ |
| 38 | + Stack({ alignContent: Alignment.Top }){ | ||
| 39 | + Row() | ||
| 40 | + .width("100%") | ||
| 41 | + .height("100%") | ||
| 42 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 43 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 44 | + | ||
| 28 | this.FollowSecondUI() | 45 | this.FollowSecondUI() |
| 46 | + }.width("100%") | ||
| 47 | + .layoutWeight(1) | ||
| 29 | } | 48 | } |
| 30 | } | 49 | } |
| 31 | } | 50 | } |
| 32 | .width('100%') | 51 | .width('100%') |
| 33 | .layoutWeight(1) | 52 | .layoutWeight(1) |
| 53 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 34 | } | 54 | } |
| 35 | 55 | ||
| 36 | @Builder FollowSecondUI(){ | 56 | @Builder FollowSecondUI(){ |
| @@ -51,6 +71,7 @@ export struct FollowSecondTabsComponent{ | @@ -51,6 +71,7 @@ export struct FollowSecondTabsComponent{ | ||
| 51 | .scrollBar(BarState.Off) | 71 | .scrollBar(BarState.Off) |
| 52 | .height('100%') | 72 | .height('100%') |
| 53 | }.height('100%') | 73 | }.height('100%') |
| 74 | + .backgroundColor($r('app.color.color_F9F9F9')) | ||
| 54 | .alignItems(HorizontalAlign.Center) | 75 | .alignItems(HorizontalAlign.Center) |
| 55 | } | 76 | } |
| 56 | .alignItems(VerticalAlign.Top) | 77 | .alignItems(VerticalAlign.Top) |
| @@ -60,8 +81,7 @@ export struct FollowSecondTabsComponent{ | @@ -60,8 +81,7 @@ export struct FollowSecondTabsComponent{ | ||
| 60 | ForEach(this.data[this.firstIndex].children, (item: FollowSecondListItem, index: number ) => { | 81 | ForEach(this.data[this.firstIndex].children, (item: FollowSecondListItem, index: number ) => { |
| 61 | TabContent(){ | 82 | TabContent(){ |
| 62 | FollowThirdTabsComponent({data:$data,firstIndex:$firstIndex,secondIndex:index}) | 83 | FollowThirdTabsComponent({data:$data,firstIndex:$firstIndex,secondIndex:index}) |
| 63 | - } | ||
| 64 | - .backgroundColor($r('app.color.white')) | 84 | + }.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) |
| 65 | }, (item: FollowListItem, index: number) => index.toString()) | 85 | }, (item: FollowListItem, index: number) => index.toString()) |
| 66 | } | 86 | } |
| 67 | .vertical(true) | 87 | .vertical(true) |
| @@ -73,6 +93,7 @@ export struct FollowSecondTabsComponent{ | @@ -73,6 +93,7 @@ export struct FollowSecondTabsComponent{ | ||
| 73 | .barWidth(0) | 93 | .barWidth(0) |
| 74 | .height('100%') | 94 | .height('100%') |
| 75 | .layoutWeight(1) | 95 | .layoutWeight(1) |
| 96 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 76 | }.width('100%') | 97 | }.width('100%') |
| 77 | } | 98 | } |
| 78 | 99 |
| @@ -104,6 +104,8 @@ export struct FollowThirdTabsComponent{ | @@ -104,6 +104,8 @@ export struct FollowThirdTabsComponent{ | ||
| 104 | this.currentIndex = index | 104 | this.currentIndex = index |
| 105 | }) | 105 | }) |
| 106 | .width('100%') | 106 | .width('100%') |
| 107 | + .layoutWeight(1) | ||
| 108 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 107 | } | 109 | } |
| 108 | } | 110 | } |
| 109 | 111 |
| @@ -23,7 +23,7 @@ struct ChannelSubscriptionLayout { | @@ -23,7 +23,7 @@ struct ChannelSubscriptionLayout { | ||
| 23 | @Link myChannelList: TopNavDTO [] | 23 | @Link myChannelList: TopNavDTO [] |
| 24 | @Link moreChannelList: TopNavDTO [] | 24 | @Link moreChannelList: TopNavDTO [] |
| 25 | @Link localChannelList: TopNavDTO [] | 25 | @Link localChannelList: TopNavDTO [] |
| 26 | - @Link channelIds: number [] | 26 | + @State channelIds: number [] = [] |
| 27 | @State isShow: boolean = false | 27 | @State isShow: boolean = false |
| 28 | @State dragItem: number = -1 | 28 | @State dragItem: number = -1 |
| 29 | private dragRefOffsetX: number = 0 | 29 | private dragRefOffsetX: number = 0 |
| @@ -40,6 +40,9 @@ struct ChannelSubscriptionLayout { | @@ -40,6 +40,9 @@ struct ChannelSubscriptionLayout { | ||
| 40 | 40 | ||
| 41 | aboutToAppear() { | 41 | aboutToAppear() { |
| 42 | this.currentTopNavSelectedItem = this.myChannelList[this.currentTopNavSelectedIndex] | 42 | this.currentTopNavSelectedItem = this.myChannelList[this.currentTopNavSelectedIndex] |
| 43 | + this.myChannelList.forEach(item=>{ | ||
| 44 | + this.channelIds.push(item.channelId) | ||
| 45 | + }) | ||
| 43 | } | 46 | } |
| 44 | 47 | ||
| 45 | //交换我的频道数组中的位置 | 48 | //交换我的频道数组中的位置 |
| @@ -54,7 +57,7 @@ struct ChannelSubscriptionLayout { | @@ -54,7 +57,7 @@ struct ChannelSubscriptionLayout { | ||
| 54 | delChannelItem(index: number){ | 57 | delChannelItem(index: number){ |
| 55 | let item = this.myChannelList.splice(index, 1)[0] | 58 | let item = this.myChannelList.splice(index, 1)[0] |
| 56 | this.channelIds.splice(index, 1) | 59 | this.channelIds.splice(index, 1) |
| 57 | - AppStorage.setOrCreate('channelIds', this.channelIds.join(',')) | 60 | + AppStorage.setOrCreate('channelIds', JSON.stringify(this.channelIds)) |
| 58 | if (item.moreChannel === '1') { | 61 | if (item.moreChannel === '1') { |
| 59 | this.moreChannelList.unshift(item) | 62 | this.moreChannelList.unshift(item) |
| 60 | } | 63 | } |
| @@ -29,7 +29,7 @@ struct FollowListPage { | @@ -29,7 +29,7 @@ struct FollowListPage { | ||
| 29 | //Tab 详情 | 29 | //Tab 详情 |
| 30 | FollowFirstTabsComponent({changeIndex:Number(this.curIndex)}) | 30 | FollowFirstTabsComponent({changeIndex:Number(this.curIndex)}) |
| 31 | } | 31 | } |
| 32 | - .backgroundColor($r('app.color.color_F9F9F9')) | 32 | + .backgroundColor($r('app.color.white')) |
| 33 | .height('100%') | 33 | .height('100%') |
| 34 | .width('100%') | 34 | .width('100%') |
| 35 | } | 35 | } |
| @@ -28,7 +28,7 @@ struct PeopleShipHomePage { | @@ -28,7 +28,7 @@ struct PeopleShipHomePage { | ||
| 28 | // 总滑动空间 | 28 | // 总滑动空间 |
| 29 | scroller: Scroller = new Scroller() | 29 | scroller: Scroller = new Scroller() |
| 30 | // 顶部透明度 | 30 | // 顶部透明度 |
| 31 | - @State topOpacity: number = 0 | 31 | + @Watch('topOpacityChange') @State topOpacity: number = 0 |
| 32 | //发布数量 | 32 | //发布数量 |
| 33 | @State publishCount: number = 0 | 33 | @State publishCount: number = 0 |
| 34 | // 是否关注 | 34 | // 是否关注 |
| @@ -42,6 +42,22 @@ struct PeopleShipHomePage { | @@ -42,6 +42,22 @@ struct PeopleShipHomePage { | ||
| 42 | @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 | 42 | @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 |
| 43 | @State isConnectNetwork : boolean = NetworkUtil.isNetConnected() | 43 | @State isConnectNetwork : boolean = NetworkUtil.isNetConnected() |
| 44 | 44 | ||
| 45 | + onPageShow(): void { | ||
| 46 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff'}) | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + onPageHide(): void { | ||
| 50 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', }) | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + topOpacityChange(){ | ||
| 54 | + if(this.topOpacity > 0.8){ | ||
| 55 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', }) | ||
| 56 | + }else{ | ||
| 57 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff'}) | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | + | ||
| 45 | build() { | 61 | build() { |
| 46 | if(this.isConnectNetwork){ | 62 | if(this.isConnectNetwork){ |
| 47 | Stack({ alignContent: Alignment.TopStart }) { | 63 | Stack({ alignContent: Alignment.TopStart }) { |
| @@ -50,7 +66,8 @@ struct PeopleShipHomePage { | @@ -50,7 +66,8 @@ struct PeopleShipHomePage { | ||
| 50 | Image($r('app.media.home_page_bg')) | 66 | Image($r('app.media.home_page_bg')) |
| 51 | .width('100%') | 67 | .width('100%') |
| 52 | .height('120vp') | 68 | .height('120vp') |
| 53 | - .objectFit(ImageFit.Fill) | 69 | + .objectFit(ImageFit.Auto) |
| 70 | + .objectRepeat(ImageRepeat.NoRepeat) | ||
| 54 | .backgroundColor(Color.White) | 71 | .backgroundColor(Color.White) |
| 55 | .visibility(this.isLoading ? Visibility.None : Visibility.Visible) | 72 | .visibility(this.isLoading ? Visibility.None : Visibility.Visible) |
| 56 | .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) | 73 | .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) |
| @@ -46,8 +46,6 @@ export struct TopNavigationComponentNew { | @@ -46,8 +46,6 @@ export struct TopNavigationComponentNew { | ||
| 46 | // 顶导数据 | 46 | // 顶导数据 |
| 47 | @State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = [] | 47 | @State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = [] |
| 48 | @State indexSettingChannelId: number = AppStorage.get<number>('indexSettingChannelId') || 2002 | 48 | @State indexSettingChannelId: number = AppStorage.get<number>('indexSettingChannelId') || 2002 |
| 49 | - //我的频道id列表 | ||
| 50 | - @State channelIds: number[] = [] | ||
| 51 | //本地缓存频道id列表 | 49 | //本地缓存频道id列表 |
| 52 | @State storageChannelIds: string = AppStorage.get<string>('channelIds') || '' | 50 | @State storageChannelIds: string = AppStorage.get<string>('channelIds') || '' |
| 53 | @State homeChannelList: TopNavDTO[] = [] | 51 | @State homeChannelList: TopNavDTO[] = [] |
| @@ -192,7 +190,6 @@ export struct TopNavigationComponentNew { | @@ -192,7 +190,6 @@ export struct TopNavigationComponentNew { | ||
| 192 | myChannelList: $myChannelList, | 190 | myChannelList: $myChannelList, |
| 193 | moreChannelList: $moreChannelList, | 191 | moreChannelList: $moreChannelList, |
| 194 | localChannelList: $localChannelList, | 192 | localChannelList: $localChannelList, |
| 195 | - channelIds: $channelIds, | ||
| 196 | changeTab: (index) => { | 193 | changeTab: (index) => { |
| 197 | this.changePage(index) | 194 | this.changePage(index) |
| 198 | } | 195 | } |
| @@ -260,7 +257,7 @@ export struct TopNavigationComponentNew { | @@ -260,7 +257,7 @@ export struct TopNavigationComponentNew { | ||
| 260 | .edgeEffect(EdgeEffect.None) | 257 | .edgeEffect(EdgeEffect.None) |
| 261 | .height($r('app.float.top_tab_bar_height_common')) | 258 | .height($r('app.float.top_tab_bar_height_common')) |
| 262 | .backgroundColor(this.barBackgroundColor) | 259 | .backgroundColor(this.barBackgroundColor) |
| 263 | - .margin({top:10}) | 260 | + .margin({ top: 10 }) |
| 264 | .onAreaChange((oldValue: Area, newValue: Area) => { | 261 | .onAreaChange((oldValue: Area, newValue: Area) => { |
| 265 | let width = Number.parseFloat(newValue.width.toString()) | 262 | let width = Number.parseFloat(newValue.width.toString()) |
| 266 | this.tabsWidth = Number.isNaN(width) ? 0 : width | 263 | this.tabsWidth = Number.isNaN(width) ? 0 : width |
| @@ -342,8 +339,6 @@ export struct TopNavigationComponentNew { | @@ -342,8 +339,6 @@ export struct TopNavigationComponentNew { | ||
| 342 | //处理新闻tab顶导频道数据 | 339 | //处理新闻tab顶导频道数据 |
| 343 | topNavListHandle() { | 340 | topNavListHandle() { |
| 344 | let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string | 341 | let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string |
| 345 | - | ||
| 346 | - let _channelIds: number [] = [] | ||
| 347 | let _myChannelList: TopNavDTO [] = [] | 342 | let _myChannelList: TopNavDTO [] = [] |
| 348 | let _storageChannelIds: string [] = [] //list1 | 343 | let _storageChannelIds: string [] = [] //list1 |
| 349 | let defaultMyChannelList: TopNavDTO[] = [] | 344 | let defaultMyChannelList: TopNavDTO[] = [] |
| @@ -379,11 +374,7 @@ export struct TopNavigationComponentNew { | @@ -379,11 +374,7 @@ export struct TopNavigationComponentNew { | ||
| 379 | } | 374 | } |
| 380 | }) | 375 | }) |
| 381 | defaultList.unshift(...defaultMyChannelList) | 376 | defaultList.unshift(...defaultMyChannelList) |
| 382 | - | ||
| 383 | defaultList.forEach((item, index) => { | 377 | defaultList.forEach((item, index) => { |
| 384 | - if (this.storageChannelIds && _storageChannelIds.includes(String(item.channelId))) { | ||
| 385 | - item.myChannel = '1' | ||
| 386 | - } | ||
| 387 | if (item.channelType === 2) { | 378 | if (item.channelType === 2) { |
| 388 | if (cityName.includes(item.name)) { | 379 | if (cityName.includes(item.name)) { |
| 389 | item.myChannel = '1' | 380 | item.myChannel = '1' |
| @@ -399,32 +390,34 @@ export struct TopNavigationComponentNew { | @@ -399,32 +390,34 @@ export struct TopNavigationComponentNew { | ||
| 399 | item.moreChannel = '1' | 390 | item.moreChannel = '1' |
| 400 | } | 391 | } |
| 401 | } | 392 | } |
| 402 | - | 393 | + if (this.storageChannelIds && _storageChannelIds.includes(String(item.channelId))) { |
| 394 | + item.myChannel = '1' | ||
| 395 | + } | ||
| 403 | //频道分类 | 396 | //频道分类 |
| 404 | if (item.name !== '播报') { //暂时隐藏播报 | 397 | if (item.name !== '播报') { //暂时隐藏播报 |
| 405 | - if (item.myChannel === '1' && !this.storageChannelIds) { | 398 | + if (item.myChannel === '1') { |
| 406 | _myChannelList.push(item) | 399 | _myChannelList.push(item) |
| 407 | - _channelIds.push(item.channelId) | ||
| 408 | } | 400 | } |
| 409 | - if (item.moreChannel === '1') { | 401 | + if (item.moreChannel === '1' && item.myChannel !== '1') { |
| 410 | this.moreChannelList.push(item) | 402 | this.moreChannelList.push(item) |
| 411 | } | 403 | } |
| 412 | if (item.localChannel === '1' && item.myChannel !== '1') { | 404 | if (item.localChannel === '1' && item.myChannel !== '1') { |
| 413 | this.localChannelList.push(item) | 405 | this.localChannelList.push(item) |
| 414 | } | 406 | } |
| 415 | } | 407 | } |
| 416 | - | ||
| 417 | }) | 408 | }) |
| 418 | 409 | ||
| 419 | - if(this.storageChannelIds){ | ||
| 420 | - _storageChannelIds.forEach((_item:string)=>{ | ||
| 421 | - let index = defaultList.findIndex(ele => Number(_item) === ele.channelId) | ||
| 422 | - if(index > -1){ | ||
| 423 | - _myChannelList.push(defaultList[index]) | ||
| 424 | - _channelIds.push(defaultList[index].channelId) | ||
| 425 | - } | ||
| 426 | - }) | 410 | + //根据缓存数组排序 |
| 411 | + if (this.storageChannelIds) { | ||
| 412 | + let sortedyChannelList = _myChannelList.sort((item1, item2) => { | ||
| 413 | + let index1 = this.storageChannelIds.indexOf(String(item1.channelId)); | ||
| 414 | + let index2 = this.storageChannelIds.indexOf(String(item2.channelId)); | ||
| 415 | + return index1 - index2; | ||
| 416 | + }); | ||
| 417 | + _myChannelList = sortedyChannelList | ||
| 427 | } | 418 | } |
| 419 | + | ||
| 420 | + | ||
| 428 | if (cityName) { | 421 | if (cityName) { |
| 429 | let index = _myChannelList.findIndex(ele => cityName.includes(ele.name)) | 422 | let index = _myChannelList.findIndex(ele => cityName.includes(ele.name)) |
| 430 | const localChannelitem = _myChannelList.splice(index, 1)[0]; | 423 | const localChannelitem = _myChannelList.splice(index, 1)[0]; |
| @@ -432,7 +425,6 @@ export struct TopNavigationComponentNew { | @@ -432,7 +425,6 @@ export struct TopNavigationComponentNew { | ||
| 432 | _myChannelList.splice(3, 0, localChannelitem); | 425 | _myChannelList.splice(3, 0, localChannelitem); |
| 433 | } | 426 | } |
| 434 | 427 | ||
| 435 | - this.channelIds = _channelIds | ||
| 436 | this.myChannelList = _myChannelList | 428 | this.myChannelList = _myChannelList |
| 437 | 429 | ||
| 438 | //缓存首页频道 | 430 | //缓存首页频道 |
| @@ -620,22 +612,22 @@ export struct TopNavigationComponentNew { | @@ -620,22 +612,22 @@ export struct TopNavigationComponentNew { | ||
| 620 | }) | 612 | }) |
| 621 | } | 613 | } |
| 622 | 614 | ||
| 623 | - clickMorningEveningPaper(){ | 615 | + clickMorningEveningPaper() { |
| 624 | if (NetworkUtil.isNetConnected()) { | 616 | if (NetworkUtil.isNetConnected()) { |
| 625 | - DailyPaperTopicModel.getDailyPaperTopic().then(dailyPaperTopicBean =>{ | 617 | + DailyPaperTopicModel.getDailyPaperTopic().then(dailyPaperTopicBean => { |
| 626 | if (dailyPaperTopicBean && dailyPaperTopicBean.id > 0) { | 618 | if (dailyPaperTopicBean && dailyPaperTopicBean.id > 0) { |
| 627 | SPHelper.default.saveSync('dailyPaperTopicPageId', dailyPaperTopicBean.id); | 619 | SPHelper.default.saveSync('dailyPaperTopicPageId', dailyPaperTopicBean.id); |
| 628 | ProcessUtils.gotoMorningEveningPaper() | 620 | ProcessUtils.gotoMorningEveningPaper() |
| 629 | - TrackingButton.click('morning_evening_news_click',TrackConstants.SummaryType.MorningAndEveningNews,TrackConstants.SummaryType.MorningAndEveningNews) | ||
| 630 | - }else { | 621 | + TrackingButton.click('morning_evening_news_click', TrackConstants.SummaryType.MorningAndEveningNews, |
| 622 | + TrackConstants.SummaryType.MorningAndEveningNews) | ||
| 623 | + } else { | ||
| 631 | ToastUtils.showToast('暂无早晚报信息', 1000) | 624 | ToastUtils.showToast('暂无早晚报信息', 1000) |
| 632 | } | 625 | } |
| 633 | - }).catch((err:string) =>{ | 626 | + }).catch((err: string) => { |
| 634 | ToastUtils.showToast('暂无早晚报信息', 1000) | 627 | ToastUtils.showToast('暂无早晚报信息', 1000) |
| 635 | }) | 628 | }) |
| 636 | } else { | 629 | } else { |
| 637 | ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000) | 630 | ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000) |
| 638 | } | 631 | } |
| 639 | } | 632 | } |
| 640 | - | ||
| 641 | } | 633 | } |
| @@ -276,6 +276,7 @@ export struct PeopleShipHomeArticleListComponent { | @@ -276,6 +276,7 @@ export struct PeopleShipHomeArticleListComponent { | ||
| 276 | let extModel = element.contentExt[0]; | 276 | let extModel = element.contentExt[0]; |
| 277 | contentDTO.openLikes = extModel.openLikes; | 277 | contentDTO.openLikes = extModel.openLikes; |
| 278 | contentDTO.openComment = extModel.openComment; | 278 | contentDTO.openComment = extModel.openComment; |
| 279 | + contentDTO.top = extModel.top //是否置顶 | ||
| 279 | } | 280 | } |
| 280 | // 页面 | 281 | // 页面 |
| 281 | if (contentDTO.appStyle == '2' || contentDTO.appStyle == '13' || contentDTO.appStyle == '20') { | 282 | if (contentDTO.appStyle == '2' || contentDTO.appStyle == '13' || contentDTO.appStyle == '20') { |
| @@ -40,7 +40,9 @@ export struct PeopleShipHomePageTopComponent { | @@ -40,7 +40,9 @@ export struct PeopleShipHomePageTopComponent { | ||
| 40 | Image($r('app.media.home_page_bg')) | 40 | Image($r('app.media.home_page_bg')) |
| 41 | .width('100%') | 41 | .width('100%') |
| 42 | .height('48vp') | 42 | .height('48vp') |
| 43 | - .objectFit(ImageFit.Fill) | 43 | + .objectFit(ImageFit.Auto) |
| 44 | + .objectRepeat(ImageRepeat.NoRepeat) | ||
| 45 | + .objectFit(ImageFit.Auto) | ||
| 44 | .backgroundColor(Color.White) | 46 | .backgroundColor(Color.White) |
| 45 | // 头像和名称 | 47 | // 头像和名称 |
| 46 | Row() { | 48 | Row() { |
| @@ -28,10 +28,10 @@ export struct CustomTitleUI { | @@ -28,10 +28,10 @@ export struct CustomTitleUI { | ||
| 28 | Text(this.titleName) | 28 | Text(this.titleName) |
| 29 | .maxLines(1) | 29 | .maxLines(1) |
| 30 | .id("title") | 30 | .id("title") |
| 31 | - .fontSize('35lpx') | 31 | + .fontSize('30lpx') |
| 32 | .fontWeight(400) | 32 | .fontWeight(400) |
| 33 | .fontColor($r('app.color.color_222222')) | 33 | .fontColor($r('app.color.color_222222')) |
| 34 | - .lineHeight('42lpx') | 34 | + .lineHeight('43lpx') |
| 35 | .alignRules({ | 35 | .alignRules({ |
| 36 | center: {anchor: "__container__", align: VerticalAlign.Center}, | 36 | center: {anchor: "__container__", align: VerticalAlign.Center}, |
| 37 | middle: {anchor: "__container__", align: HorizontalAlign.Center} | 37 | middle: {anchor: "__container__", align: HorizontalAlign.Center} |
| @@ -372,6 +372,7 @@ export struct LiveOperRowListView { | @@ -372,6 +372,7 @@ export struct LiveOperRowListView { | ||
| 372 | this.publishCommentModel.rootCommentId = '-1'; | 372 | this.publishCommentModel.rootCommentId = '-1'; |
| 373 | this.publishCommentModel.parentId = '-1'; | 373 | this.publishCommentModel.parentId = '-1'; |
| 374 | this.publishCommentModel.placeHolderText = "说两句..." | 374 | this.publishCommentModel.placeHolderText = "说两句..." |
| 375 | + this.publishCommentModel.commentContent = "" | ||
| 375 | this.commentInputDialogController?.open(); | 376 | this.commentInputDialogController?.open(); |
| 376 | } | 377 | } |
| 377 | 378 | ||
| @@ -466,14 +467,20 @@ export struct LiveOperRowListView { | @@ -466,14 +467,20 @@ export struct LiveOperRowListView { | ||
| 466 | this.showCommentInput = canComment | 467 | this.showCommentInput = canComment |
| 467 | 468 | ||
| 468 | let mLiveId: string = this.contentDetailData.liveInfo.mlive.mliveId as string | 469 | let mLiveId: string = this.contentDetailData.liveInfo.mlive.mliveId as string |
| 469 | - if (!HttpUtils.isLogin() || mLiveId == undefined) { | 470 | + if (!mLiveId) { |
| 471 | + return | ||
| 472 | + } | ||
| 473 | + if (!HttpUtils.isLogin()) { | ||
| 474 | + this.banComment = false | ||
| 470 | return | 475 | return |
| 471 | } | 476 | } |
| 472 | 477 | ||
| 473 | // 查询是否被禁言 | 478 | // 查询是否被禁言 |
| 474 | PageRepository.fetchLiveBarrageBan(mLiveId).then(res => { | 479 | PageRepository.fetchLiveBarrageBan(mLiveId).then(res => { |
| 480 | + if (res.code == 0) { | ||
| 475 | this.banComment = res.data as boolean | 481 | this.banComment = res.data as boolean |
| 476 | this.showCommentInput = !this.banComment && canComment | 482 | this.showCommentInput = !this.banComment && canComment |
| 483 | + } | ||
| 477 | }) | 484 | }) |
| 478 | } | 485 | } |
| 479 | } | 486 | } |
| @@ -27,32 +27,60 @@ export class SearchShowRed { | @@ -27,32 +27,60 @@ export class SearchShowRed { | ||
| 27 | res.push(content); | 27 | res.push(content); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | - SearchShowRed.formatTitle(html, res, 0, textArr); | 30 | + console.log('SearchShowRed-res', JSON.stringify(res)) |
| 31 | + | ||
| 32 | + SearchShowRed.formatTitle( | ||
| 33 | + html.replaceAll('<em>', '').replaceAll('</em>', ''), | ||
| 34 | + res, | ||
| 35 | + 0, | ||
| 36 | + textArr | ||
| 37 | + ); | ||
| 31 | } | 38 | } |
| 32 | 39 | ||
| 33 | const titleInitRes: titleInitRes = { | 40 | const titleInitRes: titleInitRes = { |
| 34 | titleMarked, | 41 | titleMarked, |
| 35 | textArr | 42 | textArr |
| 36 | } | 43 | } |
| 44 | + console.log('SearchShowRed-titleInitRes', JSON.stringify(titleInitRes)) | ||
| 37 | return titleInitRes | 45 | return titleInitRes |
| 38 | } | 46 | } |
| 39 | 47 | ||
| 40 | private static formatTitle(textStr: string, matchArr: string[], index: number, textArr: textItem[]) { | 48 | private static formatTitle(textStr: string, matchArr: string[], index: number, textArr: textItem[]) { |
| 41 | const item: string = matchArr[index]; | 49 | const item: string = matchArr[index]; |
| 42 | - const arr = textStr.split(item); | ||
| 43 | - arr.forEach((str: string, ind: number) => { | 50 | + if (!item) { |
| 51 | + textArr.push({ | ||
| 52 | + content: textStr, | ||
| 53 | + isRed: false | ||
| 54 | + }) | ||
| 55 | + return; | ||
| 56 | + } | ||
| 57 | + const ind = textStr.indexOf(item); | ||
| 58 | + const len = item.length; | ||
| 44 | if (ind === 0) { | 59 | if (ind === 0) { |
| 45 | textArr.push({ | 60 | textArr.push({ |
| 46 | - content: str.replaceAll('<em>', '').replaceAll('</em>', ''), | 61 | + content: item, |
| 62 | + isRed: true | ||
| 63 | + }) | ||
| 64 | + SearchShowRed.formatTitle(textStr.slice(len), matchArr, index + 1, textArr); | ||
| 65 | + } else if (ind + len === textStr.length) { | ||
| 66 | + textArr.push({ | ||
| 67 | + content: textStr.slice(0, ind), | ||
| 47 | isRed: false | 68 | isRed: false |
| 48 | - } as textItem) | 69 | + }) |
| 49 | textArr.push({ | 70 | textArr.push({ |
| 50 | content: item, | 71 | content: item, |
| 51 | isRed: true | 72 | isRed: true |
| 52 | }) | 73 | }) |
| 53 | - } else if (ind === 1) { | ||
| 54 | - SearchShowRed.formatTitle(str, matchArr, index + 1, textArr) | ||
| 55 | - } | 74 | + } else { |
| 75 | + textArr.push({ | ||
| 76 | + content: textStr.slice(0, ind), | ||
| 77 | + isRed: false | ||
| 56 | }) | 78 | }) |
| 79 | + textArr.push({ | ||
| 80 | + content: item, | ||
| 81 | + isRed: true | ||
| 82 | + }) | ||
| 83 | + SearchShowRed.formatTitle(textStr.slice(ind + len), matchArr, index + 1, textArr); | ||
| 84 | + } | ||
| 57 | } | 85 | } |
| 58 | } | 86 | } |
| @@ -29,6 +29,14 @@ | @@ -29,6 +29,14 @@ | ||
| 29 | "value": "14fp" | 29 | "value": "14fp" |
| 30 | }, | 30 | }, |
| 31 | { | 31 | { |
| 32 | + "name": "font_size_14_5", | ||
| 33 | + "value": "14.5fp" | ||
| 34 | + }, | ||
| 35 | + { | ||
| 36 | + "name": "font_size_15", | ||
| 37 | + "value": "15fp" | ||
| 38 | + }, | ||
| 39 | + { | ||
| 32 | "name": "font_size_16", | 40 | "name": "font_size_16", |
| 33 | "value": "16fp" | 41 | "value": "16fp" |
| 34 | }, | 42 | }, |
| 1 | -import { ContentDetailDTO, LiveRoomDataBean } from 'wdBean/Index'; | 1 | +import { ContentDetailDTO, LiveRoomDataBean, LiveRoomItemBean } from 'wdBean/Index'; |
| 2 | import { LiveViewModel } from '../viewModel/LiveViewModel'; | 2 | import { LiveViewModel } from '../viewModel/LiveViewModel'; |
| 3 | import { TabComponent } from '../widgets/details/TabComponent'; | 3 | import { TabComponent } from '../widgets/details/TabComponent'; |
| 4 | import { TopPlayComponent } from '../widgets/details/video/TopPlayComponet'; | 4 | import { TopPlayComponent } from '../widgets/details/video/TopPlayComponet'; |
| @@ -35,6 +35,10 @@ export struct DetailPlayLivePage { | @@ -35,6 +35,10 @@ export struct DetailPlayLivePage { | ||
| 35 | @Consume contentDetailData: ContentDetailDTO | 35 | @Consume contentDetailData: ContentDetailDTO |
| 36 | @Consume publishCommentModel: publishCommentModel | 36 | @Consume publishCommentModel: publishCommentModel |
| 37 | 37 | ||
| 38 | + // 尽量不要动属性。用来作为输入了评论之后,值传递 | ||
| 39 | + @State lastInputedLiveComment: LiveRoomItemBean = {} as LiveRoomItemBean // 上次输入的直播间消息 | ||
| 40 | + @State lastInputedChatComment: LiveRoomItemBean = {} as LiveRoomItemBean // 上次输入的大家聊消息 | ||
| 41 | + | ||
| 38 | aboutToAppear(): void { | 42 | aboutToAppear(): void { |
| 39 | Logger.info(TAG, `wyj-aboutToAppear`) | 43 | Logger.info(TAG, `wyj-aboutToAppear`) |
| 40 | 44 | ||
| @@ -65,7 +69,10 @@ export struct DetailPlayLivePage { | @@ -65,7 +69,10 @@ export struct DetailPlayLivePage { | ||
| 65 | TopPlayComponent({ playerController: this.playerController }) | 69 | TopPlayComponent({ playerController: this.playerController }) |
| 66 | .height(this.displayDirection == DisplayDirection.VERTICAL ? 211 : '100%') | 70 | .height(this.displayDirection == DisplayDirection.VERTICAL ? 211 : '100%') |
| 67 | 71 | ||
| 68 | - TabComponent({ tabs: this.tabs, changeToTab: this.changeToTab }) | 72 | + TabComponent({ tabs: this.tabs, |
| 73 | + changeToTab: this.changeToTab, | ||
| 74 | + lastInputedLiveComment: this.lastInputedLiveComment, | ||
| 75 | + lastInputedChatComment: this.lastInputedChatComment}) | ||
| 69 | .layoutWeight(1) | 76 | .layoutWeight(1) |
| 70 | .visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) | 77 | .visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) |
| 71 | 78 | ||
| @@ -79,7 +86,16 @@ export struct DetailPlayLivePage { | @@ -79,7 +86,16 @@ export struct DetailPlayLivePage { | ||
| 79 | }, | 86 | }, |
| 80 | onCommentInputed: (content) => { | 87 | onCommentInputed: (content) => { |
| 81 | if (content.comment) { | 88 | if (content.comment) { |
| 82 | - this.liveViewModel.sendComment(content.comment) | 89 | + this.liveViewModel.sendComment(content.comment, this.contentDetailData).then(result => { |
| 90 | + if (!result) { | ||
| 91 | + return | ||
| 92 | + } | ||
| 93 | + if (result.isWall == 1) { | ||
| 94 | + this.lastInputedLiveComment = result | ||
| 95 | + } else { | ||
| 96 | + this.lastInputedChatComment = result | ||
| 97 | + } | ||
| 98 | + }) | ||
| 83 | } | 99 | } |
| 84 | } | 100 | } |
| 85 | }).visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) | 101 | }).visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) |
| 1 | -import { HttpUrlUtils, ResponseDTO } from 'wdNetwork'; | 1 | +import { HttpUrlUtils, HttpUtils, ResponseDTO } from 'wdNetwork'; |
| 2 | import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest'; | 2 | import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest'; |
| 3 | -import { Logger, ToastUtils, EmitterEventId, EmitterUtils } from 'wdKit'; | ||
| 4 | -import { ContentDetailDTO, LiveDetailsBean, LiveRoomBean, LiveRoomDataBean, ReserveItemBean, ValueType } from 'wdBean/Index'; | 3 | +import { Logger, ToastUtils, EmitterEventId, EmitterUtils, SPHelper } from 'wdKit'; |
| 4 | +import { ContentDetailDTO, LiveDetailsBean, LiveRoomBean, LiveRoomDataBean, | ||
| 5 | + LiveRoomItemBean, | ||
| 6 | + ReserveItemBean, ValueType } from 'wdBean/Index'; | ||
| 5 | import { ContentDetailRequest } from 'wdDetailPlayApi/Index'; | 7 | import { ContentDetailRequest } from 'wdDetailPlayApi/Index'; |
| 8 | +import { SpConstants } from 'wdConstant/Index'; | ||
| 6 | 9 | ||
| 7 | const TAG = 'LiveModel' | 10 | const TAG = 'LiveModel' |
| 8 | 11 | ||
| @@ -266,5 +269,61 @@ export class LiveModel { | @@ -266,5 +269,61 @@ export class LiveModel { | ||
| 266 | }) | 269 | }) |
| 267 | }) | 270 | }) |
| 268 | } | 271 | } |
| 272 | + | ||
| 273 | + liveSendComment(comment: string, content: ContentDetailDTO) { | ||
| 274 | + let tourist: boolean = !HttpUtils.isLogin() | ||
| 275 | + let roomId: string = content.liveInfo.mlive.roomId as string | ||
| 276 | + let liveId: string = content.newsId + '' | ||
| 277 | + let mLiveId: string = content.liveInfo.mlive.mliveId as string | ||
| 278 | + | ||
| 279 | + let commentItem: LiveRoomItemBean = {} as LiveRoomItemBean | ||
| 280 | + commentItem.text = comment | ||
| 281 | + commentItem.isWall = 0 | ||
| 282 | + commentItem.dataType = "ZH_TEXT_MSG" | ||
| 283 | + | ||
| 284 | + let params: Record<string, string | number> = {}; | ||
| 285 | + params["liveId"] = liveId | ||
| 286 | + params["mliveId"] = mLiveId | ||
| 287 | + params["roomId"] = roomId | ||
| 288 | + params["title"] = content.newsTitle | ||
| 289 | + params["text"] = comment | ||
| 290 | + | ||
| 291 | + if (tourist) { | ||
| 292 | + params["deviceId"] = HttpUtils.getDeviceId() | ||
| 293 | + params["senderUserName"] = SPHelper.default.getSync(SpConstants.TOURIST_NICK_NAME, "") as string | ||
| 294 | + } else { | ||
| 295 | + params["senderUserId"] = SPHelper.default.getSync(SpConstants.USER_ID, "") as string | ||
| 296 | + params["senderAvatarUrl"] = SPHelper.default.getSync(SpConstants.USER_HEAD_PHOTO_URL, "") as string | ||
| 297 | + params["senderUserName"] = SPHelper.default.getSync(SpConstants.USER_NAME, "") as string | ||
| 298 | + commentItem.senderUserAvatarUrl = params["senderAvatarUrl"] | ||
| 299 | + } | ||
| 300 | + commentItem.senderUserName = params["senderUserName"] | ||
| 301 | + params["customizeExpression"] = 0 | ||
| 302 | + params["role"] = tourist ? "tourist" : "audience" | ||
| 303 | + commentItem.role = tourist ? "tourist" : "audience" | ||
| 304 | + | ||
| 305 | + let url = tourist ? HttpUrlUtils.getLiveTouristSendBarrageUrl() : HttpUrlUtils.getLiveSendBarrageUrl() | ||
| 306 | + return new Promise<SendLiveCommentRes>((success, fail) => { | ||
| 307 | + HttpRequest.post<ResponseDTO<SendLiveCommentInterfaceRes>>(url, params).then((data) => { | ||
| 308 | + let res:SendLiveCommentRes = { | ||
| 309 | + preDisplay: data.data?.preDisplay || false, | ||
| 310 | + tipMessage: data.message, | ||
| 311 | + commentItem: commentItem | ||
| 312 | + } | ||
| 313 | + success(res) | ||
| 314 | + }, (error: Error) => { | ||
| 315 | + fail(error.message) | ||
| 316 | + Logger.debug(TAG + ":error ", error.toString()) | ||
| 317 | + }) | ||
| 318 | + }) | ||
| 319 | + } | ||
| 269 | } | 320 | } |
| 270 | 321 | ||
| 322 | +interface SendLiveCommentInterfaceRes { | ||
| 323 | + preDisplay: boolean | ||
| 324 | +} | ||
| 325 | +export interface SendLiveCommentRes { | ||
| 326 | + preDisplay: boolean | ||
| 327 | + tipMessage: string | ||
| 328 | + commentItem: LiveRoomItemBean | ||
| 329 | +} |
| 1 | import { ContentDetailDTO, | 1 | import { ContentDetailDTO, |
| 2 | GetPullAddressBean, | 2 | GetPullAddressBean, |
| 3 | - LiveDetailsBean, LiveRoomBean, LiveRoomDataBean, ValueType } from 'wdBean/Index' | 3 | + LiveDetailsBean, LiveRoomBean, LiveRoomDataBean, |
| 4 | + LiveRoomItemBean, | ||
| 5 | + ValueType } from 'wdBean/Index' | ||
| 4 | import { ContentDetailRequest } from 'wdDetailPlayApi/Index' | 6 | import { ContentDetailRequest } from 'wdDetailPlayApi/Index' |
| 5 | - | 7 | +import { Logger } from 'wdKit/Index' |
| 8 | +import { ToastUtils } from 'wdKit/src/main/ets/utils/ToastUtils' | ||
| 6 | import { ResponseDTO } from 'wdNetwork/Index' | 9 | import { ResponseDTO } from 'wdNetwork/Index' |
| 7 | import { LiveModel } from './LiveModel' | 10 | import { LiveModel } from './LiveModel' |
| 8 | 11 | ||
| @@ -136,7 +139,40 @@ export class LiveViewModel { | @@ -136,7 +139,40 @@ export class LiveViewModel { | ||
| 136 | }) | 139 | }) |
| 137 | } | 140 | } |
| 138 | 141 | ||
| 139 | - sendComment(comment: string) { | 142 | + // 发送评论 |
| 143 | + sendComment(comment: string, content: ContentDetailDTO) { | ||
| 144 | + return new Promise<LiveRoomItemBean | undefined>((success, fail) => { | ||
| 145 | + this.liveModel.liveSendComment(comment, content).then((data) => { | ||
| 146 | + Logger.debug(TAG, "发送评论结果: " + JSON.stringify(data)) | ||
| 147 | + if (data.preDisplay) { | ||
| 148 | + success(data.commentItem) | ||
| 149 | + } else { | ||
| 150 | + success(undefined) | ||
| 151 | + } | ||
| 152 | + ToastUtils.showToast(data.tipMessage, 3000) | ||
| 153 | + }).catch((message: string) => { | ||
| 154 | + fail(message) | ||
| 155 | + }) | ||
| 156 | + }) | ||
| 157 | + } | ||
| 140 | 158 | ||
| 159 | + deepCopyLiveRoomItem(item: LiveRoomItemBean) { | ||
| 160 | + return item | ||
| 161 | + let retItem: LiveRoomItemBean = {} as LiveRoomItemBean | ||
| 162 | + retItem.text = item.text | ||
| 163 | + retItem.senderUserAvatarUrl = item.senderUserAvatarUrl | ||
| 164 | + retItem.senderUserName = item.senderUserName | ||
| 165 | + retItem.pictureUrls = item.pictureUrls | ||
| 166 | + retItem.time = item.time | ||
| 167 | + retItem.isWall = item.isWall | ||
| 168 | + retItem.isTop = item.isTop | ||
| 169 | + retItem.dataType = item.dataType | ||
| 170 | + retItem.transcodeImageUrl = item.transcodeImageUrl | ||
| 171 | + retItem.videoUrl = item.videoUrl | ||
| 172 | + retItem.pictureResolutions = item.pictureResolutions | ||
| 173 | + retItem.duration = item.duration | ||
| 174 | + retItem.audioUrl = item.audioUrl | ||
| 175 | + retItem.fullColumnImgUrlDto = item.fullColumnImgUrlDto | ||
| 176 | + return retItem | ||
| 141 | } | 177 | } |
| 142 | } | 178 | } |
| @@ -23,6 +23,7 @@ export struct TabChatComponent { | @@ -23,6 +23,7 @@ export struct TabChatComponent { | ||
| 23 | @State liveChatList: Array<LiveRoomItemBean> = [] | 23 | @State liveChatList: Array<LiveRoomItemBean> = [] |
| 24 | @Consume contentDetailData: ContentDetailDTO | 24 | @Consume contentDetailData: ContentDetailDTO |
| 25 | @Consume publishCommentModel: publishCommentModel | 25 | @Consume publishCommentModel: publishCommentModel |
| 26 | + @Prop @Watch("lastInputedCommentChanged") lastInputedComment: LiveRoomItemBean | ||
| 26 | 27 | ||
| 27 | aboutToAppear(): void { | 28 | aboutToAppear(): void { |
| 28 | this.getLiveChatList() | 29 | this.getLiveChatList() |
| @@ -46,6 +47,12 @@ export struct TabChatComponent { | @@ -46,6 +47,12 @@ export struct TabChatComponent { | ||
| 46 | }) | 47 | }) |
| 47 | } | 48 | } |
| 48 | 49 | ||
| 50 | + lastInputedCommentChanged(info: string) { | ||
| 51 | + Logger.debug(TAG, "2显示评论》》》: " + JSON.stringify(this.lastInputedComment)) | ||
| 52 | + this.liveChatList.push(this.liveViewModel.deepCopyLiveRoomItem(this.lastInputedComment)) | ||
| 53 | + this.pageModel.viewType = ViewType.LOADED; | ||
| 54 | + } | ||
| 55 | + | ||
| 49 | build() { | 56 | build() { |
| 50 | Stack() { | 57 | Stack() { |
| 51 | if (this.pageModel.viewType == ViewType.LOADING) { | 58 | if (this.pageModel.viewType == ViewType.LOADING) { |
| 1 | import { LiveRoomItemBean, Action, PhotoListBean, Params } from 'wdBean/Index' | 1 | import { LiveRoomItemBean, Action, PhotoListBean, Params } from 'wdBean/Index' |
| 2 | -import { StringUtils } from 'wdKit/Index' | 2 | +import { Logger, StringUtils } from 'wdKit/Index' |
| 3 | // import { Action, LiveRoomItemBean, Params, PhotoListBean } from 'wdBean/Index' | 3 | // import { Action, LiveRoomItemBean, Params, PhotoListBean } from 'wdBean/Index' |
| 4 | import { WDRouterRule } from 'wdRouter' | 4 | import { WDRouterRule } from 'wdRouter' |
| 5 | import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO' | 5 | import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO' |
| 6 | 6 | ||
| 7 | +const TAG = "TabChatItemComponent" | ||
| 8 | + | ||
| 7 | @Component | 9 | @Component |
| 8 | export struct TabChatItemComponent { | 10 | export struct TabChatItemComponent { |
| 9 | item: LiveRoomItemBean = {} as LiveRoomItemBean | 11 | item: LiveRoomItemBean = {} as LiveRoomItemBean |
| 10 | 12 | ||
| 11 | aboutToAppear(): void { | 13 | aboutToAppear(): void { |
| 14 | + Logger.debug(TAG, "评论内容: " + this.item.text + " 评论sender: " + this.item.senderUserName) | ||
| 12 | } | 15 | } |
| 13 | 16 | ||
| 14 | build() { | 17 | build() { |
| 1 | +import { LiveRoomItemBean } from 'wdBean/Index' | ||
| 1 | import { TabChatComponent } from './TabChatComponent' | 2 | import { TabChatComponent } from './TabChatComponent' |
| 2 | import { TabInfoComponent } from './TabInfoComponent' | 3 | import { TabInfoComponent } from './TabInfoComponent' |
| 3 | import { TabLiveComponent } from './TabLiveComponent' | 4 | import { TabLiveComponent } from './TabLiveComponent' |
| @@ -13,6 +14,9 @@ export struct TabComponent { | @@ -13,6 +14,9 @@ export struct TabComponent { | ||
| 13 | @State currentIndex: number = 0 | 14 | @State currentIndex: number = 0 |
| 14 | private controller: TabsController = new TabsController() | 15 | private controller: TabsController = new TabsController() |
| 15 | @Prop tabs: string[] = [] | 16 | @Prop tabs: string[] = [] |
| 17 | + @Prop lastInputedLiveComment: LiveRoomItemBean // 上次输入的直播间消息 | ||
| 18 | + @Prop lastInputedChatComment: LiveRoomItemBean // 上次输入的大家聊消息 | ||
| 19 | + | ||
| 16 | aboutToAppear(): void { | 20 | aboutToAppear(): void { |
| 17 | 21 | ||
| 18 | } | 22 | } |
| @@ -34,9 +38,9 @@ export struct TabComponent { | @@ -34,9 +38,9 @@ export struct TabComponent { | ||
| 34 | if ('简介' === item) { | 38 | if ('简介' === item) { |
| 35 | TabInfoComponent() | 39 | TabInfoComponent() |
| 36 | } else if ('直播间' === item) { | 40 | } else if ('直播间' === item) { |
| 37 | - TabLiveComponent() | 41 | + TabLiveComponent({lastInputedComment: this.lastInputedLiveComment}) |
| 38 | } else if ('大家聊' === item) { | 42 | } else if ('大家聊' === item) { |
| 39 | - TabChatComponent() | 43 | + TabChatComponent({lastInputedComment: this.lastInputedChatComment}) |
| 40 | } | 44 | } |
| 41 | } | 45 | } |
| 42 | .backgroundColor('#F5F5F5') | 46 | .backgroundColor('#F5F5F5') |
| @@ -23,11 +23,18 @@ export struct TabLiveComponent { | @@ -23,11 +23,18 @@ export struct TabLiveComponent { | ||
| 23 | @Consume @Watch('updateData') contentDetailData: ContentDetailDTO | 23 | @Consume @Watch('updateData') contentDetailData: ContentDetailDTO |
| 24 | @State private pageModel: PageModel = new PageModel() | 24 | @State private pageModel: PageModel = new PageModel() |
| 25 | private scroller: Scroller = new Scroller() | 25 | private scroller: Scroller = new Scroller() |
| 26 | + @Prop @Watch("lastInputedCommentChanged") lastInputedComment: LiveRoomItemBean | ||
| 26 | 27 | ||
| 27 | aboutToAppear(): void { | 28 | aboutToAppear(): void { |
| 28 | this.getLiveList() | 29 | this.getLiveList() |
| 29 | } | 30 | } |
| 30 | 31 | ||
| 32 | + lastInputedCommentChanged(info: string) { | ||
| 33 | + Logger.debug(TAG, "1显示评论》》》: " + JSON.stringify(this.lastInputedComment)) | ||
| 34 | + this.liveList.push(this.liveViewModel.deepCopyLiveRoomItem(this.lastInputedComment)) | ||
| 35 | + this.pageModel.viewType = ViewType.LOADED; | ||
| 36 | + } | ||
| 37 | + | ||
| 31 | build() { | 38 | build() { |
| 32 | Stack() { | 39 | Stack() { |
| 33 | if (this.pageModel.viewType == ViewType.LOADING) { | 40 | if (this.pageModel.viewType == ViewType.LOADING) { |
| @@ -10,7 +10,7 @@ import { LiveViewModel } from '../../viewModel/LiveViewModel' | @@ -10,7 +10,7 @@ import { LiveViewModel } from '../../viewModel/LiveViewModel' | ||
| 10 | import { ChartItemCompereComponent } from './ChartItemCompereComponent' | 10 | import { ChartItemCompereComponent } from './ChartItemCompereComponent' |
| 11 | import { ChatItemComponent } from './ChartItemComponent' | 11 | import { ChatItemComponent } from './ChartItemComponent' |
| 12 | import { router } from '@kit.ArkUI' | 12 | import { router } from '@kit.ArkUI' |
| 13 | -import { EmitterEventId, EmitterUtils, SPHelper, WindowModel } from 'wdKit/Index' | 13 | +import { EmitterEventId, EmitterUtils, Logger, SPHelper, WindowModel } from 'wdKit/Index' |
| 14 | 14 | ||
| 15 | const TAG = "PlayerCommentComponent" | 15 | const TAG = "PlayerCommentComponent" |
| 16 | 16 | ||
| @@ -28,22 +28,6 @@ export struct PlayerCommentComponent { | @@ -28,22 +28,6 @@ export struct PlayerCommentComponent { | ||
| 28 | async aboutToAppear(): Promise<void> { | 28 | async aboutToAppear(): Promise<void> { |
| 29 | 29 | ||
| 30 | this.getLiveChatList() | 30 | this.getLiveChatList() |
| 31 | - //注册通知 | ||
| 32 | - EmitterUtils.receiveEvent(EmitterEventId.COMMENT_PUBLISH, async (targetId?: string) => { | ||
| 33 | - if (targetId) { | ||
| 34 | - if (targetId == this.publishCommentModel.targetId) { | ||
| 35 | - const info = { | ||
| 36 | - senderUserName: this.publishCommentModel.lastCommentModel.fromUserName, | ||
| 37 | - text: this.publishCommentModel.lastCommentModel.commentContent, | ||
| 38 | - } as LiveRoomItemBean | ||
| 39 | - | ||
| 40 | - this.liveChatList.push(info) | ||
| 41 | - this.scroller.scrollEdge(Edge.Bottom) | ||
| 42 | - console.log(TAG, '发布评论:', JSON.stringify(this.publishCommentModel.lastCommentModel)) | ||
| 43 | - } | ||
| 44 | - } | ||
| 45 | - }) | ||
| 46 | - | ||
| 47 | } | 31 | } |
| 48 | 32 | ||
| 49 | generateRandomString() { | 33 | generateRandomString() { |
| @@ -122,7 +106,14 @@ export struct PlayerCommentComponent { | @@ -122,7 +106,14 @@ export struct PlayerCommentComponent { | ||
| 122 | }, | 106 | }, |
| 123 | onCommentInputed: (content) => { | 107 | onCommentInputed: (content) => { |
| 124 | if (content.comment) { | 108 | if (content.comment) { |
| 125 | - this.liveViewModel.sendComment(content.comment) | 109 | + this.liveViewModel.sendComment(content.comment, this.contentDetailData).then(result => { |
| 110 | + if (!result) { | ||
| 111 | + return | ||
| 112 | + } | ||
| 113 | + Logger.debug(TAG, "3显示评论》》》: " + JSON.stringify(result)) | ||
| 114 | + this.liveChatList.push(result) | ||
| 115 | + this.scroller.scrollEdge(Edge.Bottom) | ||
| 116 | + }) | ||
| 126 | } | 117 | } |
| 127 | }, | 118 | }, |
| 128 | onBack: () => { | 119 | onBack: () => { |
| @@ -267,6 +267,7 @@ export class WDAliPlayerController { | @@ -267,6 +267,7 @@ export class WDAliPlayerController { | ||
| 267 | 267 | ||
| 268 | async firstPlay(url: string) { | 268 | async firstPlay(url: string) { |
| 269 | if (StringUtils.isEmpty(url)) { | 269 | if (StringUtils.isEmpty(url)) { |
| 270 | + Logger.error(TAG, "播放链接为空") | ||
| 270 | return | 271 | return |
| 271 | } | 272 | } |
| 272 | 273 | ||
| @@ -292,7 +293,7 @@ export class WDAliPlayerController { | @@ -292,7 +293,7 @@ export class WDAliPlayerController { | ||
| 292 | 293 | ||
| 293 | this.avPlayer?.setAutoPlay(false) | 294 | this.avPlayer?.setAutoPlay(false) |
| 294 | 295 | ||
| 295 | - Logger.debug(TAG, "开始播放:"+ this.url) | 296 | + Logger.debug(TAG, "开始播放: " + this.url) |
| 296 | this.setAliPlayerURL(this.url); | 297 | this.setAliPlayerURL(this.url); |
| 297 | 298 | ||
| 298 | Logger.info(TAG, "设置SurfaceId: " + this.surfaceId) | 299 | Logger.info(TAG, "设置SurfaceId: " + this.surfaceId) |
| @@ -56,9 +56,9 @@ export struct VideoChannelPage { | @@ -56,9 +56,9 @@ export struct VideoChannelPage { | ||
| 56 | */ | 56 | */ |
| 57 | getTopNavFontColor(item: TopNavDTO, index: number): Color | string { | 57 | getTopNavFontColor(item: TopNavDTO, index: number): Color | string { |
| 58 | if (item.name === '视频' && this.currentBottomNavInfo.name === '视频') { | 58 | if (item.name === '视频' && this.currentBottomNavInfo.name === '视频') { |
| 59 | - return this.currentTopNavSelectedIndex === index ? Color.White : '#e5e0e0' | 59 | + return this.currentTopNavSelectedIndex === index ? Color.White : '#949494' |
| 60 | } else { | 60 | } else { |
| 61 | - return this.currentTopNavSelectedIndex === index ? Color.Black : "#999999" | 61 | + return this.currentTopNavSelectedIndex === index ? Color.Black : "#B2B2B2" |
| 62 | } | 62 | } |
| 63 | } | 63 | } |
| 64 | 64 | ||
| @@ -74,7 +74,7 @@ export struct VideoChannelPage { | @@ -74,7 +74,7 @@ export struct VideoChannelPage { | ||
| 74 | 74 | ||
| 75 | @Builder | 75 | @Builder |
| 76 | topNavView() { | 76 | topNavView() { |
| 77 | - Stack({ alignContent: Alignment.TopEnd }) { | 77 | + Stack({ alignContent: Alignment.End }) { |
| 78 | Row() { | 78 | Row() { |
| 79 | ForEach(this.topNavList, (item: TopNavDTO, index: number) => { | 79 | ForEach(this.topNavList, (item: TopNavDTO, index: number) => { |
| 80 | Column() { | 80 | Column() { |
| @@ -117,7 +117,7 @@ export struct VideoChannelPage { | @@ -117,7 +117,7 @@ export struct VideoChannelPage { | ||
| 117 | 117 | ||
| 118 | // 搜索按钮 | 118 | // 搜索按钮 |
| 119 | Row() { | 119 | Row() { |
| 120 | - Image($r('app.media.icon_search')) | 120 | + Image($r(this.currentTopNavSelectedIndex === 0 ? 'app.media.icon_search_gray_svg' :'app.media.icon_search_svg')) |
| 121 | .width('24vp') | 121 | .width('24vp') |
| 122 | .height('24vp') | 122 | .height('24vp') |
| 123 | } | 123 | } |
| @@ -18,6 +18,7 @@ import { JSON } from '@kit.ArkTS' | @@ -18,6 +18,7 @@ import { JSON } from '@kit.ArkTS' | ||
| 18 | import app from '@system.app' | 18 | import app from '@system.app' |
| 19 | import { GetuiPush, HWLocationUtils } from 'wdHwAbility/Index' | 19 | import { GetuiPush, HWLocationUtils } from 'wdHwAbility/Index' |
| 20 | import { ImageKnife, ImageKnifeGlobal } from '@ohos/imageknife' | 20 | import { ImageKnife, ImageKnifeGlobal } from '@ohos/imageknife' |
| 21 | +import { webview } from '@kit.ArkWeb' | ||
| 21 | 22 | ||
| 22 | const TAG = "[StartupManager]" | 23 | const TAG = "[StartupManager]" |
| 23 | 24 | ||
| @@ -120,7 +121,8 @@ export class StartupManager { | @@ -120,7 +121,8 @@ export class StartupManager { | ||
| 120 | GetuiPush.sharedInstance().onReachMainPage() | 121 | GetuiPush.sharedInstance().onReachMainPage() |
| 121 | 122 | ||
| 122 | //TODO: | 123 | //TODO: |
| 123 | - | 124 | + // 提前初始化webview |
| 125 | + webview.WebviewController.initializeWebEngine() | ||
| 124 | resolve() | 126 | resolve() |
| 125 | }) | 127 | }) |
| 126 | } | 128 | } |
-
Please register or login to post a comment