陈剑华

Merge remote-tracking branch 'origin/main'

@@ -37,7 +37,7 @@ export struct ENewspaperItemComponent { @@ -37,7 +37,7 @@ export struct ENewspaperItemComponent {
37 .onComplete(() => { 37 .onComplete(() => {
38 this.isShowSkeleton = false 38 this.isShowSkeleton = false
39 }) 39 })
40 - .objectFit(ImageFit.Contain) 40 + .objectFit(ImageFit.Fill)
41 .visibility(this.isShowSkeleton ? Visibility.None : Visibility.Visible) 41 .visibility(this.isShowSkeleton ? Visibility.None : Visibility.Visible)
42 42
43 Canvas(this.context) 43 Canvas(this.context)
@@ -224,7 +224,7 @@ export struct MorningEveningPaperComponent { @@ -224,7 +224,7 @@ export struct MorningEveningPaperComponent {
224 if (imageSource) { 224 if (imageSource) {
225 const pixelMap: image.PixelMap = await imageNet2PixelMap(imageSource); 225 const pixelMap: image.PixelMap = await imageNet2PixelMap(imageSource);
226 effectKit.createColorPicker(pixelMap, (err, colorPicker) => { 226 effectKit.createColorPicker(pixelMap, (err, colorPicker) => {
227 - let color = colorPicker.getMainColorSync(); 227 + let color = colorPicker.getLargestProportionColor();
228 Logger.debug(TAG, "compInfoBean compStyle = " + color) 228 Logger.debug(TAG, "compInfoBean compStyle = " + color)
229 // color = ColorUtils.getMorningEveningPaperRgb({red:color.red,green:color.green,blue:color.blue,alpha:color.alpha}) 229 // color = ColorUtils.getMorningEveningPaperRgb({red:color.red,green:color.green,blue:color.blue,alpha:color.alpha})
230 // 将取色器选取的color示例转换为十六进制颜色代码 230 // 将取色器选取的color示例转换为十六进制颜色代码
@@ -273,6 +273,7 @@ export struct MorningEveningPaperComponent { @@ -273,6 +273,7 @@ export struct MorningEveningPaperComponent {
273 } 273 }
274 } 274 }
275 // .height(`calc(100% - ${this.bottomSafeHeight + this.topSafeHeight + 'vp'})`) 275 // .height(`calc(100% - ${this.bottomSafeHeight + this.topSafeHeight + 'vp'})`)
  276 + .edgeEffect(EdgeEffect.None) // 必须设置列表为滑动到边缘无效果
276 .scrollBar(BarState.Off) 277 .scrollBar(BarState.Off)
277 .onWillScroll(scrollOffset =>{ 278 .onWillScroll(scrollOffset =>{
278 this.scrollOffset = this.scrollOffset + scrollOffset as number 279 this.scrollOffset = this.scrollOffset + scrollOffset as number
@@ -4,6 +4,7 @@ import { DateTimeUtils, StringUtils, ToastUtils } from 'wdKit/Index' @@ -4,6 +4,7 @@ import { DateTimeUtils, StringUtils, ToastUtils } from 'wdKit/Index'
4 import { LiveViewModel } from '../../viewModel/LiveViewModel' 4 import { LiveViewModel } from '../../viewModel/LiveViewModel'
5 import { HttpUtils } from 'wdNetwork/Index' 5 import { HttpUtils } from 'wdNetwork/Index'
6 import { WDRouterPage, WDRouterRule } from 'wdRouter/Index' 6 import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
  7 +import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index'
7 8
8 @Component 9 @Component
9 export struct LiveCountdownComponent { 10 export struct LiveCountdownComponent {
@@ -19,6 +20,7 @@ export struct LiveCountdownComponent { @@ -19,6 +20,7 @@ export struct LiveCountdownComponent {
19 //是否预约过直播 20 //是否预约过直播
20 @State isAppointmentLive: boolean = false 21 @State isAppointmentLive: boolean = false
21 liveViewModel: LiveViewModel = new LiveViewModel() 22 liveViewModel: LiveViewModel = new LiveViewModel()
  23 + pageParam: ParamType = {}
22 24
23 aboutToAppear(): void { 25 aboutToAppear(): void {
24 //注册字体 26 //注册字体
@@ -30,6 +32,15 @@ export struct LiveCountdownComponent { @@ -30,6 +32,15 @@ export struct LiveCountdownComponent {
30 this.textTimerController.start() 32 this.textTimerController.start()
31 }, 0) 33 }, 0)
32 this.updateData() 34 this.updateData()
  35 + this.contentTrackingDict()
  36 + }
  37 +
  38 + contentTrackingDict() {
  39 + this.pageParam = {
  40 + 'contentType': `${this.liveDetailsBean.newsType}`,
  41 + 'contentId': `${this.liveDetailsBean.newsId}`,
  42 + 'contentName': `${this.liveDetailsBean.newsTitle || ''}`,
  43 + }
33 } 44 }
34 45
35 build() { 46 build() {
@@ -141,7 +152,7 @@ export struct LiveCountdownComponent { @@ -141,7 +152,7 @@ export struct LiveCountdownComponent {
141 } 152 }
142 //2024-04-01 19:44:00-trim->2024-04-0119:44:00 153 //2024-04-01 19:44:00-trim->2024-04-0119:44:00
143 if (StringUtils.isNotEmpty(this.liveDetailsBean.liveInfo?.planStartTime)) { 154 if (StringUtils.isNotEmpty(this.liveDetailsBean.liveInfo?.planStartTime)) {
144 - let playStartTimeTmp = this.liveDetailsBean.liveInfo?.planStartTime+'' 155 + let playStartTimeTmp = this.liveDetailsBean.liveInfo?.planStartTime + ''
145 this.month = Number(playStartTimeTmp.substring(5, 7)).toString() 156 this.month = Number(playStartTimeTmp.substring(5, 7)).toString()
146 this.day = playStartTimeTmp.substring(8, 10) 157 this.day = playStartTimeTmp.substring(8, 10)
147 this.hour = playStartTimeTmp.substring(11, 13) 158 this.hour = playStartTimeTmp.substring(11, 13)
@@ -152,7 +163,7 @@ export struct LiveCountdownComponent { @@ -152,7 +163,7 @@ export struct LiveCountdownComponent {
152 getLiveAppointmentStatus() { 163 getLiveAppointmentStatus() {
153 this.liveViewModel.getLiveAppointmentStatus( 164 this.liveViewModel.getLiveAppointmentStatus(
154 this.liveDetailsBean.reLInfo ? this.liveDetailsBean.reLInfo.relId : '', 165 this.liveDetailsBean.reLInfo ? this.liveDetailsBean.reLInfo.relId : '',
155 - this.liveDetailsBean.newsId+'' 166 + this.liveDetailsBean.newsId + ''
156 ).then( 167 ).then(
157 (data) => { 168 (data) => {
158 this.isAppointmentLive = data 169 this.isAppointmentLive = data
@@ -165,15 +176,19 @@ export struct LiveCountdownComponent { @@ -165,15 +176,19 @@ export struct LiveCountdownComponent {
165 liveAppointment() { 176 liveAppointment() {
166 this.liveViewModel.liveAppointment( 177 this.liveViewModel.liveAppointment(
167 this.liveDetailsBean.reLInfo ? this.liveDetailsBean.reLInfo.relId : '', 178 this.liveDetailsBean.reLInfo ? this.liveDetailsBean.reLInfo.relId : '',
168 - this.liveDetailsBean.newsId+'', 179 + this.liveDetailsBean.newsId + '',
169 !this.isAppointmentLive).then( 180 !this.isAppointmentLive).then(
170 (data) => { 181 (data) => {
171 if (data.success) { 182 if (data.success) {
172 this.isAppointmentLive = !this.isAppointmentLive 183 this.isAppointmentLive = !this.isAppointmentLive
173 if (this.isAppointmentLive) { 184 if (this.isAppointmentLive) {
174 ToastUtils.showToast('预约成功', 1000) 185 ToastUtils.showToast('预约成功', 1000)
  186 + TrackingContent.subscribeClick(true, TrackConstants.PageName.Live_Detail,
  187 + TrackConstants.PageName.Live_Detail, this.pageParam)
175 } else { 188 } else {
176 ToastUtils.showToast('取消预约成功', 1000) 189 ToastUtils.showToast('取消预约成功', 1000)
  190 + TrackingContent.subscribeClick(false, TrackConstants.PageName.Live_Detail,
  191 + TrackConstants.PageName.Live_Detail, this.pageParam)
177 } 192 }
178 } 193 }
179 }, 194 },
@@ -34,7 +34,6 @@ export struct TabComponent { @@ -34,7 +34,6 @@ export struct TabComponent {
34 34
35 build() { 35 build() {
36 Column() { 36 Column() {
37 -  
38 // 页签 37 // 页签
39 Row() { 38 Row() {
40 Scroll() { 39 Scroll() {
@@ -36,11 +36,11 @@ export struct TopPlayComponent { @@ -36,11 +36,11 @@ export struct TopPlayComponent {
36 36
37 aboutToAppear(): void { 37 aboutToAppear(): void {
38 if (this.playerController) { 38 if (this.playerController) {
  39 +
39 this.playerController.onCanplay = () => { 40 this.playerController.onCanplay = () => {
40 this.isCanPlay = true 41 this.isCanPlay = true
41 this.isLoading = true 42 this.isLoading = true
42 this.playerController?.play() 43 this.playerController?.play()
43 -  
44 } 44 }
45 45
46 this.playerController.onStatusChange = (status: number) => { 46 this.playerController.onStatusChange = (status: number) => {
@@ -7,8 +7,8 @@ struct GuidePages { @@ -7,8 +7,8 @@ struct GuidePages {
7 // guideImage = [$r('app.media.guide_static1'), $r('app.media.guide_static2'), $r('app.media.guide_static3'), $r('app.media.guide_static4'),$r('app.media.guide_static5')] 7 // guideImage = [$r('app.media.guide_static1'), $r('app.media.guide_static2'), $r('app.media.guide_static3'), $r('app.media.guide_static4'),$r('app.media.guide_static5')]
8 // guideTitle = [$r('app.media.guide_title1'), $r('app.media.guide_title2'), $r('app.media.guide_title3'), $r('app.media.guide_title4'),$r('app.media.guide_title5')] 8 // guideTitle = [$r('app.media.guide_title1'), $r('app.media.guide_title2'), $r('app.media.guide_title3'), $r('app.media.guide_title4'),$r('app.media.guide_title5')]
9 // guideIndex = [$r('app.media.guide_index1'), $r('app.media.guide_index2'), $r('app.media.guide_index3'),$r('app.media.guide_index4'), $r('app.media.guide_button')] 9 // guideIndex = [$r('app.media.guide_index1'), $r('app.media.guide_index2'), $r('app.media.guide_index3'),$r('app.media.guide_index4'), $r('app.media.guide_button')]
10 - guideImage = [$r('app.media.guide_Static')]  
11 - guideIndex = [$r('app.media.guide_button')] 10 + guideImage = [$r('app.media.guide_Static'),'']
  11 + guideIndex = [$r('app.media.guide_button'),'']
12 12
13 build() { 13 build() {
14 Column() { 14 Column() {
@@ -17,10 +17,16 @@ struct GuidePages { @@ -17,10 +17,16 @@ struct GuidePages {
17 this.ChildItem(index) 17 this.ChildItem(index)
18 18
19 }, (item: number) => JSON.stringify(item)) 19 }, (item: number) => JSON.stringify(item))
20 - }.loop(false).disableSwipe(true) 20 + }.loop(false)
21 .indicator(false) 21 .indicator(false)
22 .width('100%') 22 .width('100%')
23 .height('100%') 23 .height('100%')
  24 + .effectMode(EdgeEffect.None)
  25 + .onChange(index => {
  26 + if (index == 1) {
  27 + WDRouterRule.jumpWithReplacePage(WDRouterPage.launchInterestsPage)
  28 + }
  29 + })
24 }.width('100%') 30 }.width('100%')
25 .height('100%') 31 .height('100%')
26 32
@@ -113,6 +113,29 @@ export class TrackingContent { @@ -113,6 +113,29 @@ export class TrackingContent {
113 113
114 } 114 }
115 115
  116 +
  117 + /**
  118 + * 直播预约埋点
  119 + * @param isSubscribeFlag
  120 + * @param pageId
  121 + * @param pageName
  122 + * @param extParams
  123 + */
  124 + static subscribeClick(isSubscribeFlag:boolean ,pageId: string, pageName: string,extParams?: ParamType){
  125 + let params = TrackingUtils.generateParams(extParams)
  126 + if (pageId.length) {
  127 + params["pageId"] = pageId
  128 + }
  129 + if (pageName.length) {
  130 + params["pageName"] = pageName
  131 + }
  132 +
  133 + let event = isSubscribeFlag?'live_subscribe_click':'cancel_live_subscribe_click'
  134 + TrackingUtils.fillPositionWith(params)
  135 + Tracking.event(event, params)
  136 + }
  137 +
  138 +
116 // 内容下载点击事件 1.图片 2.音频 3.视频 139 // 内容下载点击事件 1.图片 2.音频 3.视频
117 static download(donwloadContentType: number, pageId: string, pageName: string, extParams?: ParamType) { 140 static download(donwloadContentType: number, pageId: string, pageName: string, extParams?: ParamType) {
118 let params = TrackingUtils.generateParams(extParams) 141 let params = TrackingUtils.generateParams(extParams)
@@ -103,8 +103,8 @@ struct LaunchAdvertisingPage { @@ -103,8 +103,8 @@ struct LaunchAdvertisingPage {
103 .fontSize('24lpx') 103 .fontSize('24lpx')
104 .width('72lpx') 104 .width('72lpx')
105 .height('36lpx') 105 .height('36lpx')
106 - .borderRadius(5)  
107 - .margin({top:'10lpx',left:'19lpx'}) 106 + .borderRadius(2)
  107 + .margin({top:'15lpx',left:'19lpx'})
108 .backgroundColor('#80000000') 108 .backgroundColor('#80000000')
109 } 109 }
110 .width('100%') 110 .width('100%')
@@ -191,7 +191,7 @@ struct LaunchAdvertisingPage { @@ -191,7 +191,7 @@ struct LaunchAdvertisingPage {
191 this.trackingLaunchClick() 191 this.trackingLaunchClick()
192 192
193 if(this.defaultModel.linkUrl.length > 0){ 193 if(this.defaultModel.linkUrl.length > 0){
194 - if (this.defaultModel.objectType == '2') { 194 + if (this.defaultModel.openType == '2') {
195 //端外打开 195 //端外打开
196 ProcessUtils.jumpExternalWebPage(this.defaultModel.linkUrl) 196 ProcessUtils.jumpExternalWebPage(this.defaultModel.linkUrl)
197 }else { 197 }else {
@@ -3,8 +3,9 @@ import { WDRouterRule } from 'wdRouter'; @@ -3,8 +3,9 @@ import { WDRouterRule } from 'wdRouter';
3 import { WDRouterPage } from 'wdRouter'; 3 import { WDRouterPage } from 'wdRouter';
4 import { SPHelper } from 'wdKit/Index'; 4 import { SPHelper } from 'wdKit/Index';
5 import { SpConstants } from 'wdConstant/Index'; 5 import { SpConstants } from 'wdConstant/Index';
6 -import { ButtonOptions, promptAction } 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 9
9 @Entry 10 @Entry
10 @Component 11 @Component
@@ -13,7 +14,6 @@ struct LaunchInterestsHobbiesPage { @@ -13,7 +14,6 @@ struct LaunchInterestsHobbiesPage {
13 @State selectCount: number = 0 14 @State selectCount: number = 0
14 @State interestsArray: InterestsList[] = [] 15 @State interestsArray: InterestsList[] = []
15 16
16 -  
17 aboutToAppear(){ 17 aboutToAppear(){
18 //请求接口,获取兴趣偏好数据 18 //请求接口,获取兴趣偏好数据
19 this.requestInterestsData() 19 this.requestInterestsData()
@@ -21,6 +21,8 @@ struct LaunchInterestsHobbiesPage { @@ -21,6 +21,8 @@ struct LaunchInterestsHobbiesPage {
21 21
22 build() { 22 build() {
23 Column() { 23 Column() {
  24 + Stack(){
  25 + Column(){
24 Row(){ 26 Row(){
25 Blank() 27 Blank()
26 Text('跳过') 28 Text('跳过')
@@ -28,7 +30,7 @@ struct LaunchInterestsHobbiesPage { @@ -28,7 +30,7 @@ struct LaunchInterestsHobbiesPage {
28 .fontColor('#333333') 30 .fontColor('#333333')
29 .width('54lpx') 31 .width('54lpx')
30 .height('35lpx') 32 .height('35lpx')
31 - .margin({top:'27lpx',right:'46lpx'}) 33 + .margin({right:'46lpx'})
32 .onClick(()=>{ 34 .onClick(()=>{
33 //直接跳过到首页 35 //直接跳过到首页
34 //跳转首页 36 //跳转首页
@@ -60,12 +62,16 @@ struct LaunchInterestsHobbiesPage { @@ -60,12 +62,16 @@ struct LaunchInterestsHobbiesPage {
60 ForEach(this.interestsArray,(item:InterestsList,index:number)=>{ 62 ForEach(this.interestsArray,(item:InterestsList,index:number)=>{
61 GridItem(){ 63 GridItem(){
62 Stack({alignContent:Alignment.TopStart}){ 64 Stack({alignContent:Alignment.TopStart}){
63 -  
64 - Image(item.pic) 65 + ImageKnifeComponent({imageKnifeOption:{loadSrc:item.pic}})
65 .width('100%') 66 .width('100%')
66 .height('100%') 67 .height('100%')
67 .backgroundColor(Color.White) 68 .backgroundColor(Color.White)
68 .borderRadius(5) 69 .borderRadius(5)
  70 + // Image(item.pic)
  71 + // .width('100%')
  72 + // .height('100%')
  73 + // .backgroundColor(Color.White)
  74 + // .borderRadius(5)
69 Stack(){ 75 Stack(){
70 Image('') 76 Image('')
71 .width('100%') 77 .width('100%')
@@ -74,7 +80,6 @@ struct LaunchInterestsHobbiesPage { @@ -74,7 +80,6 @@ struct LaunchInterestsHobbiesPage {
74 .opacity(item.choose?0.5:0) 80 .opacity(item.choose?0.5:0)
75 .borderRadius(5) 81 .borderRadius(5)
76 } 82 }
77 -  
78 Stack(){ 83 Stack(){
79 Column({}){ 84 Column({}){
80 Text(item.name) 85 Text(item.name)
@@ -111,16 +116,21 @@ struct LaunchInterestsHobbiesPage { @@ -111,16 +116,21 @@ struct LaunchInterestsHobbiesPage {
111 }) 116 })
112 117
113 }) 118 })
114 -  
115 } 119 }
116 .width('90%') 120 .width('90%')
117 - .height('70%')  
118 - .margin({top:'61lpx'}) 121 + // .height('70%')
  122 + .margin({top:'61lpx',bottom:'240lpx'})
119 .columnsTemplate('1fr 1fr 1fr') 123 .columnsTemplate('1fr 1fr 1fr')
120 - // .rowsTemplate('1fr 1fr 1fr 1fr')  
121 .columnsGap('23lpx') 124 .columnsGap('23lpx')
122 .rowsGap('23lpx') 125 .rowsGap('23lpx')
123 .scrollBar(BarState.Off) 126 .scrollBar(BarState.Off)
  127 + }
  128 + .width('100%')
  129 + .height('100%')
  130 + }
  131 + .width('100%')
  132 + .height(`calc(100% - ${108 + 'lpx'})`)
  133 + // .backgroundColor(Color.Red)
124 134
125 Stack({alignContent:Alignment.Center}){ 135 Stack({alignContent:Alignment.Center}){
126 Button(this.selectCount == 0?'选好了':'选好了(' + this.selectCount + ')') 136 Button(this.selectCount == 0?'选好了':'选好了(' + this.selectCount + ')')
@@ -131,9 +141,11 @@ struct LaunchInterestsHobbiesPage { @@ -131,9 +141,11 @@ struct LaunchInterestsHobbiesPage {
131 .borderRadius('10lpx') 141 .borderRadius('10lpx')
132 .width('662lpx') 142 .width('662lpx')
133 .height('84lpx') 143 .height('84lpx')
  144 + .margin({top:'10lpx'})
134 Image('') 145 Image('')
135 .width('662lpx') 146 .width('662lpx')
136 .height('84lpx') 147 .height('84lpx')
  148 + .margin({top:'10lpx'})
137 .backgroundColor(Color.White) 149 .backgroundColor(Color.White)
138 .opacity(this.selectCount == 0 ? 0.6 : 0) 150 .opacity(this.selectCount == 0 ? 0.6 : 0)
139 .borderRadius('10lpx') 151 .borderRadius('10lpx')
@@ -156,10 +168,8 @@ struct LaunchInterestsHobbiesPage { @@ -156,10 +168,8 @@ struct LaunchInterestsHobbiesPage {
156 } 168 }
157 .width('100%') 169 .width('100%')
158 .height('108lpx') 170 .height('108lpx')
159 - // .position({y:})  
160 - // .margin({bottom:'1',top:'1'})  
161 - .backgroundColor('#FFFFFF')  
162 - 171 + .margin({top:0})
  172 + // .backgroundColor(Color.Orange)
163 } 173 }
164 .width('100%') 174 .width('100%')
165 .height('100%') 175 .height('100%')