yangchenggong1_wd

desc:迁移个人中心到4.0

Showing 64 changed files with 2973 additions and 10 deletions
@@ -53,6 +53,10 @@ export class HttpUrlUtils { @@ -53,6 +53,10 @@ export class HttpUrlUtils {
53 * 电子报列表 53 * 电子报列表
54 */ 54 */
55 static readonly E_NEWSPAPER_LIST_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/paperApi/paperList"; 55 static readonly E_NEWSPAPER_LIST_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/paperApi/paperList";
  56 + /**
  57 + * 个人中心 我的预约列表
  58 + */
  59 + static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe";
56 60
57 /** 61 /**
58 * 早晚报列表 62 * 早晚报列表
@@ -248,6 +252,49 @@ export class HttpUrlUtils { @@ -248,6 +252,49 @@ export class HttpUrlUtils {
248 return url; 252 return url;
249 } 253 }
250 254
  255 + static getAppointmentListDataUrl() {
  256 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.APPOINTMENT_LIST_DATA_PATH
  257 + return url
  258 + }
  259 +
  260 + static getYcgCommonHeaders(): HashMap<string, string> {
  261 + let headers: HashMap<string, string> = new HashMap<string, string>()
  262 +
  263 + headers.set('mpassid', 'XGt6jfGUx8ADAKruTyAMdhHj')
  264 + headers.set('city', "%E5%90%88%E8%82%A5%E5%B8%82")
  265 + headers.set('User-Agent', 'Dalvik/2.1.0 (Linux; U; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10)')
  266 + headers.set('channel', "rmrb_china_0000")
  267 + headers.set('appCode', "0af1f9085e484c97b2a44704bae72c07")
  268 + headers.set('Authorization', "APPCODE 0af1f9085e484c97b2a44704bae72c07")
  269 + headers.set('X-Ca-Stage', "TEST")
  270 + headers.set('plat', "Phone")
  271 + headers.set('Content-Type', 'application/json; charset=utf-8')
  272 + headers.set('timestamp', "649773304")
  273 + headers.set('RMRB-X-TOKEN', "eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8")
  274 + headers.set('device_id', "5156098c-6c44-3514-af70-04a0139a9327")
  275 + headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8')
  276 + headers.set('build_version', "202403112023")
  277 + headers.set('adcode', "340000")
  278 + headers.set('os_version', "10")
  279 + headers.set('city_dode', "340100")
  280 + headers.set('userId', "567387477063621")
  281 + headers.set('versionCode', "7302")
  282 + headers.set('system', "Android")
  283 + headers.set('version_name', "7.3.0.2")
  284 + headers.set('EagleEye-TraceID', '5C3D0800CF2C4440A43E5B131187629B')
  285 + headers.set('imei', "5156098c-6c44-3514-af70-04a0139a9327")
  286 + headers.set('userType', "1")
  287 + headers.set('Accept-Language', 'zh')
  288 +
  289 + // HttpUrlUtils.addSpecialHeaders(headers);
  290 + // Logger.debug("TAG", '******************* commonHeaders headers start ******************************** ');
  291 + // headers.forEach((v,k)=>{
  292 + // Logger.debug("TAG", 'getCommonHeaders header: ' + k + ': ' + v);
  293 + // })
  294 + // Logger.debug("TAG", '******************* commonHeaders headers end ******************************** ');
  295 + return headers;
  296 + }
  297 +
251 public static setUserId(userId:string){ 298 public static setUserId(userId:string){
252 HttpUrlUtils.userId=userId; 299 HttpUrlUtils.userId=userId;
253 } 300 }
@@ -259,4 +306,5 @@ export class HttpUrlUtils { @@ -259,4 +306,5 @@ export class HttpUrlUtils {
259 public static setUserToken(token:string){ 306 public static setUserToken(token:string){
260 HttpUrlUtils.token=token; 307 HttpUrlUtils.token=token;
261 } 308 }
  309 +
262 } 310 }
@@ -36,4 +36,8 @@ export class WDRouterPage { @@ -36,4 +36,8 @@ export class WDRouterPage {
36 static loginPage = new WDRouterPage("wdLogin", "ets/pages/login/LoginPage"); 36 static loginPage = new WDRouterPage("wdLogin", "ets/pages/login/LoginPage");
37 37
38 static forgetPasswordPage = new WDRouterPage("wdLogin", "ets/pages/login/ForgetPasswordPage"); 38 static forgetPasswordPage = new WDRouterPage("wdLogin", "ets/pages/login/ForgetPasswordPage");
  39 + //我的 预约
  40 + static appointmentListPage = new WDRouterPage("wdComponent", "ets/components/page/AppointmentListPage");
  41 + //我的 关注
  42 + static followListPage = new WDRouterPage("wdComponent", "ets/components/page/FollowListPage");
39 } 43 }
@@ -20,7 +20,9 @@ export class WDRouterRule { @@ -20,7 +20,9 @@ export class WDRouterRule {
20 // router.pushUrl({ url: 'pages/routerpage2', , params: params }) 20 // router.pushUrl({ url: 'pages/routerpage2', , params: params })
21 router.pushUrl({ url: page.url(), params: params }) 21 router.pushUrl({ url: page.url(), params: params })
22 } else { 22 } else {
23 - router.pushUrl({ url: page.url() }) 23 + router.pushUrl({ url: page.url() }).catch((error:Error)=>{
  24 + console.log("err",JSON.stringify(error))//100002 uri is not exist
  25 + })
24 } 26 }
25 } else { 27 } else {
26 ToastUtils.showToast("功能开发中", 1000); 28 ToastUtils.showToast("功能开发中", 1000);
  1 +import { MineAppointmentItem } from '../../viewmodel/MineAppointmentItem'
  2 +
  3 +@Component
  4 +export struct AppointmentListChildComponent{
  5 + @ObjectLink item: MineAppointmentItem
  6 +
  7 + build() {
  8 + Column(){
  9 + Stack(){
  10 + Image(this.item?.imageUrl[0])
  11 + .objectFit(ImageFit.Auto)
  12 +
  13 + if(this.item.relType === 1){
  14 + Row(){
  15 + Row(){
  16 + Image($r('app.media.reserve_icon'))
  17 + .width('42lpx')
  18 + .height('35lpx')
  19 + .objectFit(ImageFit.Auto)
  20 + Text("预约")
  21 + .fontWeight(400)
  22 + .fontSize('21lpx')
  23 + .backgroundColor($r('app.color.color_4D000000'))
  24 + .fontColor($r('app.color.white'))
  25 + .lineHeight('31lpx')
  26 + .layoutWeight(1)
  27 + .textAlign(TextAlign.Center)
  28 + }.width('94lpx')
  29 + .margin({bottom:'15lpx',right:'15lpx'})
  30 + }.width('100%')
  31 + .height('100%')
  32 + .alignItems(VerticalAlign.Bottom)
  33 + .justifyContent(FlexAlign.End)
  34 + }
  35 + }.width('100%')
  36 + .height('376lpx')
  37 +
  38 + Column(){
  39 + Text(this.item.title)
  40 + .fontWeight('400lpx')
  41 + .fontSize('33lpx')
  42 + .fontColor($r('app.color.color_222222'))
  43 + .lineHeight('48lpx')
  44 + .maxLines(2)
  45 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  46 + .margin({bottom:'23lpx'})
  47 + .textAlign(TextAlign.Start)
  48 + .width('100%')
  49 + Row(){
  50 + Row(){
  51 + if(this.item.relType === 2){
  52 + Image($r('app.media.play_status_history_icon'))
  53 + .objectFit(ImageFit.Auto)
  54 + .width('38lpx')
  55 + .height('38lpx')
  56 + .margin({right:'12lpx'})
  57 + Text('已结束').fontColor($r('app.color.color_999999'))
  58 + .fontWeight('500lpx')
  59 + .fontSize('23lpx')
  60 + }else {
  61 + Image($r('app.media.play_status_icon'))
  62 + .objectFit(ImageFit.Auto)
  63 + .width('38lpx')
  64 + .height('38lpx')
  65 + .margin({right:'12lpx'})
  66 + Text(this.item.timePre).fontColor($r('app.color.color_ED2800'))
  67 + .fontWeight('500lpx')
  68 + .fontSize('23lpx')
  69 + Image($r('app.media.point_icon'))
  70 + .objectFit(ImageFit.Auto)
  71 + .width('12lpx')
  72 + .height('31lpx')
  73 + .margin({right:'4lpx'})
  74 + Text(`${this.item.timeBack}开始`).fontColor($r('app.color.color_ED2800'))
  75 + .fontWeight('500lpx')
  76 + .fontSize('23lpx')
  77 + .lineHeight('31lpx')
  78 + }
  79 + }.padding({left:'19lpx',right:'19lpx'})
  80 + .height('46lpx')
  81 + .alignItems(VerticalAlign.Center)
  82 + .backgroundColor($r('app.color.color_F5F5F5'))
  83 + .borderRadius('4lpx')
  84 + Blank()
  85 + .layoutWeight(1)
  86 + if(this.item.relType === 1){
  87 + Text(this.item.isAppointment?"已预约":"预约")
  88 + .fontWeight(400)
  89 + .fontSize('23lpx')
  90 + .backgroundColor(this.item.isAppointment?$r('app.color.color_F5F5F5'):$r('app.color.color_ED2800'))
  91 + .fontColor(this.item.isAppointment?$r('app.color.color_CCCCCC'):$r('app.color.white'))
  92 + .lineHeight('31lpx')
  93 + .textAlign(TextAlign.Center)
  94 + .width('100lpx')
  95 + .height('46lpx')
  96 + .borderRadius('6lpx')
  97 + .onClick(()=>{
  98 + this.item.isAppointment = !this.item.isAppointment
  99 + //TODO 预约动作
  100 + })
  101 + }else {
  102 + Text(this.item.relType === 2?"去观看":"看回放")
  103 + .fontWeight(400)
  104 + .fontSize('23lpx')
  105 + .backgroundColor($r('app.color.color_ED2800'))
  106 + .fontColor($r('app.color.white'))
  107 + .lineHeight('31lpx')
  108 + .textAlign(TextAlign.Center)
  109 + .width('100lpx')
  110 + .height('46lpx')
  111 + .borderRadius('6lpx')
  112 + }
  113 + }
  114 + }
  115 + .padding({left:'23lpx',right:'23lpx',top:'15lpx',bottom:'23lpx'})
  116 + }.margin({ left: 10, right: 10 })
  117 + .backgroundColor($r('app.color.white'))
  118 + .borderRadius('8lpx')
  119 + }
  120 +}
  1 +import { AppointmentListChildComponent } from '../mine/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';
  6 +import MinePageDatasModel from '../../model/MinePageDatasModel';
  7 +const TAG = "AppointmentListUI"
  8 +
  9 +@Component
  10 +export struct AppointmentListUI{
  11 + @State data: LazyDataSource<MineAppointmentItem> = new LazyDataSource();
  12 + @State isLoading:boolean = false
  13 + @State hasMore:boolean = true
  14 + curPageNum:number = 1;
  15 +
  16 + aboutToAppear() {
  17 + this.getNewPageData()
  18 + }
  19 +
  20 + build() {
  21 + Column() {
  22 + //标题栏目
  23 + CustomTitleUI({titleName:"预约列表"})
  24 + //刷新控件 TODO
  25 + //List
  26 + List({ space: '6lpx' }) {
  27 + LazyForEach(this.data, (item: MineAppointmentItem, index: number) => {
  28 + ListItem() {
  29 + AppointmentListChildComponent({item:item})
  30 + }
  31 + .onClick(()=>{
  32 + //TODO 跳转
  33 + })
  34 + }, (item: MineAppointmentItem, index: number) => index.toString())
  35 +
  36 + //没有更多数据 显示提示
  37 + if(!this.hasMore){
  38 + ListItem(){
  39 + ListHasNoMoreDataUI()
  40 + }
  41 + }
  42 + }.cachedCount(4)
  43 + .scrollBar(BarState.Off)
  44 + .margin({top:'23lpx',left:'23lpx',right:'23lpx'})
  45 + .layoutWeight(1)
  46 + .onReachEnd(()=>{
  47 + console.log(TAG,"触底了");
  48 + if(!this.isLoading){
  49 + //加载分页数据
  50 + this.getNewPageData()
  51 + }
  52 + })
  53 + }
  54 + .backgroundColor($r('app.color.color_F9F9F9'))
  55 + .height('100%')
  56 + .width('100%')
  57 + }
  58 +
  59 + getNewPageData(){
  60 + this.isLoading = true
  61 + if(this.hasMore){
  62 + MinePageDatasModel.getAppointmentListData("20",`${this.curPageNum}`,getContext(this)).then((value)=>{
  63 + if (!this.data || value.list.length == 0){
  64 + this.hasMore = false
  65 + }else{
  66 + value.list.forEach((value)=>{
  67 + let dealTime = this.DealStartTime(value.planStartTime)
  68 + if(dealTime!=null && dealTime.length === 2){
  69 + this.data.push(new MineAppointmentItem(value.imageUrl,value.status,value.title,true,dealTime[0],dealTime[1],value.relType))
  70 + }else {
  71 + this.data.push(new MineAppointmentItem(value.imageUrl,value.status,value.title,true,"","",value.relType))
  72 + }
  73 + })
  74 + this.data.notifyDataReload()
  75 + if (this.data.totalCount() < value.totalCount) {
  76 + this.curPageNum++
  77 + }else {
  78 + this.hasMore = false
  79 + }
  80 + }
  81 + })
  82 + }
  83 + this.isLoading = false
  84 + }
  85 +
  86 + DealStartTime(planStartTime:string):string[]{
  87 + let dealData:string[] = []
  88 +
  89 + if(!StringUtils.isNotEmpty(planStartTime)){
  90 + console.log(TAG,"格式有误")
  91 + return dealData
  92 + }
  93 +
  94 + if(planStartTime.indexOf(" ") === -1){
  95 + console.log(TAG,"格式有误")
  96 + return dealData
  97 + }
  98 + let arr = planStartTime.split(" ")
  99 + if(arr!=null && StringUtils.isNotEmpty(arr[0])){ //处理年月日
  100 + let time = arr[0].split("-");
  101 + if(time.length === 3){
  102 + let month = time[1].indexOf("0") === 0 ? time[1].substring(1):time[1]
  103 + let day = time[2]
  104 +
  105 + dealData[0] = `${month}月${day}日`
  106 + let today = `${new Date().getMonth()+1}月${new Date().getDate()}日`
  107 + if(dealData[0] === today){
  108 + dealData[0] = "今日"
  109 + }
  110 + }
  111 + }
  112 +
  113 + if(arr!=null && StringUtils.isNotEmpty(arr[1])){ //处理时分
  114 + let time = arr[1].split(":");
  115 + if(time.length === 3){
  116 + dealData[1] = `${time[0]}:${time[1]}`
  117 + }
  118 + }
  119 + console.log(TAG,JSON.stringify(dealData))
  120 + return dealData
  121 + }
  122 +}
  1 +@Component
  2 +export default struct MinePageCardUI {
  3 + build(){
  4 + Flex(){
  5 + Stack(){
  6 + Image($r('app.media.mine_card_01'))
  7 + .setFullWidthAndHeight()
  8 + .objectFit(ImageFit.Auto)
  9 + Column(){
  10 + Text("积分商城")
  11 + .fontColor($r('app.color.color_994D00'))
  12 + .width('119lpx')
  13 + .height('35lpx')
  14 + .textAlign(TextAlign.Start)
  15 + .fontSize('29lpx')
  16 + .fontWeight(600)
  17 + Text("华为MATE40手机")
  18 + .width('159lpx')
  19 + .height('23lpx')
  20 + .fontColor($r('app.color.color_994D00'))
  21 + .fontSize('19lpx')
  22 + .fontWeight(400)
  23 + .textAlign(TextAlign.Start)
  24 + .margin({top:'10lpx'})
  25 + }.padding({left:'29lpx'})
  26 + .alignItems(HorizontalAlign.Start)
  27 + }.alignContent(Alignment.Start)
  28 + .width('349lpx')
  29 + .height('115lpx')
  30 +
  31 + Stack(){
  32 + Image($r('app.media.mine_card_02'))
  33 + .setFullWidthAndHeight()
  34 + .objectFit(ImageFit.Auto)
  35 + Column(){
  36 + Text("数字藏品")
  37 + .fontColor($r('app.color.color_B15900'))
  38 + .width('119lpx')
  39 + .height('35lpx')
  40 + .textAlign(TextAlign.Start)
  41 + .fontSize('29lpx')
  42 + .fontWeight(600)
  43 + Text("黑胶唱片NFT")
  44 + .width('159lpx')
  45 + .height('23lpx')
  46 + .fontColor($r('app.color.color_B15900'))
  47 + .fontSize('19lpx')
  48 + .textAlign(TextAlign.Start)
  49 + .margin({top:'10lpx'})
  50 + .fontWeight(400)
  51 + }.padding({left:'67lpx'})
  52 + .alignItems(HorizontalAlign.Start)
  53 + }.alignContent(Alignment.Start)
  54 + .width('348lpx')
  55 + .height('115lpx')
  56 + }.setFullWidth()
  57 + .height('115lpx')
  58 + .padding({left:'23lpx',right:'23lpx'})
  59 + .margin({top:'24lpx'})
  60 + }
  61 +
  62 + @Styles setFullWidthAndHeight(){
  63 + .width('100%')
  64 + .height('100%')
  65 + }
  66 +
  67 + @Styles setFullWidth(){
  68 + .width('100%')
  69 + }
  70 +
  71 + @Styles setFullHeight(){
  72 + .height('100%')
  73 + }
  74 +}
  1 +import MinePageCreatorFunctionsItem from '../../viewmodel/MinePageCreatorFunctionsItem'
  2 +
  3 +@Component
  4 +export default struct MinePageCreatorFunctionUI {
  5 + @Link creatorData:MinePageCreatorFunctionsItem[]
  6 +
  7 + build(){
  8 + Column(){
  9 + Row(){
  10 + Text("创作者中心")
  11 + .fontSize('29lpx')
  12 + .width('148lpx')
  13 + .height('46lpx')
  14 + .fontWeight(600)
  15 + .fontColor($r('app.color.color_222222'))
  16 +
  17 + Blank()
  18 +
  19 + Row(){
  20 + Text("内容管理")
  21 + .fontSize('27lpx')
  22 + .width('113lpx')
  23 + .height('35lpx')
  24 + .fontColor($r('app.color.color_999999'))
  25 +
  26 + Image($r('app.media.mine_right_arrow'))
  27 + .width('27lpx')
  28 + .height('27lpx')
  29 + .objectFit(ImageFit.Auto)
  30 + }
  31 +
  32 + }.setFullWidth()
  33 + .height('92lpx')
  34 + .padding({left:'29lpx',top:'23lpx',right:'31lpx'})
  35 +
  36 + Row(){
  37 + Grid(){
  38 + ForEach(this.creatorData,(item:MinePageCreatorFunctionsItem,index:number)=>{
  39 + GridItem(){
  40 + Row(){
  41 + Column(){
  42 + Image(item.imgSrc)
  43 + .width('50lpx')
  44 + .height('50lpx')
  45 + Text(`${item.msg}`)
  46 + .margin({top:'15lpx'})
  47 + .width('96lpx')
  48 + .height('23lpx')
  49 + .fontColor($r('app.color.color_666666'))
  50 + .fontSize('23lpx')
  51 + }
  52 + .alignItems(HorizontalAlign.Center)
  53 + .width('100%')
  54 + Blank()
  55 + .layoutWeight(1)
  56 + if(index % 4 < 3 && index != this.creatorData.length){
  57 + Text().backgroundColor($r('app.color.color_222222'))
  58 + .opacity(0.1)
  59 + .width('2lpx')
  60 + .height('29lpx')
  61 + }
  62 + }
  63 + }.onClick(()=>{
  64 + console.log(index+"")
  65 + }).width('169lpx')
  66 + .height('117lpx')
  67 + })
  68 + }
  69 + .rowsTemplate('1fr')
  70 + .columnsTemplate('1fr 1fr 1fr 1fr')
  71 + .height('88lpx')
  72 + }.setFullWidth()
  73 + .height('127lpx')
  74 + }
  75 + .height('219lpx')
  76 + .borderRadius(8)
  77 + .margin({top:'19lpx',left:'23lpx',right:'23lpx'})
  78 + .setBackGroundWhite()
  79 + }
  80 +
  81 + @Styles setFullWidthAndHeight(){
  82 + .width('100%')
  83 + .height('100%')
  84 + }
  85 +
  86 + @Styles setFullWidth(){
  87 + .width('100%')
  88 + }
  89 +
  90 + @Styles setFullHeight(){
  91 + .height('100%')
  92 + }
  93 +
  94 + @Styles setBackGroundWhite(){
  95 + .backgroundColor($r('app.color.white'))
  96 + }
  97 +}
  1 +import MinePageMoreFunctionModel from '../../viewmodel/MinePageMoreFunctionModel'
  2 +
  3 +@Component
  4 +export default struct MinePageMoreFunctionUI{
  5 + @Link moreData:MinePageMoreFunctionModel[]
  6 +
  7 + build(){
  8 + Column(){
  9 + Column(){
  10 + Text(`更多功能`)
  11 + .width('456lpx')
  12 + .height('38lpx')
  13 + .fontColor($r('app.color.color_666666'))
  14 + .fontSize('29lpx')
  15 + .margin({left:"31lpx"})
  16 + .fontWeight(600)
  17 + }.height('92lpx')
  18 + .width('100%')
  19 + .justifyContent(FlexAlign.Center)
  20 + .alignItems(HorizontalAlign.Start)
  21 +
  22 + Text().backgroundColor($r('app.color.color_F5F5F5'))
  23 + .width('100%')
  24 + .height('1lpx')
  25 +
  26 + List(){
  27 + ForEach(this.moreData,(item:MinePageMoreFunctionModel,index:number)=>{
  28 + ListItem(){
  29 + Column(){
  30 + Column(){
  31 + Row(){
  32 + if(item.imgSrc){
  33 + Image(item.imgSrc)
  34 + .width('38lpx')
  35 + .height('38lpx')
  36 + .margin({right:'15lpx'})
  37 + }
  38 + Text(`${item.msg}`)
  39 + .width('456lpx')
  40 + .height('38lpx')
  41 + .fontColor($r('app.color.color_666666'))
  42 + .fontSize('29lpx')
  43 + .fontWeight(400)
  44 +
  45 + Blank()
  46 + Image($r('app.media.mine_user_arrow'))
  47 + .width('27lpx')
  48 + .height('27lpx')
  49 + .objectFit(ImageFit.Auto)
  50 + .margin({left:'81lpx',right:'29lpx'})
  51 + }.alignItems(VerticalAlign.Center)
  52 + .justifyContent(FlexAlign.Center)
  53 + }.height('108lpx')
  54 + .justifyContent(FlexAlign.Center)
  55 + .alignItems(HorizontalAlign.Start)
  56 + .padding({left:'27lpx'})
  57 +
  58 + if(index != this.moreData.length -1 ){
  59 + Text().backgroundColor($r('app.color.color_F5F5F5'))
  60 + .width('612lpx')
  61 + .height('1lpx')
  62 + }
  63 + }
  64 + }
  65 + .onClick(()=>{
  66 + console.log(index+"")
  67 + if (index == 3) {
  68 + // RouteManager.jumpNewPage("pages/SettingPage")
  69 + } else {
  70 + // RouteManager.jumpNewPage("pages/PrivacySettingPage")
  71 + }
  72 + })
  73 + .height('117lpx')
  74 + })
  75 + }.onScrollFrameBegin((offset, state) => {
  76 + return { offsetRemain: 0 }
  77 + })
  78 + }
  79 + .backgroundColor($r('app.color.white'))
  80 + .borderRadius(8)
  81 + .margin({left:'23lpx',right:'23lpx',top:"19lpx"})
  82 + }
  83 +}
  1 +import { WDRouterRule, WDRouterPage } from 'wdRouter'
  2 +import MinePagePersonalFunctionsItem from '../../viewmodel/MinePagePersonalFunctionsItem'
  3 +import router from '@ohos.router'
  4 +
  5 +@Component
  6 +export default struct MinePagePersonFunctionUI {
  7 + @Link personalData:MinePagePersonalFunctionsItem[]
  8 +
  9 + build() {
  10 + Grid(){
  11 + ForEach(this.personalData,(item:MinePagePersonalFunctionsItem,index:number)=>{
  12 + GridItem(){
  13 + Row(){
  14 + Column(){
  15 + Image(item.imgSrc)
  16 + .width('46lpx')
  17 + .height('46lpx')
  18 + Text(`${item.msg}`)
  19 + .margin({top:'8lpx'})
  20 + .width('50lpx')
  21 + .height('23lpx')
  22 + .fontColor($r('app.color.color_222222'))
  23 + .fontSize('23lpx')
  24 + }
  25 + .alignItems(HorizontalAlign.Center)
  26 + .width('100%')
  27 + Blank()
  28 + .layoutWeight(1)
  29 + if(index % 4 < 3 && index != this.personalData.length-1){
  30 + Text().backgroundColor($r('app.color.color_222222'))
  31 + .opacity(0.1)
  32 + .width('2lpx')
  33 + .height('29lpx')
  34 + }
  35 + }
  36 + }.onClick(()=>{
  37 + console.log(index+"")
  38 + switch (item.msg){
  39 + case "预约":{
  40 + WDRouterRule.jumpWithPage(WDRouterPage.appointmentListPage)
  41 + break;
  42 + }
  43 + case "关注":{
  44 + WDRouterRule.jumpWithPage(WDRouterPage.followListPage)
  45 + break;
  46 + }
  47 + }
  48 + }).width('169lpx')
  49 + .height('117lpx')
  50 + })
  51 + }
  52 + .rowsTemplate('1fr 1fr')
  53 + .columnsTemplate('1fr 1fr 1fr 1fr')
  54 + .height('234lpx')
  55 + .margin({top:'31lpx',left:'23lpx',right:'23lpx' })
  56 + }
  57 +}
  1 +import { WDRouterPage, WDRouterRule } from 'wdRouter'
  2 +
  3 +@Component
  4 +export default struct MinePageUserSimpleInfoUI {
  5 + @Prop isLogin:boolean
  6 +
  7 + build(){
  8 + Row(){
  9 + //头像
  10 + Stack(){
  11 + Button({type:ButtonType.Circle})
  12 + .backgroundColor($r('app.color.main_red'))
  13 + .width('110lpx')
  14 + .height('110lpx')
  15 + Image($r('app.media.mine_head_icon'))
  16 + .width('108lpx')
  17 + .height('108lpx')
  18 + .objectFit(ImageFit.Cover)
  19 + .borderRadius(50)
  20 + }.width('110lpx')
  21 + .height('110lpx')
  22 + .alignContent(Alignment.Center)
  23 + .onClick(()=>{
  24 + WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  25 + })
  26 +
  27 + if(this.isLogin){
  28 + //昵称信息
  29 + Column(){
  30 + Row(){
  31 + Text("人民日报6G5E3T")
  32 + .fontColor($r('app.color.color_222222'))
  33 + .maxLines(1)
  34 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  35 + .fontSize('33lpx')
  36 +
  37 + Image($r('app.media.mine_user_edit'))
  38 + .width('27lpx')
  39 + .height('27lpx')
  40 + .margin({left:'15lpx'})
  41 + .objectFit(ImageFit.Cover)
  42 + Blank()
  43 + }.width('100%')
  44 +
  45 + Stack(){
  46 + Image($r('app.media.mine_grade_bg'))
  47 + .width('84lpx')
  48 + .height('29lpx')
  49 + .objectFit(ImageFit.Auto)
  50 + Text("等级8")
  51 + .textAlign(TextAlign.Center)
  52 + .fontColor($r('app.color.white'))
  53 + .fontSize('19lpx')
  54 + .width('50lpx')
  55 + .height('29lpx')
  56 + }.margin({top:'15lpx'})
  57 + }.alignItems(HorizontalAlign.Start)
  58 + .margin({top:'12lpx',left:'17lpx'})
  59 + .width('352lpx')
  60 + }else{
  61 + Row(){
  62 + Text("登录注册")
  63 + .fontColor($r('app.color.color_222222'))
  64 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  65 + .fontSize('33lpx')
  66 +
  67 + Image($r('app.media.mine_user_edit'))
  68 + .width('11lpx')
  69 + .height('20lpx')
  70 + .margin({left:'15lpx'})
  71 + .objectFit(ImageFit.Cover)
  72 + Blank()
  73 + }
  74 + .margin({top:'11lpx',left:'17lpx'})
  75 + .width('352lpx')
  76 + }
  77 +
  78 + Blank()
  79 +
  80 + Stack({alignContent:Alignment.Start}){
  81 + Text("签到")
  82 + .textAlign(TextAlign.Start)
  83 + .width('108lpx')
  84 + .height('46lpx')
  85 + .fontColor($r('app.color.color_AD6000'))
  86 + .backgroundColor($r('app.color.color_FFC460'))
  87 + .fontWeight(500)
  88 + .position({x:'23lpx'})
  89 + .padding({left:'35lpx'})
  90 + Image($r("app.media.mine_sign_icon"))
  91 + .width('50lpx')
  92 + .height('50lpx')
  93 + }.width('131lpx')
  94 + }.backgroundColor($r('app.color.white'))
  95 + .setFullWidth()
  96 + .padding({top:'31lpx',left:'46lpx'})
  97 + }
  98 +
  99 + @Styles setFullWidthAndHeight(){
  100 + .width('100%')
  101 + .height('100%')
  102 + }
  103 +
  104 + @Styles setFullWidth(){
  105 + .width('100%')
  106 + }
  107 +
  108 + @Styles setFullHeight(){
  109 + .height('100%')
  110 + }
  111 +}
  1 +import { ResourcesUtils } from 'wdKit'
  2 +import { ResponseDTO } from 'wdNetwork'
  3 +import { FollowListItem } from '../../../viewmodel/FollowListItem'
  4 +import { CustomTitleUI } from '../../reusable/CustomTitleUI'
  5 +import { FollowSecondTabsComponent } from './FollowSecondTabsComponent'
  6 +
  7 +@Component
  8 +export struct FollowFirstTabsComponent{
  9 + @State currentIndex: number = 0
  10 + private controller: TabsController = new TabsController()
  11 + @State data:FollowListItem[] = []
  12 + fontColor: string = '#999999'
  13 + selectedFontColor: string = '#000000'
  14 +
  15 + aboutToAppear(){
  16 + this.data.push(new FollowListItem("我的"))
  17 + // let res = JSON.parse(`{"code":"0","data":[{"children":[],"directoryName":"阅读","directoryWeight":99,"id":165,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[{"directoryName":"三二","directoryWeight":2,"id":120,"isShow":1,"level":3,"parentId":118,"rootId":117},{"directoryName":"三级","directoryWeight":1,"id":119,"isShow":1,"level":3,"parentId":118,"rootId":117}],"directoryName":"二级","directoryWeight":1,"id":118,"isShow":1,"level":2,"parentId":117,"rootId":117}],"directoryName":"幽游白书","directoryWeight":33,"id":117,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"推荐","directoryWeight":9,"id":386,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"政务","directoryWeight":9,"id":379,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"推荐","directoryWeight":0,"id":335,"isShow":1,"level":2,"parentId":320,"rootId":320}],"directoryName":"推荐","directoryWeight":9,"id":320,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"媒体","directoryWeight":8,"id":390,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"媒体","directoryWeight":8,"id":323,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"自媒体","directoryWeight":7,"id":329,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"名人","directoryWeight":6,"id":389,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"测试","directoryWeight":0,"id":338,"isShow":1,"level":2,"parentId":324,"rootId":324}],"directoryName":"名人","directoryWeight":6,"id":324,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"2级目录","directoryWeight":0,"id":340,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"3级测试","directoryWeight":0,"id":368,"isShow":1,"level":3,"parentId":339,"rootId":312}],"directoryName":"二级目录","directoryWeight":0,"id":339,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"企业","directoryWeight":1,"id":348,"isShow":1,"level":3,"parentId":336,"rootId":312},{"directoryName":"部委","directoryWeight":0,"id":344,"isShow":1,"level":3,"parentId":336,"rootId":312},{"directoryName":"地方","directoryWeight":0,"id":341,"isShow":1,"level":3,"parentId":336,"rootId":312}],"directoryName":"类型","directoryWeight":0,"id":336,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"贵州省","directoryWeight":0,"id":378,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"西藏自治区","directoryWeight":0,"id":377,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"四川省","directoryWeight":0,"id":376,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"重庆市","directoryWeight":0,"id":375,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"湖南省","directoryWeight":0,"id":374,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"云南省","directoryWeight":0,"id":373,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"广西壮族自治区","directoryWeight":0,"id":372,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"宁夏回族自治区","directoryWeight":0,"id":371,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"湖北省","directoryWeight":0,"id":370,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"青海省","directoryWeight":0,"id":369,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"陕西省","directoryWeight":0,"id":367,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"甘肃省","directoryWeight":0,"id":366,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"吉林省","directoryWeight":0,"id":365,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"广东省","directoryWeight":0,"id":364,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"海南省","directoryWeight":0,"id":363,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"辽宁省","directoryWeight":0,"id":362,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"江苏省","directoryWeight":0,"id":361,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"新疆维吾尔族自治区","directoryWeight":0,"id":360,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"福建省","directoryWeight":0,"id":359,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"山东省","directoryWeight":0,"id":358,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"河南省","directoryWeight":0,"id":357,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"浙江省","directoryWeight":0,"id":356,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"安徽省","directoryWeight":0,"id":355,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"上海市","directoryWeight":0,"id":354,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"河北省","directoryWeight":0,"id":353,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"黑龙江省","directoryWeight":0,"id":352,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"江西省","directoryWeight":0,"id":351,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"内蒙古自治区","directoryWeight":0,"id":350,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"北京市","directoryWeight":0,"id":349,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"山西省","directoryWeight":0,"id":346,"isShow":1,"level":3,"parentId":332,"rootId":312}],"directoryName":"地域","directoryWeight":0,"id":332,"isShow":1,"level":2,"parentId":312,"rootId":312}],"directoryName":"政务","directoryWeight":5,"id":312,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"学校","directoryWeight":4,"id":331,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"机构","directoryWeight":3,"id":330,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[{"directoryName":"新闻联播","directoryWeight":3,"id":79,"isShow":1,"level":3,"parentId":75,"rootId":74},{"directoryName":"第三季","directoryWeight":2,"id":78,"isShow":1,"level":3,"parentId":75,"rootId":74},{"directoryName":"三级","directoryWeight":1,"id":76,"isShow":1,"level":3,"parentId":75,"rootId":74}],"directoryName":"短视频","directoryWeight":1,"id":75,"isShow":1,"level":2,"parentId":74,"rootId":74}],"directoryName":"创作","directoryWeight":3,"id":74,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"教学","directoryWeight":2,"id":72,"isShow":1,"level":2,"parentId":64,"rootId":64},{"children":[],"directoryName":"热门","directoryWeight":1,"id":73,"isShow":1,"level":2,"parentId":64,"rootId":64},{"children":[],"directoryName":"赛事","directoryWeight":1,"id":71,"isShow":1,"level":2,"parentId":64,"rootId":64}],"directoryName":"游戏","directoryWeight":2,"id":64,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"新闻","directoryWeight":1,"id":315,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"趣闻","directoryWeight":6,"id":70,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"时政","directoryWeight":5,"id":69,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"农业","directoryWeight":3,"id":68,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"娱乐","directoryWeight":3,"id":67,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"科技","directoryWeight":2,"id":66,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"国际","directoryWeight":1,"id":65,"isShow":1,"level":2,"parentId":63,"rootId":63}],"directoryName":"新闻","directoryWeight":1,"id":63,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"公安","directoryWeight":0,"id":388,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"dddd","directoryWeight":0,"id":387,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"健康","directoryWeight":0,"id":384,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"综合","directoryWeight":0,"id":328,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"房产","directoryWeight":0,"id":327,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"健康","directoryWeight":0,"id":318,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"历史","directoryWeight":0,"id":310,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"dddd","directoryWeight":0,"id":309,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"aaaa","directoryWeight":1,"id":333,"isShow":1,"level":2,"parentId":308,"rootId":308},{"children":[],"directoryName":"qqq","directoryWeight":0,"id":334,"isShow":1,"level":2,"parentId":308,"rootId":308}],"directoryName":"dddd","directoryWeight":0,"id":308,"isShow":1,"level":1,"parentId":0,"rootId":0}],"message":"Success","success":true,"timestamp":1710741803593}`) as ResponseDTO<FollowListItem[]>
  18 + // res.data.forEach(element => {
  19 + // this.data.push(element)
  20 + // });
  21 +
  22 + ResourcesUtils.getResourcesJson<ResponseDTO<FollowListItem[]>>(getContext(this),'follow_list_data.json').then((success)=>{
  23 + success.data?.forEach(element => {
  24 + this.data.push(element)
  25 + });
  26 + console.log("ycg",this.data.length.toString());
  27 + })
  28 + }
  29 +
  30 + @Builder TabBuilder(index: number, item: FollowListItem) {
  31 + Stack(){
  32 + Text(item.directoryName)
  33 + .height('38lpx')
  34 + .fontSize('33lpx')
  35 + .fontWeight(this.currentIndex === index ? 600 : 400)
  36 + .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
  37 + .lineHeight('38lpx')
  38 +
  39 + if(this.currentIndex === index){
  40 + Divider()
  41 + .width('31lpx')
  42 + .height('4lpx')
  43 + .color('#ED2800')
  44 + .strokeWidth('4lpx')
  45 + .margin({top:'50lpx'})
  46 + .id("divTag")
  47 + }
  48 + }.onClick(()=>{
  49 + this.currentIndex = index
  50 + this.controller.changeIndex(this.currentIndex)
  51 + })
  52 + .height('100%')
  53 + .margin({right:'9lpx'})
  54 + .padding({left:'31lpx',right:index === this.data.length-1?"31lpx":"0lpx"})
  55 + }
  56 +
  57 + build() {
  58 + Column() {
  59 + //标题栏目
  60 + CustomTitleUI({titleName:"关注列表"})
  61 +
  62 + Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
  63 + ForEach(this.data, (item: FollowListItem, index: number ) => {
  64 + TabContent(){
  65 + FollowSecondTabsComponent({data:$data,firstIndex:index})
  66 + }.tabBar(this.TabBuilder(index,item))
  67 + }, (item: FollowListItem, index: number) => index.toString())
  68 + }
  69 + .vertical(false)
  70 + .barMode(BarMode.Scrollable)
  71 + .barWidth('100%')
  72 + .barHeight('84lpx')
  73 + .animationDuration(0)
  74 + .onChange((index: number) => {
  75 + this.currentIndex = index
  76 + })
  77 + .width('100%')
  78 + .height('100%')
  79 + }.width('100%')
  80 + }
  81 +}
  1 +import { LazyDataSource } from 'wdKit';
  2 +import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem'
  3 +import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';
  4 +
  5 +const TAG = "FollowListDetailUI"
  6 +@Component
  7 +export struct FollowListDetailUI{
  8 + @State creatorDirectoryId:number = -1;
  9 + @State data: LazyDataSource<FollowListDetailItem> = new LazyDataSource();
  10 + @State isLoading:boolean = false
  11 + @State hasMore:boolean = true
  12 + 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 + aboutToAppear(){
  17 + console.log("YCG","aboutToAppear==="+this.creatorDirectoryId);
  18 + this.getNewPageData()
  19 + }
  20 +
  21 + build(){
  22 + Column(){
  23 + List({ space: 3 }) {
  24 + LazyForEach(this.data, (item: FollowListDetailItem, index: number = 0) => {
  25 + ListItem() {
  26 + ChildComponent({data: item})
  27 + }
  28 + .onClick(() => {
  29 + })
  30 + }, (item: FollowListDetailItem, index: number) => index.toString())
  31 +
  32 +
  33 + //没有更多数据 显示提示
  34 + if(!this.hasMore){
  35 + ListItem(){
  36 + ListHasNoMoreDataUI()
  37 + }
  38 + }
  39 + }.cachedCount(7)
  40 + .padding({left:'31lpx',right:'31lpx'})
  41 + .layoutWeight(1)
  42 + .onReachEnd(()=>{
  43 + console.log(TAG,"触底了");
  44 + if(!this.isLoading){
  45 + this.isLoading = true
  46 + //加载分页数据
  47 + this.getNewPageData()
  48 + }
  49 + })
  50 + }.layoutWeight(1)
  51 + }
  52 +
  53 + getNewPageData(){
  54 + if(this.hasMore){
  55 + if(this.curPageNum>=4){
  56 + this.hasMore = false
  57 + return
  58 + }
  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 + }
  72 + this.isLoading = false
  73 + this.curPageNum++
  74 + }
  75 + }
  76 +}
  77 +
  78 +@Component
  79 +struct ChildComponent {
  80 + @ObjectLink data: FollowListDetailItem
  81 +
  82 + build() {
  83 + Column(){
  84 + Blank().height('27lpx')
  85 +
  86 + Row() {
  87 + Image(this.data.headPhotoUrl)
  88 + .objectFit(ImageFit.Auto)
  89 + .width('92lpx')
  90 + .height('92lpx')
  91 + .margin({right:'15lpx'})
  92 +
  93 + Column(){
  94 + Text(this.data.cnUserName)
  95 + .fontWeight('400lpx')
  96 + .fontSize('31lpx')
  97 + .lineHeight('38lpx')
  98 + .fontColor($r('app.color.color_222222'))
  99 + Text(`粉丝${this.data.cnFansNum}`)
  100 + .fontColor($r('app.color.color_B0B0B0'))
  101 + .fontSize('23lpx')
  102 + .maxLines(1)
  103 + Text(`${this.data.introduction}`)
  104 + .fontColor($r('app.color.color_B0B0B0'))
  105 + .fontSize('23lpx')
  106 + .maxLines(2)
  107 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  108 + }.layoutWeight(1)
  109 + .alignItems(HorizontalAlign.Start)
  110 +
  111 + if(this.data.isFollow){
  112 + Row(){
  113 + Text(`已关注`)
  114 + .fontColor($r('app.color.color_CCCCCC'))
  115 + .fontSize('23lpx')
  116 + .fontWeight('500lpx')
  117 + .lineHeight('35lpx')
  118 + }.backgroundColor($r('app.color.color_F5F5F5'))
  119 + .borderRadius('6lpx')
  120 + .borderWidth('2lpx')
  121 + .justifyContent(FlexAlign.Center)
  122 + .width('100lpx')
  123 + .height('46lpx')
  124 + .margin({left:'4lpx',top:'23lpx'})
  125 + .onClick(()=>{
  126 + this.data.isFollow = false
  127 + })
  128 + }else{
  129 + Row(){
  130 + Image($r('app.media.follow_icon'))
  131 + .margin({right:'4lpx'})
  132 + .width('23lpx')
  133 + .height('23lpx')
  134 + Text(`关注`)
  135 + .fontColor($r('app.color.color_ED2800'))
  136 + .fontSize('23lpx')
  137 + .fontWeight('500lpx')
  138 + .lineHeight('35lpx')
  139 + }.borderColor($r('app.color.color_ED2800'))
  140 + .borderRadius('6lpx')
  141 + .borderWidth('2lpx')
  142 + .justifyContent(FlexAlign.Center)
  143 + .width('100lpx')
  144 + .height('46lpx')
  145 + .margin({left:'4lpx',top:'23lpx'})
  146 + .onClick(()=>{
  147 + this.data.isFollow = true
  148 + })
  149 + }
  150 + }.alignItems(VerticalAlign.Top)
  151 + .width('100%')
  152 + .layoutWeight(1)
  153 +
  154 + Divider().width('100%')
  155 + .height('2lpx')
  156 + .strokeWidth('1lpx')
  157 + .backgroundColor($r('app.color.color_EDEDED'))
  158 +
  159 + }.height('146lpx')
  160 + .justifyContent(FlexAlign.Center)
  161 + }
  162 +}
  1 +import { FollowListItem, FollowSecondListItem } from '../../../viewmodel/FollowListItem'
  2 +import { FollowListDetailUI } from './FollowListDetailUI'
  3 +import { FollowThirdTabsComponent } from './FollowThirdTabsComponent'
  4 +
  5 +@Component
  6 +export struct FollowSecondTabsComponent{
  7 + @Link data:FollowListItem[]
  8 + @State firstIndex:number = 0
  9 + @State currentIndex: number = 0
  10 + private controller: TabsController = new TabsController()
  11 + fontColor: string = '#000000'
  12 + selectedFontColor: string = '#ED2800'
  13 +
  14 + aboutToAppear(){
  15 + }
  16 +
  17 + build(){
  18 + Column(){
  19 + Divider().width('100%')
  20 + .height('2lpx')
  21 + .strokeWidth('1lpx')
  22 + .backgroundColor($r('app.color.color_EDEDED'))
  23 +
  24 + if(this.data != null){
  25 + if(this.data[this.firstIndex].children == null || this.data[this.firstIndex].children.length == 0){
  26 + FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].id})
  27 + }else{
  28 + this.FollowSecondUI()
  29 + }
  30 + }
  31 + }
  32 + .width('100%')
  33 + .height('100%')
  34 + }
  35 +
  36 + @Builder FollowSecondUI(){
  37 + Row() {
  38 + Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
  39 + ForEach(this.data[this.firstIndex].children, (item: FollowSecondListItem, index: number ) => {
  40 + TabContent(){
  41 + FollowThirdTabsComponent({data:$data,firstIndex:$firstIndex,secondIndex:index})
  42 + }.tabBar(this.TabBuilder(index,item))
  43 + .backgroundColor($r('app.color.white'))
  44 + }, (item: FollowListItem, index: number) => index.toString())
  45 + }
  46 + .vertical(true)
  47 + .barMode(BarMode.Scrollable)
  48 + .barWidth('140lpx')
  49 + .animationDuration(0)
  50 + .onChange((index: number) => {
  51 + this.currentIndex = index
  52 + })
  53 + .width('100%')
  54 + }.width('100%')
  55 + .alignItems(VerticalAlign.Top)
  56 + }
  57 +
  58 + @Builder TabBuilder(index: number, item: FollowSecondListItem) {
  59 + Column(){
  60 + Text(item.directoryName)
  61 + .width('100%')
  62 + .height('38lpx')
  63 + .fontSize('30lpx')
  64 + .textAlign(TextAlign.Center)
  65 + .fontWeight(this.currentIndex === index ? 600 : 400)
  66 + .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
  67 + .lineHeight('38lpx')
  68 + }
  69 + .onClick(()=>{
  70 + this.currentIndex = index
  71 + this.controller.changeIndex(this.currentIndex)
  72 + })
  73 + .justifyContent(FlexAlign.Center)
  74 + .height('84lpx')
  75 + .backgroundColor(this.currentIndex === index?$r('app.color.white'):$r('app.color.color_F9F9F9'))
  76 + }
  77 +
  78 +}
  1 +import { FollowListItem, FollowThirdListItem } from '../../../viewmodel/FollowListItem'
  2 +import { FollowListDetailUI } from './FollowListDetailUI'
  3 +
  4 +@Component
  5 +export struct FollowThirdTabsComponent{
  6 + @Link data:FollowListItem[]
  7 + @State currentIndex: number = 0
  8 +
  9 + @Link firstIndex: number
  10 + @State secondIndex:number = -1
  11 +
  12 +
  13 + private controller: TabsController = new TabsController()
  14 + fontColor: string = '#999999'
  15 + selectedFontColor: string = '#000000'
  16 +
  17 + build(){
  18 + if(this.data != null){
  19 + if(this.data[this.firstIndex].children[this.secondIndex].children == null || this.data[this.firstIndex].children[this.secondIndex].children.length == 0){
  20 + FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].children[this.secondIndex].id})
  21 + }else{
  22 + this.FollowThirdUI()
  23 + }
  24 + }
  25 + }
  26 +
  27 + @Builder TabBuilder(index: number, item: FollowThirdListItem) {
  28 + Column(){
  29 + Text(item.directoryName)
  30 + .fontSize('30lpx')
  31 + .textAlign(TextAlign.Center)
  32 + .fontWeight(this.currentIndex === index ? 600 : 400)
  33 + .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
  34 + .lineHeight('38lpx')
  35 + .backgroundColor($r('app.color.color_F9F9F9'))
  36 + .padding('13lpx')
  37 + }
  38 + .onClick(()=>{
  39 + this.currentIndex = index
  40 + this.controller.changeIndex(this.currentIndex)
  41 + })
  42 + .height('100%')
  43 + .margin({right:'9lpx'})
  44 + .padding({left:'20lpx',right:index === this.data[this.firstIndex].children[this.secondIndex].children.length-1?"20lpx":"0lpx"})
  45 + .justifyContent(FlexAlign.Center)
  46 + }
  47 +
  48 + @Builder FollowThirdUI(){
  49 + Row() {
  50 + Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
  51 + ForEach(this.data[this.firstIndex].children[this.secondIndex].children, (item: FollowThirdListItem, index: number ) => {
  52 + TabContent(){
  53 + Column(){
  54 + Divider().width('100%')
  55 + .height('2lpx')
  56 + .strokeWidth('1lpx')
  57 + .backgroundColor($r('app.color.color_EDEDED'))
  58 + .margin({left:'20lpx'})
  59 + FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].children[this.secondIndex].children[index].id})
  60 + }
  61 + }.tabBar(this.TabBuilder(index,item))
  62 + .backgroundColor($r('app.color.white'))
  63 + }, (item: FollowListItem, index: number) => index.toString())
  64 + }
  65 + .vertical(false)
  66 + .barMode(BarMode.Scrollable)
  67 + .barWidth('100%')
  68 + .barHeight('84lpx')
  69 + .animationDuration(0)
  70 + .onChange((index: number) => {
  71 + this.currentIndex = index
  72 + })
  73 + .width('100%')
  74 + }.width('100%')
  75 + }
  76 +
  77 +}
  1 +import { AppointmentListUI } from '../mine/AppointmentListUI'
  2 +
  3 +const TAG = "AppointmentListPage"
  4 +
  5 +@Entry
  6 +@Component
  7 +struct AppointmentListPage {
  8 +
  9 + build() {
  10 + Column(){
  11 + AppointmentListUI()
  12 + }
  13 + }
  14 +}
  1 +import { FollowFirstTabsComponent } from '../mine/follow/FollowFirstTabsComponent'
  2 +
  3 +@Entry
  4 +@Component
  5 +struct FollowListPage {
  6 +
  7 + build() {
  8 + Column() {
  9 + //Tab 详情
  10 + FollowFirstTabsComponent()
  11 + }
  12 + .backgroundColor($r('app.color.color_F9F9F9'))
  13 + .height('100%')
  14 + .width('100%')
  15 + }
  16 +}
1 -import { WDRouterPage, WDRouterRule } from 'wdRouter'; 1 +import MinePagePersonalFunctionsItem from '../../viewmodel/MinePagePersonalFunctionsItem'
  2 +import MinePageCreatorFunctionsItem from '../../viewmodel/MinePageCreatorFunctionsItem'
  3 +import MinePageMoreFunctionModel from '../../viewmodel/MinePageMoreFunctionModel'
  4 +import MinePageDatasModel from '../../model/MinePageDatasModel'
  5 +import MinePageUserSimpleInfoUI from '../mine/MinePageUserSimpleInfoUI'
  6 +import MinePagePersonFunctionUI from '../mine/MinePagePersonFunctionUI'
  7 +import MinePageCardUI from '../mine/MinePageCardUI'
  8 +import MinePageCreatorFunctionUI from '../mine/MinePageCreatorFunctionUI'
  9 +import MinePageMoreFunctionUI from '../mine/MinePageMoreFunctionUI'
2 10
3 -const TAG = 'PageComponent'; 11 +const TAG = 'MinePageComponent';
4 12
5 /** 13 /**
6 * 我的页面 14 * 我的页面
7 */ 15 */
8 @Component 16 @Component
9 export struct MinePageComponent { 17 export struct MinePageComponent {
10 - // TODO 待完善 18 + //是否是创作者
  19 + @State isCreator:boolean = false
  20 + @State isLogin:boolean = false
  21 + @State personalData:MinePagePersonalFunctionsItem[] = []
  22 + @State creatorData:MinePageCreatorFunctionsItem[] = []
  23 + @State moreData:MinePageMoreFunctionModel[] = []
  24 + scroller: Scroller = new Scroller()
  25 +
  26 + aboutToAppear(){
  27 + //登录信息 TODO
  28 +
  29 + this.getFunctionData()
  30 + }
  31 +
  32 + getFunctionData(){
  33 + //个人功能数据
  34 + this.personalData = MinePageDatasModel.getPersonalFunctionsData()
  35 + //创作者功能数据
  36 + this.creatorData = MinePageDatasModel.getCreatorFunctionsData()
  37 + //更多功能数据
  38 + this.moreData = MinePageDatasModel.getMoreFunctionsData()
  39 + }
  40 +
11 build() { 41 build() {
12 - Text('我的页面').onClick(()=>{  
13 - WDRouterRule.jumpWithPage(WDRouterPage.loginPage)  
14 - }) 42 + Scroll(this.scroller){
  43 + Stack(){
  44 + Image($r('app.media.mine_head_bg'))
  45 + .width('100%')
  46 + .height('657lpx')
  47 + .objectFit(ImageFit.Auto)
  48 + this.MinePageUI()
  49 + }
  50 + .alignContent(Alignment.Top)
  51 + }
  52 + .setFullWidthAndHeight()
  53 + .backgroundColor($r('app.color.color_F9F9F9'))
  54 + .scrollable(ScrollDirection.Vertical)
  55 + .scrollBar(BarState.Off)
  56 + }
  57 +
  58 +
  59 + @Builder MinePageUI(){
  60 + Column(){
  61 + //头像层
  62 + MinePageUserSimpleInfoUI({isLogin:this.isLogin})
  63 + //Grid 区域
  64 + MinePagePersonFunctionUI({personalData:$personalData})
  65 + //Card
  66 + MinePageCardUI()
  67 + //创作者区域
  68 +
  69 + MinePageCreatorFunctionUI({creatorData:$creatorData})
  70 + //更多功能
  71 + MinePageMoreFunctionUI({moreData:$moreData})
  72 + }.width('100%')
  73 + }
  74 +
  75 + @Styles setFullWidthAndHeight(){
  76 + .width('100%')
  77 + .height('100%')
15 } 78 }
16 -}  
17 79
  80 +}
  1 +import router from '@ohos.router'
  2 +
  3 +@Component
  4 +export struct CustomTitleUI {
  5 + imgBack:boolean = true
  6 + titleName:string = "默认标题"
  7 +
  8 + build() {
  9 + RelativeContainer() {
  10 + //标题栏目
  11 + if(this.imgBack){
  12 + Image($r('app.media.back_icon'))
  13 + .width('46lpx')
  14 + .height('46lpx')
  15 + .objectFit(ImageFit.Auto)
  16 + .id("back_icon")
  17 + .alignRules({
  18 + center: {anchor: "__container__", align: VerticalAlign.Center},
  19 + left: {anchor: "__container__", align: HorizontalAlign.Start}
  20 + })
  21 + .margin({left:'31lpx'})
  22 + .onClick(()=>{
  23 + router.back()
  24 + })
  25 + }
  26 +
  27 + Text(this.titleName)
  28 + .height('42lpx')
  29 + .maxLines(1)
  30 + .id("title")
  31 + .fontSize('35lpx')
  32 + .fontWeight(400)
  33 + .fontColor($r('app.color.color_222222'))
  34 + .lineHeight('42lpx')
  35 + .alignRules({
  36 + center: {anchor: "__container__", align: VerticalAlign.Center},
  37 + middle: {anchor: "__container__", align: HorizontalAlign.Center}
  38 + })
  39 + }
  40 + .height('84lpx')
  41 + .width('100%')
  42 + .backgroundColor($r('app.color.white'))
  43 +
  44 + }
  45 +}
  1 +@Component
  2 +export struct ListHasNoMoreDataUI{
  3 + build(){
  4 + Row(){
  5 + Text("已显示全部内容")
  6 + .fontColor($r('app.color.color_999999'))
  7 + .fontWeight('500lpx')
  8 + .fontSize('23lpx')
  9 + }.justifyContent(FlexAlign.Center)
  10 + .width('100%')
  11 + .margin({top:'20lpx',bottom:'20lpx'})
  12 + }
  13 +}
  1 +
  2 +import MinePagePersonalFunctionsItem from '../viewmodel/MinePagePersonalFunctionsItem'
  3 +import MinePageCreatorFunctionsItem from '../viewmodel/MinePageCreatorFunctionsItem'
  4 +import MinePageMoreFunctionModel from '../viewmodel/MinePageMoreFunctionModel';
  5 +import HashMap from '@ohos.util.HashMap';
  6 +import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
  7 +import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem';
  8 +import { Logger, ResourcesUtils } from 'wdKit';
  9 +const TAG = "MinePageDatasModel"
  10 +
  11 +/**
  12 + * 我的页面 所有数据 获取封装类
  13 + */
  14 +class MinePageDatasModel{
  15 + private static instance: MinePageDatasModel;
  16 + personalData:MinePagePersonalFunctionsItem[] = []
  17 + creatorData:MinePageCreatorFunctionsItem[] = []
  18 + moreData:MinePageMoreFunctionModel[] = []
  19 +
  20 + private constructor() { }
  21 +
  22 + /**
  23 + * 单例模式
  24 + * @returns
  25 + */
  26 + public static getInstance(): MinePageDatasModel {
  27 + if (!MinePageDatasModel.instance) {
  28 + MinePageDatasModel.instance = new MinePageDatasModel();
  29 + }
  30 + return MinePageDatasModel.instance;
  31 + }
  32 +
  33 +
  34 +
  35 +
  36 + /**
  37 + * 评论 关注 收藏 等7个数据
  38 + * 包含名字和图标
  39 + */
  40 + getPersonalFunctionsData():MinePagePersonalFunctionsItem[]{
  41 + if(this.personalData.length === 7){
  42 + return this.personalData
  43 + }
  44 + this.personalData.push(new MinePagePersonalFunctionsItem("评论",$r('app.media.mine_comment_icon')))
  45 + this.personalData.push(new MinePagePersonalFunctionsItem("关注",$r('app.media.mine_order_icon')))
  46 + this.personalData.push(new MinePagePersonalFunctionsItem("收藏",$r('app.media.mine_collect_icon')))
  47 + this.personalData.push(new MinePagePersonalFunctionsItem("历史",$r('app.media.mine_history_icon')))
  48 + this.personalData.push(new MinePagePersonalFunctionsItem("消息",$r('app.media.mine_msg_icon')))
  49 + this.personalData.push(new MinePagePersonalFunctionsItem("留言板",$r('app.media.mine_msgboard_icon')))
  50 + this.personalData.push(new MinePagePersonalFunctionsItem("预约",$r('app.media.mine_order_icon')))
  51 + return this.personalData
  52 + }
  53 +
  54 +
  55 + /**
  56 + * 发布文章 发布视频 等4个数据
  57 + * 包含名字和图标
  58 + */
  59 + getCreatorFunctionsData():MinePageCreatorFunctionsItem[]{
  60 + if(this.creatorData.length === 4){
  61 + return this.creatorData
  62 + }
  63 + this.creatorData.push(new MinePageCreatorFunctionsItem("发布文章",$r('app.media.mine_active_create_article')))
  64 + this.creatorData.push(new MinePageCreatorFunctionsItem("发布视频",$r('app.media.mine_active_create_video')))
  65 + this.creatorData.push(new MinePageCreatorFunctionsItem("发布动态",$r('app.media.mine_active_create_video')))
  66 + this.creatorData.push(new MinePageCreatorFunctionsItem("发布图集",$r('app.media.mine_active_create_pics')))
  67 + return this.creatorData
  68 + }
  69 +
  70 + /**
  71 + * 扫一扫 我的奖品 等5个数据
  72 + * 包含名字和图标
  73 + */
  74 + getMoreFunctionsData():MinePageCreatorFunctionsItem[]{
  75 + if(this.moreData.length === 5){
  76 + return this.moreData
  77 + }
  78 + this.moreData.push(new MinePageMoreFunctionModel("扫一扫",$r('app.media.mine_scan')))
  79 + this.moreData.push(new MinePageMoreFunctionModel("我的奖品",$r('app.media.mine_mygift')))
  80 + this.moreData.push(new MinePageMoreFunctionModel("意见反馈",$r('app.media.mine_suggest')))
  81 + this.moreData.push(new MinePageMoreFunctionModel("设置",$r('app.media.mine_setting')))
  82 + this.moreData.push(new MinePageMoreFunctionModel("关于",$r('app.media.mine_about')))
  83 + return this.moreData
  84 + }
  85 +
  86 + fetchAppointmentListData(pageSize:string,pageNum:string) {
  87 + let url = HttpUrlUtils.getAppointmentListDataUrl()+ `?pageSize=${pageSize}&pageNum=${pageNum}`
  88 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  89 + return WDHttp.get<ResponseDTO<MineAppointmentListItem>>(url, headers)
  90 + };
  91 +
  92 + getAppointmentListData(pageSize:string,pageNum:string,context: Context): Promise<MineAppointmentListItem> {
  93 + return new Promise<MineAppointmentListItem>((success, error) => {
  94 + Logger.info(TAG, `getAppointmentList start`);
  95 + this.fetchAppointmentListData(pageSize,pageNum).then((navResDTO: ResponseDTO<MineAppointmentListItem>) => {
  96 + if (!navResDTO) {
  97 + error("page data invalid");
  98 + success(this.getAppointmentListDataLocal(context))
  99 + return
  100 + }
  101 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  102 + let navigationBean = navResDTO.data as MineAppointmentListItem
  103 + success(navigationBean);
  104 + }).catch((err: Error) => {
  105 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  106 + // error(err);
  107 + success(this.getAppointmentListDataLocal(context))
  108 + })
  109 + })
  110 + }
  111 +
  112 + async getAppointmentListDataLocal(context: Context): Promise<MineAppointmentListItem> {
  113 + Logger.info(TAG, `getBottomNavDataMock start`);
  114 + let compRes: ResponseDTO<MineAppointmentListItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineAppointmentListItem>>(context,'appointment_list_data.json' );
  115 + if (!compRes || !compRes.data) {
  116 + Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`);
  117 + return new MineAppointmentListItem()
  118 + }
  119 + Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  120 + return compRes.data
  121 + }
  122 +
  123 +
  124 +}
  125 +
  126 +const minePageDatasModel = MinePageDatasModel.getInstance()
  127 +export default minePageDatasModel as MinePageDatasModel
  1 +
  2 +/**
  3 + *
  4 + "attentionNum": 0,
  5 + "authIcon": "",
  6 + "authId": 0,
  7 + "authPersonal": "",
  8 + "authTitle": "",
  9 + "categoryAuth": "",
  10 + "city": "110100",
  11 + "cnAttentionNum": 0,
  12 + "cnCollectNum": 0,
  13 + "cnCommentNum": 0,
  14 + "cnFansNum": 4,
  15 + "cnIsAttention": 1,
  16 + "cnIsComment": 1,
  17 + "cnIsLike": 1,
  18 + "cnLikeNum": 0,
  19 + "cnLiveCommentControl": 1,
  20 + "cnLiveGiftControl": 1,
  21 + "cnLiveLikeControl": 1,
  22 + "cnLiveShareControl": 1,
  23 + "cnMainControl": 1,
  24 + "cnRegistTime": 1695280071000,
  25 + "cnShareControl": 1,
  26 + "cnShareNum": 0,
  27 + "cnUserId": "444937588589253",
  28 + "cnUserName": "QACrawler2115",
  29 + "cnUserType": "2",
  30 + "collectNum": 0,
  31 + "creatorId": "3004862",
  32 + "district": "110101",
  33 + "fansNum": 0,
  34 + "headPhotoUrl": "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",
  35 + "honoraryIcon": "",
  36 + "honoraryTitle": "",
  37 + "introduction": "知识博主",
  38 + "isAttention": 1,
  39 + "isComment": 1,
  40 + "isLike": 1,
  41 + "isVisiable": 1,
  42 + "likeNum": 0,
  43 + "liveCommentControl": 1,
  44 + "liveGiftControl": 1,
  45 + "liveLikeControl": 1,
  46 + "liveShareControl": 1,
  47 + "posterShareControl": 1,
  48 + "province": "110000",
  49 + "publishNum": 0,
  50 + "region": "",
  51 + "shareControl": 1,
  52 + "shareNum": 0,
  53 + "shopOpen": 0,
  54 + "storeUrl": "",
  55 + "subjectType": 0,
  56 + "userId": "",
  57 + "userName": "QACrawler2115",
  58 + "userType": "2",
  59 + "waresSwitch": 1
  60 + */
  61 +
  62 +@Observed
  63 +export class FollowListDetailItem{
  64 + headPhotoUrl:string //头像
  65 + cnUserName:string //昵称
  66 + cnFansNum:number //粉丝数
  67 + introduction:string //介绍
  68 + isFollow:boolean = false //是否已经关注
  69 +
  70 + constructor(headPhotoUrl:string,cnUserName:string,cnFansNum:number,introduction:string) {
  71 + this.headPhotoUrl = headPhotoUrl
  72 + this.cnUserName = cnUserName
  73 + this.cnFansNum = cnFansNum
  74 + this.introduction = introduction
  75 + }
  76 +}
  1 +
  2 +/**
  3 + * {
  4 + "directoryName": "创作",
  5 + "directoryWeight": 3,
  6 + "id": 74,
  7 + "isShow": 1,
  8 + "level": 1,
  9 + "parentId": 0,
  10 + "rootId": 0,
  11 + "children": [
  12 + {
  13 + "children": [
  14 + {
  15 + "directoryName": "新闻联播",
  16 + "directoryWeight": 3,
  17 + "id": 79,
  18 + "isShow": 1,
  19 + "level": 3,
  20 + "parentId": 75,
  21 + "rootId": 74
  22 + }
  23 + ],
  24 + "directoryName": "短视频",
  25 + "directoryWeight": 1,
  26 + "id": 75,
  27 + "isShow": 1,
  28 + "level": 2,
  29 + "parentId": 74,
  30 + "rootId": 74
  31 + }
  32 + ]
  33 + }
  34 + */
  35 +
  36 +@Observed
  37 +export class FollowListItem{
  38 + constructor(directoryName:string) {
  39 + this.directoryName = directoryName
  40 + }
  41 + directoryName:string = ""
  42 + directoryWeight:number = 0
  43 + id:number = 0
  44 + isShow:number = 1
  45 + level:number = 1
  46 + parentId:number = 0
  47 + rootId:number = 0
  48 + children:FollowSecondListItem[] = []
  49 +}
  50 +@Observed
  51 +export class FollowSecondListItem{
  52 + directoryName:string = ""
  53 + directoryWeight:number = 0
  54 + id:number = 0
  55 + isShow:number = 1
  56 + level:number = 1
  57 + parentId:number = 0
  58 + rootId:number = 0
  59 + children:FollowThirdListItem[] = []
  60 +}
  61 +@Observed
  62 +export class FollowThirdListItem{
  63 + directoryName:string = ""
  64 + directoryWeight:number = 0
  65 + id:number = 0
  66 + isShow:number = 1
  67 + level:number = 1
  68 + parentId:number = 0
  69 + rootId:number = 0
  70 +}
  1 +
  2 +
  3 +export default class FunctionsItem {
  4 + imgSrc:Resource
  5 + msg:string
  6 +
  7 + constructor(msg:string,imgSrc:Resource){
  8 + this.msg = msg
  9 + this.imgSrc = imgSrc
  10 + }
  11 +
  12 +}
  1 +@Observed
  2 +export class MineAppointmentItem{
  3 + appStyle:string ="" //"15"
  4 + /*[
  5 + "https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20231204/image/live/563cc8ce1ecc43b288f6cf60da66579c.jpeg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"
  6 + ]*/
  7 + imageUrl:string[]
  8 +
  9 + liveId:number = -1 //20000007348
  10 + planStartTime:string = "" //2023-12-05 15:26:10
  11 + timePre:string //12月05日
  12 + timeBack:string //15:26
  13 + relId:string = "" //"500000017021"
  14 + relType:number //1
  15 + startTime:string = "" //""
  16 + status:string //"wait"
  17 + title:string //"视界运营位加权-加权中删除"
  18 + isAppointment:boolean
  19 +
  20 +
  21 + constructor(imageUrl:string[],status:string,title:string,isAppointment:boolean,timePre:string,timeBack:string,relType:number,appStyle?:string,liveId?:number,planStartTime?:string,
  22 + relId?:string,startTime?:string) {
  23 + this.imageUrl=imageUrl
  24 + this.status=status
  25 + this.title=title
  26 + this.isAppointment=isAppointment
  27 + this.timePre = timePre
  28 + this.timeBack = timeBack
  29 + this.relType = relType
  30 + }
  31 +}
  1 +import { MineAppointmentItem } from './MineAppointmentItem'
  2 +
  3 +export class MineAppointmentListItem{
  4 + list:MineAppointmentItem[] = []
  5 +
  6 + pageNum: number = 0
  7 + pageSize: number = 20
  8 + totalCount: number = 0
  9 +
  10 + constructor(list?:MineAppointmentItem[],pageNum?: number,pageSize?: number,totalCount?: number) {
  11 + }
  12 +
  13 +}
  1 +
  2 +import FunctionsItem from './FunctionsItem';
  3 +
  4 +export default class MinePageCreatorFunctionsItem extends FunctionsItem{
  5 +}
  1 +
  2 +import FunctionsItem from './FunctionsItem'
  3 +
  4 +export default class MinePageMoreFunctionModel extends FunctionsItem{
  5 +}
  1 +
  2 +import FunctionsItem from './FunctionsItem'
  3 +
  4 +export default class MinePagePersonalFunctionsItem extends FunctionsItem {
  5 +}
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
13 { 13 {
14 "name": "ohos.permission.INTERNET" 14 "name": "ohos.permission.INTERNET"
15 } 15 }
16 - ] 16 + ],
  17 + "pages": "$profile:main_pages"
17 } 18 }
18 } 19 }
@@ -55,6 +55,49 @@ @@ -55,6 +55,49 @@
55 { 55 {
56 "name": "color_4d000000", 56 "name": "color_4d000000",
57 "value": "#4d000000" 57 "value": "#4d000000"
  58 + },
  59 + {
  60 + "name": "color_F5F5F5",
  61 + "value": "#F5F5F5"
  62 + },
  63 + {
  64 + "name": "color_FFC460",
  65 + "value": "#FFC460"
  66 + },
  67 + {
  68 + "name": "color_FF2E0C",
  69 + "value": "#FF2E0C"
  70 + },
  71 + {
  72 + "name": "color_AD6000",
  73 + "value": "#AD6000"
  74 + },
  75 + {
  76 + "name": "color_F9F9F9",
  77 + "value": "#F9F9F9"
  78 + },
  79 + {
  80 + "name": "color_994D00",
  81 + "value": "#994D00"
  82 + },
  83 + {
  84 + "name":"color_B15900",
  85 + "value": "#B15900"
  86 + },
  87 + {
  88 + "name": "main_red",
  89 + "value": "#E84026"
  90 + }, {
  91 + "name":"color_4D000000",
  92 + "value": "#4D000000"
  93 + },
  94 + {
  95 + "name":"color_CCCCCC",
  96 + "value": "#CCCCCC"
  97 + },
  98 + {
  99 + "name":"color_EDEDED",
  100 + "value": "#EDEDED"
58 } 101 }
59 ] 102 ]
60 } 103 }
1 { 1 {
2 "src": [ 2 "src": [
3 - "components/MorningEveningPaper/MorningEveningPaperComponent" 3 + "components/MorningEveningPaper/MorningEveningPaperComponent",
  4 + "components/page/AppointmentListPage",
  5 + "components/page/FollowListPage"
4 ] 6 ]
5 } 7 }
6 8
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "list": [{
  5 + "appStyle": "15",
  6 + "imageUrl": ["https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20231204/image/live/563cc8ce1ecc43b288f6cf60da66579c.jpeg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"],
  7 + "liveId": 20000007348,
  8 + "planStartTime": "2023-12-05 15:26:10",
  9 + "relId": "500000017021",
  10 + "relType": 1,
  11 + "startTime": "",
  12 + "status": "wait",
  13 + "title": "视界运营位加权-加权中删除"
  14 + }, {
  15 + "appStyle": "null",
  16 + "imageUrl": ["https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20230914/image/display/9af825a00abf490d8a8698f4fc079447.jpg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"],
  17 + "liveId": 20000007492,
  18 + "planStartTime": "2024-01-12 20:00:00",
  19 + "relId": "500000020284",
  20 + "relType": 1,
  21 + "startTime": "",
  22 + "status": "wait",
  23 + "title": "QA|汉阴县凤堰古梯田"
  24 + }, {
  25 + "appStyle": "null",
  26 + "imageUrl": ["https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20230915/image/display/e908748c62a44109bbb7214f3fed458c.jpg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"],
  27 + "liveId": 20000007493,
  28 + "planStartTime": "2024-01-12 20:00:00",
  29 + "relId": "500000020286",
  30 + "relType": 1,
  31 + "startTime": "",
  32 + "status": "wait",
  33 + "title": "二十四节气-夏至"
  34 + }, {
  35 + "appStyle": "null",
  36 + "imageUrl": ["https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20240118/image/display/732d6166103d4d2f9fbf512b128a3486.jpeg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"],
  37 + "liveId": 20000007495,
  38 + "planStartTime": "2024-01-18 10:51:33",
  39 + "relId": "500000030122",
  40 + "relType": 1,
  41 + "startTime": "",
  42 + "status": "wait",
  43 + "title": "01181050文字直播没有预告片"
  44 + }, {
  45 + "appStyle": "null",
  46 + "imageUrl": ["https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20240127/image/live/6359d000bba24812b7ca1765bb106a49.png?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"],
  47 + "liveId": 20000007519,
  48 + "planStartTime": "2024-02-27 18:18:16",
  49 + "relId": "500000034054",
  50 + "relType": 1,
  51 + "startTime": "",
  52 + "status": "wait",
  53 + "title": "错搞民宿33"
  54 + }, {
  55 + "appStyle": "15",
  56 + "imageUrl": ["https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20240228/image/live/e6998ab547af472dbc19ba2fd68959b9.jpeg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"],
  57 + "liveId": 20000007521,
  58 + "planStartTime": "2024-02-28 19:01:50",
  59 + "relId": "500000034162",
  60 + "relType": 1,
  61 + "startTime": "",
  62 + "status": "wait",
  63 + "title": "保存编辑弹幕开关"
  64 + }],
  65 + "pageNum": 1,
  66 + "pageSize": 20,
  67 + "totalCount": 6
  68 + },
  69 + "message": "Success",
  70 + "requestId": "65289f1217934cffb7587ff4d6ce4689",
  71 + "success": true,
  72 + "timestamp": 1710555152344
  73 +}
  1 +{
  2 + "code": "0",
  3 + "data": [
  4 + {
  5 + "children": [],
  6 + "directoryName": "阅读",
  7 + "directoryWeight": 99,
  8 + "id": 165,
  9 + "isShow": 1,
  10 + "level": 1,
  11 + "parentId": 0,
  12 + "rootId": 0
  13 + },
  14 + {
  15 + "children": [
  16 + {
  17 + "children": [
  18 + {
  19 + "directoryName": "三二",
  20 + "directoryWeight": 2,
  21 + "id": 120,
  22 + "isShow": 1,
  23 + "level": 3,
  24 + "parentId": 118,
  25 + "rootId": 117
  26 + },
  27 + {
  28 + "directoryName": "三级",
  29 + "directoryWeight": 1,
  30 + "id": 119,
  31 + "isShow": 1,
  32 + "level": 3,
  33 + "parentId": 118,
  34 + "rootId": 117
  35 + }
  36 + ],
  37 + "directoryName": "二级",
  38 + "directoryWeight": 1,
  39 + "id": 118,
  40 + "isShow": 1,
  41 + "level": 2,
  42 + "parentId": 117,
  43 + "rootId": 117
  44 + }
  45 + ],
  46 + "directoryName": "幽游白书",
  47 + "directoryWeight": 33,
  48 + "id": 117,
  49 + "isShow": 1,
  50 + "level": 1,
  51 + "parentId": 0,
  52 + "rootId": 0
  53 + },
  54 + {
  55 + "children": [],
  56 + "directoryName": "推荐",
  57 + "directoryWeight": 9,
  58 + "id": 386,
  59 + "isShow": 1,
  60 + "level": 1,
  61 + "parentId": 0,
  62 + "rootId": 0
  63 + },
  64 + {
  65 + "children": [],
  66 + "directoryName": "政务",
  67 + "directoryWeight": 9,
  68 + "id": 379,
  69 + "isShow": 1,
  70 + "level": 1,
  71 + "parentId": 0,
  72 + "rootId": 0
  73 + },
  74 + {
  75 + "children": [
  76 + {
  77 + "children": [],
  78 + "directoryName": "推荐",
  79 + "directoryWeight": 0,
  80 + "id": 335,
  81 + "isShow": 1,
  82 + "level": 2,
  83 + "parentId": 320,
  84 + "rootId": 320
  85 + }
  86 + ],
  87 + "directoryName": "推荐",
  88 + "directoryWeight": 9,
  89 + "id": 320,
  90 + "isShow": 1,
  91 + "level": 1,
  92 + "parentId": 0,
  93 + "rootId": 0
  94 + },
  95 + {
  96 + "children": [],
  97 + "directoryName": "媒体",
  98 + "directoryWeight": 8,
  99 + "id": 390,
  100 + "isShow": 1,
  101 + "level": 1,
  102 + "parentId": 0,
  103 + "rootId": 0
  104 + },
  105 + {
  106 + "children": [],
  107 + "directoryName": "媒体",
  108 + "directoryWeight": 8,
  109 + "id": 323,
  110 + "isShow": 1,
  111 + "level": 1,
  112 + "parentId": 0,
  113 + "rootId": 0
  114 + },
  115 + {
  116 + "children": [],
  117 + "directoryName": "自媒体",
  118 + "directoryWeight": 7,
  119 + "id": 329,
  120 + "isShow": 1,
  121 + "level": 1,
  122 + "parentId": 0,
  123 + "rootId": 0
  124 + },
  125 + {
  126 + "children": [],
  127 + "directoryName": "名人",
  128 + "directoryWeight": 6,
  129 + "id": 389,
  130 + "isShow": 1,
  131 + "level": 1,
  132 + "parentId": 0,
  133 + "rootId": 0
  134 + },
  135 + {
  136 + "children": [
  137 + {
  138 + "children": [],
  139 + "directoryName": "测试",
  140 + "directoryWeight": 0,
  141 + "id": 338,
  142 + "isShow": 1,
  143 + "level": 2,
  144 + "parentId": 324,
  145 + "rootId": 324
  146 + }
  147 + ],
  148 + "directoryName": "名人",
  149 + "directoryWeight": 6,
  150 + "id": 324,
  151 + "isShow": 1,
  152 + "level": 1,
  153 + "parentId": 0,
  154 + "rootId": 0
  155 + },
  156 + {
  157 + "children": [
  158 + {
  159 + "children": [],
  160 + "directoryName": "2级目录",
  161 + "directoryWeight": 0,
  162 + "id": 340,
  163 + "isShow": 1,
  164 + "level": 2,
  165 + "parentId": 312,
  166 + "rootId": 312
  167 + },
  168 + {
  169 + "children": [
  170 + {
  171 + "directoryName": "3级测试",
  172 + "directoryWeight": 0,
  173 + "id": 368,
  174 + "isShow": 1,
  175 + "level": 3,
  176 + "parentId": 339,
  177 + "rootId": 312
  178 + }
  179 + ],
  180 + "directoryName": "二级目录",
  181 + "directoryWeight": 0,
  182 + "id": 339,
  183 + "isShow": 1,
  184 + "level": 2,
  185 + "parentId": 312,
  186 + "rootId": 312
  187 + },
  188 + {
  189 + "children": [
  190 + {
  191 + "directoryName": "企业",
  192 + "directoryWeight": 1,
  193 + "id": 348,
  194 + "isShow": 1,
  195 + "level": 3,
  196 + "parentId": 336,
  197 + "rootId": 312
  198 + },
  199 + {
  200 + "directoryName": "部委",
  201 + "directoryWeight": 0,
  202 + "id": 344,
  203 + "isShow": 1,
  204 + "level": 3,
  205 + "parentId": 336,
  206 + "rootId": 312
  207 + },
  208 + {
  209 + "directoryName": "地方",
  210 + "directoryWeight": 0,
  211 + "id": 341,
  212 + "isShow": 1,
  213 + "level": 3,
  214 + "parentId": 336,
  215 + "rootId": 312
  216 + }
  217 + ],
  218 + "directoryName": "类型",
  219 + "directoryWeight": 0,
  220 + "id": 336,
  221 + "isShow": 1,
  222 + "level": 2,
  223 + "parentId": 312,
  224 + "rootId": 312
  225 + },
  226 + {
  227 + "children": [
  228 + {
  229 + "directoryName": "贵州省",
  230 + "directoryWeight": 0,
  231 + "id": 378,
  232 + "isShow": 1,
  233 + "level": 3,
  234 + "parentId": 332,
  235 + "rootId": 312
  236 + },
  237 + {
  238 + "directoryName": "西藏自治区",
  239 + "directoryWeight": 0,
  240 + "id": 377,
  241 + "isShow": 1,
  242 + "level": 3,
  243 + "parentId": 332,
  244 + "rootId": 312
  245 + },
  246 + {
  247 + "directoryName": "四川省",
  248 + "directoryWeight": 0,
  249 + "id": 376,
  250 + "isShow": 1,
  251 + "level": 3,
  252 + "parentId": 332,
  253 + "rootId": 312
  254 + },
  255 + {
  256 + "directoryName": "重庆市",
  257 + "directoryWeight": 0,
  258 + "id": 375,
  259 + "isShow": 1,
  260 + "level": 3,
  261 + "parentId": 332,
  262 + "rootId": 312
  263 + },
  264 + {
  265 + "directoryName": "湖南省",
  266 + "directoryWeight": 0,
  267 + "id": 374,
  268 + "isShow": 1,
  269 + "level": 3,
  270 + "parentId": 332,
  271 + "rootId": 312
  272 + },
  273 + {
  274 + "directoryName": "云南省",
  275 + "directoryWeight": 0,
  276 + "id": 373,
  277 + "isShow": 1,
  278 + "level": 3,
  279 + "parentId": 332,
  280 + "rootId": 312
  281 + },
  282 + {
  283 + "directoryName": "广西壮族自治区",
  284 + "directoryWeight": 0,
  285 + "id": 372,
  286 + "isShow": 1,
  287 + "level": 3,
  288 + "parentId": 332,
  289 + "rootId": 312
  290 + },
  291 + {
  292 + "directoryName": "宁夏回族自治区",
  293 + "directoryWeight": 0,
  294 + "id": 371,
  295 + "isShow": 1,
  296 + "level": 3,
  297 + "parentId": 332,
  298 + "rootId": 312
  299 + },
  300 + {
  301 + "directoryName": "湖北省",
  302 + "directoryWeight": 0,
  303 + "id": 370,
  304 + "isShow": 1,
  305 + "level": 3,
  306 + "parentId": 332,
  307 + "rootId": 312
  308 + },
  309 + {
  310 + "directoryName": "青海省",
  311 + "directoryWeight": 0,
  312 + "id": 369,
  313 + "isShow": 1,
  314 + "level": 3,
  315 + "parentId": 332,
  316 + "rootId": 312
  317 + },
  318 + {
  319 + "directoryName": "陕西省",
  320 + "directoryWeight": 0,
  321 + "id": 367,
  322 + "isShow": 1,
  323 + "level": 3,
  324 + "parentId": 332,
  325 + "rootId": 312
  326 + },
  327 + {
  328 + "directoryName": "甘肃省",
  329 + "directoryWeight": 0,
  330 + "id": 366,
  331 + "isShow": 1,
  332 + "level": 3,
  333 + "parentId": 332,
  334 + "rootId": 312
  335 + },
  336 + {
  337 + "directoryName": "吉林省",
  338 + "directoryWeight": 0,
  339 + "id": 365,
  340 + "isShow": 1,
  341 + "level": 3,
  342 + "parentId": 332,
  343 + "rootId": 312
  344 + },
  345 + {
  346 + "directoryName": "广东省",
  347 + "directoryWeight": 0,
  348 + "id": 364,
  349 + "isShow": 1,
  350 + "level": 3,
  351 + "parentId": 332,
  352 + "rootId": 312
  353 + },
  354 + {
  355 + "directoryName": "海南省",
  356 + "directoryWeight": 0,
  357 + "id": 363,
  358 + "isShow": 1,
  359 + "level": 3,
  360 + "parentId": 332,
  361 + "rootId": 312
  362 + },
  363 + {
  364 + "directoryName": "辽宁省",
  365 + "directoryWeight": 0,
  366 + "id": 362,
  367 + "isShow": 1,
  368 + "level": 3,
  369 + "parentId": 332,
  370 + "rootId": 312
  371 + },
  372 + {
  373 + "directoryName": "江苏省",
  374 + "directoryWeight": 0,
  375 + "id": 361,
  376 + "isShow": 1,
  377 + "level": 3,
  378 + "parentId": 332,
  379 + "rootId": 312
  380 + },
  381 + {
  382 + "directoryName": "新疆维吾尔族自治区",
  383 + "directoryWeight": 0,
  384 + "id": 360,
  385 + "isShow": 1,
  386 + "level": 3,
  387 + "parentId": 332,
  388 + "rootId": 312
  389 + },
  390 + {
  391 + "directoryName": "福建省",
  392 + "directoryWeight": 0,
  393 + "id": 359,
  394 + "isShow": 1,
  395 + "level": 3,
  396 + "parentId": 332,
  397 + "rootId": 312
  398 + },
  399 + {
  400 + "directoryName": "山东省",
  401 + "directoryWeight": 0,
  402 + "id": 358,
  403 + "isShow": 1,
  404 + "level": 3,
  405 + "parentId": 332,
  406 + "rootId": 312
  407 + },
  408 + {
  409 + "directoryName": "河南省",
  410 + "directoryWeight": 0,
  411 + "id": 357,
  412 + "isShow": 1,
  413 + "level": 3,
  414 + "parentId": 332,
  415 + "rootId": 312
  416 + },
  417 + {
  418 + "directoryName": "浙江省",
  419 + "directoryWeight": 0,
  420 + "id": 356,
  421 + "isShow": 1,
  422 + "level": 3,
  423 + "parentId": 332,
  424 + "rootId": 312
  425 + },
  426 + {
  427 + "directoryName": "安徽省",
  428 + "directoryWeight": 0,
  429 + "id": 355,
  430 + "isShow": 1,
  431 + "level": 3,
  432 + "parentId": 332,
  433 + "rootId": 312
  434 + },
  435 + {
  436 + "directoryName": "上海市",
  437 + "directoryWeight": 0,
  438 + "id": 354,
  439 + "isShow": 1,
  440 + "level": 3,
  441 + "parentId": 332,
  442 + "rootId": 312
  443 + },
  444 + {
  445 + "directoryName": "河北省",
  446 + "directoryWeight": 0,
  447 + "id": 353,
  448 + "isShow": 1,
  449 + "level": 3,
  450 + "parentId": 332,
  451 + "rootId": 312
  452 + },
  453 + {
  454 + "directoryName": "黑龙江省",
  455 + "directoryWeight": 0,
  456 + "id": 352,
  457 + "isShow": 1,
  458 + "level": 3,
  459 + "parentId": 332,
  460 + "rootId": 312
  461 + },
  462 + {
  463 + "directoryName": "江西省",
  464 + "directoryWeight": 0,
  465 + "id": 351,
  466 + "isShow": 1,
  467 + "level": 3,
  468 + "parentId": 332,
  469 + "rootId": 312
  470 + },
  471 + {
  472 + "directoryName": "内蒙古自治区",
  473 + "directoryWeight": 0,
  474 + "id": 350,
  475 + "isShow": 1,
  476 + "level": 3,
  477 + "parentId": 332,
  478 + "rootId": 312
  479 + },
  480 + {
  481 + "directoryName": "北京市",
  482 + "directoryWeight": 0,
  483 + "id": 349,
  484 + "isShow": 1,
  485 + "level": 3,
  486 + "parentId": 332,
  487 + "rootId": 312
  488 + },
  489 + {
  490 + "directoryName": "山西省",
  491 + "directoryWeight": 0,
  492 + "id": 346,
  493 + "isShow": 1,
  494 + "level": 3,
  495 + "parentId": 332,
  496 + "rootId": 312
  497 + }
  498 + ],
  499 + "directoryName": "地域",
  500 + "directoryWeight": 0,
  501 + "id": 332,
  502 + "isShow": 1,
  503 + "level": 2,
  504 + "parentId": 312,
  505 + "rootId": 312
  506 + }
  507 + ],
  508 + "directoryName": "政务",
  509 + "directoryWeight": 5,
  510 + "id": 312,
  511 + "isShow": 1,
  512 + "level": 1,
  513 + "parentId": 0,
  514 + "rootId": 0
  515 + },
  516 + {
  517 + "children": [],
  518 + "directoryName": "学校",
  519 + "directoryWeight": 4,
  520 + "id": 331,
  521 + "isShow": 1,
  522 + "level": 1,
  523 + "parentId": 0,
  524 + "rootId": 0
  525 + },
  526 + {
  527 + "children": [],
  528 + "directoryName": "机构",
  529 + "directoryWeight": 3,
  530 + "id": 330,
  531 + "isShow": 1,
  532 + "level": 1,
  533 + "parentId": 0,
  534 + "rootId": 0
  535 + },
  536 + {
  537 + "children": [
  538 + {
  539 + "children": [
  540 + {
  541 + "directoryName": "新闻联播",
  542 + "directoryWeight": 3,
  543 + "id": 79,
  544 + "isShow": 1,
  545 + "level": 3,
  546 + "parentId": 75,
  547 + "rootId": 74
  548 + },
  549 + {
  550 + "directoryName": "第三季",
  551 + "directoryWeight": 2,
  552 + "id": 78,
  553 + "isShow": 1,
  554 + "level": 3,
  555 + "parentId": 75,
  556 + "rootId": 74
  557 + },
  558 + {
  559 + "directoryName": "三级",
  560 + "directoryWeight": 1,
  561 + "id": 76,
  562 + "isShow": 1,
  563 + "level": 3,
  564 + "parentId": 75,
  565 + "rootId": 74
  566 + }
  567 + ],
  568 + "directoryName": "短视频",
  569 + "directoryWeight": 1,
  570 + "id": 75,
  571 + "isShow": 1,
  572 + "level": 2,
  573 + "parentId": 74,
  574 + "rootId": 74
  575 + }
  576 + ],
  577 + "directoryName": "创作",
  578 + "directoryWeight": 3,
  579 + "id": 74,
  580 + "isShow": 1,
  581 + "level": 1,
  582 + "parentId": 0,
  583 + "rootId": 0
  584 + },
  585 + {
  586 + "children": [
  587 + {
  588 + "children": [],
  589 + "directoryName": "教学",
  590 + "directoryWeight": 2,
  591 + "id": 72,
  592 + "isShow": 1,
  593 + "level": 2,
  594 + "parentId": 64,
  595 + "rootId": 64
  596 + },
  597 + {
  598 + "children": [],
  599 + "directoryName": "热门",
  600 + "directoryWeight": 1,
  601 + "id": 73,
  602 + "isShow": 1,
  603 + "level": 2,
  604 + "parentId": 64,
  605 + "rootId": 64
  606 + },
  607 + {
  608 + "children": [],
  609 + "directoryName": "赛事",
  610 + "directoryWeight": 1,
  611 + "id": 71,
  612 + "isShow": 1,
  613 + "level": 2,
  614 + "parentId": 64,
  615 + "rootId": 64
  616 + }
  617 + ],
  618 + "directoryName": "游戏",
  619 + "directoryWeight": 2,
  620 + "id": 64,
  621 + "isShow": 1,
  622 + "level": 1,
  623 + "parentId": 0,
  624 + "rootId": 0
  625 + },
  626 + {
  627 + "children": [],
  628 + "directoryName": "新闻",
  629 + "directoryWeight": 1,
  630 + "id": 315,
  631 + "isShow": 1,
  632 + "level": 1,
  633 + "parentId": 0,
  634 + "rootId": 0
  635 + },
  636 + {
  637 + "children": [
  638 + {
  639 + "children": [],
  640 + "directoryName": "趣闻",
  641 + "directoryWeight": 6,
  642 + "id": 70,
  643 + "isShow": 1,
  644 + "level": 2,
  645 + "parentId": 63,
  646 + "rootId": 63
  647 + },
  648 + {
  649 + "children": [],
  650 + "directoryName": "时政",
  651 + "directoryWeight": 5,
  652 + "id": 69,
  653 + "isShow": 1,
  654 + "level": 2,
  655 + "parentId": 63,
  656 + "rootId": 63
  657 + },
  658 + {
  659 + "children": [],
  660 + "directoryName": "农业",
  661 + "directoryWeight": 3,
  662 + "id": 68,
  663 + "isShow": 1,
  664 + "level": 2,
  665 + "parentId": 63,
  666 + "rootId": 63
  667 + },
  668 + {
  669 + "children": [],
  670 + "directoryName": "娱乐",
  671 + "directoryWeight": 3,
  672 + "id": 67,
  673 + "isShow": 1,
  674 + "level": 2,
  675 + "parentId": 63,
  676 + "rootId": 63
  677 + },
  678 + {
  679 + "children": [],
  680 + "directoryName": "科技",
  681 + "directoryWeight": 2,
  682 + "id": 66,
  683 + "isShow": 1,
  684 + "level": 2,
  685 + "parentId": 63,
  686 + "rootId": 63
  687 + },
  688 + {
  689 + "children": [],
  690 + "directoryName": "国际",
  691 + "directoryWeight": 1,
  692 + "id": 65,
  693 + "isShow": 1,
  694 + "level": 2,
  695 + "parentId": 63,
  696 + "rootId": 63
  697 + }
  698 + ],
  699 + "directoryName": "新闻",
  700 + "directoryWeight": 1,
  701 + "id": 63,
  702 + "isShow": 1,
  703 + "level": 1,
  704 + "parentId": 0,
  705 + "rootId": 0
  706 + },
  707 + {
  708 + "children": [],
  709 + "directoryName": "公安",
  710 + "directoryWeight": 0,
  711 + "id": 388,
  712 + "isShow": 1,
  713 + "level": 1,
  714 + "parentId": 0,
  715 + "rootId": 0
  716 + },
  717 + {
  718 + "children": [],
  719 + "directoryName": "dddd",
  720 + "directoryWeight": 0,
  721 + "id": 387,
  722 + "isShow": 1,
  723 + "level": 1,
  724 + "parentId": 0,
  725 + "rootId": 0
  726 + },
  727 + {
  728 + "children": [],
  729 + "directoryName": "健康",
  730 + "directoryWeight": 0,
  731 + "id": 384,
  732 + "isShow": 1,
  733 + "level": 1,
  734 + "parentId": 0,
  735 + "rootId": 0
  736 + },
  737 + {
  738 + "children": [],
  739 + "directoryName": "综合",
  740 + "directoryWeight": 0,
  741 + "id": 328,
  742 + "isShow": 1,
  743 + "level": 1,
  744 + "parentId": 0,
  745 + "rootId": 0
  746 + },
  747 + {
  748 + "children": [],
  749 + "directoryName": "房产",
  750 + "directoryWeight": 0,
  751 + "id": 327,
  752 + "isShow": 1,
  753 + "level": 1,
  754 + "parentId": 0,
  755 + "rootId": 0
  756 + },
  757 + {
  758 + "children": [],
  759 + "directoryName": "健康",
  760 + "directoryWeight": 0,
  761 + "id": 318,
  762 + "isShow": 1,
  763 + "level": 1,
  764 + "parentId": 0,
  765 + "rootId": 0
  766 + },
  767 + {
  768 + "children": [],
  769 + "directoryName": "历史",
  770 + "directoryWeight": 0,
  771 + "id": 310,
  772 + "isShow": 1,
  773 + "level": 1,
  774 + "parentId": 0,
  775 + "rootId": 0
  776 + },
  777 + {
  778 + "children": [],
  779 + "directoryName": "dddd",
  780 + "directoryWeight": 0,
  781 + "id": 309,
  782 + "isShow": 1,
  783 + "level": 1,
  784 + "parentId": 0,
  785 + "rootId": 0
  786 + },
  787 + {
  788 + "children": [
  789 + {
  790 + "children": [],
  791 + "directoryName": "aaaa",
  792 + "directoryWeight": 1,
  793 + "id": 333,
  794 + "isShow": 1,
  795 + "level": 2,
  796 + "parentId": 308,
  797 + "rootId": 308
  798 + },
  799 + {
  800 + "children": [],
  801 + "directoryName": "qqq",
  802 + "directoryWeight": 0,
  803 + "id": 334,
  804 + "isShow": 1,
  805 + "level": 2,
  806 + "parentId": 308,
  807 + "rootId": 308
  808 + }
  809 + ],
  810 + "directoryName": "dddd",
  811 + "directoryWeight": 0,
  812 + "id": 308,
  813 + "isShow": 1,
  814 + "level": 1,
  815 + "parentId": 0,
  816 + "rootId": 0
  817 + }
  818 + ],
  819 + "message": "Success",
  820 + "success": true,
  821 + "timestamp": 1710741803593
  822 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "list": [{
  5 + "attentionNum": 0,
  6 + "authIcon": "",
  7 + "authId": 0,
  8 + "authPersonal": "",
  9 + "authTitle": "",
  10 + "categoryAuth": "",
  11 + "city": "110100",
  12 + "cnAttentionNum": 0,
  13 + "cnCollectNum": 0,
  14 + "cnCommentNum": 0,
  15 + "cnFansNum": 4,
  16 + "cnIsAttention": 1,
  17 + "cnIsComment": 1,
  18 + "cnIsLike": 1,
  19 + "cnLikeNum": 0,
  20 + "cnLiveCommentControl": 1,
  21 + "cnLiveGiftControl": 1,
  22 + "cnLiveLikeControl": 1,
  23 + "cnLiveShareControl": 1,
  24 + "cnMainControl": 1,
  25 + "cnRegistTime": 1695280071000,
  26 + "cnShareControl": 1,
  27 + "cnShareNum": 0,
  28 + "cnUserId": "444937588589253",
  29 + "cnUserName": "QACrawler2115",
  30 + "cnUserType": "2",
  31 + "collectNum": 0,
  32 + "creatorId": "3004862",
  33 + "district": "110101",
  34 + "fansNum": 0,
  35 + "headPhotoUrl": "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",
  36 + "honoraryIcon": "",
  37 + "honoraryTitle": "",
  38 + "introduction": "知识博主",
  39 + "isAttention": 1,
  40 + "isComment": 1,
  41 + "isLike": 1,
  42 + "isVisiable": 1,
  43 + "likeNum": 0,
  44 + "liveCommentControl": 1,
  45 + "liveGiftControl": 1,
  46 + "liveLikeControl": 1,
  47 + "liveShareControl": 1,
  48 + "posterShareControl": 1,
  49 + "province": "110000",
  50 + "publishNum": 0,
  51 + "region": "",
  52 + "shareControl": 1,
  53 + "shareNum": 0,
  54 + "shopOpen": 0,
  55 + "storeUrl": "",
  56 + "subjectType": 0,
  57 + "userId": "",
  58 + "userName": "QACrawler2115",
  59 + "userType": "2",
  60 + "waresSwitch": 1
  61 + }, {
  62 + "attentionNum": 0,
  63 + "authIcon": "",
  64 + "authId": 0,
  65 + "authPersonal": "",
  66 + "authTitle": "",
  67 + "categoryAuth": "",
  68 + "city": "230100",
  69 + "cnAttentionNum": 0,
  70 + "cnCollectNum": 0,
  71 + "cnCommentNum": 0,
  72 + "cnFansNum": 4,
  73 + "cnIsAttention": 1,
  74 + "cnIsComment": 1,
  75 + "cnIsLike": 1,
  76 + "cnLikeNum": 0,
  77 + "cnLiveCommentControl": 1,
  78 + "cnLiveGiftControl": 1,
  79 + "cnLiveLikeControl": 1,
  80 + "cnLiveShareControl": 1,
  81 + "cnMainControl": 1,
  82 + "cnRegistTime": 1695276994000,
  83 + "cnShareControl": 1,
  84 + "cnShareNum": 0,
  85 + "cnUserId": "444911718724933",
  86 + "cnUserName": "一休哥",
  87 + "cnUserType": "2",
  88 + "collectNum": 0,
  89 + "creatorId": "3004861",
  90 + "district": "230102",
  91 + "fansNum": 0,
  92 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th141630857/Ptx.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  93 + "honoraryIcon": "",
  94 + "honoraryTitle": "",
  95 + "introduction": "中文端号主",
  96 + "isAttention": 1,
  97 + "isComment": 1,
  98 + "isLike": 1,
  99 + "isVisiable": 1,
  100 + "likeNum": 0,
  101 + "liveCommentControl": 1,
  102 + "liveGiftControl": 1,
  103 + "liveLikeControl": 1,
  104 + "liveShareControl": 1,
  105 + "posterShareControl": 1,
  106 + "province": "230000",
  107 + "publishNum": 0,
  108 + "region": "安徽",
  109 + "shareControl": 1,
  110 + "shareNum": 0,
  111 + "shopOpen": 0,
  112 + "storeUrl": "",
  113 + "subjectType": 2,
  114 + "userId": "",
  115 + "userName": "一休哥",
  116 + "userType": "2",
  117 + "waresSwitch": 1
  118 + }, {
  119 + "attentionNum": 0,
  120 + "authIcon": "",
  121 + "authId": 0,
  122 + "authPersonal": "",
  123 + "authTitle": "",
  124 + "categoryAuth": "",
  125 + "city": "110100",
  126 + "cnAttentionNum": 0,
  127 + "cnCollectNum": 0,
  128 + "cnCommentNum": 12,
  129 + "cnFansNum": 8,
  130 + "cnIsAttention": 1,
  131 + "cnIsComment": 1,
  132 + "cnIsLike": 1,
  133 + "cnLikeNum": 2,
  134 + "cnLiveCommentControl": 1,
  135 + "cnLiveGiftControl": 1,
  136 + "cnLiveLikeControl": 1,
  137 + "cnLiveShareControl": 1,
  138 + "cnMainControl": 1,
  139 + "cnRegistTime": 1695275999000,
  140 + "cnShareControl": 1,
  141 + "cnShareNum": 1,
  142 + "cnUserId": "444903323309381",
  143 + "cnUserName": "0921媒体",
  144 + "cnUserType": "3",
  145 + "collectNum": 0,
  146 + "creatorId": "3004860",
  147 + "district": "110101",
  148 + "fansNum": 0,
  149 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th135954709/qdL.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  150 + "honoraryIcon": "",
  151 + "honoraryTitle": "",
  152 + "introduction": "0921媒体",
  153 + "isAttention": 1,
  154 + "isComment": 1,
  155 + "isLike": 1,
  156 + "isVisiable": 1,
  157 + "likeNum": 0,
  158 + "liveCommentControl": 1,
  159 + "liveGiftControl": 1,
  160 + "liveLikeControl": 1,
  161 + "liveShareControl": 1,
  162 + "posterShareControl": 0,
  163 + "province": "110000",
  164 + "publishNum": 0,
  165 + "region": "上海",
  166 + "shareControl": 1,
  167 + "shareNum": 0,
  168 + "shopOpen": 0,
  169 + "storeUrl": "",
  170 + "subjectType": 1,
  171 + "userId": "",
  172 + "userName": "0921媒体",
  173 + "userType": "3",
  174 + "waresSwitch": 1
  175 + }, {
  176 + "attentionNum": 0,
  177 + "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/blue.png",
  178 + "authId": 1,
  179 + "authPersonal": "",
  180 + "authTitle": "黄袍加身V",
  181 + "categoryAuth": "黄袍加身V",
  182 + "city": "340100",
  183 + "cnAttentionNum": 9,
  184 + "cnCollectNum": 0,
  185 + "cnCommentNum": 3,
  186 + "cnFansNum": 9,
  187 + "cnIsAttention": 1,
  188 + "cnIsComment": 1,
  189 + "cnIsLike": 1,
  190 + "cnLikeNum": 7,
  191 + "cnLiveCommentControl": 1,
  192 + "cnLiveGiftControl": 1,
  193 + "cnLiveLikeControl": 1,
  194 + "cnLiveShareControl": 1,
  195 + "cnMainControl": 1,
  196 + "cnRegistTime": 1695260417000,
  197 + "cnShareControl": 1,
  198 + "cnShareNum": 0,
  199 + "cnUserId": "444776025830725",
  200 + "cnUserName": "李智恩3",
  201 + "cnUserType": "2",
  202 + "collectNum": 0,
  203 + "creatorId": "3004855",
  204 + "district": "340102",
  205 + "fansNum": 0,
  206 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th094010643/N5o.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  207 + "honoraryIcon": "",
  208 + "honoraryTitle": "",
  209 + "introduction": "IU",
  210 + "isAttention": 1,
  211 + "isComment": 1,
  212 + "isLike": 1,
  213 + "isVisiable": 1,
  214 + "likeNum": 0,
  215 + "liveCommentControl": 1,
  216 + "liveGiftControl": 1,
  217 + "liveLikeControl": 1,
  218 + "liveShareControl": 1,
  219 + "posterShareControl": 0,
  220 + "province": "340000",
  221 + "publishNum": 0,
  222 + "region": "安徽",
  223 + "shareControl": 1,
  224 + "shareNum": 0,
  225 + "shopOpen": 1,
  226 + "storeUrl": "",
  227 + "subjectType": 1,
  228 + "userId": "",
  229 + "userName": "李智恩3",
  230 + "userType": "2",
  231 + "waresSwitch": 0
  232 + }, {
  233 + "attentionNum": 0,
  234 + "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/yellow.png",
  235 + "authId": 2,
  236 + "authPersonal": "",
  237 + "authTitle": "黄VV",
  238 + "categoryAuth": "黄VV",
  239 + "city": "120100",
  240 + "cnAttentionNum": 1,
  241 + "cnCollectNum": 1,
  242 + "cnCommentNum": 7,
  243 + "cnFansNum": 13,
  244 + "cnIsAttention": 1,
  245 + "cnIsComment": 1,
  246 + "cnIsLike": 1,
  247 + "cnLikeNum": 0,
  248 + "cnLiveCommentControl": 1,
  249 + "cnLiveGiftControl": 1,
  250 + "cnLiveLikeControl": 1,
  251 + "cnLiveShareControl": 1,
  252 + "cnMainControl": 1,
  253 + "cnRegistTime": 1695202406000,
  254 + "cnShareControl": 1,
  255 + "cnShareNum": 0,
  256 + "cnUserId": "444300764043333",
  257 + "cnUserName": "创作者账号7777",
  258 + "cnUserType": "2",
  259 + "collectNum": 0,
  260 + "creatorId": "3004853",
  261 + "district": "120101",
  262 + "fansNum": 0,
  263 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/image/creator/2023092715/4727ab5db7604dbbac9ffb94ed03614e.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  264 + "honoraryIcon": "",
  265 + "honoraryTitle": "",
  266 + "introduction": "协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作",
  267 + "isAttention": 1,
  268 + "isComment": 1,
  269 + "isLike": 1,
  270 + "isVisiable": 1,
  271 + "likeNum": 0,
  272 + "liveCommentControl": 1,
  273 + "liveGiftControl": 1,
  274 + "liveLikeControl": 1,
  275 + "liveShareControl": 1,
  276 + "posterShareControl": 0,
  277 + "province": "120000",
  278 + "publishNum": 0,
  279 + "region": "安徽",
  280 + "shareControl": 1,
  281 + "shareNum": 0,
  282 + "shopOpen": 1,
  283 + "storeUrl": "",
  284 + "subjectType": 0,
  285 + "userId": "",
  286 + "userName": "创作者账号7777",
  287 + "userType": "2",
  288 + "waresSwitch": 0
  289 + }, {
  290 + "attentionNum": 0,
  291 + "authIcon": "",
  292 + "authId": 0,
  293 + "authPersonal": "",
  294 + "authTitle": "",
  295 + "categoryAuth": "",
  296 + "city": "110100",
  297 + "cnAttentionNum": 0,
  298 + "cnCollectNum": 0,
  299 + "cnCommentNum": 0,
  300 + "cnFansNum": 9,
  301 + "cnIsAttention": 1,
  302 + "cnIsComment": 1,
  303 + "cnIsLike": 1,
  304 + "cnLikeNum": 6,
  305 + "cnLiveCommentControl": 1,
  306 + "cnLiveGiftControl": 1,
  307 + "cnLiveLikeControl": 1,
  308 + "cnLiveShareControl": 1,
  309 + "cnMainControl": 1,
  310 + "cnRegistTime": 1695201858000,
  311 + "cnShareControl": 1,
  312 + "cnShareNum": 0,
  313 + "cnUserId": "444296355502149",
  314 + "cnUserName": "0920个人",
  315 + "cnUserType": "2",
  316 + "collectNum": 0,
  317 + "creatorId": "3004851",
  318 + "district": "110101",
  319 + "fansNum": 0,
  320 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We172415100/h2j.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  321 + "honoraryIcon": "https://cdn.aikan.pdnews.cn/image/picture/202312/20231223173451966FdV.png",
  322 + "honoraryTitle": "快乐星球",
  323 + "introduction": "账号简介",
  324 + "isAttention": 1,
  325 + "isComment": 1,
  326 + "isLike": 1,
  327 + "isVisiable": 1,
  328 + "likeNum": 0,
  329 + "liveCommentControl": 1,
  330 + "liveGiftControl": 1,
  331 + "liveLikeControl": 1,
  332 + "liveShareControl": 1,
  333 + "posterShareControl": 1,
  334 + "province": "110000",
  335 + "publishNum": 0,
  336 + "region": "上海",
  337 + "shareControl": 1,
  338 + "shareNum": 0,
  339 + "shopOpen": 0,
  340 + "storeUrl": "",
  341 + "subjectType": 0,
  342 + "userId": "",
  343 + "userName": "0920个人",
  344 + "userType": "2",
  345 + "waresSwitch": 1
  346 + }, {
  347 + "attentionNum": 0,
  348 + "authIcon": "",
  349 + "authId": 0,
  350 + "authPersonal": "",
  351 + "authTitle": "",
  352 + "categoryAuth": "",
  353 + "city": "120100",
  354 + "cnAttentionNum": 0,
  355 + "cnCollectNum": 0,
  356 + "cnCommentNum": 0,
  357 + "cnFansNum": 10,
  358 + "cnIsAttention": 1,
  359 + "cnIsComment": 1,
  360 + "cnIsLike": 1,
  361 + "cnLikeNum": 0,
  362 + "cnLiveCommentControl": 1,
  363 + "cnLiveGiftControl": 1,
  364 + "cnLiveLikeControl": 1,
  365 + "cnLiveShareControl": 1,
  366 + "cnMainControl": 1,
  367 + "cnRegistTime": 1695190066000,
  368 + "cnShareControl": 1,
  369 + "cnShareNum": 0,
  370 + "cnUserId": "444200272593477",
  371 + "cnUserName": "zhuaqu005",
  372 + "cnUserType": "2",
  373 + "collectNum": 0,
  374 + "creatorId": "3004849",
  375 + "district": "120101",
  376 + "fansNum": 0,
  377 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We140931534/CIX.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  378 + "honoraryIcon": "",
  379 + "honoraryTitle": "",
  380 + "introduction": "aaa",
  381 + "isAttention": 1,
  382 + "isComment": 1,
  383 + "isLike": 1,
  384 + "isVisiable": 1,
  385 + "likeNum": 0,
  386 + "liveCommentControl": 1,
  387 + "liveGiftControl": 1,
  388 + "liveLikeControl": 1,
  389 + "liveShareControl": 1,
  390 + "posterShareControl": 1,
  391 + "province": "120000",
  392 + "publishNum": 0,
  393 + "region": "上海",
  394 + "shareControl": 1,
  395 + "shareNum": 0,
  396 + "shopOpen": 0,
  397 + "storeUrl": "",
  398 + "subjectType": 0,
  399 + "userId": "",
  400 + "userName": "zhuaqu005",
  401 + "userType": "2",
  402 + "waresSwitch": 1
  403 + }],
  404 + "pageNum": 1,
  405 + "pageSize": 20,
  406 + "totalCount": 7
  407 + },
  408 + "message": "Success",
  409 + "success": true,
  410 + "timestamp": 1710742034894
  411 +}