zhenghy

Merge remote-tracking branch 'origin/main'

@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 * page接口返回的Page数据DTO 2 * page接口返回的Page数据DTO
3 */ 3 */
4 import { AdvRuleBean, CompAdvBean } from '../adv/AdvsRuleBean'; 4 import { AdvRuleBean, CompAdvBean } from '../adv/AdvsRuleBean';
  5 +import { ArrayList } from '@kit.ArkTS';
  6 +import { CompDTO } from '../component/CompDTO';
5 7
6 export interface PageInfoDTO { 8 export interface PageInfoDTO {
7 pageId: string; // 页面id 9 pageId: string; // 页面id
@@ -27,6 +29,18 @@ export interface PageInfoDTO { @@ -27,6 +29,18 @@ export interface PageInfoDTO {
27 */ 29 */
28 cornersAdv2: CompAdvBean[] 30 cornersAdv2: CompAdvBean[]
29 31
  32 +
  33 + // 本地字段
  34 + /*
  35 + 记录一次请求获取到的楼层comp数据,如 完成一次刷新到结束,获取所有楼层的稿件数据
  36 + */
  37 + oneRequestPageGroupCompList: ArrayList<CompDTO>
  38 +
  39 + /*
  40 + 记录页面楼层所有的信息流广告数据
  41 + */
  42 + pageAdList:CompAdvBean[]
  43 +
30 } 44 }
31 45
32 export interface ChannelInfoDTO { 46 export interface ChannelInfoDTO {
@@ -49,8 +49,10 @@ export struct Card2Component { @@ -49,8 +49,10 @@ export struct Card2Component {
49 Column() { 49 Column() {
50 Stack() { 50 Stack() {
51 //新闻标题 51 //新闻标题
52 - if (this.contentDTO.objectType == '5') {  
53 - Notes({ objectType: this.contentDTO.objectType }) 52 + if (this.contentDTO.newTags) {
  53 + Notes({ newTags: this.contentDTO.newTags })
  54 + } else if (this.contentDTO.objectType == '5') {
  55 + Notes({ objectType: this.contentDTO.objectType })
54 } 56 }
55 57
56 Text() { 58 Text() {
@@ -68,9 +70,13 @@ export struct Card2Component { @@ -68,9 +70,13 @@ export struct Card2Component {
68 .maxLines(2) 70 .maxLines(2)
69 .textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。 71 .textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
70 .align(Alignment.Start) 72 .align(Alignment.Start)
71 - .textIndent(this.contentDTO.objectType == '5' ? 35 : 0)  
72 - }  
73 - .alignContent(Alignment.TopStart) 73 + .textIndent(this.contentDTO.newTags?.length < 5 && this.contentDTO.newTags?.length > 2 ? 58 :
  74 + (this.contentDTO.newTags?.length != 0 && this.contentDTO.newTags?.length) ||
  75 + this.contentDTO.objectType == '5' ? 30 : 0)
  76 + }.alignContent(Alignment.TopStart)
  77 + //.textIndent(this.contentDTO.objectType == '5' ? 35 : 0)
  78 + // }
  79 + // .alignContent(Alignment.TopStart)
74 80
75 //大图 81 //大图
76 Stack() { 82 Stack() {
@@ -4,7 +4,7 @@ import { ProcessUtils } from 'wdRouter'; @@ -4,7 +4,7 @@ import { ProcessUtils } from 'wdRouter';
4 import { CardSourceInfo } from '../cardCommon/CardSourceInfo' 4 import { CardSourceInfo } from '../cardCommon/CardSourceInfo'
5 import { CardMediaInfo } from '../cardCommon/CardMediaInfo' 5 import { CardMediaInfo } from '../cardCommon/CardMediaInfo'
6 import { onlyWifiLoadImg } from '../../utils/lazyloadImg'; 6 import { onlyWifiLoadImg } from '../../utils/lazyloadImg';
7 - 7 +import { Notes } from './notes';
8 const TAG: string = 'Card4Component'; 8 const TAG: string = 'Card4Component';
9 9
10 /** 10 /**
@@ -43,6 +43,11 @@ export struct Card4Component { @@ -43,6 +43,11 @@ export struct Card4Component {
43 Column() { 43 Column() {
44 //body 44 //body
45 Column() { 45 Column() {
  46 + if (this.contentDTO.newTags) {
  47 + Notes({ newTags: this.contentDTO.newTags })
  48 + } else if (this.contentDTO.objectType == '5') {
  49 + Notes({ objectType: this.contentDTO.objectType })
  50 + }
46 //新闻标题 51 //新闻标题
47 Text() { 52 Text() {
48 if (this.titleMarked) { 53 if (this.titleMarked) {
@@ -96,6 +101,10 @@ export struct Card4Component { @@ -96,6 +101,10 @@ export struct Card4Component {
96 this.clicked = true; 101 this.clicked = true;
97 ProcessUtils.processPage(this.contentDTO) 102 ProcessUtils.processPage(this.contentDTO)
98 }) 103 })
  104 + .textIndent(this.contentDTO.newTags?.length < 5 && this.contentDTO.newTags?.length > 2 ? 58 :
  105 + (this.contentDTO.newTags?.length != 0 && this.contentDTO.newTags?.length) ||
  106 + this.contentDTO.objectType == '5' ? 30 : 0)
  107 + }.alignContent(Alignment.TopStart)
99 //bottom 评论等信息 108 //bottom 评论等信息
100 CardSourceInfo({ compDTO: this.compDTO, contentDTO: this.contentDTO }) 109 CardSourceInfo({ compDTO: this.compDTO, contentDTO: this.contentDTO })
101 } 110 }
@@ -75,6 +75,7 @@ export struct Card5Component { @@ -75,6 +75,7 @@ export struct Card5Component {
75 .fontWeight(FontWeight.Bold) 75 .fontWeight(FontWeight.Bold)
76 .maxLines(2) 76 .maxLines(2)
77 .align(Alignment.TopStart) 77 .align(Alignment.TopStart)
  78 + .textOverflow({ overflow: TextOverflow.Ellipsis }) // 超出的部分显示省略号。
78 .textIndent(this.contentDTO.newTags?.length < 5 && this.contentDTO.newTags?.length > 2 ? 58 : 79 .textIndent(this.contentDTO.newTags?.length < 5 && this.contentDTO.newTags?.length > 2 ? 58 :
79 (this.contentDTO.newTags?.length != 0 && this.contentDTO.newTags?.length) || 80 (this.contentDTO.newTags?.length != 0 && this.contentDTO.newTags?.length) ||
80 this.contentDTO.objectType == '5' ? 30 : 0) 81 this.contentDTO.objectType == '5' ? 30 : 0)
1 -import { CompDTO, ContentDTO, InteractDataDTO, PageDTO, PageInfoDTO } from 'wdBean'; 1 +import { CompDTO, ContentDTO, InteractDataDTO, LiveReviewDTO, PageDTO, PageInfoDTO } from 'wdBean';
2 import { CompStyle, ViewType } from 'wdConstant/Index'; 2 import { CompStyle, ViewType } from 'wdConstant/Index';
3 import { CollectionUtils, DateTimeUtils, LazyDataSource, Logger, NetworkUtil, StringUtils } from 'wdKit'; 3 import { CollectionUtils, DateTimeUtils, LazyDataSource, Logger, NetworkUtil, StringUtils } from 'wdKit';
4 import { closeRefresh } from '../utils/PullDownRefresh'; 4 import { closeRefresh } from '../utils/PullDownRefresh';
@@ -13,6 +13,7 @@ import { CompAdvMatInfoBean } from 'wdBean/src/main/ets/bean/adv/CompAdvInfoBean @@ -13,6 +13,7 @@ import { CompAdvMatInfoBean } from 'wdBean/src/main/ets/bean/adv/CompAdvInfoBean
13 import { BaseDTO } from 'wdBean/src/main/ets/bean/component/BaseDTO'; 13 import { BaseDTO } from 'wdBean/src/main/ets/bean/component/BaseDTO';
14 import { viewBlogInsightIntentShare, ActionMode } from '../utils/InsightIntentShare' 14 import { viewBlogInsightIntentShare, ActionMode } from '../utils/InsightIntentShare'
15 import { common } from '@kit.AbilityKit'; 15 import { common } from '@kit.AbilityKit';
  16 +
16 const TAG = 'PageHelper'; 17 const TAG = 'PageHelper';
17 18
18 /** 19 /**
@@ -75,7 +76,7 @@ export class PageHelper { @@ -75,7 +76,7 @@ export class PageHelper {
75 return; 76 return;
76 } 77 }
77 pageModel.pageInfo = pageInfo; 78 pageModel.pageInfo = pageInfo;
78 - //解析广告资源 79 + //解析页面挂角广告资源
79 pageAdvModel.analysisAdvSource(pageInfo); 80 pageAdvModel.analysisAdvSource(pageInfo);
80 this.parseGroup(pageModel) 81 this.parseGroup(pageModel)
81 }).catch(() => { 82 }).catch(() => {
@@ -86,10 +87,17 @@ export class PageHelper { @@ -86,10 +87,17 @@ export class PageHelper {
86 } 87 }
87 88
88 89
  90 + /**
  91 + * 解析信息流页面楼层数据
  92 + * @param pageModel
  93 + */
89 async parseGroup(pageModel: PageModel) { 94 async parseGroup(pageModel: PageModel) {
90 let pageInfo: PageInfoDTO = pageModel.pageInfo 95 let pageInfo: PageInfoDTO = pageModel.pageInfo
91 pageModel.groupList = [] 96 pageModel.groupList = []
  97 + pageInfo.pageAdList = []
  98 + pageInfo.oneRequestPageGroupCompList = new ArrayList()
92 pageModel.groupList.push(...pageInfo.groups) 99 pageModel.groupList.push(...pageInfo.groups)
  100 + Logger.error("ZZZXXXXX", 'parseGroup----1-----');
93 for (const group of pageInfo.groups) { 101 for (const group of pageInfo.groups) {
94 pageModel.isRecGroup = group.groupStrategy === 1; 102 pageModel.isRecGroup = group.groupStrategy === 1;
95 pageModel.groupId = group.id; 103 pageModel.groupId = group.id;
@@ -99,17 +107,40 @@ export class PageHelper { @@ -99,17 +107,40 @@ export class PageHelper {
99 pageModel.pageSize = 20 107 pageModel.pageSize = 20
100 } 108 }
101 pageModel.groupData = group 109 pageModel.groupData = group
  110 +
  111 + Logger.error("ZZZXXXXX", '楼层id-start--》' + pageModel.groupId);
102 // await,确保groups接口顺序执行 112 // await,确保groups接口顺序执行
103 - let pageDto = await PageViewModel.getPageData(pageModel.bizCopy()) as PageDTO 113 + let pageDto = await PageViewModel.getPageGroupCompData(pageModel.bizCopy()) as PageDTO
104 let index = pageInfo.groups.indexOf(group) 114 let index = pageInfo.groups.indexOf(group)
105 if (index == 0) { 115 if (index == 0) {
106 // 清空comp列表 116 // 清空comp列表
107 - pageModel.compList.clearAllData() 117 + pageModel.compList.clear()
108 } 118 }
109 - this.getGroupData(pageModel, pageDto, index == pageInfo.groups.length - 1) 119 + this.analysisPageGroupCompData(pageModel,pageDto, pageInfo, index == pageInfo.groups.length - 1)
  120 + Logger.error("ZZZXXXXX", '楼层id-end--》' + pageModel.groupId + ' 楼层 comp数量=' + pageDto.compList.length);
  121 + }
110 122
  123 + /*
  124 + 收集页面所有楼层的组件信息,同步完成广告投放计算,异步完成稿件批查,
  125 + */
  126 + pageModel.pageTotalCompSize = pageInfo.oneRequestPageGroupCompList.length + pageModel.pageTotalCompSize
  127 + // 处理页面广告数据,投放到页面的位置
  128 + this.handlePageCompAdvPostion(pageInfo.oneRequestPageGroupCompList, pageModel, pageInfo.pageAdList);
111 129
  130 + //遍历所有组件和稿件数据 push到页面
  131 + for (let element of pageInfo.oneRequestPageGroupCompList) {
  132 + pageModel.compList.push(CompDTO.createNewsBean(element))
112 } 133 }
  134 +
  135 + // 批查互动数据
  136 + this.allCompBatchRequest(pageInfo.oneRequestPageGroupCompList.convertToArray(), pageModel)
  137 +
  138 + //
  139 + pageModel.currentPage++
  140 + pageModel.viewType = ViewType.LOADED
  141 + closeRefresh(pageModel, true)
  142 +
  143 + Logger.error("ZZZXXXXX", 'parseGroup----3----->' + pageInfo.oneRequestPageGroupCompList.length);
113 if (pageModel.compList.isEmpty()) { 144 if (pageModel.compList.isEmpty()) {
114 // 没数据,展示空页面 145 // 没数据,展示空页面
115 Logger.debug(TAG, 'aboutToAppear, data response page ' + pageModel.pageId + ', comp list is empty.'); 146 Logger.debug(TAG, 'aboutToAppear, data response page ' + pageModel.pageId + ', comp list is empty.');
@@ -119,39 +150,197 @@ export class PageHelper { @@ -119,39 +150,197 @@ export class PageHelper {
119 } 150 }
120 } 151 }
121 152
122 - private async getGroupData(pageModel: PageModel, pageDto: PageDTO, isLastGroup: boolean) { 153 + /**
  154 + * 解析页面的楼层数据
  155 + * @param pageDto 楼层的组件信息
  156 + * @param pageInfo 信息流页面信息
  157 + * @param isLastGroup pageDto信息是不是最后一个楼层
  158 + */
  159 + private async analysisPageGroupCompData(pageModel: PageModel,pageDto: PageDTO, pageInfo: PageInfoDTO, isLastGroup: boolean) {
  160 +
123 if (pageDto && pageDto.compList && pageDto.compList.length > 0) { 161 if (pageDto && pageDto.compList && pageDto.compList.length > 0) {
124 - pageModel.viewType = ViewType.LOADED;  
125 - if (isLastGroup) {  
126 - // 认为分页只会在最后一个group里  
127 - pageModel.currentPage++;  
128 - }  
129 - // pageModel.currentPage++;  
130 - pageModel.hasMore = true;  
131 162
132 - //移除音频 和 活动  
133 - this.collectPageComp(pageModel, pageDto) 163 + let pageCompList: ArrayList<CompDTO> = new ArrayList() // 收集楼层组件、稿件和本地组件容器
  164 + // 遍历楼层的组件数据
  165 + pageDto.compList.forEach((element: CompDTO) => {
  166 + let contentInfo: ContentDTO = CollectionUtils.getElement(element.operDataList, 0);
  167 + //移除音频 和 活动
  168 + if (contentInfo && (contentInfo.objectType === '13' || contentInfo.objectType === '3')) {
  169 + Logger.debug(TAG, 'getGroupData 移除音频 和 活动');
  170 + } else {
  171 + // 暂时屏蔽活动和音频详情入口
  172 + if (element.operDataList[0]?.objectType === '3' || element.operDataList[0]?.objectType === '13') {
  173 + } else {
  174 + pageCompList.add(element)
  175 + }
  176 + }
  177 + })
134 178
135 - // TODO 暂时去掉互动数据,待优化。(主要是互动数据返回,如何渲染到ui上)  
136 - // TODO updateItems(sizeBefore, data),这里可能有时序问题,导致覆盖别的group数据,需要优化,考虑精准替换  
137 - // 二次请求,批查互动数据  
138 - this.allCompBatchRequest(pageDto.compList, pageModel) 179 + // pageInfor 记录
  180 + pageCompList.forEach((comp: CompDTO) => {
  181 + pageInfo.oneRequestPageGroupCompList.add(comp)
  182 + })
139 183
  184 + // pageInfor 记录广告
  185 + if (pageDto.compAdList != null) {
  186 + pageInfo.pageAdList.push(...pageDto.compAdList)
  187 + }
140 188
141 - // content级别的展现加载丢给comp自己,这里只需要处理屏蔽分页加载,pageModel.pageScroll 189 + // 检测最后一个楼层是否有一行两图卡
142 if (isLastGroup) { 190 if (isLastGroup) {
143 - closeRefresh(pageModel, true);  
144 // 最后一个楼层,特殊处理 191 // 最后一个楼层,特殊处理
145 // 检测楼层最后一个组件业务数据是否需要通过访问接口获取 192 // 检测楼层最后一个组件业务数据是否需要通过访问接口获取
146 let comp: CompDTO = pageDto.compList[pageDto.compList.length - 1] 193 let comp: CompDTO = pageDto.compList[pageDto.compList.length - 1]
147 - let compSize = CollectionUtils.getListSize(comp.operDataList)  
148 // 直播回放,需要二次请求数据 194 // 直播回放,需要二次请求数据
149 - if (compSize <= 0 && comp.compStyle == CompStyle.Zh_Grid_Layout_02) { 195 + if ( comp.compStyle == CompStyle.Zh_Grid_Layout_02) {
150 // 这个comp,数据自己二次请求,自己分页处理,这里加flag,将page层滑动及loadmore ui去掉 196 // 这个comp,数据自己二次请求,自己分页处理,这里加flag,将page层滑动及loadmore ui去掉
151 pageModel.contentNeedScroll = true 197 pageModel.contentNeedScroll = true
  198 +
  199 + //this.getLiveReviewData(pageInfo,comp)
  200 + }
  201 + }
  202 + }
  203 +
  204 + }
  205 +
  206 +
  207 + /**
  208 + * comp加载更多,分页加载
  209 + */
  210 + private compLoadMore(pageModel: PageModel) {
  211 + //聚合页
  212 + if (pageModel.pageType == 1) {
  213 + PageViewModel.postThemeList(pageModel.currentPage, pageModel.pageSize, pageModel.extra).then((liveReviewDTO) => {
  214 + if (liveReviewDTO == null || liveReviewDTO.list == null || liveReviewDTO.list.length == 0) {
  215 + pageModel.hasMore = false;
  216 + return;
  217 + } else {
  218 + //更新数据
  219 + pageModel.compList.addItems(liveReviewDTO.list);
  220 + // 直接认为有分页,一直加载分页。直到没有数据,再停止
  221 + pageModel.currentPage++;
  222 + pageModel.hasMore = true;
  223 + pageModel.pageTotalCompSize = liveReviewDTO.list.length + pageModel.pageTotalCompSize
  224 + }
  225 + }).catch((err: string | Resource) => {
  226 + promptAction.showToast({ message: err });
  227 + })
  228 + } else {
  229 + PageViewModel.getPageGroupCompData(pageModel.bizCopy())
  230 + .then((data: PageDTO) => {
  231 + if (data == null || data.compList == null || data.compList.length == 0) {
  232 + pageModel.hasMore = false;
  233 + } else {
  234 + // 直接认为有分页,一直加载分页。直到没有数据,再停止
  235 + pageModel.currentPage++;
  236 + pageModel.hasMore = true;
  237 +
  238 + //移除音频 和 活动
  239 + this.loadMorePageComp(pageModel, data)
  240 + // 参与批查
  241 + this.allCompBatchRequest(data.compList, pageModel)
  242 + }
  243 + }).catch((err: string | Resource) => {
  244 + promptAction.showToast({ message: err });
  245 + })
  246 + }
  247 + }
  248 +
  249 +
  250 + /**
  251 + * 加载更多页面组件和稿件信息
  252 + */
  253 + private loadMorePageComp(pageModel: PageModel, pageDto: PageDTO) {
  254 +
  255 + let pageCompList: ArrayList<CompDTO> = new ArrayList() // 收集页面组件、稿件和本地组件容器
  256 +
  257 + pageDto.compList.forEach((element: CompDTO) => {
  258 + let contentInfo: ContentDTO = CollectionUtils.getElement(element.operDataList, 0);
  259 + //移除音频 和 活动
  260 + if (contentInfo && (contentInfo.objectType === '13' || contentInfo.objectType === '3')) {
  261 + Logger.debug(TAG, 'getGroupData 移除音频 和 活动');
  262 + } else {
  263 + // 暂时屏蔽活动和音频详情入口
  264 + if (element.operDataList[0]?.objectType === '3' || element.operDataList[0]?.objectType === '13') {
  265 + } else {
  266 + pageCompList.add(element)
152 } 267 }
153 } 268 }
  269 +
  270 + })
  271 +
  272 + // 记录
  273 + pageModel.pageTotalCompSize = pageCompList.length + pageModel.pageTotalCompSize
  274 + // 处理页面广告数据,投放到页面的位置
  275 + this.handlePageCompAdvPostion(pageCompList, pageModel, pageDto.compAdList);
  276 +
  277 + //遍历所有组件和稿件数据 push到页面
  278 + for (let element of pageCompList) {
  279 + pageModel.compList.push(CompDTO.createNewsBean(element))
  280 + }
  281 +
  282 + }
  283 +
  284 + /**
  285 + * 信息流页面,所有稿件需要参与批查,如 批查评论、批查关注状态等接口
  286 + * @param compList
  287 + * @param pageModel
  288 + */
  289 + private allCompBatchRequest(compList: CompDTO[], pageModel: PageModel) {
  290 + PageViewModel.getInteractData(compList).then((data: InteractDataDTO[]) => {
  291 + // 刷新,替换所有数据
  292 + this.resetInteract(data, pageModel.compList)
  293 + if (pageModel?.channelId === '2001' || pageModel?.channelId === '2002') {
  294 + //早晚报意图上报
  295 + let context = getContext(this) as common.UIAbilityContext;
  296 + viewBlogInsightIntentShare(context, pageModel?.channelId, compList, ActionMode.EXPECTED)
  297 + }
  298 + })
  299 +
  300 + // 测试数据
  301 + // setTimeout(() => {
  302 + // let index = 1
  303 + // let comp = pageModel.compList.getData(index) as CompDTO
  304 + // comp.hasMore = 0
  305 + // //comp.operDataList[0].newsTitle = '测试111'
  306 + // let con :InteractDataDTO = new InteractDataDTO;
  307 + // con.commentNum=1000
  308 + // comp.operDataList[0].interactData = con
  309 + // Logger.debug("ZZZXXXXX",
  310 + // "-----setTimeout--------->" + comp.hasMore)
  311 + // }, 4 * 1000)
  312 + }
  313 +
  314 + /**
  315 + * 刷新互动数据到compList
  316 + * @param interact 批查互动数据结果
  317 + * @param compList comp list
  318 + */
  319 + private resetInteract(interact: InteractDataDTO[], compList: LazyDataSource<BaseDTO>) {
  320 + if (interact == null || interact.length == 0) {
  321 + return
154 } 322 }
  323 + let time = DateTimeUtils.getTimeStamp().toString()
  324 + interact.forEach((interactData) => {
  325 + let id = interactData.contentId;
  326 + outer: for (let i = 0; i < compList.totalCount(); i++) {
  327 + let comp = compList.getData(i) as CompDTO;
  328 + if (comp == null || comp.operDataList == null || comp.operDataList.length == 0) {
  329 + continue;
  330 + }
  331 + for (let j = 0; j < comp.operDataList.length; j++) {
  332 + let content = comp.operDataList[j];
  333 + if (content == null) {
  334 + continue;
  335 + }
  336 + if (id == content.objectId) {
  337 + content.interactData = interactData;
  338 + comp.timestamp = time
  339 + break outer;
  340 + }
  341 + }
  342 + }
  343 + })
155 } 344 }
156 345
157 346
@@ -159,9 +348,9 @@ export class PageHelper { @@ -159,9 +348,9 @@ export class PageHelper {
159 * 处理页面中的广告组件信息 348 * 处理页面中的广告组件信息
160 * @param pageDto 349 * @param pageDto
161 */ 350 */
162 - private handlePageCompAdvPostion(pageCompList: ArrayList<CompDTO>, pageModel: PageModel, pageDto: PageDTO) { 351 + private handlePageCompAdvPostion(pageCompList: ArrayList<CompDTO>, pageModel: PageModel, compAdList: CompAdvBean[]) {
163 352
164 - let compAdvList = pageDto.compAdList 353 + let compAdvList = compAdList
165 354
166 let flag = true; 355 let flag = true;
167 if (compAdvList == null) { 356 if (compAdvList == null) {
@@ -283,7 +472,7 @@ export class PageHelper { @@ -283,7 +472,7 @@ export class PageHelper {
283 } else { 472 } else {
284 pageCompList.insert(advComp, b + layoutAdvIndex) 473 pageCompList.insert(advComp, b + layoutAdvIndex)
285 } 474 }
286 - matInfo.originalPostion = pageCompList.getIndexOf(advComp) 475 + matInfo.originalPostion = pageCompList.getIndexOf(advComp)
287 476
288 layoutAdvIndex = layoutAdvIndex + 1; 477 layoutAdvIndex = layoutAdvIndex + 1;
289 478
@@ -300,143 +489,16 @@ export class PageHelper { @@ -300,143 +489,16 @@ export class PageHelper {
300 489
301 490
302 /** 491 /**
303 - * comp加载更多,分页加载  
304 - */  
305 - private compLoadMore(pageModel: PageModel) {  
306 - //聚合页  
307 - if (pageModel.pageType == 1) {  
308 - PageViewModel.postThemeList(pageModel.currentPage, pageModel.pageSize, pageModel.extra).then((liveReviewDTO) => {  
309 - if (liveReviewDTO == null || liveReviewDTO.list == null || liveReviewDTO.list.length == 0) {  
310 - pageModel.hasMore = false;  
311 - return;  
312 - } else {  
313 - //更新数据  
314 - pageModel.compList.addItems(liveReviewDTO.list);  
315 - // 直接认为有分页,一直加载分页。直到没有数据,再停止  
316 - pageModel.currentPage++;  
317 - pageModel.hasMore = true;  
318 - pageModel.pageTotalCompSize = liveReviewDTO.list.length + pageModel.pageTotalCompSize  
319 - }  
320 - }).catch((err: string | Resource) => {  
321 - promptAction.showToast({ message: err });  
322 - })  
323 - } else {  
324 - PageViewModel.getPageData(pageModel.bizCopy())  
325 - .then((data: PageDTO) => {  
326 - if (data == null || data.compList == null || data.compList.length == 0) {  
327 - pageModel.hasMore = false;  
328 - } else {  
329 - // 直接认为有分页,一直加载分页。直到没有数据,再停止  
330 - pageModel.currentPage++;  
331 - pageModel.hasMore = true;  
332 -  
333 - //移除音频 和 活动  
334 - this.collectPageComp(pageModel, data)  
335 - // 参与批查  
336 - this.allCompBatchRequest(data.compList, pageModel)  
337 - }  
338 - }).catch((err: string | Resource) => {  
339 - promptAction.showToast({ message: err });  
340 - })  
341 - }  
342 - }  
343 -  
344 - /**  
345 - * 信息流页面,所有稿件需要参与批查,如 批查评论、批查关注状态等接口  
346 - * @param compList  
347 - * @param pageModel  
348 - */  
349 - private allCompBatchRequest(compList: CompDTO[], pageModel: PageModel) {  
350 - PageViewModel.getInteractData(compList).then((data: InteractDataDTO[]) => {  
351 - // 刷新,替换所有数据  
352 - this.resetInteract(data, pageModel.compList)  
353 - if(pageModel?.channelId === '2001' || pageModel?.channelId === '2002'){  
354 - //早晚报意图上报  
355 - let context = getContext(this) as common.UIAbilityContext;  
356 - viewBlogInsightIntentShare(context, pageModel?.channelId, compList, ActionMode.EXPECTED)  
357 - }  
358 - })  
359 -  
360 - // 测试数据  
361 - // setTimeout(() => {  
362 - // let index = 1  
363 - // let comp = pageModel.compList.getData(index) as CompDTO  
364 - // comp.hasMore = 0  
365 - // //comp.operDataList[0].newsTitle = '测试111'  
366 - // let con :InteractDataDTO = new InteractDataDTO;  
367 - // con.commentNum=1000  
368 - // comp.operDataList[0].interactData = con  
369 - // Logger.debug("ZZZXXXXX",  
370 - // "-----setTimeout--------->" + comp.hasMore)  
371 - // }, 4 * 1000)  
372 - }  
373 -  
374 - /**  
375 - * 移除comp 492 + * 获取直播回看数据
376 */ 493 */
377 - private collectPageComp(pageModel: PageModel, pageDto: PageDTO) {  
378 -  
379 - let pageCompList: ArrayList<CompDTO> = new ArrayList() // 收集页面组件、稿件和本地组件容器  
380 -  
381 - pageDto.compList.forEach((element: CompDTO) => {  
382 - let contentInfo: ContentDTO = CollectionUtils.getElement(element.operDataList, 0);  
383 - //移除音频 和 活动  
384 - if (contentInfo && (contentInfo.objectType === '13' || contentInfo.objectType === '3')) {  
385 - Logger.debug(TAG, 'getGroupData 移除音频 和 活动');  
386 - } else {  
387 - // 暂时屏蔽活动和音频详情入口  
388 - if (element.operDataList[0]?.objectType === '3' || element.operDataList[0]?.objectType === '13') {  
389 - } else {  
390 - pageCompList.add(element)  
391 - }  
392 - }  
393 -  
394 - })  
395 -  
396 - // 记录  
397 - pageModel.pageTotalCompSize = pageCompList.length + pageModel.pageTotalCompSize  
398 -  
399 - // 处理页面广告数据,投放到页面的位置  
400 - this.handlePageCompAdvPostion(pageCompList, pageModel, pageDto); 494 + private async getLiveReviewData(pageInfo: PageInfoDTO,comp: CompDTO) {
401 495
402 - //遍历所有组件和稿件数据 push到页面  
403 - for (let element of pageCompList) {  
404 - pageModel.compList.push(CompDTO.createNewsBean(element))  
405 - } 496 + let currentPage = 1
  497 + let pageSize = 20
  498 + let listReviewDtoBean = await PageViewModel.getLiveReviewUrl(currentPage, pageSize) as LiveReviewDTO
  499 + Logger.error("ZZZXXXXX", 'getLiveReviewData---------'+listReviewDtoBean.list.length);
406 500
407 } 501 }
408 -  
409 - /**  
410 - * 刷新互动数据到compList  
411 - * @param interact 批查互动数据结果  
412 - * @param compList comp list  
413 - */  
414 - private resetInteract(interact: InteractDataDTO[], compList: LazyDataSource<BaseDTO>) {  
415 - if (interact == null || interact.length == 0) {  
416 - return  
417 - }  
418 - let time = DateTimeUtils.getTimeStamp().toString()  
419 - interact.forEach((interactData) => {  
420 - let id = interactData.contentId;  
421 - outer: for (let i = 0; i < compList.totalCount(); i++) {  
422 - let comp = compList.getData(i) as CompDTO;  
423 - if (comp == null || comp.operDataList == null || comp.operDataList.length == 0) {  
424 - continue;  
425 - }  
426 - for (let j = 0; j < comp.operDataList.length; j++) {  
427 - let content = comp.operDataList[j];  
428 - if (content == null) {  
429 - continue;  
430 - }  
431 - if (id == content.objectId) {  
432 - content.interactData = interactData;  
433 - comp.timestamp = time  
434 - break outer;  
435 - }  
436 - }  
437 - }  
438 - })  
439 - }  
440 } 502 }
441 503
442 504
@@ -178,7 +178,12 @@ export class PageViewModel extends BaseViewModel { @@ -178,7 +178,12 @@ export class PageViewModel extends BaseViewModel {
178 return compRes.data 178 return compRes.data
179 } 179 }
180 180
181 - async getPageData(pageModel: PageUIReqBean): Promise<PageDTO> { 181 + /**
  182 + * 获取页面楼层的组件信息
  183 + * @param pageModel
  184 + * @returns
  185 + */
  186 + async getPageGroupCompData(pageModel: PageUIReqBean): Promise<PageDTO> {
182 Logger.debug(TAG, 'getPageData pageId: ' + pageModel.pageId); 187 Logger.debug(TAG, 'getPageData pageId: ' + pageModel.pageId);
183 if (pageModel.isRecGroup) { 188 if (pageModel.isRecGroup) {
184 return this.parseComp(PageRepository.fetchRecCompData(pageModel)) 189 return this.parseComp(PageRepository.fetchRecCompData(pageModel))
@@ -273,7 +273,8 @@ export struct DetailPlayShortVideoPage { @@ -273,7 +273,8 @@ export struct DetailPlayShortVideoPage {
273 this.playerCoverBuilder() 273 this.playerCoverBuilder()
274 274
275 // 横屏-全屏观看 275 // 横屏-全屏观看
276 - if (this.videoLandScape === 1) { 276 + // 点击查看详情 不展示
  277 + if (this.videoLandScape === 1 && !this.isOpenDetail) {
277 this.playerFullscreenBuilder() 278 this.playerFullscreenBuilder()
278 } 279 }
279 } 280 }
@@ -178,7 +178,7 @@ export struct PlayerRightView { @@ -178,7 +178,7 @@ export struct PlayerRightView {
178 .width(58) 178 .width(58)
179 .position({ x: '100%', y: '100%' }) 179 .position({ x: '100%', y: '100%' })
180 .markAnchor({ x: '100%', y: '100%' }) 180 .markAnchor({ x: '100%', y: '100%' })
181 - .padding({ bottom: 10, right: 10 }) 181 + .padding({ bottom: 7, right: 10 })
182 .visibility(this.isOpenDetail || this.isDragging || this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ? 182 .visibility(this.isOpenDetail || this.isDragging || this.displayDirection === DisplayDirection.VIDEO_HORIZONTAL ?
183 Visibility.None : Visibility.Visible) 183 Visibility.None : Visibility.Visible)
184 184