yangsunyue_wd
Showing 102 changed files with 4941 additions and 767 deletions
1 1
2 import { FollowFirstTabsComponent } from 'wdComponent' 2 import { FollowFirstTabsComponent } from 'wdComponent'
  3 +import router from '@ohos.router';
  4 +import { Params } from 'wdComponent/src/main/ets/repository/bean/Params';
3 5
4 @Entry 6 @Entry
5 @Component 7 @Component
6 struct FollowListPage { 8 struct FollowListPage {
7 9
  10 + @State params:Params = router.getParams() as Params;
  11 + @State curIndex: string = '0';
  12 +
  13 + onPageShow() {
  14 + this.curIndex = "1";
  15 + }
  16 +
8 build() { 17 build() {
9 Column() { 18 Column() {
10 //Tab 详情 19 //Tab 详情
11 - FollowFirstTabsComponent() 20 + FollowFirstTabsComponent({changeIndex:Number(this.curIndex)})
12 } 21 }
13 .backgroundColor($r('app.color.color_F9F9F9')) 22 .backgroundColor($r('app.color.color_F9F9F9'))
14 .height('100%') 23 .height('100%')
  1 +import { MyHomeComponent } from 'wdComponent'
  2 +@Entry
  3 +@Component
  4 +struct MyHomePage {
  5 +
  6 + build() {
  7 + Column() {
  8 + MyHomeComponent()
  9 + }
  10 + .height('100%')
  11 + .width('100%')
  12 + }
  13 +}
@@ -4,11 +4,12 @@ @@ -4,11 +4,12 @@
4 "pages/MainPage", 4 "pages/MainPage",
5 "pages/ColumnPage", 5 "pages/ColumnPage",
6 "pages/TestPage", 6 "pages/TestPage",
7 - "components/page/SettingPage",  
8 - "components/page/PrivacySettingPage",  
9 - "components/page/SettingAboutPage", 7 + "pages/SettingPage",
  8 + "pages/PrivacySettingPage",
  9 + "pages/SettingAboutPage",
10 "pages/AppointmentListPage", 10 "pages/AppointmentListPage",
11 - "components/page/SettingPasswordPage",  
12 - "pages/FollowListPage" 11 + "pages/SettingPasswordPage",
  12 + "pages/FollowListPage",
  13 + "pages/MyHomePage"
13 ] 14 ]
14 -} 15 +}
1 { 1 {
2 "code": "0", 2 "code": "0",
3 "data": { 3 "data": {
4 - "list": [{  
5 - "attentionNum": 0,  
6 - "authIcon": "",  
7 - "authId": 0,  
8 - "authPersonal": "",  
9 - "authTitle": "",  
10 - "categoryAuth": "",  
11 - "city": "110100",  
12 - "cnAttentionNum": 0,  
13 - "cnCollectNum": 0,  
14 - "cnCommentNum": 0,  
15 - "cnFansNum": 4,  
16 - "cnIsAttention": 1,  
17 - "cnIsComment": 1,  
18 - "cnIsLike": 1,  
19 - "cnLikeNum": 0,  
20 - "cnLiveCommentControl": 1,  
21 - "cnLiveGiftControl": 1,  
22 - "cnLiveLikeControl": 1,  
23 - "cnLiveShareControl": 1,  
24 - "cnMainControl": 1,  
25 - "cnRegistTime": 1695280071000,  
26 - "cnShareControl": 1,  
27 - "cnShareNum": 0,  
28 - "cnUserId": "444937588589253",  
29 - "cnUserName": "QACrawler2115",  
30 - "cnUserType": "2",  
31 - "collectNum": 0,  
32 - "creatorId": "3004862",  
33 - "district": "110101",  
34 - "fansNum": 0,  
35 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th211436299/GLN.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
36 - "honoraryIcon": "",  
37 - "honoraryTitle": "",  
38 - "introduction": "知识博主",  
39 - "isAttention": 1,  
40 - "isComment": 1,  
41 - "isLike": 1,  
42 - "isVisiable": 1,  
43 - "likeNum": 0,  
44 - "liveCommentControl": 1,  
45 - "liveGiftControl": 1,  
46 - "liveLikeControl": 1,  
47 - "liveShareControl": 1,  
48 - "posterShareControl": 1,  
49 - "province": "110000",  
50 - "publishNum": 0,  
51 - "region": "",  
52 - "shareControl": 1,  
53 - "shareNum": 0,  
54 - "shopOpen": 0,  
55 - "storeUrl": "",  
56 - "subjectType": 0,  
57 - "userId": "",  
58 - "userName": "QACrawler2115",  
59 - "userType": "2",  
60 - "waresSwitch": 1  
61 - }, {  
62 - "attentionNum": 0,  
63 - "authIcon": "",  
64 - "authId": 0,  
65 - "authPersonal": "",  
66 - "authTitle": "",  
67 - "categoryAuth": "",  
68 - "city": "230100",  
69 - "cnAttentionNum": 0,  
70 - "cnCollectNum": 0,  
71 - "cnCommentNum": 0,  
72 - "cnFansNum": 4,  
73 - "cnIsAttention": 1,  
74 - "cnIsComment": 1,  
75 - "cnIsLike": 1,  
76 - "cnLikeNum": 0,  
77 - "cnLiveCommentControl": 1,  
78 - "cnLiveGiftControl": 1,  
79 - "cnLiveLikeControl": 1,  
80 - "cnLiveShareControl": 1,  
81 - "cnMainControl": 1,  
82 - "cnRegistTime": 1695276994000,  
83 - "cnShareControl": 1,  
84 - "cnShareNum": 0,  
85 - "cnUserId": "444911718724933",  
86 - "cnUserName": "一休哥",  
87 - "cnUserType": "2",  
88 - "collectNum": 0,  
89 - "creatorId": "3004861",  
90 - "district": "230102",  
91 - "fansNum": 0,  
92 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th141630857/Ptx.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
93 - "honoraryIcon": "",  
94 - "honoraryTitle": "",  
95 - "introduction": "中文端号主",  
96 - "isAttention": 1,  
97 - "isComment": 1,  
98 - "isLike": 1,  
99 - "isVisiable": 1,  
100 - "likeNum": 0,  
101 - "liveCommentControl": 1,  
102 - "liveGiftControl": 1,  
103 - "liveLikeControl": 1,  
104 - "liveShareControl": 1,  
105 - "posterShareControl": 1,  
106 - "province": "230000",  
107 - "publishNum": 0,  
108 - "region": "安徽",  
109 - "shareControl": 1,  
110 - "shareNum": 0,  
111 - "shopOpen": 0,  
112 - "storeUrl": "",  
113 - "subjectType": 2,  
114 - "userId": "",  
115 - "userName": "一休哥",  
116 - "userType": "2",  
117 - "waresSwitch": 1  
118 - }, {  
119 - "attentionNum": 0,  
120 - "authIcon": "",  
121 - "authId": 0,  
122 - "authPersonal": "",  
123 - "authTitle": "",  
124 - "categoryAuth": "",  
125 - "city": "110100",  
126 - "cnAttentionNum": 0,  
127 - "cnCollectNum": 0,  
128 - "cnCommentNum": 12,  
129 - "cnFansNum": 8,  
130 - "cnIsAttention": 1,  
131 - "cnIsComment": 1,  
132 - "cnIsLike": 1,  
133 - "cnLikeNum": 2,  
134 - "cnLiveCommentControl": 1,  
135 - "cnLiveGiftControl": 1,  
136 - "cnLiveLikeControl": 1,  
137 - "cnLiveShareControl": 1,  
138 - "cnMainControl": 1,  
139 - "cnRegistTime": 1695275999000,  
140 - "cnShareControl": 1,  
141 - "cnShareNum": 1,  
142 - "cnUserId": "444903323309381",  
143 - "cnUserName": "0921媒体",  
144 - "cnUserType": "3",  
145 - "collectNum": 0,  
146 - "creatorId": "3004860",  
147 - "district": "110101",  
148 - "fansNum": 0,  
149 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th135954709/qdL.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
150 - "honoraryIcon": "",  
151 - "honoraryTitle": "",  
152 - "introduction": "0921媒体",  
153 - "isAttention": 1,  
154 - "isComment": 1,  
155 - "isLike": 1,  
156 - "isVisiable": 1,  
157 - "likeNum": 0,  
158 - "liveCommentControl": 1,  
159 - "liveGiftControl": 1,  
160 - "liveLikeControl": 1,  
161 - "liveShareControl": 1,  
162 - "posterShareControl": 0,  
163 - "province": "110000",  
164 - "publishNum": 0,  
165 - "region": "上海",  
166 - "shareControl": 1,  
167 - "shareNum": 0,  
168 - "shopOpen": 0,  
169 - "storeUrl": "",  
170 - "subjectType": 1,  
171 - "userId": "",  
172 - "userName": "0921媒体",  
173 - "userType": "3",  
174 - "waresSwitch": 1  
175 - }, {  
176 - "attentionNum": 0,  
177 - "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/blue.png",  
178 - "authId": 1,  
179 - "authPersonal": "",  
180 - "authTitle": "黄袍加身V",  
181 - "categoryAuth": "黄袍加身V",  
182 - "city": "340100",  
183 - "cnAttentionNum": 9,  
184 - "cnCollectNum": 0,  
185 - "cnCommentNum": 3,  
186 - "cnFansNum": 9,  
187 - "cnIsAttention": 1,  
188 - "cnIsComment": 1,  
189 - "cnIsLike": 1,  
190 - "cnLikeNum": 7,  
191 - "cnLiveCommentControl": 1,  
192 - "cnLiveGiftControl": 1,  
193 - "cnLiveLikeControl": 1,  
194 - "cnLiveShareControl": 1,  
195 - "cnMainControl": 1,  
196 - "cnRegistTime": 1695260417000,  
197 - "cnShareControl": 1,  
198 - "cnShareNum": 0,  
199 - "cnUserId": "444776025830725",  
200 - "cnUserName": "李智恩3",  
201 - "cnUserType": "2",  
202 - "collectNum": 0,  
203 - "creatorId": "3004855",  
204 - "district": "340102",  
205 - "fansNum": 0,  
206 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th094010643/N5o.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
207 - "honoraryIcon": "",  
208 - "honoraryTitle": "",  
209 - "introduction": "IU",  
210 - "isAttention": 1,  
211 - "isComment": 1,  
212 - "isLike": 1,  
213 - "isVisiable": 1,  
214 - "likeNum": 0,  
215 - "liveCommentControl": 1,  
216 - "liveGiftControl": 1,  
217 - "liveLikeControl": 1,  
218 - "liveShareControl": 1,  
219 - "posterShareControl": 0,  
220 - "province": "340000",  
221 - "publishNum": 0,  
222 - "region": "安徽",  
223 - "shareControl": 1,  
224 - "shareNum": 0,  
225 - "shopOpen": 1,  
226 - "storeUrl": "",  
227 - "subjectType": 1,  
228 - "userId": "",  
229 - "userName": "李智恩3",  
230 - "userType": "2",  
231 - "waresSwitch": 0  
232 - }, {  
233 - "attentionNum": 0,  
234 - "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/yellow.png",  
235 - "authId": 2,  
236 - "authPersonal": "",  
237 - "authTitle": "黄VV",  
238 - "categoryAuth": "黄VV",  
239 - "city": "120100",  
240 - "cnAttentionNum": 1,  
241 - "cnCollectNum": 1,  
242 - "cnCommentNum": 7,  
243 - "cnFansNum": 13,  
244 - "cnIsAttention": 1,  
245 - "cnIsComment": 1,  
246 - "cnIsLike": 1,  
247 - "cnLikeNum": 0,  
248 - "cnLiveCommentControl": 1,  
249 - "cnLiveGiftControl": 1,  
250 - "cnLiveLikeControl": 1,  
251 - "cnLiveShareControl": 1,  
252 - "cnMainControl": 1,  
253 - "cnRegistTime": 1695202406000,  
254 - "cnShareControl": 1,  
255 - "cnShareNum": 0,  
256 - "cnUserId": "444300764043333",  
257 - "cnUserName": "创作者账号7777",  
258 - "cnUserType": "2",  
259 - "collectNum": 0,  
260 - "creatorId": "3004853",  
261 - "district": "120101",  
262 - "fansNum": 0,  
263 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/image/creator/2023092715/4727ab5db7604dbbac9ffb94ed03614e.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
264 - "honoraryIcon": "",  
265 - "honoraryTitle": "",  
266 - "introduction": "协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作",  
267 - "isAttention": 1,  
268 - "isComment": 1,  
269 - "isLike": 1,  
270 - "isVisiable": 1,  
271 - "likeNum": 0,  
272 - "liveCommentControl": 1,  
273 - "liveGiftControl": 1,  
274 - "liveLikeControl": 1,  
275 - "liveShareControl": 1,  
276 - "posterShareControl": 0,  
277 - "province": "120000",  
278 - "publishNum": 0,  
279 - "region": "安徽",  
280 - "shareControl": 1,  
281 - "shareNum": 0,  
282 - "shopOpen": 1,  
283 - "storeUrl": "",  
284 - "subjectType": 0,  
285 - "userId": "",  
286 - "userName": "创作者账号7777",  
287 - "userType": "2",  
288 - "waresSwitch": 0  
289 - }, {  
290 - "attentionNum": 0,  
291 - "authIcon": "",  
292 - "authId": 0,  
293 - "authPersonal": "",  
294 - "authTitle": "",  
295 - "categoryAuth": "",  
296 - "city": "110100",  
297 - "cnAttentionNum": 0,  
298 - "cnCollectNum": 0,  
299 - "cnCommentNum": 0,  
300 - "cnFansNum": 9,  
301 - "cnIsAttention": 1,  
302 - "cnIsComment": 1,  
303 - "cnIsLike": 1,  
304 - "cnLikeNum": 6,  
305 - "cnLiveCommentControl": 1,  
306 - "cnLiveGiftControl": 1,  
307 - "cnLiveLikeControl": 1,  
308 - "cnLiveShareControl": 1,  
309 - "cnMainControl": 1,  
310 - "cnRegistTime": 1695201858000,  
311 - "cnShareControl": 1,  
312 - "cnShareNum": 0,  
313 - "cnUserId": "444296355502149",  
314 - "cnUserName": "0920个人",  
315 - "cnUserType": "2",  
316 - "collectNum": 0,  
317 - "creatorId": "3004851",  
318 - "district": "110101",  
319 - "fansNum": 0,  
320 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We172415100/h2j.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
321 - "honoraryIcon": "https://cdn.aikan.pdnews.cn/image/picture/202312/20231223173451966FdV.png",  
322 - "honoraryTitle": "快乐星球",  
323 - "introduction": "账号简介",  
324 - "isAttention": 1,  
325 - "isComment": 1,  
326 - "isLike": 1,  
327 - "isVisiable": 1,  
328 - "likeNum": 0,  
329 - "liveCommentControl": 1,  
330 - "liveGiftControl": 1,  
331 - "liveLikeControl": 1,  
332 - "liveShareControl": 1,  
333 - "posterShareControl": 1,  
334 - "province": "110000",  
335 - "publishNum": 0,  
336 - "region": "上海",  
337 - "shareControl": 1,  
338 - "shareNum": 0,  
339 - "shopOpen": 0,  
340 - "storeUrl": "",  
341 - "subjectType": 0,  
342 - "userId": "",  
343 - "userName": "0920个人",  
344 - "userType": "2",  
345 - "waresSwitch": 1  
346 - }, {  
347 - "attentionNum": 0,  
348 - "authIcon": "",  
349 - "authId": 0,  
350 - "authPersonal": "",  
351 - "authTitle": "",  
352 - "categoryAuth": "",  
353 - "city": "120100",  
354 - "cnAttentionNum": 0,  
355 - "cnCollectNum": 0,  
356 - "cnCommentNum": 0,  
357 - "cnFansNum": 10,  
358 - "cnIsAttention": 1,  
359 - "cnIsComment": 1,  
360 - "cnIsLike": 1,  
361 - "cnLikeNum": 0,  
362 - "cnLiveCommentControl": 1,  
363 - "cnLiveGiftControl": 1,  
364 - "cnLiveLikeControl": 1,  
365 - "cnLiveShareControl": 1,  
366 - "cnMainControl": 1,  
367 - "cnRegistTime": 1695190066000,  
368 - "cnShareControl": 1,  
369 - "cnShareNum": 0,  
370 - "cnUserId": "444200272593477",  
371 - "cnUserName": "zhuaqu005",  
372 - "cnUserType": "2",  
373 - "collectNum": 0,  
374 - "creatorId": "3004849",  
375 - "district": "120101",  
376 - "fansNum": 0,  
377 - "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We140931534/CIX.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",  
378 - "honoraryIcon": "",  
379 - "honoraryTitle": "",  
380 - "introduction": "aaa",  
381 - "isAttention": 1,  
382 - "isComment": 1,  
383 - "isLike": 1,  
384 - "isVisiable": 1,  
385 - "likeNum": 0,  
386 - "liveCommentControl": 1,  
387 - "liveGiftControl": 1,  
388 - "liveLikeControl": 1,  
389 - "liveShareControl": 1,  
390 - "posterShareControl": 1,  
391 - "province": "120000",  
392 - "publishNum": 0,  
393 - "region": "上海",  
394 - "shareControl": 1,  
395 - "shareNum": 0,  
396 - "shopOpen": 0,  
397 - "storeUrl": "",  
398 - "subjectType": 0,  
399 - "userId": "",  
400 - "userName": "zhuaqu005",  
401 - "userType": "2",  
402 - "waresSwitch": 1  
403 - }], 4 + "list": [
  5 + {
  6 + "attentionNum": 0,
  7 + "authIcon": "",
  8 + "authId": 0,
  9 + "authPersonal": "",
  10 + "authTitle": "",
  11 + "categoryAuth": "",
  12 + "city": "110100",
  13 + "cnAttentionNum": 0,
  14 + "cnCollectNum": 0,
  15 + "cnCommentNum": 0,
  16 + "cnFansNum": 4,
  17 + "cnIsAttention": 1,
  18 + "cnIsComment": 1,
  19 + "cnIsLike": 1,
  20 + "cnLikeNum": 0,
  21 + "cnLiveCommentControl": 1,
  22 + "cnLiveGiftControl": 1,
  23 + "cnLiveLikeControl": 1,
  24 + "cnLiveShareControl": 1,
  25 + "cnMainControl": 1,
  26 + "cnRegistTime": 1695280071000,
  27 + "cnShareControl": 1,
  28 + "cnShareNum": 0,
  29 + "cnUserId": "444937588589253",
  30 + "cnUserName": "QACrawler2115",
  31 + "cnUserType": "2",
  32 + "collectNum": 0,
  33 + "creatorId": "3004862",
  34 + "district": "110101",
  35 + "fansNum": 0,
  36 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th211436299/GLN.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  37 + "honoraryIcon": "",
  38 + "honoraryTitle": "",
  39 + "introduction": "知识博主",
  40 + "isAttention": 1,
  41 + "isComment": 1,
  42 + "isLike": 1,
  43 + "isVisiable": 1,
  44 + "likeNum": 0,
  45 + "liveCommentControl": 1,
  46 + "liveGiftControl": 1,
  47 + "liveLikeControl": 1,
  48 + "liveShareControl": 1,
  49 + "posterShareControl": 1,
  50 + "province": "110000",
  51 + "publishNum": 0,
  52 + "region": "",
  53 + "shareControl": 1,
  54 + "shareNum": 0,
  55 + "shopOpen": 0,
  56 + "storeUrl": "",
  57 + "subjectType": 0,
  58 + "userId": "",
  59 + "userName": "QACrawler2115",
  60 + "userType": "2",
  61 + "waresSwitch": 1
  62 + },
  63 + {
  64 + "attentionNum": 0,
  65 + "authIcon": "",
  66 + "authId": 0,
  67 + "authPersonal": "",
  68 + "authTitle": "",
  69 + "categoryAuth": "",
  70 + "city": "230100",
  71 + "cnAttentionNum": 0,
  72 + "cnCollectNum": 0,
  73 + "cnCommentNum": 0,
  74 + "cnFansNum": 4,
  75 + "cnIsAttention": 1,
  76 + "cnIsComment": 1,
  77 + "cnIsLike": 1,
  78 + "cnLikeNum": 0,
  79 + "cnLiveCommentControl": 1,
  80 + "cnLiveGiftControl": 1,
  81 + "cnLiveLikeControl": 1,
  82 + "cnLiveShareControl": 1,
  83 + "cnMainControl": 1,
  84 + "cnRegistTime": 1695276994000,
  85 + "cnShareControl": 1,
  86 + "cnShareNum": 0,
  87 + "cnUserId": "444911718724933",
  88 + "cnUserName": "一休哥",
  89 + "cnUserType": "2",
  90 + "collectNum": 0,
  91 + "creatorId": "3004861",
  92 + "district": "230102",
  93 + "fansNum": 0,
  94 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th141630857/Ptx.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  95 + "honoraryIcon": "",
  96 + "honoraryTitle": "",
  97 + "introduction": "中文端号主",
  98 + "isAttention": 1,
  99 + "isComment": 1,
  100 + "isLike": 1,
  101 + "isVisiable": 1,
  102 + "likeNum": 0,
  103 + "liveCommentControl": 1,
  104 + "liveGiftControl": 1,
  105 + "liveLikeControl": 1,
  106 + "liveShareControl": 1,
  107 + "posterShareControl": 1,
  108 + "province": "230000",
  109 + "publishNum": 0,
  110 + "region": "安徽",
  111 + "shareControl": 1,
  112 + "shareNum": 0,
  113 + "shopOpen": 0,
  114 + "storeUrl": "",
  115 + "subjectType": 2,
  116 + "userId": "",
  117 + "userName": "一休哥",
  118 + "userType": "2",
  119 + "waresSwitch": 1
  120 + },
  121 + {
  122 + "attentionNum": 0,
  123 + "authIcon": "",
  124 + "authId": 0,
  125 + "authPersonal": "",
  126 + "authTitle": "",
  127 + "categoryAuth": "",
  128 + "city": "110100",
  129 + "cnAttentionNum": 0,
  130 + "cnCollectNum": 0,
  131 + "cnCommentNum": 12,
  132 + "cnFansNum": 8,
  133 + "cnIsAttention": 1,
  134 + "cnIsComment": 1,
  135 + "cnIsLike": 1,
  136 + "cnLikeNum": 2,
  137 + "cnLiveCommentControl": 1,
  138 + "cnLiveGiftControl": 1,
  139 + "cnLiveLikeControl": 1,
  140 + "cnLiveShareControl": 1,
  141 + "cnMainControl": 1,
  142 + "cnRegistTime": 1695275999000,
  143 + "cnShareControl": 1,
  144 + "cnShareNum": 1,
  145 + "cnUserId": "444903323309381",
  146 + "cnUserName": "0921媒体",
  147 + "cnUserType": "3",
  148 + "collectNum": 0,
  149 + "creatorId": "3004860",
  150 + "district": "110101",
  151 + "fansNum": 0,
  152 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th135954709/qdL.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  153 + "honoraryIcon": "",
  154 + "honoraryTitle": "",
  155 + "introduction": "0921媒体",
  156 + "isAttention": 1,
  157 + "isComment": 1,
  158 + "isLike": 1,
  159 + "isVisiable": 1,
  160 + "likeNum": 0,
  161 + "liveCommentControl": 1,
  162 + "liveGiftControl": 1,
  163 + "liveLikeControl": 1,
  164 + "liveShareControl": 1,
  165 + "posterShareControl": 0,
  166 + "province": "110000",
  167 + "publishNum": 0,
  168 + "region": "上海",
  169 + "shareControl": 1,
  170 + "shareNum": 0,
  171 + "shopOpen": 0,
  172 + "storeUrl": "",
  173 + "subjectType": 1,
  174 + "userId": "",
  175 + "userName": "0921媒体",
  176 + "userType": "3",
  177 + "waresSwitch": 1
  178 + },
  179 + {
  180 + "attentionNum": 0,
  181 + "authIcon": "",
  182 + "authId": 0,
  183 + "authPersonal": "",
  184 + "authTitle": "",
  185 + "categoryAuth": "",
  186 + "city": "110100",
  187 + "cnAttentionNum": 0,
  188 + "cnCollectNum": 0,
  189 + "cnCommentNum": 0,
  190 + "cnFansNum": 9,
  191 + "cnIsAttention": 1,
  192 + "cnIsComment": 1,
  193 + "cnIsLike": 1,
  194 + "cnLikeNum": 6,
  195 + "cnLiveCommentControl": 1,
  196 + "cnLiveGiftControl": 1,
  197 + "cnLiveLikeControl": 1,
  198 + "cnLiveShareControl": 1,
  199 + "cnMainControl": 1,
  200 + "cnRegistTime": 1695201858000,
  201 + "cnShareControl": 1,
  202 + "cnShareNum": 0,
  203 + "cnUserId": "444296355502149",
  204 + "cnUserName": "0920个人",
  205 + "cnUserType": "2",
  206 + "collectNum": 0,
  207 + "creatorId": "3004851",
  208 + "district": "110101",
  209 + "fansNum": 0,
  210 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We172415100/h2j.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  211 + "honoraryIcon": "https://cdn.aikan.pdnews.cn/image/picture/202312/20231223173451966FdV.png",
  212 + "honoraryTitle": "快乐星球",
  213 + "introduction": "账号简介",
  214 + "isAttention": 1,
  215 + "isComment": 1,
  216 + "isLike": 1,
  217 + "isVisiable": 1,
  218 + "likeNum": 0,
  219 + "liveCommentControl": 1,
  220 + "liveGiftControl": 1,
  221 + "liveLikeControl": 1,
  222 + "liveShareControl": 1,
  223 + "posterShareControl": 1,
  224 + "province": "110000",
  225 + "publishNum": 0,
  226 + "region": "上海",
  227 + "shareControl": 1,
  228 + "shareNum": 0,
  229 + "shopOpen": 0,
  230 + "storeUrl": "",
  231 + "subjectType": 0,
  232 + "userId": "",
  233 + "userName": "0920个人",
  234 + "userType": "2",
  235 + "waresSwitch": 1
  236 + },
  237 + {
  238 + "attentionNum": 0,
  239 + "authIcon": "",
  240 + "authId": 0,
  241 + "authPersonal": "",
  242 + "authTitle": "",
  243 + "categoryAuth": "",
  244 + "city": "120100",
  245 + "cnAttentionNum": 0,
  246 + "cnCollectNum": 0,
  247 + "cnCommentNum": 0,
  248 + "cnFansNum": 10,
  249 + "cnIsAttention": 1,
  250 + "cnIsComment": 1,
  251 + "cnIsLike": 1,
  252 + "cnLikeNum": 0,
  253 + "cnLiveCommentControl": 1,
  254 + "cnLiveGiftControl": 1,
  255 + "cnLiveLikeControl": 1,
  256 + "cnLiveShareControl": 1,
  257 + "cnMainControl": 1,
  258 + "cnRegistTime": 1695190066000,
  259 + "cnShareControl": 1,
  260 + "cnShareNum": 0,
  261 + "cnUserId": "444200272593477",
  262 + "cnUserName": "zhuaqu005",
  263 + "cnUserType": "2",
  264 + "collectNum": 0,
  265 + "creatorId": "3004849",
  266 + "district": "120101",
  267 + "fansNum": 0,
  268 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We140931534/CIX.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  269 + "honoraryIcon": "",
  270 + "honoraryTitle": "",
  271 + "introduction": "aaa",
  272 + "isAttention": 1,
  273 + "isComment": 1,
  274 + "isLike": 1,
  275 + "isVisiable": 1,
  276 + "likeNum": 0,
  277 + "liveCommentControl": 1,
  278 + "liveGiftControl": 1,
  279 + "liveLikeControl": 1,
  280 + "liveShareControl": 1,
  281 + "posterShareControl": 1,
  282 + "province": "120000",
  283 + "publishNum": 0,
  284 + "region": "上海",
  285 + "shareControl": 1,
  286 + "shareNum": 0,
  287 + "shopOpen": 0,
  288 + "storeUrl": "",
  289 + "subjectType": 0,
  290 + "userId": "",
  291 + "userName": "zhuaqu005",
  292 + "userType": "2",
  293 + "waresSwitch": 1
  294 + },
  295 + {
  296 + "attentionNum": 0,
  297 + "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/yellow.png",
  298 + "authId": 2,
  299 + "authPersonal": "",
  300 + "authTitle": "黄VV",
  301 + "categoryAuth": "黄VV",
  302 + "city": "120100",
  303 + "cnAttentionNum": 1,
  304 + "cnCollectNum": 1,
  305 + "cnCommentNum": 7,
  306 + "cnFansNum": 13,
  307 + "cnIsAttention": 1,
  308 + "cnIsComment": 1,
  309 + "cnIsLike": 1,
  310 + "cnLikeNum": 0,
  311 + "cnLiveCommentControl": 1,
  312 + "cnLiveGiftControl": 1,
  313 + "cnLiveLikeControl": 1,
  314 + "cnLiveShareControl": 1,
  315 + "cnMainControl": 1,
  316 + "cnRegistTime": 1695202406000,
  317 + "cnShareControl": 1,
  318 + "cnShareNum": 0,
  319 + "cnUserId": "444300764043333",
  320 + "cnUserName": "创作者账号7777",
  321 + "cnUserType": "2",
  322 + "collectNum": 0,
  323 + "creatorId": "3004853",
  324 + "district": "120101",
  325 + "fansNum": 0,
  326 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/image/creator/2023092715/4727ab5db7604dbbac9ffb94ed03614e.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  327 + "honoraryIcon": "",
  328 + "honoraryTitle": "",
  329 + "introduction": "协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作",
  330 + "isAttention": 1,
  331 + "isComment": 1,
  332 + "isLike": 1,
  333 + "isVisiable": 1,
  334 + "likeNum": 0,
  335 + "liveCommentControl": 1,
  336 + "liveGiftControl": 1,
  337 + "liveLikeControl": 1,
  338 + "liveShareControl": 1,
  339 + "posterShareControl": 0,
  340 + "province": "120000",
  341 + "publishNum": 0,
  342 + "region": "安徽",
  343 + "shareControl": 1,
  344 + "shareNum": 0,
  345 + "shopOpen": 1,
  346 + "storeUrl": "",
  347 + "subjectType": 0,
  348 + "userId": "",
  349 + "userName": "创作者账号7777",
  350 + "userType": "2",
  351 + "waresSwitch": 0
  352 + },
  353 + {
  354 + "attentionNum": 0,
  355 + "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/blue.png",
  356 + "authId": 1,
  357 + "authPersonal": "",
  358 + "authTitle": "黄袍加身V",
  359 + "categoryAuth": "黄袍加身V",
  360 + "city": "340100",
  361 + "cnAttentionNum": 9,
  362 + "cnCollectNum": 0,
  363 + "cnCommentNum": 3,
  364 + "cnFansNum": 9,
  365 + "cnIsAttention": 1,
  366 + "cnIsComment": 1,
  367 + "cnIsLike": 1,
  368 + "cnLikeNum": 7,
  369 + "cnLiveCommentControl": 1,
  370 + "cnLiveGiftControl": 1,
  371 + "cnLiveLikeControl": 1,
  372 + "cnLiveShareControl": 1,
  373 + "cnMainControl": 1,
  374 + "cnRegistTime": 1695260417000,
  375 + "cnShareControl": 1,
  376 + "cnShareNum": 0,
  377 + "cnUserId": "444776025830725",
  378 + "cnUserName": "李智恩3",
  379 + "cnUserType": "2",
  380 + "collectNum": 0,
  381 + "creatorId": "3004855",
  382 + "district": "340102",
  383 + "fansNum": 0,
  384 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th094010643/N5o.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  385 + "honoraryIcon": "",
  386 + "honoraryTitle": "",
  387 + "introduction": "IU",
  388 + "isAttention": 1,
  389 + "isComment": 1,
  390 + "isLike": 1,
  391 + "isVisiable": 1,
  392 + "likeNum": 0,
  393 + "liveCommentControl": 1,
  394 + "liveGiftControl": 1,
  395 + "liveLikeControl": 1,
  396 + "liveShareControl": 1,
  397 + "posterShareControl": 0,
  398 + "province": "340000",
  399 + "publishNum": 0,
  400 + "region": "安徽",
  401 + "shareControl": 1,
  402 + "shareNum": 0,
  403 + "shopOpen": 1,
  404 + "storeUrl": "",
  405 + "subjectType": 1,
  406 + "userId": "",
  407 + "userName": "李智恩3",
  408 + "userType": "2",
  409 + "waresSwitch": 0
  410 + }
  411 + ],
404 "pageNum": 1, 412 "pageNum": 1,
405 "pageSize": 20, 413 "pageSize": 20,
406 "totalCount": 7 414 "totalCount": 7
407 }, 415 },
408 "message": "Success", 416 "message": "Success",
409 "success": true, 417 "success": true,
410 - "timestamp": 1710742034894 418 + "timestamp": 1710989443354
411 } 419 }
  1 +{
  2 + "code": "0",
  3 + "data": [
  4 + {
  5 + "creatorId": "3004862",
  6 + "status": "0",
  7 + "userId": "567387477063621"
  8 + },
  9 + {
  10 + "creatorId": "3004861",
  11 + "status": "0",
  12 + "userId": "567387477063621"
  13 + },
  14 + {
  15 + "creatorId": "3004860",
  16 + "status": "0",
  17 + "userId": "567387477063621"
  18 + },
  19 + {
  20 + "creatorId": "3004851",
  21 + "status": "1",
  22 + "userId": "567387477063621"
  23 + },
  24 + {
  25 + "creatorId": "3004849",
  26 + "status": "1",
  27 + "userId": "567387477063621"
  28 + },
  29 + {
  30 + "creatorId": "3004853",
  31 + "status": "1",
  32 + "userId": "567387477063621"
  33 + },
  34 + {
  35 + "creatorId": "3004855",
  36 + "status": "0",
  37 + "userId": "567387477063621"
  38 + }
  39 + ],
  40 + "message": "Success",
  41 + "meta": null,
  42 + "requestId": "",
  43 + "success": true,
  44 + "timestamp": 1710989443648
  45 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "hasNext": 0,
  5 + "list": [
  6 + {
  7 + "avatarFrame": "",
  8 + "checkStatus": 0,
  9 + "commentContent": "车得修,歌也得唱不唱心里那口气儿就没了你哥我以前心里也有这股劲儿那时候我想的是什么想的是每天什么时候开始现在心里这股劲儿泄了我想的是每天什么时候结束心里有这股劲儿的时候你哥也摇滚过现在这股劲儿没了我天天想的都是这个是这个但你不能这样只要咱们继续唱大吉他就还在不唱就真的没了——《缝纫机乐队》",
  10 + "commentContentSensitive": "",
  11 + "commentLevel": 1,
  12 + "commentPics": "",
  13 + "commentSensitive": "",
  14 + "commentType": "2",
  15 + "createTime": "2024-03-21 13:37:13",
  16 + "fromCreatorId": "",
  17 + "fromDeviceId": "",
  18 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  19 + "fromUserId": "567387477063621",
  20 + "fromUserName": "人民日报网友aPrtq5",
  21 + "fromUserType": 1,
  22 + "h5Url": "",
  23 + "id": 303323,
  24 + "keyArticle": 0,
  25 + "likeNum": 0,
  26 + "parentCommentVo": null,
  27 + "parentId": -1,
  28 + "rootCommentId": 303323,
  29 + "sensitiveExist": 0,
  30 + "sensitiveShow": 1,
  31 + "shareInfo": {
  32 + "shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231012/image/content/7f1a342a809d4276aa975ba9e7fe2313.png",
  33 + "shareSummary": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是",
  34 + "shareTitle": "这是一个开始、请持续关注这是一个开始、请",
  35 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000633703-500000008559"
  36 + },
  37 + "targetId": "30000633703",
  38 + "targetRelId": "500000008559",
  39 + "targetRelObjectId": "2002",
  40 + "targetRelType": 1,
  41 + "targetStatus": 0,
  42 + "targetTitle": "这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注这是一个开始、请持续关注",
  43 + "targetType": 8,
  44 + "topicType": null,
  45 + "uuid": "a1944aa3-e598-44ea-b2c5-45a4fe0ba91f"
  46 + },
  47 + {
  48 + "avatarFrame": "",
  49 + "checkStatus": 0,
  50 + "commentContent": "我们都很好",
  51 + "commentContentSensitive": "",
  52 + "commentLevel": 1,
  53 + "commentPics": "",
  54 + "commentSensitive": "",
  55 + "commentType": "2",
  56 + "createTime": "2024-03-14 17:56:14",
  57 + "fromCreatorId": "",
  58 + "fromDeviceId": "",
  59 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  60 + "fromUserId": "567387477063621",
  61 + "fromUserName": "人民日报网友aPrtq5",
  62 + "fromUserType": 1,
  63 + "h5Url": "",
  64 + "id": 403449,
  65 + "keyArticle": 0,
  66 + "likeNum": 0,
  67 + "parentCommentVo": null,
  68 + "parentId": -1,
  69 + "rootCommentId": 403449,
  70 + "sensitiveExist": 0,
  71 + "sensitiveShow": 1,
  72 + "shareInfo": {
  73 + "shareCoverUrl": "",
  74 + "shareSummary": "人民日报,有品质的新闻",
  75 + "shareTitle": "丝路之美",
  76 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000654108-500000017213"
  77 + },
  78 + "targetId": "30000654108",
  79 + "targetRelId": "500000017213",
  80 + "targetRelObjectId": "2002",
  81 + "targetRelType": 1,
  82 + "targetStatus": 0,
  83 + "targetTitle": "丝路之美",
  84 + "targetType": 8,
  85 + "topicType": null,
  86 + "uuid": "1706ec91-8fb3-4704-bde3-fb454386e419"
  87 + },
  88 + {
  89 + "avatarFrame": "",
  90 + "checkStatus": 0,
  91 + "commentContent": "大家好",
  92 + "commentContentSensitive": "",
  93 + "commentLevel": 1,
  94 + "commentPics": "",
  95 + "commentSensitive": "",
  96 + "commentType": "2",
  97 + "createTime": "2024-03-14 17:56:04",
  98 + "fromCreatorId": "",
  99 + "fromDeviceId": "",
  100 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  101 + "fromUserId": "567387477063621",
  102 + "fromUserName": "人民日报网友aPrtq5",
  103 + "fromUserType": 1,
  104 + "h5Url": "",
  105 + "id": 403448,
  106 + "keyArticle": 0,
  107 + "likeNum": 0,
  108 + "parentCommentVo": null,
  109 + "parentId": -1,
  110 + "rootCommentId": 403448,
  111 + "sensitiveExist": 0,
  112 + "sensitiveShow": 1,
  113 + "shareInfo": {
  114 + "shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231012/image/content/b7170ff0d0954b389e7e9f8c3c1d777a.png",
  115 + "shareSummary": "人民日报,有品质的新闻",
  116 + "shareTitle": "展示发",
  117 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000633589-500000008382"
  118 + },
  119 + "targetId": "30000633589",
  120 + "targetRelId": "500000008382",
  121 + "targetRelObjectId": "2002",
  122 + "targetRelType": 1,
  123 + "targetStatus": 0,
  124 + "targetTitle": "展示发",
  125 + "targetType": 13,
  126 + "topicType": null,
  127 + "uuid": "17c5a8d9-622c-4b7a-bcd2-afc792fb8fb7"
  128 + },
  129 + {
  130 + "avatarFrame": "",
  131 + "checkStatus": 0,
  132 + "commentContent": "你好",
  133 + "commentContentSensitive": "",
  134 + "commentLevel": 1,
  135 + "commentPics": "",
  136 + "commentSensitive": "",
  137 + "commentType": "2",
  138 + "createTime": "2024-03-14 17:55:55",
  139 + "fromCreatorId": "",
  140 + "fromDeviceId": "",
  141 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  142 + "fromUserId": "567387477063621",
  143 + "fromUserName": "人民日报网友aPrtq5",
  144 + "fromUserType": 1,
  145 + "h5Url": "",
  146 + "id": 403447,
  147 + "keyArticle": 0,
  148 + "likeNum": 0,
  149 + "parentCommentVo": null,
  150 + "parentId": -1,
  151 + "rootCommentId": 403447,
  152 + "sensitiveExist": 0,
  153 + "sensitiveShow": 1,
  154 + "shareInfo": {
  155 + "shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231103/image/content/046db0ef912f43dda639009e2b78a774.png",
  156 + "shareSummary": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然-导读",
  157 + "shareTitle": "复测-坐船观鸟,骑行散步,通州125处湿",
  158 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000637972-500000010900"
  159 + },
  160 + "targetId": "30000637972",
  161 + "targetRelId": "500000010900",
  162 + "targetRelObjectId": "2002",
  163 + "targetRelType": 1,
  164 + "targetStatus": 0,
  165 + "targetTitle": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然",
  166 + "targetType": 8,
  167 + "topicType": null,
  168 + "uuid": "f809d73f-a66c-4dd6-a4cf-99e3a9c9621e"
  169 + },
  170 + {
  171 + "avatarFrame": "",
  172 + "checkStatus": 0,
  173 + "commentContent": "你好",
  174 + "commentContentSensitive": "",
  175 + "commentLevel": 1,
  176 + "commentPics": "",
  177 + "commentSensitive": "",
  178 + "commentType": "2",
  179 + "createTime": "2024-03-14 17:55:55",
  180 + "fromCreatorId": "",
  181 + "fromDeviceId": "",
  182 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  183 + "fromUserId": "567387477063621",
  184 + "fromUserName": "人民日报网友aPrtq5",
  185 + "fromUserType": 1,
  186 + "h5Url": "",
  187 + "id": 403447,
  188 + "keyArticle": 0,
  189 + "likeNum": 0,
  190 + "parentCommentVo": null,
  191 + "parentId": -1,
  192 + "rootCommentId": 403447,
  193 + "sensitiveExist": 0,
  194 + "sensitiveShow": 1,
  195 + "shareInfo": {
  196 + "shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231103/image/content/046db0ef912f43dda639009e2b78a774.png",
  197 + "shareSummary": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然-导读",
  198 + "shareTitle": "复测-坐船观鸟,骑行散步,通州125处湿",
  199 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000637972-500000010900"
  200 + },
  201 + "targetId": "30000637972",
  202 + "targetRelId": "500000010900",
  203 + "targetRelObjectId": "2002",
  204 + "targetRelType": 1,
  205 + "targetStatus": 0,
  206 + "targetTitle": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然",
  207 + "targetType": 8,
  208 + "topicType": null,
  209 + "uuid": "f809d73f-a66c-4dd6-a4cf-99e3a9c9621e"
  210 + },
  211 + {
  212 + "avatarFrame": "",
  213 + "checkStatus": 0,
  214 + "commentContent": "你好",
  215 + "commentContentSensitive": "",
  216 + "commentLevel": 1,
  217 + "commentPics": "",
  218 + "commentSensitive": "",
  219 + "commentType": "2",
  220 + "createTime": "2024-03-14 17:55:55",
  221 + "fromCreatorId": "",
  222 + "fromDeviceId": "",
  223 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  224 + "fromUserId": "567387477063621",
  225 + "fromUserName": "人民日报网友aPrtq5",
  226 + "fromUserType": 1,
  227 + "h5Url": "",
  228 + "id": 403447,
  229 + "keyArticle": 0,
  230 + "likeNum": 0,
  231 + "parentCommentVo": null,
  232 + "parentId": -1,
  233 + "rootCommentId": 403447,
  234 + "sensitiveExist": 0,
  235 + "sensitiveShow": 1,
  236 + "shareInfo": {
  237 + "shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231103/image/content/046db0ef912f43dda639009e2b78a774.png",
  238 + "shareSummary": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然-导读",
  239 + "shareTitle": "复测-坐船观鸟,骑行散步,通州125处湿",
  240 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000637972-500000010900"
  241 + },
  242 + "targetId": "30000637972",
  243 + "targetRelId": "500000010900",
  244 + "targetRelObjectId": "2002",
  245 + "targetRelType": 1,
  246 + "targetStatus": 0,
  247 + "targetTitle": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然",
  248 + "targetType": 8,
  249 + "topicType": null,
  250 + "uuid": "f809d73f-a66c-4dd6-a4cf-99e3a9c9621e"
  251 + },
  252 + {
  253 + "avatarFrame": "",
  254 + "checkStatus": 0,
  255 + "commentContent": "你好",
  256 + "commentContentSensitive": "",
  257 + "commentLevel": 1,
  258 + "commentPics": "",
  259 + "commentSensitive": "",
  260 + "commentType": "2",
  261 + "createTime": "2024-03-14 17:55:55",
  262 + "fromCreatorId": "",
  263 + "fromDeviceId": "",
  264 + "fromUserHeader": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png?x-oss-process=image/resize,l_100/auto-orient,1/quality,q_90/format,jpg",
  265 + "fromUserId": "567387477063621",
  266 + "fromUserName": "人民日报网友aPrtq5",
  267 + "fromUserType": 1,
  268 + "h5Url": "",
  269 + "id": 403447,
  270 + "keyArticle": 0,
  271 + "likeNum": 0,
  272 + "parentCommentVo": null,
  273 + "parentId": -1,
  274 + "rootCommentId": 403447,
  275 + "sensitiveExist": 0,
  276 + "sensitiveShow": 1,
  277 + "shareInfo": {
  278 + "shareCoverUrl": "http://sitcontentjdcdn.aikan.pdnews.cn/zhbj-20231103/image/content/046db0ef912f43dda639009e2b78a774.png",
  279 + "shareSummary": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然-导读",
  280 + "shareTitle": "复测-坐船观鸟,骑行散步,通州125处湿",
  281 + "shareUrl": "https://pd-people-sit.pdnews.cn/column/30000637972-500000010900"
  282 + },
  283 + "targetId": "30000637972",
  284 + "targetRelId": "500000010900",
  285 + "targetRelObjectId": "2002",
  286 + "targetRelType": 1,
  287 + "targetStatus": 0,
  288 + "targetTitle": "复测-坐船观鸟,骑行散步,通州125处湿地邀您亲近自然",
  289 + "targetType": 8,
  290 + "topicType": null,
  291 + "uuid": "f809d73f-a66c-4dd6-a4cf-99e3a9c9621e"
  292 + }
  293 + ],
  294 + "pageNum": 1,
  295 + "pageSize": 20,
  296 + "totalCommentNum": 4,
  297 + "totalCount": 4
  298 + },
  299 + "message": "Success",
  300 + "meta": null,
  301 + "requestId": "",
  302 + "success": true,
  303 + "timestamp": 1711092987342
  304 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "hasNext": 0,
  5 + "list": [
  6 + {
  7 + "attentionCreatorId": "3214877",
  8 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/ueditor/image/20231227/a_924511395855200256.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  9 + "attentionNum": 0,
  10 + "attentionUserId": "508051203257158",
  11 + "attentionUserName": "北京交通运输职业学院",
  12 + "attentionUserType": 2,
  13 + "authIcon": "",
  14 + "authId": 0,
  15 + "authPersional": "",
  16 + "authTitle": "",
  17 + "banControl": 0,
  18 + "categoryAuth": "",
  19 + "cnLiveCommentControl": 1,
  20 + "cnLiveGiftControl": 1,
  21 + "cnLiveLikeControl": 1,
  22 + "cnLiveShareControl": 1,
  23 + "cnShareControl": 1,
  24 + "collectNum": 0,
  25 + "commentNum": 0,
  26 + "createTime": 1710742365000,
  27 + "fansNum": 1,
  28 + "honoraryIcon": "",
  29 + "honoraryTitle": "",
  30 + "id": 100704,
  31 + "introduction": "北京交通运输职业学院",
  32 + "isAttention": null,
  33 + "isComment": 1,
  34 + "isLike": 1,
  35 + "isVisiable": 1,
  36 + "likeNum": 0,
  37 + "liveCommentControl": 1,
  38 + "liveGiftControl": 1,
  39 + "liveLikeControl": 1,
  40 + "liveShareControl": 1,
  41 + "mainControl": 1,
  42 + "posterShareControl": 1,
  43 + "registTime": 1599214346000,
  44 + "shareControl": 1,
  45 + "shareNum": 0,
  46 + "status": 1,
  47 + "subjectType": null,
  48 + "updateTime": 1710742365000,
  49 + "userId": "567387477063621",
  50 + "userType": 1
  51 + },
  52 + {
  53 + "attentionCreatorId": "3092827",
  54 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/user_app/201907/rmrb_Mw5PyAQe1563349003.jpg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  55 + "attentionNum": 0,
  56 + "attentionUserId": "507982569927494",
  57 + "attentionUserName": "3G楼市周刊合肥站",
  58 + "attentionUserType": 5,
  59 + "authIcon": "",
  60 + "authId": 0,
  61 + "authPersional": "",
  62 + "authTitle": "",
  63 + "banControl": 0,
  64 + "categoryAuth": "",
  65 + "cnLiveCommentControl": 1,
  66 + "cnLiveGiftControl": 1,
  67 + "cnLiveLikeControl": 1,
  68 + "cnLiveShareControl": 1,
  69 + "cnShareControl": 1,
  70 + "collectNum": 0,
  71 + "commentNum": 0,
  72 + "createTime": 1710410008000,
  73 + "fansNum": 1,
  74 + "honoraryIcon": "",
  75 + "honoraryTitle": "",
  76 + "id": 200711,
  77 + "introduction": "3G楼市周刊合肥站官方",
  78 + "isAttention": null,
  79 + "isComment": 1,
  80 + "isLike": 1,
  81 + "isVisiable": 1,
  82 + "likeNum": 0,
  83 + "liveCommentControl": 1,
  84 + "liveGiftControl": 1,
  85 + "liveLikeControl": 1,
  86 + "liveShareControl": 1,
  87 + "mainControl": 0,
  88 + "posterShareControl": 1,
  89 + "registTime": 1559098504000,
  90 + "shareControl": 1,
  91 + "shareNum": 0,
  92 + "status": 1,
  93 + "subjectType": null,
  94 + "updateTime": 1710410008000,
  95 + "userId": "567387477063621",
  96 + "userType": 1
  97 + },
  98 + {
  99 + "attentionCreatorId": "3022148",
  100 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/zw/bjh_image/1550310502_bb68cf1fc0ba566b3bdd77bb8648d7a8.jpeg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  101 + "attentionNum": 0,
  102 + "attentionUserId": "504980189045893",
  103 + "attentionUserName": "庐州房产网",
  104 + "attentionUserType": 2,
  105 + "authIcon": "",
  106 + "authId": 0,
  107 + "authPersional": "",
  108 + "authTitle": "",
  109 + "banControl": 0,
  110 + "categoryAuth": "",
  111 + "cnLiveCommentControl": 1,
  112 + "cnLiveGiftControl": 1,
  113 + "cnLiveLikeControl": 1,
  114 + "cnLiveShareControl": 1,
  115 + "cnShareControl": 1,
  116 + "collectNum": 0,
  117 + "commentNum": 0,
  118 + "createTime": 1710410008000,
  119 + "fansNum": 1,
  120 + "honoraryIcon": "",
  121 + "honoraryTitle": "",
  122 + "id": 200709,
  123 + "introduction": "专注古城庐州楼市资讯",
  124 + "isAttention": null,
  125 + "isComment": 1,
  126 + "isLike": 1,
  127 + "isVisiable": 1,
  128 + "likeNum": 0,
  129 + "liveCommentControl": 1,
  130 + "liveGiftControl": 1,
  131 + "liveLikeControl": 1,
  132 + "liveShareControl": 1,
  133 + "mainControl": 1,
  134 + "posterShareControl": 1,
  135 + "registTime": 1550310442000,
  136 + "shareControl": 1,
  137 + "shareNum": 0,
  138 + "status": 1,
  139 + "subjectType": null,
  140 + "updateTime": 1710410008000,
  141 + "userId": "567387477063621",
  142 + "userType": 1
  143 + },
  144 + {
  145 + "attentionCreatorId": "3214944",
  146 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/article_resource/image/1562575034_a1790012453b8d5e937e.jpeg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  147 + "attentionNum": 0,
  148 + "attentionUserId": "508051247641414",
  149 + "attentionUserName": "民警李建国",
  150 + "attentionUserType": 5,
  151 + "authIcon": "",
  152 + "authId": 0,
  153 + "authPersional": "",
  154 + "authTitle": "",
  155 + "banControl": 0,
  156 + "categoryAuth": "",
  157 + "cnLiveCommentControl": 1,
  158 + "cnLiveGiftControl": 1,
  159 + "cnLiveLikeControl": 1,
  160 + "cnLiveShareControl": 1,
  161 + "cnShareControl": 1,
  162 + "collectNum": 0,
  163 + "commentNum": 0,
  164 + "createTime": 1710410006000,
  165 + "fansNum": 1,
  166 + "honoraryIcon": "",
  167 + "honoraryTitle": "",
  168 + "id": 200708,
  169 + "introduction": "常州市公安局新北分局民警",
  170 + "isAttention": null,
  171 + "isComment": 1,
  172 + "isLike": 1,
  173 + "isVisiable": 1,
  174 + "likeNum": 0,
  175 + "liveCommentControl": 1,
  176 + "liveGiftControl": 1,
  177 + "liveLikeControl": 1,
  178 + "liveShareControl": 1,
  179 + "mainControl": 0,
  180 + "posterShareControl": 1,
  181 + "registTime": 1560152360000,
  182 + "shareControl": 1,
  183 + "shareNum": 0,
  184 + "status": 1,
  185 + "subjectType": null,
  186 + "updateTime": 1710410006000,
  187 + "userId": "567387477063621",
  188 + "userType": 1
  189 + },
  190 + {
  191 + "attentionCreatorId": "3215205",
  192 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/zw/bjh_image/1561779596_b5cdde910817d66e7561cf35cdb3b896.jpeg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  193 + "attentionNum": 0,
  194 + "attentionUserId": "504980472120453",
  195 + "attentionUserName": "日语酱",
  196 + "attentionUserType": 2,
  197 + "authIcon": "",
  198 + "authId": 0,
  199 + "authPersional": "",
  200 + "authTitle": "",
  201 + "banControl": 0,
  202 + "categoryAuth": "",
  203 + "cnLiveCommentControl": 1,
  204 + "cnLiveGiftControl": 1,
  205 + "cnLiveLikeControl": 1,
  206 + "cnLiveShareControl": 1,
  207 + "cnShareControl": 1,
  208 + "collectNum": 0,
  209 + "commentNum": 0,
  210 + "createTime": 1710410006000,
  211 + "fansNum": 1,
  212 + "honoraryIcon": "",
  213 + "honoraryTitle": "",
  214 + "id": 200707,
  215 + "introduction": "付出不亚于任何人的努力",
  216 + "isAttention": null,
  217 + "isComment": 1,
  218 + "isLike": 1,
  219 + "isVisiable": 1,
  220 + "likeNum": 0,
  221 + "liveCommentControl": 1,
  222 + "liveGiftControl": 1,
  223 + "liveLikeControl": 1,
  224 + "liveShareControl": 1,
  225 + "mainControl": 1,
  226 + "posterShareControl": 1,
  227 + "registTime": 1560474105000,
  228 + "shareControl": 1,
  229 + "shareNum": 0,
  230 + "status": 1,
  231 + "subjectType": null,
  232 + "updateTime": 1710410006000,
  233 + "userId": "567387477063621",
  234 + "userType": 1
  235 + },
  236 + {
  237 + "attentionCreatorId": "3258463",
  238 + "attentionHeadPhotoUrl": "",
  239 + "attentionNum": 0,
  240 + "attentionUserId": "508670671396102",
  241 + "attentionUserName": "西北大学4e82",
  242 + "attentionUserType": 5,
  243 + "authIcon": "",
  244 + "authId": 0,
  245 + "authPersional": "",
  246 + "authTitle": "",
  247 + "banControl": 0,
  248 + "categoryAuth": "",
  249 + "cnLiveCommentControl": 1,
  250 + "cnLiveGiftControl": 1,
  251 + "cnLiveLikeControl": 1,
  252 + "cnLiveShareControl": 1,
  253 + "cnShareControl": 1,
  254 + "collectNum": 0,
  255 + "commentNum": 0,
  256 + "createTime": 1710409996000,
  257 + "fansNum": 1,
  258 + "honoraryIcon": "",
  259 + "honoraryTitle": "",
  260 + "id": 200706,
  261 + "introduction": "西北大学",
  262 + "isAttention": null,
  263 + "isComment": 1,
  264 + "isLike": 1,
  265 + "isVisiable": 1,
  266 + "likeNum": 0,
  267 + "liveCommentControl": 1,
  268 + "liveGiftControl": 1,
  269 + "liveLikeControl": 1,
  270 + "liveShareControl": 1,
  271 + "mainControl": 0,
  272 + "posterShareControl": 1,
  273 + "registTime": 1555554106000,
  274 + "shareControl": 1,
  275 + "shareNum": 0,
  276 + "status": 1,
  277 + "subjectType": null,
  278 + "updateTime": 1710409996000,
  279 + "userId": "567387477063621",
  280 + "userType": 1
  281 + },
  282 + {
  283 + "attentionCreatorId": "3258486",
  284 + "attentionHeadPhotoUrl": "",
  285 + "attentionNum": 0,
  286 + "attentionUserId": "508670696660230",
  287 + "attentionUserName": "扬州大学93ba",
  288 + "attentionUserType": 5,
  289 + "authIcon": "",
  290 + "authId": 0,
  291 + "authPersional": "",
  292 + "authTitle": "",
  293 + "banControl": 0,
  294 + "categoryAuth": "",
  295 + "cnLiveCommentControl": 1,
  296 + "cnLiveGiftControl": 1,
  297 + "cnLiveLikeControl": 1,
  298 + "cnLiveShareControl": 1,
  299 + "cnShareControl": 1,
  300 + "collectNum": 0,
  301 + "commentNum": 0,
  302 + "createTime": 1710409996000,
  303 + "fansNum": 1,
  304 + "honoraryIcon": "",
  305 + "honoraryTitle": "",
  306 + "id": 200705,
  307 + "introduction": "扬州大学",
  308 + "isAttention": null,
  309 + "isComment": 1,
  310 + "isLike": 1,
  311 + "isVisiable": 1,
  312 + "likeNum": 0,
  313 + "liveCommentControl": 1,
  314 + "liveGiftControl": 1,
  315 + "liveLikeControl": 1,
  316 + "liveShareControl": 1,
  317 + "mainControl": 0,
  318 + "posterShareControl": 1,
  319 + "registTime": 1555659355000,
  320 + "shareControl": 1,
  321 + "shareNum": 0,
  322 + "status": 1,
  323 + "subjectType": null,
  324 + "updateTime": 1710409996000,
  325 + "userId": "567387477063621",
  326 + "userType": 1
  327 + },
  328 + {
  329 + "attentionCreatorId": "3258575",
  330 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/zw/bjh_image/1539067744_5149cb078d4ed272af470630be272023.jpeg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  331 + "attentionNum": 0,
  332 + "attentionUserId": "509369589284102",
  333 + "attentionUserName": "旅途",
  334 + "attentionUserType": 2,
  335 + "authIcon": "",
  336 + "authId": 0,
  337 + "authPersional": "",
  338 + "authTitle": "",
  339 + "banControl": 0,
  340 + "categoryAuth": "",
  341 + "cnLiveCommentControl": 1,
  342 + "cnLiveGiftControl": 1,
  343 + "cnLiveLikeControl": 1,
  344 + "cnLiveShareControl": 1,
  345 + "cnShareControl": 1,
  346 + "collectNum": 0,
  347 + "commentNum": 0,
  348 + "createTime": 1710409989000,
  349 + "fansNum": 1,
  350 + "honoraryIcon": "",
  351 + "honoraryTitle": "",
  352 + "id": 200704,
  353 + "introduction": "背包、骑车、旅行、一个人目睹沿途的风景~",
  354 + "isAttention": null,
  355 + "isComment": 1,
  356 + "isLike": 1,
  357 + "isVisiable": 1,
  358 + "likeNum": 0,
  359 + "liveCommentControl": 1,
  360 + "liveGiftControl": 1,
  361 + "liveLikeControl": 1,
  362 + "liveShareControl": 1,
  363 + "mainControl": 1,
  364 + "posterShareControl": 1,
  365 + "registTime": 1528884167000,
  366 + "shareControl": 1,
  367 + "shareNum": 0,
  368 + "status": 1,
  369 + "subjectType": null,
  370 + "updateTime": 1710409989000,
  371 + "userId": "567387477063621",
  372 + "userType": 1
  373 + },
  374 + {
  375 + "attentionCreatorId": "3258577",
  376 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/rmh/image/201905/201905160519269845.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  377 + "attentionNum": 0,
  378 + "attentionUserId": "509369595993350",
  379 + "attentionUserName": "陇海在线",
  380 + "attentionUserType": 2,
  381 + "authIcon": "",
  382 + "authId": 0,
  383 + "authPersional": "",
  384 + "authTitle": "",
  385 + "banControl": 0,
  386 + "categoryAuth": "",
  387 + "cnLiveCommentControl": 1,
  388 + "cnLiveGiftControl": 1,
  389 + "cnLiveLikeControl": 1,
  390 + "cnLiveShareControl": 1,
  391 + "cnShareControl": 1,
  392 + "collectNum": 0,
  393 + "commentNum": 0,
  394 + "createTime": 1710409989000,
  395 + "fansNum": 1,
  396 + "honoraryIcon": "",
  397 + "honoraryTitle": "",
  398 + "id": 200703,
  399 + "introduction": "在这里阅读陇海沿线城市暨淮海地区最新生活资讯!",
  400 + "isAttention": null,
  401 + "isComment": 1,
  402 + "isLike": 1,
  403 + "isVisiable": 1,
  404 + "likeNum": 0,
  405 + "liveCommentControl": 1,
  406 + "liveGiftControl": 1,
  407 + "liveLikeControl": 1,
  408 + "liveShareControl": 1,
  409 + "mainControl": 1,
  410 + "posterShareControl": 1,
  411 + "registTime": 1529015167000,
  412 + "shareControl": 1,
  413 + "shareNum": 0,
  414 + "status": 1,
  415 + "subjectType": null,
  416 + "updateTime": 1710409989000,
  417 + "userId": "567387477063621",
  418 + "userType": 1
  419 + },
  420 + {
  421 + "attentionCreatorId": "3258596",
  422 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/rmh/image/201911/201911271018567208.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  423 + "attentionNum": 0,
  424 + "attentionUserId": "509403474238726",
  425 + "attentionUserName": "建筑界",
  426 + "attentionUserType": 2,
  427 + "authIcon": "",
  428 + "authId": 0,
  429 + "authPersional": "",
  430 + "authTitle": "",
  431 + "banControl": 0,
  432 + "categoryAuth": "",
  433 + "cnLiveCommentControl": 1,
  434 + "cnLiveGiftControl": 1,
  435 + "cnLiveLikeControl": 1,
  436 + "cnLiveShareControl": 1,
  437 + "cnShareControl": 1,
  438 + "collectNum": 0,
  439 + "commentNum": 0,
  440 + "createTime": 1710409988000,
  441 + "fansNum": 1,
  442 + "honoraryIcon": "",
  443 + "honoraryTitle": "",
  444 + "id": 200702,
  445 + "introduction": "匠者仁心",
  446 + "isAttention": null,
  447 + "isComment": 1,
  448 + "isLike": 1,
  449 + "isVisiable": 1,
  450 + "likeNum": 0,
  451 + "liveCommentControl": 1,
  452 + "liveGiftControl": 1,
  453 + "liveLikeControl": 1,
  454 + "liveShareControl": 1,
  455 + "mainControl": 1,
  456 + "posterShareControl": 1,
  457 + "registTime": 1550712472000,
  458 + "shareControl": 1,
  459 + "shareNum": 0,
  460 + "status": 1,
  461 + "subjectType": null,
  462 + "updateTime": 1710409988000,
  463 + "userId": "567387477063621",
  464 + "userType": 1
  465 + },
  466 + {
  467 + "attentionCreatorId": "3258601",
  468 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/zw/bjh_image/1552718233_f0290f15dcbbb41d3af7ad9ed3099621.jpeg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  469 + "attentionNum": 0,
  470 + "attentionUserId": "509403475746054",
  471 + "attentionUserName": "芳芳喜欢的科技课堂",
  472 + "attentionUserType": 2,
  473 + "authIcon": "",
  474 + "authId": 0,
  475 + "authPersional": "",
  476 + "authTitle": "",
  477 + "banControl": 0,
  478 + "categoryAuth": "",
  479 + "cnLiveCommentControl": 1,
  480 + "cnLiveGiftControl": 1,
  481 + "cnLiveLikeControl": 1,
  482 + "cnLiveShareControl": 1,
  483 + "cnShareControl": 1,
  484 + "collectNum": 0,
  485 + "commentNum": 0,
  486 + "createTime": 1710409987000,
  487 + "fansNum": 1,
  488 + "honoraryIcon": "",
  489 + "honoraryTitle": "",
  490 + "id": 200701,
  491 + "introduction": "每天分享与科技有关的新鲜事儿",
  492 + "isAttention": null,
  493 + "isComment": 1,
  494 + "isLike": 1,
  495 + "isVisiable": 1,
  496 + "likeNum": 0,
  497 + "liveCommentControl": 1,
  498 + "liveGiftControl": 1,
  499 + "liveLikeControl": 1,
  500 + "liveShareControl": 1,
  501 + "mainControl": 1,
  502 + "posterShareControl": 1,
  503 + "registTime": 1552718173000,
  504 + "shareControl": 1,
  505 + "shareNum": 0,
  506 + "status": 1,
  507 + "subjectType": null,
  508 + "updateTime": 1710409987000,
  509 + "userId": "567387477063621",
  510 + "userType": 1
  511 + },
  512 + {
  513 + "attentionCreatorId": "3258611",
  514 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/zw/bjh_image/1551495924_33f73482b19cd64f0f3906b19043113a.jpeg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  515 + "attentionNum": 0,
  516 + "attentionUserId": "509403509734662",
  517 + "attentionUserName": "西平微传媒",
  518 + "attentionUserType": 2,
  519 + "authIcon": "",
  520 + "authId": 0,
  521 + "authPersional": "",
  522 + "authTitle": "",
  523 + "banControl": 0,
  524 + "categoryAuth": "",
  525 + "cnLiveCommentControl": 1,
  526 + "cnLiveGiftControl": 1,
  527 + "cnLiveLikeControl": 1,
  528 + "cnLiveShareControl": 1,
  529 + "cnShareControl": 1,
  530 + "collectNum": 0,
  531 + "commentNum": 0,
  532 + "createTime": 1710409986000,
  533 + "fansNum": 1,
  534 + "honoraryIcon": "",
  535 + "honoraryTitle": "",
  536 + "id": 200700,
  537 + "introduction": "西平县本地信息服务、热点追踪、关注民生。",
  538 + "isAttention": null,
  539 + "isComment": 1,
  540 + "isLike": 1,
  541 + "isVisiable": 1,
  542 + "likeNum": 0,
  543 + "liveCommentControl": 1,
  544 + "liveGiftControl": 1,
  545 + "liveLikeControl": 1,
  546 + "liveShareControl": 1,
  547 + "mainControl": 1,
  548 + "posterShareControl": 1,
  549 + "registTime": 1551495864000,
  550 + "shareControl": 1,
  551 + "shareNum": 0,
  552 + "status": 1,
  553 + "subjectType": null,
  554 + "updateTime": 1710409986000,
  555 + "userId": "567387477063621",
  556 + "userType": 1
  557 + },
  558 + {
  559 + "attentionCreatorId": "3258613",
  560 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//upload/ueditor/image/20191011/a_367272241198526464.jpg?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  561 + "attentionNum": 0,
  562 + "attentionUserId": "504980253394053",
  563 + "attentionUserName": "安庆生活",
  564 + "attentionUserType": 2,
  565 + "authIcon": "",
  566 + "authId": 0,
  567 + "authPersional": "",
  568 + "authTitle": "",
  569 + "banControl": 0,
  570 + "categoryAuth": "",
  571 + "cnLiveCommentControl": 1,
  572 + "cnLiveGiftControl": 1,
  573 + "cnLiveLikeControl": 1,
  574 + "cnLiveShareControl": 1,
  575 + "cnShareControl": 1,
  576 + "collectNum": 0,
  577 + "commentNum": 0,
  578 + "createTime": 1710409985000,
  579 + "fansNum": 1,
  580 + "honoraryIcon": "",
  581 + "honoraryTitle": "",
  582 + "id": 200699,
  583 + "introduction": "传播有价值的声音,记录生活,共享精彩!\n",
  584 + "isAttention": null,
  585 + "isComment": 1,
  586 + "isLike": 1,
  587 + "isVisiable": 1,
  588 + "likeNum": 0,
  589 + "liveCommentControl": 1,
  590 + "liveGiftControl": 1,
  591 + "liveLikeControl": 1,
  592 + "liveShareControl": 1,
  593 + "mainControl": 1,
  594 + "posterShareControl": 1,
  595 + "registTime": 1551433741000,
  596 + "shareControl": 1,
  597 + "shareNum": 0,
  598 + "status": 1,
  599 + "subjectType": null,
  600 + "updateTime": 1710409985000,
  601 + "userId": "567387477063621",
  602 + "userType": 1
  603 + },
  604 + {
  605 + "attentionCreatorId": "3004851",
  606 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We172415100/h2j.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  607 + "attentionNum": 0,
  608 + "attentionUserId": "444296355502149",
  609 + "attentionUserName": "0920个人",
  610 + "attentionUserType": 2,
  611 + "authIcon": "",
  612 + "authId": 0,
  613 + "authPersional": "",
  614 + "authTitle": "",
  615 + "banControl": 0,
  616 + "categoryAuth": "",
  617 + "cnLiveCommentControl": 1,
  618 + "cnLiveGiftControl": 1,
  619 + "cnLiveLikeControl": 1,
  620 + "cnLiveShareControl": 1,
  621 + "cnShareControl": 1,
  622 + "collectNum": 0,
  623 + "commentNum": 0,
  624 + "createTime": 1710409979000,
  625 + "fansNum": 9,
  626 + "honoraryIcon": "https://cdn.aikan.pdnews.cn/image/picture/202312/20231223173451966FdV.png",
  627 + "honoraryTitle": "快乐星球",
  628 + "id": 200698,
  629 + "introduction": "账号简介",
  630 + "isAttention": null,
  631 + "isComment": 1,
  632 + "isLike": 1,
  633 + "isVisiable": 1,
  634 + "likeNum": 6,
  635 + "liveCommentControl": 1,
  636 + "liveGiftControl": 1,
  637 + "liveLikeControl": 1,
  638 + "liveShareControl": 1,
  639 + "mainControl": 1,
  640 + "posterShareControl": 1,
  641 + "registTime": 1695201858000,
  642 + "shareControl": 1,
  643 + "shareNum": 0,
  644 + "status": 1,
  645 + "subjectType": null,
  646 + "updateTime": 1710409979000,
  647 + "userId": "567387477063621",
  648 + "userType": 1
  649 + },
  650 + {
  651 + "attentionCreatorId": "3004853",
  652 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/image/creator/2023092715/4727ab5db7604dbbac9ffb94ed03614e.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  653 + "attentionNum": 1,
  654 + "attentionUserId": "444300764043333",
  655 + "attentionUserName": "创作者账号7777",
  656 + "attentionUserType": 2,
  657 + "authIcon": "https://sitcontentjdcdn.aikan.pdnews.cn/creator-category/icon/auth/yellow.png",
  658 + "authId": 2,
  659 + "authPersional": "",
  660 + "authTitle": "黄VV",
  661 + "banControl": 0,
  662 + "categoryAuth": "黄VV",
  663 + "cnLiveCommentControl": 1,
  664 + "cnLiveGiftControl": 1,
  665 + "cnLiveLikeControl": 1,
  666 + "cnLiveShareControl": 1,
  667 + "cnShareControl": 1,
  668 + "collectNum": 1,
  669 + "commentNum": 7,
  670 + "createTime": 1710409979000,
  671 + "fansNum": 13,
  672 + "honoraryIcon": "",
  673 + "honoraryTitle": "",
  674 + "id": 200697,
  675 + "introduction": "协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作平台是进行团队开发、协作的系统,一般是基于互联网,也有用专业网的情况。协作平台的主要功能是:分工合作、进度控制、版本控制等功能。协作",
  676 + "isAttention": null,
  677 + "isComment": 1,
  678 + "isLike": 1,
  679 + "isVisiable": 1,
  680 + "likeNum": 0,
  681 + "liveCommentControl": 1,
  682 + "liveGiftControl": 1,
  683 + "liveLikeControl": 1,
  684 + "liveShareControl": 1,
  685 + "mainControl": 1,
  686 + "posterShareControl": 0,
  687 + "registTime": 1695202406000,
  688 + "shareControl": 1,
  689 + "shareNum": 0,
  690 + "status": 1,
  691 + "subjectType": null,
  692 + "updateTime": 1710409979000,
  693 + "userId": "567387477063621",
  694 + "userType": 1
  695 + },
  696 + {
  697 + "attentionCreatorId": "3004849",
  698 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309We140931534/CIX.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  699 + "attentionNum": 0,
  700 + "attentionUserId": "444200272593477",
  701 + "attentionUserName": "zhuaqu005",
  702 + "attentionUserType": 2,
  703 + "authIcon": "",
  704 + "authId": 0,
  705 + "authPersional": "",
  706 + "authTitle": "",
  707 + "banControl": 0,
  708 + "categoryAuth": "",
  709 + "cnLiveCommentControl": 1,
  710 + "cnLiveGiftControl": 1,
  711 + "cnLiveLikeControl": 1,
  712 + "cnLiveShareControl": 1,
  713 + "cnShareControl": 1,
  714 + "collectNum": 0,
  715 + "commentNum": 0,
  716 + "createTime": 1710409978000,
  717 + "fansNum": 10,
  718 + "honoraryIcon": "",
  719 + "honoraryTitle": "",
  720 + "id": 200696,
  721 + "introduction": "aaa",
  722 + "isAttention": null,
  723 + "isComment": 1,
  724 + "isLike": 1,
  725 + "isVisiable": 1,
  726 + "likeNum": 0,
  727 + "liveCommentControl": 1,
  728 + "liveGiftControl": 1,
  729 + "liveLikeControl": 1,
  730 + "liveShareControl": 1,
  731 + "mainControl": 1,
  732 + "posterShareControl": 1,
  733 + "registTime": 1695190066000,
  734 + "shareControl": 1,
  735 + "shareNum": 0,
  736 + "status": 1,
  737 + "subjectType": null,
  738 + "updateTime": 1710409978000,
  739 + "userId": "567387477063621",
  740 + "userType": 1
  741 + },
  742 + {
  743 + "attentionCreatorId": "3004841",
  744 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Tu155358686/Clu.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  745 + "attentionNum": 0,
  746 + "attentionUserId": "443539162419717",
  747 + "attentionUserName": "好主播007",
  748 + "attentionUserType": 2,
  749 + "authIcon": "",
  750 + "authId": 0,
  751 + "authPersional": "",
  752 + "authTitle": "",
  753 + "banControl": 0,
  754 + "categoryAuth": "",
  755 + "cnLiveCommentControl": 1,
  756 + "cnLiveGiftControl": 1,
  757 + "cnLiveLikeControl": 1,
  758 + "cnLiveShareControl": 1,
  759 + "cnShareControl": 1,
  760 + "collectNum": 0,
  761 + "commentNum": 0,
  762 + "createTime": 1710409975000,
  763 + "fansNum": 12,
  764 + "honoraryIcon": "",
  765 + "honoraryTitle": "",
  766 + "id": 200695,
  767 + "introduction": "qqq",
  768 + "isAttention": null,
  769 + "isComment": 1,
  770 + "isLike": 1,
  771 + "isVisiable": 1,
  772 + "likeNum": 0,
  773 + "liveCommentControl": 1,
  774 + "liveGiftControl": 1,
  775 + "liveLikeControl": 1,
  776 + "liveShareControl": 1,
  777 + "mainControl": 0,
  778 + "posterShareControl": 1,
  779 + "registTime": 1695110042000,
  780 + "shareControl": 1,
  781 + "shareNum": 0,
  782 + "status": 1,
  783 + "subjectType": null,
  784 + "updateTime": 1710409975000,
  785 + "userId": "567387477063621",
  786 + "userType": 1
  787 + },
  788 + {
  789 + "attentionCreatorId": "3004835",
  790 + "attentionHeadPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/20230919113007795/7uI.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg",
  791 + "attentionNum": 0,
  792 + "attentionUserId": "443416920261445",
  793 + "attentionUserName": "随风而起",
  794 + "attentionUserType": 2,
  795 + "authIcon": "",
  796 + "authId": 0,
  797 + "authPersional": "",
  798 + "authTitle": "",
  799 + "banControl": 0,
  800 + "categoryAuth": "",
  801 + "cnLiveCommentControl": 1,
  802 + "cnLiveGiftControl": 1,
  803 + "cnLiveLikeControl": 1,
  804 + "cnLiveShareControl": 1,
  805 + "cnShareControl": 1,
  806 + "collectNum": 0,
  807 + "commentNum": 0,
  808 + "createTime": 1710409975000,
  809 + "fansNum": 2291,
  810 + "honoraryIcon": "",
  811 + "honoraryTitle": "",
  812 + "id": 200694,
  813 + "introduction": "灰度号主",
  814 + "isAttention": null,
  815 + "isComment": 1,
  816 + "isLike": 1,
  817 + "isVisiable": 1,
  818 + "likeNum": 0,
  819 + "liveCommentControl": 1,
  820 + "liveGiftControl": 1,
  821 + "liveLikeControl": 1,
  822 + "liveShareControl": 1,
  823 + "mainControl": 0,
  824 + "posterShareControl": 1,
  825 + "registTime": 1695094442000,
  826 + "shareControl": 1,
  827 + "shareNum": 0,
  828 + "status": 1,
  829 + "subjectType": null,
  830 + "updateTime": 1710409975000,
  831 + "userId": "567387477063621",
  832 + "userType": 1
  833 + }
  834 + ],
  835 + "pageNum": 1,
  836 + "pageSize": 20,
  837 + "totalCount": 18
  838 + },
  839 + "message": "Success",
  840 + "meta": null,
  841 + "requestId": "",
  842 + "success": true,
  843 + "timestamp": 1710989304704
  844 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "articleCreation": 0,
  5 + "attentionNum": 22,
  6 + "authIcon": "",
  7 + "authId": 0,
  8 + "authPersonal": "",
  9 + "authTitle": "",
  10 + "avatarFrame": "",
  11 + "browseNum": 22,
  12 + "categoryAuth": "",
  13 + "city": "",
  14 + "cnContentPublish": 0,
  15 + "cnLivePublish": 0,
  16 + "cnShareControl": 0,
  17 + "collectNum": 4,
  18 + "commentNum": 0,
  19 + "contentPublish": 0,
  20 + "creatorId": "",
  21 + "district": "",
  22 + "dynamicControl": 0,
  23 + "dynamicCreation": 0,
  24 + "fansNum": 0,
  25 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png",
  26 + "honoraryIcon": "",
  27 + "honoraryTitle": "",
  28 + "introduction": "",
  29 + "isComment": 0,
  30 + "isLike": 0,
  31 + "livePublish": 0,
  32 + "liveSwitch": 1,
  33 + "mainControl": 1,
  34 + "originUserId": "",
  35 + "pictureCollectionCreation": 0,
  36 + "posterShareControl": 1,
  37 + "province": "",
  38 + "region": "安徽省",
  39 + "registTime": 1710227567000,
  40 + "reserveNum": 6,
  41 + "shareControl": 0,
  42 + "shareUrl": "",
  43 + "speakControl": 0,
  44 + "subjectType": 0,
  45 + "userId": "567387477063621",
  46 + "userName": "人民日报网友aPrtq5",
  47 + "userType": "1",
  48 + "videoCollectionCreation": 0,
  49 + "videoCreation": 0
  50 + },
  51 + "message": "Success",
  52 + "meta": null,
  53 + "requestId": "",
  54 + "success": true,
  55 + "timestamp": 1711357314033
  56 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "createTime": "2024-03-12 15:12:47",
  5 + "id": 132386,
  6 + "levelHead": "http://rmrb-video-content-sit.oss-cn-beijing.aliyuncs.com/sjbj-20240125/image/display/88c45bf56ac941b883c69bd8ed373164.png",
  7 + "levelId": 2,
  8 + "levelName": "初入武林",
  9 + "levelNum": 155,
  10 + "modifyTime": "2024-03-25 16:35:57",
  11 + "status": 1,
  12 + "userId": 567387477063621
  13 + },
  14 + "message": "Success",
  15 + "success": true,
  16 + "timestamp": 1711357314136
  17 +}
@@ -34,10 +34,12 @@ export { AboutPageUI } from "./components/page/about/AboutPageUI" @@ -34,10 +34,12 @@ export { AboutPageUI } from "./components/page/about/AboutPageUI"
34 34
35 export { PrivacySettingComponents } from "./components/page/PrivacySettingComponents" 35 export { PrivacySettingComponents } from "./components/page/PrivacySettingComponents"
36 36
37 -export { AppointmentListUI } from "./components/page/mine/AppointmentListUI" 37 +export { AppointmentListUI } from "./components/page/mine/appointment/AppointmentListUI"
38 38
39 export { AccountAndSecurityLayout } from "./components/page/AccountAndSecurityLayout" 39 export { AccountAndSecurityLayout } from "./components/page/AccountAndSecurityLayout"
40 40
41 export { SettingPasswordLayout } from "./components/page/SettingPasswordLayout" 41 export { SettingPasswordLayout } from "./components/page/SettingPasswordLayout"
42 42
43 export { FollowFirstTabsComponent } from "./components/page/mine/follow/FollowFirstTabsComponent" 43 export { FollowFirstTabsComponent } from "./components/page/mine/follow/FollowFirstTabsComponent"
  44 +
  45 +export { MyHomeComponent } from "./components/page/mine/MyHomeComponent"
@@ -17,15 +17,14 @@ const TAG = 'MinePageComponent'; @@ -17,15 +17,14 @@ const TAG = 'MinePageComponent';
17 export struct MinePageComponent { 17 export struct MinePageComponent {
18 //是否是创作者 18 //是否是创作者
19 @State isCreator:boolean = false 19 @State isCreator:boolean = false
20 - @State isLogin:boolean = true 20 + @State isLogin:boolean = true //默认 false 测试放开
21 @State personalData:MinePagePersonalFunctionsItem[] = [] 21 @State personalData:MinePagePersonalFunctionsItem[] = []
22 @State creatorData:MinePageCreatorFunctionsItem[] = [] 22 @State creatorData:MinePageCreatorFunctionsItem[] = []
23 @State moreData:MinePageMoreFunctionModel[] = [] 23 @State moreData:MinePageMoreFunctionModel[] = []
24 scroller: Scroller = new Scroller() 24 scroller: Scroller = new Scroller()
25 25
26 aboutToAppear(){ 26 aboutToAppear(){
27 - //登录信息 TODO  
28 - 27 + this.getUserLogin()
29 this.getFunctionData() 28 this.getFunctionData()
30 } 29 }
31 30
@@ -77,4 +76,15 @@ export struct MinePageComponent { @@ -77,4 +76,15 @@ export struct MinePageComponent {
77 .height('100%') 76 .height('100%')
78 } 77 }
79 78
  79 + getUserLogin() {
  80 + // let userid = await SPHelper.default.get(SpConstants.USER_ID,"")
  81 + // if(StringUtils.isNotEmpty(userid)){
  82 + // this.isLogin = true
  83 + // let userName = await SPHelper.default.get(SpConstants.USER_NAME,"") as string
  84 + // this.userName = userName
  85 + // }else{
  86 + // this.isLogin = false
  87 + // }
  88 + }
  89 +
80 } 90 }
@@ -64,7 +64,7 @@ export default struct MinePageCreatorFunctionUI { @@ -64,7 +64,7 @@ export default struct MinePageCreatorFunctionUI {
64 console.log(index+"") 64 console.log(index+"")
65 }).width('169lpx') 65 }).width('169lpx')
66 .height('117lpx') 66 .height('117lpx')
67 - }, item => item) 67 + })
68 } 68 }
69 .rowsTemplate('1fr') 69 .rowsTemplate('1fr')
70 .columnsTemplate('1fr 1fr 1fr 1fr') 70 .columnsTemplate('1fr 1fr 1fr 1fr')
  1 +import MinePageDatasModel from '../../../model/MinePageDatasModel'
1 import RouteManager from '../../../utils/RouteManager' 2 import RouteManager from '../../../utils/RouteManager'
  3 +const TAG = "MinePageUserSimpleInfoUI"
2 4
3 @Component 5 @Component
4 export default struct MinePageUserSimpleInfoUI { 6 export default struct MinePageUserSimpleInfoUI {
5 @Prop isLogin:boolean 7 @Prop isLogin:boolean
  8 + @State userName:string = "登陆注册"
  9 + @State headPhotoUrl:string = ""
  10 + @State levelHead:string = ""
  11 + @State levelId:number = 0
  12 +
  13 +
  14 + aboutToAppear(){
  15 + if(this.isLogin){
  16 + this.getUserInfo()
  17 + this.getUserLevel()
  18 + }
  19 + }
6 20
7 build(){ 21 build(){
8 Row(){ 22 Row(){
9 //头像 23 //头像
10 Stack(){ 24 Stack(){
11 - Button({type:ButtonType.Circle})  
12 - .backgroundColor($r('app.color.main_red'))  
13 - .width('110lpx')  
14 - .height('110lpx')  
15 - Image($r('app.media.mine_head_icon')) 25 + Image(this.headPhotoUrl)
  26 + .alt($r('app.media.default_head'))
16 .width('108lpx') 27 .width('108lpx')
17 .height('108lpx') 28 .height('108lpx')
18 .objectFit(ImageFit.Cover) 29 .objectFit(ImageFit.Cover)
19 .borderRadius(50) 30 .borderRadius(50)
20 - }.width('110lpx')  
21 - .height('110lpx') 31 +
  32 + Image(this.levelHead)
  33 + .width('120lpx')
  34 + .height('120lpx')
  35 + .objectFit(ImageFit.Cover)
  36 + .borderRadius(50)
  37 + }.width('120lpx')
  38 + .height('120lpx')
22 .alignContent(Alignment.Center) 39 .alignContent(Alignment.Center)
23 .onClick(()=>{ 40 .onClick(()=>{
24 - RouteManager.jumpNewPage("pages/TestPage") 41 + if(!this.isLogin){
  42 + // RouteManager.jumpNewPage("pages/SettingAboutPage")
  43 + }else {
  44 + RouteManager.jumpNewPage("pages/MyHomePage")
  45 + }
25 }) 46 })
26 47
27 if(this.isLogin){ 48 if(this.isLogin){
28 //昵称信息 49 //昵称信息
29 Column(){ 50 Column(){
30 Row(){ 51 Row(){
31 - Text("人民日报6G5E3T") 52 + Text(this.userName)
32 .fontColor($r('app.color.color_222222')) 53 .fontColor($r('app.color.color_222222'))
33 .maxLines(1) 54 .maxLines(1)
34 .textOverflow({ overflow: TextOverflow.Ellipsis }) 55 .textOverflow({ overflow: TextOverflow.Ellipsis })
@@ -47,7 +68,7 @@ export default struct MinePageUserSimpleInfoUI { @@ -47,7 +68,7 @@ export default struct MinePageUserSimpleInfoUI {
47 .width('84lpx') 68 .width('84lpx')
48 .height('29lpx') 69 .height('29lpx')
49 .objectFit(ImageFit.Auto) 70 .objectFit(ImageFit.Auto)
50 - Text("等级8") 71 + Text(`等级${this.levelId}`)
51 .textAlign(TextAlign.Center) 72 .textAlign(TextAlign.Center)
52 .fontColor($r('app.color.white')) 73 .fontColor($r('app.color.white'))
53 .fontSize('19lpx') 74 .fontSize('19lpx')
@@ -108,4 +129,25 @@ export default struct MinePageUserSimpleInfoUI { @@ -108,4 +129,25 @@ export default struct MinePageUserSimpleInfoUI {
108 @Styles setFullHeight(){ 129 @Styles setFullHeight(){
109 .height('100%') 130 .height('100%')
110 } 131 }
  132 +
  133 + getUserInfo(){
  134 + MinePageDatasModel.getUserDetailData(getContext(this)).then((value)=>{
  135 + if(value!=null){
  136 + this.userName = value.userName
  137 + this.headPhotoUrl = value.headPhotoUrl
  138 + }
  139 + }).catch((err:Error)=>{
  140 + console.log(TAG,JSON.stringify(err))
  141 + })
  142 + }
  143 + getUserLevel(){
  144 + MinePageDatasModel.getUserLevelData(getContext(this)).then((value)=>{
  145 + if(value!=null){
  146 + this.levelHead = value.levelHead
  147 + this.levelId = value.levelId
  148 + }
  149 + }).catch((err:Error)=>{
  150 + console.log(TAG,JSON.stringify(err))
  151 + })
  152 + }
111 } 153 }
  1 +import router from '@ohos.router';
  2 +import { StringUtils } from 'wdKit/src/main/ets/utils/StringUtils';
  3 +import MinePageDatasModel from '../../../model/MinePageDatasModel';
  4 +import { HomePageBottomComponent } from './home/HomePageBottomComponent';
  5 +
  6 +const TAG = "MyHomeComponent"
  7 +
  8 +@Component
  9 +export struct MyHomeComponent {
  10 + @State tileOpacity: number = 0;
  11 + firstPositionY:number = 0;
  12 + fontColor: string = '#999999'
  13 + selectedFontColor: string = '#000000'
  14 + @State currentIndex: number = 0
  15 + private controller: TabsController = new TabsController()
  16 + isChangeToUserEdit = false;
  17 +
  18 + @State userName:string = ""
  19 + @State headPhotoUrl:string = ""
  20 + @State levelHead:string = ""
  21 + @State levelId:number = 0
  22 + @State desc:string = "点击添加简介,让大家认识你" //text 搞两个样式,如果三行,就显示 另外一个text 没有显示高度的
  23 + @State isHasIntroduction: boolean = false
  24 + @State browseNum:number = 0//阅读数
  25 + @State commentNum:number = 0//评论数
  26 + @State attentionNum:number = 0//关注数
  27 + registTime:number = 0//账号注册时间
  28 + @State registerTimeForDay:number = 0
  29 +
  30 + aboutToAppear(){
  31 + this.getUserInfo()
  32 + this.getUserLevel()
  33 + }
  34 +
  35 + build() {
  36 + Stack({ alignContent: Alignment.Top }){
  37 + Image($r('app.media.title_bg'))
  38 + .width('100%')
  39 + .height('355lpx')
  40 + .objectFit(ImageFit.Cover)
  41 +
  42 + Column(){
  43 + Stack({ alignContent: Alignment.Top }){
  44 + this.MineHomeTitleTransparent()
  45 + this.MineHomeTitleWhite()
  46 + }
  47 +
  48 + Scroll() {
  49 + Column() {
  50 + //用户信息区域
  51 + Row() {
  52 + Stack(){
  53 + Image(this.headPhotoUrl)
  54 + .alt($r('app.media.default_head'))
  55 + .width('115lpx')
  56 + .height('115lpx')
  57 + .objectFit(ImageFit.Cover)
  58 + .borderRadius(50)
  59 + Image(this.levelHead)
  60 + .width('130lpx')
  61 + .height('130lpx')
  62 + .objectFit(ImageFit.Cover)
  63 + .borderRadius(50)
  64 + }
  65 + Column() {
  66 + Row() {
  67 + Text(`${this.userName}`)
  68 + .fontColor($r('app.color.white'))
  69 + .maxLines(1)
  70 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  71 + .fontSize('38lpx')
  72 + .lineHeight('50lpx')
  73 + .fontWeight('500lpx')
  74 +
  75 + Text(`等级${this.levelId}`)
  76 + .textAlign(TextAlign.Center)
  77 + .fontColor($r('app.color.color_ED2800'))
  78 + .backgroundColor($r('app.color.white'))
  79 + .fontSize('19lpx')
  80 + .width('96lpx')
  81 + .height('35lpx')
  82 + .margin({ left: '10lpx' })
  83 + Blank()
  84 + }.width('507lpx')
  85 +
  86 + Row() {
  87 + Row() {
  88 + Text(`${this.browseNum}`)
  89 + .textStyle()
  90 + Text("阅读")
  91 + .textStyle2()
  92 + }
  93 + .margin({ right: '15lpx' })
  94 +
  95 + Divider()
  96 + .height('19lpx')
  97 + .width('2lpx')
  98 + .color($r('app.color.white'))
  99 + .vertical(true)
  100 + .opacity(0.4)
  101 + Row() {
  102 + Text(`${this.commentNum}`)
  103 + .textStyle()
  104 + Text("评论")
  105 + .textStyle2()
  106 + }.margin({ right: '15lpx', left: '15lpx' })
  107 +
  108 + Divider()
  109 + .height('19lpx')
  110 + .width('2lpx')
  111 + .color($r('app.color.white'))
  112 + .vertical(true)
  113 + .opacity(0.4)
  114 + Row() {
  115 + Text(`${this.attentionNum}`)
  116 + .textStyle()
  117 + Text("关注")
  118 + .textStyle2()
  119 + }.margin({ left: '15lpx' })
  120 + }.margin({ top: '23lpx' })
  121 + }.alignItems(HorizontalAlign.Start)
  122 + .margin({ left: '32lpx' })
  123 + }
  124 + .onAreaChange((oldValue: Area, newValue: Area) => {
  125 + if (this.firstPositionY === 0) {
  126 + this.firstPositionY = newValue.globalPosition.y as number
  127 + }else{
  128 + let persent = (this.firstPositionY - Number(newValue.globalPosition.y)) / (this.firstPositionY * 0.3)
  129 + if(persent > 1){
  130 + persent = 1
  131 + }
  132 + this.tileOpacity = persent
  133 + }
  134 + })
  135 + .backgroundColor($r('app.color.color_transparent'))
  136 + .height('184lpx')
  137 + .width('100%')
  138 + .padding({ left: '35lpx' })
  139 + //用户简介区域
  140 + Column() {
  141 + Row() {
  142 + Text(this.desc)
  143 + .fontSize('27lpx')
  144 + .maxLines(3)
  145 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  146 + .lineHeight('40lpx')
  147 + .fontWeight('400lpx')
  148 + .fontColor(this.isHasIntroduction?$r('app.color.color_222222'):$r('app.color.color_999999'))
  149 + .textAlign(TextAlign.Start)
  150 +
  151 + if(!this.isHasIntroduction){
  152 + Image($r('app.media.user_info_edit_icon'))
  153 + .width('27lpx')
  154 + .height('27lpx')
  155 + .objectFit(ImageFit.Auto)
  156 + }
  157 + }
  158 + Text(`来到人民日报${this.registerTimeForDay}天`)
  159 + .fontSize('23lpx')
  160 + .lineHeight('25lpx')
  161 + .fontWeight('400lpx')
  162 + .fontColor($r('app.color.color_999999'))
  163 + .textAlign(TextAlign.Start)
  164 + .margin({ top: '15lpx' })
  165 +
  166 + }.padding({ left: '31lpx',right:'31lpx',top:'19lpx',bottom:'31lpx'})
  167 + .alignItems(HorizontalAlign.Start)
  168 + .justifyContent(FlexAlign.Center)
  169 + .width('100%')
  170 + .backgroundColor($r('app.color.white'))
  171 + //间隔符
  172 +
  173 + Divider().width('100%').height('12lpx').color($r('app.color.color_F5F5F5')).strokeWidth('12lpx')
  174 +
  175 + //tab 页面
  176 + Tabs({controller: this.controller}) {
  177 + TabContent() {
  178 + HomePageBottomComponent({style:0})
  179 + }.tabBar(this.TabBuilder(0,"评论"))
  180 + TabContent() {
  181 + HomePageBottomComponent({style:1})
  182 + }.tabBar(this.TabBuilder(1,"关注"))
  183 + }
  184 + .backgroundColor($r('app.color.white'))
  185 + .animationDuration(0)
  186 + .onChange((index: number) => {
  187 + this.currentIndex = index
  188 + })
  189 + .vertical(false)
  190 + .height("100%")
  191 + }.width("100%")
  192 + }
  193 + .edgeEffect(EdgeEffect.None)
  194 + .scrollBar(BarState.Off)
  195 + .width('100%')
  196 + .height('100%')
  197 + }
  198 + }.width('100%')
  199 + .height('100%')
  200 +
  201 + }
  202 + @Builder MineHomeTitleTransparent() {
  203 + RelativeContainer() {
  204 + //标题栏目
  205 + Image($r('app.media.icon_arrow_left_white') )
  206 + .width('46lpx')
  207 + .height('46lpx')
  208 + .objectFit(ImageFit.Auto)
  209 + .id("back_icon")
  210 + .alignRules({
  211 + center: { anchor: "__container__", align: VerticalAlign.Center },
  212 + left: { anchor: "__container__", align: HorizontalAlign.Start }
  213 + })
  214 + .margin({ left: '31lpx' })
  215 + .onClick(() => {
  216 + router.back()
  217 + })
  218 +
  219 + Text("编辑资料")
  220 + .height('42lpx')
  221 + .maxLines(1)
  222 + .id("rightText")
  223 + .fontSize('35lpx')
  224 + .fontWeight('400lpx')
  225 + .fontColor($r('app.color.white') )
  226 + .lineHeight('42lpx')
  227 + .alignRules({
  228 + center: { anchor: "__container__", align: VerticalAlign.Center },
  229 + right: { anchor: "__container__", align: HorizontalAlign.End }
  230 + })
  231 + .margin({ right: '31lpx' })
  232 + .onClick(()=>{
  233 + this.editUserInfo()
  234 + })
  235 + }
  236 + .visibility(this.tileOpacity > 0 ? 1 : 0)
  237 + .height('84lpx')
  238 + .width('100%')
  239 + .backgroundColor($r('app.color.color_transparent'))
  240 + }
  241 +
  242 +
  243 + @Builder MineHomeTitleWhite() {
  244 + RelativeContainer() {
  245 + //标题栏目
  246 + Image($r('app.media.back_icon'))
  247 + .width('46lpx')
  248 + .height('46lpx')
  249 + .objectFit(ImageFit.Auto)
  250 + .id("back_icon")
  251 + .alignRules({
  252 + center: { anchor: "__container__", align: VerticalAlign.Center },
  253 + left: { anchor: "__container__", align: HorizontalAlign.Start }
  254 + })
  255 + .margin({ left: '31lpx' })
  256 + .onClick(() => {
  257 + router.back()
  258 + })
  259 + Image($r('app.media.default_head'))
  260 + .width('60lpx')
  261 + .height('60lpx')
  262 + .objectFit(ImageFit.Auto)
  263 + .id("head_icon")
  264 + .alignRules({
  265 + center: { anchor: "__container__", align: VerticalAlign.Center },
  266 + left: { anchor: "back_icon", align: HorizontalAlign.End }
  267 + })
  268 + .margin({ left: '31lpx' })
  269 + .onClick(() => {
  270 + router.back()
  271 + })
  272 +
  273 + Text("我的昵称")
  274 + .height('42lpx')
  275 + .maxLines(1)
  276 + .id("title")
  277 + .fontSize('35lpx')
  278 + .fontWeight('400lpx')
  279 + .fontColor($r('app.color.color_222222'))
  280 + .lineHeight('42lpx')
  281 + .alignRules({
  282 + center: { anchor: "__container__", align: VerticalAlign.Center },
  283 + left: { anchor: "head_icon", align: HorizontalAlign.End }
  284 + })
  285 + .margin({ left: '12lpx' })
  286 +
  287 + Text("编辑资料")
  288 + .height('42lpx')
  289 + .maxLines(1)
  290 + .id("rightText")
  291 + .fontSize('35lpx')
  292 + .fontWeight('400lpx')
  293 + .fontColor($r('app.color.color_222222'))
  294 + .lineHeight('42lpx')
  295 + .alignRules({
  296 + center: { anchor: "__container__", align: VerticalAlign.Center },
  297 + right: { anchor: "__container__", align: HorizontalAlign.End }
  298 + })
  299 + .margin({ right: '31lpx' })
  300 + .onClick(()=>{
  301 + this.editUserInfo()
  302 + })
  303 + }
  304 + .visibility(this.tileOpacity > 0 ? 0 : 1)
  305 + .height('84lpx')
  306 + .width('100%')
  307 + .backgroundColor($r('app.color.white'))
  308 + .opacity(this.tileOpacity )
  309 +
  310 + }
  311 +
  312 + @Builder TabBuilder(index: number, title: string) {
  313 + Stack(){
  314 + Text(title)
  315 + .height('38lpx')
  316 + .fontSize('33lpx')
  317 + .fontWeight(this.currentIndex === index ? 600 : 400)
  318 + .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
  319 + .lineHeight('38lpx')
  320 +
  321 + if(this.currentIndex === index){
  322 + Divider()
  323 + .width('31lpx')
  324 + .height('4lpx')
  325 + .color('#ED2800')
  326 + .strokeWidth('4lpx')
  327 + .margin({top:'50lpx'})
  328 + .id("divTag")
  329 + }
  330 + }.onClick(()=>{
  331 + this.currentIndex = index
  332 + this.controller.changeIndex(this.currentIndex)
  333 + })
  334 + .height('100%')
  335 + .width('100%')
  336 + .margin({right:'9lpx'})
  337 + }
  338 +
  339 + /**
  340 + * 跳转编辑资料(防止二次点击)
  341 + */
  342 + editUserInfo(){
  343 + if(!this.isChangeToUserEdit){
  344 + this.isChangeToUserEdit = true;
  345 + let c = setInterval(() => {
  346 + this.isChangeToUserEdit = false
  347 + }, 1000);
  348 + //route 跳转写这里 TODO
  349 + }
  350 + }
  351 +
  352 + getUserInfo(){
  353 + MinePageDatasModel.getUserDetailData(getContext(this)).then((value)=>{
  354 + if(value!=null){
  355 + this.userName = value.userName
  356 + this.headPhotoUrl = value.headPhotoUrl
  357 + if(StringUtils.isNotEmpty(value.introduction)){
  358 + this.desc = value.introduction
  359 + this.isHasIntroduction = true
  360 + }
  361 + this.browseNum = value.browseNum
  362 + this.commentNum = value.commentNum
  363 + this.attentionNum = value.attentionNum
  364 + this.registTime = value.registTime
  365 + this.getRegisterDays()
  366 + }
  367 + }).catch((err:Error)=>{
  368 + console.log(TAG,JSON.stringify(err))
  369 + })
  370 + }
  371 + getUserLevel(){
  372 + MinePageDatasModel.getUserLevelData(getContext(this)).then((value)=>{
  373 + if(value!=null){
  374 + this.levelHead = value.levelHead
  375 + this.levelId = value.levelId
  376 + }
  377 + }).catch((err:Error)=>{
  378 + console.log(TAG,JSON.stringify(err))
  379 + })
  380 + }
  381 + getRegisterDays(){
  382 + if(this.registTime!=null){
  383 + let curDate = new Date()
  384 + this.registerTimeForDay = Math.ceil((curDate.getTime()-this.registTime)/(1000*60*60*24))
  385 + }
  386 + }
  387 +}
  388 +
  389 +@Extend(Text) function textStyle() {
  390 + .fontColor($r('app.color.white'))
  391 + .textStyleDefault()
  392 + .margin({ right: '10lpx' })
  393 +}
  394 +
  395 +@Extend(Text) function textStyle2() {
  396 + .textStyleDefault()
  397 + .fontColor($r('app.color.color_B2FFFFFF'))
  398 +}
  399 +
  400 +@Extend(Text) function textStyleDefault() {
  401 + .textAlign(TextAlign.Start)
  402 + .fontSize('23lpx')
  403 + .fontWeight('400lpx')
  404 + .lineHeight('31lpx')
  405 +}
1 -import { MineAppointmentItem } from '../../../viewmodel/MineAppointmentItem' 1 +import { MineAppointmentItem } from '../../../../viewmodel/MineAppointmentItem'
2 2
3 @Component 3 @Component
4 export struct AppointmentListChildComponent{ 4 export struct AppointmentListChildComponent{
@@ -82,22 +82,22 @@ export struct AppointmentListChildComponent{ @@ -82,22 +82,22 @@ export struct AppointmentListChildComponent{
82 .backgroundColor($r('app.color.color_F5F5F5')) 82 .backgroundColor($r('app.color.color_F5F5F5'))
83 .borderRadius('4lpx') 83 .borderRadius('4lpx')
84 Blank() 84 Blank()
85 - .layoutWeight(1) 85 + .layoutWeight(1)
86 if(this.item.relType === 1){ 86 if(this.item.relType === 1){
87 - Text(this.item.isAppointment?"已预约":"预约")  
88 - .fontWeight(400)  
89 - .fontSize('23lpx')  
90 - .backgroundColor(this.item.isAppointment?$r('app.color.color_F5F5F5'):$r('app.color.color_ED2800'))  
91 - .fontColor(this.item.isAppointment?$r('app.color.color_CCCCCC'):$r('app.color.white'))  
92 - .lineHeight('31lpx')  
93 - .textAlign(TextAlign.Center)  
94 - .width('100lpx')  
95 - .height('46lpx')  
96 - .borderRadius('6lpx')  
97 - .onClick(()=>{  
98 - this.item.isAppointment = !this.item.isAppointment  
99 - //TODO 预约动作  
100 - }) 87 + Text(this.item.isAppointment?"已预约":"预约")
  88 + .fontWeight(400)
  89 + .fontSize('23lpx')
  90 + .backgroundColor(this.item.isAppointment?$r('app.color.color_F5F5F5'):$r('app.color.color_ED2800'))
  91 + .fontColor(this.item.isAppointment?$r('app.color.color_CCCCCC'):$r('app.color.white'))
  92 + .lineHeight('31lpx')
  93 + .textAlign(TextAlign.Center)
  94 + .width('100lpx')
  95 + .height('46lpx')
  96 + .borderRadius('6lpx')
  97 + .onClick(()=>{
  98 + this.item.isAppointment = !this.item.isAppointment
  99 + //TODO 预约动作
  100 + })
101 }else { 101 }else {
102 Text(this.item.relType === 2?"去观看":"看回放") 102 Text(this.item.relType === 2?"去观看":"看回放")
103 .fontWeight(400) 103 .fontWeight(400)
1 -import { AppointmentListChildComponent } from '../mine/AppointmentListChildComponent';  
2 -import { CustomTitleUI } from '../../reusable/CustomTitleUI'  
3 -import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';  
4 -import { MineAppointmentItem } from '../../../viewmodel/MineAppointmentItem'; 1 +import { AppointmentListChildComponent } from './AppointmentListChildComponent';
  2 +import { CustomTitleUI } from '../../../reusable/CustomTitleUI'
  3 +import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI';
  4 +import { MineAppointmentItem } from '../../../../viewmodel/MineAppointmentItem';
5 import { LazyDataSource, StringUtils } from 'wdKit'; 5 import { LazyDataSource, StringUtils } from 'wdKit';
6 -import MinePageDatasModel from '../../../model/MinePageDatasModel'; 6 +import MinePageDatasModel from '../../../../model/MinePageDatasModel';
7 const TAG = "AppointmentListUI" 7 const TAG = "AppointmentListUI"
8 8
9 @Component 9 @Component
10 export struct AppointmentListUI{ 10 export struct AppointmentListUI{
11 @State data: LazyDataSource<MineAppointmentItem> = new LazyDataSource(); 11 @State data: LazyDataSource<MineAppointmentItem> = new LazyDataSource();
  12 + @State count:number = 0;
12 @State isLoading:boolean = false 13 @State isLoading:boolean = false
13 @State hasMore:boolean = true 14 @State hasMore:boolean = true
14 curPageNum:number = 1; 15 curPageNum:number = 1;
@@ -21,63 +22,69 @@ export struct AppointmentListUI{ @@ -21,63 +22,69 @@ export struct AppointmentListUI{
21 Column() { 22 Column() {
22 //标题栏目 23 //标题栏目
23 CustomTitleUI({titleName:"预约列表"}) 24 CustomTitleUI({titleName:"预约列表"})
24 - //刷新控件 TODO  
25 - //List  
26 - List({ space: '6lpx' }) {  
27 - LazyForEach(this.data, (item: MineAppointmentItem, index: number) => {  
28 - ListItem() {  
29 - AppointmentListChildComponent({item:item})  
30 - }  
31 - .onClick(()=>{  
32 - //TODO 跳转  
33 - })  
34 - }, (item: MineAppointmentItem, index: number) => index.toString()) 25 + if(this.count == 0){
  26 + ListHasNoMoreDataUI({style:2})
  27 + }else{
  28 + //刷新控件 TODO
  29 + //List
  30 + List({ space: '6lpx' }) {
  31 + LazyForEach(this.data, (item: MineAppointmentItem, index: number) => {
  32 + ListItem() {
  33 + AppointmentListChildComponent({item:item})
  34 + }
  35 + .onClick(()=>{
  36 + //TODO 跳转
  37 + })
  38 + }, (item: MineAppointmentItem, index: number) => index.toString())
35 39
36 - //没有更多数据 显示提示  
37 - if(!this.hasMore){  
38 - ListItem(){  
39 - ListHasNoMoreDataUI() 40 + //没有更多数据 显示提示
  41 + if(!this.hasMore){
  42 + ListItem(){
  43 + ListHasNoMoreDataUI()
  44 + }
40 } 45 }
41 - }  
42 - }.cachedCount(4)  
43 - .margin({top:'23lpx',left:'23lpx',right:'23lpx'})  
44 - .layoutWeight(1)  
45 - .onReachEnd(()=>{  
46 - console.log(TAG,"触底了");  
47 - if(!this.isLoading){  
48 - //加载分页数据  
49 - this.getNewPageData()  
50 - }  
51 - }) 46 + }.cachedCount(4)
  47 + .scrollBar(BarState.Off)
  48 + .margin({top:'23lpx',left:'23lpx',right:'23lpx'})
  49 + .layoutWeight(1)
  50 + .onReachEnd(()=>{
  51 + console.log(TAG,"触底了");
  52 + if(!this.isLoading){
  53 + //加载分页数据
  54 + this.getNewPageData()
  55 + }
  56 + })
  57 + }
52 } 58 }
53 .backgroundColor($r('app.color.color_F9F9F9')) 59 .backgroundColor($r('app.color.color_F9F9F9'))
54 .height('100%') 60 .height('100%')
55 .width('100%') 61 .width('100%')
56 } 62 }
57 63
58 - getNewPageData(){ 64 + getNewPageData(){
59 this.isLoading = true 65 this.isLoading = true
60 if(this.hasMore){ 66 if(this.hasMore){
61 - MinePageDatasModel.getAppointmentListData("20",`${this.curPageNum}`,getContext(this)).then((value)=>{  
62 - if (!this.data || value.list.length == 0){  
63 - this.hasMore = false  
64 - }else{  
65 - value.list.forEach((value)=>{  
66 - let dealTime = this.DealStartTime(value.planStartTime)  
67 - if(dealTime!=null && dealTime.length === 2){  
68 - this.data.push(new MineAppointmentItem(value.imageUrl,value.status,value.title,true,dealTime[0],dealTime[1],value.relType))  
69 - }else {  
70 - this.data.push(new MineAppointmentItem(value.imageUrl,value.status,value.title,true,"","",value.relType))  
71 - }  
72 - })  
73 - this.data.notifyDataReload()  
74 - if (this.data.totalCount() < value.totalCount) {  
75 - this.curPageNum++ 67 + MinePageDatasModel.getAppointmentListData("20",`${this.curPageNum}`,getContext(this)).then((value)=>{
  68 + if (!this.data || value.list.length == 0){
  69 + this.hasMore = false
  70 + }else{
  71 + value.list.forEach((value)=>{
  72 + let dealTime = this.DealStartTime(value.planStartTime)
  73 + if(dealTime!=null && dealTime.length === 2){
  74 + this.data.push(new MineAppointmentItem(value.imageUrl,value.status,value.title,true,dealTime[0],dealTime[1],value.relType))
76 }else { 75 }else {
77 - this.hasMore = false 76 + this.data.push(new MineAppointmentItem(value.imageUrl,value.status,value.title,true,"","",value.relType))
78 } 77 }
  78 + })
  79 + this.data.notifyDataReload()
  80 + this.count = this.data.totalCount()
  81 + if (this.data.totalCount() < value.totalCount) {
  82 + this.curPageNum++
  83 + }else {
  84 + this.hasMore = false
79 } 85 }
80 - }) 86 + }
  87 + })
81 } 88 }
82 this.isLoading = false 89 this.isLoading = false
83 } 90 }
1 -import { ResourcesUtils } from 'wdKit'  
2 -import { ResponseDTO } from 'wdNetwork' 1 +import MinePageDatasModel from '../../../../model/MinePageDatasModel'
3 import { FollowListItem } from '../../../../viewmodel/FollowListItem' 2 import { FollowListItem } from '../../../../viewmodel/FollowListItem'
4 import { CustomTitleUI } from '../../../reusable/CustomTitleUI' 3 import { CustomTitleUI } from '../../../reusable/CustomTitleUI'
5 import { FollowSecondTabsComponent } from './FollowSecondTabsComponent' 4 import { FollowSecondTabsComponent } from './FollowSecondTabsComponent'
  5 +const TAG = "FollowFirstTabsComponent"
6 6
7 @Component 7 @Component
8 export struct FollowFirstTabsComponent{ 8 export struct FollowFirstTabsComponent{
9 @State currentIndex: number = 0 9 @State currentIndex: number = 0
10 private controller: TabsController = new TabsController() 10 private controller: TabsController = new TabsController()
11 @State data:FollowListItem[] = [] 11 @State data:FollowListItem[] = []
  12 + @Prop changeIndex: number
12 fontColor: string = '#999999' 13 fontColor: string = '#999999'
13 selectedFontColor: string = '#000000' 14 selectedFontColor: string = '#000000'
14 15
15 aboutToAppear(){ 16 aboutToAppear(){
16 - this.data.push(new FollowListItem("我的"))  
17 // let res = JSON.parse(`{"code":"0","data":[{"children":[],"directoryName":"阅读","directoryWeight":99,"id":165,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[{"directoryName":"三二","directoryWeight":2,"id":120,"isShow":1,"level":3,"parentId":118,"rootId":117},{"directoryName":"三级","directoryWeight":1,"id":119,"isShow":1,"level":3,"parentId":118,"rootId":117}],"directoryName":"二级","directoryWeight":1,"id":118,"isShow":1,"level":2,"parentId":117,"rootId":117}],"directoryName":"幽游白书","directoryWeight":33,"id":117,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"推荐","directoryWeight":9,"id":386,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"政务","directoryWeight":9,"id":379,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"推荐","directoryWeight":0,"id":335,"isShow":1,"level":2,"parentId":320,"rootId":320}],"directoryName":"推荐","directoryWeight":9,"id":320,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"媒体","directoryWeight":8,"id":390,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"媒体","directoryWeight":8,"id":323,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"自媒体","directoryWeight":7,"id":329,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"名人","directoryWeight":6,"id":389,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"测试","directoryWeight":0,"id":338,"isShow":1,"level":2,"parentId":324,"rootId":324}],"directoryName":"名人","directoryWeight":6,"id":324,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"2级目录","directoryWeight":0,"id":340,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"3级测试","directoryWeight":0,"id":368,"isShow":1,"level":3,"parentId":339,"rootId":312}],"directoryName":"二级目录","directoryWeight":0,"id":339,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"企业","directoryWeight":1,"id":348,"isShow":1,"level":3,"parentId":336,"rootId":312},{"directoryName":"部委","directoryWeight":0,"id":344,"isShow":1,"level":3,"parentId":336,"rootId":312},{"directoryName":"地方","directoryWeight":0,"id":341,"isShow":1,"level":3,"parentId":336,"rootId":312}],"directoryName":"类型","directoryWeight":0,"id":336,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"贵州省","directoryWeight":0,"id":378,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"西藏自治区","directoryWeight":0,"id":377,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"四川省","directoryWeight":0,"id":376,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"重庆市","directoryWeight":0,"id":375,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"湖南省","directoryWeight":0,"id":374,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"云南省","directoryWeight":0,"id":373,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"广西壮族自治区","directoryWeight":0,"id":372,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"宁夏回族自治区","directoryWeight":0,"id":371,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"湖北省","directoryWeight":0,"id":370,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"青海省","directoryWeight":0,"id":369,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"陕西省","directoryWeight":0,"id":367,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"甘肃省","directoryWeight":0,"id":366,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"吉林省","directoryWeight":0,"id":365,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"广东省","directoryWeight":0,"id":364,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"海南省","directoryWeight":0,"id":363,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"辽宁省","directoryWeight":0,"id":362,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"江苏省","directoryWeight":0,"id":361,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"新疆维吾尔族自治区","directoryWeight":0,"id":360,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"福建省","directoryWeight":0,"id":359,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"山东省","directoryWeight":0,"id":358,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"河南省","directoryWeight":0,"id":357,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"浙江省","directoryWeight":0,"id":356,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"安徽省","directoryWeight":0,"id":355,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"上海市","directoryWeight":0,"id":354,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"河北省","directoryWeight":0,"id":353,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"黑龙江省","directoryWeight":0,"id":352,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"江西省","directoryWeight":0,"id":351,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"内蒙古自治区","directoryWeight":0,"id":350,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"北京市","directoryWeight":0,"id":349,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"山西省","directoryWeight":0,"id":346,"isShow":1,"level":3,"parentId":332,"rootId":312}],"directoryName":"地域","directoryWeight":0,"id":332,"isShow":1,"level":2,"parentId":312,"rootId":312}],"directoryName":"政务","directoryWeight":5,"id":312,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"学校","directoryWeight":4,"id":331,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"机构","directoryWeight":3,"id":330,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[{"directoryName":"新闻联播","directoryWeight":3,"id":79,"isShow":1,"level":3,"parentId":75,"rootId":74},{"directoryName":"第三季","directoryWeight":2,"id":78,"isShow":1,"level":3,"parentId":75,"rootId":74},{"directoryName":"三级","directoryWeight":1,"id":76,"isShow":1,"level":3,"parentId":75,"rootId":74}],"directoryName":"短视频","directoryWeight":1,"id":75,"isShow":1,"level":2,"parentId":74,"rootId":74}],"directoryName":"创作","directoryWeight":3,"id":74,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"教学","directoryWeight":2,"id":72,"isShow":1,"level":2,"parentId":64,"rootId":64},{"children":[],"directoryName":"热门","directoryWeight":1,"id":73,"isShow":1,"level":2,"parentId":64,"rootId":64},{"children":[],"directoryName":"赛事","directoryWeight":1,"id":71,"isShow":1,"level":2,"parentId":64,"rootId":64}],"directoryName":"游戏","directoryWeight":2,"id":64,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"新闻","directoryWeight":1,"id":315,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"趣闻","directoryWeight":6,"id":70,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"时政","directoryWeight":5,"id":69,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"农业","directoryWeight":3,"id":68,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"娱乐","directoryWeight":3,"id":67,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"科技","directoryWeight":2,"id":66,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"国际","directoryWeight":1,"id":65,"isShow":1,"level":2,"parentId":63,"rootId":63}],"directoryName":"新闻","directoryWeight":1,"id":63,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"公安","directoryWeight":0,"id":388,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"dddd","directoryWeight":0,"id":387,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"健康","directoryWeight":0,"id":384,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"综合","directoryWeight":0,"id":328,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"房产","directoryWeight":0,"id":327,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"健康","directoryWeight":0,"id":318,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"历史","directoryWeight":0,"id":310,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"dddd","directoryWeight":0,"id":309,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"aaaa","directoryWeight":1,"id":333,"isShow":1,"level":2,"parentId":308,"rootId":308},{"children":[],"directoryName":"qqq","directoryWeight":0,"id":334,"isShow":1,"level":2,"parentId":308,"rootId":308}],"directoryName":"dddd","directoryWeight":0,"id":308,"isShow":1,"level":1,"parentId":0,"rootId":0}],"message":"Success","success":true,"timestamp":1710741803593}`) as ResponseDTO<FollowListItem[]> 17 // let res = JSON.parse(`{"code":"0","data":[{"children":[],"directoryName":"阅读","directoryWeight":99,"id":165,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[{"directoryName":"三二","directoryWeight":2,"id":120,"isShow":1,"level":3,"parentId":118,"rootId":117},{"directoryName":"三级","directoryWeight":1,"id":119,"isShow":1,"level":3,"parentId":118,"rootId":117}],"directoryName":"二级","directoryWeight":1,"id":118,"isShow":1,"level":2,"parentId":117,"rootId":117}],"directoryName":"幽游白书","directoryWeight":33,"id":117,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"推荐","directoryWeight":9,"id":386,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"政务","directoryWeight":9,"id":379,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"推荐","directoryWeight":0,"id":335,"isShow":1,"level":2,"parentId":320,"rootId":320}],"directoryName":"推荐","directoryWeight":9,"id":320,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"媒体","directoryWeight":8,"id":390,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"媒体","directoryWeight":8,"id":323,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"自媒体","directoryWeight":7,"id":329,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"名人","directoryWeight":6,"id":389,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"测试","directoryWeight":0,"id":338,"isShow":1,"level":2,"parentId":324,"rootId":324}],"directoryName":"名人","directoryWeight":6,"id":324,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"2级目录","directoryWeight":0,"id":340,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"3级测试","directoryWeight":0,"id":368,"isShow":1,"level":3,"parentId":339,"rootId":312}],"directoryName":"二级目录","directoryWeight":0,"id":339,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"企业","directoryWeight":1,"id":348,"isShow":1,"level":3,"parentId":336,"rootId":312},{"directoryName":"部委","directoryWeight":0,"id":344,"isShow":1,"level":3,"parentId":336,"rootId":312},{"directoryName":"地方","directoryWeight":0,"id":341,"isShow":1,"level":3,"parentId":336,"rootId":312}],"directoryName":"类型","directoryWeight":0,"id":336,"isShow":1,"level":2,"parentId":312,"rootId":312},{"children":[{"directoryName":"贵州省","directoryWeight":0,"id":378,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"西藏自治区","directoryWeight":0,"id":377,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"四川省","directoryWeight":0,"id":376,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"重庆市","directoryWeight":0,"id":375,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"湖南省","directoryWeight":0,"id":374,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"云南省","directoryWeight":0,"id":373,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"广西壮族自治区","directoryWeight":0,"id":372,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"宁夏回族自治区","directoryWeight":0,"id":371,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"湖北省","directoryWeight":0,"id":370,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"青海省","directoryWeight":0,"id":369,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"陕西省","directoryWeight":0,"id":367,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"甘肃省","directoryWeight":0,"id":366,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"吉林省","directoryWeight":0,"id":365,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"广东省","directoryWeight":0,"id":364,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"海南省","directoryWeight":0,"id":363,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"辽宁省","directoryWeight":0,"id":362,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"江苏省","directoryWeight":0,"id":361,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"新疆维吾尔族自治区","directoryWeight":0,"id":360,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"福建省","directoryWeight":0,"id":359,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"山东省","directoryWeight":0,"id":358,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"河南省","directoryWeight":0,"id":357,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"浙江省","directoryWeight":0,"id":356,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"安徽省","directoryWeight":0,"id":355,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"上海市","directoryWeight":0,"id":354,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"河北省","directoryWeight":0,"id":353,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"黑龙江省","directoryWeight":0,"id":352,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"江西省","directoryWeight":0,"id":351,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"内蒙古自治区","directoryWeight":0,"id":350,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"北京市","directoryWeight":0,"id":349,"isShow":1,"level":3,"parentId":332,"rootId":312},{"directoryName":"山西省","directoryWeight":0,"id":346,"isShow":1,"level":3,"parentId":332,"rootId":312}],"directoryName":"地域","directoryWeight":0,"id":332,"isShow":1,"level":2,"parentId":312,"rootId":312}],"directoryName":"政务","directoryWeight":5,"id":312,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"学校","directoryWeight":4,"id":331,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"机构","directoryWeight":3,"id":330,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[{"directoryName":"新闻联播","directoryWeight":3,"id":79,"isShow":1,"level":3,"parentId":75,"rootId":74},{"directoryName":"第三季","directoryWeight":2,"id":78,"isShow":1,"level":3,"parentId":75,"rootId":74},{"directoryName":"三级","directoryWeight":1,"id":76,"isShow":1,"level":3,"parentId":75,"rootId":74}],"directoryName":"短视频","directoryWeight":1,"id":75,"isShow":1,"level":2,"parentId":74,"rootId":74}],"directoryName":"创作","directoryWeight":3,"id":74,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"教学","directoryWeight":2,"id":72,"isShow":1,"level":2,"parentId":64,"rootId":64},{"children":[],"directoryName":"热门","directoryWeight":1,"id":73,"isShow":1,"level":2,"parentId":64,"rootId":64},{"children":[],"directoryName":"赛事","directoryWeight":1,"id":71,"isShow":1,"level":2,"parentId":64,"rootId":64}],"directoryName":"游戏","directoryWeight":2,"id":64,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"新闻","directoryWeight":1,"id":315,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"趣闻","directoryWeight":6,"id":70,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"时政","directoryWeight":5,"id":69,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"农业","directoryWeight":3,"id":68,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"娱乐","directoryWeight":3,"id":67,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"科技","directoryWeight":2,"id":66,"isShow":1,"level":2,"parentId":63,"rootId":63},{"children":[],"directoryName":"国际","directoryWeight":1,"id":65,"isShow":1,"level":2,"parentId":63,"rootId":63}],"directoryName":"新闻","directoryWeight":1,"id":63,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"公安","directoryWeight":0,"id":388,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"dddd","directoryWeight":0,"id":387,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"健康","directoryWeight":0,"id":384,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"综合","directoryWeight":0,"id":328,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"房产","directoryWeight":0,"id":327,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"健康","directoryWeight":0,"id":318,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"历史","directoryWeight":0,"id":310,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[],"directoryName":"dddd","directoryWeight":0,"id":309,"isShow":1,"level":1,"parentId":0,"rootId":0},{"children":[{"children":[],"directoryName":"aaaa","directoryWeight":1,"id":333,"isShow":1,"level":2,"parentId":308,"rootId":308},{"children":[],"directoryName":"qqq","directoryWeight":0,"id":334,"isShow":1,"level":2,"parentId":308,"rootId":308}],"directoryName":"dddd","directoryWeight":0,"id":308,"isShow":1,"level":1,"parentId":0,"rootId":0}],"message":"Success","success":true,"timestamp":1710741803593}`) as ResponseDTO<FollowListItem[]>
18 // res.data.forEach(element => { 18 // res.data.forEach(element => {
19 // this.data.push(element) 19 // this.data.push(element)
20 // }); 20 // });
21 -  
22 - ResourcesUtils.getResourcesJson<ResponseDTO<FollowListItem[]>>('follow_list_data.json', getContext(this)).then((success)=>{  
23 - success.data?.forEach(element => { 21 + MinePageDatasModel.getFollowListData(getContext(this)).then((value)=>{
  22 + this.data.push(new FollowListItem("我的"))
  23 + value.forEach((element)=>{
24 this.data.push(element) 24 this.data.push(element)
25 - }); 25 + })
26 console.log("ycg",this.data.length.toString()); 26 console.log("ycg",this.data.length.toString());
  27 + if(this.controller != null && this.data.length>1 && this.changeIndex === 1){
  28 + //个人主页 跳转 关注页 tab 2
  29 + let intervalID = setInterval(() => {
  30 + this.currentIndex = this.changeIndex
  31 + this.controller.changeIndex(this.currentIndex)
  32 + clearInterval(intervalID);
  33 + }, 500);
  34 + }
  35 + }).catch((err:Error)=>{
  36 + console.log(TAG,JSON.stringify(err))
27 }) 37 })
28 } 38 }
29 39
1 -import { LazyDataSource } from 'wdKit'; 1 +import { LazyDataSource, StringUtils } from 'wdKit';
  2 +import MinePageDatasModel from '../../../../model/MinePageDatasModel';
2 import { FollowListDetailItem } from '../../../../viewmodel/FollowListDetailItem' 3 import { FollowListDetailItem } from '../../../../viewmodel/FollowListDetailItem'
  4 +import { FollowListDetailRequestItem } from '../../../../viewmodel/FollowListDetailRequestItem';
  5 +import { FollowListStatusRequestItem } from '../../../../viewmodel/FollowListStatusRequestItem';
  6 +import { MineFollowListDetailItem } from '../../../../viewmodel/MineFollowListDetailItem';
  7 +import { QueryListIsFollowedItem } from '../../../../viewmodel/QueryListIsFollowedItem';
3 import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI'; 8 import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI';
4 9
5 const TAG = "FollowListDetailUI" 10 const TAG = "FollowListDetailUI"
@@ -7,11 +12,10 @@ const TAG = "FollowListDetailUI" @@ -7,11 +12,10 @@ const TAG = "FollowListDetailUI"
7 export struct FollowListDetailUI{ 12 export struct FollowListDetailUI{
8 @State creatorDirectoryId:number = -1; 13 @State creatorDirectoryId:number = -1;
9 @State data: LazyDataSource<FollowListDetailItem> = new LazyDataSource(); 14 @State data: LazyDataSource<FollowListDetailItem> = new LazyDataSource();
  15 + @State count:number = 0;
10 @State isLoading:boolean = false 16 @State isLoading:boolean = false
11 @State hasMore:boolean = true 17 @State hasMore:boolean = true
12 curPageNum:number = 1; 18 curPageNum:number = 1;
13 - headUrl = "https://sitcontentjdcdn.aikan.pdnews.cn/vod/content/202309/202309Th211436299/GLN.png?x-oss-process=image/resize,l_400/auto-orient,1/quality,q_90/format,jpg"  
14 -  
15 19
16 aboutToAppear(){ 20 aboutToAppear(){
17 console.log("YCG","aboutToAppear==="+this.creatorDirectoryId); 21 console.log("YCG","aboutToAppear==="+this.creatorDirectoryId);
@@ -20,59 +24,129 @@ export struct FollowListDetailUI{ @@ -20,59 +24,129 @@ export struct FollowListDetailUI{
20 24
21 build(){ 25 build(){
22 Column(){ 26 Column(){
23 - List({ space: 3 }) {  
24 - LazyForEach(this.data, (item: FollowListDetailItem, index: number = 0) => {  
25 - ListItem() {  
26 - ChildComponent({data: item}) 27 + if(this.count === 0){
  28 + ListHasNoMoreDataUI({style:2})
  29 + .height('100%')
  30 + }else{
  31 + List({ space: 3 }) {
  32 + LazyForEach(this.data, (item: FollowListDetailItem, index: number = 0) => {
  33 + ListItem() {
  34 + ChildComponent({data: item})
  35 + }
  36 + .onClick(() => {
  37 + })
  38 + }, (item: FollowListDetailItem, index: number) => index.toString())
  39 +
  40 + //没有更多数据 显示提示
  41 + if(!this.hasMore){
  42 + ListItem(){
  43 + ListHasNoMoreDataUI()
  44 + }
27 } 45 }
28 - .onClick(() => {  
29 - })  
30 - }, (item: FollowListDetailItem, index: number) => index.toString()) 46 + }.cachedCount(10)
  47 + .padding({left:'31lpx',right:'31lpx'})
  48 + .layoutWeight(1)
  49 + .scrollBar(BarState.Off)
  50 + .onReachEnd(()=>{
  51 + console.log(TAG,"触底了");
  52 + if(!this.isLoading){
  53 + this.isLoading = true
  54 + //加载分页数据
  55 + this.getNewPageData()
  56 + }
  57 + })
  58 + }
  59 + }
  60 + .width('100%')
  61 + }
31 62
  63 + getNewPageData(){
  64 + this.isLoading = true
  65 + //我的关注列表
  66 + if (this.creatorDirectoryId === -1){
  67 + if(this.hasMore){
  68 + let object = new FollowListDetailRequestItem(20,this.curPageNum)
32 69
33 - //没有更多数据 显示提示  
34 - if(!this.hasMore){  
35 - ListItem(){  
36 - ListHasNoMoreDataUI() 70 + MinePageDatasModel.getMineFollowListData(object,getContext(this)).then((value)=>{
  71 + if (!this.data || value.list.length == 0){
  72 + this.hasMore = false
  73 + }else{
  74 + value.list.forEach((value)=>{
  75 + this.data.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1"))
  76 + })
  77 + this.data.notifyDataReload()
  78 + this.count = this.data.totalCount()
  79 + if (this.data.totalCount() < value.totalCount) {
  80 + this.curPageNum++
  81 + }else {
  82 + this.hasMore = false
  83 + }
37 } 84 }
  85 + this.isLoading = false
  86 + }).catch((err:Error)=>{
  87 + console.log(TAG,"请求失败")
  88 + this.isLoading = false
  89 + })
  90 + }
  91 + }else{
  92 + if(this.hasMore){
  93 + if(this.creatorDirectoryId === 120){
  94 + console.log("console");
38 } 95 }
39 - }.cachedCount(7)  
40 - .padding({left:'31lpx',right:'31lpx'})  
41 - .layoutWeight(1)  
42 - .onReachEnd(()=>{  
43 - console.log(TAG,"触底了");  
44 - if(!this.isLoading){  
45 - this.isLoading = true  
46 - //加载分页数据  
47 - this.getNewPageData()  
48 - }  
49 - })  
50 - }.layoutWeight(1) 96 + let object = new FollowListDetailRequestItem(this.creatorDirectoryId,20,this.curPageNum)
  97 +
  98 + MinePageDatasModel.getFollowListDetailData(object,getContext(this)).then((value)=>{
  99 + if (!this.data || value.list.length == 0){
  100 + this.hasMore = false
  101 + this.isLoading = false
  102 + }else{
  103 + this.getFollowListStatus(value)
  104 + }
  105 + }).catch((err:Error)=>{
  106 + console.log(TAG,"请求失败")
  107 + this.isLoading = false
  108 + })
  109 + }
  110 + }
51 } 111 }
52 112
53 - getNewPageData(){  
54 - if(this.hasMore){  
55 - if(this.curPageNum>=4){ 113 + getFollowListStatus(value:MineFollowListDetailItem){
  114 + let status = new FollowListStatusRequestItem()
  115 + let data : FollowListDetailItem[] = []
  116 + value.list.forEach((item)=>{
  117 + status.creatorIds.push(new QueryListIsFollowedItem(item.creatorId))
  118 + data.push(new FollowListDetailItem(item.headPhotoUrl,item.cnUserName,item.cnFansNum,item.introduction,item.creatorId,"0"))
  119 + })
  120 +
  121 + MinePageDatasModel.getFollowListStatusData(status,getContext(this)).then((newValue)=>{
  122 + newValue.forEach((item)=>{
  123 + data.forEach((list)=>{
  124 + if (item.creatorId == list.creatorId) {
  125 + list.status = item.status
  126 + }
  127 + })
  128 + })
  129 +
  130 + data.forEach((item)=>{
  131 + this.data.push(new FollowListDetailItem(item.headPhotoUrl,item.cnUserName,item.cnFansNum,item.introduction,item.creatorId,item.status))
  132 + })
  133 +
  134 + this.data.notifyDataReload()
  135 +
  136 + this.count = this.data.totalCount()
  137 + if (this.data.totalCount() < value.totalCount) {
  138 + this.curPageNum++
  139 + }else {
56 this.hasMore = false 140 this.hasMore = false
57 - return  
58 - }  
59 - if(this.curPageNum == 1){  
60 - this.data.push(new FollowListDetailItem(this.headUrl,"人之初,性本善",10,"人之初,性本善"));  
61 - this.data.push(new FollowListDetailItem(this.headUrl,"性相近,习相远",20,"性相近,习相远"));  
62 - this.data.push(new FollowListDetailItem(this.headUrl,"苟不教,性乃迁",30,"苟不教,性乃迁"));  
63 - this.data.push(new FollowListDetailItem(this.headUrl,"教之道,贵以专",40,"教之道,贵以专"));  
64 - this.data.push(new FollowListDetailItem(this.headUrl,"AAAAAAA",50,"教之道,贵以专"));  
65 - this.data.push(new FollowListDetailItem(this.headUrl,"BBBBBBB",60,"教之道,贵以专"));  
66 - this.data.push(new FollowListDetailItem(this.headUrl,"CCCCCCC",70,"教之道,贵以专"));  
67 - }else if(this.curPageNum == 2){  
68 - this.data.push(new FollowListDetailItem(this.headUrl,"昔孟母,择邻处",40,"昔孟母,择邻处"));  
69 - }else if(this.curPageNum == 3){  
70 - this.data.push(new FollowListDetailItem(this.headUrl,"子不学,断机杼",40,"子不学,断机杼"));  
71 } 141 }
  142 +
72 this.isLoading = false 143 this.isLoading = false
73 - this.curPageNum++  
74 - } 144 + }).catch((err:Error)=>{
  145 + console.log(TAG,"请求失败")
  146 + this.isLoading = false
  147 + })
75 } 148 }
  149 +
76 } 150 }
77 151
78 @Component 152 @Component
@@ -84,7 +158,7 @@ struct ChildComponent { @@ -84,7 +158,7 @@ struct ChildComponent {
84 Blank().height('27lpx') 158 Blank().height('27lpx')
85 159
86 Row() { 160 Row() {
87 - Image(this.data.headPhotoUrl) 161 + Image(StringUtils.isEmpty(this.data.headPhotoUrl)?$r('app.media.default_head'):this.data.headPhotoUrl)
88 .objectFit(ImageFit.Auto) 162 .objectFit(ImageFit.Auto)
89 .width('92lpx') 163 .width('92lpx')
90 .height('92lpx') 164 .height('92lpx')
@@ -108,7 +182,7 @@ struct ChildComponent { @@ -108,7 +182,7 @@ struct ChildComponent {
108 }.layoutWeight(1) 182 }.layoutWeight(1)
109 .alignItems(HorizontalAlign.Start) 183 .alignItems(HorizontalAlign.Start)
110 184
111 - if(this.data.isFollow){ 185 + if(this.data.status == "1"){
112 Row(){ 186 Row(){
113 Text(`已关注`) 187 Text(`已关注`)
114 .fontColor($r('app.color.color_CCCCCC')) 188 .fontColor($r('app.color.color_CCCCCC'))
@@ -117,13 +191,14 @@ struct ChildComponent { @@ -117,13 +191,14 @@ struct ChildComponent {
117 .lineHeight('35lpx') 191 .lineHeight('35lpx')
118 }.backgroundColor($r('app.color.color_F5F5F5')) 192 }.backgroundColor($r('app.color.color_F5F5F5'))
119 .borderRadius('6lpx') 193 .borderRadius('6lpx')
  194 + .borderColor($r('app.color.color_F5F5F5'))
120 .borderWidth('2lpx') 195 .borderWidth('2lpx')
121 .justifyContent(FlexAlign.Center) 196 .justifyContent(FlexAlign.Center)
122 .width('100lpx') 197 .width('100lpx')
123 .height('46lpx') 198 .height('46lpx')
124 .margin({left:'4lpx',top:'23lpx'}) 199 .margin({left:'4lpx',top:'23lpx'})
125 .onClick(()=>{ 200 .onClick(()=>{
126 - this.data.isFollow = false 201 + this.data.status = "0"
127 }) 202 })
128 }else{ 203 }else{
129 Row(){ 204 Row(){
@@ -136,7 +211,7 @@ struct ChildComponent { @@ -136,7 +211,7 @@ struct ChildComponent {
136 .fontSize('23lpx') 211 .fontSize('23lpx')
137 .fontWeight('500lpx') 212 .fontWeight('500lpx')
138 .lineHeight('35lpx') 213 .lineHeight('35lpx')
139 - }.borderColor($r('app.color.color_ED2800')) 214 + }.borderColor($r('app.color.color_1AED2800'))
140 .borderRadius('6lpx') 215 .borderRadius('6lpx')
141 .borderWidth('2lpx') 216 .borderWidth('2lpx')
142 .justifyContent(FlexAlign.Center) 217 .justifyContent(FlexAlign.Center)
@@ -144,7 +219,7 @@ struct ChildComponent { @@ -144,7 +219,7 @@ struct ChildComponent {
144 .height('46lpx') 219 .height('46lpx')
145 .margin({left:'4lpx',top:'23lpx'}) 220 .margin({left:'4lpx',top:'23lpx'})
146 .onClick(()=>{ 221 .onClick(()=>{
147 - this.data.isFollow = true 222 + this.data.status = "1"
148 }) 223 })
149 } 224 }
150 }.alignItems(VerticalAlign.Top) 225 }.alignItems(VerticalAlign.Top)
@@ -16,11 +16,11 @@ export struct FollowThirdTabsComponent{ @@ -16,11 +16,11 @@ export struct FollowThirdTabsComponent{
16 16
17 build(){ 17 build(){
18 if(this.data != null){ 18 if(this.data != null){
19 - if(this.data[this.firstIndex].children[this.secondIndex].children == null || this.data[this.firstIndex].children[this.secondIndex].children.length == 0){  
20 - FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].children[this.secondIndex].id})  
21 - }else{  
22 - this.FollowThirdUI()  
23 - } 19 + if(this.data[this.firstIndex].children[this.secondIndex].children == null || this.data[this.firstIndex].children[this.secondIndex].children.length == 0){
  20 + FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].children[this.secondIndex].id})
  21 + }else{
  22 + this.FollowThirdUI()
  23 + }
24 } 24 }
25 } 25 }
26 26
  1 +import { LazyDataSource, StringUtils } from 'wdKit';
  2 +import MinePageDatasModel from '../../../../model/MinePageDatasModel';
  3 +import { Params } from '../../../../repository/bean/Params';
  4 +import RouteManager from '../../../../utils/RouteManager';
  5 +import { CommentListItem } from '../../../../viewmodel/CommentListItem';
  6 +import { FollowListDetailItem } from '../../../../viewmodel/FollowListDetailItem';
  7 +import { FollowListDetailRequestItem } from '../../../../viewmodel/FollowListDetailRequestItem';
  8 +import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI';
  9 +
  10 +const TAG = "HomePageBottomComponent"
  11 +@Component
  12 +export struct HomePageBottomComponent{
  13 + @State style:number = 0; //0 评论 ,1 关注
  14 + @State data_follow: LazyDataSource<FollowListDetailItem> = new LazyDataSource();
  15 + @State data_comment: LazyDataSource<CommentListItem> = new LazyDataSource();
  16 + @State isLoading:boolean = false
  17 + @State hasMore:boolean = true
  18 + curPageNum:number = 1;
  19 + @State count:number = 0;
  20 +
  21 + aboutToAppear(){
  22 + this.getNewPageData()
  23 + }
  24 +
  25 + build(){
  26 + Column(){
  27 + Divider().width('100%')
  28 + .height('2lpx')
  29 + .strokeWidth('1lpx')
  30 + .backgroundColor($r('app.color.color_EDEDED'))
  31 +
  32 + if(this.count === 0){
  33 + ListHasNoMoreDataUI({style:2})
  34 + .height('100%')
  35 + }else{
  36 + if(this.style === 1){
  37 + List({ space: 3 }) {
  38 +
  39 + ListItem() {
  40 + Row(){
  41 + Text("关注更多人民号")
  42 + .fontWeight('400lpx')
  43 + .fontColor($r('app.color.color_222222'))
  44 + .lineHeight('38lpx')
  45 + .fontSize('27lpx')
  46 + .textAlign(TextAlign.Center)
  47 + .margin({right:'4lpx'})
  48 + Image($r('app.media.arrow_icon_right'))
  49 + .objectFit(ImageFit.Auto)
  50 + .width('27lpx')
  51 + .height('27lpx')
  52 + }.height('69lpx')
  53 + .width('659lpx')
  54 + .alignItems(VerticalAlign.Center)
  55 + .justifyContent(FlexAlign.Center)
  56 + .backgroundColor($r('app.color.color_F5F5F5'))
  57 + .margin({top:'31lpx',bottom:'4lpx'})
  58 + }.onClick(()=>{
  59 + let params: Params = {
  60 + pageID: "1"
  61 + }
  62 + RouteManager.jumpNewPage("pages/FollowListPage",params)
  63 + })
  64 +
  65 + LazyForEach(this.data_follow, (item: FollowListDetailItem, index: number = 0) => {
  66 + ListItem() {
  67 + ChildFollowComponent({data: item})
  68 + }
  69 + .onClick(() => {
  70 + })
  71 + }, (item: FollowListDetailItem, index: number) => index.toString())
  72 +
  73 + //没有更多数据 显示提示
  74 + if(!this.hasMore){
  75 + ListItem(){
  76 + ListHasNoMoreDataUI()
  77 + }
  78 + }
  79 + }.cachedCount(15)
  80 + .padding({left:'31lpx',right:'31lpx'})
  81 + .layoutWeight(1)
  82 + .scrollBar(BarState.Off)
  83 + .edgeEffect(EdgeEffect.None)
  84 + // .nestedScroll({
  85 + // scrollForward: NestedScrollMode.PARENT_FIRST,
  86 + // scrollBackward: NestedScrollMode.SELF_FIRST
  87 + // })
  88 + .onReachEnd(()=>{
  89 + console.log(TAG,"触底了");
  90 + if(!this.isLoading){
  91 + this.isLoading = true
  92 + //加载分页数据
  93 + this.getNewPageData()
  94 + }
  95 + })
  96 + }else if(this.style === 0){
  97 + List({ space: 3 }) {
  98 + LazyForEach(this.data_comment, (item: CommentListItem, index: number = 0) => {
  99 + ListItem() {
  100 + ChildCommentComponent({data: item})
  101 + }
  102 + .onClick(() => {
  103 + })
  104 + }, (item: CommentListItem, index: number) => index.toString())
  105 +
  106 + //没有更多数据 显示提示
  107 + if(!this.hasMore){
  108 + ListItem(){
  109 + ListHasNoMoreDataUI()
  110 + }
  111 + }
  112 + }.cachedCount(15)
  113 + .layoutWeight(1)
  114 + .scrollBar(BarState.Off)
  115 + .edgeEffect(EdgeEffect.None)
  116 + // .nestedScroll({
  117 + // scrollForward: NestedScrollMode.PARENT_FIRST,
  118 + // scrollBackward: NestedScrollMode.SELF_FIRST
  119 + // })
  120 + .onReachEnd(()=>{
  121 + console.log(TAG,"触底了");
  122 + if(!this.isLoading){
  123 + this.isLoading = true
  124 + //加载分页数据
  125 + this.getNewPageData()
  126 + }
  127 + })
  128 + }
  129 + }
  130 + }
  131 + .width('100%')
  132 + }
  133 +
  134 +
  135 + @Styles
  136 + listStyle() {
  137 + .backgroundColor(Color.White)
  138 + .height(72)
  139 + .width("100%")
  140 + .borderRadius(12)
  141 + }
  142 +
  143 + getNewPageData(){
  144 + this.isLoading = true
  145 + //我的关注列表
  146 + if (this.style === 1){
  147 + if(this.hasMore){
  148 + let object = new FollowListDetailRequestItem(20,this.curPageNum)
  149 +
  150 + MinePageDatasModel.getMineFollowListData(object,getContext(this)).then((value)=>{
  151 + if (!this.data_follow || value.list.length == 0){
  152 + this.hasMore = false
  153 + }else{
  154 + value.list.forEach((value)=>{
  155 + this.data_follow.push(new FollowListDetailItem(value.attentionHeadPhotoUrl,value.attentionUserName,value.fansNum,value.introduction,value.attentionCreatorId,"1"))
  156 + })
  157 + this.data_follow.notifyDataReload()
  158 + this.count = this.data_follow.totalCount()
  159 + if (this.data_follow.totalCount() < value.totalCount) {
  160 + this.curPageNum++
  161 + }else {
  162 + this.hasMore = false
  163 + }
  164 + }
  165 + this.isLoading = false
  166 + }).catch((err:Error)=>{
  167 + console.log(TAG,"请求失败")
  168 + this.isLoading = false
  169 + })
  170 + }
  171 + }else if(this.style === 0){
  172 + if(this.hasMore){
  173 + let object = new FollowListDetailRequestItem(20,this.curPageNum)
  174 +
  175 + MinePageDatasModel.getMineCommentListData(object,getContext(this)).then((value)=>{
  176 + if (!this.data_comment || value.list.length == 0){
  177 + this.hasMore = false
  178 + }else{
  179 + value.list.forEach((value)=>{
  180 + this.data_comment.push(new CommentListItem(value.fromUserHeader,value.fromUserName,value.targetTitle,value.createTime,value.commentContent))
  181 + })
  182 + this.data_comment.notifyDataReload()
  183 + this.count = this.data_comment.totalCount()
  184 + if (this.data_comment.totalCount() < value.totalCount) {
  185 + this.curPageNum++
  186 + }else {
  187 + this.hasMore = false
  188 + }
  189 + }
  190 + this.isLoading = false
  191 + }).catch((err:Error)=>{
  192 + console.log(TAG,"请求失败")
  193 + this.isLoading = false
  194 + })
  195 + }
  196 + }
  197 + }
  198 +}
  199 +
  200 +@Component
  201 +struct ChildFollowComponent {
  202 + @ObjectLink data: FollowListDetailItem
  203 +
  204 + build() {
  205 + Column(){
  206 + Blank().height('27lpx')
  207 +
  208 + Row() {
  209 + Image(StringUtils.isEmpty(this.data.headPhotoUrl)?$r('app.media.default_head'):this.data.headPhotoUrl)
  210 + .objectFit(ImageFit.Auto)
  211 + .width('92lpx')
  212 + .height('92lpx')
  213 + .margin({right:'15lpx'})
  214 +
  215 + Column(){
  216 + Text(this.data.cnUserName)
  217 + .fontWeight('400lpx')
  218 + .fontSize('31lpx')
  219 + .lineHeight('38lpx')
  220 + .fontColor($r('app.color.color_222222'))
  221 + Text(`粉丝${this.data.cnFansNum}`)
  222 + .fontColor($r('app.color.color_B0B0B0'))
  223 + .fontSize('23lpx')
  224 + .maxLines(1)
  225 + Text(`${this.data.introduction}`)
  226 + .fontColor($r('app.color.color_B0B0B0'))
  227 + .fontSize('23lpx')
  228 + .maxLines(2)
  229 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  230 + }.layoutWeight(1)
  231 + .alignItems(HorizontalAlign.Start)
  232 +
  233 + if(this.data.status == "1"){
  234 + Row(){
  235 + Text(`已关注`)
  236 + .fontColor($r('app.color.color_CCCCCC'))
  237 + .fontSize('23lpx')
  238 + .fontWeight('500lpx')
  239 + .lineHeight('35lpx')
  240 + }.backgroundColor($r('app.color.color_F5F5F5'))
  241 + .borderRadius('6lpx')
  242 + .borderColor($r('app.color.color_F5F5F5'))
  243 + .borderWidth('2lpx')
  244 + .justifyContent(FlexAlign.Center)
  245 + .width('100lpx')
  246 + .height('46lpx')
  247 + .margin({left:'4lpx',top:'23lpx'})
  248 + .onClick(()=>{
  249 + this.data.status = "0"
  250 + })
  251 + }else{
  252 + Row(){
  253 + Image($r('app.media.follow_icon'))
  254 + .margin({right:'4lpx'})
  255 + .width('23lpx')
  256 + .height('23lpx')
  257 + Text(`关注`)
  258 + .fontColor($r('app.color.color_ED2800'))
  259 + .fontSize('23lpx')
  260 + .fontWeight('500lpx')
  261 + .lineHeight('35lpx')
  262 + }.borderColor($r('app.color.color_1AED2800'))
  263 + .borderRadius('6lpx')
  264 + .borderWidth('2lpx')
  265 + .justifyContent(FlexAlign.Center)
  266 + .width('100lpx')
  267 + .height('46lpx')
  268 + .margin({left:'4lpx',top:'23lpx'})
  269 + .onClick(()=>{
  270 + this.data.status = "1"
  271 + })
  272 + }
  273 + }.alignItems(VerticalAlign.Top)
  274 + .width('100%')
  275 + .layoutWeight(1)
  276 +
  277 + Divider().width('100%')
  278 + .height('2lpx')
  279 + .strokeWidth('1lpx')
  280 + .backgroundColor($r('app.color.color_EDEDED'))
  281 +
  282 + }.height('146lpx')
  283 + .justifyContent(FlexAlign.Center)
  284 + }
  285 +}
  286 +
  287 +@Component
  288 +struct ChildCommentComponent {
  289 + @ObjectLink data: CommentListItem
  290 +
  291 + build() {
  292 + Column(){
  293 + Row() {
  294 + Image(StringUtils.isEmpty(this.data.fromUserHeader)?$r('app.media.default_head'):this.data.fromUserHeader)
  295 + .objectFit(ImageFit.Auto)
  296 + .width('69lpx')
  297 + .height('69lpx')
  298 + .margin({right:'15lpx'})
  299 +
  300 + Column(){
  301 + Text(this.data.fromUserName)
  302 + .fontSize('25lpx')
  303 + .lineHeight('35lpx')
  304 + .fontWeight('600lpx')
  305 + .fontColor($r('app.color.color_222222'))
  306 + .margin({bottom:'6lpx'})
  307 + .maxLines(1)
  308 + Text(`${this.data.createTime}`)
  309 + .fontColor($r('app.color.color_B0B0B0'))
  310 + .fontSize('23lpx')
  311 + .lineHeight('31lpx')
  312 + .fontWeight('400lpx')
  313 + .maxLines(1)
  314 + }.layoutWeight(1)
  315 + .alignItems(HorizontalAlign.Start)
  316 + }
  317 + .margin({bottom:'10lpx'})
  318 + .width('100%')
  319 + .height('108lpx')
  320 + .padding({left:'31lpx',right:'31lpx'})
  321 +
  322 + Row(){
  323 + Text(this.data.commentContent)
  324 + .maxLines(3)
  325 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  326 + .fontWeight('400lpx')
  327 + .fontSize('31lpx')
  328 + .lineHeight('46lpx')
  329 + .fontColor($r('app.color.color_222222'))
  330 + .margin({bottom:'10lpx'})
  331 + }.padding({left:'31lpx',right:'31lpx'})
  332 + .width('100%')
  333 +
  334 + Row(){
  335 + Text(this.data.targetTitle)
  336 + .fontWeight('400lpx')
  337 + .fontColor($r('app.color.color_222222'))
  338 + .lineHeight('38lpx')
  339 + .fontSize('27lpx')
  340 + .textAlign(TextAlign.Center)
  341 + .margin({right:'4lpx'})
  342 + .maxLines(3)
  343 + .width('616lpx')
  344 + Image($r('app.media.arrow_icon_right'))
  345 + .objectFit(ImageFit.Auto)
  346 + .width('27lpx')
  347 + .height('27lpx')
  348 + }
  349 + .padding({top:'17lpx',bottom:'17lpx',left:'23lpx',right:'23lpx'})
  350 + .width('662lpx')
  351 + .backgroundColor($r('app.color.color_F5F5F5'))
  352 + .margin({top:'19lpx',bottom:'31lpx'})
  353 +
  354 + Divider().width('100%')
  355 + .height('12lpx')
  356 + .strokeWidth('12lpx')
  357 + .backgroundColor($r('app.color.color_F5F5F5'))
  358 +
  359 + }
  360 + .justifyContent(FlexAlign.Center)
  361 + }
  362 +}
1 @Component 1 @Component
2 export struct ListHasNoMoreDataUI{ 2 export struct ListHasNoMoreDataUI{
  3 + @State style:number = 1;
  4 +
3 build(){ 5 build(){
4 - Row(){  
5 - Text("已显示全部内容")  
6 - .fontColor($r('app.color.color_999999'))  
7 - .fontWeight('500lpx')  
8 - .fontSize('23lpx')  
9 - }.justifyContent(FlexAlign.Center)  
10 - .width('100%')  
11 - .margin({top:'20lpx',bottom:'20lpx'}) 6 + if (this.style === 1){
  7 + Row(){
  8 + Text("已显示全部内容")
  9 + .fontColor($r('app.color.color_999999'))
  10 + .fontWeight('500lpx')
  11 + .fontSize('23lpx')
  12 + }.justifyContent(FlexAlign.Center)
  13 + .width('100%')
  14 + .margin({top:'20lpx',bottom:'20lpx'})
  15 + }else if (this.style === 2){
  16 + Column(){
  17 + Image($r('app.media.empty_icon'))
  18 + .width('200lpx')
  19 + .height('200lpx')
  20 + .objectFit(ImageFit.Auto)
  21 + Text("暂无内容")
  22 + .fontColor($r('app.color.color_999999'))
  23 + .fontWeight('500lpx')
  24 + .fontSize('23lpx')
  25 + }
  26 + .justifyContent(FlexAlign.Center)
  27 + .width('100%')
  28 + .height('100%')
  29 + }
  30 +
  31 +
12 } 32 }
13 } 33 }
@@ -7,6 +7,15 @@ import HashMap from '@ohos.util.HashMap'; @@ -7,6 +7,15 @@ import HashMap from '@ohos.util.HashMap';
7 import { ResponseDTO, WDHttp } from 'wdNetwork'; 7 import { ResponseDTO, WDHttp } from 'wdNetwork';
8 import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem'; 8 import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem';
9 import { Logger, ResourcesUtils } from 'wdKit'; 9 import { Logger, ResourcesUtils } from 'wdKit';
  10 +import { MineFollowListDetailItem } from '../viewmodel/MineFollowListDetailItem';
  11 +import { FollowListDetailRequestItem } from '../viewmodel/FollowListDetailRequestItem';
  12 +import { FollowListItem } from '../viewmodel/FollowListItem';
  13 +import { MineFollowListItem } from '../viewmodel/MineFollowListItem';
  14 +import { QueryListIsFollowedItem } from '../viewmodel/QueryListIsFollowedItem';
  15 +import { MineCommentListDetailItem } from '../viewmodel/MineCommentListDetailItem';
  16 +import { FollowListStatusRequestItem } from '../viewmodel/FollowListStatusRequestItem';
  17 +import { MineUserLevelItem } from '../viewmodel/MineUserLevelItem';
  18 +import { MineUserDetailItem } from '../viewmodel/MineUserDetailItem';
10 const TAG = "MinePageDatasModel" 19 const TAG = "MinePageDatasModel"
11 20
12 /** 21 /**
@@ -137,6 +146,286 @@ class MinePageDatasModel{ @@ -137,6 +146,286 @@ class MinePageDatasModel{
137 return compRes.data 146 return compRes.data
138 } 147 }
139 148
  149 + /**
  150 + * 关注频道详情
  151 + * @param pageSize
  152 + * @param pageNum
  153 + * @param context
  154 + * @returns
  155 + */
  156 + getFollowListDetailData(params:FollowListDetailRequestItem,context: Context): Promise<MineFollowListDetailItem> {
  157 + return new Promise<MineFollowListDetailItem>((success, error) => {
  158 + Logger.info(TAG, `getAppointmentList start`);
  159 + this.fetchFollowListDetailData(params).then((navResDTO: ResponseDTO<MineFollowListDetailItem>) => {
  160 + if (!navResDTO || navResDTO.code != 0) {
  161 + success(this.getFollowListDetailDataLocal(context))
  162 + return
  163 + }
  164 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  165 + let navigationBean = navResDTO.data as MineFollowListDetailItem
  166 + success(navigationBean);
  167 + }).catch((err: Error) => {
  168 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  169 + success(this.getFollowListDetailDataLocal(context))
  170 + })
  171 + })
  172 + }
  173 +
  174 + async getFollowListDetailDataLocal(context: Context): Promise<MineFollowListDetailItem> {
  175 + Logger.info(TAG, `getBottomNavDataMock start`);
  176 + let compRes: ResponseDTO<MineFollowListDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineFollowListDetailItem>>('follow_list_detail_data_id120.json',context );
  177 + if (!compRes || !compRes.data) {
  178 + Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`);
  179 + return new MineFollowListDetailItem()
  180 + }
  181 + Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  182 + return compRes.data
  183 + }
  184 +
  185 + fetchFollowListDetailData(object:FollowListDetailRequestItem) {
  186 + let url = HttpUrlUtils.getFollowListDetailDataUrl()
  187 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  188 + return WDHttp.post<ResponseDTO<MineFollowListDetailItem>>(url, object,headers)
  189 + };
  190 +
  191 + /**
  192 + * 关注频道列表
  193 + * @returns
  194 + */
  195 + fetchFollowListData() {
  196 + let url = HttpUrlUtils.getFollowListDataUrl()
  197 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  198 + return WDHttp.get<ResponseDTO<FollowListItem[]>>(url, headers)
  199 + };
  200 +
  201 + getFollowListData(context: Context): Promise<FollowListItem[]> {
  202 + return new Promise<FollowListItem[]>((success, error) => {
  203 + Logger.info(TAG, `getAppointmentList start`);
  204 + this.fetchFollowListData().then((navResDTO: ResponseDTO<FollowListItem[]>) => {
  205 + if (!navResDTO || navResDTO.code != 0) {
  206 + success(this.getFollowListDataLocal(context))
  207 + return
  208 + }
  209 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  210 + let navigationBean = navResDTO.data as FollowListItem[]
  211 + success(navigationBean);
  212 + }).catch((err: Error) => {
  213 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  214 + success(this.getFollowListDataLocal(context))
  215 + })
  216 + })
  217 + }
  218 +
  219 + async getFollowListDataLocal(context: Context): Promise<FollowListItem[]> {
  220 + Logger.info(TAG, `getFollowListDataLocal start`);
  221 + let compRes: ResponseDTO<FollowListItem[]> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<FollowListItem[]>>('follow_list_data.json' ,context);
  222 + if (!compRes || !compRes.data) {
  223 + Logger.info(TAG, `getFollowListDataLocal compRes is empty`);
  224 + return []
  225 + }
  226 + Logger.info(TAG, `getFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  227 + return compRes.data
  228 + }
  229 +
  230 + /**
  231 + * 我的关注列表
  232 + * @param params
  233 + * @param context
  234 + * @returns
  235 + */
  236 + getMineFollowListData(params:FollowListDetailRequestItem,context: Context): Promise<MineFollowListItem> {
  237 + return new Promise<MineFollowListItem>((success, error) => {
  238 + Logger.info(TAG, `getAppointmentList start`);
  239 + this.fetchMineDetailFollowListData(params).then((navResDTO: ResponseDTO<MineFollowListItem>) => {
  240 + if (!navResDTO || navResDTO.code != 0) {
  241 + success(this.getMineFollowListDataLocal(context))
  242 + return
  243 + }
  244 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  245 + let navigationBean = navResDTO.data as MineFollowListItem
  246 + success(navigationBean);
  247 + }).catch((err: Error) => {
  248 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  249 + success(this.getMineFollowListDataLocal(context))
  250 + })
  251 + })
  252 + }
  253 +
  254 + fetchMineDetailFollowListData(object:FollowListDetailRequestItem) {
  255 + let url = HttpUrlUtils.getMineFollowListDataUrl()+`?pageSize=${object.pageSize}&pageNum=${object.pageNum}`
  256 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  257 + return WDHttp.get<ResponseDTO<MineFollowListItem>>(url, headers)
  258 + };
  259 +
  260 + async getMineFollowListDataLocal(context: Context): Promise<MineFollowListItem> {
  261 + Logger.info(TAG, `getMineFollowListDataLocal start`);
  262 + let compRes: ResponseDTO<MineFollowListItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineFollowListItem>>('mine_follow_list_data.json' ,context);
  263 + if (!compRes || !compRes.data) {
  264 + Logger.info(TAG, `getMineFollowListDataLocal compRes is empty`);
  265 + return new MineFollowListItem()
  266 + }
  267 + Logger.info(TAG, `getMineFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  268 + return compRes.data
  269 + }
  270 +
  271 + /**
  272 + * 查询是否被关注 列表
  273 + * @param params
  274 + * @param context
  275 + * @returns
  276 + */
  277 + getFollowListStatusData(params:FollowListStatusRequestItem,context: Context): Promise<QueryListIsFollowedItem[]> {
  278 + return new Promise<QueryListIsFollowedItem[]>((success, error) => {
  279 + Logger.info(TAG, `getAppointmentList start`);
  280 + this.fetchFollowListStatusData(params).then((navResDTO: ResponseDTO<QueryListIsFollowedItem[]>) => {
  281 + if (!navResDTO || navResDTO.code != 0) {
  282 + success(this.getFollowListStatusDataLocal(context))
  283 + return
  284 + }
  285 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  286 + let navigationBean = navResDTO.data as QueryListIsFollowedItem[]
  287 + success(navigationBean);
  288 + }).catch((err: Error) => {
  289 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  290 + success(this.getFollowListStatusDataLocal(context))
  291 + })
  292 + })
  293 + }
  294 +
  295 + fetchFollowListStatusData(object:FollowListStatusRequestItem) {
  296 + let url = HttpUrlUtils.getFollowListStatusDataUrl()
  297 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  298 + return WDHttp.post<ResponseDTO<QueryListIsFollowedItem[]>>(url,object, headers)
  299 + };
  300 +
  301 + async getFollowListStatusDataLocal(context: Context): Promise<QueryListIsFollowedItem[]> {
  302 + Logger.info(TAG, `getMineFollowListDataLocal start`);
  303 + let compRes: ResponseDTO<QueryListIsFollowedItem[]> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<QueryListIsFollowedItem[]>>('follow_list_id120_isfocus_data.json',context );
  304 + if (!compRes || !compRes.data) {
  305 + Logger.info(TAG, `getMineFollowListDataLocal compRes is empty`);
  306 + return []
  307 + }
  308 + Logger.info(TAG, `getMineFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  309 + return compRes.data
  310 + }
  311 +
  312 +
  313 + /**
  314 + * 我的评论列表
  315 + * @param params
  316 + * @param context
  317 + * @returns
  318 + */
  319 + getMineCommentListData(params:FollowListDetailRequestItem,context: Context): Promise<MineCommentListDetailItem> {
  320 + return new Promise<MineCommentListDetailItem>((success, error) => {
  321 + Logger.info(TAG, `getAppointmentList start`);
  322 + this.fetchMineCommentListData(params).then((navResDTO: ResponseDTO<MineCommentListDetailItem>) => {
  323 + if (!navResDTO || navResDTO.code != 0) {
  324 + success(this.getMineCommentListDataLocal(context))
  325 + return
  326 + }
  327 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  328 + let navigationBean = navResDTO.data as MineCommentListDetailItem
  329 + success(navigationBean);
  330 + }).catch((err: Error) => {
  331 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  332 + success(this.getMineCommentListDataLocal(context))
  333 + })
  334 + })
  335 + }
  336 +
  337 + fetchMineCommentListData(object:FollowListDetailRequestItem) {
  338 + let url = HttpUrlUtils.getMineCommentListDataUrl()+`?pageSize=${object.pageSize}&pageNum=${object.pageNum}`
  339 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  340 + return WDHttp.get<ResponseDTO<MineCommentListDetailItem>>(url, headers)
  341 + };
  342 +
  343 + async getMineCommentListDataLocal(context: Context): Promise<MineCommentListDetailItem> {
  344 + Logger.info(TAG, `getMineFollowListDataLocal start`);
  345 + let compRes: ResponseDTO<MineCommentListDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineCommentListDetailItem>>('mine_comment_list_data.json',context);
  346 + if (!compRes || !compRes.data) {
  347 + Logger.info(TAG, `getMineFollowListDataLocal compRes is empty`);
  348 + return new MineCommentListDetailItem()
  349 + }
  350 + Logger.info(TAG, `getMineFollowListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  351 + return compRes.data
  352 + }
  353 +
  354 + /**
  355 + * 个人中心 获取用户等级
  356 + */
  357 + getUserLevelData(context: Context): Promise<MineUserLevelItem> {
  358 + return new Promise<MineUserLevelItem>((success, error) => {
  359 + Logger.info(TAG, `getAppointmentList start`);
  360 + this.fetchMineUserLevelData().then((navResDTO: ResponseDTO<MineUserLevelItem>) => {
  361 + if (!navResDTO || navResDTO.code != 0) {
  362 + success(this.getMineUserLevelDataLocal(context))
  363 + return
  364 + }
  365 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  366 + let navigationBean = navResDTO.data as MineUserLevelItem
  367 + success(navigationBean);
  368 + }).catch((err: Error) => {
  369 + Logger.error(TAG, `fetchMineUserLevelData catch, error.name : ${err.name}, error.message:${err.message}`);
  370 + success(this.getMineUserLevelDataLocal(context))
  371 + })
  372 + })
  373 + }
  374 +
  375 + fetchMineUserLevelData() {
  376 + let url = HttpUrlUtils.getMineUserLevelDataUrl()
  377 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  378 + return WDHttp.get<ResponseDTO<MineUserLevelItem>>(url, headers)
  379 + };
  380 +
  381 + async getMineUserLevelDataLocal(context: Context): Promise<MineUserLevelItem> {
  382 + Logger.info(TAG, `getMineUserLevelDataLocal start`);
  383 + let compRes: ResponseDTO<MineUserLevelItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineUserLevelItem>>('mine_user_level.json' ,context);
  384 + if (!compRes || !compRes.data) {
  385 + Logger.info(TAG, `getMineUserLevelDataLocal compRes is empty`);
  386 + return new MineUserLevelItem()
  387 + }
  388 + Logger.info(TAG, `getMineUserLevelDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  389 + return compRes.data
  390 + }
  391 +
  392 + /**
  393 + * 个人中心 获取用户详细信息
  394 + */
  395 + getUserDetailData(context: Context): Promise<MineUserDetailItem> {
  396 + return new Promise<MineUserDetailItem>((success, error) => {
  397 + Logger.info(TAG, `getAppointmentList start`);
  398 + this.fetchMineUserDetailData().then((navResDTO: ResponseDTO<MineUserDetailItem>) => {
  399 + if (!navResDTO || navResDTO.code != 0) {
  400 + success(this.getMineUserDetailDataLocal(context))
  401 + return
  402 + }
  403 + Logger.info(TAG, "getUserDetailData then,timeStamp:" + navResDTO.timestamp);
  404 + let navigationBean = navResDTO.data as MineUserDetailItem
  405 + success(navigationBean);
  406 + }).catch((err: Error) => {
  407 + Logger.error(TAG, `fetchMineUserDetailData catch, error.name : ${err.name}, error.message:${err.message}`);
  408 + success(this.getMineUserDetailDataLocal(context))
  409 + })
  410 + })
  411 + }
  412 +
  413 + fetchMineUserDetailData() {
  414 + let url = HttpUrlUtils.getMineUserDetailDataUrl()
  415 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  416 + return WDHttp.get<ResponseDTO<MineUserDetailItem>>(url, headers)
  417 + };
  418 +
  419 + async getMineUserDetailDataLocal(context: Context): Promise<MineUserDetailItem> {
  420 + Logger.info(TAG, `getMineUserLevelDataLocal start`);
  421 + let compRes: ResponseDTO<MineUserDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineUserDetailItem>>('mine_user_detail.json',context );
  422 + if (!compRes || !compRes.data) {
  423 + Logger.info(TAG, `getMineUserDetailDataLocal compRes is empty`);
  424 + return new MineUserDetailItem()
  425 + }
  426 + Logger.info(TAG, `getMineUserDetailDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  427 + return compRes.data
  428 + }
140 429
141 } 430 }
142 431
1 1
2 -import MinePagePersonalFunctionsItem from '../../../../../../../../PeopleDaily_Harmony/wdComponent/src/main/ets/viewmodel/MinePagePersonalFunctionsItem'  
3 -import MinePageCreatorFunctionsItem from '../../../../../../../../PeopleDaily_Harmony/wdComponent/src/main/ets/viewmodel/MinePageCreatorFunctionsItem'  
4 -import MinePageMoreFunctionModel from '../../../../../../../../PeopleDaily_Harmony/wdComponent/src/main/ets/viewmodel/MinePageMoreFunctionModel';  
5 -import { HttpUrlUtils } from '../../../../../../../../PeopleDaily_Harmony/wdComponent/src/main/ets/network/HttpUrlUtils';  
6 -import HashMap from '@ohos.util.HashMap';  
7 -import { ResponseDTO, WDHttp } from 'wdNetwork';  
8 -import { Logger } from 'wdKit';  
9 -import { MineMainSettingFunctionItem } from '../../../../../../../../PeopleDaily_Harmony/wdComponent/src/main/ets/viewmodel/MineMainSettingFunctionItem' 2 +import { MineMainSettingFunctionItem } from '../viewmodel/MineMainSettingFunctionItem';
10 3
11 const TAG = "MineSettingDatasModel" 4 const TAG = "MineSettingDatasModel"
12 5
@@ -44,6 +44,42 @@ export class HttpUrlUtils { @@ -44,6 +44,42 @@ export class HttpUrlUtils {
44 */ 44 */
45 static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe"; 45 static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe";
46 46
  47 + /**
  48 + * 资料编辑 获取用户信息
  49 + */
  50 + static readonly APPOINTMENT_AccountOwner_PATH: string = "/api/rmrb-contact/contact/zh/c/my/detail";
  51 + /**
  52 + * 个人中心 关注列表详情
  53 + */
  54 + static readonly FOLLOW_LIST_DETAIL_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getContactMasterDetaiPage";
  55 + /**
  56 + * 个人中心 关注列表
  57 + */
  58 + static readonly FOLLOW_LIST_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getCreatorDirectoryTree";
  59 + /**
  60 + * 个人中心 我的关注列表
  61 + */
  62 + static readonly MINE_FOLLOW_LIST_DATA_PATH: string = "/api/rmrb-interact/interact/zh/c/attention/list";
  63 + /**
  64 + * 个人中心 关注列表状态
  65 + */
  66 + static readonly FOLLOW_LIST_STATUS_DATA_PATH: string = "/api/rmrb-interact/interact/zh/c/batchAttention/status";
  67 +
  68 + /**
  69 + * 个人中心 我的评论列表
  70 + */
  71 + static readonly MINE_COMMENT_LIST_DATA_PATH: string = "/api/rmrb-comment/comment/zh/c/myCommentList";
  72 +
  73 + /**
  74 + * 个人中心 APP获取用户等级
  75 + */
  76 + static readonly MINE_USER_LEVEL_DATA_PATH: string = "/api/rmrb-user-point/auth/level/zh/c/queryUserLevel";
  77 +
  78 + /**
  79 + * 个人中心 (号主/普通用户)我的基本信息
  80 + */
  81 + static readonly MINE_USER_DETAIL_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/my/detail";
  82 +
47 private static hostUrl: string = HttpUrlUtils.HOST_UAT; 83 private static hostUrl: string = HttpUrlUtils.HOST_UAT;
48 84
49 static getCommonHeaders(): HashMap<string, string> { 85 static getCommonHeaders(): HashMap<string, string> {
@@ -83,44 +119,6 @@ export class HttpUrlUtils { @@ -83,44 +119,6 @@ export class HttpUrlUtils {
83 return headers; 119 return headers;
84 } 120 }
85 121
86 - static getYcgCommonHeaders(): HashMap<string, string> {  
87 - let headers: HashMap<string, string> = new HashMap<string, string>()  
88 -  
89 - headers.set('mpassid', 'XGt6jfGUx8ADAKruTyAMdhHj')  
90 - headers.set('city', "%E5%90%88%E8%82%A5%E5%B8%82")  
91 - headers.set('User-Agent', 'Dalvik/2.1.0 (Linux; U; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10)')  
92 - headers.set('channel', "rmrb_china_0000")  
93 - headers.set('appCode', "0af1f9085e484c97b2a44704bae72c07")  
94 - headers.set('Authorization', "APPCODE 0af1f9085e484c97b2a44704bae72c07")  
95 - headers.set('X-Ca-Stage', "TEST")  
96 - headers.set('plat', "Phone")  
97 - headers.set('Content-Type', 'application/json; charset=utf-8')  
98 - headers.set('timestamp', "649773304")  
99 - headers.set('RMRB-X-TOKEN', "eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8")  
100 - headers.set('device_id', "5156098c-6c44-3514-af70-04a0139a9327")  
101 - headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8')  
102 - headers.set('build_version', "202403112023")  
103 - headers.set('adcode', "340000")  
104 - headers.set('os_version', "10")  
105 - headers.set('city_dode', "340100")  
106 - headers.set('userId', "567387477063621")  
107 - headers.set('versionCode', "7302")  
108 - headers.set('system', "Android")  
109 - headers.set('version_name', "7.3.0.2")  
110 - headers.set('EagleEye-TraceID', '5C3D0800CF2C4440A43E5B131187629B')  
111 - headers.set('imei', "5156098c-6c44-3514-af70-04a0139a9327")  
112 - headers.set('userType', "1")  
113 - headers.set('Accept-Language', 'zh')  
114 -  
115 - // HttpUrlUtils.addSpecialHeaders(headers);  
116 - // Logger.debug("TAG", '******************* commonHeaders headers start ******************************** ');  
117 - // headers.forEach((v,k)=>{  
118 - // Logger.debug("TAG", 'getCommonHeaders header: ' + k + ': ' + v);  
119 - // })  
120 - // Logger.debug("TAG", '******************* commonHeaders headers end ******************************** ');  
121 - return headers;  
122 - }  
123 -  
124 static getHost() { 122 static getHost() {
125 return this.hostUrl; 123 return this.hostUrl;
126 } 124 }
@@ -167,6 +165,80 @@ export class HttpUrlUtils { @@ -167,6 +165,80 @@ export class HttpUrlUtils {
167 return url; 165 return url;
168 } 166 }
169 167
  168 + static getFollowListDetailDataUrl() {
  169 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_DETAIL_DATA_PATH
  170 + return url
  171 + }
  172 +
  173 + static getFollowListDataUrl() {
  174 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_DATA_PATH
  175 + return url
  176 + }
  177 +
  178 + static getMineFollowListDataUrl() {
  179 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.MINE_FOLLOW_LIST_DATA_PATH
  180 + return url
  181 + }
  182 +
  183 + static getFollowListStatusDataUrl() {
  184 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_STATUS_DATA_PATH
  185 + return url
  186 + }
  187 +
  188 + static getMineCommentListDataUrl() {
  189 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.MINE_COMMENT_LIST_DATA_PATH
  190 + return url
  191 + }
  192 +
  193 + static getMineUserLevelDataUrl() {
  194 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.MINE_USER_LEVEL_DATA_PATH
  195 + return url
  196 + }
  197 +
  198 + static getMineUserDetailDataUrl() {
  199 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.MINE_USER_DETAIL_DATA_PATH
  200 + return url
  201 + }
  202 +
  203 +
  204 + static getYcgCommonHeaders(): HashMap<string, string> {
  205 + let headers: HashMap<string, string> = new HashMap<string, string>()
  206 +
  207 + headers.set('mpassid', 'XGt6jfGUx8ADAKruTyAMdhHj')
  208 + headers.set('city', "%E5%90%88%E8%82%A5%E5%B8%82")
  209 + headers.set('User-Agent', 'Dalvik/2.1.0 (Linux; U; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10)')
  210 + headers.set('channel', "rmrb_china_0000")
  211 + headers.set('appCode', "0af1f9085e484c97b2a44704bae72c07")
  212 + headers.set('Authorization', "APPCODE 0af1f9085e484c97b2a44704bae72c07")
  213 + headers.set('X-Ca-Stage', "TEST")
  214 + headers.set('plat', "Phone")
  215 + headers.set('Content-Type', 'application/json; charset=utf-8')
  216 + headers.set('timestamp', "740977741")
  217 + headers.set('RMRB-X-TOKEN', "eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDc1NjM3NywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ.KBkF0Yki-JWlq0ZIOCzgKwQc1ycBnFHa6CF-rMPRgHU")
  218 + headers.set('device_id', "5156098c-6c44-3514-af70-04a0139a9327")
  219 + // headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8')
  220 + headers.set('build_version', "202403112023")
  221 + headers.set('adcode', "340000")
  222 + headers.set('os_version', "10")
  223 + headers.set('city_dode', "340100")
  224 + headers.set('userId', "567387477063621")
  225 + headers.set('versionCode', "7302")
  226 + headers.set('system', "Android")
  227 + headers.set('version_name', "7.3.0.2")
  228 + headers.set('EagleEye-TraceID', '101118E4D006453DA549A82AA8CAFBFE')
  229 + headers.set('imei', "5156098c-6c44-3514-af70-04a0139a9327")
  230 + headers.set('userType', "1")
  231 + headers.set('Accept-Language', 'zh')
  232 +
  233 + // HttpUrlUtils.addSpecialHeaders(headers);
  234 + // Logger.debug("TAG", '******************* commonHeaders headers start ******************************** ');
  235 + // headers.forEach((v,k)=>{
  236 + // Logger.debug("TAG", 'getCommonHeaders header: ' + k + ': ' + v);
  237 + // })
  238 + // Logger.debug("TAG", '******************* commonHeaders headers end ******************************** ');
  239 + return headers;
  240 + }
  241 +
170 static addSpecialHeaders(headers: HashMap<string, string>) { 242 static addSpecialHeaders(headers: HashMap<string, string>) {
171 switch (this.hostUrl) { 243 switch (this.hostUrl) {
172 case this.HOST_UAT: 244 case this.HOST_UAT:
  1 +
  2 +
  3 +@Observed
  4 +export class CommentListItem{
  5 + fromUserHeader:string = ""
  6 + fromUserName:string = ""
  7 + commentContent:string = ""
  8 + targetTitle:string = ""
  9 + createTime:string = ""
  10 +
  11 + constructor(fromUserHeader:string,fromUserName:string,targetTitle:string,createTime:string,commentContent:string ) {
  12 + this.fromUserHeader = fromUserHeader
  13 + this.fromUserName = fromUserName
  14 + this.commentContent = commentContent
  15 + this.targetTitle = targetTitle
  16 + this.createTime = createTime
  17 + }
  18 +}
@@ -65,12 +65,21 @@ export class FollowListDetailItem{ @@ -65,12 +65,21 @@ export class FollowListDetailItem{
65 cnUserName:string //昵称 65 cnUserName:string //昵称
66 cnFansNum:number //粉丝数 66 cnFansNum:number //粉丝数
67 introduction:string //介绍 67 introduction:string //介绍
68 - isFollow:boolean = false //是否已经关注 68 + status:string = "0" //是否已经关注
  69 + creatorId:string = ""
69 70
70 - constructor(headPhotoUrl:string,cnUserName:string,cnFansNum:number,introduction:string) { 71 + attentionCreatorId:string = ""
  72 + attentionHeadPhotoUrl:string = ""
  73 + attentionUserName:string = ""
  74 + fansNum :number = 0
  75 +
  76 +
  77 + constructor(headPhotoUrl:string,cnUserName:string,cnFansNum:number,introduction:string,creatorId:string,status:string ) {
71 this.headPhotoUrl = headPhotoUrl 78 this.headPhotoUrl = headPhotoUrl
72 this.cnUserName = cnUserName 79 this.cnUserName = cnUserName
73 this.cnFansNum = cnFansNum 80 this.cnFansNum = cnFansNum
74 this.introduction = introduction 81 this.introduction = introduction
  82 + this.creatorId = creatorId
  83 + this.status = status
75 } 84 }
76 } 85 }
  1 +export class FollowListDetailRequestItem{
  2 + creatorDirectoryId:number = -1
  3 + pageSize:number = 20
  4 + pageNum:number = 1
  5 +
  6 + constructor(creatorDirectoryId: number = -1,
  7 + pageSize: number = 20,
  8 + pageNum: number = 1) {
  9 + this.creatorDirectoryId = creatorDirectoryId
  10 + this.pageSize = pageSize
  11 + this.pageNum = pageNum
  12 + }
  13 +}
@@ -38,33 +38,33 @@ export class FollowListItem{ @@ -38,33 +38,33 @@ export class FollowListItem{
38 constructor(directoryName:string) { 38 constructor(directoryName:string) {
39 this.directoryName = directoryName 39 this.directoryName = directoryName
40 } 40 }
41 - directoryName:string  
42 - directoryWeight:number  
43 - id:number  
44 - isShow:number  
45 - level:number  
46 - parentId:number  
47 - rootId:number  
48 - children:FollowSecondListItem[] 41 + directoryName:string = ""
  42 + directoryWeight:number = 0
  43 + id:number = -1
  44 + isShow:number = 1
  45 + level:number = 1
  46 + parentId:number = 0
  47 + rootId:number = 0
  48 + children:FollowSecondListItem[] = []
49 } 49 }
50 @Observed 50 @Observed
51 export class FollowSecondListItem{ 51 export class FollowSecondListItem{
52 - directoryName:string  
53 - directoryWeight:number  
54 - id:number  
55 - isShow:number  
56 - level:number  
57 - parentId:number  
58 - rootId:number  
59 - children:FollowThirdListItem[] 52 + directoryName:string = ""
  53 + directoryWeight:number = 0
  54 + id:number = 0
  55 + isShow:number = 1
  56 + level:number = 1
  57 + parentId:number = 0
  58 + rootId:number = 0
  59 + children:FollowThirdListItem[] = []
60 } 60 }
61 @Observed 61 @Observed
62 export class FollowThirdListItem{ 62 export class FollowThirdListItem{
63 - directoryName:string  
64 - directoryWeight:number  
65 - id:number  
66 - isShow:number  
67 - level:number  
68 - parentId:number  
69 - rootId:number 63 + directoryName:string = ""
  64 + directoryWeight:number = 0
  65 + id:number = 0
  66 + isShow:number = 1
  67 + level:number = 1
  68 + parentId:number = 0
  69 + rootId:number = 0
70 } 70 }
  1 +import { QueryListIsFollowedItem } from './QueryListIsFollowedItem'
  2 +
  3 +// {"creatorIds":[{"creatorId":"3004862"},{"creatorId":"3004855"}]}
  4 +
  5 +export class FollowListStatusRequestItem{
  6 + creatorIds:QueryListIsFollowedItem[] = []
  7 +}
  1 +
  2 +import { CommentListItem } from './CommentListItem'
  3 +export class MineCommentListDetailItem{
  4 + list:CommentListItem[] = []
  5 +
  6 + pageNum: number = 0
  7 + pageSize: number = 20
  8 + totalCount: number = 0
  9 +
  10 + constructor(list?:CommentListItem[],pageNum?: number,pageSize?: number,totalCount?: number) {
  11 + }
  12 +
  13 +}
  1 +import { FollowListDetailItem } from './FollowListDetailItem'
  2 +
  3 +export class MineFollowListDetailItem{
  4 + list:FollowListDetailItem[] = []
  5 +
  6 + pageNum: number = 0
  7 + pageSize: number = 20
  8 + totalCount: number = 0
  9 +
  10 + constructor(list?:FollowListDetailItem[],pageNum?: number,pageSize?: number,totalCount?: number) {
  11 + }
  12 +
  13 +}
  1 +import { MineFollowListDetailItem } from './MineFollowListDetailItem'
  2 +
  3 +export class MineFollowListItem extends MineFollowListDetailItem{
  4 + hasNext: number = 0
  5 +}
  1 +
  2 +export class MineUserDetailItem{
  3 + userName:string = ""
  4 + headPhotoUrl:"" = ""
  5 + introduction:string = ""
  6 + userType:string = "1"
  7 + creatorId:string = ""
  8 + browseNum:number = 0//阅读数
  9 + commentNum:number = 0//评论数
  10 + attentionNum:number = 0//关注数
  11 + registTime:number = 0//账号注册时间
  12 +
  13 + levelHead:string = ""
  14 + levelId:number = 0
  15 +}
  1 +
  2 +export class MineUserLevelItem{
  3 + levelHead:string = ""
  4 + levelId:number = 0
  5 + levelName:string = ""
  6 +
  7 +}
  1 +
  2 +// "creatorId": "3004862",
  3 +// "status": "0",
  4 +// "userId": "567387477063621"
  5 +
  6 +export class QueryListIsFollowedItem{
  7 + creatorId:string = "-1"
  8 + status:string = "0"
  9 + userId:string = ""
  10 +
  11 + constructor(creatorId: string) {
  12 + this.creatorId = creatorId
  13 + }
  14 +}
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 "phone", 7 "phone",
8 "tablet" 8 "tablet"
9 ], 9 ],
10 - "deliveryWithInstall": true 10 + "deliveryWithInstall": true,
  11 + "pages": "$profile:main_pages"
11 } 12 }
12 } 13 }
@@ -90,6 +90,18 @@ @@ -90,6 +90,18 @@
90 { 90 {
91 "name":"color_EDEDED", 91 "name":"color_EDEDED",
92 "value": "#EDEDED" 92 "value": "#EDEDED"
  93 + },
  94 + {
  95 + "name":"color_1AED2800",
  96 + "value": "#1AED2800"
  97 + },
  98 + {
  99 + "name":"color_B2FFFFFF",
  100 + "value": "#B2FFFFFF"
  101 + },
  102 + {
  103 + "name":"color_transparent",
  104 + "value": "#00000000"
93 } 105 }
94 ] 106 ]
95 } 107 }
1 { 1 {
2 "src": [ 2 "src": [
3 - "components/DemoPreviewerComponent",  
4 - "components/view/SmallVideoCardComponent"  
5 ] 3 ]
6 } 4 }
@@ -6,7 +6,7 @@ export const enum CompStyle { @@ -6,7 +6,7 @@ export const enum CompStyle {
6 Carousel_Layout_01 = 'Zh_Carousel_Layout-01', // 通用轮播卡:视频、直播、活动、专题、榜单、外链 6 Carousel_Layout_01 = 'Zh_Carousel_Layout-01', // 通用轮播卡:视频、直播、活动、专题、榜单、外链
7 Carousel_Layout_02 = 'Carousel_Layout-02', // 直播轮播卡:直播 7 Carousel_Layout_02 = 'Carousel_Layout-02', // 直播轮播卡:直播
8 Single_Row_01 = 'Zh_Single_Row-01', // 三格方形小卡(排名):专题、活动 8 Single_Row_01 = 'Zh_Single_Row-01', // 三格方形小卡(排名):专题、活动
9 - Zh_Single_Row_01 = 'Zh_Single_Row-01', // 横划卡 9 + Zh_Single_Row_01 = 'Zh_Single_Row-01', // 横划卡 imageScale-封面图比例 1-4:3, 2-16:9, 3-3:2
10 Single_Row_02 = 'Zh_Single_Row-02', // 通用横划卡:视频、直播、专题 10 Single_Row_02 = 'Zh_Single_Row-02', // 通用横划卡:视频、直播、专题
11 Single_Row_03 = 'Single_Row-03', // 直播横划卡:直播 11 Single_Row_03 = 'Single_Row-03', // 直播横划卡:直播
12 Single_Row_04 = 'Single_Row-04', // 三格方形小卡:专题、活动 12 Single_Row_04 = 'Single_Row-04', // 三格方形小卡:专题、活动
@@ -26,5 +26,8 @@ export const enum CompStyle { @@ -26,5 +26,8 @@ export const enum CompStyle {
26 Single_ImageCard_03 = '13',//单图卡:3行标题 26 Single_ImageCard_03 = '13',//单图卡:3行标题
27 Single_ImageCard_01 = '6',//单图卡,竖图 27 Single_ImageCard_01 = '6',//单图卡,竖图
28 ZhGrid_Layout_03 = 'Zh_Grid_Layout-03', //金刚位卡 28 ZhGrid_Layout_03 = 'Zh_Grid_Layout-03', //金刚位卡
29 - Album_Card_01 = '17' //图卡集 29 + Album_Card_01 = '17', //图卡集
  30 + Zh_Single_Row_04 = 'Zh_Single_Row-04', // 地方精选卡
  31 + CompStyle_09 = 9, // 时间链卡
  32 + CompStyle_10 = 10, // 大专题卡
30 } 33 }
1 import HashMap from '@ohos.util.HashMap' 1 import HashMap from '@ohos.util.HashMap'
2 -import { ConfigConstants } from 'wdConstant'  
3 -import { DateTimeUtils, Logger, SPHelper } from 'wdKit' 2 +import { ConfigConstants, SpConstants } from 'wdConstant'
  3 +import { DateTimeUtils, Logger, SPHelper, StringUtils } from 'wdKit'
4 4
5 /** 5 /**
6 * 网络请求业务侧工具类 6 * 网络请求业务侧工具类
@@ -44,6 +44,17 @@ export class HttpUrlUtils { @@ -44,6 +44,17 @@ export class HttpUrlUtils {
44 */ 44 */
45 static readonly INTERACT_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/content/interactData"; 45 static readonly INTERACT_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/content/interactData";
46 46
  47 + // 多图(图集)详情页
  48 + /**
  49 + * 批量查询内容当前用户点赞、收藏状态
  50 + */
  51 + static readonly INTERACT_DATA_STATUS: string = "/api/rmrb-interact/interact/zh/c/batchLikeAndCollect/status";
  52 +
  53 + /**
  54 + * 浏览历史新增、删除接口
  55 + */
  56 + static readonly INTERACT_BROWS_OPERATE: string = "/api/rmrb-interact/interact/zh/c/brows/operate";
  57 +
47 /** 58 /**
48 * 电子报信息 59 * 电子报信息
49 */ 60 */
@@ -58,10 +69,15 @@ export class HttpUrlUtils { @@ -58,10 +69,15 @@ export class HttpUrlUtils {
58 */ 69 */
59 static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe"; 70 static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe";
60 /** 71 /**
61 - * 资料编辑 获取用户信息 72 + * 资料编辑 特殊用户信息
62 */ 73 */
63 static readonly APPOINTMENT_AccountOwner_PATH: string = "/api/rmrb-contact/contact/zh/c/my/detail"; 74 static readonly APPOINTMENT_AccountOwner_PATH: string = "/api/rmrb-contact/contact/zh/c/my/detail";
64 /** 75 /**
  76 + * 资料编辑 普通用户信息
  77 + */
  78 + static readonly APPOINTMENT_QueryUserDetail_PATH: string = "/api/rmrb-user-center/user/zh/c/queryUserDetail";
  79 + /**
  80 + /**
65 * 个人中心 关注列表详情 81 * 个人中心 关注列表详情
66 */ 82 */
67 static readonly FOLLOW_LIST_DETAIL_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getContactMasterDetaiPage"; 83 static readonly FOLLOW_LIST_DETAIL_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getContactMasterDetaiPage";
@@ -86,6 +102,25 @@ export class HttpUrlUtils { @@ -86,6 +102,25 @@ export class HttpUrlUtils {
86 * 个人中心 我的评论列表 102 * 个人中心 我的评论列表
87 */ 103 */
88 static readonly MINE_COMMENT_LIST_DATA_PATH: string = "/api/rmrb-comment/comment/zh/c/myCommentList"; 104 static readonly MINE_COMMENT_LIST_DATA_PATH: string = "/api/rmrb-comment/comment/zh/c/myCommentList";
  105 +
  106 + /**
  107 + * 个人中心 APP获取用户等级
  108 + */
  109 + static readonly MINE_USER_LEVEL_DATA_PATH: string = "/api/rmrb-user-point/auth/level/zh/c/queryUserLevel";
  110 +
  111 + /**
  112 + * 个人中心 APP获取其他用户等级
  113 + */
  114 + static readonly OTHER_USER_LEVEL_DATA_PATH: string = "/api/rmrb-user-point/auth/level/zh/c/batchUser";
  115 +
  116 + /**
  117 + * 个人中心 (号主/普通用户)我的基本信息
  118 + */
  119 + static readonly MINE_USER_DETAIL_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/my/detail";
  120 + /**
  121 + * 个人中心 (普通用户)其他用户 的基本信息
  122 + */
  123 + static readonly OTHER_USER_DETAIL_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/master/detail";
89 /** 124 /**
90 * 早晚报列表 125 * 早晚报列表
91 * 根据页面id获取页面楼层列表 126 * 根据页面id获取页面楼层列表
@@ -258,10 +293,14 @@ export class HttpUrlUtils { @@ -258,10 +293,14 @@ export class HttpUrlUtils {
258 293
259 private static getUserId() { 294 private static getUserId() {
260 // TODO 对接登录 295 // TODO 对接登录
261 - return HttpUrlUtils.userId; 296 + // let userid = await SPHelper.default.get(SpConstants.USER_ID,"")
  297 + // if(StringUtils.isNotEmpty(userid)) {
  298 + // return userid as string;
  299 + // }
  300 + return HttpUrlUtils.userId;
262 } 301 }
263 302
264 - private static getUserType() { 303 + private static getUserType() {
265 return HttpUrlUtils.userType; 304 return HttpUrlUtils.userType;
266 } 305 }
267 306
@@ -346,6 +385,27 @@ export class HttpUrlUtils { @@ -346,6 +385,27 @@ export class HttpUrlUtils {
346 return url 385 return url
347 } 386 }
348 387
  388 + static getMineUserLevelDataUrl() {
  389 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.MINE_USER_LEVEL_DATA_PATH
  390 + return url
  391 + }
  392 +
  393 + static getOtherUserLevelDataUrl() {
  394 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.OTHER_USER_LEVEL_DATA_PATH
  395 + return url
  396 + }
  397 +
  398 + static getMineUserDetailDataUrl() {
  399 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.MINE_USER_DETAIL_DATA_PATH
  400 + return url
  401 + }
  402 +
  403 + static getOtherUserDetailDataUrl() {
  404 + let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.OTHER_USER_DETAIL_DATA_PATH
  405 + return url
  406 + }
  407 +
  408 +
349 static getYcgCommonHeaders(): HashMap<string, string> { 409 static getYcgCommonHeaders(): HashMap<string, string> {
350 let headers: HashMap<string, string> = new HashMap<string, string>() 410 let headers: HashMap<string, string> = new HashMap<string, string>()
351 411
@@ -64,5 +64,8 @@ export class WDRouterPage { @@ -64,5 +64,8 @@ export class WDRouterPage {
64 // 设置密码页、设置手机号页等等 (需要传参) 64 // 设置密码页、设置手机号页等等 (需要传参)
65 static settingPasswordPage = new WDRouterPage("wdLogin", "ets/pages/login/SettingPasswordPage"); 65 static settingPasswordPage = new WDRouterPage("wdLogin", "ets/pages/login/SettingPasswordPage");
66 66
  67 + //其他普通用户 主页
  68 + static otherNormalUserHomePagePage = new WDRouterPage("wdComponent", "ets/pages/OtherNormalUserHomePage");
  69 +
67 // static loginProtocolPage = new WDRouterPage("wdLogin", "ets/pages/login/LoginProtocolWebview"); 70 // static loginProtocolPage = new WDRouterPage("wdLogin", "ets/pages/login/LoginProtocolWebview");
68 } 71 }
@@ -23,6 +23,8 @@ export { Pic } from './src/main/ets/bean/content/Pic' @@ -23,6 +23,8 @@ export { Pic } from './src/main/ets/bean/content/Pic'
23 23
24 export { InteractDataDTO } from './src/main/ets/bean/content/InteractDataDTO'; 24 export { InteractDataDTO } from './src/main/ets/bean/content/InteractDataDTO';
25 25
  26 +export { InteractDataStatusDTO } from './src/main/ets/bean/detail/MultiPictureDetailPageDTO';
  27 +
26 export { InteractParam, ContentBean } from './src/main/ets/bean/content/InteractParam'; 28 export { InteractParam, ContentBean } from './src/main/ets/bean/content/InteractParam';
27 29
28 export { LabelBean } from './src/main/ets/bean/component/extra/LabelBean'; 30 export { LabelBean } from './src/main/ets/bean/component/extra/LabelBean';
@@ -49,6 +51,10 @@ export { NewspaperTimeItemBean } from './src/main/ets/bean/newspaper/NewspaperTi @@ -49,6 +51,10 @@ export { NewspaperTimeItemBean } from './src/main/ets/bean/newspaper/NewspaperTi
49 51
50 export { ContentDetailDTO } from './src/main/ets/bean/detail/ContentDetailDTO'; 52 export { ContentDetailDTO } from './src/main/ets/bean/detail/ContentDetailDTO';
51 53
  54 +export { RmhInfoDTO } from './src/main/ets/bean/detail/RmhInfoDTO';
  55 +
  56 +export { UserInfoDTO } from './src/main/ets/bean/detail/UserInfoDTO';
  57 +
52 export { AuthorListDTO } from './src/main/ets/bean/detail/AuthorListDTO'; 58 export { AuthorListDTO } from './src/main/ets/bean/detail/AuthorListDTO';
53 59
54 export { FullColumnImgUrlDTO } from './src/main/ets/bean/detail/FullColumnImgUrlDTO'; 60 export { FullColumnImgUrlDTO } from './src/main/ets/bean/detail/FullColumnImgUrlDTO';
@@ -85,4 +91,3 @@ export { OperDataList } from './src/main/ets/bean/morningevening/OperDataList'; @@ -85,4 +91,3 @@ export { OperDataList } from './src/main/ets/bean/morningevening/OperDataList';
85 91
86 export { ShareInfo } from './src/main/ets/bean/morningevening/ShareInfo'; 92 export { ShareInfo } from './src/main/ets/bean/morningevening/ShareInfo';
87 93
88 -  
@@ -3,6 +3,8 @@ import { FullColumnImgUrlDTO } from './FullColumnImgUrlDTO'; @@ -3,6 +3,8 @@ import { FullColumnImgUrlDTO } from './FullColumnImgUrlDTO';
3 import { ReLInfoDTO } from './ReLInfoDTO'; 3 import { ReLInfoDTO } from './ReLInfoDTO';
4 import { ShareInfoDTO } from './ShareInfoDTO'; 4 import { ShareInfoDTO } from './ShareInfoDTO';
5 import { VideoInfoDTO } from './VideoInfoDTO'; 5 import { VideoInfoDTO } from './VideoInfoDTO';
  6 +import { RmhInfoDTO } from './RmhInfoDTO'
  7 +import { UserInfoDTO } from './UserInfoDTO'
6 8
7 /** 9 /**
8 * 接口定义: 10 * 接口定义:
@@ -40,8 +42,8 @@ export interface ContentDetailDTO { @@ -40,8 +42,8 @@ export interface ContentDetailDTO {
40 videoInfo: VideoInfoDTO[]; 42 videoInfo: VideoInfoDTO[];
41 liveInfo?: any; 43 liveInfo?: any;
42 voteInfo?: any; 44 voteInfo?: any;
43 - rmhInfo?: any;  
44 - userInfo?: any; 45 + rmhInfo?: RmhInfoDTO;
  46 + userInfo?: UserInfoDTO;
45 openLikes: number; 47 openLikes: number;
46 openComment: number; 48 openComment: number;
47 likesStyle: number; 49 likesStyle: number;
  1 +/*
  2 + * 多图(图集)详情
  3 + * */
  4 +// 批量查询内容当前用户点赞、收藏状态
  5 +export interface InteractDataStatusDTO {
  6 + contentId: string;
  7 + contentType: number;
  8 + contentRelId: string;
  9 + relType: number;
  10 + likeStatus: number;
  11 + collectStatus: number;
  12 +}
  1 +export interface RmhInfoDTO {
  2 + authIcon: string;
  3 + authTitle: string;
  4 + authTitle2: string;
  5 + banControl: number;
  6 + cnAttention: number;
  7 + cnMainControl: number;
  8 + cnShareControl: number;
  9 + cnlsComment: number;
  10 + cnlsLike: number;
  11 + posterShareControl: number;
  12 + rmhDesc: string;
  13 + rmhHeadUrl: string;
  14 + rmhId: string;
  15 + rmhName: string;
  16 + userId: string;
  17 + userType: string;
  18 +}
  1 +export interface UserInfoDTO {
  2 + userHeadUrl:string
  3 +}
@@ -51,3 +51,5 @@ export { BigPicCardComponent } from "./src/main/ets/components/view/BigPicCardCo @@ -51,3 +51,5 @@ export { BigPicCardComponent } from "./src/main/ets/components/view/BigPicCardCo
51 export { HeadPictureCardComponent } from "./src/main/ets/components/view/HeadPictureCardComponent" 51 export { HeadPictureCardComponent } from "./src/main/ets/components/view/HeadPictureCardComponent"
52 52
53 export { ZhGridLayoutComponent } from "./src/main/ets/components/view/ZhGridLayoutComponent" 53 export { ZhGridLayoutComponent } from "./src/main/ets/components/view/ZhGridLayoutComponent"
  54 +
  55 +export { MultiPictureDetailPageComponent } from "./src/main/ets/components/MultiPictureDetailPageComponent"
  1 +import { Logger } from 'wdKit';
  2 +import { ContentDetailDTO } from 'wdBean';
  3 +import { MultiPictureDetailViewModel } from '../viewmodel/MultiPictureDetailViewModel';
  4 +import display from '@ohos.display';
  5 +import font from '@ohos.font';
  6 +
  7 +const TAG = 'MultiPictureDetailPageComponent';
  8 +
  9 +@Component
  10 +export struct MultiPictureDetailPageComponent {
  11 + private displayTool = display.getDefaultDisplaySync()
  12 + private screenWidth: number = 0
  13 + private picWidth: number = 0
  14 + @State picHeight: number = 0
  15 + @State relId: string = '500005189942'
  16 + @State contentId: string = '30043715146'
  17 + @State relType: string = '1'
  18 + @State contentDetailData: ContentDetailDTO[] = [{}] as ContentDetailDTO[]
  19 + @Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01'
  20 + private swiperController: SwiperController = new SwiperController()
  21 + @State swiperIndex: number = 0;
  22 +
  23 + //watch监听页码回调
  24 + onCurrentPageNumUpdated(): void {
  25 + Logger.info(TAG, `currentPageNum:${this.currentPageNum}`, )
  26 + let _swiperIndex = Number.parseInt(this.currentPageNum)
  27 + Logger.info(TAG, `_swiperIndex:${_swiperIndex}`)
  28 + this.swiperIndex = _swiperIndex > 0 ? _swiperIndex - 1 : _swiperIndex
  29 + }
  30 +
  31 +
  32 + async aboutToAppear() {
  33 + //获取宽高尺寸
  34 + this.screenWidth = this.displayTool.width
  35 + this.picWidth = this.screenWidth - vp2px(52)
  36 + this.picHeight = this.picWidth * 566 / 378
  37 + //注册字体
  38 + font.registerFont({
  39 + familyName: 'BebasNeue_Regular',
  40 + familySrc: $rawfile('font/BebasNeue_Regular.otf')
  41 + })
  42 + this.getContentDetailData()
  43 + }
  44 +
  45 + aboutToDisappear() {
  46 +
  47 + }
  48 +
  49 + build() {
  50 + RelativeContainer() {
  51 + if (this.contentDetailData && this.contentDetailData.length > 0) {
  52 + Swiper(this.swiperController) {
  53 + ForEach(this.contentDetailData, (item: ContentDetailDTO, index: number) => {
  54 + // ENewspaperItemComponent({ newspaperListItemBean: item })
  55 + })
  56 + }
  57 + .index(this.swiperIndex)
  58 + .width('100%')
  59 + .height(px2vp(this.picHeight) + 32)
  60 + .vertical(true)
  61 + .autoPlay(false)
  62 + .cachedCount(3)
  63 + .indicator(false)
  64 + .displayCount(1)
  65 + .margin({ top: 35, left: 10, right: 10 })
  66 + .id('e_newspaper_content')
  67 + .alignRules({
  68 + top: { anchor: "e_newspaper_top", align: VerticalAlign.Bottom },
  69 + middle: { anchor: "__container__", align: HorizontalAlign.Center }
  70 + })
  71 + .onChange((index: number) => {
  72 + this.swiperIndex = index
  73 + })
  74 + }}
  75 + }
  76 +
  77 + private async getContentDetailData() {
  78 + try {
  79 + let data = await MultiPictureDetailViewModel.getDetailData(this.relId, this.contentId, this.relType)
  80 + this.contentDetailData = data;
  81 + Logger.info(TAG, `contentDetailData:${JSON.stringify(this.contentDetailData)}`)
  82 + } catch (exception) {
  83 +
  84 + }
  85 + }
  86 +}
@@ -27,6 +27,7 @@ export default struct MinePageCreatorFunctionUI { @@ -27,6 +27,7 @@ export default struct MinePageCreatorFunctionUI {
27 .width('27lpx') 27 .width('27lpx')
28 .height('27lpx') 28 .height('27lpx')
29 .objectFit(ImageFit.Auto) 29 .objectFit(ImageFit.Auto)
  30 + .interpolation(ImageInterpolation.High)
30 } 31 }
31 32
32 }.setFullWidth() 33 }.setFullWidth()
@@ -42,6 +43,8 @@ export default struct MinePageCreatorFunctionUI { @@ -42,6 +43,8 @@ export default struct MinePageCreatorFunctionUI {
42 Image(item.imgSrc) 43 Image(item.imgSrc)
43 .width('50lpx') 44 .width('50lpx')
44 .height('50lpx') 45 .height('50lpx')
  46 + .objectFit(ImageFit.Auto)
  47 + .interpolation(ImageInterpolation.High)
45 Text(`${item.msg}`) 48 Text(`${item.msg}`)
46 .margin({top:'15lpx'}) 49 .margin({top:'15lpx'})
47 .width('96lpx') 50 .width('96lpx')
@@ -37,6 +37,8 @@ export default struct MinePageMoreFunctionUI { @@ -37,6 +37,8 @@ export default struct MinePageMoreFunctionUI {
37 .width('38lpx') 37 .width('38lpx')
38 .height('38lpx') 38 .height('38lpx')
39 .margin({ right: '15lpx' }) 39 .margin({ right: '15lpx' })
  40 + .objectFit(ImageFit.Auto)
  41 + .interpolation(ImageInterpolation.High)
40 } 42 }
41 Text(`${item.msg}`) 43 Text(`${item.msg}`)
42 .width('456lpx') 44 .width('456lpx')
@@ -50,6 +52,7 @@ export default struct MinePageMoreFunctionUI { @@ -50,6 +52,7 @@ export default struct MinePageMoreFunctionUI {
50 .width('27lpx') 52 .width('27lpx')
51 .height('27lpx') 53 .height('27lpx')
52 .objectFit(ImageFit.Auto) 54 .objectFit(ImageFit.Auto)
  55 + .interpolation(ImageInterpolation.High)
53 .margin({ left: '81lpx', right: '29lpx' }) 56 .margin({ left: '81lpx', right: '29lpx' })
54 }.alignItems(VerticalAlign.Center) 57 }.alignItems(VerticalAlign.Center)
55 .justifyContent(FlexAlign.Center) 58 .justifyContent(FlexAlign.Center)
@@ -5,6 +5,13 @@ import router from '@ohos.router' @@ -5,6 +5,13 @@ import router from '@ohos.router'
5 @Component 5 @Component
6 export default struct MinePagePersonFunctionUI { 6 export default struct MinePagePersonFunctionUI {
7 @Link personalData:MinePagePersonalFunctionsItem[] 7 @Link personalData:MinePagePersonalFunctionsItem[]
  8 + @Prop isLogin:boolean
  9 + @Consume('isLogin')@Watch('loginChange') loginState:Record<string,string>
  10 + loginChange(){
  11 + if(this.loginState){
  12 + this.isLogin=true
  13 + }
  14 + }
8 15
9 build() { 16 build() {
10 Grid(){ 17 Grid(){
@@ -15,6 +22,8 @@ export default struct MinePagePersonFunctionUI { @@ -15,6 +22,8 @@ export default struct MinePagePersonFunctionUI {
15 Image(item.imgSrc) 22 Image(item.imgSrc)
16 .width('46lpx') 23 .width('46lpx')
17 .height('46lpx') 24 .height('46lpx')
  25 + .objectFit(ImageFit.Auto)
  26 + .interpolation(ImageInterpolation.High)
18 Text(`${item.msg}`) 27 Text(`${item.msg}`)
19 .margin({top:'8lpx'}) 28 .margin({top:'8lpx'})
20 .width('50lpx') 29 .width('50lpx')
@@ -37,18 +46,34 @@ export default struct MinePagePersonFunctionUI { @@ -37,18 +46,34 @@ export default struct MinePagePersonFunctionUI {
37 console.log(index+"") 46 console.log(index+"")
38 switch (item.msg){ 47 switch (item.msg){
39 case "预约":{ 48 case "预约":{
  49 + if(!this.isLogin){
  50 + WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  51 + return
  52 + }
40 WDRouterRule.jumpWithPage(WDRouterPage.appointmentListPage) 53 WDRouterRule.jumpWithPage(WDRouterPage.appointmentListPage)
41 break; 54 break;
42 } 55 }
43 case "关注":{ 56 case "关注":{
  57 + if(!this.isLogin){
  58 + WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  59 + return
  60 + }
44 WDRouterRule.jumpWithPage(WDRouterPage.followListPage) 61 WDRouterRule.jumpWithPage(WDRouterPage.followListPage)
45 break; 62 break;
46 } 63 }
47 case "收藏":{ 64 case "收藏":{
  65 + if(!this.isLogin){
  66 + WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  67 + return
  68 + }
48 WDRouterRule.jumpWithPage(WDRouterPage.myCollectionListPagePage) 69 WDRouterRule.jumpWithPage(WDRouterPage.myCollectionListPagePage)
49 break; 70 break;
50 } 71 }
51 case "历史":{ 72 case "历史":{
  73 + if(!this.isLogin){
  74 + WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  75 + return
  76 + }
52 WDRouterRule.jumpWithPage(WDRouterPage.browsingHistoryPage) 77 WDRouterRule.jumpWithPage(WDRouterPage.browsingHistoryPage)
53 break; 78 break;
54 } 79 }
1 import { Logger } from 'wdKit' 1 import { Logger } from 'wdKit'
2 import { WDRouterPage, WDRouterRule } from 'wdRouter' 2 import { WDRouterPage, WDRouterRule } from 'wdRouter'
  3 +import MinePageDatasModel from '../../model/MinePageDatasModel'
  4 +const TAG = "MinePageUserSimpleInfoUI"
  5 +
3 6
4 @Component 7 @Component
5 export default struct MinePageUserSimpleInfoUI { 8 export default struct MinePageUserSimpleInfoUI {
6 - @Prop isLogin:boolean  
7 - @Prop userName:string  
8 - @Consume('isLogin')@Watch('loginChange') isLogin2:Record<string,string> 9 + @Watch('loginStateChange') @Prop isLogin :boolean
  10 + @State userName:string = "登陆注册"
  11 + @State headPhotoUrl:string = ""
  12 + @State levelHead:string = ""
  13 + @State levelId:number = 0
  14 +
  15 +
  16 + aboutToAppear(){
  17 + if(this.isLogin){
  18 + this.getUserInfo()
  19 + this.getUserLevel()
  20 + }
  21 + }
  22 +
  23 +
  24 + @Consume('isLogin')@Watch('loginChange') loginState:Record<string,string>
9 loginChange(){ 25 loginChange(){
10 Logger.debug("isLogin",'MinePageUserSimpleInfoUI') 26 Logger.debug("isLogin",'MinePageUserSimpleInfoUI')
11 - if(this.isLogin2){ 27 + if(this.loginState){
12 this.isLogin=true 28 this.isLogin=true
13 - this.userName=this.isLogin2['userName'] 29 + }
  30 + if(this.isLogin){
  31 + this.getUserInfo()
  32 + this.getUserLevel()
  33 + }
  34 + }
  35 + loginStateChange(){
  36 + if(this.isLogin){
  37 + this.getUserInfo()
  38 + this.getUserLevel()
14 } 39 }
15 } 40 }
16 41
@@ -18,24 +43,22 @@ export default struct MinePageUserSimpleInfoUI { @@ -18,24 +43,22 @@ export default struct MinePageUserSimpleInfoUI {
18 Row(){ 43 Row(){
19 //头像 44 //头像
20 Stack(){ 45 Stack(){
21 - Button({type:ButtonType.Circle})  
22 - .backgroundColor($r('app.color.main_red'))  
23 - .width('110lpx')  
24 - .height('110lpx')  
25 - Image($r('app.media.default_head')) 46 + Image(this.headPhotoUrl)
  47 + .alt($r('app.media.default_head'))
26 .width('108lpx') 48 .width('108lpx')
27 .height('108lpx') 49 .height('108lpx')
28 .objectFit(ImageFit.Cover) 50 .objectFit(ImageFit.Cover)
29 .borderRadius(50) 51 .borderRadius(50)
30 - }.width('110lpx')  
31 - .height('110lpx') 52 + Image(this.levelHead)
  53 + .width('120lpx')
  54 + .height('120lpx')
  55 + .objectFit(ImageFit.Cover)
  56 + .borderRadius(50)
  57 + }.width('120lpx')
  58 + .height('120lpx')
32 .alignContent(Alignment.Center) 59 .alignContent(Alignment.Center)
33 .onClick(()=>{ 60 .onClick(()=>{
34 - if(!this.isLogin){  
35 - WDRouterRule.jumpWithPage(WDRouterPage.loginPage)  
36 - }else {  
37 - WDRouterRule.jumpWithPage(WDRouterPage.mineHomePage)  
38 - } 61 + this.jumpLogin()
39 }) 62 })
40 63
41 if(this.isLogin){ 64 if(this.isLogin){
@@ -55,13 +78,16 @@ export default struct MinePageUserSimpleInfoUI { @@ -55,13 +78,16 @@ export default struct MinePageUserSimpleInfoUI {
55 .objectFit(ImageFit.Cover) 78 .objectFit(ImageFit.Cover)
56 Blank() 79 Blank()
57 }.width('100%') 80 }.width('100%')
  81 + .onClick(()=>{
  82 + this.jumpLogin()
  83 + })
58 84
59 Stack(){ 85 Stack(){
60 Image($r('app.media.mine_grade_bg')) 86 Image($r('app.media.mine_grade_bg'))
61 .width('84lpx') 87 .width('84lpx')
62 .height('29lpx') 88 .height('29lpx')
63 .objectFit(ImageFit.Auto) 89 .objectFit(ImageFit.Auto)
64 - Text("等级8") 90 + Text(`等级${this.levelId}`)
65 .textAlign(TextAlign.Center) 91 .textAlign(TextAlign.Center)
66 .fontColor($r('app.color.white')) 92 .fontColor($r('app.color.white'))
67 .fontSize('19lpx') 93 .fontSize('19lpx')
@@ -84,7 +110,9 @@ export default struct MinePageUserSimpleInfoUI { @@ -84,7 +110,9 @@ export default struct MinePageUserSimpleInfoUI {
84 .margin({left:'15lpx'}) 110 .margin({left:'15lpx'})
85 .objectFit(ImageFit.Cover) 111 .objectFit(ImageFit.Cover)
86 Blank() 112 Blank()
87 - } 113 + }.onClick(()=>{
  114 + this.jumpLogin()
  115 + })
88 .margin({top:'11lpx',left:'17lpx'}) 116 .margin({top:'11lpx',left:'17lpx'})
89 .width('352lpx') 117 .width('352lpx')
90 } 118 }
@@ -122,4 +150,33 @@ export default struct MinePageUserSimpleInfoUI { @@ -122,4 +150,33 @@ export default struct MinePageUserSimpleInfoUI {
122 @Styles setFullHeight(){ 150 @Styles setFullHeight(){
123 .height('100%') 151 .height('100%')
124 } 152 }
  153 +
  154 + getUserInfo(){
  155 + MinePageDatasModel.getUserDetailData(getContext(this)).then((value)=>{
  156 + if(value!=null){
  157 + this.userName = value.userName
  158 + this.headPhotoUrl = value.headPhotoUrl
  159 + }
  160 + }).catch((err:Error)=>{
  161 + console.log(TAG,JSON.stringify(err))
  162 + })
  163 + }
  164 + getUserLevel(){
  165 + MinePageDatasModel.getUserLevelData(getContext(this)).then((value)=>{
  166 + if(value!=null){
  167 + this.levelHead = value.levelHead
  168 + this.levelId = value.levelId
  169 + }
  170 + }).catch((err:Error)=>{
  171 + console.log(TAG,JSON.stringify(err))
  172 + })
  173 + }
  174 +
  175 + jumpLogin(){
  176 + if(!this.isLogin){
  177 + WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
  178 + }else {
  179 + WDRouterRule.jumpWithPage(WDRouterPage.mineHomePage)
  180 + }
  181 + }
125 } 182 }
@@ -9,6 +9,8 @@ export struct AppointmentListChildComponent{ @@ -9,6 +9,8 @@ export struct AppointmentListChildComponent{
9 Stack(){ 9 Stack(){
10 Image(this.item?.imageUrl[0]) 10 Image(this.item?.imageUrl[0])
11 .objectFit(ImageFit.Auto) 11 .objectFit(ImageFit.Auto)
  12 + .interpolation(ImageInterpolation.High)
  13 +
12 14
13 if(this.item.relType === 1){ 15 if(this.item.relType === 1){
14 Row(){ 16 Row(){
@@ -17,6 +19,8 @@ export struct AppointmentListChildComponent{ @@ -17,6 +19,8 @@ export struct AppointmentListChildComponent{
17 .width('42lpx') 19 .width('42lpx')
18 .height('35lpx') 20 .height('35lpx')
19 .objectFit(ImageFit.Auto) 21 .objectFit(ImageFit.Auto)
  22 + .interpolation(ImageInterpolation.High)
  23 +
20 Text("预约") 24 Text("预约")
21 .fontWeight(400) 25 .fontWeight(400)
22 .fontSize('21lpx') 26 .fontSize('21lpx')
@@ -51,6 +55,7 @@ export struct AppointmentListChildComponent{ @@ -51,6 +55,7 @@ export struct AppointmentListChildComponent{
51 if(this.item.relType === 2){ 55 if(this.item.relType === 2){
52 Image($r('app.media.play_status_history_icon')) 56 Image($r('app.media.play_status_history_icon'))
53 .objectFit(ImageFit.Auto) 57 .objectFit(ImageFit.Auto)
  58 + .interpolation(ImageInterpolation.High)
54 .width('38lpx') 59 .width('38lpx')
55 .height('38lpx') 60 .height('38lpx')
56 .margin({right:'12lpx'}) 61 .margin({right:'12lpx'})
@@ -60,6 +65,7 @@ export struct AppointmentListChildComponent{ @@ -60,6 +65,7 @@ export struct AppointmentListChildComponent{
60 }else { 65 }else {
61 Image($r('app.media.play_status_icon')) 66 Image($r('app.media.play_status_icon'))
62 .objectFit(ImageFit.Auto) 67 .objectFit(ImageFit.Auto)
  68 + .interpolation(ImageInterpolation.High)
63 .width('38lpx') 69 .width('38lpx')
64 .height('38lpx') 70 .height('38lpx')
65 .margin({right:'12lpx'}) 71 .margin({right:'12lpx'})
@@ -68,6 +74,7 @@ export struct AppointmentListChildComponent{ @@ -68,6 +74,7 @@ export struct AppointmentListChildComponent{
68 .fontSize('23lpx') 74 .fontSize('23lpx')
69 Image($r('app.media.point_icon')) 75 Image($r('app.media.point_icon'))
70 .objectFit(ImageFit.Auto) 76 .objectFit(ImageFit.Auto)
  77 + .interpolation(ImageInterpolation.High)
71 .width('12lpx') 78 .width('12lpx')
72 .height('31lpx') 79 .height('31lpx')
73 .margin({right:'4lpx'}) 80 .margin({right:'4lpx'})
@@ -6,6 +6,7 @@ const TAG = "FollowFirstTabsComponent" @@ -6,6 +6,7 @@ const TAG = "FollowFirstTabsComponent"
6 @Component 6 @Component
7 export struct FollowFirstTabsComponent{ 7 export struct FollowFirstTabsComponent{
8 @State currentIndex: number = 0 8 @State currentIndex: number = 0
  9 + @Prop changeIndex: number
9 private controller: TabsController = new TabsController() 10 private controller: TabsController = new TabsController()
10 @State data:FollowListItem[] = [] 11 @State data:FollowListItem[] = []
11 fontColor: string = '#999999' 12 fontColor: string = '#999999'
@@ -22,6 +23,14 @@ export struct FollowFirstTabsComponent{ @@ -22,6 +23,14 @@ export struct FollowFirstTabsComponent{
22 this.data.push(element) 23 this.data.push(element)
23 }) 24 })
24 console.log("ycg",this.data.length.toString()); 25 console.log("ycg",this.data.length.toString());
  26 + if(this.controller != null && this.data.length>1 && this.changeIndex === 1){
  27 + //个人主页 跳转 关注页 tab 2
  28 + let intervalID = setInterval(() => {
  29 + this.currentIndex = this.changeIndex
  30 + this.controller.changeIndex(this.currentIndex)
  31 + clearInterval(intervalID);
  32 + }, 500);
  33 + }
25 }).catch((err:Error)=>{ 34 }).catch((err:Error)=>{
26 console.log(TAG,JSON.stringify(err)) 35 console.log(TAG,JSON.stringify(err))
27 }) 36 })
  1 +import { Params } from 'wdBean';
1 import { LazyDataSource, StringUtils } from 'wdKit'; 2 import { LazyDataSource, StringUtils } from 'wdKit';
  3 +import { WDRouterPage, WDRouterRule } from 'wdRouter';
2 import MinePageDatasModel from '../../../model/MinePageDatasModel'; 4 import MinePageDatasModel from '../../../model/MinePageDatasModel';
3 import { CommentListItem } from '../../../viewmodel/CommentListItem'; 5 import { CommentListItem } from '../../../viewmodel/CommentListItem';
4 import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem'; 6 import { FollowListDetailItem } from '../../../viewmodel/FollowListDetailItem';
@@ -15,6 +17,8 @@ export struct HomePageBottomComponent{ @@ -15,6 +17,8 @@ export struct HomePageBottomComponent{
15 @State hasMore:boolean = true 17 @State hasMore:boolean = true
16 curPageNum:number = 1; 18 curPageNum:number = 1;
17 @State count:number = 0; 19 @State count:number = 0;
  20 + @State isMineAccount:boolean = true;
  21 + @State userId:string = "";
18 22
19 aboutToAppear(){ 23 aboutToAppear(){
20 this.getNewPageData() 24 this.getNewPageData()
@@ -53,7 +57,12 @@ export struct HomePageBottomComponent{ @@ -53,7 +57,12 @@ export struct HomePageBottomComponent{
53 .justifyContent(FlexAlign.Center) 57 .justifyContent(FlexAlign.Center)
54 .backgroundColor($r('app.color.color_F5F5F5')) 58 .backgroundColor($r('app.color.color_F5F5F5'))
55 .margin({top:'31lpx',bottom:'4lpx'}) 59 .margin({top:'31lpx',bottom:'4lpx'})
56 - } 60 + }.onClick(()=>{
  61 + let params: Params = {
  62 + pageID: "1"
  63 + }
  64 + WDRouterRule.jumpWithPage(WDRouterPage.followListPage,params)
  65 + })
57 66
58 LazyForEach(this.data_follow, (item: FollowListDetailItem, index: number = 0) => { 67 LazyForEach(this.data_follow, (item: FollowListDetailItem, index: number = 0) => {
59 ListItem() { 68 ListItem() {
@@ -19,7 +19,7 @@ struct BrowsingHistoryPage { @@ -19,7 +19,7 @@ struct BrowsingHistoryPage {
19 @State private browSingModel: PageModel = new PageModel() 19 @State private browSingModel: PageModel = new PageModel()
20 20
21 aboutToAppear(){ 21 aboutToAppear(){
22 - // this.getData() 22 + this.getData()
23 } 23 }
24 24
25 build() { 25 build() {
1 import router from '@ohos.router'; 1 import router from '@ohos.router';
2 import { CustomTitleUI } from '../reusable/CustomTitleUI'; 2 import { CustomTitleUI } from '../reusable/CustomTitleUI';
3 -import { EditInfoModel, EditListInfo } from '../../model/EditInfoModel'; 3 +import { EditInfoModel, EditListInfo, editModel } from '../../model/EditInfoModel';
4 import EditInfoViewModel from '../../viewmodel/EditInfoViewModel'; 4 import EditInfoViewModel from '../../viewmodel/EditInfoViewModel';
5 import { WDRouterPage, WDRouterRule } from 'wdRouter'; 5 import { WDRouterPage, WDRouterRule } from 'wdRouter';
6 6
@@ -9,10 +9,10 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter'; @@ -9,10 +9,10 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter';
9 @Component 9 @Component
10 struct EditUserInfoPage { 10 struct EditUserInfoPage {
11 private listData: EditListInfo[] = [] 11 private listData: EditListInfo[] = []
12 - editInfo: EditInfoModel = new EditInfoModel('','待完善','待完善','待完善','待完善','待完善','待完善') 12 + // editM: editModel
13 13
14 aboutToAppear() { 14 aboutToAppear() {
15 - this.listData = EditInfoViewModel.getEditListInfo(this.editInfo) 15 + // this.listData = EditInfoViewModel.getEditListInfo(this.editM)
16 this.getAccountOwnerInfo() 16 this.getAccountOwnerInfo()
17 } 17 }
18 18
@@ -20,7 +20,7 @@ struct EditUserInfoPage { @@ -20,7 +20,7 @@ struct EditUserInfoPage {
20 Row() { 20 Row() {
21 Column() { 21 Column() {
22 CustomTitleUI({titleName:'资料编辑'}) 22 CustomTitleUI({titleName:'资料编辑'})
23 - Image(this.editInfo.headPhotoUrl?this.editInfo.headPhotoUrl:'') 23 + Image('')
24 .backgroundColor(Color.Gray) 24 .backgroundColor(Color.Gray)
25 .width(100) 25 .width(100)
26 .height(100) 26 .height(100)
@@ -110,8 +110,8 @@ struct EditUserInfoPage { @@ -110,8 +110,8 @@ struct EditUserInfoPage {
110 } 110 }
111 111
112 getAccountOwnerInfo(){ 112 getAccountOwnerInfo(){
113 - EditInfoViewModel.queryAccountOwnerInfo(1).then((result) => {  
114 - this.editInfo = result 113 + EditInfoViewModel.queryAccountOwnerInfo(1,getContext(this)).then((result) => {
  114 + // this.editM = result
115 }); 115 });
116 } 116 }
117 117
  1 +import { Params } from 'wdBean';
1 import { FollowFirstTabsComponent } from '../mine/follow/FollowFirstTabsComponent' 2 import { FollowFirstTabsComponent } from '../mine/follow/FollowFirstTabsComponent'
  3 +import router from '@ohos.router';
2 4
3 @Entry 5 @Entry
4 @Component 6 @Component
5 struct FollowListPage { 7 struct FollowListPage {
  8 + @State params:Params = router.getParams() as Params;
  9 + @State curIndex: string = '0';
  10 +
  11 + onPageShow() {
  12 + this.curIndex = this.params?.pageID;
  13 + }
6 14
7 build() { 15 build() {
8 Column() { 16 Column() {
9 //Tab 详情 17 //Tab 详情
10 - FollowFirstTabsComponent() 18 + FollowFirstTabsComponent({changeIndex:Number(this.curIndex)})
11 } 19 }
12 .backgroundColor($r('app.color.color_F9F9F9')) 20 .backgroundColor($r('app.color.color_F9F9F9'))
13 .height('100%') 21 .height('100%')
@@ -20,7 +20,6 @@ export struct MinePageComponent { @@ -20,7 +20,6 @@ export struct MinePageComponent {
20 //是否是创作者 20 //是否是创作者
21 @State isCreator:boolean = false 21 @State isCreator:boolean = false
22 @State isLogin:boolean = false //默认 false 测试放开 22 @State isLogin:boolean = false //默认 false 测试放开
23 - @State userName:string = "登陆注册"  
24 @State personalData:MinePagePersonalFunctionsItem[] = [] 23 @State personalData:MinePagePersonalFunctionsItem[] = []
25 @State creatorData:MinePageCreatorFunctionsItem[] = [] 24 @State creatorData:MinePageCreatorFunctionsItem[] = []
26 @State moreData:MinePageMoreFunctionModel[] = [] 25 @State moreData:MinePageMoreFunctionModel[] = []
@@ -61,9 +60,9 @@ export struct MinePageComponent { @@ -61,9 +60,9 @@ export struct MinePageComponent {
61 @Builder MinePageUI(){ 60 @Builder MinePageUI(){
62 Column(){ 61 Column(){
63 //头像层 62 //头像层
64 - MinePageUserSimpleInfoUI({isLogin:this.isLogin,userName:this.userName}) 63 + MinePageUserSimpleInfoUI({isLogin:this.isLogin})
65 //Grid 区域 64 //Grid 区域
66 - MinePagePersonFunctionUI({personalData:$personalData}) 65 + MinePagePersonFunctionUI({personalData:$personalData,isLogin:this.isLogin})
67 //Card 66 //Card
68 MinePageCardUI() 67 MinePageCardUI()
69 //创作者区域 68 //创作者区域
@@ -83,8 +82,6 @@ export struct MinePageComponent { @@ -83,8 +82,6 @@ export struct MinePageComponent {
83 let userid = await SPHelper.default.get(SpConstants.USER_ID,"") 82 let userid = await SPHelper.default.get(SpConstants.USER_ID,"")
84 if(StringUtils.isNotEmpty(userid)){ 83 if(StringUtils.isNotEmpty(userid)){
85 this.isLogin = true 84 this.isLogin = true
86 - let userName = await SPHelper.default.get(SpConstants.USER_NAME,"") as string  
87 - this.userName = userName  
88 }else{ 85 }else{
89 this.isLogin = false 86 this.isLogin = false
90 } 87 }
@@ -19,7 +19,7 @@ struct MyCollectionListPage { @@ -19,7 +19,7 @@ struct MyCollectionListPage {
19 isloading : boolean = false 19 isloading : boolean = false
20 20
21 aboutToAppear(){ 21 aboutToAppear(){
22 - // this.getData() 22 + this.getData()
23 } 23 }
24 24
25 build() { 25 build() {
@@ -13,6 +13,7 @@ export struct CustomTitleUI { @@ -13,6 +13,7 @@ export struct CustomTitleUI {
13 .width('46lpx') 13 .width('46lpx')
14 .height('46lpx') 14 .height('46lpx')
15 .objectFit(ImageFit.Auto) 15 .objectFit(ImageFit.Auto)
  16 + .interpolation(ImageInterpolation.High)
16 .id("back_icon") 17 .id("back_icon")
17 .alignRules({ 18 .alignRules({
18 center: {anchor: "__container__", align: VerticalAlign.Center}, 19 center: {anchor: "__container__", align: VerticalAlign.Center},
@@ -18,6 +18,7 @@ export struct ListHasNoMoreDataUI{ @@ -18,6 +18,7 @@ export struct ListHasNoMoreDataUI{
18 .width('200lpx') 18 .width('200lpx')
19 .height('200lpx') 19 .height('200lpx')
20 .objectFit(ImageFit.Auto) 20 .objectFit(ImageFit.Auto)
  21 + .interpolation(ImageInterpolation.High)
21 Text("暂无内容") 22 Text("暂无内容")
22 .fontColor($r('app.color.color_999999')) 23 .fontColor($r('app.color.color_999999'))
23 .fontWeight('500lpx') 24 .fontWeight('500lpx')
1 import { CompDTO } from 'wdBean'; 1 import { CompDTO } from 'wdBean';
2 import { CommonConstants } from 'wdConstant'; 2 import { CommonConstants } from 'wdConstant';
3 -import { CompUtils } from '../../utils/CompUtils';  
4 3
5 @Component 4 @Component
6 export struct HeadPictureCardComponent { 5 export struct HeadPictureCardComponent {
@@ -16,7 +15,6 @@ export struct HeadPictureCardComponent { @@ -16,7 +15,6 @@ export struct HeadPictureCardComponent {
16 Row() 15 Row()
17 .width(CommonConstants.FULL_WIDTH) 16 .width(CommonConstants.FULL_WIDTH)
18 .height(59) 17 .height(59)
19 - .backgroundColor(Color.Red)  
20 .linearGradient({ 18 .linearGradient({
21 colors: [ 19 colors: [
22 ['rgba(0, 0, 0, 0.0)', 0.0], ['rgba(0, 0, 0, 0.3)', 1.0] 20 ['rgba(0, 0, 0, 0.0)', 0.0], ['rgba(0, 0, 0, 0.3)', 1.0]
  1 +import { ToastUtils, Logger } from 'wdKit';
  2 +
  3 +export interface OperationItem {
  4 + icon: Resource;
  5 +
  6 + // icon_selected: Resource;
  7 + text: string | Resource;
  8 + num?: number; // 个数
  9 +}
  10 +
  11 +const FULL_PARENT: string = '100%';
  12 +
  13 +const TAG = 'OperRowListView';
  14 +
  15 +@Entry
  16 +@Component
  17 +export struct OperRowListView {
  18 + @State operationList: OperationItem[] = [
  19 + {
  20 + icon: $r('app.media.ic_like_uncheck'),
  21 + text: "点赞",
  22 + num: 6622
  23 + },
  24 + {
  25 + icon: $r('app.media.ic_collect_uncheck'),
  26 + text: "收藏",
  27 + num: 662,
  28 + },
  29 + {
  30 + icon: $r('app.media.ic_comment'),
  31 + text: "评论",
  32 + num: 500,
  33 + },
  34 + {
  35 + icon: $r('app.media.ic_share'),
  36 + text: "分享"
  37 + }
  38 + ]
  39 +
  40 + aboutToAppear() {
  41 + }
  42 +
  43 + build() {
  44 + // List({ space: 0, initialIndex: 0 }) {
  45 + // ForEach(this.operationList, (item: OperationItem, index: number) => {
  46 + // ListItem() {
  47 + // this.buildOperationItem(item, index)
  48 + // }
  49 + // }, (item: OperationItem, index: number) => JSON.stringify(item))
  50 + // }
  51 + // .width(48)
  52 + // .height(250)
  53 + // // .margin({ bottom: 100 })
  54 + // .backgroundColor(Color.Red)
  55 + // // .listDirection(Axis.Vertical) // 默认值:Axis.Vertical
  56 + // // .lanes(this.buildLanes()) // 行/列数,一列 // 默认值:1
  57 + // .cachedCount(2)
  58 + // .scrollBar(BarState.Off)
  59 + // .nestedScroll({
  60 + // scrollForward: NestedScrollMode.PARENT_FIRST,
  61 + // scrollBackward: NestedScrollMode.SELF_FIRST
  62 + // })
  63 +
  64 + Column() {
  65 + ForEach(this.operationList, (item: OperationItem, index: number) => {
  66 + this.buildOperationItem(item, index)
  67 + }, (item: OperationItem, index: number) => JSON.stringify(item))
  68 + }
  69 + .width(48)
  70 + }
  71 +
  72 + /**
  73 + * 组件项
  74 + *
  75 + * @param programmeBean item 组件项
  76 + */
  77 + @Builder
  78 + buildOperationItem(item: OperationItem, index: number) {
  79 + Column() {
  80 + Image(item.icon)
  81 + .width('100%')
  82 + .aspectRatio(1)
  83 + // .borderRadius(6)
  84 +
  85 + Text(item.text)
  86 + .width('100%')// .margin({ top: 4, left: 6, right: 6 })// .backgroundColor(Color.Brown)
  87 + .fontWeight(FontWeight.Normal)
  88 + .textAlign(TextAlign.Center)
  89 + .fontSize(13)
  90 + .fontColor('#FFFFFF')
  91 + .maxLines(1)
  92 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  93 + }
  94 + .margin(5)
  95 + // .backgroundColor(Color.Black)
  96 + .alignItems(HorizontalAlign.Center)
  97 + .hoverEffect(HoverEffect.Scale)
  98 + .onClick((event: ClickEvent) => {
  99 + Logger.info(TAG, `buildOperationItem onClick event index: ${index}`);
  100 + ToastUtils.showToast('体验版,本功能暂未开发', 1000);
  101 + })
  102 + }
  103 +}
  1 +import { CompDTO, ContentDTO } from 'wdBean';
  2 +import { CommonConstants } from 'wdConstant';
  3 +import { DateTimeUtils } from 'wdKit';
  4 +import { ProcessUtils } from '../../utils/ProcessUtils';
  5 +
  6 +/**
  7 + * 本地精选卡
  8 + * ZhSingleRow04
  9 + */
  10 +
  11 +@Component
  12 +export struct ZhSingleRow04 {
  13 + @State compDTO: CompDTO = {} as CompDTO
  14 +
  15 + aboutToAppear() {}
  16 +
  17 + build() {
  18 + Column(){
  19 + //顶部
  20 + Row(){
  21 + Row() {
  22 + Image($r("app.media.local_selection"))
  23 + .width(24)
  24 + .height(24)
  25 + .margin({ right: 4 })
  26 + Text(this.compDTO.objectTitle)
  27 + .fontSize($r("app.float.font_size_17"))
  28 + .fontColor($r("app.color.color_222222"))
  29 + .fontWeight(600)
  30 + }
  31 + Row() {
  32 + Text("更多")
  33 + .fontSize($r("app.float.font_size_14"))
  34 + .fontColor($r("app.color.color_999999"))
  35 + .margin({ right: 1 })
  36 + Image($r("app.media.more"))
  37 + .width(14)
  38 + .height(14)
  39 + }
  40 + }
  41 + .justifyContent(FlexAlign.SpaceBetween)
  42 + .margin({ top: 8, bottom: 8 })
  43 + .width('100%')
  44 + // 列表内容
  45 + List({ space: 12 }) {
  46 + ForEach(this.compDTO.operDataList, (item: ContentDTO) => {
  47 + ListItem() {
  48 + Row(){
  49 + if(item.coverUrl) {
  50 + Image(item.coverUrl)
  51 + .width(84)
  52 + .height(56)
  53 + .borderRadius(3)
  54 + .objectFit(ImageFit.Cover)
  55 + .padding({right: 6})
  56 + }
  57 + Column(){
  58 + Text(item.newsTitle)
  59 + .fontSize($r("app.float.font_size_16"))
  60 + .fontColor($r("app.color.color_212228"))
  61 + .fontWeight(400)
  62 + .maxLines(2)
  63 + .textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
  64 + .margin({ top: 8 })
  65 +
  66 + Row(){
  67 + Text(item.source)
  68 + .fontSize($r('app.float.font_size_12'))
  69 + .fontColor($r('app.color.color_B0B0B0'))
  70 + Image($r("app.media.point"))
  71 + .width(16)
  72 + .height(16)
  73 + Text(DateTimeUtils.getCommentTime(Number.parseFloat(this.compDTO.operDataList[0].publishTime)))
  74 + .fontSize($r("app.float.font_size_12"))
  75 + .fontColor($r("app.color.color_B0B0B0"))
  76 + }
  77 + .width('100%')
  78 + }
  79 + .width(200)
  80 + }
  81 + // .margin({right: 18})
  82 + .onClick(() =>{
  83 + ProcessUtils.processPage(item)
  84 + })
  85 + }
  86 + })
  87 + }
  88 + .listDirection(Axis.Horizontal)
  89 + .width('100%')
  90 + }
  91 + .width(CommonConstants.FULL_WIDTH)
  92 + .padding({
  93 + top: 14,
  94 + left: 16,
  95 + right: 16,
  96 + bottom: 14
  97 + })
  98 + .backgroundColor($r("app.color.white"))
  99 + .margin({ bottom: 8 })
  100 + }
  101 +}
@@ -11,30 +11,29 @@ export class EditListInfo{ @@ -11,30 +11,29 @@ export class EditListInfo{
11 } 11 }
12 } 12 }
13 13
14 -export class EditInfoModel{ 14 +export interface EditInfoModel{
15 //头像 15 //头像
16 - headPhotoUrl:string = ''  
17 - //昵称  
18 - userName:string = '' 16 + headPhotoUrl:string
19 //简介 17 //简介
20 - introduction:string = '' 18 + introduction:string
21 //城市 19 //城市
22 - city:string = '' 20 + city:string
23 //地区 21 //地区
24 - county:string = '' 22 + county:string
25 //生日 23 //生日
26 - birthday:string = '' 24 + birthday:string
27 //性别 25 //性别
28 - sex:string = ''  
29 -  
30 - constructor(headPhotoUrl:string , userName:string , introduction:string , city:string , county:string, birthday:string , sex:string) {  
31 - this.headPhotoUrl = headPhotoUrl;  
32 - this.userName = userName;  
33 - this.introduction = introduction;  
34 - this.city = city;  
35 - this.county = county;  
36 - this.birthday = birthday;  
37 - this.sex = sex;  
38 - } 26 + sex:string
  27 +}
  28 +
  29 +export interface editModel{
  30 + userName:string
  31 +
  32 + userNameStatus:string
  33 +
  34 + phone:string
  35 +
  36 + headPhotoStatus:string
39 37
  38 + userExtend:EditInfoModel
40 } 39 }
@@ -5,7 +5,7 @@ import MinePageMoreFunctionModel from '../viewmodel/MinePageMoreFunctionModel'; @@ -5,7 +5,7 @@ import MinePageMoreFunctionModel from '../viewmodel/MinePageMoreFunctionModel';
5 import HashMap from '@ohos.util.HashMap'; 5 import HashMap from '@ohos.util.HashMap';
6 import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork'; 6 import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
7 import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem'; 7 import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem';
8 -import { Logger, ResourcesUtils } from 'wdKit'; 8 +import { Logger, ResourcesUtils, StringUtils } from 'wdKit';
9 import { MineFollowListDetailItem } from '../viewmodel/MineFollowListDetailItem'; 9 import { MineFollowListDetailItem } from '../viewmodel/MineFollowListDetailItem';
10 import { FollowListDetailRequestItem } from '../viewmodel/FollowListDetailRequestItem'; 10 import { FollowListDetailRequestItem } from '../viewmodel/FollowListDetailRequestItem';
11 import { FollowListItem } from '../viewmodel/FollowListItem'; 11 import { FollowListItem } from '../viewmodel/FollowListItem';
@@ -13,6 +13,9 @@ import { MineFollowListItem } from '../viewmodel/MineFollowListItem'; @@ -13,6 +13,9 @@ import { MineFollowListItem } from '../viewmodel/MineFollowListItem';
13 import { QueryListIsFollowedItem } from '../viewmodel/QueryListIsFollowedItem'; 13 import { QueryListIsFollowedItem } from '../viewmodel/QueryListIsFollowedItem';
14 import { FollowListStatusRequestItem } from '../viewmodel/FollowListStatusRequestItem'; 14 import { FollowListStatusRequestItem } from '../viewmodel/FollowListStatusRequestItem';
15 import { MineCommentListDetailItem } from '../viewmodel/MineCommentListDetailItem'; 15 import { MineCommentListDetailItem } from '../viewmodel/MineCommentListDetailItem';
  16 +import { MineUserLevelItem } from '../viewmodel/MineUserLevelItem';
  17 +import { MineUserDetailItem } from '../viewmodel/MineUserDetailItem';
  18 +import { OtherUserDetailRequestItem } from '../viewmodel/OtherUserDetailRequestItem';
16 19
17 const TAG = "MinePageDatasModel" 20 const TAG = "MinePageDatasModel"
18 21
@@ -337,6 +340,163 @@ class MinePageDatasModel{ @@ -337,6 +340,163 @@ class MinePageDatasModel{
337 return compRes.data 340 return compRes.data
338 } 341 }
339 342
  343 + /**
  344 + * 个人中心 获取用户等级
  345 + */
  346 + getUserLevelData(context: Context): Promise<MineUserLevelItem> {
  347 + return new Promise<MineUserLevelItem>((success, error) => {
  348 + Logger.info(TAG, `getAppointmentList start`);
  349 + this.fetchMineUserLevelData().then((navResDTO: ResponseDTO<MineUserLevelItem>) => {
  350 + if (!navResDTO || navResDTO.code != 0) {
  351 + success(this.getMineUserLevelDataLocal(context))
  352 + return
  353 + }
  354 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  355 + let navigationBean = navResDTO.data as MineUserLevelItem
  356 + success(navigationBean);
  357 + }).catch((err: Error) => {
  358 + Logger.error(TAG, `fetchMineUserLevelData catch, error.name : ${err.name}, error.message:${err.message}`);
  359 + success(this.getMineUserLevelDataLocal(context))
  360 + })
  361 + })
  362 + }
  363 +
  364 + fetchMineUserLevelData() {
  365 + let url = HttpUrlUtils.getMineUserLevelDataUrl()
  366 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  367 + return WDHttp.get<ResponseDTO<MineUserLevelItem>>(url, headers)
  368 + };
  369 +
  370 + async getMineUserLevelDataLocal(context: Context): Promise<MineUserLevelItem> {
  371 + Logger.info(TAG, `getMineUserLevelDataLocal start`);
  372 + let compRes: ResponseDTO<MineUserLevelItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineUserLevelItem>>(context,'mine_user_level.json' );
  373 + if (!compRes || !compRes.data) {
  374 + Logger.info(TAG, `getMineUserLevelDataLocal compRes is empty`);
  375 + return new MineUserLevelItem()
  376 + }
  377 + Logger.info(TAG, `getMineUserLevelDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  378 + return compRes.data
  379 + }
  380 +
  381 + /**
  382 + * 个人中心 获取用户详细信息
  383 + */
  384 + getUserDetailData(context: Context): Promise<MineUserDetailItem> {
  385 + return new Promise<MineUserDetailItem>((success, error) => {
  386 + Logger.info(TAG, `getAppointmentList start`);
  387 + this.fetchMineUserDetailData().then((navResDTO: ResponseDTO<MineUserDetailItem>) => {
  388 + if (!navResDTO || navResDTO.code != 0) {
  389 + success(this.getMineUserDetailDataLocal(context))
  390 + return
  391 + }
  392 + Logger.info(TAG, "getUserDetailData then,timeStamp:" + navResDTO.timestamp);
  393 + let navigationBean = navResDTO.data as MineUserDetailItem
  394 + success(navigationBean);
  395 + }).catch((err: Error) => {
  396 + Logger.error(TAG, `fetchMineUserDetailData catch, error.name : ${err.name}, error.message:${err.message}`);
  397 + success(this.getMineUserDetailDataLocal(context))
  398 + })
  399 + })
  400 + }
  401 +
  402 + fetchMineUserDetailData() {
  403 + let url = HttpUrlUtils.getMineUserDetailDataUrl()
  404 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  405 + return WDHttp.get<ResponseDTO<MineUserDetailItem>>(url, headers)
  406 + };
  407 +
  408 + async getMineUserDetailDataLocal(context: Context): Promise<MineUserDetailItem> {
  409 + Logger.info(TAG, `getMineUserLevelDataLocal start`);
  410 + let compRes: ResponseDTO<MineUserDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineUserDetailItem>>(context,'mine_user_detail.json' );
  411 + if (!compRes || !compRes.data) {
  412 + Logger.info(TAG, `getMineUserDetailDataLocal compRes is empty`);
  413 + return new MineUserDetailItem()
  414 + }
  415 + Logger.info(TAG, `getMineUserDetailDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  416 + return compRes.data
  417 + }
  418 + /**
  419 + * 个人中心 获取其他用户详细信息
  420 + */
  421 + getOtherUserDetailData(item:OtherUserDetailRequestItem,context: Context): Promise<MineUserDetailItem> {
  422 + return new Promise<MineUserDetailItem>((success, error) => {
  423 + Logger.info(TAG, `getAppointmentList start`);
  424 + this.fetchOtherUserDetailData(item).then((navResDTO: ResponseDTO<MineUserDetailItem>) => {
  425 + if (!navResDTO || navResDTO.code != 0) {
  426 + success(this.getOtherUserDetailDataLocal(context))
  427 + return
  428 + }
  429 + Logger.info(TAG, "getUserDetailData then,timeStamp:" + navResDTO.timestamp);
  430 + let navigationBean = navResDTO.data as MineUserDetailItem
  431 + success(navigationBean);
  432 + }).catch((err: Error) => {
  433 + Logger.error(TAG, `fetchMineUserDetailData catch, error.name : ${err.name}, error.message:${err.message}`);
  434 + success(this.getOtherUserDetailDataLocal(context))
  435 + })
  436 + })
  437 + }
  438 +
  439 + fetchOtherUserDetailData(item:OtherUserDetailRequestItem) {
  440 + let url = HttpUrlUtils.getOtherUserDetailDataUrl()
  441 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  442 + return WDHttp.post<ResponseDTO<MineUserDetailItem>>(url, item,headers)
  443 + };
  444 +
  445 + async getOtherUserDetailDataLocal(context: Context): Promise<MineUserDetailItem> {
  446 + Logger.info(TAG, `getMineUserLevelDataLocal start`);
  447 + let compRes: ResponseDTO<MineUserDetailItem> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineUserDetailItem>>(context,'other_user512157124138245_detail.json' );
  448 + if (!compRes || !compRes.data) {
  449 + Logger.info(TAG, `getMineUserDetailDataLocal compRes is empty`);
  450 + return new MineUserDetailItem()
  451 + }
  452 + Logger.info(TAG, `getMineUserDetailDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  453 + return compRes.data
  454 + }
  455 +
  456 + /**
  457 + * 个人中心 获取其他用户等级
  458 + */
  459 + getOtherUserLevelData(item:string[],context: Context): Promise<MineUserLevelItem[]> {
  460 + return new Promise<MineUserLevelItem[]>((success, error) => {
  461 + Logger.info(TAG, `getAppointmentList start`);
  462 + this.fetchOtherUserLevelData(item).then((navResDTO: ResponseDTO<MineUserLevelItem[]>) => {
  463 + if (!navResDTO || navResDTO.code != 0) {
  464 + success(this.getOtherUserLevelDataLocal(context))
  465 + return
  466 + }
  467 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  468 + let navigationBean = navResDTO.data as MineUserLevelItem[]
  469 + if(navigationBean.length>0 && StringUtils.isNotEmpty(navigationBean[0].levelHead)){
  470 + success(navigationBean);
  471 + }else{
  472 + success(this.getOtherUserLevelDataLocal(context))
  473 + }
  474 + }).catch((err: Error) => {
  475 + Logger.error(TAG, `fetchMineUserLevelData catch, error.name : ${err.name}, error.message:${err.message}`);
  476 + success(this.getOtherUserLevelDataLocal(context))
  477 + })
  478 + })
  479 + }
  480 +
  481 + fetchOtherUserLevelData(item:string[]) {
  482 + let url = HttpUrlUtils.getOtherUserLevelDataUrl()
  483 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  484 + return WDHttp.post<ResponseDTO<MineUserLevelItem[]>>(url,item, headers)
  485 + };
  486 +
  487 + async getOtherUserLevelDataLocal(context: Context): Promise<MineUserLevelItem[]> {
  488 + Logger.info(TAG, `getMineUserLevelDataLocal start`);
  489 + let compRes: ResponseDTO<MineUserLevelItem[]> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<MineUserLevelItem[]>>(context,'other_user512157124138245_level.json' );
  490 + if (!compRes || !compRes.data) {
  491 + Logger.info(TAG, `getMineUserLevelDataLocal compRes is empty`);
  492 + return []
  493 + }
  494 + Logger.info(TAG, `getMineUserLevelDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  495 + return compRes.data
  496 + }
  497 +
  498 +
  499 +
340 500
341 } 501 }
342 502
1 import router from '@ohos.router' 1 import router from '@ohos.router'
  2 +import { Params } from 'wdBean';
  3 +import { StringUtils } from 'wdKit';
2 import { WDRouterPage, WDRouterRule } from 'wdRouter'; 4 import { WDRouterPage, WDRouterRule } from 'wdRouter';
3 import { HomePageBottomComponent } from '../components/mine/home/HomePageBottomComponent'; 5 import { HomePageBottomComponent } from '../components/mine/home/HomePageBottomComponent';
  6 +import MinePageDatasModel from '../model/MinePageDatasModel';
  7 +
  8 +const TAG = "MineHomePage"
4 9
5 @Entry 10 @Entry
6 @Component 11 @Component
7 struct MineHomePage { 12 struct MineHomePage {
8 @State tileOpacity: number = 0; 13 @State tileOpacity: number = 0;
9 firstPositionY:number = 0; 14 firstPositionY:number = 0;
10 - @State isHasIntroduction: boolean = true  
11 - @State desc:string = "点击添加简介,让大家认识你" //text 搞两个样式,如果三行,就显示 另外一个text 没有显示高度的  
12 fontColor: string = '#999999' 15 fontColor: string = '#999999'
13 selectedFontColor: string = '#000000' 16 selectedFontColor: string = '#000000'
14 @State currentIndex: number = 0 17 @State currentIndex: number = 0
15 private controller: TabsController = new TabsController() 18 private controller: TabsController = new TabsController()
16 isChangeToUserEdit = false; 19 isChangeToUserEdit = false;
  20 + @State userName:string = ""
  21 + @State headPhotoUrl:string = ""
  22 + @State levelHead:string = ""
  23 + @State levelId:number = 0
  24 + @State desc:string = "点击添加简介,让大家认识你" //text 搞两个样式,如果三行,就显示 另外一个text 没有显示高度的
  25 + @State isHasIntroduction: boolean = false
  26 + @State browseNum:number = 0//阅读数
  27 + @State commentNum:number = 0//评论数
  28 + @State attentionNum:number = 0//关注数
  29 + registTime:number = 0//账号注册时间
  30 + @State registerTimeForDay:number = 0
  31 +
  32 + aboutToAppear(){
  33 + this.getUserInfo()
  34 + this.getUserLevel()
  35 + }
  36 +
17 37
18 38
19 build() { 39 build() {
@@ -33,15 +53,28 @@ struct MineHomePage { @@ -33,15 +53,28 @@ struct MineHomePage {
33 Column() { 53 Column() {
34 //用户信息区域 54 //用户信息区域
35 Row() { 55 Row() {
36 - Image($r('app.media.default_head'))  
37 - .width('115lpx')  
38 - .height('115lpx')  
39 - .objectFit(ImageFit.Cover)  
40 - .borderRadius(50) 56 + Stack(){
  57 + Image(this.headPhotoUrl)
  58 + .alt($r('app.media.default_head'))
  59 + .width('115lpx')
  60 + .height('115lpx')
  61 + .objectFit(ImageFit.Cover)
  62 + .borderRadius(50)
  63 + Image(this.levelHead)
  64 + .width('130lpx')
  65 + .height('130lpx')
  66 + .objectFit(ImageFit.Cover)
  67 + .borderRadius(50)
  68 + }.onClick(()=>{
  69 + let params: Params = {
  70 + pageID: "-1"
  71 + }
  72 + WDRouterRule.jumpWithPage(WDRouterPage.otherNormalUserHomePagePage,params)
  73 + })
41 74
42 Column() { 75 Column() {
43 Row() { 76 Row() {
44 - Text("人民日报6G") 77 + Text(`${this.userName}`)
45 .fontColor($r('app.color.white')) 78 .fontColor($r('app.color.white'))
46 .maxLines(1) 79 .maxLines(1)
47 .textOverflow({ overflow: TextOverflow.Ellipsis }) 80 .textOverflow({ overflow: TextOverflow.Ellipsis })
@@ -49,7 +82,7 @@ struct MineHomePage { @@ -49,7 +82,7 @@ struct MineHomePage {
49 .lineHeight('50lpx') 82 .lineHeight('50lpx')
50 .fontWeight('500lpx') 83 .fontWeight('500lpx')
51 84
52 - Text("等级8") 85 + Text(`等级${this.levelId}`)
53 .textAlign(TextAlign.Center) 86 .textAlign(TextAlign.Center)
54 .fontColor($r('app.color.color_ED2800')) 87 .fontColor($r('app.color.color_ED2800'))
55 .backgroundColor($r('app.color.white')) 88 .backgroundColor($r('app.color.white'))
@@ -62,7 +95,7 @@ struct MineHomePage { @@ -62,7 +95,7 @@ struct MineHomePage {
62 95
63 Row() { 96 Row() {
64 Row() { 97 Row() {
65 - Text("3.6万") 98 + Text(`${this.browseNum}`)
66 .textStyle() 99 .textStyle()
67 Text("阅读") 100 Text("阅读")
68 .textStyle2() 101 .textStyle2()
@@ -76,7 +109,7 @@ struct MineHomePage { @@ -76,7 +109,7 @@ struct MineHomePage {
76 .vertical(true) 109 .vertical(true)
77 .opacity(0.4) 110 .opacity(0.4)
78 Row() { 111 Row() {
79 - Text("6242") 112 + Text(`${this.commentNum}`)
80 .textStyle() 113 .textStyle()
81 Text("评论") 114 Text("评论")
82 .textStyle2() 115 .textStyle2()
@@ -89,7 +122,7 @@ struct MineHomePage { @@ -89,7 +122,7 @@ struct MineHomePage {
89 .vertical(true) 122 .vertical(true)
90 .opacity(0.4) 123 .opacity(0.4)
91 Row() { 124 Row() {
92 - Text("86") 125 + Text(`${this.attentionNum}`)
93 .textStyle() 126 .textStyle()
94 Text("关注") 127 Text("关注")
95 .textStyle2() 128 .textStyle2()
@@ -132,7 +165,7 @@ struct MineHomePage { @@ -132,7 +165,7 @@ struct MineHomePage {
132 .objectFit(ImageFit.Auto) 165 .objectFit(ImageFit.Auto)
133 } 166 }
134 } 167 }
135 - Text("来到人民日报365天") 168 + Text(`来到人民日报${this.registerTimeForDay}天`)
136 .fontSize('23lpx') 169 .fontSize('23lpx')
137 .lineHeight('25lpx') 170 .lineHeight('25lpx')
138 .fontWeight('400lpx') 171 .fontWeight('400lpx')
@@ -233,11 +266,13 @@ struct MineHomePage { @@ -233,11 +266,13 @@ struct MineHomePage {
233 .onClick(() => { 266 .onClick(() => {
234 router.back() 267 router.back()
235 }) 268 })
236 - Image($r('app.media.default_head')) 269 + Image(`${this.headPhotoUrl}`)
  270 + .alt($r('app.media.default_head'))
237 .width('60lpx') 271 .width('60lpx')
238 .height('60lpx') 272 .height('60lpx')
239 .objectFit(ImageFit.Auto) 273 .objectFit(ImageFit.Auto)
240 .id("head_icon") 274 .id("head_icon")
  275 + .borderRadius(50)
241 .alignRules({ 276 .alignRules({
242 center: { anchor: "__container__", align: VerticalAlign.Center }, 277 center: { anchor: "__container__", align: VerticalAlign.Center },
243 left: { anchor: "back_icon", align: HorizontalAlign.End } 278 left: { anchor: "back_icon", align: HorizontalAlign.End }
@@ -247,7 +282,7 @@ struct MineHomePage { @@ -247,7 +282,7 @@ struct MineHomePage {
247 router.back() 282 router.back()
248 }) 283 })
249 284
250 - Text("我的昵称") 285 + Text(`${this.userName}`)
251 .height('42lpx') 286 .height('42lpx')
252 .maxLines(1) 287 .maxLines(1)
253 .id("title") 288 .id("title")
@@ -326,6 +361,41 @@ struct MineHomePage { @@ -326,6 +361,41 @@ struct MineHomePage {
326 WDRouterRule.jumpWithPage(WDRouterPage.editUserInfoPage) 361 WDRouterRule.jumpWithPage(WDRouterPage.editUserInfoPage)
327 } 362 }
328 } 363 }
  364 + getUserInfo(){
  365 + MinePageDatasModel.getUserDetailData(getContext(this)).then((value)=>{
  366 + if(value!=null){
  367 + this.userName = value.userName
  368 + this.headPhotoUrl = value.headPhotoUrl
  369 + if(StringUtils.isNotEmpty(value.introduction)){
  370 + this.desc = value.introduction
  371 + this.isHasIntroduction = true
  372 + }
  373 + this.browseNum = value.browseNum
  374 + this.commentNum = value.commentNum
  375 + this.attentionNum = value.attentionNum
  376 + this.registTime = value.registTime
  377 + this.getRegisterDays()
  378 + }
  379 + }).catch((err:Error)=>{
  380 + console.log(TAG,JSON.stringify(err))
  381 + })
  382 + }
  383 + getUserLevel(){
  384 + MinePageDatasModel.getUserLevelData(getContext(this)).then((value)=>{
  385 + if(value!=null){
  386 + this.levelHead = value.levelHead
  387 + this.levelId = value.levelId
  388 + }
  389 + }).catch((err:Error)=>{
  390 + console.log(TAG,JSON.stringify(err))
  391 + })
  392 + }
  393 + getRegisterDays(){
  394 + if(this.registTime!=null){
  395 + let curDate = new Date()
  396 + this.registerTimeForDay = Math.ceil((curDate.getTime()-this.registTime)/(1000*60*60*24))
  397 + }
  398 + }
329 399
330 } 400 }
331 401
  1 +import router from '@ohos.router'
  2 +import { Params } from 'wdBean';
  3 +import { StringUtils } from 'wdKit';
  4 +import { HomePageBottomComponent } from '../components/mine/home/HomePageBottomComponent';
  5 +import MinePageDatasModel from '../model/MinePageDatasModel';
  6 +import { OtherUserDetailRequestItem } from '../viewmodel/OtherUserDetailRequestItem';
  7 +
  8 +const TAG = "OtherNormalUserHomePage"
  9 +
  10 +@Entry
  11 +@Component
  12 +struct OtherNormalUserHomePage {
  13 + @State params:Params = router.getParams() as Params;
  14 + @State curUserId: string = '-1';
  15 +
  16 + onPageShow() {
  17 + this.curUserId = this.params?.pageID;
  18 + }
  19 +
  20 + @State tileOpacity: number = 0;
  21 + firstPositionY:number = 0;
  22 + fontColor: string = '#999999'
  23 + selectedFontColor: string = '#000000'
  24 + @State currentIndex: number = 0
  25 + private controller: TabsController = new TabsController()
  26 + isChangeToUserEdit = false;
  27 + @State userName:string = ""
  28 + @State headPhotoUrl:string = ""
  29 + @State levelHead:string = ""
  30 + @State levelId:number = 0
  31 + @State browseNum:number = 0//阅读数
  32 + @State commentNum:number = 0//评论数
  33 + @State attentionNum:number = 0//关注数
  34 +
  35 + aboutToAppear(){
  36 + this.getUserInfo()
  37 + this.getUserLevel()
  38 + }
  39 +
  40 +
  41 +
  42 + build() {
  43 + Stack({ alignContent: Alignment.Top }){
  44 + Image($r('app.media.title_bg'))
  45 + .width('100%')
  46 + .height('355lpx')
  47 + .objectFit(ImageFit.Cover)
  48 +
  49 + Column(){
  50 + Stack({ alignContent: Alignment.Top }){
  51 + this.MineHomeTitleTransparent()
  52 + this.MineHomeTitleWhite()
  53 + }
  54 +
  55 + Scroll() {
  56 + Column() {
  57 + //用户信息区域
  58 + Row() {
  59 + Stack(){
  60 + Image(this.headPhotoUrl)
  61 + .alt($r('app.media.default_head'))
  62 + .width('115lpx')
  63 + .height('115lpx')
  64 + .objectFit(ImageFit.Cover)
  65 + .borderRadius(50)
  66 + Image(this.levelHead)
  67 + .width('130lpx')
  68 + .height('130lpx')
  69 + .objectFit(ImageFit.Cover)
  70 + .borderRadius(50)
  71 + }
  72 +
  73 + Column() {
  74 + Row() {
  75 + Text(`${this.userName}`)
  76 + .fontColor($r('app.color.white'))
  77 + .maxLines(1)
  78 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  79 + .fontSize('38lpx')
  80 + .lineHeight('50lpx')
  81 + .fontWeight('500lpx')
  82 +
  83 + Text(`等级${this.levelId}`)
  84 + .textAlign(TextAlign.Center)
  85 + .fontColor($r('app.color.color_ED2800'))
  86 + .backgroundColor($r('app.color.white'))
  87 + .fontSize('19lpx')
  88 + .width('96lpx')
  89 + .height('35lpx')
  90 + .margin({ left: '10lpx' })
  91 + Blank()
  92 + }.width('507lpx')
  93 +
  94 + Row() {
  95 + Row() {
  96 + Text(`${this.browseNum}`)
  97 + .textStyle()
  98 + Text("阅读")
  99 + .textStyle2()
  100 + }
  101 + .margin({ right: '15lpx' })
  102 +
  103 + Divider()
  104 + .height('19lpx')
  105 + .width('2lpx')
  106 + .color($r('app.color.white'))
  107 + .vertical(true)
  108 + .opacity(0.4)
  109 + Row() {
  110 + Text(`${this.commentNum}`)
  111 + .textStyle()
  112 + Text("评论")
  113 + .textStyle2()
  114 + }.margin({ right: '15lpx', left: '15lpx' })
  115 +
  116 + Divider()
  117 + .height('19lpx')
  118 + .width('2lpx')
  119 + .color($r('app.color.white'))
  120 + .vertical(true)
  121 + .opacity(0.4)
  122 + Row() {
  123 + Text(`${this.attentionNum}`)
  124 + .textStyle()
  125 + Text("关注")
  126 + .textStyle2()
  127 + }.margin({ left: '15lpx' })
  128 + }.margin({ top: '23lpx' })
  129 + }.alignItems(HorizontalAlign.Start)
  130 + .margin({ left: '32lpx' })
  131 + }
  132 + .onAreaChange((oldValue: Area, newValue: Area) => {
  133 + if (this.firstPositionY === 0) {
  134 + this.firstPositionY = newValue.globalPosition.y as number
  135 + }else{
  136 + let persent = (this.firstPositionY - Number(newValue.globalPosition.y)) / (this.firstPositionY * 0.3)
  137 + if(persent > 1){
  138 + persent = 1
  139 + }
  140 + this.tileOpacity = persent
  141 + }
  142 + })
  143 + .backgroundColor($r('app.color.color_transparent'))
  144 + .height('184lpx')
  145 + .width('100%')
  146 + .padding({ left: '35lpx' })
  147 +
  148 + //间隔符
  149 +
  150 + Divider().width('100%').height('12lpx').color($r('app.color.color_F5F5F5')).strokeWidth('12lpx')
  151 +
  152 + //tab 页面
  153 + Tabs({controller: this.controller}) {
  154 + TabContent() {
  155 + HomePageBottomComponent({style:0})
  156 + }.tabBar(this.TabBuilder(0,"评论"))
  157 + TabContent() {
  158 + HomePageBottomComponent({style:1})
  159 + }.tabBar(this.TabBuilder(1,"关注"))
  160 + }
  161 + .backgroundColor($r('app.color.white'))
  162 + .animationDuration(0)
  163 + .onChange((index: number) => {
  164 + this.currentIndex = index
  165 + })
  166 + .vertical(false)
  167 + .height("100%")
  168 + }.width("100%")
  169 + }
  170 + .edgeEffect(EdgeEffect.None)
  171 + .scrollBar(BarState.Off)
  172 + .width('100%')
  173 + .height('100%')
  174 + }
  175 + }.width('100%')
  176 + .height('100%')
  177 +
  178 + }
  179 + @Builder MineHomeTitleTransparent() {
  180 + RelativeContainer() {
  181 + //标题栏目
  182 + Image($r('app.media.icon_arrow_left_white') )
  183 + .width('46lpx')
  184 + .height('46lpx')
  185 + .objectFit(ImageFit.Auto)
  186 + .id("back_icon")
  187 + .alignRules({
  188 + center: { anchor: "__container__", align: VerticalAlign.Center },
  189 + left: { anchor: "__container__", align: HorizontalAlign.Start }
  190 + })
  191 + .margin({ left: '31lpx' })
  192 + .onClick(() => {
  193 + router.back()
  194 + })
  195 + }
  196 + .visibility(this.tileOpacity > 0 ? 1 : 0)
  197 + .height('84lpx')
  198 + .width('100%')
  199 + .backgroundColor($r('app.color.color_transparent'))
  200 + }
  201 +
  202 + @Builder MineHomeTitleWhite() {
  203 + RelativeContainer() {
  204 + //标题栏目
  205 + Image($r('app.media.back_icon'))
  206 + .width('46lpx')
  207 + .height('46lpx')
  208 + .objectFit(ImageFit.Auto)
  209 + .id("back_icon")
  210 + .alignRules({
  211 + center: { anchor: "__container__", align: VerticalAlign.Center },
  212 + left: { anchor: "__container__", align: HorizontalAlign.Start }
  213 + })
  214 + .margin({ left: '31lpx' })
  215 + .onClick(() => {
  216 + router.back()
  217 + })
  218 + Image(this.headPhotoUrl)
  219 + .alt($r('app.media.default_head'))
  220 + .width('60lpx')
  221 + .height('60lpx')
  222 + .borderRadius(50)
  223 + .objectFit(ImageFit.Auto)
  224 + .id("head_icon")
  225 + .alignRules({
  226 + center: { anchor: "__container__", align: VerticalAlign.Center },
  227 + left: { anchor: "back_icon", align: HorizontalAlign.End }
  228 + })
  229 + .margin({ left: '31lpx' })
  230 + .onClick(() => {
  231 + router.back()
  232 + })
  233 +
  234 + Text(`${this.userName}`)
  235 + .height('42lpx')
  236 + .maxLines(1)
  237 + .id("title")
  238 + .fontSize('35lpx')
  239 + .fontWeight('400lpx')
  240 + .fontColor($r('app.color.color_222222'))
  241 + .lineHeight('42lpx')
  242 + .alignRules({
  243 + center: { anchor: "__container__", align: VerticalAlign.Center },
  244 + left: { anchor: "head_icon", align: HorizontalAlign.End }
  245 + })
  246 + .margin({ left: '12lpx' })
  247 + }
  248 + .visibility(this.tileOpacity > 0 ? 0 : 1)
  249 + .height('84lpx')
  250 + .width('100%')
  251 + .backgroundColor($r('app.color.white'))
  252 + .opacity(this.tileOpacity )
  253 +
  254 + }
  255 +
  256 + @Builder TabBuilder(index: number, title: string) {
  257 + Stack(){
  258 + Text(title)
  259 + .height('38lpx')
  260 + .fontSize('33lpx')
  261 + .fontWeight(this.currentIndex === index ? 600 : 400)
  262 + .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
  263 + .lineHeight('38lpx')
  264 +
  265 + if(this.currentIndex === index){
  266 + Divider()
  267 + .width('31lpx')
  268 + .height('4lpx')
  269 + .color('#ED2800')
  270 + .strokeWidth('4lpx')
  271 + .margin({top:'50lpx'})
  272 + .id("divTag")
  273 + }
  274 + }.onClick(()=>{
  275 + this.currentIndex = index
  276 + this.controller.changeIndex(this.currentIndex)
  277 + })
  278 + .height('100%')
  279 + .width('100%')
  280 + .margin({right:'9lpx'})
  281 + }
  282 +
  283 +
  284 + getUserInfo(){
  285 + let item = new OtherUserDetailRequestItem("","1",this.curUserId)
  286 + MinePageDatasModel.getOtherUserDetailData(item,getContext(this)).then((value)=>{
  287 + if(value!=null){
  288 + this.userName = value.userName
  289 + this.headPhotoUrl = value.headPhotoUrl
  290 +
  291 + this.browseNum = StringUtils.isEmpty(value.browseNum)?0:value.browseNum
  292 + this.commentNum = StringUtils.isEmpty(value.commentNum)?0:value.commentNum
  293 + this.attentionNum = StringUtils.isEmpty(value.attentionNum)?0:value.attentionNum
  294 + }
  295 + }).catch((err:Error)=>{
  296 + console.log(TAG,JSON.stringify(err))
  297 + })
  298 + }
  299 + getUserLevel(){
  300 + MinePageDatasModel.getOtherUserLevelData([this.curUserId],getContext(this)).then((value)=>{
  301 + if(value!=null){
  302 + this.levelHead = value[0].levelHead
  303 + this.levelId = value[0].level
  304 + }
  305 + }).catch((err:Error)=>{
  306 + console.log(TAG,JSON.stringify(err))
  307 + })
  308 + }
  309 +
  310 +}
  311 +
  312 +@Extend(Text) function textStyle() {
  313 + .fontColor($r('app.color.white'))
  314 + .textStyleDefault()
  315 + .margin({ right: '10lpx' })
  316 +}
  317 +
  318 +@Extend(Text) function textStyle2() {
  319 + .textStyleDefault()
  320 + .fontColor($r('app.color.color_B2FFFFFF'))
  321 +}
  322 +
  323 +@Extend(Text) function textStyleDefault() {
  324 + .textAlign(TextAlign.Start)
  325 + .fontSize('23lpx')
  326 + .fontWeight('400lpx')
  327 + .lineHeight('31lpx')
  328 +}
  329 +
@@ -5,6 +5,7 @@ import { @@ -5,6 +5,7 @@ import {
5 CompInfoBean, 5 CompInfoBean,
6 ContentDetailDTO, 6 ContentDetailDTO,
7 InteractDataDTO, 7 InteractDataDTO,
  8 + InteractDataStatusDTO,
8 MorningEveningPaperDTO, 9 MorningEveningPaperDTO,
9 NavigationBodyDTO, 10 NavigationBodyDTO,
10 NewspaperListBean, 11 NewspaperListBean,
@@ -69,6 +70,20 @@ export class PageRepository { @@ -69,6 +70,20 @@ export class PageRepository {
69 return url; 70 return url;
70 } 71 }
71 72
  73 + // 批量查询内容当前用户点赞、收藏状态
  74 + static getInteractDataStatusUrl() {
  75 + let url = HttpUrlUtils.getHost() + HttpUrlUtils.INTERACT_DATA_STATUS;
  76 + Logger.info(TAG, "getInteractDataStatusUrl url = " + url)
  77 + return url;
  78 + }
  79 +
  80 + // 浏览历史新增、删除接口
  81 + static getInteractBrowsOperateUrl() {
  82 + let url = HttpUrlUtils.getHost() + HttpUrlUtils.INTERACT_BROWS_OPERATE;
  83 + Logger.info(TAG, "getInteractBrowsOperateUrl url = " + url)
  84 + return url;
  85 + }
  86 +
72 static getNewspaperInfoUrl(date: string) { 87 static getNewspaperInfoUrl(date: string) {
73 let url = HttpUrlUtils.getHost() + HttpUrlUtils.E_NEWSPAPER_INFO_PATH + "?date=" + date; 88 let url = HttpUrlUtils.getHost() + HttpUrlUtils.E_NEWSPAPER_INFO_PATH + "?date=" + date;
74 Logger.info(TAG, "getNewspaperInfoUrl url = " + url) 89 Logger.info(TAG, "getNewspaperInfoUrl url = " + url)
@@ -153,6 +168,20 @@ export class PageRepository { @@ -153,6 +168,20 @@ export class PageRepository {
153 return WDHttp.post<ResponseDTO<InteractDataDTO[]>>(url, param, headers) 168 return WDHttp.post<ResponseDTO<InteractDataDTO[]>>(url, param, headers)
154 }; 169 };
155 170
  171 + // 批量查询内容当前用户点赞、收藏状态
  172 + static fetchInteractDataStatus(param: object) {
  173 + let url = PageRepository.getInteractDataStatusUrl()
  174 + let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
  175 + return WDHttp.post<ResponseDTO<InteractDataStatusDTO[]>>(url, param, headers)
  176 + };
  177 +
  178 + // 浏览历史新增、删除接口
  179 + static fetchInteractBrowsOperate(param: object) {
  180 + let url = PageRepository.getInteractBrowsOperateUrl()
  181 + let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
  182 + return WDHttp.post<ResponseDTO<null>>(url, param, headers)
  183 + };
  184 +
156 static fetchNewspaperInfo(date: string) { 185 static fetchNewspaperInfo(date: string) {
157 let url = PageRepository.getNewspaperInfoUrl(date) 186 let url = PageRepository.getNewspaperInfoUrl(date)
158 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); 187 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
1 1
2 -import { EditInfoModel, EditListInfo } from '../model/EditInfoModel'; 2 +import { EditInfoModel, EditListInfo, editModel } from '../model/EditInfoModel';
3 import HashMap from '@ohos.util.HashMap'; 3 import HashMap from '@ohos.util.HashMap';
4 import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork'; 4 import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
  5 +import { Logger, ResourcesUtils } from 'wdKit';
5 6
  7 +const TAG = "EditInfoViewModel"
6 8
7 class EditInfoViewModel { 9 class EditInfoViewModel {
8 private static instance: EditInfoViewModel; 10 private static instance: EditInfoViewModel;
@@ -20,30 +22,50 @@ class EditInfoViewModel { @@ -20,30 +22,50 @@ class EditInfoViewModel {
20 22
21 BaseGetRequest(requestUrl:string){ 23 BaseGetRequest(requestUrl:string){
22 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders() 24 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders()
  25 + requestUrl = HttpUrlUtils.HOST_SIT + requestUrl
23 return WDHttp.get<ResponseDTO>(requestUrl,headers) 26 return WDHttp.get<ResponseDTO>(requestUrl,headers)
24 } 27 }
25 28
26 29
27 - getEditListInfo(item:EditInfoModel):EditListInfo[]{ 30 + getEditListInfo(item:editModel):EditListInfo[]{
28 this.editListData = [ 31 this.editListData = [
29 - new EditListInfo('昵称',item&&item.userName?item.userName:'待完善'),  
30 - new EditListInfo('简介',item&&item.introduction?item.introduction:'待完善'),  
31 - new EditListInfo('地区',item&&item.city?item.city:'待完善'),  
32 - new EditListInfo('生日',item&&item.birthday?item.birthday:'待完善'),  
33 - new EditListInfo('性别',item&&item.sex?item.sex:'待完善'),] 32 + // new EditListInfo('昵称',item&&item.userName?item.userName:'待完善'),
  33 + // new EditListInfo('简介',item&&item.userExtend.introduction?item.userExtend.introduction:'待完善'),
  34 + // new EditListInfo('地区',item&&item.userExtend.city?item.userExtend.city:'待完善'),
  35 + // new EditListInfo('生日',item&&item.userExtend.birthday?item.userExtend.birthday:'待完善'),
  36 + // new EditListInfo('性别',item&&item.userExtend.sex?item.userExtend.sex:'待完善'),
  37 + ]
34 return this.editListData 38 return this.editListData
35 } 39 }
36 40
37 - queryAccountOwnerInfo(userType:number):PromiseLike<EditInfoModel>{ 41 + ///1普通用户
  42 + queryAccountOwnerInfo(userType:number, context: Context):PromiseLike<editModel>{
38 return new Promise(((success, error) => { 43 return new Promise(((success, error) => {
39 - this.BaseGetRequest(HttpUrlUtils.APPOINTMENT_AccountOwner_PATH).then(navResDTO =>{ 44 + this.BaseGetRequest(userType == 1?HttpUrlUtils.APPOINTMENT_QueryUserDetail_PATH:HttpUrlUtils.APPOINTMENT_AccountOwner_PATH).then((navResDTO:ResponseDTO) =>{
40 if (navResDTO.code == 200) { 45 if (navResDTO.code == 200) {
41 - // success(JSON.parse(navResDTO.data)) 46 + // let editM = navResDTO.data as EditInfoModel
  47 + // success(JSON.parse(navResDTO.data)
42 } 48 }
43 - }).catch() 49 + return this.GetqueryAccountOwnerLocal(context)
  50 + }).catch((error: Error) => {
  51 + Logger.info('EditInfoViewModel','EditInfoViewModel','EditInfoViewModel')
  52 + return this.GetqueryAccountOwnerLocal(context)
  53 +
  54 + })
44 })) 55 }))
45 } 56 }
46 57
  58 + async GetqueryAccountOwnerLocal(context: Context): Promise<editModel> {
  59 + Logger.info(TAG, `getBottomNavDataMock start`);
  60 + let compRes: ResponseDTO<editModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<editModel>>(context,'userInfo.json');
  61 + if (!compRes || !compRes.data) {
  62 + Logger.info(TAG, `getAppointmentListDataLocal compRes is empty`);
  63 + return {} as editModel
  64 + }
  65 + Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
  66 + return compRes.data
  67 + }
  68 +
47 updateUserInfo(){ 69 updateUserInfo(){
48 70
49 } 71 }
  1 +
  2 +export class MineUserDetailItem{
  3 + userName:string = ""
  4 + headPhotoUrl:"" = ""
  5 + introduction:string = ""
  6 + userType:string = "1"
  7 + creatorId:string = ""
  8 + browseNum:number = 0//阅读数
  9 + commentNum:number = 0//评论数
  10 + attentionNum:number = 0//关注数
  11 + registTime:number = 0//账号注册时间
  12 +}
  1 +
  2 +export class MineUserLevelItem{
  3 + levelHead:string = ""
  4 + levelId:number = 0
  5 + level:number = 0
  6 + levelName:string = ""
  7 +
  8 +}
  1 +import { Logger } from 'wdKit';
  2 +import { ResponseDTO } from 'wdNetwork';
  3 +import { ContentDetailDTO } from 'wdBean';
  4 +import { PageRepository } from '../repository/PageRepository';
  5 +
  6 +const TAG = 'MultiPictureDetailViewModel';
  7 +
  8 +export class MultiPictureDetailViewModel {
  9 +
  10 + /*fetchDetailData
  11 + fetchInteractData
  12 + fetchInteractDataStatus
  13 + fetchInteractBrowsOperate*/
  14 +
  15 + static async getDetailData(relId: string, contentId: string, relType: string): Promise<ContentDetailDTO[]> {
  16 + return new Promise<ContentDetailDTO[]>((success, error) => {
  17 + Logger.info(TAG, `fetchDetailData start`);
  18 + PageRepository.fetchDetailData(relId, contentId, relType).then((resDTO: ResponseDTO<ContentDetailDTO[]>) => {
  19 + if (!resDTO || !resDTO.data) {
  20 + Logger.error(TAG, 'fetchDetailData is empty');
  21 + error('resDTO is empty');
  22 + return
  23 + }
  24 + if (resDTO.code != 0) {
  25 + Logger.error(TAG, `fetchDetailData then code:${resDTO.code}, message:${resDTO.message}`);
  26 + error('resDTO Response Code is failure');
  27 + return
  28 + }
  29 + Logger.info(TAG, "fetchDetailData then,navResDTO.timestamp:" + resDTO.timestamp);
  30 + success(resDTO.data);
  31 + }).catch((err: Error) => {
  32 + Logger.error(TAG, `fetchDetailData catch, error.name : ${err.name}, error.message:${err.message}`);
  33 + error(err);
  34 + })
  35 + })
  36 + }
  37 +}
  1 +export class OtherUserDetailRequestItem {
  2 + creatorId: string = ""
  3 + userType: string = "1"
  4 + userId: string = "-1"
  5 +
  6 + constructor(creatorId: string ,
  7 + userType: string,
  8 + userId: string ) {
  9 + this.creatorId = creatorId
  10 + this.userType = userType
  11 + this.userId = userId
  12 + }
  13 +
  14 +}
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
11 "components/page/EditUserNikeNamePage", 11 "components/page/EditUserNikeNamePage",
12 "components/page/EditUserIntroductionPage", 12 "components/page/EditUserIntroductionPage",
13 "components/page/BrowsingHistoryPage", 13 "components/page/BrowsingHistoryPage",
14 - "components/page/MyCollectionListPage" 14 + "components/page/MyCollectionListPage",
  15 + "pages/OtherNormalUserHomePage"
15 ] 16 ]
16 } 17 }
1 import router from '@ohos.router'; 1 import router from '@ohos.router';
2 import mediaquery from '@ohos.mediaquery'; 2 import mediaquery from '@ohos.mediaquery';
3 import window from '@ohos.window'; 3 import window from '@ohos.window';
4 -import { Action } from 'wdBean'; 4 +import { Action, RmhInfoDTO, UserInfoDTO } from 'wdBean';
5 import { Logger, SPHelper, WindowModel } from 'wdKit'; 5 import { Logger, SPHelper, WindowModel } from 'wdKit';
6 import { PlayerConstants, WDPlayerController, WDPlayerRenderView } from 'wdPlayer'; 6 import { PlayerConstants, WDPlayerController, WDPlayerRenderView } from 'wdPlayer';
7 import { devicePLSensorManager } from 'wdDetailPlayApi'; 7 import { devicePLSensorManager } from 'wdDetailPlayApi';
@@ -30,27 +30,34 @@ export struct DetailPlayShortVideoPage { @@ -30,27 +30,34 @@ export struct DetailPlayShortVideoPage {
30 @Provide canStart?: boolean = false; 30 @Provide canStart?: boolean = false;
31 @Provide status: number = PlayerConstants.STATUS_START; 31 @Provide status: number = PlayerConstants.STATUS_START;
32 @Provide userId: string = ''; 32 @Provide userId: string = '';
33 - @Provide newsSourceName?: string = undefined  
34 - @Provide title?: string = undefined  
35 - @Provide message?: string = undefined  
36 - @Provide newsSummary?: string = undefined 33 + @Provide newsSourceName?: string = ''
  34 + @Provide newsTitle?: string = ''
  35 + @Provide editorName?: string = ''
  36 + @Provide rmhInfo?: RmhInfoDTO = undefined
  37 + @Provide userInfo?: UserInfoDTO = undefined
  38 + @Provide message?: string = ''
  39 + @Provide newsSummary?: string = ''
37 @Provide progressVal: number = 0; 40 @Provide progressVal: number = 0;
38 @Provide videoLandScape?: number = 1; // 视频朝向, 横屏视频:1;竖屏视频:2 41 @Provide videoLandScape?: number = 1; // 视频朝向, 横屏视频:1;竖屏视频:2
39 42
40 playVMChanged(name: string) { 43 playVMChanged(name: string) {
41 this.url = this.playVM.url 44 this.url = this.playVM.url
42 this.newsSourceName = this.playVM.newsSourceName 45 this.newsSourceName = this.playVM.newsSourceName
43 - this.title = this.playVM.title 46 + this.newsTitle = this.playVM.newsTitle
  47 + this.editorName = this.playVM.editorName
44 this.newsSummary = this.playVM.newsSummary 48 this.newsSummary = this.playVM.newsSummary
45 this.videoLandScape = this.playVM.videoLandScape ?? 1 49 this.videoLandScape = this.playVM.videoLandScape ?? 1
46 this.curContId = this.playVM.contentId 50 this.curContId = this.playVM.contentId
47 this.nextContId = this.playVM.nextContId 51 this.nextContId = this.playVM.nextContId
48 this.canStart = this.playVM.canStart; 52 this.canStart = this.playVM.canStart;
49 this.message = this.playVM.message 53 this.message = this.playVM.message
  54 + this.rmhInfo = this.playVM.rmhInfo
  55 + this.userInfo = this.playVM.userInfo
50 } 56 }
51 57
52 aboutToAppear() { 58 aboutToAppear() {
53 let action: Action = router.getParams() as Action 59 let action: Action = router.getParams() as Action
  60 + Logger.info(TAG, "action", JSON.stringify(action))
54 if (action) { 61 if (action) {
55 this.contentId = action.params?.contentID 62 this.contentId = action.params?.contentID
56 if (action.params && action.params.extra) { 63 if (action.params && action.params.extra) {
@@ -86,11 +93,12 @@ export struct DetailPlayShortVideoPage { @@ -86,11 +93,12 @@ export struct DetailPlayShortVideoPage {
86 } 93 }
87 94
88 @Builder 95 @Builder
89 - playerViewContainer() { 96 + playerViewContainerBuilder() {
90 // 播放窗口 97 // 播放窗口
91 WDPlayerRenderView({ 98 WDPlayerRenderView({
92 playerController: this.playerController, 99 playerController: this.playerController,
93 onLoad: async () => { 100 onLoad: async () => {
  101 + console.log('onload==')
94 // this.playVM.playWithContentId(this.contentId ?? "846899373") 102 // this.playVM.playWithContentId(this.contentId ?? "846899373")
95 this.playVM.playWithIds(this.contentId ?? "846899373", 103 this.playVM.playWithIds(this.contentId ?? "846899373",
96 this.relId ?? "500000301942", this.relType ?? "1") 104 this.relId ?? "500000301942", this.relType ?? "1")
@@ -101,7 +109,7 @@ export struct DetailPlayShortVideoPage { @@ -101,7 +109,7 @@ export struct DetailPlayShortVideoPage {
101 } 109 }
102 110
103 @Builder 111 @Builder
104 - playControlViewContainer() { 112 + playControlViewContainerBuilder() {
105 // 播放窗口控制bar 113 // 播放窗口控制bar
106 PlayControlViewContainer({ 114 PlayControlViewContainer({
107 playerController: this.playerController 115 playerController: this.playerController
@@ -109,7 +117,7 @@ export struct DetailPlayShortVideoPage { @@ -109,7 +117,7 @@ export struct DetailPlayShortVideoPage {
109 } 117 }
110 118
111 @Builder 119 @Builder
112 - detailContainer() { 120 + detailContainerBuilder() {
113 // DetailTabBarPageComponent({ pageId: this.pageId }).backgroundColor(Color.Black) 121 // DetailTabBarPageComponent({ pageId: this.pageId }).backgroundColor(Color.Black)
114 DetailContainer({ 122 DetailContainer({
115 playerController: this.playerController 123 playerController: this.playerController
@@ -118,13 +126,15 @@ export struct DetailPlayShortVideoPage { @@ -118,13 +126,15 @@ export struct DetailPlayShortVideoPage {
118 126
119 build() { 127 build() {
120 Row() { 128 Row() {
121 - PlayerDetailContainer({ playerView: () => {  
122 - this.playerViewContainer()  
123 - }, playControlView: () => {  
124 - this.playControlViewContainer()  
125 - }, detailView: () => {  
126 - this.detailContainer()  
127 - } }) 129 + PlayerDetailContainer({
  130 + playerView: () => {
  131 + this.playerViewContainerBuilder()
  132 + }, playControlView: () => {
  133 + this.playControlViewContainerBuilder()
  134 + }, detailView: () => {
  135 + this.detailContainerBuilder()
  136 + }
  137 + })
128 .height('100%') 138 .height('100%')
129 .width('100%') 139 .width('100%')
130 } 140 }
  1 +import { RmhInfoDTO, UserInfoDTO } from 'wdBean/Index';
1 import { ToastUtils } from 'wdKit'; 2 import { ToastUtils } from 'wdKit';
2 3
3 export interface OperationItem { 4 export interface OperationItem {
@@ -12,13 +13,14 @@ const FULL_PARENT: string = '100%'; @@ -12,13 +13,14 @@ const FULL_PARENT: string = '100%';
12 13
13 const TAG = 'OperationListView'; 14 const TAG = 'OperationListView';
14 15
15 -@Entry  
16 @Component 16 @Component
17 export struct OperationListView { 17 export struct OperationListView {
  18 + @Consume rmhInfo?: RmhInfoDTO
  19 + @Consume userInfo?: UserInfoDTO
18 @State operationList: OperationItem[] = [ 20 @State operationList: OperationItem[] = [
19 { 21 {
20 icon: $r('app.media.ic_like_uncheck'), 22 icon: $r('app.media.ic_like_uncheck'),
21 - text: "赞", 23 + text: "赞",
22 num: 6622 24 num: 6622
23 }, 25 },
24 { 26 {
@@ -62,6 +64,7 @@ export struct OperationListView { @@ -62,6 +64,7 @@ export struct OperationListView {
62 // }) 64 // })
63 65
64 Column() { 66 Column() {
  67 + this.buildUserComp()
65 ForEach(this.operationList, (item: OperationItem, index: number) => { 68 ForEach(this.operationList, (item: OperationItem, index: number) => {
66 this.buildOperationItem(item, index) 69 this.buildOperationItem(item, index)
67 }, (item: OperationItem, index: number) => JSON.stringify(item)) 70 }, (item: OperationItem, index: number) => JSON.stringify(item))
@@ -69,6 +72,17 @@ export struct OperationListView { @@ -69,6 +72,17 @@ export struct OperationListView {
69 .width(48) 72 .width(48)
70 } 73 }
71 74
  75 + @Builder
  76 + buildUserComp() {
  77 + Column() {
  78 + Image(this.rmhInfo?.rmhHeadUrl || this.userInfo?.userHeadUrl)
  79 + .width(48)
  80 + .borderRadius(24)
  81 + .aspectRatio(1)
  82 + // .margin(18)
  83 + }
  84 + }
  85 +
72 /** 86 /**
73 * 组件项 87 * 组件项
74 * 88 *
@@ -97,7 +111,7 @@ export struct OperationListView { @@ -97,7 +111,7 @@ export struct OperationListView {
97 .hoverEffect(HoverEffect.Scale) 111 .hoverEffect(HoverEffect.Scale)
98 .onClick((event: ClickEvent) => { 112 .onClick((event: ClickEvent) => {
99 console.info(TAG, `buildOperationItem onClick event index: ${index}`); 113 console.info(TAG, `buildOperationItem onClick event index: ${index}`);
100 - ToastUtils.showToast('体验版,本功能暂未开发', 1000); 114 + // ToastUtils.showToast('体验版,本功能暂未开发', 1000);
101 }) 115 })
102 } 116 }
103 } 117 }
@@ -103,12 +103,17 @@ export struct PlayControlViewContainer { @@ -103,12 +103,17 @@ export struct PlayControlViewContainer {
103 .height('100%') 103 .height('100%')
104 .width('100%') 104 .width('100%')
105 .zIndex(1) 105 .zIndex(1)
106 - .gesture(TapGesture({ count: 2 }) 106 + .gesture(TapGesture({ count: 1 })
107 .onAction((event: GestureEvent) => { 107 .onAction((event: GestureEvent) => {
108 let curStatus = (this.status === PlayerConstants.STATUS_START); 108 let curStatus = (this.status === PlayerConstants.STATUS_START);
109 this.status = curStatus ? PlayerConstants.STATUS_PAUSE : PlayerConstants.STATUS_START; 109 this.status = curStatus ? PlayerConstants.STATUS_PAUSE : PlayerConstants.STATUS_START;
110 this.playerController?.switchPlayOrPause(); 110 this.playerController?.switchPlayOrPause();
111 })) 111 }))
  112 + .gesture(TapGesture({ count: 2 })
  113 + .onAction((event: GestureEvent) => {
  114 + // TODO 双击点赞|收藏
  115 + }))
  116 +
112 117
113 Row() { 118 Row() {
114 Image($r('app.media.ic_volume')) 119 Image($r('app.media.ic_volume'))
@@ -8,7 +8,7 @@ import { devicePLSensorManager } from 'wdDetailPlayApi'; @@ -8,7 +8,7 @@ import { devicePLSensorManager } from 'wdDetailPlayApi';
8 @Component 8 @Component
9 export struct PlayerTitle { 9 export struct PlayerTitle {
10 private playerController?: WDPlayerController; 10 private playerController?: WDPlayerController;
11 - @Consume title?: string 11 + @Consume newsTitle?: string
12 @Consume isFullScreen: boolean; 12 @Consume isFullScreen: boolean;
13 @State @Watch('watchSpeed') playSpeed: number = 1; 13 @State @Watch('watchSpeed') playSpeed: number = 1;
14 14
@@ -46,7 +46,7 @@ export struct PlayerTitle { @@ -46,7 +46,7 @@ export struct PlayerTitle {
46 router.back(); 46 router.back();
47 } 47 }
48 }) 48 })
49 - Text(this.title) 49 + Text(this.newsTitle)
50 .fontColor(Color.White) 50 .fontColor(Color.White)
51 .fontSize('14fp') 51 .fontSize('14fp')
52 .maxLines(2) 52 .maxLines(2)
@@ -5,12 +5,14 @@ import { WindowModel } from 'wdKit'; @@ -5,12 +5,14 @@ import { WindowModel } from 'wdKit';
5 import { WDPlayerController } from 'wdPlayer'; 5 import { WDPlayerController } from 'wdPlayer';
6 import { devicePLSensorManager } from 'wdDetailPlayApi'; 6 import { devicePLSensorManager } from 'wdDetailPlayApi';
7 import { OperationListView } from './OperationListView'; 7 import { OperationListView } from './OperationListView';
  8 +import { RmhInfoDTO, UserInfoDTO } from 'wdBean/Index';
8 9
9 @Component 10 @Component
10 export struct PlayerTitleComment { 11 export struct PlayerTitleComment {
11 private playerController?: WDPlayerController; 12 private playerController?: WDPlayerController;
12 @Consume newsSourceName?: string 13 @Consume newsSourceName?: string
13 - @Consume title?: string 14 + @Consume newsTitle?: string
  15 + @Consume editorName?: string
14 @Consume newsSummary?: string; 16 @Consume newsSummary?: string;
15 @State @Watch('watchSpeed') playSpeed: number = 1; 17 @State @Watch('watchSpeed') playSpeed: number = 1;
16 @Consume isFullScreen: boolean; 18 @Consume isFullScreen: boolean;
@@ -57,15 +59,15 @@ export struct PlayerTitleComment { @@ -57,15 +59,15 @@ export struct PlayerTitleComment {
57 59
58 Row() { 60 Row() {
59 Column() { 61 Column() {
60 - if (this.newsSourceName) {  
61 - Text("@" + this.newsSourceName) 62 + if (this.newsSourceName || this.editorName) {
  63 + Text("@" + (this.newsSourceName || this.editorName))
62 .fontColor(Color.White) 64 .fontColor(Color.White)
63 .fontSize(15) 65 .fontSize(15)
64 .maxLines(1) 66 .maxLines(1)
65 .textOverflow({ overflow: TextOverflow.Ellipsis }) 67 .textOverflow({ overflow: TextOverflow.Ellipsis })
66 } 68 }
67 - if (this.newsSummary) {  
68 - Text(this.newsSummary) 69 + if (this.newsTitle || this.newsSummary) {
  70 + Text(this.newsTitle || this.newsSummary)
69 .fontColor(Color.White) 71 .fontColor(Color.White)
70 .fontSize(15) 72 .fontSize(15)
71 .maxLines(3) 73 .maxLines(3)
@@ -80,6 +82,7 @@ export struct PlayerTitleComment { @@ -80,6 +82,7 @@ export struct PlayerTitleComment {
80 } 82 }
81 .layoutWeight(1) 83 .layoutWeight(1)
82 .alignItems(HorizontalAlign.Start) 84 .alignItems(HorizontalAlign.Start)
  85 + .margin({ left: 16 })
83 86
84 OperationListView() 87 OperationListView()
85 .width(48) 88 .width(48)
@@ -135,6 +138,8 @@ export struct PlayerTitleComment { @@ -135,6 +138,8 @@ export struct PlayerTitleComment {
135 .fontSize(14) 138 .fontSize(14)
136 .maxLines(1) 139 .maxLines(1)
137 .layoutWeight(1) 140 .layoutWeight(1)
  141 + .backgroundColor('#ccc')
  142 + .borderRadius(2)
138 }.alignItems(VerticalAlign.Center) 143 }.alignItems(VerticalAlign.Center)
139 } 144 }
140 .width('100%') 145 .width('100%')
@@ -2,7 +2,7 @@ import { BusinessError } from '@ohos.base' @@ -2,7 +2,7 @@ import { BusinessError } from '@ohos.base'
2 import { Logger, ToastUtils } from 'wdKit' 2 import { Logger, ToastUtils } from 'wdKit'
3 import { ResponseDTO } from 'wdNetwork' 3 import { ResponseDTO } from 'wdNetwork'
4 import { ContentDetailRequest } from 'wdDetailPlayApi' 4 import { ContentDetailRequest } from 'wdDetailPlayApi'
5 -import { ContentDetailDTO } from 'wdBean' 5 +import { ContentDetailDTO, RmhInfoDTO, UserInfoDTO } from 'wdBean'
6 6
7 const TAG = 'PlayViewModel'; 7 const TAG = 'PlayViewModel';
8 8
@@ -12,8 +12,11 @@ export class PlayViewModel { @@ -12,8 +12,11 @@ export class PlayViewModel {
12 relId: string 12 relId: string
13 relType: string 13 relType: string
14 newsSourceName?: string 14 newsSourceName?: string
15 - title?: string 15 + newsTitle?: string
  16 + editorName?: string
16 newsSummary?: string 17 newsSummary?: string
  18 + rmhInfo?: RmhInfoDTO
  19 + userInfo?: UserInfoDTO
17 url?: string 20 url?: string
18 // 视频朝向, 21 // 视频朝向,
19 // 横屏视频:1(进入竖屏,立即展示半屏播放窗口,当切换横屏时,再展示全部播放窗口;后续可再转换到竖屏): 22 // 横屏视频:1(进入竖屏,立即展示半屏播放窗口,当切换横屏时,再展示全部播放窗口;后续可再转换到竖屏):
@@ -59,14 +62,21 @@ export class PlayViewModel { @@ -59,14 +62,21 @@ export class PlayViewModel {
59 Logger.error(TAG, `getContentDetailData then body is empty`); 62 Logger.error(TAG, `getContentDetailData then body is empty`);
60 return 63 return
61 } 64 }
  65 +
62 let contentDetailDTO: ContentDetailDTO = resDTO.data[0] 66 let contentDetailDTO: ContentDetailDTO = resDTO.data[0]
63 - this.newsSourceName = contentDetailDTO.newsSourceName  
64 - this.title = contentDetailDTO.newsTitle 67 + Logger.info(TAG, JSON.stringify(contentDetailDTO))
  68 + this.newsTitle = contentDetailDTO.newsTitle
  69 + this.editorName = contentDetailDTO.editorName
65 this.newsSummary = contentDetailDTO.newsSummary 70 this.newsSummary = contentDetailDTO.newsSummary
  71 + this.userInfo = contentDetailDTO.userInfo
  72 + this.rmhInfo = contentDetailDTO.rmhInfo
66 if (contentDetailDTO.videoInfo?.length > 0) { 73 if (contentDetailDTO.videoInfo?.length > 0) {
67 this.url = contentDetailDTO.videoInfo[0].videoUrl 74 this.url = contentDetailDTO.videoInfo[0].videoUrl
68 this.videoLandScape = contentDetailDTO.videoInfo[0].videoLandScape 75 this.videoLandScape = contentDetailDTO.videoInfo[0].videoLandScape
69 } 76 }
  77 + if (contentDetailDTO.authorList?.length > 0) {
  78 + this.newsSourceName = contentDetailDTO.authorList[0].authorName
  79 + }
70 this.canStart = true; 80 this.canStart = true;
71 this.message = ''; 81 this.message = '';
72 }).catch((err: BusinessError) => { 82 }).catch((err: BusinessError) => {
  1 +@Entry
  2 +@Component
  3 +struct Test {
  4 + @State message: string = 'Hello World';
  5 +
  6 + build() {
  7 + Row() {
  8 + Column() {
  9 + Text(this.message)
  10 + .fontSize(50)
  11 + .fontWeight(FontWeight.Bold)
  12 + }
  13 + .width('100%')
  14 + }
  15 + .height('100%')
  16 + }
  17 +}
1 import componentUtils from '@ohos.arkui.componentUtils'; 1 import componentUtils from '@ohos.arkui.componentUtils';
2 import { WDPlayerController } from '../controller/WDPlayerController' 2 import { WDPlayerController } from '../controller/WDPlayerController'
3 import { WindowModel } from 'wdKit'; 3 import { WindowModel } from 'wdKit';
  4 +import { Logger } from '../utils/Logger';
4 5
5 class Size { 6 class Size {
6 width: Length = "100%"; 7 width: Length = "100%";
@@ -13,6 +14,7 @@ class Size { @@ -13,6 +14,7 @@ class Size {
13 } 14 }
14 15
15 let insIndex: number = 0; 16 let insIndex: number = 0;
  17 +const TAG = 'WDPlayerRenderView'
16 18
17 class MGPlayRenderViewIns { 19 class MGPlayRenderViewIns {
18 static intCount: number = 0; 20 static intCount: number = 0;
@@ -24,7 +26,7 @@ class MGPlayRenderViewIns { @@ -24,7 +26,7 @@ class MGPlayRenderViewIns {
24 } 26 }
25 27
26 static del() { 28 static del() {
27 - console.log("add-- -1") 29 + console.log("del-- -1")
28 MGPlayRenderViewIns.intCount--; 30 MGPlayRenderViewIns.intCount--;
29 if (MGPlayRenderViewIns.intCount <= 0) { 31 if (MGPlayRenderViewIns.intCount <= 0) {
30 WindowModel.shared.setWindowKeepScreenOn(false); 32 WindowModel.shared.setWindowKeepScreenOn(false);
@@ -35,7 +37,6 @@ class MGPlayRenderViewIns { @@ -35,7 +37,6 @@ class MGPlayRenderViewIns {
35 /** 37 /**
36 * 播放窗口组件 38 * 播放窗口组件
37 */ 39 */
38 -@Entry  
39 @Component 40 @Component
40 export struct WDPlayerRenderView { 41 export struct WDPlayerRenderView {
41 private playerController?: WDPlayerController; 42 private playerController?: WDPlayerController;
@@ -49,14 +50,15 @@ export struct WDPlayerRenderView { @@ -49,14 +50,15 @@ export struct WDPlayerRenderView {
49 aboutToAppear() { 50 aboutToAppear() {
50 MGPlayRenderViewIns.add(); 51 MGPlayRenderViewIns.add();
51 52
  53 + console.log('playerController', this.playerController)
52 insIndex++; 54 insIndex++;
53 -  
54 if (!this.playerController) { 55 if (!this.playerController) {
55 return 56 return
56 } 57 }
57 58
58 this.playerController.onVideoSizeChange = (width: number, height: number) => { 59 this.playerController.onVideoSizeChange = (width: number, height: number) => {
59 // console.log(`WDPlayerRenderView onVideoSizeChange width:${width} videoTop:${height}`) 60 // console.log(`WDPlayerRenderView onVideoSizeChange width:${width} videoTop:${height}`)
  61 + Logger.info(TAG, ` onVideoSizeChange width:${width} videoTop:${height}`)
60 this.videoWidth = width; 62 this.videoWidth = width;
61 this.videoHeight = height; 63 this.videoHeight = height;
62 this.updateLayout() 64 this.updateLayout()
@@ -64,6 +66,7 @@ export struct WDPlayerRenderView { @@ -64,6 +66,7 @@ export struct WDPlayerRenderView {
64 } 66 }
65 67
66 aboutToDisappear() { 68 aboutToDisappear() {
  69 + Logger.info(TAG, `aboutToDisappear`)
67 MGPlayRenderViewIns.del(); 70 MGPlayRenderViewIns.del();
68 } 71 }
69 72
@@ -76,6 +79,7 @@ export struct WDPlayerRenderView { @@ -76,6 +79,7 @@ export struct WDPlayerRenderView {
76 controller: this.xComponentController 79 controller: this.xComponentController
77 }) 80 })
78 .onLoad(async (event) => { 81 .onLoad(async (event) => {
  82 + Logger.info(TAG, 'onLoad')
79 this.xComponentController.setXComponentSurfaceSize({ 83 this.xComponentController.setXComponentSurfaceSize({
80 surfaceWidth: 1920, 84 surfaceWidth: 1920,
81 surfaceHeight: 1080 85 surfaceHeight: 1080
1 { 1 {
2 "src": [ 2 "src": [
3 - "pages/WDPlayerRenderView" 3 + "pages/Test"
4 ] 4 ]
5 -} 5 +}
  1 +import { Logger } from 'wdKit';
  2 +import { MultiPictureDetailPageComponent } from 'wdComponent';
  3 +
  4 +const TAG = 'MultiPictureDetailPage';
  5 +
  6 +/**
  7 + * 多图(图集详情页)
  8 + */
1 @Entry 9 @Entry
2 @Component 10 @Component
3 struct MultiPictureDetailPage { 11 struct MultiPictureDetailPage {
4 - @State message: string = 'Hello World';  
5 12
6 build() { 13 build() {
7 Row() { 14 Row() {
8 Column() { 15 Column() {
9 - Text(this.message)  
10 - .fontSize(50)  
11 - .fontWeight(FontWeight.Bold) 16 + MultiPictureDetailPageComponent()
12 } 17 }
13 - .width('100%')  
14 } 18 }
15 - .height('100%') 19 + }
  20 +
  21 + pageTransition(){
  22 + // 定义页面进入时的效果,从右边侧滑入
  23 + PageTransitionEnter({ type: RouteType.None, duration: 300 })
  24 + .slide(SlideEffect.Right)
  25 + // 定义页面退出时的效果,向右边侧滑出
  26 + PageTransitionExit({ type: RouteType.None, duration: 300 })
  27 + .slide(SlideEffect.Right)
  28 + }
  29 +
  30 + aboutToAppear() {
  31 + Logger.info(TAG, 'aboutToAppear');
  32 + }
  33 +
  34 + aboutToDisappear() {
  35 + Logger.info(TAG, 'aboutToDisappear');
  36 + }
  37 +
  38 + onBackPress() {
  39 + Logger.info(TAG, 'onBackPress');
16 } 40 }
17 } 41 }
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "articleCreation": 0,
  5 + "attentionNum": 22,
  6 + "authIcon": "",
  7 + "authId": 0,
  8 + "authPersonal": "",
  9 + "authTitle": "",
  10 + "avatarFrame": "",
  11 + "browseNum": 22,
  12 + "categoryAuth": "",
  13 + "city": "",
  14 + "cnContentPublish": 0,
  15 + "cnLivePublish": 0,
  16 + "cnShareControl": 0,
  17 + "collectNum": 4,
  18 + "commentNum": 0,
  19 + "contentPublish": 0,
  20 + "creatorId": "",
  21 + "district": "",
  22 + "dynamicControl": 0,
  23 + "dynamicCreation": 0,
  24 + "fansNum": 0,
  25 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn//img/user/2024031215/48d5bd53227d436b9faa937b3ac14600.png",
  26 + "honoraryIcon": "",
  27 + "honoraryTitle": "",
  28 + "introduction": "",
  29 + "isComment": 0,
  30 + "isLike": 0,
  31 + "livePublish": 0,
  32 + "liveSwitch": 1,
  33 + "mainControl": 1,
  34 + "originUserId": "",
  35 + "pictureCollectionCreation": 0,
  36 + "posterShareControl": 1,
  37 + "province": "",
  38 + "region": "安徽省",
  39 + "registTime": 1710227567000,
  40 + "reserveNum": 6,
  41 + "shareControl": 0,
  42 + "shareUrl": "",
  43 + "speakControl": 0,
  44 + "subjectType": 0,
  45 + "userId": "567387477063621",
  46 + "userName": "人民日报网友aPrtq5",
  47 + "userType": "1",
  48 + "videoCollectionCreation": 0,
  49 + "videoCreation": 0
  50 + },
  51 + "message": "Success",
  52 + "meta": null,
  53 + "requestId": "",
  54 + "success": true,
  55 + "timestamp": 1711357314033
  56 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "createTime": "2024-03-12 15:12:47",
  5 + "id": 132386,
  6 + "levelHead": "http://rmrb-video-content-sit.oss-cn-beijing.aliyuncs.com/sjbj-20240125/image/display/88c45bf56ac941b883c69bd8ed373164.png",
  7 + "levelId": 2,
  8 + "levelName": "初入武林",
  9 + "levelNum": 155,
  10 + "modifyTime": "2024-03-25 16:35:57",
  11 + "status": 1,
  12 + "userId": 567387477063621
  13 + },
  14 + "message": "Success",
  15 + "success": true,
  16 + "timestamp": 1711357314136
  17 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "articleCreation": 0,
  5 + "attentionNum": 1,
  6 + "authIcon": "",
  7 + "authId": 0,
  8 + "authPersonal": "",
  9 + "authTitle": "",
  10 + "avatarFrame": "",
  11 + "banControl": 0,
  12 + "browseNum": 76,
  13 + "categoryAuth": "",
  14 + "city": "",
  15 + "cnContentPublish": 0,
  16 + "cnIsComment": 0,
  17 + "cnIsLike": 0,
  18 + "cnLiveCommentControl": 0,
  19 + "cnLiveGiftControl": 0,
  20 + "cnLiveLikeControl": 0,
  21 + "cnLivePublish": 0,
  22 + "cnLiveShareControl": 0,
  23 + "cnShareControl": 0,
  24 + "contentPublish": 0,
  25 + "creatorId": "",
  26 + "district": "",
  27 + "dynamicControl": 0,
  28 + "dynamicCreation": 0,
  29 + "fansNum": 0,
  30 + "headPhotoUrl": "https://sitcontentjdcdn.aikan.pdnews.cn/null20240127/1630371072/1706336907262.jpg",
  31 + "honoraryIcon": "",
  32 + "honoraryTitle": "",
  33 + "introduction": "",
  34 + "isAttention": 0,
  35 + "isComment": 0,
  36 + "isLike": 0,
  37 + "liveCommentControl": 0,
  38 + "liveGiftControl": 0,
  39 + "liveLikeControl": 0,
  40 + "livePublish": 0,
  41 + "liveShareControl": 0,
  42 + "liveSwitch": 0,
  43 + "mainControl": 1,
  44 + "originUserId": "",
  45 + "pictureCollectionCreation": 0,
  46 + "posterShareControl": 1,
  47 + "province": "",
  48 + "region": "安徽省",
  49 + "registTime": 1703485580000,
  50 + "shareControl": 0,
  51 + "shareUrl": "",
  52 + "subjectType": 0,
  53 + "userId": "512157124138245",
  54 + "userName": "树下🍑 1122334",
  55 + "userType": "1",
  56 + "videoCollectionCreation": 0,
  57 + "videoCreation": 0
  58 + },
  59 + "message": "Success",
  60 + "meta": null,
  61 + "requestId": "",
  62 + "success": true,
  63 + "timestamp": 1711440875633
  64 +}
  1 +{
  2 + "code": "0",
  3 + "data": [
  4 + {
  5 + "level": 2,
  6 + "levelHead": "http://rmrb-video-content-sit.oss-cn-beijing.aliyuncs.com/sjbj-20240125/image/display/88c45bf56ac941b883c69bd8ed373164.png",
  7 + "userId": 512157124138245
  8 + }
  9 + ],
  10 + "message": "Success",
  11 + "success": true,
  12 + "timestamp": 1711440876088
  13 +}
  1 +{
  2 + "code": "0",
  3 + "data": {
  4 + "createTime": "2023-12-15 17:19:47",
  5 + "headPhotoStatus": 1,
  6 + "id": 490264487281413,
  7 + "modifyNumber": 0,
  8 + "phone": "153****3615",
  9 + "status": 1,
  10 + "tenancy": 3,
  11 + "userExtend": {
  12 + "airec": 1,
  13 + "birthday": "1991-08-13",
  14 + "deviceId": "20065BDF-0E7C-4891-9F4A-85DA50A61F00",
  15 + "headBucketName": "",
  16 + "headPhotoUrl": "https://uatjdcdnphoto.aikan.pdnews.cn//zhbj/img/user/2024032614/900B80F379D94269AFF29AE815D25422.jpg",
  17 + "introduction": "唱、跳、rap",
  18 + "lastLoginTime": "2024-03-26 11:05:03",
  19 + "city": "安徽省 合肥市",
  20 + "sex": 1
  21 + },
  22 + "userName": "芒果",
  23 + "userNameStatus": 1,
  24 + "userType": 1
  25 + },
  26 + "message": "Success",
  27 + "success": true,
  28 + "timestamp": 1711434743663
  29 +}