douaojie

Merge remote-tracking branch 'origin/main'

# Conflicts:
#	sight_harmony/features/wdComponent/src/main/ets/components/cardCommon/CardSourceInfo.ets
@@ -133,10 +133,15 @@ export class NetworkManager { @@ -133,10 +133,15 @@ export class NetworkManager {
133 * 同步获取网络类型,耗时 133 * 同步获取网络类型,耗时
134 */ 134 */
135 public getNetTypeSync(): NetworkType { 135 public getNetTypeSync(): NetworkType {
  136 + try {
136 let netHandle = connection.getDefaultNetSync(); 137 let netHandle = connection.getDefaultNetSync();
137 let netCapabilities = connection.getNetCapabilitiesSync(netHandle) 138 let netCapabilities = connection.getNetCapabilitiesSync(netHandle)
138 this.reset(netCapabilities.bearerTypes) 139 this.reset(netCapabilities.bearerTypes)
139 return this.networkType; 140 return this.networkType;
  141 + } catch (e) {
  142 + Logger.error(TAG, 'getNetTypeSync e: ' + JSON.stringify(e))
  143 + }
  144 + return NetworkType.TYPE_UNKNOWN
140 } 145 }
141 146
142 private parseData(data: connection.NetCapabilityInfo) { 147 private parseData(data: connection.NetCapabilityInfo) {
@@ -43,7 +43,7 @@ export class NetworkUtil { @@ -43,7 +43,7 @@ export class NetworkUtil {
43 */ 43 */
44 static isNetConnected(): boolean { 44 static isNetConnected(): boolean {
45 let type = NetworkManager.getInstance().getNetType() 45 let type = NetworkManager.getInstance().getNetType()
46 - if (type == NetworkType.TYPE_NONE) { 46 + if (type == NetworkType.TYPE_UNKNOWN || type == NetworkType.TYPE_NONE) {
47 return false 47 return false
48 } 48 }
49 return true 49 return true
@@ -28,13 +28,19 @@ export struct CardSourceInfo { @@ -28,13 +28,19 @@ export struct CardSourceInfo {
28 .maxLines(1) 28 .maxLines(1)
29 .textOverflow({ overflow: TextOverflow.Ellipsis }) 29 .textOverflow({ overflow: TextOverflow.Ellipsis })
30 } 30 }
31 - if (((this.contentDTO.rmhPlatform === 1 && this.contentDTO.rmhInfo?.rmhName &&  
32 - this.contentDTO.rmhInfo?.rmhName != '') || (this.contentDTO.source && this.contentDTO.source != '')) &&  
33 - (this.getContentDtoBean()?.interactData?.commentNum ||  
34 - DateTimeUtils.getCommentTime(Number.parseFloat(this.contentDTO.publishTime)) != '')) { 31 + if (((this.contentDTO.rmhPlatform === 1 && this.contentDTO.rmhInfo?.rmhName && this.contentDTO.rmhInfo?.rmhName != '') || (this.contentDTO.source && this.contentDTO.source != '')) && (this.getContentDtoBean()?.interactData?.commentNum
  32 + // || DateTimeUtils.getCommentTime(Number.parseFloat(this.contentDTO.publishTime)) != ''
  33 + || (this.contentDTO.isSearch || this.contentDTO.isCollection ||
  34 + !this.contentDTO.isSearch && DateTimeUtils.getCommentTime
  35 + (Number
  36 + .parseFloat(this
  37 + .contentDTO.publishTime))
  38 + .indexOf
  39 + ('-') === -1)
  40 + )) {
35 Image($r("app.media.point")) 41 Image($r("app.media.point"))
36 - .width(16)  
37 - .height(16) 42 + .width(11)
  43 + .height(11)
38 } 44 }
39 // 新闻tab下的卡片,2天之前的不显示时间。但是如果是搜索情况下展示的卡片,显示时间 45 // 新闻tab下的卡片,2天之前的不显示时间。但是如果是搜索情况下展示的卡片,显示时间
40 // if (this.contentDTO.isSearch || this.contentDTO.isCollection || 46 // if (this.contentDTO.isSearch || this.contentDTO.isCollection ||
@@ -54,6 +54,7 @@ export struct Card9Component { @@ -54,6 +54,7 @@ export struct Card9Component {
54 .maxLines(2) 54 .maxLines(2)
55 .textOverflow({ overflow: TextOverflow.Ellipsis }) 55 .textOverflow({ overflow: TextOverflow.Ellipsis })
56 .margin({ top: 10, bottom: 10 }) 56 .margin({ top: 10, bottom: 10 })
  57 + .fontWeight(400)
57 } 58 }
58 // 大图 59 // 大图
59 Stack() { 60 Stack() {
@@ -17,10 +17,10 @@ export struct ZhSingleRow04 { @@ -17,10 +17,10 @@ export struct ZhSingleRow04 {
17 //顶部 17 //顶部
18 Row() { 18 Row() {
19 Row() { 19 Row() {
20 - Image($r("app.media.local_selection"))  
21 - .width(24)  
22 - .height(24)  
23 - .margin({ right: 4 }) 20 + // Image($r("app.media.local_selection"))
  21 + // .width(24)
  22 + // .height(24)
  23 + // .margin({ right: 4 })
24 Text(this.compDTO.objectTitle) 24 Text(this.compDTO.objectTitle)
25 .fontSize($r("app.float.font_size_17")) 25 .fontSize($r("app.float.font_size_17"))
26 .fontColor($r("app.color.color_222222")) 26 .fontColor($r("app.color.color_222222"))
@@ -44,7 +44,7 @@ export struct ZhSingleRow06 { @@ -44,7 +44,7 @@ export struct ZhSingleRow06 {
44 44
45 const commentInfo = this.compDTO.operDataList[0]?.commentInfo as commentInfo; 45 const commentInfo = this.compDTO.operDataList[0]?.commentInfo as commentInfo;
46 // commentLikeChange(this.item) 46 // commentLikeChange(this.item)
47 - this.newsStatusOfUser.likeStatus = this.newsStatusOfUser.likeStatus === '1' ? '0' : '1'; 47 + // this.newsStatusOfUser.likeStatus = this.newsStatusOfUser.likeStatus === '1' ? '0' : '1';
48 const commentLikeParam = { 48 const commentLikeParam = {
49 targetId: commentInfo.newsId || '', 49 targetId: commentInfo.newsId || '',
50 id: commentInfo.commentId, 50 id: commentInfo.commentId,
@@ -52,8 +52,9 @@ export struct ZhSingleRow06 { @@ -52,8 +52,9 @@ export struct ZhSingleRow06 {
52 api_status: this.newsStatusOfUser?.likeStatus == '1' ? false : true 52 api_status: this.newsStatusOfUser?.likeStatus == '1' ? false : true
53 } as commentItemModel; 53 } as commentItemModel;
54 commentViewModel.commentLike(commentLikeParam).then(() => { 54 commentViewModel.commentLike(commentLikeParam).then(() => {
55 - }).catch(() => {  
56 this.newsStatusOfUser.likeStatus = this.newsStatusOfUser.likeStatus === '1' ? '0' : '1'; 55 this.newsStatusOfUser.likeStatus = this.newsStatusOfUser.likeStatus === '1' ? '0' : '1';
  56 + }).catch((err: Error) => {
  57 + console.log('06-err', JSON.stringify(err))
57 }) 58 })
58 } 59 }
59 60
@@ -34,7 +34,7 @@ export struct ChildCommentComponent { @@ -34,7 +34,7 @@ export struct ChildCommentComponent {
34 .borderRadius(50) 34 .borderRadius(50)
35 }.width('89lpx') 35 }.width('89lpx')
36 .height('89lpx') 36 .height('89lpx')
37 - .margin({ right: '15lpx' }) 37 + .margin({ right: '3lpx' })
38 38
39 Column() { 39 Column() {
40 Text(this.data.fromUserName) 40 Text(this.data.fromUserName)
@@ -255,7 +255,7 @@ export struct PageComponent { @@ -255,7 +255,7 @@ export struct PageComponent {
255 this.pageModel.channelId = this.channelId; 255 this.pageModel.channelId = this.channelId;
256 this.pageModel.currentPage = 1; 256 this.pageModel.currentPage = 1;
257 this.pageModel.pageTotalCompSize = 0; 257 this.pageModel.pageTotalCompSize = 0;
258 - // TODO PageHelper.getInitCacheData(this.pageModel, this.pageAdvModel) 258 + PageHelper.getInitCacheData(this.pageModel, this.pageAdvModel)
259 PageHelper.getInitData(this.pageModel, this.pageAdvModel) 259 PageHelper.getInitData(this.pageModel, this.pageAdvModel)
260 }, 100) 260 }, 100)
261 } 261 }
1 import router from '@ohos.router' 1 import router from '@ohos.router'
2 -import { StringUtils } from 'wdKit'; 2 +import { NetworkUtil, StringUtils } from 'wdKit';
3 import { WDRouterPage, WDRouterRule } from 'wdRouter'; 3 import { WDRouterPage, WDRouterRule } from 'wdRouter';
4 import { editModelParams } from '../model/EditInfoModel'; 4 import { editModelParams } from '../model/EditInfoModel';
5 import { HomePageBottomCommentComponent } from '../components/mine/home/HomePageBottomCommentComponent'; 5 import { HomePageBottomCommentComponent } from '../components/mine/home/HomePageBottomCommentComponent';
6 import { HomePageBottomFollowComponent } from '../components/mine/home/HomePageBottomFollowComponent'; 6 import { HomePageBottomFollowComponent } from '../components/mine/home/HomePageBottomFollowComponent';
7 import MinePageDatasModel from '../model/MinePageDatasModel'; 7 import MinePageDatasModel from '../model/MinePageDatasModel';
  8 +import { EmptyComponent } from '../components/view/EmptyComponent';
  9 +import { CustomTitleUI } from '../components/reusable/CustomTitleUI';
8 10
9 const TAG = "MineHomePage" 11 const TAG = "MineHomePage"
10 12
@@ -33,6 +35,7 @@ struct MineHomePage { @@ -33,6 +35,7 @@ struct MineHomePage {
33 scroller: Scroller = new Scroller(); 35 scroller: Scroller = new Scroller();
34 @State params:Record<string, string> = router.getParams() as Record<string, string>; 36 @State params:Record<string, string> = router.getParams() as Record<string, string>;
35 @State isCommentEnter:string = ""; 37 @State isCommentEnter:string = "";
  38 + @State isConnectNetwork : boolean = NetworkUtil.isNetConnected()
36 39
37 onPageShow(): void { 40 onPageShow(): void {
38 this.getUserInfo() 41 this.getUserInfo()
@@ -47,6 +50,7 @@ struct MineHomePage { @@ -47,6 +50,7 @@ struct MineHomePage {
47 } 50 }
48 51
49 build() { 52 build() {
  53 + if(this.isConnectNetwork){
50 Stack({ alignContent: Alignment.Top }){ 54 Stack({ alignContent: Alignment.Top }){
51 Image($r('app.media.title_bg')) 55 Image($r('app.media.title_bg'))
52 .width('100%') 56 .width('100%')
@@ -66,19 +70,19 @@ struct MineHomePage { @@ -66,19 +70,19 @@ struct MineHomePage {
66 Stack(){ 70 Stack(){
67 Image(this.headPhotoUrl) 71 Image(this.headPhotoUrl)
68 .alt($r('app.media.default_head')) 72 .alt($r('app.media.default_head'))
69 - .width('100lpx')  
70 - .height('100lpx') 73 + .width('115lpx')
  74 + .height('115lpx')
71 .objectFit(ImageFit.Auto) 75 .objectFit(ImageFit.Auto)
72 - .borderRadius(50) 76 + .clip(new Circle({ width: '115lpx', height: '115lpx' }))
73 Image(this.levelHead) 77 Image(this.levelHead)
74 - .width('130lpx')  
75 - .height('130lpx')  
76 - .objectFit(ImageFit.Cover) 78 + .width('165lpx')
  79 + .height('165lpx')
  80 + .objectFit(ImageFit.Auto)
77 }.onClick(()=>{ 81 }.onClick(()=>{
78 let params = {'headPhotoUrl': this.headPhotoUrl} as Record<string, string>; 82 let params = {'headPhotoUrl': this.headPhotoUrl} as Record<string, string>;
79 WDRouterRule.jumpWithPage(WDRouterPage.showUserHeaderPage,params) 83 WDRouterRule.jumpWithPage(WDRouterPage.showUserHeaderPage,params)
80 - }).width('135lpx')  
81 - .height('135lpx') 84 + }).width('165lpx')
  85 + .height('165lpx')
82 86
83 Column() { 87 Column() {
84 Row() { 88 Row() {
@@ -95,15 +99,17 @@ struct MineHomePage { @@ -95,15 +99,17 @@ struct MineHomePage {
95 } 99 }
96 WDRouterRule.jumpWithPage(WDRouterPage.editUserNikeNamePage,params) 100 WDRouterRule.jumpWithPage(WDRouterPage.editUserNikeNamePage,params)
97 }) 101 })
  102 +
98 if(this.levelId>0){ 103 if(this.levelId>0){
99 Text(`等级${this.levelId}`) 104 Text(`等级${this.levelId}`)
100 - .textAlign(TextAlign.Center)  
101 .fontColor($r('app.color.color_ED2800')) 105 .fontColor($r('app.color.color_ED2800'))
102 - .backgroundColor($r('app.color.white'))  
103 - .fontSize('19lpx')  
104 - .width('96lpx')  
105 - .height('35lpx') 106 + .fontSize('23lpx')
  107 + .fontWeight(500)
106 .margin({ left: '10lpx' }) 108 .margin({ left: '10lpx' })
  109 + .backgroundImage($r("app.media.my_grade_bg"))
  110 + .backgroundImageSize(ImageSize.Cover)
  111 + .padding({left:"17lpx",right:"8lpx"})
  112 + .height('35lpx')
107 } 113 }
108 114
109 Blank() 115 Blank()
@@ -145,7 +151,7 @@ struct MineHomePage { @@ -145,7 +151,7 @@ struct MineHomePage {
145 }.margin({ left: '15lpx' }) 151 }.margin({ left: '15lpx' })
146 }.margin({ top: '23lpx' }) 152 }.margin({ top: '23lpx' })
147 }.alignItems(HorizontalAlign.Start) 153 }.alignItems(HorizontalAlign.Start)
148 - .margin({ left: '32lpx' }) 154 + .margin({ left: StringUtils.isEmpty(this.levelHead)?'32lpx':"3lpx" })
149 } 155 }
150 .onAreaChange((oldValue: Area, newValue: Area) => { 156 .onAreaChange((oldValue: Area, newValue: Area) => {
151 if (this.firstPositionY === 0) { 157 if (this.firstPositionY === 0) {
@@ -161,7 +167,9 @@ struct MineHomePage { @@ -161,7 +167,9 @@ struct MineHomePage {
161 .backgroundColor($r('app.color.color_transparent')) 167 .backgroundColor($r('app.color.color_transparent'))
162 .height('184lpx') 168 .height('184lpx')
163 .width('100%') 169 .width('100%')
164 - .padding({ left: '35lpx' }) 170 + .padding({ left: '6lpx' })
  171 +
  172 +
165 //用户简介区域 173 //用户简介区域
166 Column() { 174 Column() {
167 Row() { 175 Row() {
@@ -257,6 +265,20 @@ struct MineHomePage { @@ -257,6 +265,20 @@ struct MineHomePage {
257 } 265 }
258 }.width('100%') 266 }.width('100%')
259 .layoutWeight(1) 267 .layoutWeight(1)
  268 + }else{
  269 + Column(){
  270 + CustomTitleUI({ titleName: "" })
  271 +
  272 + EmptyComponent({ emptyType: 1,emptyHeight:"100%" ,retry: () => {
  273 + this.isConnectNetwork = NetworkUtil.isNetConnected()
  274 + if(this.isConnectNetwork){
  275 + this.getUserInfo()
  276 + }
  277 + },})
  278 + .layoutWeight(1)
  279 + .width('100%')
  280 + }
  281 + }
260 282
261 } 283 }
262 @Builder MineHomeTitleTransparent() { 284 @Builder MineHomeTitleTransparent() {
1 import router from '@ohos.router' 1 import router from '@ohos.router'
2 import { Params } from 'wdBean'; 2 import { Params } from 'wdBean';
3 -import { StringUtils } from 'wdKit'; 3 +import { NetworkUtil, StringUtils } from 'wdKit';
4 import { OtherHomePageBottomCommentComponent } from '../components/mine/home/OtherHomePageBottomCommentComponent'; 4 import { OtherHomePageBottomCommentComponent } from '../components/mine/home/OtherHomePageBottomCommentComponent';
5 import { OtherHomePageBottomFollowComponent } from '../components/mine/home/OtherHomePageBottomFollowComponent'; 5 import { OtherHomePageBottomFollowComponent } from '../components/mine/home/OtherHomePageBottomFollowComponent';
  6 +import { CustomTitleUI } from '../components/reusable/CustomTitleUI';
  7 +import { EmptyComponent } from '../components/view/EmptyComponent';
6 import MinePageDatasModel from '../model/MinePageDatasModel'; 8 import MinePageDatasModel from '../model/MinePageDatasModel';
7 import { OtherUserDetailRequestItem } from '../viewmodel/OtherUserDetailRequestItem'; 9 import { OtherUserDetailRequestItem } from '../viewmodel/OtherUserDetailRequestItem';
8 10
@@ -39,6 +41,7 @@ struct OtherNormalUserHomePage { @@ -39,6 +41,7 @@ struct OtherNormalUserHomePage {
39 @State attentionNum:number = 0//关注数 41 @State attentionNum:number = 0//关注数
40 @State desc:string = "" 42 @State desc:string = ""
41 userType:string = "1" 43 userType:string = "1"
  44 + @State isConnectNetwork : boolean = NetworkUtil.isNetConnected()
42 45
43 aboutToAppear(){ 46 aboutToAppear(){
44 this.getUserInfo() 47 this.getUserInfo()
@@ -47,6 +50,7 @@ struct OtherNormalUserHomePage { @@ -47,6 +50,7 @@ struct OtherNormalUserHomePage {
47 50
48 51
49 build() { 52 build() {
  53 + if(this.isConnectNetwork){
50 Stack({ alignContent: Alignment.Top }){ 54 Stack({ alignContent: Alignment.Top }){
51 Image($r('app.media.title_bg')) 55 Image($r('app.media.title_bg'))
52 .width('100%') 56 .width('100%')
@@ -66,15 +70,14 @@ struct OtherNormalUserHomePage { @@ -66,15 +70,14 @@ struct OtherNormalUserHomePage {
66 Stack(){ 70 Stack(){
67 Image(this.headPhotoUrl) 71 Image(this.headPhotoUrl)
68 .alt($r('app.media.default_head')) 72 .alt($r('app.media.default_head'))
69 - .width('100lpx')  
70 - .height('100lpx') 73 + .width('115lpx')
  74 + .height('115lpx')
71 .objectFit(ImageFit.Cover) 75 .objectFit(ImageFit.Cover)
72 - .borderRadius(50) 76 + .clip(new Circle({ width: '115lpx', height: '115lpx' }))
73 Image(this.levelHead) 77 Image(this.levelHead)
74 - .width('130lpx')  
75 - .height('130lpx') 78 + .width('165lpx')
  79 + .height('165lpx')
76 .objectFit(ImageFit.Cover) 80 .objectFit(ImageFit.Cover)
77 - .borderRadius(50)  
78 } 81 }
79 82
80 Column() { 83 Column() {
@@ -87,14 +90,17 @@ struct OtherNormalUserHomePage { @@ -87,14 +90,17 @@ struct OtherNormalUserHomePage {
87 .lineHeight('50lpx') 90 .lineHeight('50lpx')
88 .fontWeight('500lpx') 91 .fontWeight('500lpx')
89 92
  93 + if(this.levelId>0){
90 Text(`等级${this.levelId}`) 94 Text(`等级${this.levelId}`)
91 - .textAlign(TextAlign.Center)  
92 .fontColor($r('app.color.color_ED2800')) 95 .fontColor($r('app.color.color_ED2800'))
93 - .backgroundColor($r('app.color.white'))  
94 - .fontSize('19lpx')  
95 - .width('96lpx')  
96 - .height('35lpx') 96 + .fontSize('23lpx')
  97 + .fontWeight(500)
97 .margin({ left: '10lpx' }) 98 .margin({ left: '10lpx' })
  99 + .backgroundImage($r("app.media.my_grade_bg"))
  100 + .backgroundImageSize(ImageSize.Cover)
  101 + .padding({left:"17lpx",right:"8lpx"})
  102 + .height('35lpx')
  103 + }
98 Blank() 104 Blank()
99 }.width('507lpx') 105 }.width('507lpx')
100 106
@@ -134,7 +140,7 @@ struct OtherNormalUserHomePage { @@ -134,7 +140,7 @@ struct OtherNormalUserHomePage {
134 }.margin({ left: '15lpx' }) 140 }.margin({ left: '15lpx' })
135 }.margin({ top: '23lpx' }) 141 }.margin({ top: '23lpx' })
136 }.alignItems(HorizontalAlign.Start) 142 }.alignItems(HorizontalAlign.Start)
137 - .margin({ left: '32lpx' }) 143 + .margin({ left: StringUtils.isEmpty(this.levelHead)?'32lpx':"3lpx" })
138 } 144 }
139 .onAreaChange((oldValue: Area, newValue: Area) => { 145 .onAreaChange((oldValue: Area, newValue: Area) => {
140 if (this.firstPositionY === 0) { 146 if (this.firstPositionY === 0) {
@@ -150,7 +156,7 @@ struct OtherNormalUserHomePage { @@ -150,7 +156,7 @@ struct OtherNormalUserHomePage {
150 .backgroundColor($r('app.color.color_transparent')) 156 .backgroundColor($r('app.color.color_transparent'))
151 .height('184lpx') 157 .height('184lpx')
152 .width('100%') 158 .width('100%')
153 - .padding({ left: '35lpx' }) 159 + .padding({ left: '6lpx' })
154 160
155 //用户简介区域 161 //用户简介区域
156 if(StringUtils.isNotEmpty(this.desc)){ 162 if(StringUtils.isNotEmpty(this.desc)){
@@ -226,6 +232,20 @@ struct OtherNormalUserHomePage { @@ -226,6 +232,20 @@ struct OtherNormalUserHomePage {
226 } 232 }
227 }.width('100%') 233 }.width('100%')
228 .layoutWeight(1) 234 .layoutWeight(1)
  235 + }else{
  236 + Column(){
  237 + CustomTitleUI({ titleName: "" })
  238 +
  239 + EmptyComponent({ emptyType: 1,emptyHeight:"100%" ,retry: () => {
  240 + this.isConnectNetwork = NetworkUtil.isNetConnected()
  241 + if(this.isChangeToUserEdit){
  242 + this.getUserInfo()
  243 + }
  244 + },})
  245 + .layoutWeight(1)
  246 + .width('100%')
  247 + }
  248 + }
229 249
230 } 250 }
231 @Builder MineHomeTitleTransparent() { 251 @Builder MineHomeTitleTransparent() {
1 import { CompDTO, ContentDTO, InteractDataDTO, LiveReviewDTO, LiveRoomDataBean, PageDTO, PageInfoDTO } from 'wdBean'; 1 import { CompDTO, ContentDTO, InteractDataDTO, LiveReviewDTO, LiveRoomDataBean, 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, ToastUtils } from 'wdKit';
4 import { closeRefresh } from '../utils/PullDownRefresh'; 4 import { closeRefresh } from '../utils/PullDownRefresh';
5 import PageModel from './PageModel'; 5 import PageModel from './PageModel';
6 import PageViewModel from './PageViewModel'; 6 import PageViewModel from './PageViewModel';
@@ -33,9 +33,16 @@ export class PageHelper { @@ -33,9 +33,16 @@ export class PageHelper {
33 * 刷新数据 33 * 刷新数据
34 */ 34 */
35 async refreshUI(pageModel: PageModel, pageAdvModel: PageAdModel) { 35 async refreshUI(pageModel: PageModel, pageAdvModel: PageAdModel) {
  36 + let netStatus = NetworkUtil.isNetConnected()
  37 + if (!netStatus) {
  38 + ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000)
  39 + setTimeout(() => {
  40 + closeRefresh(pageModel, false)
  41 + }, 500)
  42 + return
  43 + }
36 pageModel.loadStrategy = 2 44 pageModel.loadStrategy = 2
37 pageModel.pageTotalCompSize = 0; 45 pageModel.pageTotalCompSize = 0;
38 - // TODO 下拉刷新,是否加载缓存  
39 this.getPageInfo(pageModel, pageAdvModel) 46 this.getPageInfo(pageModel, pageAdvModel)
40 } 47 }
41 48
@@ -43,6 +50,11 @@ export class PageHelper { @@ -43,6 +50,11 @@ export class PageHelper {
43 * 分页加载 50 * 分页加载
44 */ 51 */
45 async loadMore(pageModel: PageModel) { 52 async loadMore(pageModel: PageModel) {
  53 + let netStatus = NetworkUtil.isNetConnected()
  54 + if (!netStatus) {
  55 + ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000)
  56 + return
  57 + }
46 pageModel.loadStrategy = 3 58 pageModel.loadStrategy = 3
47 // 暂只支持comp分页加载,节目分页加载的得完善框架(如直播回看节目数据分页) 59 // 暂只支持comp分页加载,节目分页加载的得完善框架(如直播回看节目数据分页)
48 this.compLoadMore(pageModel) 60 this.compLoadMore(pageModel)
@@ -52,55 +64,20 @@ export class PageHelper { @@ -52,55 +64,20 @@ export class PageHelper {
52 * 进页面请求数据 64 * 进页面请求数据
53 */ 65 */
54 async getInitCacheData(pageModel: PageModel, pageAdvModel: PageAdModel) { 66 async getInitCacheData(pageModel: PageModel, pageAdvModel: PageAdModel) {
55 - Logger.error('zzzz', 'getInitCacheData') 67 + Logger.debug(TAG, 'getInitCacheData')
56 PageViewModel.getPageInfoCache(pageModel.pageId).then(pageInfo => { 68 PageViewModel.getPageInfoCache(pageModel.pageId).then(pageInfo => {
  69 + Logger.debug(TAG, 'getInitCacheData back: ' + pageInfo)
57 if (pageInfo == null) { 70 if (pageInfo == null) {
58 return; 71 return;
59 } 72 }
60 pageModel.pageInfo = pageInfo; 73 pageModel.pageInfo = pageInfo;
  74 + pageModel.cachePageInfoMd5 = pageInfo.md5
61 //解析页面挂角广告资源 75 //解析页面挂角广告资源
62 pageAdvModel.analysisAdvSource(pageInfo); 76 pageAdvModel.analysisAdvSource(pageInfo);
63 - this.parseCacheGroup(pageModel) 77 + this.parseGroup(pageModel, true)
64 }) 78 })
65 } 79 }
66 80
67 - async parseCacheGroup(pageModel: PageModel) {  
68 - Logger.error('zzzz', 'parseCacheGroup')  
69 - let pageInfo: PageInfoDTO = pageModel.pageInfo  
70 - pageModel.groupList = []  
71 - pageInfo.pageAdList = []  
72 - pageInfo.oneRequestPageGroupCompList = new ArrayList()  
73 - pageModel.groupList.push(...pageInfo.groups)  
74 - for (const group of pageInfo.groups) {  
75 - pageModel.groupId = group.id;  
76 - pageModel.groupData = group  
77 - // await,确保groups接口顺序执行  
78 - let pageDto = await PageViewModel.getPageGroupCacheData(pageModel.bizCopy()) as PageDTO  
79 - let index = pageInfo.groups.indexOf(group)  
80 - if (index == 0) {  
81 - // 清空comp列表  
82 - pageModel.compList.clear()  
83 - }  
84 - this.analysisPageGroupCompData(pageDto, pageInfo)  
85 - }  
86 -  
87 - // 收集页面所有楼层的组件信息,同步完成广告投放计算,异步完成稿件批查,  
88 -  
89 - pageModel.pageTotalCompSize = pageInfo.oneRequestPageGroupCompList.length + pageModel.pageTotalCompSize  
90 - // 处理页面广告数据,投放到页面的位置  
91 - // TODO 缓存数据不加载广告  
92 - // this.handlePageCompAdvPostion(pageInfo.oneRequestPageGroupCompList, pageModel, pageInfo.pageAdList);  
93 -  
94 - //遍历所有组件和稿件数据 push到页面  
95 - for (let element of pageInfo.oneRequestPageGroupCompList) {  
96 - pageModel.compList.push(CompDTO.createNewsBean(element))  
97 - }  
98 - pageModel.currentPage++  
99 - pageModel.viewType = ViewType.LOADED  
100 - closeRefresh(pageModel, true)  
101 -  
102 - }  
103 -  
104 /** 81 /**
105 * 进页面请求数据 82 * 进页面请求数据
106 */ 83 */
@@ -134,33 +111,51 @@ export class PageHelper { @@ -134,33 +111,51 @@ export class PageHelper {
134 promptAction.showToast({ message: err }); 111 promptAction.showToast({ message: err });
135 }) 112 })
136 } else { 113 } else {
  114 + Logger.debug(TAG, 'getPageInfo')
137 PageViewModel.getPageInfo(pageModel.pageId).then(pageInfo => { 115 PageViewModel.getPageInfo(pageModel.pageId).then(pageInfo => {
  116 + Logger.debug(TAG, 'getPageInfo back: ' + JSON.stringify(pageInfo))
138 if (pageInfo == null) { 117 if (pageInfo == null) {
139 pageModel.viewType = ViewType.EMPTY; 118 pageModel.viewType = ViewType.EMPTY;
140 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoContent1; 119 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoContent1;
141 return; 120 return;
142 } 121 }
143 pageModel.pageInfo = pageInfo; 122 pageModel.pageInfo = pageInfo;
  123 + if (pageInfo.md5 == pageModel.cachePageInfoMd5) {
  124 + // 缓存一致,不解析
  125 + Logger.debug(TAG, 'getPageInfo 与缓存一致,不解析广告。。。')
  126 + } else {
  127 + Logger.debug(TAG, 'getPageInfo 要解析广告')
  128 + if (pageModel.currentPage == 1) {
  129 + // 保存缓存
  130 + CacheData.saveCacheData(CacheData.comPageInfoCacheKey + pageModel.pageId, pageInfo, pageInfo.md5)
  131 + }
144 //解析页面挂角广告资源 132 //解析页面挂角广告资源
145 pageAdvModel.analysisAdvSource(pageInfo); 133 pageAdvModel.analysisAdvSource(pageInfo);
146 - this.parseGroup(pageModel)  
147 - // if (pageModel.currentPage == 1) {  
148 - // // 保存缓存  
149 - // CacheData.saveCacheData(CacheData.comPageInfoCacheKey + pageModel.pageId, pageInfo, pageInfo.md5)  
150 - // } 134 + }
  135 + Logger.debug(TAG, 'getPageInfo go on')
  136 + this.parseGroup(pageModel, false)
151 }).catch(() => { 137 }).catch(() => {
  138 + if (this.isPageLoaded(pageModel)) {
  139 + return
  140 + }
152 pageModel.viewType = ViewType.EMPTY; 141 pageModel.viewType = ViewType.EMPTY;
153 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_ContentFailed; 142 pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_ContentFailed;
154 }) 143 })
155 } 144 }
156 } 145 }
157 146
  147 + private isPageLoaded(pageModel: PageModel) {
  148 + if (pageModel.compList.size() > 0) {
  149 + return true
  150 + }
  151 + return false
  152 + }
158 153
159 /** 154 /**
160 * 解析信息流页面楼层数据 155 * 解析信息流页面楼层数据
161 * @param pageModel 156 * @param pageModel
162 */ 157 */
163 - async parseGroup(pageModel: PageModel) { 158 + async parseGroup(pageModel: PageModel, isCache: boolean) {
164 let pageInfo: PageInfoDTO = pageModel.pageInfo 159 let pageInfo: PageInfoDTO = pageModel.pageInfo
165 pageModel.groupList = [] 160 pageModel.groupList = []
166 pageInfo.pageAdList = [] 161 pageInfo.pageAdList = []
@@ -177,8 +172,26 @@ export class PageHelper { @@ -177,8 +172,26 @@ export class PageHelper {
177 pageModel.groupData = group 172 pageModel.groupData = group
178 173
179 //Logger.error("ZZZXXXXX", '楼层id-start--》' + pageModel.groupId); 174 //Logger.error("ZZZXXXXX", '楼层id-start--》' + pageModel.groupId);
  175 + let pageDto: PageDTO
  176 + Logger.debug(TAG, 'parseGroup isCache: ' + isCache)
  177 + if (isCache) {
  178 + pageDto = await PageViewModel.getPageGroupCacheData(pageModel.bizCopy()) as PageDTO
  179 + pageModel.cacheGroupInfoMd5 = pageDto.md5
  180 + } else {
  181 + pageDto = await PageViewModel.getPageGroupCompData(pageModel.bizCopy()) as PageDTO
  182 + if (pageDto.md5 == pageModel.cacheGroupInfoMd5) {
  183 + Logger.debug(TAG, 'parseGroup cache load, return: ' + pageDto.md5)
  184 + // 缓存数据一致,不再刷新
  185 + return
  186 + }
  187 + Logger.debug(TAG, 'parseGroup cache load, save: ')
  188 + // 保存缓存
  189 + CacheData.saveCacheData(CacheData.compGroupInfoDataCacheKey + pageModel.pageId + pageModel.groupId, pageDto,
  190 + pageDto.md5)
  191 + }
  192 + Logger.debug(TAG, 'parseGroup go on')
180 // await,确保groups接口顺序执行 193 // await,确保groups接口顺序执行
181 - let pageDto = await PageViewModel.getPageGroupCompData(pageModel.bizCopy()) as PageDTO 194 + // let pageDto = page
182 let index = pageInfo.groups.indexOf(group) 195 let index = pageInfo.groups.indexOf(group)
183 196
184 // 解析楼层组件 197 // 解析楼层组件
@@ -197,9 +210,6 @@ export class PageHelper { @@ -197,9 +210,6 @@ export class PageHelper {
197 } else { 210 } else {
198 pageInfo.lastCompSourceType = 0 211 pageInfo.lastCompSourceType = 0
199 } 212 }
200 - // // 保存缓存  
201 - // CacheData.saveCacheData(CacheData.compGroupInfoDataCacheKey + pageModel.pageId + pageModel.groupId, pageDto,  
202 - // pageDto.md5)  
203 } 213 }
204 } 214 }
205 215
@@ -63,6 +63,10 @@ export default class PageModel { @@ -63,6 +63,10 @@ export default class PageModel {
63 pageType: number = 0; 63 pageType: number = 0;
64 64
65 extra: string = '' 65 extra: string = ''
  66 + // 缓存数据相关
  67 + cachePageInfoMd5: string = ''
  68 + cacheGroupInfoMd5: string = ''
  69 +
66 /** 70 /**
67 * 简单复制业务数据 71 * 简单复制业务数据
68 */ 72 */
@@ -16,6 +16,7 @@ import { HostEnum, HostManager, WDHttp } from 'wdNetwork/Index' @@ -16,6 +16,7 @@ import { HostEnum, HostManager, WDHttp } from 'wdNetwork/Index'
16 import { registerRouter } from 'wdRouter/Index' 16 import { registerRouter } from 'wdRouter/Index'
17 import { TrackingModule } from 'wdTracking/Index' 17 import { TrackingModule } from 'wdTracking/Index'
18 import { JSON } from '@kit.ArkTS' 18 import { JSON } from '@kit.ArkTS'
  19 +import app from '@system.app'
19 20
20 const TAG = "[StartupManager]" 21 const TAG = "[StartupManager]"
21 22
@@ -36,6 +37,8 @@ export class StartupManager { @@ -36,6 +37,8 @@ export class StartupManager {
36 appOnCreate(want: Want, launchParam: AbilityConstant.LaunchParam, context: common.UIAbilityContext) { 37 appOnCreate(want: Want, launchParam: AbilityConstant.LaunchParam, context: common.UIAbilityContext) {
37 Logger.debug(TAG, "App onCreate: " + `\nwant: ${want}\nlaunchParam: ${launchParam}`) 38 Logger.debug(TAG, "App onCreate: " + `\nwant: ${want}\nlaunchParam: ${launchParam}`)
38 this.context = context 39 this.context = context
  40 + // 设置图片文件数据缓存上限为200MB (200MB=200*1024*1024B=209715200B)
  41 + app.setImageFileCacheSize(209715200)
39 42
40 // KV存储 43 // KV存储
41 SPHelper.init(context); 44 SPHelper.init(context);