Showing
11 changed files
with
936 additions
and
81 deletions
| @@ -513,6 +513,24 @@ export class HttpUrlUtils { | @@ -513,6 +513,24 @@ export class HttpUrlUtils { | ||
| 513 | return url | 513 | return url |
| 514 | } | 514 | } |
| 515 | 515 | ||
| 516 | + /*评论状态*/ | ||
| 517 | + static getBatchCommentStatusUrl() { | ||
| 518 | + let url = HttpUrlUtils._hostUrl + "/api/rmrb-comment/comment/zh/c/batchCommentStatus" | ||
| 519 | + return url | ||
| 520 | + } | ||
| 521 | + | ||
| 522 | + /*levleIcon*/ | ||
| 523 | + static getBatchUserUrl() { | ||
| 524 | + let url = HttpUrlUtils._hostUrl + "/api/rmrb-user-point/auth/level/zh/c/batchUser" | ||
| 525 | + return url | ||
| 526 | + } | ||
| 527 | + | ||
| 528 | + /*authIcon 20个一次上限*/ | ||
| 529 | + static getDetailListUrl() { | ||
| 530 | + let url = HttpUrlUtils._hostUrl + "/api/rmrb-contact/contact/zh/c/master/detailList" | ||
| 531 | + return url | ||
| 532 | + } | ||
| 533 | + | ||
| 516 | 534 | ||
| 517 | //账户注销 | 535 | //账户注销 |
| 518 | static accountLogoutUrl() { | 536 | static accountLogoutUrl() { |
| @@ -72,6 +72,8 @@ export class WDRouterPage { | @@ -72,6 +72,8 @@ export class WDRouterPage { | ||
| 72 | static privacySettingPage = new WDRouterPage("wdComponent", "ets/components/page/PrivacySettingPage"); | 72 | static privacySettingPage = new WDRouterPage("wdComponent", "ets/components/page/PrivacySettingPage"); |
| 73 | // 关于页 | 73 | // 关于页 |
| 74 | static aboutPage = new WDRouterPage("wdComponent", "ets/components/page/SettingAboutPage"); | 74 | static aboutPage = new WDRouterPage("wdComponent", "ets/components/page/SettingAboutPage"); |
| 75 | + // 精选评论页 | ||
| 76 | + static QualityCommentsPage = new WDRouterPage("wdComponent", "ets/components/page/QualityCommentsPage"); | ||
| 75 | // 设置页 | 77 | // 设置页 |
| 76 | static settingPage = new WDRouterPage("wdComponent", "ets/components/page/SettingPage"); | 78 | static settingPage = new WDRouterPage("wdComponent", "ets/components/page/SettingPage"); |
| 77 | // 设置页 | 79 | // 设置页 |
| @@ -17,6 +17,7 @@ import { CardParser } from './CardParser'; | @@ -17,6 +17,7 @@ import { CardParser } from './CardParser'; | ||
| 17 | import { LiveHorizontalReservationComponent } from './view/LiveHorizontalReservationComponent'; | 17 | import { LiveHorizontalReservationComponent } from './view/LiveHorizontalReservationComponent'; |
| 18 | import { ZhGridLayout02 } from './compview/ZhGridLayout02'; | 18 | import { ZhGridLayout02 } from './compview/ZhGridLayout02'; |
| 19 | import { Card5Component } from './cardview/Card5Component' | 19 | import { Card5Component } from './cardview/Card5Component' |
| 20 | +import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'; | ||
| 20 | 21 | ||
| 21 | /** | 22 | /** |
| 22 | * comp适配器. | 23 | * comp适配器. |
| @@ -69,6 +70,11 @@ export struct CompParser { | @@ -69,6 +70,11 @@ export struct CompParser { | ||
| 69 | Text(compDTO.compStyle) | 70 | Text(compDTO.compStyle) |
| 70 | .width(CommonConstants.FULL_PARENT) | 71 | .width(CommonConstants.FULL_PARENT) |
| 71 | .padding(10) | 72 | .padding(10) |
| 73 | + .onClick(()=>{ | ||
| 74 | + if (compDTO.compStyle === CompStyle.Zh_Single_Row_06) {//精选评论 | ||
| 75 | + WDRouterRule.jumpWithPage(WDRouterPage.QualityCommentsPage) | ||
| 76 | + } | ||
| 77 | + }) | ||
| 72 | // .backgroundColor(Color.Brown) // 展示本页未实现的compStyle | 78 | // .backgroundColor(Color.Brown) // 展示本页未实现的compStyle |
| 73 | } | 79 | } |
| 74 | } | 80 | } |
| @@ -33,9 +33,17 @@ export class commentListModel extends PageModel{ | @@ -33,9 +33,17 @@ export class commentListModel extends PageModel{ | ||
| 33 | totalCount: number = 0 | 33 | totalCount: number = 0 |
| 34 | hasNext: number = 0 | 34 | hasNext: number = 0 |
| 35 | list: commentItemModel[] = [] | 35 | list: commentItemModel[] = [] |
| 36 | +} | ||
| 36 | 37 | ||
| 38 | +export class commentStatusListModel extends PageModel{ | ||
| 39 | + pageNum: number = 0 | ||
| 40 | + pageSize: number = 0 | ||
| 41 | + totalCount: number = 0 | ||
| 42 | + hasNext: number = 0 | ||
| 43 | + list: commentStatusModel[] = [] | ||
| 37 | } | 44 | } |
| 38 | 45 | ||
| 46 | + | ||
| 39 | @Observed | 47 | @Observed |
| 40 | export class commentItemModel { | 48 | export class commentItemModel { |
| 41 | authorLike: string = '' | 49 | authorLike: string = '' |
| @@ -94,9 +102,17 @@ export class commentItemModel { | @@ -94,9 +102,17 @@ export class commentItemModel { | ||
| 94 | targetType:string = ''; | 102 | targetType:string = ''; |
| 95 | visitorComment:string = ''; | 103 | visitorComment:string = ''; |
| 96 | shareInfo:commentItemShareInfoModel = new commentItemShareInfoModel; | 104 | shareInfo:commentItemShareInfoModel = new commentItemShareInfoModel; |
| 97 | - // targetId:string = ''; | ||
| 98 | - // targetId:string = ''; | ||
| 99 | - // targetId:string = ''; | 105 | + |
| 106 | + api_commentId:string = ''; | ||
| 107 | + api_status:string = ''; | ||
| 108 | + | ||
| 109 | + api_level:string = ''; | ||
| 110 | + api_levelHead:string = 'http'; | ||
| 111 | + api_userId:string = ''; | ||
| 112 | + | ||
| 113 | + api_creatorId:string = ''; | ||
| 114 | + api_userType:string = ''; | ||
| 115 | + api_authIcon:string = ''; | ||
| 100 | 116 | ||
| 101 | } | 117 | } |
| 102 | 118 | ||
| @@ -106,3 +122,18 @@ export class commentItemShareInfoModel { | @@ -106,3 +122,18 @@ export class commentItemShareInfoModel { | ||
| 106 | shareTitle: string = '' | 122 | shareTitle: string = '' |
| 107 | shareUrl: string = '' | 123 | shareUrl: string = '' |
| 108 | } | 124 | } |
| 125 | + | ||
| 126 | +export class commentStatusModel { | ||
| 127 | + commentId:string = ''; | ||
| 128 | + status:string = ''; | ||
| 129 | + | ||
| 130 | + level:string = ''; | ||
| 131 | + levelHead:string = ''; | ||
| 132 | + userId:string = ''; | ||
| 133 | + | ||
| 134 | + | ||
| 135 | + creatorId:string = ''; | ||
| 136 | + userType:string = ''; | ||
| 137 | + authIcon:string = ''; | ||
| 138 | + | ||
| 139 | +} |
| @@ -6,6 +6,13 @@ import { commentItemModel, commentListModel, WDPublicUserType } from '../model/C | @@ -6,6 +6,13 @@ import { commentItemModel, commentListModel, WDPublicUserType } from '../model/C | ||
| 6 | import commentViewModel from '../viewmodel/CommentViewModel' | 6 | import commentViewModel from '../viewmodel/CommentViewModel' |
| 7 | import { CommentText } from './CommentText'; | 7 | import { CommentText } from './CommentText'; |
| 8 | import measure from '@ohos.measure' | 8 | import measure from '@ohos.measure' |
| 9 | +import {CommentCustomDialog} from './CommentCustomDialog' | ||
| 10 | + | ||
| 11 | +const TAG = 'CommentComponent'; | ||
| 12 | + | ||
| 13 | + | ||
| 14 | + | ||
| 15 | + | ||
| 9 | 16 | ||
| 10 | @Entry | 17 | @Entry |
| 11 | @Preview | 18 | @Preview |
| @@ -13,10 +20,19 @@ import measure from '@ohos.measure' | @@ -13,10 +20,19 @@ import measure from '@ohos.measure' | ||
| 13 | export struct CommentComponent { | 20 | export struct CommentComponent { |
| 14 | @State private browSingModel: commentListModel = new commentListModel() | 21 | @State private browSingModel: commentListModel = new commentListModel() |
| 15 | isloading: boolean = false | 22 | isloading: boolean = false |
| 16 | - // @State allDatas :commentItemModel[] = []; | ||
| 17 | - | ||
| 18 | @State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource(); | 23 | @State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource(); |
| 19 | 24 | ||
| 25 | + dialogController: CustomDialogController = new CustomDialogController({ | ||
| 26 | + builder: CommentCustomDialog(), | ||
| 27 | + autoCancel: true, | ||
| 28 | + alignment: DialogAlignment.Bottom, | ||
| 29 | + customStyle: true, | ||
| 30 | + offset: { | ||
| 31 | + dx: 0, | ||
| 32 | + dy: -20 | ||
| 33 | + } | ||
| 34 | + }) | ||
| 35 | + | ||
| 20 | aboutToAppear() { | 36 | aboutToAppear() { |
| 21 | this.getData(); | 37 | this.getData(); |
| 22 | this.getData(); | 38 | this.getData(); |
| @@ -59,7 +75,7 @@ export struct CommentComponent { | @@ -59,7 +75,7 @@ export struct CommentComponent { | ||
| 59 | .height('32') | 75 | .height('32') |
| 60 | .objectFit(ImageFit.Cover) | 76 | .objectFit(ImageFit.Cover) |
| 61 | .borderRadius(16) | 77 | .borderRadius(16) |
| 62 | - Image($r('app.media.icon_border_test')) | 78 | + Image(item.api_levelHead) |
| 63 | .width('48') | 79 | .width('48') |
| 64 | .height('48') | 80 | .height('48') |
| 65 | .objectFit(ImageFit.Cover) | 81 | .objectFit(ImageFit.Cover) |
| @@ -167,7 +183,6 @@ export struct CommentComponent { | @@ -167,7 +183,6 @@ export struct CommentComponent { | ||
| 167 | // ///1天~2天:1天前 | 183 | // ///1天~2天:1天前 |
| 168 | // ///2天~:日期隐藏 | 184 | // ///2天~:日期隐藏 |
| 169 | 185 | ||
| 170 | - | ||
| 171 | Text(DateTimeUtils.getCommentTime(Number.parseFloat(item.createTime))) | 186 | Text(DateTimeUtils.getCommentTime(Number.parseFloat(item.createTime))) |
| 172 | .fontColor($r('app.color.color_B0B0B0')) | 187 | .fontColor($r('app.color.color_B0B0B0')) |
| 173 | .fontSize(12) | 188 | .fontSize(12) |
| @@ -212,6 +227,10 @@ export struct CommentComponent { | @@ -212,6 +227,10 @@ export struct CommentComponent { | ||
| 212 | 227 | ||
| 213 | List() { | 228 | List() { |
| 214 | ListItemGroup({ header: this.titleHeader() }) | 229 | ListItemGroup({ header: this.titleHeader() }) |
| 230 | + .onClick(()=>{ | ||
| 231 | + console.log(TAG) | ||
| 232 | + this.dialogController.open() | ||
| 233 | + }) | ||
| 215 | LazyForEach(this.allDatas, (item: commentItemModel, index: number) => { | 234 | LazyForEach(this.allDatas, (item: commentItemModel, index: number) => { |
| 216 | if (item.hasMore) { | 235 | if (item.hasMore) { |
| 217 | ListItemGroup({ header: this.CommentHeaderItem(item), footer: this.GroupFooterView(item) }) { | 236 | ListItemGroup({ header: this.CommentHeaderItem(item), footer: this.GroupFooterView(item) }) { |
| @@ -219,6 +238,9 @@ export struct CommentComponent { | @@ -219,6 +238,9 @@ export struct CommentComponent { | ||
| 219 | ListItem() { | 238 | ListItem() { |
| 220 | ChildCommentItem(); | 239 | ChildCommentItem(); |
| 221 | } | 240 | } |
| 241 | + .onClick(()=>{ | ||
| 242 | + console.log(TAG) | ||
| 243 | + }) | ||
| 222 | }) | 244 | }) |
| 223 | } | 245 | } |
| 224 | }else { | 246 | }else { |
| @@ -227,6 +249,9 @@ export struct CommentComponent { | @@ -227,6 +249,9 @@ export struct CommentComponent { | ||
| 227 | ListItem() { | 249 | ListItem() { |
| 228 | ChildCommentItem(); | 250 | ChildCommentItem(); |
| 229 | } | 251 | } |
| 252 | + .onClick(()=>{ | ||
| 253 | + console.log(TAG) | ||
| 254 | + }) | ||
| 230 | }) | 255 | }) |
| 231 | } | 256 | } |
| 232 | } | 257 | } |
sight_harmony/features/wdComponent/src/main/ets/components/comment/view/CommentCustomDialog.ets
0 → 100644
| 1 | +@Preview | ||
| 2 | +@CustomDialog | ||
| 3 | +export struct CommentCustomDialog { | ||
| 4 | + controller: CustomDialogController = new CustomDialogController({ | ||
| 5 | + builder: CommentCustomDialog(), | ||
| 6 | + autoCancel: true, | ||
| 7 | + alignment: DialogAlignment.Bottom, | ||
| 8 | + customStyle: true, | ||
| 9 | + }) | ||
| 10 | + | ||
| 11 | + build() { | ||
| 12 | + Column() { | ||
| 13 | + Row() { | ||
| 14 | + TextArea({ placeholder: '优质评论会获得最佳评论人的称号' }) | ||
| 15 | + .height('100%') | ||
| 16 | + .width('100%') | ||
| 17 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 18 | + } | ||
| 19 | + .backgroundColor('#F9F9F9') | ||
| 20 | + // .width('100%') | ||
| 21 | + .margin({ top: 12,right: 12, left: 12, bottom: 10 }) | ||
| 22 | + .height(80) | ||
| 23 | + .borderRadius(4) | ||
| 24 | + | ||
| 25 | + Row(){ | ||
| 26 | + Row() { | ||
| 27 | + Row({ space: 12 }) { | ||
| 28 | + //语音暂时不做,隐藏 | ||
| 29 | + // Image($r('app.media.WDInput_voice')).width(30).height(30) | ||
| 30 | + | ||
| 31 | + Image($r('app.media.WDInput_keyboardImage')).width(30).height(30) | ||
| 32 | + } | ||
| 33 | + // Blank() | ||
| 34 | + | ||
| 35 | + Row() { | ||
| 36 | + Text('发布') | ||
| 37 | + .backgroundColor('#F89381') | ||
| 38 | + .width(80) | ||
| 39 | + .height(30) | ||
| 40 | + .fontSize(15) | ||
| 41 | + .fontColor(Color.White) | ||
| 42 | + .textAlign(TextAlign.Center) | ||
| 43 | + .borderRadius(4) | ||
| 44 | + } | ||
| 45 | + }.justifyContent(FlexAlign.SpaceBetween) | ||
| 46 | + .width('100%') | ||
| 47 | + .height(60) | ||
| 48 | + // .margin({ right: 12, left: 12 }) | ||
| 49 | + // .backgroundColor(Color.Red) | ||
| 50 | + }.padding({left:12, right:12}) | ||
| 51 | + }.backgroundColor(Color.White) | ||
| 52 | + .width('100%') | ||
| 53 | + .offset({ | ||
| 54 | + y: 20 | ||
| 55 | + }) | ||
| 56 | + } | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | + | ||
| 60 | + | ||
| 61 | + |
sight_harmony/features/wdComponent/src/main/ets/components/comment/view/QualityCommentsComponent.ets
| @@ -2,7 +2,8 @@ import { ViewType } from 'wdConstant/Index' | @@ -2,7 +2,8 @@ import { ViewType } from 'wdConstant/Index' | ||
| 2 | import { DateTimeUtils, LazyDataSource, WindowModel } from 'wdKit/Index' | 2 | import { DateTimeUtils, LazyDataSource, WindowModel } from 'wdKit/Index' |
| 3 | import { commentItemModel, commentListModel } from '../model/CommentModel' | 3 | import { commentItemModel, commentListModel } from '../model/CommentModel' |
| 4 | import commentViewModel from '../viewmodel/CommentViewModel' | 4 | import commentViewModel from '../viewmodel/CommentViewModel' |
| 5 | -import { window } from '@kit.ArkUI' | 5 | +import { router, window } from '@kit.ArkUI' |
| 6 | +import { CustomTitleUI } from '../../reusable/CustomTitleUI' | ||
| 6 | 7 | ||
| 7 | const TAG = 'QualityCommentsComponent'; | 8 | const TAG = 'QualityCommentsComponent'; |
| 8 | 9 | ||
| @@ -10,11 +11,14 @@ const TAG = 'QualityCommentsComponent'; | @@ -10,11 +11,14 @@ const TAG = 'QualityCommentsComponent'; | ||
| 10 | @Preview | 11 | @Preview |
| 11 | @Component | 12 | @Component |
| 12 | export struct QualityCommentsComponent { | 13 | export struct QualityCommentsComponent { |
| 14 | + @State tileOpacity: number = 0; | ||
| 15 | + firstPositionY: number = 0; | ||
| 13 | bottomSafeHeight: string = AppStorage.get<number>('bottomSafeHeight') + 'px'; | 16 | bottomSafeHeight: string = AppStorage.get<number>('bottomSafeHeight') + 'px'; |
| 17 | + topSafeHeight: number = AppStorage.get<number>('topSafeHeight') as number; | ||
| 14 | @State private browSingModel: commentListModel = new commentListModel() | 18 | @State private browSingModel: commentListModel = new commentListModel() |
| 15 | isloading: boolean = false | 19 | isloading: boolean = false |
| 16 | - lastWindowColor:string = '#ffffff' | ||
| 17 | - currentWindowColor:string = '#FF4202' | 20 | + lastWindowColor: string = '#ffffff' |
| 21 | + currentWindowColor: string = '#FF4202' | ||
| 18 | @State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource(); | 22 | @State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource(); |
| 19 | 23 | ||
| 20 | aboutToDisappear(): void { | 24 | aboutToDisappear(): void { |
| @@ -32,25 +36,25 @@ export struct QualityCommentsComponent { | @@ -32,25 +36,25 @@ export struct QualityCommentsComponent { | ||
| 32 | this.fullScreen(); | 36 | this.fullScreen(); |
| 33 | 37 | ||
| 34 | 38 | ||
| 35 | - commentViewModel.fetchQualityCommentListLocal(getContext()).then(commentListModel => { | ||
| 36 | - this.allDatas.push(...commentListModel.list) | ||
| 37 | - }) | ||
| 38 | - | ||
| 39 | - // commentViewModel.fetchQualityCommentList('1').then((commentListModel) => { | ||
| 40 | - // if (commentListModel && commentListModel.list && commentListModel.list.length > 0) { | ||
| 41 | - // // commentListModel.hasMore = true; | ||
| 42 | - // // this.browSingModel.viewType = ViewType.LOADED; | 39 | + // commentViewModel.fetchQualityCommentListLocal(getContext()).then(commentListModel => { |
| 43 | // this.allDatas.push(...commentListModel.list) | 40 | // this.allDatas.push(...commentListModel.list) |
| 44 | - // // if (commentListModel.list.length === this.browSingModel.pageSize) { | ||
| 45 | - // // this.browSingModel.currentPage++; | ||
| 46 | - // // this.browSingModel.hasMore = true; | ||
| 47 | - // // } else { | ||
| 48 | - // // this.browSingModel.hasMore = false; | ||
| 49 | - // // } | 41 | + // }) |
| 42 | + | ||
| 43 | + commentViewModel.fetchQualityCommentList('1').then((commentListModel) => { | ||
| 44 | + if (commentListModel && commentListModel.list && commentListModel.list.length > 0) { | ||
| 45 | + // commentListModel.hasMore = true; | ||
| 46 | + // this.browSingModel.viewType = ViewType.LOADED; | ||
| 47 | + this.allDatas.push(...commentListModel.list) | ||
| 48 | + // if (commentListModel.list.length === this.browSingModel.pageSize) { | ||
| 49 | + // this.browSingModel.currentPage++; | ||
| 50 | + // this.browSingModel.hasMore = true; | ||
| 50 | // } else { | 51 | // } else { |
| 51 | - // this.browSingModel.viewType = ViewType.EMPTY; | 52 | + // this.browSingModel.hasMore = false; |
| 52 | // } | 53 | // } |
| 53 | - // }) | 54 | + } else { |
| 55 | + this.browSingModel.viewType = ViewType.EMPTY; | ||
| 56 | + } | ||
| 57 | + }) | ||
| 54 | } | 58 | } |
| 55 | 59 | ||
| 56 | fullScreen() { | 60 | fullScreen() { |
| @@ -69,30 +73,143 @@ export struct QualityCommentsComponent { | @@ -69,30 +73,143 @@ export struct QualityCommentsComponent { | ||
| 69 | @Builder | 73 | @Builder |
| 70 | titleHeader() { | 74 | titleHeader() { |
| 71 | Row() { | 75 | Row() { |
| 72 | - Image($r('app.media.comment_img_banner')).width('100%').aspectRatio(375 / 283); | 76 | + Image($r('app.media.comment_img_banner')).width('100%') |
| 77 | + .height(283) | ||
| 78 | + // .aspectRatio(375 / 283); | ||
| 79 | + } | ||
| 80 | + .onAreaChange((oldValue: Area, newValue: Area) => { | ||
| 81 | + | ||
| 82 | + let persent = Math.abs(Number(newValue.globalPosition.y)) / 150 | ||
| 83 | + if (persent > 1) { | ||
| 84 | + persent = 1 | ||
| 85 | + } | ||
| 86 | + this.tileOpacity = persent | ||
| 87 | + | ||
| 88 | + }) | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + /*透明导航栏*/ | ||
| 92 | + @Builder | ||
| 93 | + TabbarTransparent() { | ||
| 94 | + RelativeContainer() { | ||
| 95 | + //标题栏目 | ||
| 96 | + Image($r('app.media.icon_arrow_left_white')) | ||
| 97 | + .width(24) | ||
| 98 | + .height(24) | ||
| 99 | + .objectFit(ImageFit.Auto) | ||
| 100 | + .id("back_icon") | ||
| 101 | + .alignRules({ | ||
| 102 | + center: { anchor: "__container__", align: VerticalAlign.Center }, | ||
| 103 | + left: { anchor: "__container__", align: HorizontalAlign.Start } | ||
| 104 | + }) | ||
| 105 | + .offset({ | ||
| 106 | + y: (this.topSafeHeight / 2) + 'px' | ||
| 107 | + }) | ||
| 108 | + .margin({ left: 16 }) | ||
| 109 | + .onClick(() => { | ||
| 110 | + router.back() | ||
| 111 | + }) | ||
| 73 | } | 112 | } |
| 113 | + .visibility(this.tileOpacity > 0 ? 1 : 0) | ||
| 114 | + .height(this.topSafeHeight + vp2px(44) + 'px') | ||
| 115 | + .width('100%') | ||
| 116 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + /*导航栏*/ | ||
| 120 | + @Builder | ||
| 121 | + TabbarNormal() { | ||
| 122 | + RelativeContainer() { | ||
| 123 | + //标题栏目 | ||
| 124 | + Image($r('app.media.icon_arrow_left')) | ||
| 125 | + .width(24) | ||
| 126 | + .height(24) | ||
| 127 | + .objectFit(ImageFit.Auto) | ||
| 128 | + .id("back_icon") | ||
| 129 | + .alignRules({ | ||
| 130 | + center: { anchor: "__container__", align: VerticalAlign.Center }, | ||
| 131 | + left: { anchor: "__container__", align: HorizontalAlign.Start } | ||
| 132 | + }) | ||
| 133 | + .offset({ | ||
| 134 | + y: (this.topSafeHeight / 2) + 'px' | ||
| 135 | + }) | ||
| 136 | + .margin({ left: 16 }) | ||
| 137 | + .onClick(() => { | ||
| 138 | + router.back() | ||
| 139 | + }) | ||
| 140 | + | ||
| 141 | + Text('精选评论') | ||
| 142 | + // .height('42lpx') | ||
| 143 | + .maxLines(1) | ||
| 144 | + .id("title") | ||
| 145 | + .fontSize('35lpx') | ||
| 146 | + .fontWeight(400) | ||
| 147 | + .fontColor($r('app.color.color_222222')) | ||
| 148 | + .lineHeight('42lpx') | ||
| 149 | + .alignRules({ | ||
| 150 | + center: {anchor: "__container__", align: VerticalAlign.Center}, | ||
| 151 | + middle: {anchor: "__container__", align: HorizontalAlign.Center} | ||
| 152 | + }) | ||
| 153 | + .offset({ | ||
| 154 | + y: (this.topSafeHeight / 2) + 'px' | ||
| 155 | + }) | ||
| 156 | + } | ||
| 157 | + .visibility(this.tileOpacity > 0 ? 0 : 1) | ||
| 158 | + .opacity(this.tileOpacity) | ||
| 159 | + .height(this.topSafeHeight + vp2px(44) + 'px') | ||
| 160 | + .width('100%') | ||
| 161 | + .backgroundColor($r('app.color.white')) | ||
| 74 | } | 162 | } |
| 75 | 163 | ||
| 76 | build() { | 164 | build() { |
| 77 | Column() { | 165 | Column() { |
| 78 | - // this.titleHeader() | ||
| 79 | - List({ space: 28 }) { | ||
| 80 | - ListItemGroup({ header: this.titleHeader() }) | 166 | + Stack({ alignContent: Alignment.Top }) { |
| 167 | + | ||
| 168 | + Scroll() { | ||
| 169 | + Column() { | ||
| 170 | + Stack() { | ||
| 171 | + this.titleHeader() | ||
| 81 | 172 | ||
| 173 | + List({ space: 12 }) { | ||
| 174 | + // ListItemGroup({ header: this.titleHeader() }) | ||
| 82 | LazyForEach(this.allDatas, (item: commentItemModel, index: number) => { | 175 | LazyForEach(this.allDatas, (item: commentItemModel, index: number) => { |
| 83 | ListItem() { | 176 | ListItem() { |
| 84 | QualityCommentItem({ item: item }).margin({ left: 12, right: 12 }) | 177 | QualityCommentItem({ item: item }).margin({ left: 12, right: 12 }) |
| 85 | } | 178 | } |
| 86 | - // .offset({ | ||
| 87 | - // y:-87 | ||
| 88 | - // }) | ||
| 89 | }) | 179 | }) |
| 180 | + ListItem() { | ||
| 181 | + | ||
| 182 | + }.height(this.bottomSafeHeight) | ||
| 90 | } | 183 | } |
| 91 | - // .contentStartOffset(- 87) | 184 | + .margin({ top: 196 }) |
| 185 | + .height("100%") | ||
| 186 | + .width("100%") | ||
| 92 | .edgeEffect(EdgeEffect.Spring) | 187 | .edgeEffect(EdgeEffect.Spring) |
| 93 | - .margin({bottom:this.bottomSafeHeight}) | 188 | + .nestedScroll({ |
| 189 | + scrollForward: NestedScrollMode.PARENT_FIRST, | ||
| 190 | + scrollBackward: NestedScrollMode.SELF_FIRST | ||
| 191 | + }) | ||
| 192 | + | ||
| 193 | + // .margin({ bottom: this.bottomSafeHeight }) | ||
| 194 | + | ||
| 94 | // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | 195 | // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) |
| 95 | - }.backgroundColor(this.currentWindowColor).height('100%').width('100%') | 196 | + }.alignContent(Alignment.Top) |
| 197 | + }.backgroundColor(this.currentWindowColor).width('100%') | ||
| 198 | + } | ||
| 199 | + .friction(0.6) | ||
| 200 | + .scrollBar(BarState.Off) | ||
| 201 | + .edgeEffect(EdgeEffect.None) | ||
| 202 | + .width('100%') | ||
| 203 | + .height('100%') | ||
| 204 | + | ||
| 205 | + this.TabbarTransparent() | ||
| 206 | + this.TabbarNormal() | ||
| 207 | + | ||
| 208 | + | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + } | ||
| 212 | + | ||
| 96 | } | 213 | } |
| 97 | } | 214 | } |
| 98 | 215 | ||
| @@ -103,8 +220,11 @@ struct QualityCommentItem { | @@ -103,8 +220,11 @@ struct QualityCommentItem { | ||
| 103 | 220 | ||
| 104 | build() { | 221 | build() { |
| 105 | Column() { | 222 | Column() { |
| 223 | + Column().height(16).width('100%').opacity(0) | ||
| 224 | + Column() { | ||
| 106 | /*头像以及昵称*/ | 225 | /*头像以及昵称*/ |
| 107 | RelativeContainer() { | 226 | RelativeContainer() { |
| 227 | + | ||
| 108 | Image(this.item.fromUserHeader) | 228 | Image(this.item.fromUserHeader) |
| 109 | .width(50) | 229 | .width(50) |
| 110 | .height(50) | 230 | .height(50) |
| @@ -185,22 +305,35 @@ struct QualityCommentItem { | @@ -185,22 +305,35 @@ struct QualityCommentItem { | ||
| 185 | /*时间 点赞评论*/ | 305 | /*时间 点赞评论*/ |
| 186 | Row() { | 306 | Row() { |
| 187 | 307 | ||
| 188 | - Text(DateTimeUtils.getCommentTime(DateTimeUtils.getDateTimestamp(this.item.createTime))).fontSize(14).fontColor('#999999') | 308 | + Text(DateTimeUtils.getCommentTime(DateTimeUtils.getDateTimestamp(this.item.createTime))) |
| 309 | + .fontSize(14) | ||
| 310 | + .fontColor('#999999') | ||
| 189 | 311 | ||
| 190 | - Row({space:16}){ | ||
| 191 | - Row(){ | 312 | + Row({ space: 16 }) { |
| 313 | + Row() { | ||
| 192 | Image($r('app.media.comment_icon_pinglun')).width(16).height(16) | 314 | Image($r('app.media.comment_icon_pinglun')).width(16).height(16) |
| 193 | } | 315 | } |
| 194 | 316 | ||
| 195 | - Row(){ | 317 | + Row() { |
| 196 | //comment_like_select | 318 | //comment_like_select |
| 197 | - Image($r(this.item.likeNum?'app.media.comment_like_select':'app.media.comment_like_normal')).width(16).height(16) | ||
| 198 | - if (this.item.likeNum){Text(this.item.likeNum).fontColor(this.item.isLike?'#ED2800':'#999999').fontSize(14).margin({left:3})} | 319 | + Image($r(this.item.likeNum ? 'app.media.comment_like_select' : 'app.media.comment_like_normal')) |
| 320 | + .width(16) | ||
| 321 | + .height(16) | ||
| 322 | + if (this.item.likeNum) { | ||
| 323 | + Text(this.item.likeNum) | ||
| 324 | + .fontColor(this.item.isLike ? '#ED2800' : '#999999') | ||
| 325 | + .fontSize(14) | ||
| 326 | + .margin({ left: 3 }) | ||
| 327 | + } | ||
| 199 | } | 328 | } |
| 200 | } | 329 | } |
| 201 | }.height(38).width('100%').justifyContent(FlexAlign.SpaceBetween) | 330 | }.height(38).width('100%').justifyContent(FlexAlign.SpaceBetween) |
| 202 | 331 | ||
| 203 | }.backgroundColor('#FFFFFF').padding({ top: 0, left: 16, right: 16 }).borderRadius(4) | 332 | }.backgroundColor('#FFFFFF').padding({ top: 0, left: 16, right: 16 }).borderRadius(4) |
| 333 | + } | ||
| 204 | 334 | ||
| 205 | } | 335 | } |
| 206 | } | 336 | } |
| 337 | + | ||
| 338 | + | ||
| 339 | + |
| 1 | import { Logger, ResourcesUtils } from 'wdKit/Index'; | 1 | import { Logger, ResourcesUtils } from 'wdKit/Index'; |
| 2 | -import { HttpUrlUtils, ResponseDTO } from 'wdNetwork/Index'; | 2 | +import { HttpBizUtil, HttpUrlUtils, ResponseDTO } from 'wdNetwork/Index'; |
| 3 | import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest'; | 3 | import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest'; |
| 4 | -import { commentItemModel, commentListModel } from '../model/CommentModel'; | 4 | +import { commentItemModel, commentListModel, commentStatusListModel, commentStatusModel } from '../model/CommentModel'; |
| 5 | import HashMap from '@ohos.util.HashMap'; | 5 | import HashMap from '@ohos.util.HashMap'; |
| 6 | +import { ifaa } from '@kit.OnlineAuthenticationKit'; | ||
| 6 | 7 | ||
| 7 | const TAG = "CommentViewModel" | 8 | const TAG = "CommentViewModel" |
| 8 | 9 | ||
| 9 | class CommentViewModel { | 10 | class CommentViewModel { |
| 10 | private static instance: CommentViewModel | 11 | private static instance: CommentViewModel |
| 12 | + | ||
| 11 | /** | 13 | /** |
| 12 | * 单例模式 | 14 | * 单例模式 |
| 13 | * @returns | 15 | * @returns |
| @@ -19,35 +21,34 @@ class CommentViewModel { | @@ -19,35 +21,34 @@ class CommentViewModel { | ||
| 19 | return CommentViewModel.instance; | 21 | return CommentViewModel.instance; |
| 20 | } | 22 | } |
| 21 | 23 | ||
| 22 | - | ||
| 23 | /*获取本地mock数据*/ | 24 | /*获取本地mock数据*/ |
| 24 | async getCommentLocal(context: Context): Promise<commentListModel> { | 25 | async getCommentLocal(context: Context): Promise<commentListModel> { |
| 25 | Logger.info(TAG, `getBottomNavDataMock start`); | 26 | Logger.info(TAG, `getBottomNavDataMock start`); |
| 26 | - let compRes: ResponseDTO<commentListModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<commentListModel>>(context,'comment_local.json' ); | 27 | + let compRes: ResponseDTO<commentListModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<commentListModel>>(context, 'comment_local.json'); |
| 27 | if (!compRes || !compRes.data) { | 28 | if (!compRes || !compRes.data) { |
| 28 | Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`); | 29 | Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`); |
| 29 | return new commentListModel() | 30 | return new commentListModel() |
| 30 | } | 31 | } |
| 31 | Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`); | 32 | Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`); |
| 32 | - return compRes.data | 33 | + return this.fetchCommentStatusAndConfigAuthIcon(compRes.data) |
| 34 | + // this.fetchCommentStatusAndConfigAuthIcon(compRes.data) | ||
| 35 | + // return compRes.data | ||
| 33 | } | 36 | } |
| 34 | 37 | ||
| 35 | - /*获取本地mock数据*/ | 38 | + /*获取热门评论本地mock数据*/ |
| 36 | async fetchQualityCommentListLocal(context: Context): Promise<commentListModel> { | 39 | async fetchQualityCommentListLocal(context: Context): Promise<commentListModel> { |
| 37 | Logger.info(TAG, `getBottomNavDataMock start`); | 40 | Logger.info(TAG, `getBottomNavDataMock start`); |
| 38 | - let compRes: ResponseDTO<commentListModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<commentListModel>>(context,'qualityComment_local.json' ); | 41 | + let compRes: ResponseDTO<commentListModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<commentListModel>>(context, 'qualityComment_local.json'); |
| 39 | if (!compRes || !compRes.data) { | 42 | if (!compRes || !compRes.data) { |
| 40 | Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`); | 43 | Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`); |
| 41 | return new commentListModel() | 44 | return new commentListModel() |
| 42 | } | 45 | } |
| 43 | Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`); | 46 | Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`); |
| 44 | - return compRes.data | 47 | + return this.fetchCommentStatusAndConfigAuthIcon(compRes.data) |
| 45 | } | 48 | } |
| 46 | 49 | ||
| 47 | - | ||
| 48 | - | ||
| 49 | - //qualityComment_local.json | ||
| 50 | - fetchQualityCommentList(pageNum: string) { | 50 | + /*获取热门评论*/ |
| 51 | + fetchQualityCommentList(pageNum: string): Promise<commentListModel> { | ||
| 51 | let url = HttpUrlUtils.getQualityCommentUrl() + `?&pageSize=${10}&pageNum=${pageNum}` | 52 | let url = HttpUrlUtils.getQualityCommentUrl() + `?&pageSize=${10}&pageNum=${pageNum}` |
| 52 | let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); | 53 | let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); |
| 53 | return new Promise<commentListModel>((success, fail) => { | 54 | return new Promise<commentListModel>((success, fail) => { |
| @@ -62,7 +63,15 @@ class CommentViewModel { | @@ -62,7 +63,15 @@ class CommentViewModel { | ||
| 62 | } | 63 | } |
| 63 | let listData = data.data as commentListModel | 64 | let listData = data.data as commentListModel |
| 64 | 65 | ||
| 65 | - success(listData) | 66 | + this.fetchCommentStatusAndConfigAuthIcon(listData).then((commentListModel) =>{ |
| 67 | + console.log(TAG, 'fetchCommentStatusAndConfigAuthIcon完成') | ||
| 68 | + success(commentListModel) | ||
| 69 | + }) | ||
| 70 | + | ||
| 71 | + // return this.fetchCommentStatusAndConfigAuthIcon(listData) | ||
| 72 | + | ||
| 73 | + // this.fetchCommentStatusAndConfigAuthIcon(listData) | ||
| 74 | + // success(listData) | ||
| 66 | }, (error: Error) => { | 75 | }, (error: Error) => { |
| 67 | fail(error.message) | 76 | fail(error.message) |
| 68 | Logger.debug(TAG, error.toString()) | 77 | Logger.debug(TAG, error.toString()) |
| @@ -70,35 +79,192 @@ class CommentViewModel { | @@ -70,35 +79,192 @@ class CommentViewModel { | ||
| 70 | }) | 79 | }) |
| 71 | } | 80 | } |
| 72 | 81 | ||
| 82 | + /*多接口批查*/ | ||
| 83 | + fetchCommentStatusAndConfigAuthIcon(model: commentListModel): Promise<commentListModel> { | ||
| 84 | + | ||
| 85 | + let commentIDs: string[] = []; | ||
| 86 | + | ||
| 87 | + let fromUserIDs: string[] = []; | ||
| 88 | + | ||
| 89 | + let creatorIDs: string[] = []; | ||
| 90 | + | ||
| 91 | + //主评论 | ||
| 92 | + for (const element of model.list) { | ||
| 93 | + if ((element.id + '').length > 0) { | ||
| 94 | + commentIDs.push(element.id + '') | ||
| 95 | + } | ||
| 96 | + if ((element.fromUserId + '').length > 0) { | ||
| 97 | + fromUserIDs.push(element.fromUserId) | ||
| 98 | + } | ||
| 99 | + if ((element.fromCreatorId + '').length > 0) { | ||
| 100 | + creatorIDs.push(element.fromCreatorId) | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + | ||
| 104 | + //子评论 | ||
| 105 | + if (element.childComments) { | ||
| 106 | + for (const obj2 of element.childComments) { | ||
| 107 | + if ((obj2.id + '').length > 0) { | ||
| 108 | + commentIDs.push(obj2.id + '') | ||
| 109 | + } | ||
| 110 | + if ((obj2.fromUserId + '').length > 0) { | ||
| 111 | + fromUserIDs.push(obj2.fromUserId) | ||
| 112 | + } | ||
| 113 | + if ((obj2.fromCreatorId + '').length > 0) { | ||
| 114 | + creatorIDs.push(obj2.fromCreatorId) | ||
| 115 | + } | ||
| 116 | + } | ||
| 117 | + } | ||
| 118 | + } | ||
| 73 | 119 | ||
| 74 | - // BaseGetRequest(contentID:number,contentType:string,pageNum:string){ | ||
| 75 | - // let url = HttpUrlUtils.getMyCollectionListDataUrl()+ `?type=${type}&operateTag=${1}&pageSize=${10}&pageNum=${pageNum}` | ||
| 76 | - // if (tagId.length > 0) { | ||
| 77 | - // url = url + `&tagId=${tagId}` | ||
| 78 | - // } | ||
| 79 | - // let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders() | ||
| 80 | - // return WDHttp.get<ResponseDTO<commentListModel>>(url, headers) | ||
| 81 | - // } | ||
| 82 | - // | ||
| 83 | - // | ||
| 84 | - // fetchCommentList(contentID:number,contentType:string,pageNum:string):Promise<commentListModel>{ | ||
| 85 | - // return new Promise<commentListModel>((success,error) => { | ||
| 86 | - // this.BaseGetRequest(contentID,contentType,pageNum).then((navResDTO: ResponseDTO<commentListModel>) => { | ||
| 87 | - // if (!navResDTO || navResDTO.code != 0) { | ||
| 88 | - // // success(this.getAppointmentListDataLocal(context)) | ||
| 89 | - // return | ||
| 90 | - // } | ||
| 91 | - // Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp); | ||
| 92 | - // let listData = navResDTO.data as commentListModel | ||
| 93 | - // success(listData) | ||
| 94 | - // }).catch((err: Error) => { | ||
| 95 | - // Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`); | ||
| 96 | - // error("page data invalid"); | ||
| 97 | - // }) | ||
| 98 | - // }) | ||
| 99 | - // } | ||
| 100 | 120 | ||
| 121 | + let promiseArray: Promise<commentStatusListModel | void>[] = []; | ||
| 101 | 122 | ||
| 123 | + //TODO 未登录不用批查 | ||
| 124 | + if (commentIDs.length > 0) { | ||
| 125 | + let promise1 = new Promise<void>((success) => { | ||
| 126 | + // HttpRequest HttpBizUtil | ||
| 127 | + let url = HttpUrlUtils.getBatchCommentStatusUrl(); | ||
| 128 | + let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); | ||
| 129 | + let bean: Record<string, string[]> = {}; | ||
| 130 | + bean['commentIdList'] = commentIDs; | ||
| 131 | + HttpRequest.post<ResponseDTO<commentStatusModel[]>>(url, bean, headers).then((data: ResponseDTO<commentStatusModel[]>) => { | ||
| 132 | + if (!data || !data.data) { | ||
| 133 | + success() | ||
| 134 | + return | ||
| 135 | + } | ||
| 136 | + if (data.code != 0) { | ||
| 137 | + success() | ||
| 138 | + return | ||
| 139 | + } | ||
| 140 | + if (data.data.length == 0) { | ||
| 141 | + success() | ||
| 142 | + return | ||
| 143 | + } | ||
| 144 | + let listData = data.data as commentStatusModel[] | ||
| 145 | + | ||
| 146 | + for (const element of listData) { | ||
| 147 | + for (const commentModel of model.list) { | ||
| 148 | + if (element.commentId == commentModel.id) { | ||
| 149 | + commentModel.api_status = element.status | ||
| 150 | + } | ||
| 151 | + if (commentModel.childComments) { | ||
| 152 | + for (const childCommentModel of commentModel.childComments) { | ||
| 153 | + if (element.commentId == childCommentModel.id) { | ||
| 154 | + childCommentModel.api_status = element.status | ||
| 155 | + } | ||
| 156 | + } | ||
| 157 | + } | ||
| 158 | + } | ||
| 159 | + } | ||
| 160 | + success() | ||
| 161 | + }, (error: Error) => { | ||
| 162 | + success() | ||
| 163 | + Logger.debug(TAG, error.toString()) | ||
| 164 | + }) | ||
| 165 | + }) | ||
| 166 | + promiseArray.push(promise1); | ||
| 167 | + } | ||
| 168 | + | ||
| 169 | + if (fromUserIDs.length > 0) { | ||
| 170 | + let promise2 = new Promise<void>((success) => { | ||
| 171 | + let url = HttpUrlUtils.getBatchUserUrl(); | ||
| 172 | + let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); | ||
| 173 | + // HttpRequest HttpBizUtil | ||
| 174 | + HttpRequest.post<ResponseDTO<commentStatusModel[]>>(url, fromUserIDs, headers).then((data: ResponseDTO<commentStatusModel[]>) => { | ||
| 175 | + if (!data || !data.data) { | ||
| 176 | + success() | ||
| 177 | + return | ||
| 178 | + } | ||
| 179 | + if (data.code != 0) { | ||
| 180 | + success() | ||
| 181 | + return | ||
| 182 | + } | ||
| 183 | + if (data.data.length == 0) { | ||
| 184 | + success() | ||
| 185 | + return | ||
| 186 | + } | ||
| 187 | + let listData = data.data as commentStatusModel[] | ||
| 188 | + | ||
| 189 | + for (const element of listData) { | ||
| 190 | + for (const commentModel of model.list) { | ||
| 191 | + if (element.userId == commentModel.fromUserId) { | ||
| 192 | + commentModel.api_levelHead = element.levelHead | ||
| 193 | + } | ||
| 194 | + if (commentModel.childComments) { | ||
| 195 | + for (const childCommentModel of commentModel.childComments) { | ||
| 196 | + if (element.userId == childCommentModel.fromUserId) { | ||
| 197 | + childCommentModel.api_levelHead = element.levelHead | ||
| 198 | + } | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + } | ||
| 202 | + } | ||
| 203 | + success() | ||
| 204 | + }, (error: Error) => { | ||
| 205 | + success() | ||
| 206 | + Logger.debug(TAG, error.toString()) | ||
| 207 | + }) | ||
| 208 | + }) | ||
| 209 | + promiseArray.push(promise2); | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + //TODO 一次20个上限 | ||
| 213 | + if (creatorIDs.length > 0) { | ||
| 214 | + let promise3 = new Promise<void>((success) => { | ||
| 215 | + let url = HttpUrlUtils.getDetailListUrl(); | ||
| 216 | + let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); | ||
| 217 | + let bean: Record<string, string[]> = {}; | ||
| 218 | + bean['creatorIdList'] = creatorIDs; | ||
| 219 | + // HttpRequest HttpBizUtil | ||
| 220 | + HttpRequest.post<ResponseDTO<commentStatusModel[]>>(url, bean, headers).then((data: ResponseDTO<commentStatusModel[]>) => { | ||
| 221 | + if (!data || !data.data) { | ||
| 222 | + success() | ||
| 223 | + return | ||
| 224 | + } | ||
| 225 | + if (data.code != 0) { | ||
| 226 | + success() | ||
| 227 | + return | ||
| 228 | + } | ||
| 229 | + if (data.data.length == 0) { | ||
| 230 | + success() | ||
| 231 | + return | ||
| 232 | + } | ||
| 233 | + let listData = data.data as commentStatusModel[] | ||
| 234 | + | ||
| 235 | + for (const element of listData) { | ||
| 236 | + for (const commentModel of model.list) { | ||
| 237 | + if (element.creatorId == commentModel.fromCreatorId) { | ||
| 238 | + commentModel.api_authIcon = element.authIcon | ||
| 239 | + } | ||
| 240 | + if (commentModel.childComments) { | ||
| 241 | + for (const childCommentModel of commentModel.childComments) { | ||
| 242 | + if (element.creatorId == childCommentModel.fromCreatorId) { | ||
| 243 | + childCommentModel.api_authIcon = element.authIcon | ||
| 244 | + } | ||
| 245 | + } | ||
| 246 | + } | ||
| 247 | + } | ||
| 248 | + } | ||
| 249 | + success() | ||
| 250 | + }, (error: Error) => { | ||
| 251 | + success() | ||
| 252 | + Logger.debug(TAG, error.toString()) | ||
| 253 | + }) | ||
| 254 | + }) | ||
| 255 | + promiseArray.push(promise3); | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + return new Promise<commentListModel>((success) => { | ||
| 259 | + Promise.all(promiseArray).then(() => { | ||
| 260 | + console.log(TAG, 'Promise.all'); | ||
| 261 | + success(model) | ||
| 262 | + }) | ||
| 263 | + | ||
| 264 | + }) | ||
| 265 | + | ||
| 266 | + | ||
| 267 | + } | ||
| 102 | } | 268 | } |
| 103 | 269 | ||
| 104 | 270 |
| @@ -6,6 +6,7 @@ | @@ -6,6 +6,7 @@ | ||
| 6 | "pages/MineHomePage", | 6 | "pages/MineHomePage", |
| 7 | "components/page/SettingPage", | 7 | "components/page/SettingPage", |
| 8 | "components/page/SettingAboutPage", | 8 | "components/page/SettingAboutPage", |
| 9 | + "components/page/QualityCommentsPage", | ||
| 9 | "components/page/PrivacySettingPage", | 10 | "components/page/PrivacySettingPage", |
| 10 | "components/page/EditUserInfoPage", | 11 | "components/page/EditUserInfoPage", |
| 11 | "components/page/EditUserNikeNamePage", | 12 | "components/page/EditUserNikeNamePage", |
| @@ -502,6 +502,406 @@ | @@ -502,6 +502,406 @@ | ||
| 502 | "topicType": null, | 502 | "topicType": null, |
| 503 | "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | 503 | "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", |
| 504 | "visitorComment": 1 | 504 | "visitorComment": 1 |
| 505 | + }, { | ||
| 506 | + "authorLike": 0, | ||
| 507 | + "avatarFrame": "", | ||
| 508 | + "checkStatus": 2, | ||
| 509 | + "commentContent": "外婆企图", | ||
| 510 | + "commentContentSensitive": "", | ||
| 511 | + "commentLevel": 1, | ||
| 512 | + "commentPics": "", | ||
| 513 | + "commentSensitive": "", | ||
| 514 | + "commentType": "2", | ||
| 515 | + "contentAuthor": 0, | ||
| 516 | + "createTime": "2024-04-01 14:22:37", | ||
| 517 | + "creatorFlag": 0, | ||
| 518 | + "fromCreatorId": "", | ||
| 519 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 520 | + "fromUserId": "574444396143685", | ||
| 521 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 522 | + "fromUserType": 1, | ||
| 523 | + "h5Url": "", | ||
| 524 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 525 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 526 | + "id": 56792966, | ||
| 527 | + "likeNum": 0, | ||
| 528 | + "mySelf": 0, | ||
| 529 | + "pageId": null, | ||
| 530 | + "parentId": -1, | ||
| 531 | + "region": "安徽", | ||
| 532 | + "replyNum": 0, | ||
| 533 | + "rootCommentId": 56792966, | ||
| 534 | + "sensitiveExist": 0, | ||
| 535 | + "sensitiveShow": 1, | ||
| 536 | + "shareInfo": { | ||
| 537 | + "shareCoverUrl": "", | ||
| 538 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 539 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 540 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 541 | + }, | ||
| 542 | + "targetId": "30044115488", | ||
| 543 | + "targetRelId": "500005262017", | ||
| 544 | + "targetRelObjectId": "2003", | ||
| 545 | + "targetRelType": 1, | ||
| 546 | + "targetStatus": 0, | ||
| 547 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 548 | + "targetType": 13, | ||
| 549 | + "toUserContentAuthor": 0, | ||
| 550 | + "toUserName": "", | ||
| 551 | + "topFlag": 0, | ||
| 552 | + "topicType": null, | ||
| 553 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 554 | + "visitorComment": 1 | ||
| 555 | + }, { | ||
| 556 | + "authorLike": 0, | ||
| 557 | + "avatarFrame": "", | ||
| 558 | + "checkStatus": 2, | ||
| 559 | + "commentContent": "外婆企图", | ||
| 560 | + "commentContentSensitive": "", | ||
| 561 | + "commentLevel": 1, | ||
| 562 | + "commentPics": "", | ||
| 563 | + "commentSensitive": "", | ||
| 564 | + "commentType": "2", | ||
| 565 | + "contentAuthor": 0, | ||
| 566 | + "createTime": "2024-04-01 14:22:37", | ||
| 567 | + "creatorFlag": 0, | ||
| 568 | + "fromCreatorId": "", | ||
| 569 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 570 | + "fromUserId": "574444396143685", | ||
| 571 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 572 | + "fromUserType": 1, | ||
| 573 | + "h5Url": "", | ||
| 574 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 575 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 576 | + "id": 56792966, | ||
| 577 | + "likeNum": 0, | ||
| 578 | + "mySelf": 0, | ||
| 579 | + "pageId": null, | ||
| 580 | + "parentId": -1, | ||
| 581 | + "region": "安徽", | ||
| 582 | + "replyNum": 0, | ||
| 583 | + "rootCommentId": 56792966, | ||
| 584 | + "sensitiveExist": 0, | ||
| 585 | + "sensitiveShow": 1, | ||
| 586 | + "shareInfo": { | ||
| 587 | + "shareCoverUrl": "", | ||
| 588 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 589 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 590 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 591 | + }, | ||
| 592 | + "targetId": "30044115488", | ||
| 593 | + "targetRelId": "500005262017", | ||
| 594 | + "targetRelObjectId": "2003", | ||
| 595 | + "targetRelType": 1, | ||
| 596 | + "targetStatus": 0, | ||
| 597 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 598 | + "targetType": 13, | ||
| 599 | + "toUserContentAuthor": 0, | ||
| 600 | + "toUserName": "", | ||
| 601 | + "topFlag": 0, | ||
| 602 | + "topicType": null, | ||
| 603 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 604 | + "visitorComment": 1 | ||
| 605 | + }, { | ||
| 606 | + "authorLike": 0, | ||
| 607 | + "avatarFrame": "", | ||
| 608 | + "checkStatus": 2, | ||
| 609 | + "commentContent": "外婆企图", | ||
| 610 | + "commentContentSensitive": "", | ||
| 611 | + "commentLevel": 1, | ||
| 612 | + "commentPics": "", | ||
| 613 | + "commentSensitive": "", | ||
| 614 | + "commentType": "2", | ||
| 615 | + "contentAuthor": 0, | ||
| 616 | + "createTime": "2024-04-01 14:22:37", | ||
| 617 | + "creatorFlag": 0, | ||
| 618 | + "fromCreatorId": "", | ||
| 619 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 620 | + "fromUserId": "574444396143685", | ||
| 621 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 622 | + "fromUserType": 1, | ||
| 623 | + "h5Url": "", | ||
| 624 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 625 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 626 | + "id": 56792966, | ||
| 627 | + "likeNum": 0, | ||
| 628 | + "mySelf": 0, | ||
| 629 | + "pageId": null, | ||
| 630 | + "parentId": -1, | ||
| 631 | + "region": "安徽", | ||
| 632 | + "replyNum": 0, | ||
| 633 | + "rootCommentId": 56792966, | ||
| 634 | + "sensitiveExist": 0, | ||
| 635 | + "sensitiveShow": 1, | ||
| 636 | + "shareInfo": { | ||
| 637 | + "shareCoverUrl": "", | ||
| 638 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 639 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 640 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 641 | + }, | ||
| 642 | + "targetId": "30044115488", | ||
| 643 | + "targetRelId": "500005262017", | ||
| 644 | + "targetRelObjectId": "2003", | ||
| 645 | + "targetRelType": 1, | ||
| 646 | + "targetStatus": 0, | ||
| 647 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 648 | + "targetType": 13, | ||
| 649 | + "toUserContentAuthor": 0, | ||
| 650 | + "toUserName": "", | ||
| 651 | + "topFlag": 0, | ||
| 652 | + "topicType": null, | ||
| 653 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 654 | + "visitorComment": 1 | ||
| 655 | + }, { | ||
| 656 | + "authorLike": 0, | ||
| 657 | + "avatarFrame": "", | ||
| 658 | + "checkStatus": 2, | ||
| 659 | + "commentContent": "外婆企图", | ||
| 660 | + "commentContentSensitive": "", | ||
| 661 | + "commentLevel": 1, | ||
| 662 | + "commentPics": "", | ||
| 663 | + "commentSensitive": "", | ||
| 664 | + "commentType": "2", | ||
| 665 | + "contentAuthor": 0, | ||
| 666 | + "createTime": "2024-04-01 14:22:37", | ||
| 667 | + "creatorFlag": 0, | ||
| 668 | + "fromCreatorId": "", | ||
| 669 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 670 | + "fromUserId": "574444396143685", | ||
| 671 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 672 | + "fromUserType": 1, | ||
| 673 | + "h5Url": "", | ||
| 674 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 675 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 676 | + "id": 56792966, | ||
| 677 | + "likeNum": 0, | ||
| 678 | + "mySelf": 0, | ||
| 679 | + "pageId": null, | ||
| 680 | + "parentId": -1, | ||
| 681 | + "region": "安徽", | ||
| 682 | + "replyNum": 0, | ||
| 683 | + "rootCommentId": 56792966, | ||
| 684 | + "sensitiveExist": 0, | ||
| 685 | + "sensitiveShow": 1, | ||
| 686 | + "shareInfo": { | ||
| 687 | + "shareCoverUrl": "", | ||
| 688 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 689 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 690 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 691 | + }, | ||
| 692 | + "targetId": "30044115488", | ||
| 693 | + "targetRelId": "500005262017", | ||
| 694 | + "targetRelObjectId": "2003", | ||
| 695 | + "targetRelType": 1, | ||
| 696 | + "targetStatus": 0, | ||
| 697 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 698 | + "targetType": 13, | ||
| 699 | + "toUserContentAuthor": 0, | ||
| 700 | + "toUserName": "", | ||
| 701 | + "topFlag": 0, | ||
| 702 | + "topicType": null, | ||
| 703 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 704 | + "visitorComment": 1 | ||
| 705 | + }, { | ||
| 706 | + "authorLike": 0, | ||
| 707 | + "avatarFrame": "", | ||
| 708 | + "checkStatus": 2, | ||
| 709 | + "commentContent": "外婆企图", | ||
| 710 | + "commentContentSensitive": "", | ||
| 711 | + "commentLevel": 1, | ||
| 712 | + "commentPics": "", | ||
| 713 | + "commentSensitive": "", | ||
| 714 | + "commentType": "2", | ||
| 715 | + "contentAuthor": 0, | ||
| 716 | + "createTime": "2024-04-01 14:22:37", | ||
| 717 | + "creatorFlag": 0, | ||
| 718 | + "fromCreatorId": "", | ||
| 719 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 720 | + "fromUserId": "574444396143685", | ||
| 721 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 722 | + "fromUserType": 1, | ||
| 723 | + "h5Url": "", | ||
| 724 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 725 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 726 | + "id": 56792966, | ||
| 727 | + "likeNum": 0, | ||
| 728 | + "mySelf": 0, | ||
| 729 | + "pageId": null, | ||
| 730 | + "parentId": -1, | ||
| 731 | + "region": "安徽", | ||
| 732 | + "replyNum": 0, | ||
| 733 | + "rootCommentId": 56792966, | ||
| 734 | + "sensitiveExist": 0, | ||
| 735 | + "sensitiveShow": 1, | ||
| 736 | + "shareInfo": { | ||
| 737 | + "shareCoverUrl": "", | ||
| 738 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 739 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 740 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 741 | + }, | ||
| 742 | + "targetId": "30044115488", | ||
| 743 | + "targetRelId": "500005262017", | ||
| 744 | + "targetRelObjectId": "2003", | ||
| 745 | + "targetRelType": 1, | ||
| 746 | + "targetStatus": 0, | ||
| 747 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 748 | + "targetType": 13, | ||
| 749 | + "toUserContentAuthor": 0, | ||
| 750 | + "toUserName": "", | ||
| 751 | + "topFlag": 0, | ||
| 752 | + "topicType": null, | ||
| 753 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 754 | + "visitorComment": 1 | ||
| 755 | + }, { | ||
| 756 | + "authorLike": 0, | ||
| 757 | + "avatarFrame": "", | ||
| 758 | + "checkStatus": 2, | ||
| 759 | + "commentContent": "外婆企图", | ||
| 760 | + "commentContentSensitive": "", | ||
| 761 | + "commentLevel": 1, | ||
| 762 | + "commentPics": "", | ||
| 763 | + "commentSensitive": "", | ||
| 764 | + "commentType": "2", | ||
| 765 | + "contentAuthor": 0, | ||
| 766 | + "createTime": "2024-04-01 14:22:37", | ||
| 767 | + "creatorFlag": 0, | ||
| 768 | + "fromCreatorId": "", | ||
| 769 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 770 | + "fromUserId": "574444396143685", | ||
| 771 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 772 | + "fromUserType": 1, | ||
| 773 | + "h5Url": "", | ||
| 774 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 775 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 776 | + "id": 56792966, | ||
| 777 | + "likeNum": 0, | ||
| 778 | + "mySelf": 0, | ||
| 779 | + "pageId": null, | ||
| 780 | + "parentId": -1, | ||
| 781 | + "region": "安徽", | ||
| 782 | + "replyNum": 0, | ||
| 783 | + "rootCommentId": 56792966, | ||
| 784 | + "sensitiveExist": 0, | ||
| 785 | + "sensitiveShow": 1, | ||
| 786 | + "shareInfo": { | ||
| 787 | + "shareCoverUrl": "", | ||
| 788 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 789 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 790 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 791 | + }, | ||
| 792 | + "targetId": "30044115488", | ||
| 793 | + "targetRelId": "500005262017", | ||
| 794 | + "targetRelObjectId": "2003", | ||
| 795 | + "targetRelType": 1, | ||
| 796 | + "targetStatus": 0, | ||
| 797 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 798 | + "targetType": 13, | ||
| 799 | + "toUserContentAuthor": 0, | ||
| 800 | + "toUserName": "", | ||
| 801 | + "topFlag": 0, | ||
| 802 | + "topicType": null, | ||
| 803 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 804 | + "visitorComment": 1 | ||
| 805 | + }, { | ||
| 806 | + "authorLike": 0, | ||
| 807 | + "avatarFrame": "", | ||
| 808 | + "checkStatus": 2, | ||
| 809 | + "commentContent": "外婆企图", | ||
| 810 | + "commentContentSensitive": "", | ||
| 811 | + "commentLevel": 1, | ||
| 812 | + "commentPics": "", | ||
| 813 | + "commentSensitive": "", | ||
| 814 | + "commentType": "2", | ||
| 815 | + "contentAuthor": 0, | ||
| 816 | + "createTime": "2024-04-01 14:22:37", | ||
| 817 | + "creatorFlag": 0, | ||
| 818 | + "fromCreatorId": "", | ||
| 819 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 820 | + "fromUserId": "574444396143685", | ||
| 821 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 822 | + "fromUserType": 1, | ||
| 823 | + "h5Url": "", | ||
| 824 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 825 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 826 | + "id": 56792966, | ||
| 827 | + "likeNum": 0, | ||
| 828 | + "mySelf": 0, | ||
| 829 | + "pageId": null, | ||
| 830 | + "parentId": -1, | ||
| 831 | + "region": "安徽", | ||
| 832 | + "replyNum": 0, | ||
| 833 | + "rootCommentId": 56792966, | ||
| 834 | + "sensitiveExist": 0, | ||
| 835 | + "sensitiveShow": 1, | ||
| 836 | + "shareInfo": { | ||
| 837 | + "shareCoverUrl": "", | ||
| 838 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 839 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 840 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 841 | + }, | ||
| 842 | + "targetId": "30044115488", | ||
| 843 | + "targetRelId": "500005262017", | ||
| 844 | + "targetRelObjectId": "2003", | ||
| 845 | + "targetRelType": 1, | ||
| 846 | + "targetStatus": 0, | ||
| 847 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 848 | + "targetType": 13, | ||
| 849 | + "toUserContentAuthor": 0, | ||
| 850 | + "toUserName": "", | ||
| 851 | + "topFlag": 0, | ||
| 852 | + "topicType": null, | ||
| 853 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 854 | + "visitorComment": 1 | ||
| 855 | + }, { | ||
| 856 | + "authorLike": 0, | ||
| 857 | + "avatarFrame": "", | ||
| 858 | + "checkStatus": 2, | ||
| 859 | + "commentContent": "外婆企图", | ||
| 860 | + "commentContentSensitive": "", | ||
| 861 | + "commentLevel": 1, | ||
| 862 | + "commentPics": "", | ||
| 863 | + "commentSensitive": "", | ||
| 864 | + "commentType": "2", | ||
| 865 | + "contentAuthor": 0, | ||
| 866 | + "createTime": "2024-04-01 14:22:37", | ||
| 867 | + "creatorFlag": 0, | ||
| 868 | + "fromCreatorId": "", | ||
| 869 | + "fromUserHeader": "https://cdnjdphoto.aikan.pdnews.cn//zhbj/img/user/2024040114/133af3190cd84eb7a5e70c4c23071881.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg", | ||
| 870 | + "fromUserId": "574444396143685", | ||
| 871 | + "fromUserName": "人民日报网友2Ai3yZ", | ||
| 872 | + "fromUserType": 1, | ||
| 873 | + "h5Url": "", | ||
| 874 | + "highQualityExpireTime": "2024-04-15T18:26:05+0800", | ||
| 875 | + "highQualityTime": "2024-04-12T18:26:05+0800", | ||
| 876 | + "id": 56792966, | ||
| 877 | + "likeNum": 0, | ||
| 878 | + "mySelf": 0, | ||
| 879 | + "pageId": null, | ||
| 880 | + "parentId": -1, | ||
| 881 | + "region": "安徽", | ||
| 882 | + "replyNum": 0, | ||
| 883 | + "rootCommentId": 56792966, | ||
| 884 | + "sensitiveExist": 0, | ||
| 885 | + "sensitiveShow": 1, | ||
| 886 | + "shareInfo": { | ||
| 887 | + "shareCoverUrl": "", | ||
| 888 | + "shareSummary": "说话的艺术,说到底就是生活的艺术。", | ||
| 889 | + "shareTitle": "学会这三种说话方式,受益无穷", | ||
| 890 | + "shareUrl": "https://people.pdnews.cn/column/30044115488-500005262017" | ||
| 891 | + }, | ||
| 892 | + "targetId": "30044115488", | ||
| 893 | + "targetRelId": "500005262017", | ||
| 894 | + "targetRelObjectId": "2003", | ||
| 895 | + "targetRelType": 1, | ||
| 896 | + "targetStatus": 0, | ||
| 897 | + "targetTitle": "学会这三种说话方式,受益无穷", | ||
| 898 | + "targetType": 13, | ||
| 899 | + "toUserContentAuthor": 0, | ||
| 900 | + "toUserName": "", | ||
| 901 | + "topFlag": 0, | ||
| 902 | + "topicType": null, | ||
| 903 | + "uuid": "dcc25c99-8e27-42fc-aa29-861beec958f2", | ||
| 904 | + "visitorComment": 1 | ||
| 505 | }], | 905 | }], |
| 506 | "pageNum": 1, | 906 | "pageNum": 1, |
| 507 | "pageSize": 10, | 907 | "pageSize": 10, |
-
Please register or login to post a comment