yuzhilin

图文列表缺省页

@@ -6,7 +6,8 @@ import { @@ -6,7 +6,8 @@ import {
6 H5ReceiveDetailBean, 6 H5ReceiveDetailBean,
7 ResponseBean 7 ResponseBean
8 } from 'wdBean'; 8 } from 'wdBean';
9 -import { Logger } from 'wdKit'; 9 +import { Logger, SPHelper } from 'wdKit';
  10 +import { SpConstants } from 'wdConstant';
10 import { WdWebLocalComponent } from 'wdWebComponent'; 11 import { WdWebLocalComponent } from 'wdWebComponent';
11 import { NativeCallH5Type } from 'wdWebComponent/src/main/ets/pages/NativeCallH5Type'; 12 import { NativeCallH5Type } from 'wdWebComponent/src/main/ets/pages/NativeCallH5Type';
12 import { BridgeWebViewControl } from 'wdJsBridge/Index'; 13 import { BridgeWebViewControl } from 'wdJsBridge/Index';
@@ -22,7 +23,7 @@ export struct ImageAndTextWebComponent { @@ -22,7 +23,7 @@ export struct ImageAndTextWebComponent {
22 private webPrepared = false; 23 private webPrepared = false;
23 private dataPrepared = false; 24 private dataPrepared = false;
24 25
25 - onDetailDataUpdated() { 26 + async onDetailDataUpdated() {
26 if (this.action) { 27 if (this.action) {
27 let contentId: string = '' 28 let contentId: string = ''
28 let contentType: string = '' 29 let contentType: string = ''
@@ -30,6 +31,8 @@ export struct ImageAndTextWebComponent { @@ -30,6 +31,8 @@ export struct ImageAndTextWebComponent {
30 let channelId: string = '' 31 let channelId: string = ''
31 let compId: string = '' 32 let compId: string = ''
32 let sourcePage: string = '5' 33 let sourcePage: string = '5'
  34 + let creatorId = await SPHelper.default.get(SpConstants.USER_CREATOR_ID, '') || ''
  35 + let isLogin = await SPHelper.default.get(SpConstants.USER_STATUS, '') || '0'
33 if (this.action.params) { 36 if (this.action.params) {
34 if (this.action.params.contentID) { 37 if (this.action.params.contentID) {
35 contentId = this.action.params?.contentID 38 contentId = this.action.params?.contentID
@@ -56,8 +59,8 @@ export struct ImageAndTextWebComponent { @@ -56,8 +59,8 @@ export struct ImageAndTextWebComponent {
56 59
57 // TODO 对接user信息、登录情况 60 // TODO 对接user信息、登录情况
58 let h5ReceiveDataExtraBean: H5ReceiveDataExtraBean = { 61 let h5ReceiveDataExtraBean: H5ReceiveDataExtraBean = {
59 - creatorId: '',  
60 - isLogin: '0', 62 + creatorId: creatorId,
  63 + isLogin: isLogin,
61 networkStatus: 1, 64 networkStatus: 1,
62 loadImageOnlyWifiSwitch: '2', 65 loadImageOnlyWifiSwitch: '2',
63 66
1 import { CommonConstants, ViewType } from 'wdConstant'; 1 import { CommonConstants, ViewType } from 'wdConstant';
2 import { Logger } from 'wdKit'; 2 import { Logger } from 'wdKit';
3 import PageViewModel from '../../viewmodel/PageViewModel'; 3 import PageViewModel from '../../viewmodel/PageViewModel';
4 -import { EmptyComponent } from '../view/EmptyComponent'; 4 +import { EmptyComponent, WDViewDefaultType } from '../view/EmptyComponent';
5 import { ErrorComponent } from '../view/ErrorComponent'; 5 import { ErrorComponent } from '../view/ErrorComponent';
6 import PageModel from '../../viewmodel/PageModel'; 6 import PageModel from '../../viewmodel/PageModel';
7 import { listTouchEvent } from '../../utils/PullDownRefresh'; 7 import { listTouchEvent } from '../../utils/PullDownRefresh';
@@ -31,14 +31,18 @@ export struct PageComponent { @@ -31,14 +31,18 @@ export struct PageComponent {
31 build() { 31 build() {
32 Column() { 32 Column() {
33 if (this.pageModel.viewType == ViewType.LOADING) { 33 if (this.pageModel.viewType == ViewType.LOADING) {
34 - // LoadingComponent()  
35 this.LoadingLayout() 34 this.LoadingLayout()
36 - } else if (this.pageModel.viewType == ViewType.ERROR) {  
37 - ErrorComponent()  
38 - } else if (this.pageModel.viewType == ViewType.EMPTY) {  
39 - EmptyComponent()  
40 - } else { 35 + } else if (this.pageModel.viewType == ViewType.LOADED) {
41 this.ListLayout() 36 this.ListLayout()
  37 + } else if (this.pageModel.viewType == ViewType.EMPTY) {
  38 + //缺省页
  39 + EmptyComponent({
  40 + emptyType: this.pageModel.emptyType,
  41 + emptyButton: true,
  42 + retry: () => {
  43 + this.getData()
  44 + }
  45 + })
42 } 46 }
43 } 47 }
44 .width(CommonConstants.FULL_PARENT) 48 .width(CommonConstants.FULL_PARENT)
1 import { PageDTO, CompDTO, PageInfoDTO, ContentDTO } from 'wdBean'; 1 import { PageDTO, CompDTO, PageInfoDTO, ContentDTO } from 'wdBean';
2 import { CompStyle, ViewType } from 'wdConstant/Index'; 2 import { CompStyle, ViewType } from 'wdConstant/Index';
3 -import { CollectionUtils, DateTimeUtils, Logger } from 'wdKit'; 3 +import { CollectionUtils, DateTimeUtils, Logger, NetworkUtil } 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';
7 import { promptAction } from '@kit.ArkUI'; 7 import { promptAction } from '@kit.ArkUI';
8 import { AdvRuleBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean'; 8 import { AdvRuleBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
9 import PageAdModel from './PageAdvModel'; 9 import PageAdModel from './PageAdvModel';
  10 +import { WDViewDefaultType } from '../components/view/EmptyComponent';
10 11
11 const TAG = 'PageHelper'; 12 const TAG = 'PageHelper';
12 13
@@ -14,14 +15,12 @@ const TAG = 'PageHelper'; @@ -14,14 +15,12 @@ const TAG = 'PageHelper';
14 * 处理返回后的数据 15 * 处理返回后的数据
15 */ 16 */
16 export class PageHelper { 17 export class PageHelper {
17 -  
18 -  
19 /** 18 /**
20 * 刷新数据 19 * 刷新数据
21 */ 20 */
22 - async refreshUI(pageModel: PageModel,pageAdvModel:PageAdModel) { 21 + async refreshUI(pageModel: PageModel, pageAdvModel: PageAdModel) {
23 pageModel.loadStrategy = 2 22 pageModel.loadStrategy = 2
24 - this.getPageInfo(pageModel,pageAdvModel) 23 + this.getPageInfo(pageModel, pageAdvModel)
25 } 24 }
26 25
27 /** 26 /**
@@ -36,28 +35,36 @@ export class PageHelper { @@ -36,28 +35,36 @@ export class PageHelper {
36 /** 35 /**
37 * 进页面请求数据 36 * 进页面请求数据
38 */ 37 */
39 - async getInitData(pageModel: PageModel,pageAdvModel:PageAdModel) { 38 + async getInitData(pageModel: PageModel, pageAdvModel: PageAdModel) {
40 pageModel.loadStrategy = 1 39 pageModel.loadStrategy = 1
41 - this.getPageInfo(pageModel,pageAdvModel) 40 + let netStatus = NetworkUtil.isNetConnected()
  41 + if (netStatus) {
  42 + this.getPageInfo(pageModel, pageAdvModel)
  43 + } else {
  44 + pageModel.viewType = ViewType.EMPTY;
  45 + pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoNetwork;
  46 + }
42 } 47 }
43 48
44 - async getPageInfo(pageModel: PageModel,pageAdvModel:PageAdModel) { 49 + getPageInfo(pageModel: PageModel, pageAdvModel: PageAdModel) {
45 pageModel.currentPage = 1; 50 pageModel.currentPage = 1;
46 - let pageInfo = await PageViewModel.getPageInfo(pageModel.pageId);  
47 - if (pageInfo == null) { 51 + PageViewModel.getPageInfo(pageModel.pageId).then(pageInfo => {
  52 + if (pageInfo == null) {
  53 + pageModel.viewType = ViewType.EMPTY;
  54 + pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoListContent;
  55 + return;
  56 + }
  57 + pageModel.pageInfo = pageInfo;
  58 + //解析广告资源
  59 + pageAdvModel.analysisAdvSource(pageInfo);
  60 + this.parseGroup(pageModel)
  61 + }).catch(() => {
48 pageModel.viewType = ViewType.EMPTY; 62 pageModel.viewType = ViewType.EMPTY;
49 - return;  
50 - }  
51 - pageModel.pageInfo = pageInfo;  
52 - //解析广告资源  
53 - pageAdvModel.analysisAdvSource(pageInfo)  
54 -  
55 - this.parseGroup(pageModel)  
56 - 63 + pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_ContentFailed;
  64 + })
57 } 65 }
58 66
59 67
60 -  
61 async parseGroup(pageModel: PageModel) { 68 async parseGroup(pageModel: PageModel) {
62 let pageInfo: PageInfoDTO = pageModel.pageInfo 69 let pageInfo: PageInfoDTO = pageModel.pageInfo
63 pageModel.groupList = [] 70 pageModel.groupList = []
@@ -84,6 +91,8 @@ export class PageHelper { @@ -84,6 +91,8 @@ export class PageHelper {
84 // 没数据,展示空页面 91 // 没数据,展示空页面
85 Logger.debug(TAG, 'aboutToAppear, data response page ' + pageModel.pageId + ', comp list is empty.'); 92 Logger.debug(TAG, 'aboutToAppear, data response page ' + pageModel.pageId + ', comp list is empty.');
86 pageModel.viewType = ViewType.EMPTY; 93 pageModel.viewType = ViewType.EMPTY;
  94 + pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoListContent;
  95 +
87 } 96 }
88 } 97 }
89 98
@@ -5,6 +5,7 @@ import { RefreshConstants as Const } from '../utils/RefreshConstants'; @@ -5,6 +5,7 @@ import { RefreshConstants as Const } from '../utils/RefreshConstants';
5 import { PageUIReqBean } from '../components/page/bean/PageUIReqBean'; 5 import { PageUIReqBean } from '../components/page/bean/PageUIReqBean';
6 import { GroupInfoDTO, PageInfoDTO } from 'wdBean/src/main/ets/bean/navigation/PageInfoDTO'; 6 import { GroupInfoDTO, PageInfoDTO } from 'wdBean/src/main/ets/bean/navigation/PageInfoDTO';
7 import { AdvRuleBean, CompAdvBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean'; 7 import { AdvRuleBean, CompAdvBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
  8 +import { WDViewDefaultType } from '../components/view/EmptyComponent';
8 9
9 /** 10 /**
10 * 页面下拉刷新、上拉加载数据bean。 11 * 页面下拉刷新、上拉加载数据bean。
@@ -38,6 +39,7 @@ export default class PageModel { @@ -38,6 +39,7 @@ export default class PageModel {
38 isVisiblePullUpLoad: boolean = false; 39 isVisiblePullUpLoad: boolean = false;
39 offsetY: number = 0; 40 offsetY: number = 0;
40 viewType: number = ViewType.LOADING; 41 viewType: number = ViewType.LOADING;
  42 + emptyType: WDViewDefaultType = WDViewDefaultType.WDViewDefaultType_Default
41 hasMore: boolean = true; 43 hasMore: boolean = true;
42 startIndex = 0; 44 startIndex = 0;
43 endIndex = 0; 45 endIndex = 0;