zhangfengjin

Merge remote-tracking branch 'origin/main'

@@ -50,6 +50,8 @@ export struct OperRowListView { @@ -50,6 +50,8 @@ export struct OperRowListView {
50 } 50 }
51 private onCommentFocus: () => void = () => { 51 private onCommentFocus: () => void = () => {
52 } 52 }
  53 + private onCommentIconClick: () => void = () => {
  54 + }
53 @Prop @Watch('onDetailUpdated') contentDetailData: ContentDetailDTO // 稿件详情 55 @Prop @Watch('onDetailUpdated') contentDetailData: ContentDetailDTO // 稿件详情
54 /** 56 /**
55 * 组件样式类型,根据详情页类型传值,组件内部根据样式展现类型做判断 57 * 组件样式类型,根据详情页类型传值,组件内部根据样式展现类型做判断
@@ -205,6 +207,9 @@ export struct OperRowListView { @@ -205,6 +207,9 @@ export struct OperRowListView {
205 Column() { 207 Column() {
206 if (this.publishCommentModel?.targetId) { 208 if (this.publishCommentModel?.targetId) {
207 CommentIconComponent({ publishCommentModel: this.publishCommentModel, styleType: this.styleType }) 209 CommentIconComponent({ publishCommentModel: this.publishCommentModel, styleType: this.styleType })
  210 + .onClick(() => {
  211 + this.onCommentIconClick()
  212 + })
208 } 213 }
209 } 214 }
210 .width(46) 215 .width(46)
@@ -393,9 +398,9 @@ export struct OperRowListView { @@ -393,9 +398,9 @@ export struct OperRowListView {
393 contentType: this.contentDetailData?.newsType, 398 contentType: this.contentDetailData?.newsType,
394 }] 399 }]
395 } 400 }
396 - console.log(TAG, '点赞点击', JSON.stringify(params)) 401 + console.log(TAG, '查询点赞、收藏数量', JSON.stringify(params))
397 PageRepository.getContentInteract(params).then(res => { 402 PageRepository.getContentInteract(params).then(res => {
398 - console.log(TAG, '点赞点击 res', JSON.stringify(res)) 403 + console.log(TAG, '查询点赞、收藏数量 res', JSON.stringify(res))
399 if (res.data) { 404 if (res.data) {
400 this.interactData.likeNum = NumberFormatterUtils.formatNumberWithWan(res.data[0]?.likeNum) 405 this.interactData.likeNum = NumberFormatterUtils.formatNumberWithWan(res.data[0]?.likeNum)
401 this.interactData.collectNum = NumberFormatterUtils.formatNumberWithWan(res.data[0]?.collectNum) 406 this.interactData.collectNum = NumberFormatterUtils.formatNumberWithWan(res.data[0]?.collectNum)
@@ -49,6 +49,7 @@ export struct DetailPlayShortVideoPage { @@ -49,6 +49,7 @@ export struct DetailPlayShortVideoPage {
49 @Consume showComment: boolean // 是否显示底部评论,首页视频频道传false 49 @Consume showComment: boolean // 是否显示底部评论,首页视频频道传false
50 @State imageVisible: boolean = true 50 @State imageVisible: boolean = true
51 @State publishCommentModel: publishCommentModel = new publishCommentModel() 51 @State publishCommentModel: publishCommentModel = new publishCommentModel()
  52 + @State ratio: number = 16 / 9
52 53
53 /** 54 /**
54 * 页面显示重查用户关注、点赞等信息 55 * 页面显示重查用户关注、点赞等信息
@@ -149,8 +150,11 @@ export struct DetailPlayShortVideoPage { @@ -149,8 +150,11 @@ export struct DetailPlayShortVideoPage {
149 } 150 }
150 151
151 aboutToAppear() { 152 aboutToAppear() {
152 - this.videoLandScape = this.contentDetailData?.videoInfo[0]?.videoLandScape 153 + this.videoLandScape = this.contentDetailData.videoInfo[0]?.videoLandScape
  154 + this.ratio = this.contentDetailData.videoInfo[0].resolutionWidth /
  155 + this.contentDetailData.videoInfo[0].resolutionHeight
153 this.playerController.onCanplay = () => { 156 this.playerController.onCanplay = () => {
  157 + this.ratio = this.playerController.videoWidth / this.playerController.videoHeight
154 if ((this.index == 0 || this.currentIndex === this.index) && this.switchVideoStatus) { 158 if ((this.index == 0 || this.currentIndex === this.index) && this.switchVideoStatus) {
155 this.playerController.play() 159 this.playerController.play()
156 this.imageVisible = false 160 this.imageVisible = false
@@ -179,57 +183,58 @@ export struct DetailPlayShortVideoPage { @@ -179,57 +183,58 @@ export struct DetailPlayShortVideoPage {
179 } 183 }
180 184
181 build() { 185 build() {
182 - Column() {  
183 - Stack() {  
184 - // this.playerCoverBuilder()  
185 - this.playerViewBuilder() 186 + Stack({ alignContent: Alignment.Top }) {
  187 + Column() {
  188 + Stack() {
  189 + // this.playerCoverBuilder()
  190 + this.playerViewBuilder()
186 191
187 - PlayerBottomView({  
188 - playerController: this.playerController  
189 - })  
190 - .position({ x: 0, y: '100%' })  
191 - .markAnchor({ y: '100%' })  
192 - .visibility(this.displayDirection === DisplayDirection.VERTICAL ?  
193 - Visibility.Visible : Visibility.None) 192 + PlayerBottomView({
  193 + playerController: this.playerController
  194 + })
194 195
195 - PlayerRightView({  
196 - playerController: this.playerController  
197 - }) 196 + PlayerRightView({
  197 + playerController: this.playerController
  198 + })
198 199
  200 + }
  201 + .layoutWeight(1)
  202 + .onClick(() => {
  203 + this.playerController?.switchPlayOrPause();
  204 + })
199 205
200 - CommentComponentPage({}).visibility(this.showCommentList ? Visibility.Visible : Visibility.None)  
201 - .position({ y: '100%' })  
202 - .markAnchor({ y: '100%' }) 206 + // 显示评论且非全屏模式(视频频道无评论showComment=false)
  207 + if (this.showComment && this.displayDirection === DisplayDirection.VERTICAL) {
  208 + OperRowListView({
  209 + pageComponentType: 1,
  210 + styleType: 3,
  211 + componentType: 4,
  212 + operationButtonList: ['comment',],
  213 + contentDetailData: this.contentDetailData,
  214 + publishCommentModel: this.publishCommentModel,
  215 + showCommentIcon: false,
  216 + onBack: () => {
  217 + WindowModel.shared.setWindowLayoutFullScreen(false)
  218 + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', })
  219 + }
  220 + })
  221 + }
203 } 222 }
204 - .width(this.displayDirection === DisplayDirection.VERTICAL ? '100%' : 'auto')  
205 - .height(this.displayDirection === DisplayDirection.VERTICAL ? 'auto' : '100%')  
206 - .layoutWeight(1)  
207 - .onClick(() => {  
208 - this.playerController?.switchPlayOrPause(); 223 + .height('100%')
  224 + .width('100%')
  225 + .padding({
  226 + top: this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ? 0 : this.topSafeHeight + 'px'
209 }) 227 })
210 228
211 - // 显示评论且非全屏模式(视频频道无评论showComment=false)  
212 - if (this.showComment && this.displayDirection === DisplayDirection.VERTICAL && this.index === this.currentIndex) {  
213 - OperRowListView({  
214 - pageComponentType: 1,  
215 - styleType: 3,  
216 - componentType: 4,  
217 - operationButtonList: ['comment',],  
218 - contentDetailData: this.contentDetailData,  
219 - publishCommentModel: this.publishCommentModel,  
220 - showCommentIcon: false,  
221 - onBack: () => {  
222 - WindowModel.shared.setWindowLayoutFullScreen(false)  
223 - WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', })  
224 - }  
225 - }) 229 + if (this.showCommentList) {
  230 + CommentComponentPage({})
  231 + .position({ y: '100%' })
  232 + .markAnchor({ y: '100%' })
226 } 233 }
227 } 234 }
228 .height('100%') 235 .height('100%')
229 .width('100%') 236 .width('100%')
230 - .padding({  
231 - top: this.topSafeHeight + 'px'  
232 - }) 237 +
233 } 238 }
234 239
235 /** 240 /**
@@ -261,16 +266,26 @@ export struct DetailPlayShortVideoPage { @@ -261,16 +266,26 @@ export struct DetailPlayShortVideoPage {
261 } 266 }
262 } 267 }
263 }) 268 })
264 - .height(this.videoLandScape === 1 ? 210 : 'auto')// .height(this.videoLandScape === 1 ? 210 : '100%')  
265 .width('100%') 269 .width('100%')
  270 + .height(this.windowWidth / this.ratio + 'px')
  271 +
  272 + // .height(this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ? '100%' :
  273 + // this.videoLandScape === 1 ? 210 : 'auto')// .height(this.videoLandScape === 1 ? 210 : '100%')
  274 + // .width(this.videoLandScape === 1 ?
  275 + // this.playerController.videoWidth / this.playerController.videoHeight * this.windowHeight + 'px' : '100%')
  276 + // .height(this.videoLandScape === 1 ? 210 :
  277 + // this.playerController.videoHeight / this.playerController.videoWidth * this.windowWidth + 'px')
266 278
267 // 横屏-全屏观看 279 // 横屏-全屏观看
268 if (this.videoLandScape === 1) { 280 if (this.videoLandScape === 1) {
269 this.playerFullscreenBuilder() 281 this.playerFullscreenBuilder()
270 } 282 }
271 } 283 }
272 - .width(this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ? 'auto' : '100%')  
273 - .height(this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ? '100%' : 'auto') 284 + .width('100%')
  285 + .height('100%')
  286 + // .width(this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ?
  287 + // this.playerController.videoWidth / this.playerController.videoHeight * this.windowHeight + 'px' : '100%')
  288 + // .height(this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ? '100%' : 'auto')
274 .align(this.videoLandScape === 1 ? Alignment.Center : Alignment.Top) 289 .align(this.videoLandScape === 1 ? Alignment.Center : Alignment.Top)
275 290
276 } 291 }
@@ -295,14 +310,14 @@ export struct DetailPlayShortVideoPage { @@ -295,14 +310,14 @@ export struct DetailPlayShortVideoPage {
295 .alignItems(VerticalAlign.Center) 310 .alignItems(VerticalAlign.Center)
296 .justifyContent(FlexAlign.Center) 311 .justifyContent(FlexAlign.Center)
297 .align(Alignment.Bottom) 312 .align(Alignment.Bottom)
298 - .margin({ top: 230 }) 313 + .margin({ top: 280 })
299 .onClick(() => { 314 .onClick(() => {
300 - this.displayDirection =  
301 - this.displayDirection === DisplayDirection.VERTICAL ? DisplayDirection.VIDEO_HORIZONTAL :  
302 - DisplayDirection.VERTICAL  
303 - WindowModel.shared.setPreferredOrientation(this.displayDirection == DisplayDirection.VERTICAL ?  
304 - window.Orientation.PORTRAIT :  
305 - window.Orientation.LANDSCAPE_INVERTED) 315 + // this.displayDirection =
  316 + // this.displayDirection === DisplayDirection.VERTICAL ? DisplayDirection.VIDEO_HORIZONTAL :
  317 + // DisplayDirection.VERTICAL
  318 + // WindowModel.shared.setPreferredOrientation(this.displayDirection == DisplayDirection.VERTICAL ?
  319 + // window.Orientation.PORTRAIT :
  320 + // window.Orientation.LANDSCAPE_INVERTED)
306 321
307 // this.playerController.xComponentController?.setXComponentSurfaceRect({ 322 // this.playerController.xComponentController?.setXComponentSurfaceRect({
308 // surfaceWidth: px2vp(this.windowHeight), 323 // surfaceWidth: px2vp(this.windowHeight),
@@ -174,7 +174,7 @@ export struct DetailVideoListPage { @@ -174,7 +174,7 @@ export struct DetailVideoListPage {
174 }) 174 })
175 }, (item: ContentDetailDTO) => item.newsId + '') 175 }, (item: ContentDetailDTO) => item.newsId + '')
176 } 176 }
177 - .disableSwipe(this.displayDirection === DisplayDirection.VERTICAL ? false : true) 177 + .disableSwipe(this.displayDirection === DisplayDirection.VERTICAL || !this.showComment ? false : true)
178 .indicator(false) 178 .indicator(false)
179 .vertical(true) 179 .vertical(true)
180 .loop(false) 180 .loop(false)
@@ -269,7 +269,7 @@ export struct VideoChannelDetail { @@ -269,7 +269,7 @@ export struct VideoChannelDetail {
269 }, (item: ContentDetailDTO) => item.newsId + '') 269 }, (item: ContentDetailDTO) => item.newsId + '')
270 } 270 }
271 .displayCount(1, true) 271 .displayCount(1, true)
272 - .disableSwipe(this.displayDirection === DisplayDirection.VERTICAL ? false : true) 272 + .disableSwipe(this.displayDirection === DisplayDirection.VERTICAL || !this.showComment ? false : true)
273 .visibility(this.isMouted ? Visibility.Visible : Visibility.None) 273 .visibility(this.isMouted ? Visibility.Visible : Visibility.None)
274 .indicator(false) 274 .indicator(false)
275 .vertical(true) 275 .vertical(true)
1 import { ContentDetailDTO } from 'wdBean/Index' 1 import { ContentDetailDTO } from 'wdBean/Index'
  2 +import { WindowModel } from 'wdKit/Index'
2 import { 3 import {
3 publishCommentModel 4 publishCommentModel
4 } from '../../../../../wdComponent/src/main/ets/components/comment/model/PublishCommentModel' 5 } from '../../../../../wdComponent/src/main/ets/components/comment/model/PublishCommentModel'
5 import { CommentComponent } from '../../../../../wdComponent/src/main/ets/components/comment/view/CommentComponent' 6 import { CommentComponent } from '../../../../../wdComponent/src/main/ets/components/comment/view/CommentComponent'
6 7
  8 +import { OperRowListView } from '../../../../../wdComponent/src/main/ets/components/view/OperRowListView'
  9 +
7 @Component 10 @Component
8 export struct CommentComponentPage { 11 export struct CommentComponentPage {
9 scroller: Scroller = new Scroller() 12 scroller: Scroller = new Scroller()
@@ -20,28 +23,45 @@ export struct CommentComponentPage { @@ -20,28 +23,45 @@ export struct CommentComponentPage {
20 this.publishCommentModel.targetRelObjectId = String(this.contentDetailData?.reLInfo?.relObjectId) 23 this.publishCommentModel.targetRelObjectId = String(this.contentDetailData?.reLInfo?.relObjectId)
21 this.publishCommentModel.keyArticle = String(this.contentDetailData?.keyArticle) 24 this.publishCommentModel.keyArticle = String(this.contentDetailData?.keyArticle)
22 this.publishCommentModel.targetType = String(this.contentDetailData?.newsType) 25 this.publishCommentModel.targetType = String(this.contentDetailData?.newsType)
  26 + this.publishCommentModel.visitorComment = String(this.contentDetailData?.visitorComment)
23 } 27 }
24 28
25 build() { 29 build() {
26 - Scroll(this.scroller) {  
27 - Stack() {  
28 - CommentComponent({  
29 - publishCommentModel: this.publishCommentModel  
30 - })  
31 - Image($r("app.media.ic_close_black"))  
32 - .width(20)  
33 - .height(20)  
34 - .onClick(() => {  
35 - this.showCommentList = false 30 + Column() {
  31 + Scroll(this.scroller) {
  32 + Stack() {
  33 + CommentComponent({
  34 + publishCommentModel: this.publishCommentModel
36 }) 35 })
37 - .margin({ top: 10, right: 20 })  
38 - .position({ x: '100%' })  
39 - .markAnchor({ x: '100%' }) 36 + Image($r("app.media.ic_close_black"))
  37 + .width(20)
  38 + .height(20)
  39 + .onClick(() => {
  40 + this.showCommentList = false
  41 + })
  42 + .margin({ top: 10, right: 30 })
  43 + .position({ x: '100%' })
  44 + .markAnchor({ x: '100%' })
40 45
  46 + }
41 } 47 }
  48 + .layoutWeight(1)
  49 +
  50 + OperRowListView({
  51 + componentType: 1,
  52 + operationButtonList: ['comment', 'like', 'collect', 'share'],
  53 + contentDetailData: this.contentDetailData,
  54 + publishCommentModel: this.publishCommentModel,
  55 + showCommentIcon: true,
  56 + onBack: () => {
  57 + WindowModel.shared.setWindowLayoutFullScreen(false)
  58 + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', })
  59 + }
  60 + })
42 } 61 }
43 .zIndex(1000) 62 .zIndex(1000)
44 .backgroundColor(Color.White) 63 .backgroundColor(Color.White)
  64 + .height('60%')
45 65
46 } 66 }
47 } 67 }
@@ -2,6 +2,7 @@ import { WDPlayerController } from 'wdPlayer/Index'; @@ -2,6 +2,7 @@ import { WDPlayerController } from 'wdPlayer/Index';
2 import { PlayerTitleView } from './PlayerTitleView' 2 import { PlayerTitleView } from './PlayerTitleView'
3 import { PlayerProgressView } from './PlayerProgressView' 3 import { PlayerProgressView } from './PlayerProgressView'
4 import { ContentDetailDTO } from 'wdBean/Index'; 4 import { ContentDetailDTO } from 'wdBean/Index';
  5 +import { DisplayDirection } from 'wdConstant/Index';
5 6
6 @Component 7 @Component
7 export struct PlayerBottomView { 8 export struct PlayerBottomView {
@@ -11,6 +12,7 @@ export struct PlayerBottomView { @@ -11,6 +12,7 @@ export struct PlayerBottomView {
11 @Consume isOpenDetail?: boolean 12 @Consume isOpenDetail?: boolean
12 @Consume isDragging?: boolean 13 @Consume isDragging?: boolean
13 @Consume contentDetailData: ContentDetailDTO 14 @Consume contentDetailData: ContentDetailDTO
  15 + @Consume displayDirection: DisplayDirection
14 16
15 aboutToAppear(): void { 17 aboutToAppear(): void {
16 18
@@ -21,7 +23,11 @@ export struct PlayerBottomView { @@ -21,7 +23,11 @@ export struct PlayerBottomView {
21 PlayerTitleView() 23 PlayerTitleView()
22 PlayerProgressView({ playerController: this.playerController }) 24 PlayerProgressView({ playerController: this.playerController })
23 } 25 }
  26 + .width('100%')
  27 + .alignItems(HorizontalAlign.Start)
24 .position({ x: 0, y: '100%' }) 28 .position({ x: 0, y: '100%' })
25 .markAnchor({ y: '100%' }) 29 .markAnchor({ y: '100%' })
  30 + .visibility(this.displayDirection === DisplayDirection.VERTICAL ?
  31 + Visibility.Visible : Visibility.None)
26 } 32 }
27 } 33 }
@@ -45,6 +45,7 @@ export struct WDPlayerRenderView { @@ -45,6 +45,7 @@ export struct WDPlayerRenderView {
45 onLoad?: ((event?: object) => void); 45 onLoad?: ((event?: object) => void);
46 @State videoWidth: number = 16 46 @State videoWidth: number = 16
47 @State videoHeight: number = 9 47 @State videoHeight: number = 9
  48 + @State videoRatio: number = 16 / 9
48 @State selfSize: Size = new Size('100%', '100%'); 49 @State selfSize: Size = new Size('100%', '100%');
49 50
50 aboutToAppear() { 51 aboutToAppear() {
@@ -60,6 +61,7 @@ export struct WDPlayerRenderView { @@ -60,6 +61,7 @@ export struct WDPlayerRenderView {
60 Logger.info(TAG, ` onVideoSizeChange width:${width} videoTop:${height}`) 61 Logger.info(TAG, ` onVideoSizeChange width:${width} videoTop:${height}`)
61 this.videoWidth = width; 62 this.videoWidth = width;
62 this.videoHeight = height; 63 this.videoHeight = height;
  64 + this.videoRatio = width / height
63 this.updateLayout() 65 this.updateLayout()
64 } 66 }
65 } 67 }