yangsunyue_wd
Showing 50 changed files with 1988 additions and 139 deletions
... ... @@ -28,6 +28,6 @@ export const enum CompStyle {
ZhGrid_Layout_03 = 'Zh_Grid_Layout-03', //金刚位卡
Album_Card_01 = '17', //图卡集
Zh_Single_Row_04 = 'Zh_Single_Row-04', // 地方精选卡
CompStyle_09 = 9, // 时间链卡
CompStyle_10 = 10, // 大专题卡
CompStyle_09 = '9', // 时间链卡
CompStyle_10 = '10', // 大专题卡
}
... ...
... ... @@ -122,6 +122,14 @@ export class HttpUrlUtils {
*/
static readonly OTHER_USER_DETAIL_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/master/detail";
/**
* 个人中心 其他用户的评论列表
*/
static readonly OTHER_COMMENT_LIST_DATA_PATH: string = "/api/rmrb-comment/comment/zh/c/othersCommentList";
/**
* 个人中心 我的关注列表
*/
static readonly OTHER_USER_FOLLOW_LIST_DATA_PATH: string = "/api/rmrb-interact/interact/zh/c/userAttention/list";
/**
* 早晚报列表
* 根据页面id获取页面楼层列表
* https://pdapis.pdnews.cn/api/rmrb-bff-display-zh/display/zh/c/pageInfo?pageId=28927
... ... @@ -295,7 +303,7 @@ export class HttpUrlUtils {
return '8a81226a-cabd-3e1b-b630-b51db4a720ed';
}
private static getUserId() {
public static getUserId() {
// TODO 对接登录
let userid = SPHelper.default.getSync(SpConstants.USER_ID,"")
if(StringUtils.isNotEmpty(userid)) {
... ... @@ -414,6 +422,17 @@ export class HttpUrlUtils {
return url
}
static getOtherCommentListDataUrl() {
let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.OTHER_COMMENT_LIST_DATA_PATH
return url
}
static getOtherUserFollowListDataUrl() {
let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.OTHER_USER_FOLLOW_LIST_DATA_PATH
return url
}
static getYcgCommonHeaders(): HashMap<string, string> {
let headers: HashMap<string, string> = new HashMap<string, string>()
... ...
... ... @@ -23,7 +23,7 @@ export { Pic } from './src/main/ets/bean/content/Pic'
export { InteractDataDTO } from './src/main/ets/bean/content/InteractDataDTO';
export { InteractDataStatusDTO } from './src/main/ets/bean/detail/MultiPictureDetailPageDTO';
export { InteractDataStatusBean, PhotoListBean } from './src/main/ets/bean/detail/MultiPictureDetailPageDTO';
export { InteractParam, ContentBean } from './src/main/ets/bean/content/InteractParam';
... ... @@ -91,3 +91,4 @@ export { OperDataList } from './src/main/ets/bean/morningevening/OperDataList';
export { ShareInfo } from './src/main/ets/bean/morningevening/ShareInfo';
export { slideShows } from './src/main/ets/bean/morningevening/slideShows';
\ No newline at end of file
... ...
... ... @@ -2,6 +2,8 @@ import { FullColumnImgUrlDTO } from '../detail/FullColumnImgUrlDTO';
import { LiveInfoDTO } from '../detail/LiveInfoDTO';
import { VideoInfoDTO } from '../detail/VideoInfoDTO';
import { InteractDataDTO } from './InteractDataDTO';
import { slideShows } from '../morningevening/slideShows'
export interface ContentDTO {
cityCode: string;
... ... @@ -58,4 +60,7 @@ export interface ContentDTO {
// 二次请求接口,返回的数据,这里组装到content里;TODO 后续优化
interactData:InteractDataDTO;
hasMore: number,
slideShows: slideShows[]
}
\ No newline at end of file
... ...
... ... @@ -11,7 +11,7 @@ import { UserInfoDTO } from './UserInfoDTO'
* http://192.168.1.3:3300/project/3802/interface/api/200915
*/
export interface ContentDetailDTO {
newsId: string;
newsId: number;
newsTitle: string;
newsShortTitle: string;
newsDownTitle: string;
... ... @@ -42,8 +42,8 @@ export interface ContentDetailDTO {
videoInfo: VideoInfoDTO[];
liveInfo?: any;
voteInfo?: any;
rmhInfo?: RmhInfoDTO;
userInfo?: UserInfoDTO;
rmhInfo?: RmhInfoDTO | null;
userInfo?: UserInfoDTO | null;
openLikes: number;
openComment: number;
likesStyle: number;
... ... @@ -68,4 +68,7 @@ export interface ContentDetailDTO {
timeline?: any;
traceInfo: string;
viewCount: number;
isNewspaper: boolean;
oldNewsId: string;
serials: any;
}
\ No newline at end of file
... ...
... ... @@ -2,7 +2,7 @@ export interface FullColumnImgUrlDTO {
format?: any;
height: number;
landscape: number;
size: number;
size: number | null;
url: string;
weight: number;
}
... ...
... ... @@ -2,11 +2,19 @@
* 多图(图集)详情
* */
// 批量查询内容当前用户点赞、收藏状态
export interface InteractDataStatusDTO {
export interface InteractDataStatusBean {
contentId: string;
contentType: number;
contentRelId: string;
relType: number;
likeStatus: number;
collectStatus: number;
}
// 【图文、图集稿件正文图片】图片信息数组
export interface PhotoListBean {
height: number;
width: number;
picPath: string;
picDesc: number;
}
\ No newline at end of file
... ...
import { ReLInfo } from './ReLInfo';
export interface AudioDataList {
audioUrl: string;
coverUrl: string;
duration: number;
objectId: number;
objectType: number;
reLInfo: ReLInfo;
title: string;
}
\ No newline at end of file
... ...
import { AudioDataList } from './AudioDataList';
import { OperDataList } from './OperDataList';
export interface CompList {
// audioDataList: any[];
audioDataList: AudioDataList[];
backgroundImgUrl: string;
// bottomNavId?: any;
cardItemId: string;
// cardUpdateStrategy?: any;
compStyle: string;
compType: string;
dataSourceType: string;
expIds: string;
extraData: string;
// fullColumnImgUrls: any[];
hasMore: number;
id: number;
// imageScale?: any;
imgSize: string;
itemId: string;
itemType: string;
itemTypeCode: string;
linkUrl: string;
// localGovernance?: any;
name: string;
objectId: string;
... ... @@ -27,13 +33,16 @@ export interface CompList {
objectSummary: string;
objectTitle: string;
objectType: string;
// openComment?: any;
// openLikes?: any;
operDataList: OperDataList[];
pageId: string;
// position?: any;
posterSize: string;
posterUrl: string;
// questionSection?: any;
recommend: number;
relId: number;
... ... @@ -41,8 +50,10 @@ export interface CompList {
sortValue: number;
subSceneId: string;
summaryName: string;
// tabOperDataList: any[];
titleShowPolicy: number;
// topicTemplate?: any;
traceId: string;
traceInfo: string;
... ...
export interface ReLInfo {
channelId?: string;
relId: string;
relObjectId: number;
relType: string;
}
\ No newline at end of file
... ...
import { FullColumnImgUrlDTO } from '../detail/FullColumnImgUrlDTO';
export interface slideShows {
fullColumnImgUrls: FullColumnImgUrlDTO[];
linkUrl?: string;
newsId?: string;
newsTitle?: string;
newsTitleColor?: string;
objectLevel?: string;
objectType?: string;
pageId?: string;
photoNum?: string;
publishTime: number;
relId?: string;
source?: string;
timeBlurred?: string;
videoDuration?: string;
videoLandscape?: string;
videoUrl?: string;
voiceDuration?: string;
}
\ No newline at end of file
... ...
... ... @@ -13,6 +13,7 @@
"wdBean": "file:../../features/wdBean",
"wdRouter": "file:../../commons/wdRouter",
"wdNetwork": "file:../../commons/wdNetwork",
"wdPlayer": "file:../../features/wdPlayer",
"wdLogin": "file:../../features/wdLogin"
}
}
... ...
import { CompDTO, ContentDTO } from 'wdBean';
import { CompDTO, ContentDTO , slideShows} from 'wdBean';
import { CommonConstants, CompStyle } from 'wdConstant';
import { BannerComponent } from './view/BannerComponent';
import { LabelComponent } from './view/LabelComponent';
... ... @@ -16,10 +16,10 @@ import {
import {
HorizontalStrokeCardThreeTwoRadioForOneComponent
} from './view/HorizontalStrokeCardThreeTwoRadioForOneComponent';
import {
HorizontalStrokeCardThreeTwoRadioForTwoComponent
} from './view/HorizontalStrokeCardThreeTwoRadioForTwoComponent';
import { AlbumCardComponent } from './view/AlbumCardComponent';
import { ZhSingleRow04 } from './view/ZhSingleRow04'
import { CompStyle_09 } from './view/CompStyle_09'
import { CompStyle_10 } from './view/CompStyle_10'
/**
* comp适配器.
... ... @@ -126,8 +126,12 @@ export struct CompParser {
ZhGridLayoutComponent({ compDTO: compDTO })
} else if (compDTO.compStyle === CompStyle.Album_Card_01) {
AlbumCardComponent({ compDTO: compDTO })
} else if (compDTO.compStyle === CompStyle.Single_Row_02) {
} else if (compDTO.compStyle === CompStyle.Zh_Single_Row_04) {
ZhSingleRow04({ compDTO: compDTO})
} else if (compDTO.compStyle === CompStyle.CompStyle_09) {
CompStyle_09({ compDTO: compDTO})
} else if (compDTO.compStyle === CompStyle.CompStyle_10) {
CompStyle_10({ compDTO: compDTO})
}
else {
// todo:组件未实现 / Component Not Implemented
... ...
import { AudioDTO } from 'wdBean';
import { Logger } from 'wdKit/Index';
/**
* 早晚报页面音频bar
*/
@Entry
// @Entry
@Component
export struct AudioBarView {
@State audioDataList?: AudioDTO[] = []
@Consume isAudioPlaying?: boolean
aboutToAppear() {
}
... ... @@ -45,6 +47,11 @@ export struct AudioBarView {
.height(24)
.margin({ left: 10 })// .alignSelf(ItemAlign.Center)
.objectFit(ImageFit.Contain)
.onClick(() => {
Logger.info("TAG", "cj compInfoBean onClick1 = " + this.isAudioPlaying)
this.isAudioPlaying = !this.isAudioPlaying
Logger.info("TAG", "cj compInfoBean onClick2 = " + this.isAudioPlaying)
})
}
// .aspectRatio(7 / 4)
.height('100%')
... ...
// import { FrontLinkObject, MorningEveningPaperDTO, PageInfoBean } from 'wdBean';
import { CompList, PageInfoBean } from 'wdBean';
import { DateTimeUtils, Logger } from 'wdKit/Index';
import { PaperReaderSimpleDialog } from '../../dialog/PaperReaderDialog';
import { MorningEveningViewModel } from '../../viewmodel/MorningEveningViewModel';
import { AudioBarView } from './AudioBarView';
// import { AudioBarView } from './AudioBarView';
import { PaperTitleComponent } from './PaperTitleComponent';
import { SingleColumn999Component } from './SingleColumn999Component';
import { topicInfoView } from './topicInfoView';
import { WDPlayerController } from 'wdPlayer';
const TAG = 'MorningEveningPaperComponent';
... ... @@ -17,6 +19,7 @@ export struct MorningEveningPaperComponent {
@State pageInfoBean: PageInfoBean = {} as PageInfoBean
// @State compInfoBean: CompInfoBean = {} as CompInfoBean
@State compListItem: CompList = {} as CompList
@State audioPlayUrl: string = ""
// @Provide compListItem: CompList = {} as CompList
// @State morningEveningPaperDTO: MorningEveningPaperDTO = {
// name: "新闻夜读",
... ... @@ -36,6 +39,16 @@ export struct MorningEveningPaperComponent {
// } as MorningEveningPaperDTO
@Provide title: string = ''
@Provide subTitle: string = ''
@Provide isAudioPlaying: boolean = false
private playerController: WDPlayerController = new WDPlayerController();
private xComponentController: XComponentController = new XComponentController();
simpleAudioDialog: CustomDialogController = new CustomDialogController({
builder: PaperReaderSimpleDialog(),
autoCancel: false,
customStyle: true,
alignment: DialogAlignment.CenterStart,
offset: { dx: 12, dy: -150 }
})
async aboutToAppear() {
console.info(TAG, `aboutToAppear`)
... ... @@ -44,7 +57,7 @@ export struct MorningEveningPaperComponent {
Logger.info(TAG, "currentTime = " + currentTime)
Logger.info(TAG, `currentTime = ${currentTime}`)
try {
let pageInfoBean = await MorningEveningViewModel.getMorningEveningPageInfo("28949")
let pageInfoBean = await MorningEveningViewModel.getMorningEveningPageInfo("25091")
this.pageInfoBean = pageInfoBean;
this.title = this.pageInfoBean?.topicInfo?.title
let dateTime = DateTimeUtils.parseDate(this.pageInfoBean?.topicInfo?.topicDate ?? '', DateTimeUtils.PATTERN_DATE_HYPHEN);
... ... @@ -59,9 +72,13 @@ export struct MorningEveningPaperComponent {
// this.compInfoBean = compInfoBean
if (compInfoBean?.compList[0]) {
this.compListItem = compInfoBean?.compList[0]
if (compInfoBean?.compList[0].audioDataList) {
this.audioPlayUrl = compInfoBean?.compList[0].audioDataList[0].audioUrl
}
}
Logger.info(TAG, "compInfoBean compStyle = " + compInfoBean.compList[0].compStyle)
} catch (exception) {
}
... ... @@ -77,12 +94,15 @@ export struct MorningEveningPaperComponent {
}
ListItem() {
AudioBarView()
this.AudioBarView(this.simpleAudioDialog)
}
}
ListItem() {
SingleColumn999Component({ compListItem: this.compListItem }).margin({ top: $r('app.float.top_bar_height') })
SingleColumn999Component({ compListItem: this.compListItem })
.margin({
top: this.pageInfoBean?.topicInfo?.frontLinkObject ? 10 : 44
})
}
}
// .backgroundColor('#FFF1F3F5')
... ... @@ -104,4 +124,63 @@ export struct MorningEveningPaperComponent {
// .backgroundColor(Color.Black)
.backgroundColor(this.pageInfoBean?.backgroundColor ?? Color.Black)
}
@Builder
AudioBarView(dialog: CustomDialogController) {
Row() {
Stack({ alignContent: Alignment.Start }) {
Image($r('app.media.listen_left_bg'))
.width('100%')
.height('100%')
.objectFit(ImageFit.Contain)
Image($r('app.media.icon_listen'))
.width(24)
.height(24)
.margin({ left: 10 })
.alignSelf(ItemAlign.Start)
Text('晚上好, 请收听今日新闻播报')
.fontSize(14)
.margin({ left: 50 })
.fontColor(Color.Black)
.maxLines(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
}
.layoutWeight(1)
.height('100%')
Stack({ alignContent: Alignment.Center }) {
Image($r('app.media.listen_right_bg'))
.width('100%')
.height('100%')
.objectFit(ImageFit.Contain)
Image($r('app.media.ic_red_triangle'))
.width(24)
.height(24)
.margin({ left: 10 })// .alignSelf(ItemAlign.Center)
.objectFit(ImageFit.Contain)
.onClick(() => {
Logger.info("TAG", "cj compInfoBean onClick1 = " + this.isAudioPlaying)
dialog.open()
this.playerController.firstPlay(this.audioPlayUrl)
Logger.info("TAG", "cj compInfoBean onClick2 = " + this.isAudioPlaying)
})
}
// .aspectRatio(7 / 4)
.height('100%')
// .justifyContent(FlexAlign.Center)
// .width(94)
// .width(140)
.width('20%')
// .height(56)
.onClick(() => {
// console.info(TAG, `onClick listen_right_bg`);
})
}
// .width('100%')
.height(56)
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.SpaceBetween)
}
}
\ No newline at end of file
... ...
import { PhotoListBean } from 'wdBean';
@Component
export struct MultiPictureDetailItemComponent {
private newsTitle: string = '';
private MultiPictureDetailItem: PhotoListBean = {} as PhotoListBean
build() {
Stack() {
Image(this.MultiPictureDetailItem.picPath)
.width('100%')
.aspectRatio(this.MultiPictureDetailItem.width / this.MultiPictureDetailItem.height)
.objectFit(ImageFit.Fill)
}
.backgroundColor(Color.Black)
.width('100%')
}
}
\ No newline at end of file
... ...
import { Logger } from 'wdKit';
import { ContentDetailDTO } from 'wdBean';
import { ContentDetailDTO, PhotoListBean } from 'wdBean';
import { MultiPictureDetailViewModel } from '../viewmodel/MultiPictureDetailViewModel';
import display from '@ohos.display';
import font from '@ohos.font';
import { OperRowListView } from './view/OperRowListView';
import { MultiPictureDetailItemComponent } from './MultiPictureDetailItemComponent';
const TAG = 'MultiPictureDetailPageComponent';
@Preview
@Component
export struct MultiPictureDetailPageComponent {
private displayTool = display.getDefaultDisplaySync()
... ... @@ -15,7 +18,7 @@ export struct MultiPictureDetailPageComponent {
@State relId: string = '500005189942'
@State contentId: string = '30043715146'
@State relType: string = '1'
@State contentDetailData: ContentDetailDTO[] = [{}] as ContentDetailDTO[]
@State contentDetailData: ContentDetailDTO[] = [] as ContentDetailDTO[]
@Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01'
private swiperController: SwiperController = new SwiperController()
@State swiperIndex: number = 0;
... ... @@ -48,30 +51,43 @@ export struct MultiPictureDetailPageComponent {
build() {
RelativeContainer() {
if (this.contentDetailData && this.contentDetailData.length > 0) {
if (this.contentDetailData && this.contentDetailData.length > 0 && this.contentDetailData[0].photoList && this.contentDetailData[0].photoList?.length > 0) {
Swiper(this.swiperController) {
ForEach(this.contentDetailData, (item: ContentDetailDTO, index: number) => {
// ENewspaperItemComponent({ newspaperListItemBean: item })
ForEach(this.contentDetailData[0].photoList, (item: PhotoListBean, index: number) => {
MultiPictureDetailItemComponent({ MultiPictureDetailItem: item })
})
}
.index(this.swiperIndex)
.width('100%')
.height(px2vp(this.picHeight) + 32)
.vertical(true)
.vertical(false)
.autoPlay(false)
.cachedCount(3)
.indicator(false)
.displayCount(1)
.margin({ top: 35, left: 10, right: 10 })
.id('e_newspaper_content')
.id('e_swiper_content')
.alignRules({
top: { anchor: "e_newspaper_top", align: VerticalAlign.Bottom },
top: { anchor: "__container__", align: VerticalAlign.Top },
middle: { anchor: "__container__", align: HorizontalAlign.Center }
})
.onChange((index: number) => {
this.swiperIndex = index
})
}}
}
OperRowListView()
.alignRules({
bottom: { anchor: "__container__", align: VerticalAlign.Bottom },
middle: { anchor: "__container__", align: HorizontalAlign.Center }
})
.width('100%')
.height(56)
.border({ width: {top: 0.5}, color: '#FFFFFF' })
.id('e_oper_row')
}
.width('100%')
.height('100%')
.backgroundColor(Color.Black)
.id('e_picture_container')
}
private async getContentDetailData() {
... ...
import { Params } from 'wdBean';
import { LazyDataSource, StringUtils } from 'wdKit';
import { WDRouterPage, WDRouterRule } from 'wdRouter';
import MinePageDatasModel from '../../../model/MinePageDatasModel';
import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem'
import { FollowListDetailRequestItem } from '../../../viewmodel/FollowListDetailRequestItem';
... ... @@ -72,7 +74,7 @@ export struct FollowListDetailUI{
this.hasMore = false
}else{
value.list.forEach((value)=>{
this.data.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1"))
this.data.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1",value.attentionUserId))
})
this.data.notifyDataReload()
this.count = this.data.totalCount()
... ... @@ -90,9 +92,6 @@ export struct FollowListDetailUI{
}
}else{
if(this.hasMore){
if(this.creatorDirectoryId === 120){
console.log("console");
}
let object = new FollowListDetailRequestItem(this.creatorDirectoryId,20,this.curPageNum)
MinePageDatasModel.getFollowListDetailData(object,getContext(this)).then((value)=>{
... ... @@ -115,7 +114,7 @@ export struct FollowListDetailUI{
let data : FollowListDetailItem[] = []
value.list.forEach((item)=>{
status.creatorIds.push(new QueryListIsFollowedItem(item.creatorId))
data.push(new FollowListDetailItem(item.headPhotoUrl,item.cnUserName,item.cnFansNum,item.introduction,item.creatorId,"0"))
data.push(new FollowListDetailItem(item.headPhotoUrl,item.cnUserName,item.cnFansNum,item.introduction,item.creatorId,"0",item.attentionUserId))
})
MinePageDatasModel.getFollowListStatusData(status,getContext(this)).then((newValue)=>{
... ... @@ -128,7 +127,7 @@ export struct FollowListDetailUI{
})
data.forEach((item)=>{
this.data.push(new FollowListDetailItem(item.headPhotoUrl,item.cnUserName,item.cnFansNum,item.introduction,item.creatorId,item.status))
this.data.push(new FollowListDetailItem(item.headPhotoUrl,item.cnUserName,item.cnFansNum,item.introduction,item.creatorId,item.status,item.attentionUserId))
})
this.data.notifyDataReload()
... ... @@ -233,5 +232,11 @@ struct ChildComponent {
}.height('146lpx')
.justifyContent(FlexAlign.Center)
.onClick(()=>{
let params: Params = {
pageID: this.data.attentionUserId
}
WDRouterRule.jumpWithPage(WDRouterPage.otherNormalUserHomePagePage,params)
})
}
}
\ No newline at end of file
... ...
... ... @@ -154,7 +154,7 @@ export struct HomePageBottomComponent{
this.hasMore = false
}else{
value.list.forEach((value)=>{
this.data_follow.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1"))
this.data_follow.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1",value.attentionUserId))
})
this.data_follow.notifyDataReload()
this.count = this.data_follow.totalCount()
... ... @@ -179,7 +179,7 @@ export struct HomePageBottomComponent{
this.hasMore = false
}else{
value.list.forEach((value)=>{
this.data_comment.push(new CommentListItem(value.fromUserHeader,value.fromUserName,value.targetTitle,value.createTime,value.commentContent))
this.data_comment.push(new CommentListItem(value.fromUserHeader,value.fromUserName,value.targetTitle,value.createTime,value.commentContent,value.likeNum,0,value.id))
})
this.data_comment.notifyDataReload()
this.count = this.data_comment.totalCount()
... ...
import { DateTimeUtils, LazyDataSource } from 'wdKit';
import MinePageDatasModel from '../../../model/MinePageDatasModel';
import { CommentListItem } from '../../../viewmodel/CommentListItem';
import { OtherUserCommentListRequestItem } from '../../../viewmodel/OtherUserCommentListRequestItem';
import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';
import { MineCommentListDetailItem } from '../../../viewmodel/MineCommentListDetailItem';
import { OtherUserCommentLikeStatusRequestItem } from '../../../viewmodel/OtherUserCommentLikeStatusRequestItem';
const TAG = "HomePageBottomComponent"
@Component
export struct OtherHomePageBottomCommentComponent{
@Prop curUserId: string
@State data_comment: LazyDataSource<CommentListItem> = new LazyDataSource();
@State isLoading:boolean = false
@State hasMore:boolean = true
curPageNum:number = 1;
@State count:number = 0;
@Prop levelHead:string
aboutToAppear(){
this.getNewPageData()
}
build(){
Column(){
Divider().width('100%')
.height('2lpx')
.strokeWidth('1lpx')
.backgroundColor($r('app.color.color_EDEDED'))
if(this.count === 0){
ListHasNoMoreDataUI({style:2})
.height('100%')
}else{
List({ space: 3 }) {
LazyForEach(this.data_comment, (item: CommentListItem, index: number = 0) => {
ListItem() {
ChildCommentComponent({data: item,levelHead:this.levelHead})
}
.onClick(() => {
})
}, (item: CommentListItem, index: number) => index.toString())
//没有更多数据 显示提示
if(!this.hasMore){
ListItem(){
ListHasNoMoreDataUI()
}
}
}.cachedCount(15)
.layoutWeight(1)
.scrollBar(BarState.Off)
.edgeEffect(EdgeEffect.None)
.nestedScroll({
scrollForward: NestedScrollMode.PARENT_FIRST,
scrollBackward: NestedScrollMode.SELF_FIRST
})
.onReachEnd(()=>{
console.log(TAG,"触底了");
if(!this.isLoading){
this.isLoading = true
//加载分页数据
this.getNewPageData()
}
})
}
}
.width('100%')
}
@Styles
listStyle() {
.backgroundColor(Color.White)
.height(72)
.width("100%")
.borderRadius(12)
}
getNewPageData(){
this.isLoading = true
if(this.hasMore){
let time = encodeURI(DateTimeUtils.getCurDate(DateTimeUtils.PATTERN_DATE_TIME_HYPHEN))
let object = new OtherUserCommentListRequestItem("",20,this.curPageNum,time,"1",this.curUserId)
MinePageDatasModel.getOtherCommentListData(object,getContext(this)).then((value)=>{
if (!this.data_comment || value.list.length == 0){
this.hasMore = false
}else{
this.getFollowListStatus(value)
}
}).catch((err:Error)=>{
console.log(TAG,"请求失败")
this.isLoading = false
})
}
}
getFollowListStatus(value:MineCommentListDetailItem){
let status = new OtherUserCommentLikeStatusRequestItem()
let data : CommentListItem[] = []
value.list.forEach((item)=>{
status.commentIdList.push(item.id)
data.push(new CommentListItem(item.fromUserHeader,item.fromUserName,item.targetTitle,item.createTime,item.commentContent,item.likeNum,0,item.id))
})
MinePageDatasModel.getOtherUserCommentLikeStatusData(status,getContext(this)).then((newValue)=>{
newValue.forEach((item)=>{
data.forEach((list)=>{
if (item.commentId == list.id) {
list.like_status = item.status
}
})
})
data.forEach((item)=>{
this.data_comment.push(new CommentListItem(item.fromUserHeader,item.fromUserName,item.targetTitle,item.createTime,item.commentContent,item.likeNum,item.like_status,item.id))
})
this.data_comment.notifyDataReload()
this.count = this.data_comment.totalCount()
if (this.data_comment.totalCount() < value.totalCount) {
this.curPageNum++
}else {
this.hasMore = false
}
this.isLoading = false
}).catch((err:Error)=>{
console.log(TAG,"请求失败")
this.isLoading = false
})
}
}
@Component
struct ChildCommentComponent {
@ObjectLink data: CommentListItem
@Prop levelHead:string
build() {
Column(){
Row() {
Stack(){
Image(this.data.fromUserHeader)
.alt($r('app.media.default_head'))
.objectFit(ImageFit.Auto)
.width('69lpx')
.height('69lpx')
.margin({right:'15lpx'})
.borderRadius(50)
Image(this.levelHead)
.width('89lpx')
.height('89lpx')
.objectFit(ImageFit.Cover)
.borderRadius(50)
}
Column(){
Text(this.data.fromUserName)
.fontSize('25lpx')
.lineHeight('35lpx')
.fontWeight('600lpx')
.fontColor($r('app.color.color_222222'))
.margin({bottom:'6lpx'})
.maxLines(1)
Text(`${this.data.createTime}`)
.fontColor($r('app.color.color_B0B0B0'))
.fontSize('23lpx')
.lineHeight('31lpx')
.fontWeight('400lpx')
.maxLines(1)
}.layoutWeight(1)
.alignItems(HorizontalAlign.Start)
Row(){
Text(this.data.likeNum.toString())
.fontWeight("500lpx")
.fontSize("27lpx")
.lineHeight("31lpx")
.fontColor(this.data.like_status===0?$r('app.color.color_666666'):$r('app.color.color_ED2800'))
.margin({right:'8lpx'})
Image(this.data.like_status===0?$r('app.media.like_default_status'):$r('app.media.liked_status'))
.width('31lpx')
.height('31lpx')
.objectFit(ImageFit.Auto)
.interpolation(ImageInterpolation.Medium)
.borderRadius(50)
}
}
.margin({bottom:'10lpx'})
.width('100%')
.height('108lpx')
.padding({left:'31lpx',right:'31lpx'})
Row(){
Text(this.data.commentContent)
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.fontWeight('400lpx')
.fontSize('31lpx')
.lineHeight('46lpx')
.fontColor($r('app.color.color_222222'))
.margin({bottom:'10lpx'})
}.padding({left:'31lpx',right:'31lpx'})
.width('100%')
Row(){
Text(this.data.targetTitle)
.fontWeight('400lpx')
.fontColor($r('app.color.color_222222'))
.lineHeight('38lpx')
.fontSize('27lpx')
.textAlign(TextAlign.Center)
.margin({right:'4lpx'})
.maxLines(3)
.width('616lpx')
Image($r('app.media.arrow_icon_right'))
.objectFit(ImageFit.Auto)
.width('27lpx')
.height('27lpx')
}
.padding({top:'17lpx',bottom:'17lpx',left:'23lpx',right:'23lpx'})
.width('662lpx')
.backgroundColor($r('app.color.color_F5F5F5'))
.margin({top:'19lpx',bottom:'31lpx'})
Divider().width('100%')
.height('12lpx')
.strokeWidth('12lpx')
.backgroundColor($r('app.color.color_F5F5F5'))
}
.justifyContent(FlexAlign.Center)
}
}
\ No newline at end of file
... ...
import { Params } from 'wdBean';
import { LazyDataSource, StringUtils } from 'wdKit';
import { WDRouterRule, WDRouterPage } from 'wdRouter';
import MinePageDatasModel from '../../../model/MinePageDatasModel';
import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem';
import { FollowListDetailRequestItem } from '../../../viewmodel/FollowListDetailRequestItem';
import { UserFollowListRequestItem } from '../../../viewmodel/UserFollowListRequestItem';
import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';
const TAG = "HomePageBottomComponent"
@Component
export struct OtherHomePageBottomFollowComponent{
@State data_follow: LazyDataSource<FollowListDetailItem> = new LazyDataSource();
@State isLoading:boolean = false
@State hasMore:boolean = true
curPageNum:number = 1;
@State count:number = 0;
@Prop curUserId: string
aboutToAppear(){
this.getNewPageData()
}
build(){
Column(){
Divider().width('100%')
.height('2lpx')
.strokeWidth('1lpx')
.backgroundColor($r('app.color.color_EDEDED'))
if(this.count === 0){
ListHasNoMoreDataUI({style:2})
.height('100%')
}else{
List({ space: 3 }) {
ListItem() {
Row(){
Text("关注更多人民号")
.fontWeight('400lpx')
.fontColor($r('app.color.color_222222'))
.lineHeight('38lpx')
.fontSize('27lpx')
.textAlign(TextAlign.Center)
.margin({right:'4lpx'})
Image($r('app.media.arrow_icon_right'))
.objectFit(ImageFit.Auto)
.width('27lpx')
.height('27lpx')
}.height('69lpx')
.width('659lpx')
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.Center)
.backgroundColor($r('app.color.color_F5F5F5'))
.margin({top:'31lpx',bottom:'4lpx'})
}.onClick(()=>{
let params: Params = {
pageID: "1"
}
WDRouterRule.jumpWithPage(WDRouterPage.followListPage,params)
})
LazyForEach(this.data_follow, (item: FollowListDetailItem, index: number = 0) => {
ListItem() {
ChildFollowComponent({data: item})
}
.onClick(() => {
})
}, (item: FollowListDetailItem, index: number) => index.toString())
//没有更多数据 显示提示
if(!this.hasMore){
ListItem(){
ListHasNoMoreDataUI()
}
}
}.cachedCount(15)
.padding({left:'31lpx',right:'31lpx'})
.layoutWeight(1)
.scrollBar(BarState.Off)
.edgeEffect(EdgeEffect.None)
.nestedScroll({
scrollForward: NestedScrollMode.PARENT_FIRST,
scrollBackward: NestedScrollMode.SELF_FIRST
})
.onReachEnd(()=>{
console.log(TAG,"触底了");
if(!this.isLoading){
this.isLoading = true
//加载分页数据
this.getNewPageData()
}
})
}
}
.width('100%')
}
@Styles
listStyle() {
.backgroundColor(Color.White)
.height(72)
.width("100%")
.borderRadius(12)
}
getNewPageData(){
this.isLoading = true
//我的关注列表
if(this.hasMore){
let object = new UserFollowListRequestItem(Number(this.curUserId),20,this.curPageNum,"1")
MinePageDatasModel.getOtherUserFollowListData(object,getContext(this)).then((value)=>{
if (!this.data_follow || value.list.length == 0){
this.hasMore = false
}else{
value.list.forEach((value)=>{
this.data_follow.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1",value.attentionUserId))
})
this.data_follow.notifyDataReload()
this.count = this.data_follow.totalCount()
if (this.data_follow.totalCount() < value.totalCount) {
this.curPageNum++
}else {
this.hasMore = false
}
}
this.isLoading = false
}).catch((err:Error)=>{
console.log(TAG,"请求失败")
this.isLoading = false
})
}
}
}
@Component
struct ChildFollowComponent {
@ObjectLink data: FollowListDetailItem
build() {
Column(){
Blank().height('27lpx')
Row() {
Image(StringUtils.isEmpty(this.data.headPhotoUrl)?$r('app.media.default_head'):this.data.headPhotoUrl)
.objectFit(ImageFit.Auto)
.width('92lpx')
.height('92lpx')
.margin({right:'15lpx'})
Column(){
Text(this.data.cnUserName)
.fontWeight('400lpx')
.fontSize('31lpx')
.lineHeight('38lpx')
.fontColor($r('app.color.color_222222'))
Text(`粉丝${this.data.cnFansNum}`)
.fontColor($r('app.color.color_B0B0B0'))
.fontSize('23lpx')
.maxLines(1)
Text(`${this.data.introduction}`)
.fontColor($r('app.color.color_B0B0B0'))
.fontSize('23lpx')
.maxLines(2)
.textOverflow({ overflow: TextOverflow.Ellipsis })
}.layoutWeight(1)
.alignItems(HorizontalAlign.Start)
if(this.data.status == "1"){
Row(){
Text(`已关注`)
.fontColor($r('app.color.color_CCCCCC'))
.fontSize('23lpx')
.fontWeight('500lpx')
.lineHeight('35lpx')
}.backgroundColor($r('app.color.color_F5F5F5'))
.borderRadius('6lpx')
.borderColor($r('app.color.color_F5F5F5'))
.borderWidth('2lpx')
.justifyContent(FlexAlign.Center)
.width('100lpx')
.height('46lpx')
.margin({left:'4lpx',top:'23lpx'})
.onClick(()=>{
this.data.status = "0"
})
}else{
Row(){
Image($r('app.media.follow_icon'))
.margin({right:'4lpx'})
.width('23lpx')
.height('23lpx')
Text(`关注`)
.fontColor($r('app.color.color_ED2800'))
.fontSize('23lpx')
.fontWeight('500lpx')
.lineHeight('35lpx')
}.borderColor($r('app.color.color_1AED2800'))
.borderRadius('6lpx')
.borderWidth('2lpx')
.justifyContent(FlexAlign.Center)
.width('100lpx')
.height('46lpx')
.margin({left:'4lpx',top:'23lpx'})
.onClick(()=>{
this.data.status = "1"
})
}
}.alignItems(VerticalAlign.Top)
.width('100%')
.layoutWeight(1)
Divider().width('100%')
.height('2lpx')
.strokeWidth('1lpx')
.backgroundColor($r('app.color.color_EDEDED'))
}.height('146lpx')
.justifyContent(FlexAlign.Center)
}
}
\ No newline at end of file
... ...
import { CompDTO, slideShows } from 'wdBean';
import { CommonConstants } from 'wdConstant'
import { DateTimeUtils } from 'wdKit';
/**
* 时间链卡--CompStyle: 09
*/
@Component
export struct CompStyle_09 {
@State compDTO: CompDTO = {} as CompDTO
build() {
Column(){
// 顶部标题,最多两行
if(this.compDTO.operDataList[0].newsTitle) {
Text(this.compDTO.operDataList[0].newsTitle)
.width(CommonConstants.FULL_WIDTH)
.fontSize($r('app.float.font_size_17'))
.fontWeight(600)
.maxLines(2)
.textOverflow({overflow: TextOverflow.Ellipsis})
.margin({ bottom: 19 })
}
// 大图
Image(this.compDTO.operDataList[0].coverUrl)
.width('100%')
// 时间线--后端返回三个,
Column(){
ForEach(this.compDTO.operDataList[0].slideShows, (item:slideShows, index:number) => {
this.timelineItem(item, index)
})
}
// 底部-查看更多。根据接口返回的isMore判断是否显示查看更多
if(this.compDTO.operDataList[0].hasMore == 1) {
Row() {
Text("查看更多")
.fontSize($r("app.float.font_size_14"))
.fontColor($r("app.color.color_222222"))
.margin({ right: 1 })
Image($r("app.media.more"))
.width(14)
.height(14)
}
.backgroundColor($r('app.color.color_F5F5F5'))
.width(CommonConstants.FULL_WIDTH)
.height(40)
.borderRadius(3)
.justifyContent(FlexAlign.Center)
.margin({top: 5})
.onClick(() => {
// TODO
console.log('跳转到查看更多的页面')
})
}
}
.width(CommonConstants.FULL_WIDTH)
.padding({
top: 14,
left: 16,
right: 16,
bottom: 14
})
.backgroundColor($r("app.color.white"))
.margin({ bottom: 8 })
}
@Builder timelineItem (item:slideShows, index:number) {
Column(){
Stack() {
if(index < this.compDTO.operDataList[0].slideShows.length - 1) {
Line()
.width(1)
.startPoint([4, index > 0 ? 0 : 20])
.endPoint([4, 100])
.stroke($r('app.color.color_EDEDED'))
.strokeWidth(1)
.strokeLineCap(LineCapStyle.Butt)
}
Column(){
Row() {
// 标题
Image($r("app.media.point_icon"))
.width(9)
.height(6)
.margin({ right: 5 })
Text(DateTimeUtils.formatDate(item.publishTime, "MM月dd日 HH:mm"))
.fontSize($r('app.float.font_size_12'))
.fontColor($r('app.color.color_222222'))
.fontWeight(600)
}
.width(CommonConstants.FULL_WIDTH)
.height(32)
Row() {
Text(item.newsTitle)
.fontSize($r('app.float.font_size_17'))
.fontWeight(400)
.fontColor($r('app.color.color_222222'))
.layoutWeight(1)
.maxLines(2)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.alignSelf(ItemAlign.Center)
.margin({left: 12})
if(item.fullColumnImgUrls[0] && item.fullColumnImgUrls[0].url) {
Image(item.fullColumnImgUrls[0].url)
.width(90)
.height(60)
.borderRadius(4)
}
}
}
}
.alignContent(Alignment.Start)
}
.height(item.fullColumnImgUrls[0] && item.fullColumnImgUrls[0].url ? 100 : 78)
}
}
\ No newline at end of file
... ...
import { CompDTO, slideShows } from 'wdBean';
import { CommonConstants } from 'wdConstant'
import { DateTimeUtils } from 'wdKit';
/**
* 大专题卡--CompStyle: 10
*/
@Component
export struct CompStyle_10 {
@State compDTO: CompDTO = {} as CompDTO
build() {
Column(){
// 顶部标题,最多两行
if(this.compDTO.operDataList[0].newsTitle) {
Text(this.compDTO.operDataList[0].newsTitle)
.width(CommonConstants.FULL_WIDTH)
.fontSize($r('app.float.font_size_17'))
.fontWeight(600)
.maxLines(2)
.textOverflow({overflow: TextOverflow.Ellipsis})
.margin({ bottom: 19 })
}
// 大图
Image(this.compDTO.operDataList[0].coverUrl)
.width('100%')
// 专题列表--后端返回三个,
Column(){
ForEach(this.compDTO.operDataList[0].slideShows, (item:slideShows, index:number) => {
this.timelineItem(item, index)
})
}
// 底部-查看更多。根据接口返回的isMore判断是否显示查看更多
if(this.compDTO.operDataList[0].hasMore == 1) {
Row() {
Text("查看更多")
.fontSize($r("app.float.font_size_14"))
.fontColor($r("app.color.color_222222"))
.margin({ right: 1 })
Image($r("app.media.more"))
.width(14)
.height(14)
}
.backgroundColor($r('app.color.color_F5F5F5'))
.width(CommonConstants.FULL_WIDTH)
.height(40)
.borderRadius(3)
.justifyContent(FlexAlign.Center)
.margin({top: 5})
.onClick(() => {
// TODO
console.log('跳转到查看更多的页面')
})
}
}
.width(CommonConstants.FULL_WIDTH)
.padding({
top: 14,
left: 16,
right: 16,
bottom: 14
})
.backgroundColor($r("app.color.white"))
.margin({ bottom: 8 })
}
@Builder timelineItem (item:slideShows, index:number) {
Column(){
Row() {
Column(){
Text(item.newsTitle)
.fontSize($r('app.float.font_size_17'))
.fontWeight(400)
.fontColor($r('app.color.color_222222'))
.maxLines(2)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.alignSelf(ItemAlign.Center)
Row(){
// 展示发稿人
Text(item.source)
.fontSize($r('app.float.font_size_12'))
.fontColor($r('app.color.color_B0B0B0'))
.layoutWeight(1)
.textOverflow({overflow: TextOverflow.Ellipsis})
.maxLines(1)
Image($r('app.media.point'))
.width(16)
.height(16)
Text(DateTimeUtils.getCommentTime(Number.parseFloat(String(item.publishTime))))
.fontSize($r("app.float.font_size_12"))
.fontColor($r("app.color.color_B0B0B0"))
}
.margin({top: 12})
}
.layoutWeight(1)
.alignItems(HorizontalAlign.Start)
// 右侧图片
if(item.fullColumnImgUrls[0] && item.fullColumnImgUrls[0].url) {
Image(item.fullColumnImgUrls[0].url)
.width(117)
.height(78)
.objectFit(ImageFit.Cover)
.borderRadius(4)
.margin({left: 12})
}
}
.padding({top: 10, bottom: 10})
}
}
}
\ No newline at end of file
... ...
... ... @@ -2,17 +2,12 @@ import { ToastUtils, Logger } from 'wdKit';
export interface OperationItem {
icon: Resource;
// icon_selected: Resource;
text: string | Resource;
num?: number; // 个数
}
const FULL_PARENT: string = '100%';
const TAG = 'OperRowListView';
@Entry
@Component
export struct OperRowListView {
@State operationList: OperationItem[] = [
... ... @@ -41,32 +36,16 @@ export struct OperRowListView {
}
build() {
// List({ space: 0, initialIndex: 0 }) {
// ForEach(this.operationList, (item: OperationItem, index: number) => {
// ListItem() {
// this.buildOperationItem(item, index)
// }
// }, (item: OperationItem, index: number) => JSON.stringify(item))
// }
// .width(48)
// .height(250)
// // .margin({ bottom: 100 })
// .backgroundColor(Color.Red)
// // .listDirection(Axis.Vertical) // 默认值:Axis.Vertical
// // .lanes(this.buildLanes()) // 行/列数,一列 // 默认值:1
// .cachedCount(2)
// .scrollBar(BarState.Off)
// .nestedScroll({
// scrollForward: NestedScrollMode.PARENT_FIRST,
// scrollBackward: NestedScrollMode.SELF_FIRST
// })
Column() {
Row() {
ForEach(this.operationList, (item: OperationItem, index: number) => {
this.buildOperationItem(item, index)
}, (item: OperationItem, index: number) => JSON.stringify(item))
}
.width(48)
.width('100%')
.height('100%')
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.Center)
}
/**
... ... @@ -78,21 +57,11 @@ export struct OperRowListView {
buildOperationItem(item: OperationItem, index: number) {
Column() {
Image(item.icon)
.width('100%')
.width(24)
.height(24)
.aspectRatio(1)
// .borderRadius(6)
Text(item.text)
.width('100%')// .margin({ top: 4, left: 6, right: 6 })// .backgroundColor(Color.Brown)
.fontWeight(FontWeight.Normal)
.textAlign(TextAlign.Center)
.fontSize(13)
.fontColor('#FFFFFF')
.maxLines(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
}
.margin(5)
// .backgroundColor(Color.Black)
.alignItems(HorizontalAlign.Center)
.hoverEffect(HoverEffect.Scale)
.onClick((event: ClickEvent) => {
... ...
... ... @@ -67,6 +67,9 @@ export struct ZhSingleRow04 {
Text(item.source)
.fontSize($r('app.float.font_size_12'))
.fontColor($r('app.color.color_B0B0B0'))
.layoutWeight(1)
.textOverflow({overflow: TextOverflow.Ellipsis})
.maxLines(1)
Image($r("app.media.point"))
.width(16)
.height(16)
... ...
/**
* 简易音频对话框
* */
@CustomDialog
export struct PaperReaderSimpleDialog {
private controllerSimple?: CustomDialogController;
build() {
Row() {
Image($r("app.media.icon_audio_pause"))
.objectFit(ImageFit.Contain)
.margin(18)
.width(24)
.height(24)
}
.width(60)
.height(60)
.backgroundColor(Color.White)
.onClick(() => {
if (this.controllerSimple) {
this.controllerSimple.close()
}
})
}
}
/**
* 图文音频对话框
* */
@CustomDialog
export struct PaperReaderDialog {
controllerDetail?: CustomDialogController
build() {
Stack() {
Column() { //标题 时间 进度条
Marquee({
start: true,
step: 50,
loop: Number.POSITIVE_INFINITY,
fromStart: true,
src: "Running Marquee starts rolling"
})
.width("60%")
.height(20)
.fontColor($r("app.color.color_222222"))
.fontSize(14)
.margin({ top: 10 })
.onStart(() => {
console.info('Marquee animation complete onStart')
})
.onBounce(() => {
console.info('Marquee animation complete onBounce')
})
.onFinish(() => {
console.info('Marquee animation complete onFinish')
})
Row() {
Text("00:00")
.fontSize($r('app.float.font_size_12'))
.fontColor($r('app.color.color_999999'))
.width("49%")
.height("100%")
Text("/00:00")
.fontSize($r('app.float.font_size_12'))
.fontColor($r('app.color.color_999999'))
.width("51%")
.height("100%")
}
.width("100%")
.height(16)
.margin({ top: 4 })
}
.width("100%")
.height("100%")
Progress({ value: 0, total: 100, type: ProgressType.Linear })
.color($r('app.color.color_ED2800'))
.width("100%")
.height(3)
Image($r("app.media.icon_audio_pause"))
.objectFit(ImageFit.Auto)
.align(Alignment.End)
.margin({ right: 12 })
Image($r("app.media.icon_audio_close"))
.objectFit(ImageFit.Auto)
.align(Alignment.End)
.margin({ right: 48 })
.onClick(() => {
if (this.controllerDetail) {
this.controllerDetail.close()
}
})
}
.width("65%")
.height(60)
.backgroundColor(Color.White)
.borderRadius(5)
}
}
\ No newline at end of file
... ...
... ... @@ -16,6 +16,10 @@ import { MineCommentListDetailItem } from '../viewmodel/MineCommentListDetailIte
import { MineUserLevelItem } from '../viewmodel/MineUserLevelItem';
import { MineUserDetailItem } from '../viewmodel/MineUserDetailItem';
import { OtherUserDetailRequestItem } from '../viewmodel/OtherUserDetailRequestItem';
import { OtherUserCommentListRequestItem } from '../viewmodel/OtherUserCommentListRequestItem';
import { OtherUserCommentLikeStatusRequestItem } from '../viewmodel/OtherUserCommentLikeStatusRequestItem';
import { QueryCommentListIsLikedItem } from '../viewmodel/QueryCommentListIsLikedItem';
import { UserFollowListRequestItem } from '../viewmodel/UserFollowListRequestItem';
const TAG = "MinePageDatasModel"
... ... @@ -495,7 +499,128 @@ class MinePageDatasModel{
return compRes.data
}
/**
* 其他用户的评论列表
* @param params
* @param context
* @returns
*/
getOtherCommentListData(params:OtherUserCommentListRequestItem,context: Context): Promise<MineCommentListDetailItem> {
return new Promise<MineCommentListDetailItem>((success, error) => {
Logger.info(TAG, `getAppointmentList start`);
this.fetchOtherCommentListData(params).then((navResDTO: ResponseDTO<MineCommentListDetailItem>) => {
if (!navResDTO || navResDTO.code != 0) {
success(this.getOtherCommentListDataLocal(context))
return
}
Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
let navigationBean = navResDTO.data as MineCommentListDetailItem
success(navigationBean);
}).catch((err: Error) => {
Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
success(this.getOtherCommentListDataLocal(context))
})
})
}
fetchOtherCommentListData(object:OtherUserCommentListRequestItem) {
let url = HttpUrlUtils.getOtherCommentListDataUrl()+`?pageSize=${object.pageSize}&pageNum=${object.pageNum}&creatorId=${object.creatorId}&time=${object.time}&userType=${object.userType}&userId=${object.userId}`
let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
return WDHttp.get<ResponseDTO<MineCommentListDetailItem>>(url, headers)
};
async getOtherCommentListDataLocal(context: Context): Promise<MineCommentListDetailItem> {
Logger.info(TAG, `getMineFollowListDataLocal start`);
let compRes: ResponseDTO<MineCommentListDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineCommentListDetailItem>>(context,'other_user512157124138245_comment_list_data.json' );
if (!compRes || !compRes.data) {
Logger.info(TAG, `getMineFollowListDataLocal compRes is empty`);
return new MineCommentListDetailItem()
}
Logger.info(TAG, `getMineFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
return compRes.data
}
/**
* 查询是否点赞了这条评论
* @param params
* @param context
* @returns
*/
getOtherUserCommentLikeStatusData(params:OtherUserCommentLikeStatusRequestItem,context: Context): Promise<QueryCommentListIsLikedItem[]> {
return new Promise<QueryCommentListIsLikedItem[]>((success, error) => {
Logger.info(TAG, `getAppointmentList start`);
this.fetchOtherUserCommentLikeStatusData(params).then((navResDTO: ResponseDTO<QueryCommentListIsLikedItem[]>) => {
if (!navResDTO || navResDTO.code != 0) {
success(this.getOtherUserCommentLikeStatusDataLocal(context))
return
}
Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
let navigationBean = navResDTO.data as QueryCommentListIsLikedItem[]
success(navigationBean);
}).catch((err: Error) => {
Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
success(this.getOtherUserCommentLikeStatusDataLocal(context))
})
})
}
fetchOtherUserCommentLikeStatusData(object:OtherUserCommentLikeStatusRequestItem) {
let url = HttpUrlUtils.getFollowListStatusDataUrl()
let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
return WDHttp.post<ResponseDTO<QueryCommentListIsLikedItem[]>>(url,object, headers)
};
async getOtherUserCommentLikeStatusDataLocal(context: Context): Promise<QueryCommentListIsLikedItem[]> {
Logger.info(TAG, `getMineFollowListDataLocal start`);
let compRes: ResponseDTO<QueryCommentListIsLikedItem[]> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<QueryCommentListIsLikedItem[]>>(context,'other_user512157124138245_comment_list_liked_data.json' );
if (!compRes || !compRes.data) {
Logger.info(TAG, `getMineFollowListDataLocal compRes is empty`);
return []
}
Logger.info(TAG, `getMineFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
return compRes.data
}
/**
* 其他用户的关注列表
* @param params
* @param context
* @returns
*/
getOtherUserFollowListData(params:UserFollowListRequestItem,context: Context): Promise<MineFollowListItem> {
return new Promise<MineFollowListItem>((success, error) => {
Logger.info(TAG, `getAppointmentList start`);
this.fetchOtherUserFollowListData(params).then((navResDTO: ResponseDTO<MineFollowListItem>) => {
if (!navResDTO || navResDTO.code != 0) {
success(this.getOtherUserFollowListDataLocal(context))
return
}
Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
let navigationBean = navResDTO.data as MineFollowListItem
success(navigationBean);
}).catch((err: Error) => {
Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
success(this.getOtherUserFollowListDataLocal(context))
})
})
}
fetchOtherUserFollowListData(object:UserFollowListRequestItem) {
let url = HttpUrlUtils.getOtherUserFollowListDataUrl()+`?pageSize=${object.pageSize}&pageNum=${object.pageNum}&queryUserId=${object.queryUserId}&userType=${object.userType}&userId=${HttpUrlUtils.getUserId()}`
let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
return WDHttp.get<ResponseDTO<MineFollowListItem>>(url, headers)
};
async getOtherUserFollowListDataLocal(context: Context): Promise<MineFollowListItem> {
Logger.info(TAG, `getMineFollowListDataLocal start`);
let compRes: ResponseDTO<MineFollowListItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineFollowListItem>>(context,'other_user_follow_list_data.json' );
if (!compRes || !compRes.data) {
Logger.info(TAG, `getMineFollowListDataLocal compRes is empty`);
return new MineFollowListItem()
}
Logger.info(TAG, `getMineFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
return compRes.data
}
}
... ...
... ... @@ -67,7 +67,7 @@ struct MineHomePage {
.borderRadius(50)
}.onClick(()=>{
let params: Params = {
pageID: "-1"
pageID: "512157124138245"
}
WDRouterRule.jumpWithPage(WDRouterPage.otherNormalUserHomePagePage,params)
})
... ...
import router from '@ohos.router'
import { Params } from 'wdBean';
import { StringUtils } from 'wdKit';
import { HomePageBottomComponent } from '../components/mine/home/HomePageBottomComponent';
import { OtherHomePageBottomCommentComponent } from '../components/mine/home/OtherHomePageBottomCommentComponent';
import { OtherHomePageBottomFollowComponent } from '../components/mine/home/OtherHomePageBottomFollowComponent';
import MinePageDatasModel from '../model/MinePageDatasModel';
import { OtherUserDetailRequestItem } from '../viewmodel/OtherUserDetailRequestItem';
... ... @@ -31,6 +32,7 @@ struct OtherNormalUserHomePage {
@State browseNum:number = 0//阅读数
@State commentNum:number = 0//评论数
@State attentionNum:number = 0//关注数
@State desc:string = ""
aboutToAppear(){
this.getUserInfo()
... ... @@ -145,17 +147,36 @@ struct OtherNormalUserHomePage {
.width('100%')
.padding({ left: '35lpx' })
//间隔符
//用户简介区域
Column() {
Row() {
Text(this.desc)
.fontSize('27lpx')
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.lineHeight('40lpx')
.fontWeight('400lpx')
.fontColor($r('app.color.color_222222'))
.textAlign(TextAlign.Start)
}
}.padding({ left: '31lpx',right:'31lpx',top:'19lpx',bottom:'31lpx'})
.alignItems(HorizontalAlign.Start)
.justifyContent(FlexAlign.Center)
.width('100%')
.backgroundColor($r('app.color.white'))
.visibility(StringUtils.isEmpty(this.desc)?Visibility.Hidden:Visibility.Visible)
//间隔符
Divider().width('100%').height('12lpx').color($r('app.color.color_F5F5F5')).strokeWidth('12lpx')
//tab 页面
Tabs({controller: this.controller}) {
TabContent() {
HomePageBottomComponent({style:0})
OtherHomePageBottomCommentComponent({curUserId:this.curUserId,levelHead:this.levelHead})
}.tabBar(this.TabBuilder(0,"评论"))
TabContent() {
HomePageBottomComponent({style:1})
OtherHomePageBottomFollowComponent({curUserId:this.curUserId})
}.tabBar(this.TabBuilder(1,"关注"))
}
.backgroundColor($r('app.color.white'))
... ... @@ -287,7 +308,9 @@ struct OtherNormalUserHomePage {
if(value!=null){
this.userName = value.userName
this.headPhotoUrl = value.headPhotoUrl
if(StringUtils.isNotEmpty(value.introduction)){
this.desc = value.introduction
}
this.browseNum = StringUtils.isEmpty(value.browseNum)?0:value.browseNum
this.commentNum = StringUtils.isEmpty(value.commentNum)?0:value.commentNum
this.attentionNum = StringUtils.isEmpty(value.attentionNum)?0:value.attentionNum
... ...
... ... @@ -5,7 +5,7 @@ import {
CompInfoBean,
ContentDetailDTO,
InteractDataDTO,
InteractDataStatusDTO,
InteractDataStatusBean,
MorningEveningPaperDTO,
NavigationBodyDTO,
NewspaperListBean,
... ... @@ -172,7 +172,7 @@ export class PageRepository {
static fetchInteractDataStatus(param: object) {
let url = PageRepository.getInteractDataStatusUrl()
let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
return WDHttp.post<ResponseDTO<InteractDataStatusDTO[]>>(url, param, headers)
return WDHttp.post<ResponseDTO<InteractDataStatusBean[]>>(url, param, headers)
};
// 浏览历史新增、删除接口
... ...
... ... @@ -7,12 +7,18 @@ export class CommentListItem{
commentContent:string = ""
targetTitle:string = ""
createTime:string = ""
likeNum:number = 0
like_status:number = 0
id:number = 0
constructor(fromUserHeader:string,fromUserName:string,targetTitle:string,createTime:string,commentContent:string ) {
constructor(fromUserHeader:string,fromUserName:string,targetTitle:string,createTime:string,commentContent:string,likeNum:number,like_status:number,id:number) {
this.fromUserHeader = fromUserHeader
this.fromUserName = fromUserName
this.commentContent = commentContent
this.targetTitle = targetTitle
this.createTime = createTime
this.likeNum = likeNum
this.like_status = like_status
this.id = id
}
}
... ...
... ... @@ -67,6 +67,7 @@ export class FollowListDetailItem{
introduction:string //介绍
status:string = "0" //是否已经关注
creatorId:string = ""
attentionUserId:string = ""
attentionCreatorId:string = ""
attentionHeadPhotoUrl:string = ""
... ... @@ -74,12 +75,13 @@ export class FollowListDetailItem{
fansNum :number = 0
constructor(headPhotoUrl:string,cnUserName:string,cnFansNum:number,introduction:string,creatorId:string,status:string ) {
constructor(headPhotoUrl:string,cnUserName:string,cnFansNum:number,introduction:string,creatorId:string,status:string,attentionUserId:string) {
this.headPhotoUrl = headPhotoUrl
this.cnUserName = cnUserName
this.cnFansNum = cnFansNum
this.introduction = introduction
this.creatorId = creatorId
this.status = status
this.attentionUserId = attentionUserId
}
}
... ...
export class OtherUserCommentLikeStatusRequestItem{
commentIdList:number[] = []
}
\ No newline at end of file
... ...
export class OtherUserCommentListRequestItem {
creatorId: string = ""
pageSize: number = 20
pageNum: number = 1
time: string = ""
userType: string = "1"
userId: string = ""
constructor(creatorId: string, pageSize: number,
pageNum: number,
time: string,
userType: string,
userId: string) {
this.creatorId = creatorId
this.pageSize = pageSize
this.pageNum = pageNum
this.time = time
this.userType = userType
this.userId = userId
}
}
\ No newline at end of file
... ...
export class QueryCommentListIsLikedItem{
commentId:number = 0
status:number = 0
}
\ No newline at end of file
... ...
export class UserFollowListRequestItem{
queryUserId:number = -1
pageSize:number = 20
pageNum:number = 1
userType:string = "1"
constructor(queryUserId:number, pageSize:number, pageNum:number, userType:string) {
this.queryUserId = queryUserId
this.pageSize = pageSize
this.pageNum = pageNum
this.userType = userType
}
}
\ No newline at end of file
... ...
... ... @@ -33,14 +33,14 @@ export struct DetailPlayShortVideoPage {
@Provide newsSourceName?: string = ''
@Provide newsTitle?: string = ''
@Provide editorName?: string = ''
@Provide rmhInfo?: RmhInfoDTO = undefined
@Provide userInfo?: UserInfoDTO = undefined
@Provide rmhInfo?: RmhInfoDTO | null = null
@Provide userInfo?: UserInfoDTO | null = null
@Provide message?: string = ''
@Provide newsSummary?: string = ''
@Provide progressVal: number = 0;
@Provide videoLandScape?: number = 1; // 视频朝向, 横屏视频:1;竖屏视频:2
playVMChanged(name: string) {
playVMChanged() {
this.url = this.playVM.url
this.newsSourceName = this.playVM.newsSourceName
this.newsTitle = this.playVM.newsTitle
... ... @@ -98,7 +98,7 @@ export struct DetailPlayShortVideoPage {
WDPlayerRenderView({
playerController: this.playerController,
onLoad: async () => {
console.log('onload==')
console.log('onload==', this.contentId, this.relId, this.relType)
// this.playVM.playWithContentId(this.contentId ?? "846899373")
this.playVM.playWithIds(this.contentId ?? "846899373",
this.relId ?? "500000301942", this.relType ?? "1")
... ... @@ -155,7 +155,7 @@ export struct DetailPlayShortVideoPage {
this.playerController.continue = undefined;
}
urlChanged(name: string) {
urlChanged() {
if (this.url) {
console.log("url:" + this.url);
this.status = PlayerConstants.STATUS_START;
... ...
... ... @@ -90,57 +90,66 @@ export struct PlayerTitleComment {
.width('100%')
.alignItems(VerticalAlign.Bottom)
Slider({
value: this.progressVal,
step: 1,
style: SliderStyle.OutSet
})
.blockColor(Color.White)
.trackColor($r('app.color.track_color'))
.selectedColor($r('app.color.index_tab_selected_font_color'))
.trackThickness(1)
.width('100%')
.onChange((value: number, mode: SliderChangeMode) => {
this.playerController?.setSeekTime(value, mode);
})
Row() {
Image($r('app.media.ic_back'))
.width(44)
.aspectRatio(1)
.padding(13)
.onClick(() => {
if (this.isFullScreen) {
if (deviceInfo.deviceType != "phone") {
WindowModel.shared.getWindowSize().then((size) => {
if (size.width > size.height) {
router.back();
Column() {
Slider({
value: this.progressVal,
step: 1,
style: SliderStyle.OutSet
})
.blockColor(Color.White)
.trackColor($r('app.color.track_color'))
.selectedColor($r('app.color.index_tab_selected_font_color'))
.trackThickness(1)
.width('100%')
.onChange((value: number, mode: SliderChangeMode) => {
this.playerController?.setSeekTime(value, mode);
})
Row() {
Image($r('app.media.ic_back'))
.width(24)
.height(24)
.aspectRatio(1)
.onClick(() => {
if (this.isFullScreen) {
if (deviceInfo.deviceType != "phone") {
WindowModel.shared.getWindowSize().then((size) => {
if (size.width > size.height) {
router.back();
} else {
this.isFullScreen = !this.isFullScreen;
WindowModel.shared.setPreferredOrientation(window.Orientation.PORTRAIT);
devicePLSensorManager.devicePLSensorOn(window.Orientation.PORTRAIT);
}
})
} else {
this.isFullScreen = !this.isFullScreen;
WindowModel.shared.setPreferredOrientation(window.Orientation.PORTRAIT);
devicePLSensorManager.devicePLSensorOn(window.Orientation.PORTRAIT);
}
})
} else {
this.isFullScreen = !this.isFullScreen;
WindowModel.shared.setPreferredOrientation(window.Orientation.PORTRAIT);
devicePLSensorManager.devicePLSensorOn(window.Orientation.PORTRAIT);
}
} else {
router.back();
}
})
} else {
router.back();
}
})
TextInput({ placeholder: '说两句...', text: this.comment })
.placeholderColor(Color.White)
.placeholderFont({ size: 14 })
.fontColor(Color.White)
.fontSize(14)
.maxLines(1)
.layoutWeight(1)
.backgroundColor('#1a1a1a')
.borderRadius(2)
.margin({ left: 12 })
}
.alignItems(VerticalAlign.Center)
.padding({ left: 16, right: 16, top: 11, bottom: 11 })
}
}.backgroundColor(Color.Black)
TextInput({ placeholder: '说两句...', text: this.comment })
.placeholderColor(Color.White)
.placeholderFont({ size: 14 })
.fontColor(Color.White)
.fontSize(14)
.maxLines(1)
.layoutWeight(1)
.backgroundColor('#ccc')
.borderRadius(2)
}.alignItems(VerticalAlign.Center)
}
.width('100%')
// .height('40%')
... ...
... ... @@ -15,8 +15,8 @@ export class PlayViewModel {
newsTitle?: string
editorName?: string
newsSummary?: string
rmhInfo?: RmhInfoDTO
userInfo?: UserInfoDTO
rmhInfo?: RmhInfoDTO | null
userInfo?: UserInfoDTO | null
url?: string
// 视频朝向,
// 横屏视频:1(进入竖屏,立即展示半屏播放窗口,当切换横屏时,再展示全部播放窗口;后续可再转换到竖屏):
... ...
{
"lockfileVersion": 2,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": {
"@ohos/axios@^2.1.1": "@ohos/axios@2.2.0"
},
"packages": {
"@ohos/axios@2.2.0": {
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/axios/-/axios-2.2.0.har",
"integrity": "sha512-v1QBWk6DfcN8wUW3D0ieFbHTR1taSI5cOgxp5l6B5cegXuNYhSc8ggKlAIXe6h/14LsfM+NW0ZGfSXcNEIM5yA==",
"registryType": "ohpm"
}
}
}
\ No newline at end of file
... ...
... ... @@ -61,7 +61,10 @@ export class WDPlayerController {
this.avPlayer.url = this.url;
break;
case AVPlayerStatus.INITIALIZED:
this.avPlayer.surfaceId = this.surfaceId;
if (this.surfaceId) {
this.avPlayer.surfaceId = this.surfaceId;
}
this.avPlayer?.prepare();
break;
case AVPlayerStatus.PREPARED:
... ...
{
"code": "0",
"data": {
"hasNext": 0,
"list": [
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "方法就是\\ud83d\\udc4d",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-02-19 14:14:16",
"fromCreatorId": "",
"fromDeviceId": "F0B98E7F-6479-462C-BA25-5FC574511C8A",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 403445,
"keyArticle": 0,
"likeNum": 3,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 403445,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231012/image/content/7f1a342a809d4276aa975ba9e7fe2313.png",
"shareSummary": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是",
"shareTitle": "这是一个开始、请持续关注这是一个开始、请",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000633703-500000008559"
},
"targetId": "30000633703",
"targetRelId": "500000008559",
"targetRelObjectId": "2002",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注",
"targetType": 8,
"topicType": null,
"uuid": "5901a353-79aa-4b81-81d7-f6f13f0a6817"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "毕业",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-29 17:39:04",
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 303318,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 303318,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20230923/image/content/4b8f615d1b134546aa4903300c38fb5b.png",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "【广东爱情故事】人在广东已经漂泊十年",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000627490-500000007811"
},
"targetId": "30000627490",
"targetRelId": "500000007811",
"targetRelObjectId": "10000002083",
"targetRelType": 2,
"targetStatus": 0,
"targetTitle": "【广东爱情故事】人在广东已经漂泊十年",
"targetType": 13,
"topicType": null,
"uuid": "59339983-a9ee-4054-98aa-0eddbc6275a1"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "索尼👍",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-29 17:38:56",
"fromCreatorId": "",
"fromDeviceId": "",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 303317,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 303317,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20230923/image/content/4b8f615d1b134546aa4903300c38fb5b.png",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "【广东爱情故事】人在广东已经漂泊十年",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000627490-500000007811"
},
"targetId": "30000627490",
"targetRelId": "500000007811",
"targetRelObjectId": "10000002083",
"targetRelType": 2,
"targetStatus": 0,
"targetTitle": "【广东爱情故事】人在广东已经漂泊十年",
"targetType": 13,
"topicType": null,
"uuid": "8808cffa-6496-4dc9-ac79-a65c8ada09d2"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "游客评论苹果",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 15:00:24",
"fromCreatorId": "",
"fromDeviceId": "F0B98E7F-6479-462C-BA25-5FC574511C8A",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 403426,
"keyArticle": 0,
"likeNum": 1,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 403426,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231012/image/content/7f1a342a809d4276aa975ba9e7fe2313.png",
"shareSummary": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是",
"shareTitle": "这是一个开始、请持续关注这是一个开始、请",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000633703-500000008559"
},
"targetId": "30000633703",
"targetRelId": "500000008559",
"targetRelObjectId": "2002",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注",
"targetType": 8,
"topicType": null,
"uuid": "a272d091-3697-44ca-95e6-532028eee776"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "游客账号评论安卓",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 15:00:15",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 403425,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 403425,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231012/image/content/7f1a342a809d4276aa975ba9e7fe2313.png",
"shareSummary": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是",
"shareTitle": "这是一个开始、请持续关注这是一个开始、请",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000633703-500000008559"
},
"targetId": "30000633703",
"targetRelId": "500000008559",
"targetRelObjectId": "2002",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注",
"targetType": 8,
"topicType": null,
"uuid": "62225e7a-9afd-4b8c-b9b6-71a5d610997d"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "你理解吗",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:45:21",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 403422,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 403422,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231130/image/content/09ee931569d34781b9bbe85f5348873f.jpg",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "点亮香港“小航天迷”的“太空梦”——内地航天专家走进香港中小学校园",
"shareUrl": "https://pd-people-sit.pdnews.cn/rmhphotos/30000650925"
},
"targetId": "30000650925",
"targetRelId": "500000013228",
"targetRelObjectId": "2058",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "点亮香港“小航天迷”的“太空梦”——内地航天专家走进香港中小学校园",
"targetType": 9,
"topicType": null,
"uuid": "cc6b2322-ffa4-4a59-a7af-5e4a18afcbd3"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "你好我是游客",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:40:19",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 303306,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 303306,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231130/image/content/09ee931569d34781b9bbe85f5348873f.jpg",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "点亮香港“小航天迷”的“太空梦”——内地航天专家走进香港中小学校园",
"shareUrl": "https://pd-people-sit.pdnews.cn/rmhphotos/30000650925"
},
"targetId": "30000650925",
"targetRelId": "500000013228",
"targetRelObjectId": "2058",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "点亮香港“小航天迷”的“太空梦”——内地航天专家走进香港中小学校园",
"targetType": 9,
"topicType": null,
"uuid": "9fac53da-603f-444a-8807-4f5feacf55bb"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "你好我是游客",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:34:30",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 403420,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 403420,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/image/creator/2024012911/f2f9fe93ca464d05bc0407a385ad877b.png",
"shareSummary": "爸爸角色扮演医生,在宝蓝比赛摔倒的时候悉心照顾,其他小朋友也要注意呀!",
"shareTitle": "爸爸角色扮演医生,在宝蓝比赛摔倒的时候悉心照顾,其他小朋友也要注意呀!",
"shareUrl": "https://pd-people-sit.pdnews.cn/rmhvideo/30000716043"
},
"targetId": "30000716043",
"targetRelId": "500000030952",
"targetRelObjectId": "2058",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "爸爸角色扮演医生,在宝蓝比赛摔倒的时候悉心照顾,其他小朋友也要注意呀!",
"targetType": 1,
"topicType": null,
"uuid": "31305151-6b9c-49ea-8e5b-9e4b8fffe79d"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "游客账号",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:27:52",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 403417,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 403417,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "跟着习主席看世界|同舟共济 打造人类卫生健康共同体",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000628337-500000004210"
},
"targetId": "30000628337",
"targetRelId": "500000004210",
"targetRelObjectId": "2002",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "跟着习主席看世界|同舟共济 打造人类卫生健康共同体",
"targetType": 8,
"topicType": null,
"uuid": "034911cc-34ca-4209-add2-46f48f4b2104"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "我是游客",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:25:34",
"fromCreatorId": "",
"fromDeviceId": "F0B98E7F-6479-462C-BA25-5FC574511C8A",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 303305,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 303305,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20240127/image/content/e8d93872483a48c7a4eaa48f70211ab1.png",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "“大学也有家长群",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000723442-500000031275"
},
"targetId": "30000723442",
"targetRelId": "500000031275",
"targetRelObjectId": "2002",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "“大学也有家长群",
"targetType": 8,
"topicType": null,
"uuid": "0b0aa5ef-b2de-4d01-9f5a-274c5122560f"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "你好,我是游客动态",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:24:56",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 303304,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 303304,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231130/image/content/3e0cce06724740f0807ff0731c4a1d03/C4BC1C53-2B9C-4A54-BF95-044242D78260.jpg",
"shareSummary": "发布动态带活动13",
"shareTitle": "发布动态带活动13",
"shareUrl": "https://pd-people-sit.pdnews.cn/rmhmoments/30000650969"
},
"targetId": "30000650969",
"targetRelId": "500000013237",
"targetRelObjectId": "2058",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "发布动态带活动13",
"targetType": 14,
"topicType": null,
"uuid": "ae2b2ece-d036-4b01-91e7-9708b0b5fe1c"
},
{
"avatarFrame": "",
"checkStatus": 2,
"commentContent": "你好我是游客",
"commentContentSensitive": "",
"commentLevel": 1,
"commentPics": "",
"commentSensitive": "",
"commentType": "2",
"createTime": "2024-01-27 14:24:19",
"fromCreatorId": "",
"fromDeviceId": "23c43f15-37e9-3f2d-9999-bd1abbb7e0ed",
"fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
"fromUserId": "512157124138245",
"fromUserName": "树下🍑 1122334",
"fromUserType": 1,
"h5Url": "",
"id": 303302,
"keyArticle": 0,
"likeNum": 0,
"pageId": null,
"parentCommentVo": null,
"parentId": -1,
"rootCommentId": 303302,
"sensitiveExist": 0,
"sensitiveShow": 1,
"shareInfo": {
"shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20240127/image/content/e8d93872483a48c7a4eaa48f70211ab1.png",
"shareSummary": "人民日报,有品质的新闻",
"shareTitle": "“大学也有家长群",
"shareUrl": "https://pd-people-sit.pdnews.cn/column/30000723442-500000031275"
},
"targetId": "30000723442",
"targetRelId": "500000031275",
"targetRelObjectId": "2002",
"targetRelType": 1,
"targetStatus": 0,
"targetTitle": "“大学也有家长群",
"targetType": 8,
"topicType": null,
"uuid": "766a6bac-aa1d-4e88-a798-f19bade201ee"
}
],
"pageNum": 1,
"pageSize": 20,
"totalCommentNum": 12,
"totalCount": 12
},
"message": "Success",
"meta": null,
"requestId": "",
"success": true,
"timestamp": 1711440876958
}
\ No newline at end of file
... ...
{
"code": "0",
"data": [
{
"commentId": 403445,
"status": 1
},
{
"commentId": 303318,
"status": 0
},
{
"commentId": 303317,
"status": 0
},
{
"commentId": 403426,
"status": 1
},
{
"commentId": 403425,
"status": 0
},
{
"commentId": 403422,
"status": 0
},
{
"commentId": 303306,
"status": 0
},
{
"commentId": 403420,
"status": 0
},
{
"commentId": 403417,
"status": 0
},
{
"commentId": 303305,
"status": 0
},
{
"commentId": 303304,
"status": 0
},
{
"commentId": 303302,
"status": 0
}
],
"message": "Success",
"meta": null,
"requestId": "",
"success": true,
"timestamp": 1711440877105
}
\ No newline at end of file
... ...
{
"code": "0",
"data": {
"hasNext": 0,
"list": [
{
"attentionCreatorId": "3259284",
"attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202401/20240127161739536/eUj.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
"attentionNum": 0,
"attentionUserId": "535571576006021",
"attentionUserName": "斯特的7778",
"attentionUserType": 2,
"authIcon": "",
"authId": 0,
"authPersional": "",
"authTitle": "",
"banControl": 0,
"categoryAuth": "",
"cnLiveCommentControl": 1,
"cnLiveGiftControl": 1,
"cnLiveLikeControl": 1,
"cnLiveShareControl": 1,
"cnShareControl": 1,
"collectNum": 1,
"commentNum": 0,
"createTime": 1706344099000,
"fansNum": 1,
"honoraryIcon": "",
"honoraryTitle": "",
"id": 100703,
"introduction": "暗黑世界顶级",
"isAttention": 0,
"isComment": 1,
"isLike": 1,
"isVisiable": 1,
"likeNum": 0,
"liveCommentControl": 1,
"liveGiftControl": 1,
"liveLikeControl": 1,
"liveShareControl": 1,
"mainControl": 1,
"posterShareControl": 0,
"registTime": 1706343790000,
"shareControl": 1,
"shareNum": 7,
"status": 1,
"subjectType": null,
"updateTime": 1706344099000,
"userId": "512157124138245",
"userType": 1
}
],
"pageNum": 1,
"pageSize": 20,
"totalCount": 1
},
"message": "Success",
"meta": null,
"requestId": "",
"success": true,
"timestamp": 1711441048304
}
\ No newline at end of file
... ...