yangchenggong1_wd

desc:关注频道获取数据

@@ -57,7 +57,14 @@ export class HttpUrlUtils { @@ -57,7 +57,14 @@ export class HttpUrlUtils {
57 * 个人中心 我的预约列表 57 * 个人中心 我的预约列表
58 */ 58 */
59 static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe"; 59 static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe";
60 - 60 + /**
  61 + * 个人中心 关注列表详情
  62 + */
  63 + static readonly FOLLOW_LIST_DETAIL_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getContactMasterDetaiPage";
  64 + /**
  65 + * 个人中心 关注列表
  66 + */
  67 + static readonly FOLLOW_LIST_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getCreatorDirectoryTree";
61 /** 68 /**
62 * 早晚报列表 69 * 早晚报列表
63 * 根据页面id获取页面楼层列表 70 * 根据页面id获取页面楼层列表
@@ -257,6 +264,16 @@ export class HttpUrlUtils { @@ -257,6 +264,16 @@ export class HttpUrlUtils {
257 return url 264 return url
258 } 265 }
259 266
  267 + static getFollowListDetailDataUrl() {
  268 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_DETAIL_DATA_PATH
  269 + return url
  270 + }
  271 +
  272 + static getFollowListDataUrl() {
  273 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_DATA_PATH
  274 + return url
  275 + }
  276 +
260 static getYcgCommonHeaders(): HashMap<string, string> { 277 static getYcgCommonHeaders(): HashMap<string, string> {
261 let headers: HashMap<string, string> = new HashMap<string, string>() 278 let headers: HashMap<string, string> = new HashMap<string, string>()
262 279
@@ -269,10 +286,10 @@ export class HttpUrlUtils { @@ -269,10 +286,10 @@ export class HttpUrlUtils {
269 headers.set('X-Ca-Stage', "TEST") 286 headers.set('X-Ca-Stage', "TEST")
270 headers.set('plat', "Phone") 287 headers.set('plat', "Phone")
271 headers.set('Content-Type', 'application/json; charset=utf-8') 288 headers.set('Content-Type', 'application/json; charset=utf-8')
272 - headers.set('timestamp', "649773304")  
273 - headers.set('RMRB-X-TOKEN', "eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8") 289 + headers.set('timestamp', "740977741")
  290 + headers.set('RMRB-X-TOKEN', "eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDc1NjM3NywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ.KBkF0Yki-JWlq0ZIOCzgKwQc1ycBnFHa6CF-rMPRgHU")
274 headers.set('device_id', "5156098c-6c44-3514-af70-04a0139a9327") 291 headers.set('device_id', "5156098c-6c44-3514-af70-04a0139a9327")
275 - headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8') 292 + // headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8')
276 headers.set('build_version', "202403112023") 293 headers.set('build_version', "202403112023")
277 headers.set('adcode', "340000") 294 headers.set('adcode', "340000")
278 headers.set('os_version', "10") 295 headers.set('os_version', "10")
@@ -281,7 +298,7 @@ export class HttpUrlUtils { @@ -281,7 +298,7 @@ export class HttpUrlUtils {
281 headers.set('versionCode', "7302") 298 headers.set('versionCode', "7302")
282 headers.set('system', "Android") 299 headers.set('system', "Android")
283 headers.set('version_name', "7.3.0.2") 300 headers.set('version_name', "7.3.0.2")
284 - headers.set('EagleEye-TraceID', '5C3D0800CF2C4440A43E5B131187629B') 301 + headers.set('EagleEye-TraceID', '101118E4D006453DA549A82AA8CAFBFE')
285 headers.set('imei', "5156098c-6c44-3514-af70-04a0139a9327") 302 headers.set('imei', "5156098c-6c44-3514-af70-04a0139a9327")
286 headers.set('userType', "1") 303 headers.set('userType', "1")
287 headers.set('Accept-Language', 'zh') 304 headers.set('Accept-Language', 'zh')
@@ -3,6 +3,8 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter' @@ -3,6 +3,8 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter'
3 @Component 3 @Component
4 export default struct MinePageUserSimpleInfoUI { 4 export default struct MinePageUserSimpleInfoUI {
5 @Prop isLogin:boolean 5 @Prop isLogin:boolean
  6 + @Prop userName:string
  7 +
6 8
7 build(){ 9 build(){
8 Row(){ 10 Row(){
@@ -21,14 +23,16 @@ export default struct MinePageUserSimpleInfoUI { @@ -21,14 +23,16 @@ export default struct MinePageUserSimpleInfoUI {
21 .height('110lpx') 23 .height('110lpx')
22 .alignContent(Alignment.Center) 24 .alignContent(Alignment.Center)
23 .onClick(()=>{ 25 .onClick(()=>{
  26 + if(!this.isLogin){
24 WDRouterRule.jumpWithPage(WDRouterPage.loginPage) 27 WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  28 + }
25 }) 29 })
26 30
27 if(this.isLogin){ 31 if(this.isLogin){
28 //昵称信息 32 //昵称信息
29 Column(){ 33 Column(){
30 Row(){ 34 Row(){
31 - Text("人民日报6G5E3T") 35 + Text(this.userName)
32 .fontColor($r('app.color.color_222222')) 36 .fontColor($r('app.color.color_222222'))
33 .maxLines(1) 37 .maxLines(1)
34 .textOverflow({ overflow: TextOverflow.Ellipsis }) 38 .textOverflow({ overflow: TextOverflow.Ellipsis })
1 -import { MineAppointmentItem } from '../../viewmodel/MineAppointmentItem' 1 +import { MineAppointmentItem } from '../../../viewmodel/MineAppointmentItem'
2 2
3 @Component 3 @Component
4 export struct AppointmentListChildComponent{ 4 export struct AppointmentListChildComponent{
1 -import { AppointmentListChildComponent } from '../mine/AppointmentListChildComponent';  
2 -import { CustomTitleUI } from '../reusable/CustomTitleUI'  
3 -import { ListHasNoMoreDataUI } from '../reusable/ListHasNoMoreDataUI';  
4 -import { MineAppointmentItem } from '../../viewmodel/MineAppointmentItem'; 1 +import { AppointmentListChildComponent } from './AppointmentListChildComponent';
  2 +import { CustomTitleUI } from '../../reusable/CustomTitleUI'
  3 +import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';
  4 +import { MineAppointmentItem } from '../../../viewmodel/MineAppointmentItem';
5 import { LazyDataSource, StringUtils } from 'wdKit'; 5 import { LazyDataSource, StringUtils } from 'wdKit';
6 -import MinePageDatasModel from '../../model/MinePageDatasModel'; 6 +import MinePageDatasModel from '../../../model/MinePageDatasModel';
7 const TAG = "AppointmentListUI" 7 const TAG = "AppointmentListUI"
8 8
9 @Component 9 @Component
10 export struct AppointmentListUI{ 10 export struct AppointmentListUI{
11 @State data: LazyDataSource<MineAppointmentItem> = new LazyDataSource(); 11 @State data: LazyDataSource<MineAppointmentItem> = new LazyDataSource();
  12 + @State count:number = 0;
12 @State isLoading:boolean = false 13 @State isLoading:boolean = false
13 @State hasMore:boolean = true 14 @State hasMore:boolean = true
14 curPageNum:number = 1; 15 curPageNum:number = 1;
@@ -21,6 +22,9 @@ export struct AppointmentListUI{ @@ -21,6 +22,9 @@ export struct AppointmentListUI{
21 Column() { 22 Column() {
22 //标题栏目 23 //标题栏目
23 CustomTitleUI({titleName:"预约列表"}) 24 CustomTitleUI({titleName:"预约列表"})
  25 + if(this.count == 0){
  26 + ListHasNoMoreDataUI({style:2})
  27 + }else{
24 //刷新控件 TODO 28 //刷新控件 TODO
25 //List 29 //List
26 List({ space: '6lpx' }) { 30 List({ space: '6lpx' }) {
@@ -51,6 +55,7 @@ export struct AppointmentListUI{ @@ -51,6 +55,7 @@ export struct AppointmentListUI{
51 } 55 }
52 }) 56 })
53 } 57 }
  58 + }
54 .backgroundColor($r('app.color.color_F9F9F9')) 59 .backgroundColor($r('app.color.color_F9F9F9'))
55 .height('100%') 60 .height('100%')
56 .width('100%') 61 .width('100%')
@@ -72,6 +77,7 @@ export struct AppointmentListUI{ @@ -72,6 +77,7 @@ export struct AppointmentListUI{
72 } 77 }
73 }) 78 })
74 this.data.notifyDataReload() 79 this.data.notifyDataReload()
  80 + this.count = this.data.totalCount()
75 if (this.data.totalCount() < value.totalCount) { 81 if (this.data.totalCount() < value.totalCount) {
76 this.curPageNum++ 82 this.curPageNum++
77 }else { 83 }else {
1 import { ResourcesUtils } from 'wdKit' 1 import { ResourcesUtils } from 'wdKit'
2 import { ResponseDTO } from 'wdNetwork' 2 import { ResponseDTO } from 'wdNetwork'
  3 +import MinePageDatasModel from '../../../model/MinePageDatasModel'
3 import { FollowListItem } from '../../../viewmodel/FollowListItem' 4 import { FollowListItem } from '../../../viewmodel/FollowListItem'
4 import { CustomTitleUI } from '../../reusable/CustomTitleUI' 5 import { CustomTitleUI } from '../../reusable/CustomTitleUI'
5 import { FollowSecondTabsComponent } from './FollowSecondTabsComponent' 6 import { FollowSecondTabsComponent } from './FollowSecondTabsComponent'
@@ -19,10 +20,10 @@ export struct FollowFirstTabsComponent{ @@ -19,10 +20,10 @@ export struct FollowFirstTabsComponent{
19 // this.data.push(element) 20 // this.data.push(element)
20 // }); 21 // });
21 22
22 - ResourcesUtils.getResourcesJson<ResponseDTO<FollowListItem[]>>(getContext(this),'follow_list_data.json').then((success)=>{  
23 - success.data?.forEach(element => { 23 + MinePageDatasModel.getFollowListData(getContext(this)).then((value)=>{
  24 + value.forEach((element)=>{
24 this.data.push(element) 25 this.data.push(element)
25 - }); 26 + })
26 console.log("ycg",this.data.length.toString()); 27 console.log("ycg",this.data.length.toString());
27 }) 28 })
28 } 29 }
1 import { LazyDataSource } from 'wdKit'; 1 import { LazyDataSource } from 'wdKit';
  2 +import MinePageDatasModel from '../../../model/MinePageDatasModel';
2 import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem' 3 import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem'
  4 +import { FollowListDetailRequestItem } from '../../../viewmodel/FollowListDetailRequestItem';
3 import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI'; 5 import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';
4 6
5 const TAG = "FollowListDetailUI" 7 const TAG = "FollowListDetailUI"
@@ -7,11 +9,10 @@ const TAG = "FollowListDetailUI" @@ -7,11 +9,10 @@ const TAG = "FollowListDetailUI"
7 export struct FollowListDetailUI{ 9 export struct FollowListDetailUI{
8 @State creatorDirectoryId:number = -1; 10 @State creatorDirectoryId:number = -1;
9 @State data: LazyDataSource<FollowListDetailItem> = new LazyDataSource(); 11 @State data: LazyDataSource<FollowListDetailItem> = new LazyDataSource();
  12 + @State count:number = 0;
10 @State isLoading:boolean = false 13 @State isLoading:boolean = false
11 @State hasMore:boolean = true 14 @State hasMore:boolean = true
12 curPageNum:number = 1; 15 curPageNum:number = 1;
13 - headUrl = "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th211436299/GLN.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg"  
14 -  
15 16
16 aboutToAppear(){ 17 aboutToAppear(){
17 console.log("YCG","aboutToAppear==="+this.creatorDirectoryId); 18 console.log("YCG","aboutToAppear==="+this.creatorDirectoryId);
@@ -20,6 +21,9 @@ export struct FollowListDetailUI{ @@ -20,6 +21,9 @@ export struct FollowListDetailUI{
20 21
21 build(){ 22 build(){
22 Column(){ 23 Column(){
  24 + if(this.count === 0){
  25 + ListHasNoMoreDataUI({style:2})
  26 + }else{
23 List({ space: 3 }) { 27 List({ space: 3 }) {
24 LazyForEach(this.data, (item: FollowListDetailItem, index: number = 0) => { 28 LazyForEach(this.data, (item: FollowListDetailItem, index: number = 0) => {
25 ListItem() { 29 ListItem() {
@@ -29,7 +33,6 @@ export struct FollowListDetailUI{ @@ -29,7 +33,6 @@ export struct FollowListDetailUI{
29 }) 33 })
30 }, (item: FollowListDetailItem, index: number) => index.toString()) 34 }, (item: FollowListDetailItem, index: number) => index.toString())
31 35
32 -  
33 //没有更多数据 显示提示 36 //没有更多数据 显示提示
34 if(!this.hasMore){ 37 if(!this.hasMore){
35 ListItem(){ 38 ListItem(){
@@ -39,6 +42,7 @@ export struct FollowListDetailUI{ @@ -39,6 +42,7 @@ export struct FollowListDetailUI{
39 }.cachedCount(7) 42 }.cachedCount(7)
40 .padding({left:'31lpx',right:'31lpx'}) 43 .padding({left:'31lpx',right:'31lpx'})
41 .layoutWeight(1) 44 .layoutWeight(1)
  45 + .scrollBar(BarState.Off)
42 .onReachEnd(()=>{ 46 .onReachEnd(()=>{
43 console.log(TAG,"触底了"); 47 console.log(TAG,"触底了");
44 if(!this.isLoading){ 48 if(!this.isLoading){
@@ -47,31 +51,34 @@ export struct FollowListDetailUI{ @@ -47,31 +51,34 @@ export struct FollowListDetailUI{
47 this.getNewPageData() 51 this.getNewPageData()
48 } 52 }
49 }) 53 })
50 - }.layoutWeight(1) 54 + }
  55 + }.height('100%')
  56 + .width('100%')
51 } 57 }
52 58
53 getNewPageData(){ 59 getNewPageData(){
  60 + this.isLoading = true
54 if(this.hasMore){ 61 if(this.hasMore){
55 - if(this.curPageNum>=4){ 62 + let object = new FollowListDetailRequestItem(this.creatorDirectoryId,20,this.curPageNum)
  63 +
  64 + MinePageDatasModel.getFollowListDetailData(object,getContext(this)).then((value)=>{
  65 + if (!this.data || value.list.length == 0){
  66 + this.hasMore = false
  67 + }else{
  68 + value.list.forEach((value)=>{
  69 + this.data.push(new FollowListDetailItem(value.headPhotoUrl,value.cnUserName,value.cnFansNum,value.introduction))
  70 + })
  71 + this.data.notifyDataReload()
  72 + this.count = this.data.totalCount()
  73 + if (this.data.totalCount() < value.totalCount) {
  74 + this.curPageNum++
  75 + }else {
56 this.hasMore = false 76 this.hasMore = false
57 - return  
58 } 77 }
59 - if(this.curPageNum == 1){  
60 - this.data.push(new FollowListDetailItem(this.headUrl,"人之初,性本善",10,"人之初,性本善"));  
61 - this.data.push(new FollowListDetailItem(this.headUrl,"性相近,习相远",20,"性相近,习相远"));  
62 - this.data.push(new FollowListDetailItem(this.headUrl,"苟不教,性乃迁",30,"苟不教,性乃迁"));  
63 - this.data.push(new FollowListDetailItem(this.headUrl,"教之道,贵以专",40,"教之道,贵以专"));  
64 - this.data.push(new FollowListDetailItem(this.headUrl,"AAAAAAA",50,"教之道,贵以专"));  
65 - this.data.push(new FollowListDetailItem(this.headUrl,"BBBBBBB",60,"教之道,贵以专"));  
66 - this.data.push(new FollowListDetailItem(this.headUrl,"CCCCCCC",70,"教之道,贵以专"));  
67 - }else if(this.curPageNum == 2){  
68 - this.data.push(new FollowListDetailItem(this.headUrl,"昔孟母,择邻处",40,"昔孟母,择邻处"));  
69 - }else if(this.curPageNum == 3){  
70 - this.data.push(new FollowListDetailItem(this.headUrl,"子不学,断机杼",40,"子不学,断机杼"));  
71 } 78 }
72 - this.isLoading = false  
73 - this.curPageNum++ 79 + })
74 } 80 }
  81 + this.isLoading = false
75 } 82 }
76 } 83 }
77 84
1 -import { AppointmentListUI } from '../mine/AppointmentListUI' 1 +import { AppointmentListUI } from '../mine/appointment/AppointmentListUI'
2 2
3 const TAG = "AppointmentListPage" 3 const TAG = "AppointmentListPage"
4 4
@@ -7,6 +7,8 @@ import MinePagePersonFunctionUI from '../mine/MinePagePersonFunctionUI' @@ -7,6 +7,8 @@ import MinePagePersonFunctionUI from '../mine/MinePagePersonFunctionUI'
7 import MinePageCardUI from '../mine/MinePageCardUI' 7 import MinePageCardUI from '../mine/MinePageCardUI'
8 import MinePageCreatorFunctionUI from '../mine/MinePageCreatorFunctionUI' 8 import MinePageCreatorFunctionUI from '../mine/MinePageCreatorFunctionUI'
9 import MinePageMoreFunctionUI from '../mine/MinePageMoreFunctionUI' 9 import MinePageMoreFunctionUI from '../mine/MinePageMoreFunctionUI'
  10 +import { SPHelper, StringUtils } from 'wdKit'
  11 +import { SpConstants } from 'wdConstant'
10 12
11 const TAG = 'MinePageComponent'; 13 const TAG = 'MinePageComponent';
12 14
@@ -18,14 +20,14 @@ export struct MinePageComponent { @@ -18,14 +20,14 @@ export struct MinePageComponent {
18 //是否是创作者 20 //是否是创作者
19 @State isCreator:boolean = false 21 @State isCreator:boolean = false
20 @State isLogin:boolean = false 22 @State isLogin:boolean = false
  23 + @State userName:string = "登陆注册"
21 @State personalData:MinePagePersonalFunctionsItem[] = [] 24 @State personalData:MinePagePersonalFunctionsItem[] = []
22 @State creatorData:MinePageCreatorFunctionsItem[] = [] 25 @State creatorData:MinePageCreatorFunctionsItem[] = []
23 @State moreData:MinePageMoreFunctionModel[] = [] 26 @State moreData:MinePageMoreFunctionModel[] = []
24 scroller: Scroller = new Scroller() 27 scroller: Scroller = new Scroller()
25 28
26 aboutToAppear(){ 29 aboutToAppear(){
27 - //登录信息 TODO  
28 - 30 + this.getUserLogin()
29 this.getFunctionData() 31 this.getFunctionData()
30 } 32 }
31 33
@@ -59,7 +61,7 @@ export struct MinePageComponent { @@ -59,7 +61,7 @@ export struct MinePageComponent {
59 @Builder MinePageUI(){ 61 @Builder MinePageUI(){
60 Column(){ 62 Column(){
61 //头像层 63 //头像层
62 - MinePageUserSimpleInfoUI({isLogin:this.isLogin}) 64 + MinePageUserSimpleInfoUI({isLogin:this.isLogin,userName:this.userName})
63 //Grid 区域 65 //Grid 区域
64 MinePagePersonFunctionUI({personalData:$personalData}) 66 MinePagePersonFunctionUI({personalData:$personalData})
65 //Card 67 //Card
@@ -77,4 +79,16 @@ export struct MinePageComponent { @@ -77,4 +79,16 @@ export struct MinePageComponent {
77 .height('100%') 79 .height('100%')
78 } 80 }
79 81
  82 + async getUserLogin() {
  83 + let userid = await SPHelper.default.get(SpConstants.USER_ID,"")
  84 + if(StringUtils.isNotEmpty(userid)){
  85 + this.isLogin = true
  86 + let userName = await SPHelper.default.get(SpConstants.USER_NAME,"") as string
  87 + this.userName = userName
  88 + }else{
  89 + this.isLogin = false
  90 + }
  91 + }
  92 +
80 } 93 }
  94 +
1 @Component 1 @Component
2 export struct ListHasNoMoreDataUI{ 2 export struct ListHasNoMoreDataUI{
  3 + @State style:number = 1;
  4 +
3 build(){ 5 build(){
  6 + if (this.style === 1){
4 Row(){ 7 Row(){
5 Text("已显示全部内容") 8 Text("已显示全部内容")
6 .fontColor($r('app.color.color_999999')) 9 .fontColor($r('app.color.color_999999'))
@@ -9,5 +12,22 @@ export struct ListHasNoMoreDataUI{ @@ -9,5 +12,22 @@ export struct ListHasNoMoreDataUI{
9 }.justifyContent(FlexAlign.Center) 12 }.justifyContent(FlexAlign.Center)
10 .width('100%') 13 .width('100%')
11 .margin({top:'20lpx',bottom:'20lpx'}) 14 .margin({top:'20lpx',bottom:'20lpx'})
  15 + }else if (this.style === 2){
  16 + Column(){
  17 + Image($r('app.media.empty_icon'))
  18 + .width('200lpx')
  19 + .height('200lpx')
  20 + .objectFit(ImageFit.Auto)
  21 + Text("暂无内容")
  22 + .fontColor($r('app.color.color_999999'))
  23 + .fontWeight('500lpx')
  24 + .fontSize('23lpx')
  25 + }
  26 + .justifyContent(FlexAlign.Center)
  27 + .width('100%')
  28 + .height('100%')
  29 + }
  30 +
  31 +
12 } 32 }
13 } 33 }
@@ -6,6 +6,10 @@ import HashMap from '@ohos.util.HashMap'; @@ -6,6 +6,10 @@ import HashMap from '@ohos.util.HashMap';
6 import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork'; 6 import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
7 import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem'; 7 import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem';
8 import { Logger, ResourcesUtils } from 'wdKit'; 8 import { Logger, ResourcesUtils } from 'wdKit';
  9 +import { MineFollowListDetailItem } from '../viewmodel/MineFollowListDetailItem';
  10 +import { FollowListDetailRequestItem } from '../viewmodel/FollowListDetailRequestItem';
  11 +import { FollowListItem } from '../viewmodel/FollowListItem';
  12 +
9 const TAG = "MinePageDatasModel" 13 const TAG = "MinePageDatasModel"
10 14
11 /** 15 /**
@@ -83,6 +87,12 @@ class MinePageDatasModel{ @@ -83,6 +87,12 @@ class MinePageDatasModel{
83 return this.moreData 87 return this.moreData
84 } 88 }
85 89
  90 + /**
  91 + * 预约
  92 + * @param pageSize
  93 + * @param pageNum
  94 + * @returns
  95 + */
86 fetchAppointmentListData(pageSize:string,pageNum:string) { 96 fetchAppointmentListData(pageSize:string,pageNum:string) {
87 let url = HttpUrlUtils.getAppointmentListDataUrl()+ `?pageSize=${pageSize}&pageNum=${pageNum}` 97 let url = HttpUrlUtils.getAppointmentListDataUrl()+ `?pageSize=${pageSize}&pageNum=${pageNum}`
88 let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders(); 98 let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
@@ -120,7 +130,90 @@ class MinePageDatasModel{ @@ -120,7 +130,90 @@ class MinePageDatasModel{
120 return compRes.data 130 return compRes.data
121 } 131 }
122 132
  133 + /**
  134 + * 关注频道详情
  135 + * @param pageSize
  136 + * @param pageNum
  137 + * @param context
  138 + * @returns
  139 + */
  140 + getFollowListDetailData(params:FollowListDetailRequestItem,context: Context): Promise<MineFollowListDetailItem> {
  141 + return new Promise<MineFollowListDetailItem>((success, error) => {
  142 + Logger.info(TAG, `getAppointmentList start`);
  143 + this.fetchFollowListDetailData(params).then((navResDTO: ResponseDTO<MineFollowListDetailItem>) => {
  144 + if (!navResDTO) {
  145 + error("page data invalid");
  146 + success(this.getFollowListDetailDataLocal(context))
  147 + return
  148 + }
  149 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  150 + let navigationBean = navResDTO.data as MineFollowListDetailItem
  151 + success(navigationBean);
  152 + }).catch((err: Error) => {
  153 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  154 + // error(err);
  155 + success(this.getFollowListDetailDataLocal(context))
  156 + })
  157 + })
  158 + }
  159 +
  160 + async getFollowListDetailDataLocal(context: Context): Promise<MineFollowListDetailItem> {
  161 + Logger.info(TAG, `getBottomNavDataMock start`);
  162 + let compRes: ResponseDTO<MineFollowListDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineFollowListDetailItem>>(context,'follow_list_detail_data_id120.json' );
  163 + if (!compRes || !compRes.data) {
  164 + Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`);
  165 + return new MineFollowListDetailItem()
  166 + }
  167 + Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  168 + return compRes.data
  169 + }
123 170
  171 + fetchFollowListDetailData(object:FollowListDetailRequestItem) {
  172 + let url = HttpUrlUtils.getFollowListDetailDataUrl()
  173 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  174 + return WDHttp.post<ResponseDTO<MineFollowListDetailItem>>(url, object,headers)
  175 + };
  176 +
  177 + /**
  178 + * 关注频道列表
  179 + * @returns
  180 + */
  181 + fetchFollowListData() {
  182 + let url = HttpUrlUtils.getFollowListDataUrl()
  183 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  184 + return WDHttp.get<ResponseDTO<FollowListItem[]>>(url, headers)
  185 + };
  186 +
  187 + getFollowListData(context: Context): Promise<FollowListItem[]> {
  188 + return new Promise<FollowListItem[]>((success, error) => {
  189 + Logger.info(TAG, `getAppointmentList start`);
  190 + this.fetchFollowListData().then((navResDTO: ResponseDTO<FollowListItem[]>) => {
  191 + if (!navResDTO) {
  192 + error("page data invalid");
  193 + success(this.getFollowListDataLocal(context))
  194 + return
  195 + }
  196 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  197 + let navigationBean = navResDTO.data as FollowListItem[]
  198 + success(navigationBean);
  199 + }).catch((err: Error) => {
  200 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  201 + // error(err);
  202 + success(this.getFollowListDataLocal(context))
  203 + })
  204 + })
  205 + }
  206 +
  207 + async getFollowListDataLocal(context: Context): Promise<FollowListItem[]> {
  208 + Logger.info(TAG, `getFollowListDataLocal start`);
  209 + let compRes: ResponseDTO<FollowListItem[]> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<FollowListItem[]>>(context,'follow_list_data2.json' );
  210 + if (!compRes || !compRes.data) {
  211 + Logger.info(TAG, `getFollowListDataLocal compRes is empty`);
  212 + return []
  213 + }
  214 + Logger.info(TAG, `getFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  215 + return compRes.data
  216 + }
124 } 217 }
125 218
126 const minePageDatasModel = MinePageDatasModel.getInstance() 219 const minePageDatasModel = MinePageDatasModel.getInstance()
  1 +export class FollowListDetailRequestItem{
  2 + creatorDirectoryId:number = 120
  3 + pageSize:number = 20
  4 + pageNum:number = 1
  5 +
  6 + constructor(creatorDirectoryId: number = 120,
  7 + pageSize: number = 20,
  8 + pageNum: number = 1) {
  9 + this.creatorDirectoryId = creatorDirectoryId
  10 + this.pageSize = pageSize
  11 + this.pageNum = pageNum
  12 + }
  13 +}
  1 +import { FollowListDetailItem } from './FollowListDetailItem'
  2 +
  3 +export class MineFollowListDetailItem{
  4 + list:FollowListDetailItem[] = []
  5 +
  6 + pageNum: number = 0
  7 + pageSize: number = 20
  8 + totalCount: number = 0
  9 +
  10 + constructor(list?:FollowListDetailItem[],pageNum?: number,pageSize?: number,totalCount?: number) {
  11 + }
  12 +
  13 +}