xingzhaojie

Merge branch 'main' of http://192.168.1.42/developOne/harmonyPool into main

# Conflicts:
#	PeopleDaily_Harmony/entry/src/main/resources/base/profile/main_pages.json
#	PeopleDaily_Harmony/wdComponent/src/main/ets/Index.ets
#	PeopleDaily_Harmony/wdComponent/src/main/ets/components/page/MinePageComponent.ets
Showing 30 changed files with 961 additions and 341 deletions
  1 +import { AppointmentListUI} from 'wdComponent';
  2 +const TAG = "AppointmentListPage"
  3 +
  4 +@Entry
  5 +@Component
  6 +struct AppointmentListPage {
  7 +
  8 + build() {
  9 + Column(){
  10 + AppointmentListUI()
  11 + }
  12 + }
  13 +}
  1 +import { AboutPageUI} from 'wdComponent';
  2 +
  3 +@Entry
  4 +@Component
  5 +struct PrivacySettingPage {
  6 + build() {
  7 + Column(){
  8 + AboutPageUI()
  9 + }
  10 + }
  11 +}
  1 +import { AboutPageUI} from 'wdComponent';
  2 +
  3 +@Entry
  4 +@Component
  5 +struct PrivacySettingPage {
  6 + build() {
  7 + Column(){
  8 + AboutPageUI()
  9 + }
  10 + }
  11 +}
@@ -4,6 +4,9 @@ @@ -4,6 +4,9 @@
4 "pages/MainPage", 4 "pages/MainPage",
5 "pages/ColumnPage", 5 "pages/ColumnPage",
6 "pages/TestPage", 6 "pages/TestPage",
7 - "pages/SettingPage" 7 + "pages/SettingPage",
  8 + "pages/PrivacySettingPage",
  9 + "pages/SettingAboutPage",
  10 + "pages/AppointmentListPage"
8 ] 11 ]
9 -}  
  12 +}
@@ -29,3 +29,7 @@ export { BigPicCardComponent } from "./components/view/BigPicCardComponent" @@ -29,3 +29,7 @@ export { BigPicCardComponent } from "./components/view/BigPicCardComponent"
29 export { HeadPictureCardComponent } from "./components/view/HeadPictureCardComponent" 29 export { HeadPictureCardComponent } from "./components/view/HeadPictureCardComponent"
30 30
31 export { MineSettingComponent } from "./components/page/MineSettingComponent" 31 export { MineSettingComponent } from "./components/page/MineSettingComponent"
  32 +
  33 +export { AboutPageUI } from "./components/page/about/AboutPageUI"
  34 +
  35 +export { AppointmentListUI } from "./components/page/mine/AppointmentListUI"
@@ -2,11 +2,14 @@ import MinePagePersonalFunctionsItem from '../../viewmodel/MinePagePersonalFunct @@ -2,11 +2,14 @@ import MinePagePersonalFunctionsItem from '../../viewmodel/MinePagePersonalFunct
2 import MinePageCreatorFunctionsItem from '../../viewmodel/MinePageCreatorFunctionsItem' 2 import MinePageCreatorFunctionsItem from '../../viewmodel/MinePageCreatorFunctionsItem'
3 import MinePageMoreFunctionModel from '../../viewmodel/MinePageMoreFunctionModel' 3 import MinePageMoreFunctionModel from '../../viewmodel/MinePageMoreFunctionModel'
4 import MinePageDatasModel from '../../model/MinePageDatasModel' 4 import MinePageDatasModel from '../../model/MinePageDatasModel'
5 -import RouteManager from '../../utils/RouteManager' 5 +import MinePageUserSimpleInfoUI from '../page/mine/MinePageUserSimpleInfoUI'
  6 +import MinePagePersonFunctionUI from '../page/mine/MinePagePersonFunctionUI'
  7 +import MinePageCardUI from '../page/mine/MinePageCardUI'
  8 +import MinePageCreatorFunctionUI from '../page/mine/MinePageCreatorFunctionUI'
  9 +import MinePageMoreFunctionUI from '../page/mine/MinePageMoreFunctionUI'
6 10
7 const TAG = 'MinePageComponent'; 11 const TAG = 'MinePageComponent';
8 12
9 -  
10 /** 13 /**
11 * 我的页面 14 * 我的页面
12 */ 15 */
@@ -21,6 +24,8 @@ export struct MinePageComponent { @@ -21,6 +24,8 @@ export struct MinePageComponent {
21 scroller: Scroller = new Scroller() 24 scroller: Scroller = new Scroller()
22 25
23 aboutToAppear(){ 26 aboutToAppear(){
  27 + //登录信息 TODO
  28 +
24 this.getFunctionData() 29 this.getFunctionData()
25 } 30 }
26 31
@@ -35,16 +40,16 @@ export struct MinePageComponent { @@ -35,16 +40,16 @@ export struct MinePageComponent {
35 40
36 build() { 41 build() {
37 Scroll(this.scroller){ 42 Scroll(this.scroller){
38 - Flex({direction:FlexDirection.Column}){  
39 - Stack({alignContent:Alignment.Top}){  
40 - Image($r('app.media.mine_head_bg'))  
41 - .setFullWidth()  
42 - .height('657lpx')  
43 - .objectFit(ImageFit.Auto)  
44 - this.MinePageUI()  
45 - }  
46 - }.width('100%') 43 + Stack(){
  44 + Image($r('app.media.mine_head_bg'))
  45 + .width('100%')
  46 + .height('657lpx')
  47 + .objectFit(ImageFit.Auto)
  48 + this.MinePageUI()
  49 + }
  50 + .alignContent(Alignment.Top)
47 } 51 }
  52 + .setFullWidthAndHeight()
48 .backgroundColor($r('app.color.color_F9F9F9')) 53 .backgroundColor($r('app.color.color_F9F9F9'))
49 .scrollable(ScrollDirection.Vertical) 54 .scrollable(ScrollDirection.Vertical)
50 .scrollBar(BarState.Off) 55 .scrollBar(BarState.Off)
@@ -54,311 +59,17 @@ export struct MinePageComponent { @@ -54,311 +59,17 @@ export struct MinePageComponent {
54 @Builder MinePageUI(){ 59 @Builder MinePageUI(){
55 Column(){ 60 Column(){
56 //头像层 61 //头像层
57 - this.HeaderUI() 62 + MinePageUserSimpleInfoUI({isLogin:this.isLogin})
58 //Grid 区域 63 //Grid 区域
59 - this.GridUI() 64 + MinePagePersonFunctionUI({personalData:$personalData})
60 //Card 65 //Card
61 - this.CardUI() 66 + MinePageCardUI()
62 //创作者区域 67 //创作者区域
63 - this.ActiveUI()  
64 - //滑动区域  
65 - this.MoreFunctionUI()  
66 - }.setFullWidth()  
67 - }  
68 -  
69 - @Builder HeaderUI(){  
70 - Row(){  
71 - //头像  
72 - Stack(){  
73 - Button({type:ButtonType.Circle})  
74 - .backgroundColor($r('app.color.main_red'))  
75 - .width('110lpx')  
76 - .height('110lpx')  
77 - Image($r('app.media.mine_head_icon'))  
78 - .width('108lpx')  
79 - .height('108lpx')  
80 - .objectFit(ImageFit.Cover)  
81 - .borderRadius(50)  
82 - }.width('110lpx')  
83 - .height('110lpx')  
84 - .alignContent(Alignment.Center)  
85 - .onClick(()=>{  
86 - RouteManager.jumpNewPage("pages/TestPage")  
87 - })  
88 -  
89 - //昵称信息  
90 - Column(){  
91 - Row(){  
92 - Text("人民日报网友6G5E3T")  
93 - .fontColor($r('app.color.color_222222'))  
94 - .maxLines(1)  
95 - .textOverflow({ overflow: TextOverflow.Ellipsis })  
96 - .fontSize('33lpx')  
97 - .width('326lpx')  
98 - Image($r('app.media.mine_user_edit'))  
99 - .width('11lpx')  
100 - .height('20lpx')  
101 - .margin({left:'15lpx'})  
102 - .objectFit(ImageFit.Cover)  
103 - }.width('100%')  
104 -  
105 - Stack(){  
106 - Image($r('app.media.mine_grade_bg'))  
107 - .width('84lpx')  
108 - .height('29lpx')  
109 - .objectFit(ImageFit.Auto)  
110 - Text("等级8")  
111 - .textAlign(TextAlign.Center)  
112 - .fontColor($r('app.color.white'))  
113 - .fontSize('19lpx')  
114 - .width('50lpx')  
115 - .height('29lpx')  
116 - }.margin({top:'15lpx'})  
117 - }.alignItems(HorizontalAlign.Start)  
118 - .margin({top:'11lpx',left:'17lpx'})  
119 - .width('352lpx')  
120 -  
121 - Blank()  
122 -  
123 - Stack({alignContent:Alignment.Start}){  
124 - Text("签到")  
125 - .textAlign(TextAlign.Start)  
126 - .width('108lpx')  
127 - .height('46lpx')  
128 - .fontColor($r('app.color.color_AD6000'))  
129 - .backgroundColor($r('app.color.color_FFC460'))  
130 - .fontWeight(500)  
131 - .position({x:'23lpx'})  
132 - .padding({left:'35lpx'})  
133 - Image($r("app.media.mine_sign_icon"))  
134 - .width('50lpx')  
135 - .height('50lpx')  
136 - }.width('131lpx')  
137 - }.setBackGroundWhite()  
138 - .setFullWidth()  
139 - .padding({top:'31lpx',left:'46lpx'})  
140 - }  
141 -  
142 - @Builder GridUI(){  
143 - Grid(){  
144 - ForEach(this.personalData,(item:MinePagePersonalFunctionsItem,index:number)=>{  
145 - GridItem(){  
146 - Row(){  
147 - Column(){  
148 - Image(item.imgSrc)  
149 - .width('46lpx')  
150 - .height('46lpx')  
151 - Text(`${item.msg}`)  
152 - .margin({top:'8lpx'})  
153 - .width('50lpx')  
154 - .height('23lpx')  
155 - .fontColor($r('app.color.color_222222'))  
156 - .fontSize('23lpx')  
157 - }  
158 - .alignItems(HorizontalAlign.Center)  
159 - .width('100%')  
160 - Blank()  
161 - .layoutWeight(1)  
162 - if(index % 4 < 3 && index != this.personalData.length){  
163 - Text().backgroundColor($r('app.color.color_222222'))  
164 - .opacity(0.1)  
165 - .width('2lpx')  
166 - .height('29lpx')  
167 - }  
168 - }  
169 - }.onClick(()=>{  
170 - console.log(index+"")  
171 - }).width('169lpx')  
172 - .height('117lpx')  
173 - }, item => item)  
174 - }  
175 - .rowsTemplate('1fr 1fr')  
176 - .columnsTemplate('1fr 1fr 1fr 1fr')  
177 - .height('338lpx')  
178 - .margin({top:'31lpx',left:'23lpx',right:'23lpx' })  
179 - }  
180 -  
181 - @Builder ActiveUI(){  
182 - Column(){  
183 - Row(){  
184 - Text("创作者中心")  
185 - .fontSize('29lpx')  
186 - .width('148lpx')  
187 - .height('46lpx')  
188 - .fontColor($r('app.color.color_222222'))  
189 -  
190 - Blank()  
191 -  
192 - Row(){  
193 - Text("内容管理")  
194 - .fontSize('27lpx')  
195 - .width('113lpx')  
196 - .height('35lpx')  
197 - .fontColor($r('app.color.color_222222'))  
198 -  
199 - Image($r('app.media.mine_right_arrow'))  
200 - .width('27lpx')  
201 - .height('27lpx')  
202 - .objectFit(ImageFit.Auto)  
203 - }  
204 -  
205 - }.setFullWidth()  
206 - .height('92lpx')  
207 - .padding({left:'29lpx',top:'23lpx',right:'31lpx'})  
208 -  
209 - Row(){  
210 - Grid(){  
211 - ForEach(this.creatorData,(item:MinePageCreatorFunctionsItem,index:number)=>{  
212 - GridItem(){  
213 - Row(){  
214 - Column(){  
215 - Image(item.imgSrc)  
216 - .width('50lpx')  
217 - .height('50lpx')  
218 - Text(`${item.msg}`)  
219 - .margin({top:'15lpx'})  
220 - .width('96lpx')  
221 - .height('23lpx')  
222 - .fontColor($r('app.color.color_666666'))  
223 - .fontSize('23lpx')  
224 - }  
225 - .alignItems(HorizontalAlign.Center)  
226 - .width('100%')  
227 - Blank()  
228 - .layoutWeight(1)  
229 - if(index % 4 < 3 && index != this.creatorData.length){  
230 - Text().backgroundColor($r('app.color.color_222222'))  
231 - .opacity(0.1)  
232 - .width('2lpx')  
233 - .height('29lpx')  
234 - }  
235 - }  
236 - }.onClick(()=>{  
237 - console.log(index+"")  
238 - }).width('169lpx')  
239 - .height('117lpx')  
240 - }, item => item)  
241 - }  
242 - .rowsTemplate('1fr')  
243 - .columnsTemplate('1fr 1fr 1fr 1fr')  
244 - .height('88lpx')  
245 - }.setFullWidth()  
246 - .height('127lpx')  
247 - }  
248 - .height('219lpx')  
249 - .borderRadius(8)  
250 - .margin({top:'19lpx',left:'23lpx',right:'23lpx',bottom:'19lpx'})  
251 - .setBackGroundWhite()  
252 - }  
253 -  
254 - @Builder CardUI(){  
255 - Flex(){  
256 - Stack(){  
257 - Image($r('app.media.mine_card_01'))  
258 - .setFullWidthAndHeight()  
259 - .objectFit(ImageFit.Auto)  
260 - Column(){  
261 - Text("积分商城")  
262 - .fontColor($r('app.color.color_994D00'))  
263 - .width('119lpx')  
264 - .height('35lpx')  
265 - .textAlign(TextAlign.Start)  
266 - .fontSize('29lpx')  
267 - Text("华为MATE40手机")  
268 - .width('159lpx')  
269 - .height('23lpx')  
270 - .fontColor($r('app.color.color_FF2E0C'))  
271 - .fontSize('19lpx')  
272 - .textAlign(TextAlign.Start)  
273 - .margin({top:'10lpx'})  
274 - }.padding({left:'29lpx'})  
275 - .alignItems(HorizontalAlign.Start)  
276 - }.alignContent(Alignment.Start)  
277 - .width('345lpx')  
278 - .height('115lpx')  
279 68
280 - Stack(){  
281 - Image($r('app.media.mine_card_02'))  
282 - .setFullWidthAndHeight()  
283 - .objectFit(ImageFit.Auto)  
284 - Column(){  
285 - Text("数字藏品")  
286 - .fontColor($r('app.color.color_B15900'))  
287 - .width('119lpx')  
288 - .height('35lpx')  
289 - .textAlign(TextAlign.Start)  
290 - .fontSize('29lpx')  
291 - Text("黑胶唱片NFT")  
292 - .width('159lpx')  
293 - .height('23lpx')  
294 - .fontColor($r('app.color.color_B15900'))  
295 - .fontSize('19lpx')  
296 - .textAlign(TextAlign.Start)  
297 - .margin({top:'10lpx'})  
298 - }.padding({left:'67lpx'})  
299 - .alignItems(HorizontalAlign.Start)  
300 - }.alignContent(Alignment.Start)  
301 - .width('348lpx')  
302 - .height('115lpx')  
303 - }.setFullWidth()  
304 - .height('115lpx')  
305 - .setPadding()  
306 - }  
307 -  
308 - @Builder MoreFunctionUI(){  
309 - Column(){  
310 - List(){  
311 - ForEach(this.moreData,(item:MinePageMoreFunctionModel,index:number)=>{  
312 - ListItem(){  
313 - Column(){  
314 - Row(){  
315 - if(item.imgSrc){  
316 - Image(item.imgSrc)  
317 - .width('38lpx')  
318 - .height('38lpx')  
319 - .margin({right:'15lpx'})  
320 - }  
321 - Text(`${item.msg}`)  
322 - .margin({top:'8lpx'})  
323 - .width('456lpx')  
324 - .height('38lpx')  
325 - .fontColor($r('app.color.color_666666'))  
326 - .fontSize('29lpx')  
327 -  
328 - Blank()  
329 -  
330 - Image($r('app.media.mine_user_arrow'))  
331 - .width('27lpx')  
332 - .height('27lpx')  
333 - .objectFit(ImageFit.Auto)  
334 - .margin({left:'81lpx',right:'29lpx'})  
335 - }.alignItems(VerticalAlign.Center)  
336 - .justifyContent(FlexAlign.Start)  
337 -  
338 - if(index != this.moreData.length -1 ){  
339 - Text().backgroundColor($r('app.color.color_F5F5F5'))  
340 - .opacity(0.1)  
341 - .width('612lpx')  
342 - .height('2lpx')  
343 - }  
344 - }.height(index === 0 ? '92lpx':'108lpx')  
345 - }.padding({left:'27lpx'})  
346 - .onClick(()=>{  
347 - console.log(index+"")  
348 - if (index == 4) {  
349 - RouteManager.jumpNewPage("pages/SettingPage") // 调用跳转方法,跳转新页面  
350 - }  
351 - })  
352 - .height('117lpx')  
353 - }, item => item)  
354 - }.onScrollFrameBegin((offset, state) => {  
355 - return { offsetRemain: 0 }  
356 - })  
357 - }  
358 - .setBackGroundWhite()  
359 - .backgroundColor($r('app.color.white'))  
360 - .setMargining()  
361 - .borderRadius(8) 69 + MinePageCreatorFunctionUI({creatorData:$creatorData})
  70 + //更多功能
  71 + MinePageMoreFunctionUI({moreData:$moreData})
  72 + }.width('100%')
362 } 73 }
363 74
364 @Styles setFullWidthAndHeight(){ 75 @Styles setFullWidthAndHeight(){
@@ -366,26 +77,4 @@ export struct MinePageComponent { @@ -366,26 +77,4 @@ export struct MinePageComponent {
366 .height('100%') 77 .height('100%')
367 } 78 }
368 79
369 - @Styles setFullWidth(){  
370 - .width('100%')  
371 - }  
372 -  
373 - @Styles setFullHeight(){  
374 - .height('100%')  
375 - }  
376 -  
377 - @Styles setPadding(){  
378 - .padding({left:'23lpx',right:'23lpx'})  
379 - }  
380 - @Styles setMargining(){  
381 - .margin({left:'23lpx',right:'23lpx'})  
382 - }  
383 -  
384 - @Styles setBackGroundWhite(){  
385 - .backgroundColor($r('app.color.white'))  
386 - }  
387 -  
388 -  
389 -  
390 } 80 }
391 -  
@@ -161,7 +161,7 @@ export struct MineSettingComponent { @@ -161,7 +161,7 @@ export struct MineSettingComponent {
161 161
162 // 右侧文案和右箭头 162 // 右侧文案和右箭头
163 Row() { 163 Row() {
164 - Text((index == 0 && mainIndex != 0) ? this.cacheSice.toString() + 'MB' : '') 164 + Text((index == 0 && mainIndex != 0) ? this.cacheSice.toFixed(2) + 'MB' : '')
165 .fontColor('#999999') 165 .fontColor('#999999')
166 .maxLines(1) 166 .maxLines(1)
167 Image($r('app.media.mine_user_arrow')) 167 Image($r('app.media.mine_user_arrow'))
  1 +const TAG = 'AboutPageUI';
  2 +
  3 +@Component
  4 +export struct AboutPageUI {
  5 + @State message: string = '京ICP备16066560号-6A Copyright © 人民日报客户端\nall rights reserved.'
  6 + @State version: string = '版本号:v8.0.1.1'
  7 +
  8 +
  9 + build() {
  10 + Column() {
  11 + Image($r('app.media.setting_about_logo'))
  12 + .width('278lpx')
  13 + .height('154lpx')
  14 + .margin({top:'173lpx',bottom:'154lpx'})
  15 +
  16 + Row(){
  17 +
  18 + }.backgroundColor(Color.Yellow)
  19 + .width('100%')
  20 + .height('97lpx')
  21 +
  22 + Row(){
  23 +
  24 + }.backgroundColor(Color.Yellow)
  25 + .width('100%')
  26 + .height('97lpx')
  27 +
  28 + Blank()
  29 +
  30 + Image($r('app.media.app_icon'))
  31 + .width('192lpx')
  32 + .height('192lpx')
  33 +
  34 + Text(this.version)
  35 + .fontSize('25lpx')
  36 + .textAlign(TextAlign.Center)
  37 + .fontColor($r("app.color.color_666666"))
  38 + .margin({bottom:'31lpx'})
  39 +
  40 + Text(this.message)
  41 + .fontSize('19lpx')
  42 + .textAlign(TextAlign.Center)
  43 + .fontColor($r("app.color.color_999999"))
  44 + .margin({bottom:'35lpx'})
  45 + }
  46 + .width('100%')
  47 + .height('100%')
  48 + }
  49 +}
  1 +import { MineAppointmentItem } from '../../../viewmodel/MineAppointmentItem'
  2 +
  3 +@Component
  4 +export struct AppointmentListChildComponent{
  5 + @ObjectLink item: MineAppointmentItem
  6 +
  7 + build() {
  8 + Column(){
  9 + Stack(){
  10 + Image(this.item?.imageUrl[0])
  11 + .objectFit(ImageFit.Auto)
  12 +
  13 + if(this.item.relType === 1){
  14 + Row(){
  15 + Row(){
  16 + Image($r('app.media.reserve_icon'))
  17 + .width('42lpx')
  18 + .height('35lpx')
  19 + .objectFit(ImageFit.Auto)
  20 + Text("预约")
  21 + .fontWeight(400)
  22 + .fontSize('21lpx')
  23 + .backgroundColor($r('app.color.color_4D000000'))
  24 + .fontColor($r('app.color.white'))
  25 + .lineHeight('31lpx')
  26 + .layoutWeight(1)
  27 + .textAlign(TextAlign.Center)
  28 + }.width('94lpx')
  29 + .margin({bottom:'15lpx',right:'15lpx'})
  30 + }.width('100%')
  31 + .height('100%')
  32 + .alignItems(VerticalAlign.Bottom)
  33 + .justifyContent(FlexAlign.End)
  34 + }
  35 + }.width('100%')
  36 + .height('376lpx')
  37 +
  38 + Column(){
  39 + Text(this.item.title)
  40 + .fontWeight('400lpx')
  41 + .fontSize('33lpx')
  42 + .fontColor($r('app.color.color_222222'))
  43 + .lineHeight('48lpx')
  44 + .maxLines(2)
  45 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  46 + .margin({bottom:'23lpx'})
  47 + .textAlign(TextAlign.Start)
  48 + .width('100%')
  49 + Row(){
  50 + Row(){
  51 + if(this.item.relType === 2){
  52 + Image($r('app.media.play_status_history_icon'))
  53 + .objectFit(ImageFit.Auto)
  54 + .width('38lpx')
  55 + .height('38lpx')
  56 + .margin({right:'12lpx'})
  57 + Text('已结束').fontColor($r('app.color.color_999999'))
  58 + .fontWeight('500lpx')
  59 + .fontSize('23lpx')
  60 + }else {
  61 + Image($r('app.media.play_status_icon'))
  62 + .objectFit(ImageFit.Auto)
  63 + .width('38lpx')
  64 + .height('38lpx')
  65 + .margin({right:'12lpx'})
  66 + Text(this.item.timePre).fontColor($r('app.color.color_ED2800'))
  67 + .fontWeight('500lpx')
  68 + .fontSize('23lpx')
  69 + Image($r('app.media.point_icon'))
  70 + .objectFit(ImageFit.Auto)
  71 + .width('12lpx')
  72 + .height('31lpx')
  73 + .margin({right:'4lpx'})
  74 + Text(`${this.item.timeBack}开始`).fontColor($r('app.color.color_ED2800'))
  75 + .fontWeight('500lpx')
  76 + .fontSize('23lpx')
  77 + .lineHeight('31lpx')
  78 + }
  79 + }.padding({left:'19lpx',right:'19lpx'})
  80 + .height('46lpx')
  81 + .alignItems(VerticalAlign.Center)
  82 + .backgroundColor($r('app.color.color_F5F5F5'))
  83 + .borderRadius('4lpx')
  84 + Blank()
  85 + .layoutWeight(1)
  86 + if(this.item.relType === 1){
  87 + Text(this.item.isAppointment?"已预约":"预约")
  88 + .fontWeight(400)
  89 + .fontSize('23lpx')
  90 + .backgroundColor(this.item.isAppointment?$r('app.color.color_F5F5F5'):$r('app.color.color_ED2800'))
  91 + .fontColor(this.item.isAppointment?$r('app.color.color_CCCCCC'):$r('app.color.white'))
  92 + .lineHeight('31lpx')
  93 + .textAlign(TextAlign.Center)
  94 + .width('100lpx')
  95 + .height('46lpx')
  96 + .borderRadius('6lpx')
  97 + .onClick(()=>{
  98 + this.item.isAppointment = !this.item.isAppointment
  99 + //TODO 预约动作
  100 + })
  101 + }else {
  102 + Text(this.item.relType === 2?"去观看":"看回放")
  103 + .fontWeight(400)
  104 + .fontSize('23lpx')
  105 + .backgroundColor($r('app.color.color_ED2800'))
  106 + .fontColor($r('app.color.white'))
  107 + .lineHeight('31lpx')
  108 + .textAlign(TextAlign.Center)
  109 + .width('100lpx')
  110 + .height('46lpx')
  111 + .borderRadius('6lpx')
  112 + }
  113 + }
  114 + }
  115 + .padding({left:'23lpx',right:'23lpx',top:'15lpx',bottom:'23lpx'})
  116 + }.margin({ left: 10, right: 10 })
  117 + .backgroundColor($r('app.color.white'))
  118 + .borderRadius('8lpx')
  119 + }
  120 +}
  1 +import { AppointmentListChildComponent } from '../mine/AppointmentListChildComponent';
  2 +import { CustomTitleUI } from '../../reusable/CustomTitleUI'
  3 +import { ListHasNoMoreDataUI } from '../../reusable/ListHasNoMoreDataUI';
  4 +import { MineAppointmentItem } from '../../../viewmodel/MineAppointmentItem';
  5 +import { LazyDataSource, StringUtils } from 'wdKit';
  6 +import MinePageDatasModel from '../../../model/MinePageDatasModel';
  7 +const TAG = "AppointmentListUI"
  8 +
  9 +@Component
  10 +export struct AppointmentListUI{
  11 + @State data: LazyDataSource<MineAppointmentItem> = new LazyDataSource();
  12 + @State isLoading:boolean = false
  13 + @State hasMore:boolean = true
  14 + curPageNum:number = 1;
  15 +
  16 + aboutToAppear() {
  17 + this.getNewPageData()
  18 + }
  19 +
  20 + build() {
  21 + Column() {
  22 + //标题栏目
  23 + CustomTitleUI({titleName:"预约列表"})
  24 + //刷新控件 TODO
  25 + //List
  26 + List({ space: '6lpx' }) {
  27 + LazyForEach(this.data, (item: MineAppointmentItem, index: number) => {
  28 + ListItem() {
  29 + AppointmentListChildComponent({item:item})
  30 + }
  31 + .onClick(()=>{
  32 + //TODO 跳转
  33 + })
  34 + }, (item: MineAppointmentItem, index: number) => index.toString())
  35 +
  36 + //没有更多数据 显示提示
  37 + if(!this.hasMore){
  38 + ListItem(){
  39 + ListHasNoMoreDataUI()
  40 + }
  41 + }
  42 + }.cachedCount(4)
  43 + .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 + })
  52 + }
  53 + .backgroundColor($r('app.color.color_F9F9F9'))
  54 + .height('100%')
  55 + .width('100%')
  56 + }
  57 +
  58 + getNewPageData(){
  59 + this.isLoading = true
  60 + if(this.hasMore){
  61 + MinePageDatasModel.getAppointmentListData("20",`${this.curPageNum}`).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++
  76 + }else {
  77 + this.hasMore = false
  78 + }
  79 + }
  80 + })
  81 + }
  82 + this.isLoading = false
  83 + }
  84 +
  85 + DealStartTime(planStartTime:string):string[]{
  86 + let dealData:string[] = []
  87 +
  88 + if(!StringUtils.isNotEmpty(planStartTime)){
  89 + console.log(TAG,"格式有误")
  90 + return dealData
  91 + }
  92 +
  93 + if(planStartTime.indexOf(" ") === -1){
  94 + console.log(TAG,"格式有误")
  95 + return dealData
  96 + }
  97 + let arr = planStartTime.split(" ")
  98 + if(arr!=null && StringUtils.isNotEmpty(arr[0])){ //处理年月日
  99 + let time = arr[0].split("-");
  100 + if(time.length === 3){
  101 + let month = time[1].indexOf("0") === 0 ? time[1].substring(1):time[1]
  102 + let day = time[2]
  103 +
  104 + dealData[0] = `${month}月${day}日`
  105 + let today = `${new Date().getMonth()+1}月${new Date().getDate()}日`
  106 + if(dealData[0] === today){
  107 + dealData[0] = "今日"
  108 + }
  109 + }
  110 + }
  111 +
  112 + if(arr!=null && StringUtils.isNotEmpty(arr[1])){ //处理时分
  113 + let time = arr[1].split(":");
  114 + if(time.length === 3){
  115 + dealData[1] = `${time[0]}:${time[1]}`
  116 + }
  117 + }
  118 + console.log(TAG,JSON.stringify(dealData))
  119 + return dealData
  120 + }
  121 +}
  1 +@Component
  2 +export default struct MinePageCardUI {
  3 + build(){
  4 + Flex(){
  5 + Stack(){
  6 + Image($r('app.media.mine_card_01'))
  7 + .setFullWidthAndHeight()
  8 + .objectFit(ImageFit.Auto)
  9 + Column(){
  10 + Text("积分商城")
  11 + .fontColor($r('app.color.color_994D00'))
  12 + .width('119lpx')
  13 + .height('35lpx')
  14 + .textAlign(TextAlign.Start)
  15 + .fontSize('29lpx')
  16 + .fontWeight(600)
  17 + Text("华为MATE40手机")
  18 + .width('159lpx')
  19 + .height('23lpx')
  20 + .fontColor($r('app.color.color_994D00'))
  21 + .fontSize('19lpx')
  22 + .fontWeight(400)
  23 + .textAlign(TextAlign.Start)
  24 + .margin({top:'10lpx'})
  25 + }.padding({left:'29lpx'})
  26 + .alignItems(HorizontalAlign.Start)
  27 + }.alignContent(Alignment.Start)
  28 + .width('349lpx')
  29 + .height('115lpx')
  30 +
  31 + Stack(){
  32 + Image($r('app.media.mine_card_02'))
  33 + .setFullWidthAndHeight()
  34 + .objectFit(ImageFit.Auto)
  35 + Column(){
  36 + Text("数字藏品")
  37 + .fontColor($r('app.color.color_B15900'))
  38 + .width('119lpx')
  39 + .height('35lpx')
  40 + .textAlign(TextAlign.Start)
  41 + .fontSize('29lpx')
  42 + .fontWeight(600)
  43 + Text("黑胶唱片NFT")
  44 + .width('159lpx')
  45 + .height('23lpx')
  46 + .fontColor($r('app.color.color_B15900'))
  47 + .fontSize('19lpx')
  48 + .textAlign(TextAlign.Start)
  49 + .margin({top:'10lpx'})
  50 + .fontWeight(400)
  51 + }.padding({left:'67lpx'})
  52 + .alignItems(HorizontalAlign.Start)
  53 + }.alignContent(Alignment.Start)
  54 + .width('348lpx')
  55 + .height('115lpx')
  56 + }.setFullWidth()
  57 + .height('115lpx')
  58 + .padding({left:'23lpx',right:'23lpx'})
  59 + .margin({top:'24lpx'})
  60 + }
  61 +
  62 + @Styles setFullWidthAndHeight(){
  63 + .width('100%')
  64 + .height('100%')
  65 + }
  66 +
  67 + @Styles setFullWidth(){
  68 + .width('100%')
  69 + }
  70 +
  71 + @Styles setFullHeight(){
  72 + .height('100%')
  73 + }
  74 +}
  1 +import MinePageCreatorFunctionsItem from '../../../viewmodel/MinePageCreatorFunctionsItem'
  2 +
  3 +@Component
  4 +export default struct MinePageCreatorFunctionUI {
  5 + @Link creatorData:MinePageCreatorFunctionsItem[]
  6 +
  7 + build(){
  8 + Column(){
  9 + Row(){
  10 + Text("创作者中心")
  11 + .fontSize('29lpx')
  12 + .width('148lpx')
  13 + .height('46lpx')
  14 + .fontWeight(600)
  15 + .fontColor($r('app.color.color_222222'))
  16 +
  17 + Blank()
  18 +
  19 + Row(){
  20 + Text("内容管理")
  21 + .fontSize('27lpx')
  22 + .width('113lpx')
  23 + .height('35lpx')
  24 + .fontColor($r('app.color.color_999999'))
  25 +
  26 + Image($r('app.media.mine_right_arrow'))
  27 + .width('27lpx')
  28 + .height('27lpx')
  29 + .objectFit(ImageFit.Auto)
  30 + }
  31 +
  32 + }.setFullWidth()
  33 + .height('92lpx')
  34 + .padding({left:'29lpx',top:'23lpx',right:'31lpx'})
  35 +
  36 + Row(){
  37 + Grid(){
  38 + ForEach(this.creatorData,(item:MinePageCreatorFunctionsItem,index:number)=>{
  39 + GridItem(){
  40 + Row(){
  41 + Column(){
  42 + Image(item.imgSrc)
  43 + .width('50lpx')
  44 + .height('50lpx')
  45 + Text(`${item.msg}`)
  46 + .margin({top:'15lpx'})
  47 + .width('96lpx')
  48 + .height('23lpx')
  49 + .fontColor($r('app.color.color_666666'))
  50 + .fontSize('23lpx')
  51 + }
  52 + .alignItems(HorizontalAlign.Center)
  53 + .width('100%')
  54 + Blank()
  55 + .layoutWeight(1)
  56 + if(index % 4 < 3 && index != this.creatorData.length){
  57 + Text().backgroundColor($r('app.color.color_222222'))
  58 + .opacity(0.1)
  59 + .width('2lpx')
  60 + .height('29lpx')
  61 + }
  62 + }
  63 + }.onClick(()=>{
  64 + console.log(index+"")
  65 + }).width('169lpx')
  66 + .height('117lpx')
  67 + }, item => item)
  68 + }
  69 + .rowsTemplate('1fr')
  70 + .columnsTemplate('1fr 1fr 1fr 1fr')
  71 + .height('88lpx')
  72 + }.setFullWidth()
  73 + .height('127lpx')
  74 + }
  75 + .height('219lpx')
  76 + .borderRadius(8)
  77 + .margin({top:'19lpx',left:'23lpx',right:'23lpx'})
  78 + .setBackGroundWhite()
  79 + }
  80 +
  81 + @Styles setFullWidthAndHeight(){
  82 + .width('100%')
  83 + .height('100%')
  84 + }
  85 +
  86 + @Styles setFullWidth(){
  87 + .width('100%')
  88 + }
  89 +
  90 + @Styles setFullHeight(){
  91 + .height('100%')
  92 + }
  93 +
  94 + @Styles setBackGroundWhite(){
  95 + .backgroundColor($r('app.color.white'))
  96 + }
  97 +}
  1 +import MinePageMoreFunctionModel from '../../../viewmodel/MinePageMoreFunctionModel'
  2 +import RouteManager from '../../../utils/RouteManager'
  3 +
  4 +@Component
  5 +export default struct MinePageMoreFunctionUI{
  6 + @Link moreData:MinePageMoreFunctionModel[]
  7 +
  8 + build(){
  9 + Column(){
  10 + Column(){
  11 + Text(`更多功能`)
  12 + .width('456lpx')
  13 + .height('38lpx')
  14 + .fontColor($r('app.color.color_666666'))
  15 + .fontSize('29lpx')
  16 + .margin({left:"31lpx"})
  17 + .fontWeight(600)
  18 + }.height('92lpx')
  19 + .width('100%')
  20 + .justifyContent(FlexAlign.Center)
  21 + .alignItems(HorizontalAlign.Start)
  22 +
  23 + Text().backgroundColor($r('app.color.color_F5F5F5'))
  24 + .width('100%')
  25 + .height('1lpx')
  26 +
  27 + List(){
  28 + ForEach(this.moreData,(item:MinePageMoreFunctionModel,index:number)=>{
  29 + ListItem(){
  30 + Column(){
  31 + Column(){
  32 + Row(){
  33 + if(item.imgSrc){
  34 + Image(item.imgSrc)
  35 + .width('38lpx')
  36 + .height('38lpx')
  37 + .margin({right:'15lpx'})
  38 + }
  39 + Text(`${item.msg}`)
  40 + .width('456lpx')
  41 + .height('38lpx')
  42 + .fontColor($r('app.color.color_666666'))
  43 + .fontSize('29lpx')
  44 + .fontWeight(400)
  45 +
  46 + Blank()
  47 + Image($r('app.media.mine_user_arrow'))
  48 + .width('27lpx')
  49 + .height('27lpx')
  50 + .objectFit(ImageFit.Auto)
  51 + .margin({left:'81lpx',right:'29lpx'})
  52 + }.alignItems(VerticalAlign.Center)
  53 + .justifyContent(FlexAlign.Center)
  54 + }.height('108lpx')
  55 + .justifyContent(FlexAlign.Center)
  56 + .alignItems(HorizontalAlign.Start)
  57 + .padding({left:'27lpx'})
  58 +
  59 + if(index != this.moreData.length -1 ){
  60 + Text().backgroundColor($r('app.color.color_F5F5F5'))
  61 + .width('612lpx')
  62 + .height('1lpx')
  63 + }
  64 + }
  65 + }
  66 + .onClick(()=>{
  67 + console.log(index+"")
  68 + if (index == 3) {
  69 + RouteManager.jumpNewPage("pages/SettingPage")
  70 + } else {
  71 + RouteManager.jumpNewPage("pages/PrivacySettingPage")
  72 + }
  73 + })
  74 + .height('117lpx')
  75 + }, item => item)
  76 + }.onScrollFrameBegin((offset, state) => {
  77 + return { offsetRemain: 0 }
  78 + })
  79 + }
  80 + .backgroundColor($r('app.color.white'))
  81 + .borderRadius(8)
  82 + .margin({left:'23lpx',right:'23lpx',top:"19lpx"})
  83 + }
  84 +}
  1 +
  2 +import RouteManager from '../../../utils/RouteManager'
  3 +import MinePagePersonalFunctionsItem from '../../../viewmodel/MinePagePersonalFunctionsItem'
  4 +
  5 +@Component
  6 +export default struct MinePagePersonFunctionUI {
  7 + @Link personalData:MinePagePersonalFunctionsItem[]
  8 +
  9 + build() {
  10 + Grid(){
  11 + ForEach(this.personalData,(item:MinePagePersonalFunctionsItem,index:number)=>{
  12 + GridItem(){
  13 + Row(){
  14 + Column(){
  15 + Image(item.imgSrc)
  16 + .width('46lpx')
  17 + .height('46lpx')
  18 + Text(`${item.msg}`)
  19 + .margin({top:'8lpx'})
  20 + .width('50lpx')
  21 + .height('23lpx')
  22 + .fontColor($r('app.color.color_222222'))
  23 + .fontSize('23lpx')
  24 + }
  25 + .alignItems(HorizontalAlign.Center)
  26 + .width('100%')
  27 + Blank()
  28 + .layoutWeight(1)
  29 + if(index % 4 < 3 && index != this.personalData.length-1){
  30 + Text().backgroundColor($r('app.color.color_222222'))
  31 + .opacity(0.1)
  32 + .width('2lpx')
  33 + .height('29lpx')
  34 + }
  35 + }
  36 + }.onClick(()=>{
  37 + console.log(index+"")
  38 + switch (item.msg){
  39 + case "预约":{
  40 + RouteManager.jumpNewPage("pages/AppointmentListPage")
  41 + break;
  42 + }
  43 + }
  44 + }).width('169lpx')
  45 + .height('117lpx')
  46 + }, item => item)
  47 + }
  48 + .rowsTemplate('1fr 1fr')
  49 + .columnsTemplate('1fr 1fr 1fr 1fr')
  50 + .height('234lpx')
  51 + .margin({top:'31lpx',left:'23lpx',right:'23lpx' })
  52 + }
  53 +}
  1 +import RouteManager from '../../../utils/RouteManager'
  2 +
  3 +@Component
  4 +export default struct MinePageUserSimpleInfoUI {
  5 + @Prop isLogin:boolean
  6 +
  7 + build(){
  8 + Row(){
  9 + //头像
  10 + Stack(){
  11 + Button({type:ButtonType.Circle})
  12 + .backgroundColor($r('app.color.main_red'))
  13 + .width('110lpx')
  14 + .height('110lpx')
  15 + Image($r('app.media.mine_head_icon'))
  16 + .width('108lpx')
  17 + .height('108lpx')
  18 + .objectFit(ImageFit.Cover)
  19 + .borderRadius(50)
  20 + }.width('110lpx')
  21 + .height('110lpx')
  22 + .alignContent(Alignment.Center)
  23 + .onClick(()=>{
  24 + RouteManager.jumpNewPage("pages/TestPage")
  25 + })
  26 +
  27 + if(this.isLogin){
  28 + //昵称信息
  29 + Column(){
  30 + Row(){
  31 + Text("人民日报6G5E3T")
  32 + .fontColor($r('app.color.color_222222'))
  33 + .maxLines(1)
  34 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  35 + .fontSize('33lpx')
  36 +
  37 + Image($r('app.media.mine_user_edit'))
  38 + .width('27lpx')
  39 + .height('27lpx')
  40 + .margin({left:'15lpx'})
  41 + .objectFit(ImageFit.Cover)
  42 + Blank()
  43 + }.width('100%')
  44 +
  45 + Stack(){
  46 + Image($r('app.media.mine_grade_bg'))
  47 + .width('84lpx')
  48 + .height('29lpx')
  49 + .objectFit(ImageFit.Auto)
  50 + Text("等级8")
  51 + .textAlign(TextAlign.Center)
  52 + .fontColor($r('app.color.white'))
  53 + .fontSize('19lpx')
  54 + .width('50lpx')
  55 + .height('29lpx')
  56 + }.margin({top:'15lpx'})
  57 + }.alignItems(HorizontalAlign.Start)
  58 + .margin({top:'12lpx',left:'17lpx'})
  59 + .width('352lpx')
  60 + }else{
  61 + Row(){
  62 + Text("登录注册")
  63 + .fontColor($r('app.color.color_222222'))
  64 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  65 + .fontSize('33lpx')
  66 +
  67 + Image($r('app.media.mine_user_edit'))
  68 + .width('11lpx')
  69 + .height('20lpx')
  70 + .margin({left:'15lpx'})
  71 + .objectFit(ImageFit.Cover)
  72 + Blank()
  73 + }
  74 + .margin({top:'11lpx',left:'17lpx'})
  75 + .width('352lpx')
  76 + }
  77 +
  78 + Blank()
  79 +
  80 + Stack({alignContent:Alignment.Start}){
  81 + Text("签到")
  82 + .textAlign(TextAlign.Start)
  83 + .width('108lpx')
  84 + .height('46lpx')
  85 + .fontColor($r('app.color.color_AD6000'))
  86 + .backgroundColor($r('app.color.color_FFC460'))
  87 + .fontWeight(500)
  88 + .position({x:'23lpx'})
  89 + .padding({left:'35lpx'})
  90 + Image($r("app.media.mine_sign_icon"))
  91 + .width('50lpx')
  92 + .height('50lpx')
  93 + }.width('131lpx')
  94 + }.backgroundColor($r('app.color.white'))
  95 + .setFullWidth()
  96 + .padding({top:'31lpx',left:'46lpx'})
  97 + }
  98 +
  99 + @Styles setFullWidthAndHeight(){
  100 + .width('100%')
  101 + .height('100%')
  102 + }
  103 +
  104 + @Styles setFullWidth(){
  105 + .width('100%')
  106 + }
  107 +
  108 + @Styles setFullHeight(){
  109 + .height('100%')
  110 + }
  111 +}
  1 +import router from '@ohos.router'
  2 +@Component
  3 +export struct CustomTitleUI {
  4 + imgBack:boolean = true
  5 + titleName:string = "默认标题"
  6 +
  7 + build() {
  8 + RelativeContainer() {
  9 + //标题栏目
  10 + if(this.imgBack){
  11 + Image($r('app.media.back_icon'))
  12 + .width('46lpx')
  13 + .height('46lpx')
  14 + .objectFit(ImageFit.Auto)
  15 + .id("back_icon")
  16 + .alignRules({
  17 + center: {anchor: "__container__", align: VerticalAlign.Center},
  18 + left: {anchor: "__container__", align: HorizontalAlign.Start}
  19 + })
  20 + .margin({left:'31lpx'})
  21 + .onClick(()=>{
  22 + router.back()
  23 + })
  24 + }
  25 +
  26 + Text(this.titleName)
  27 + .height('42lpx')
  28 + .maxLines(1)
  29 + .id("title")
  30 + .fontSize('35lpx')
  31 + .fontWeight(400)
  32 + .fontColor($r('app.color.color_222222'))
  33 + .lineHeight('42lpx')
  34 + .alignRules({
  35 + center: {anchor: "__container__", align: VerticalAlign.Center},
  36 + middle: {anchor: "__container__", align: HorizontalAlign.Center}
  37 + })
  38 + }
  39 + .height('84lpx')
  40 + .width('100%')
  41 + .backgroundColor($r('app.color.white'))
  42 +
  43 + }
  44 +}
  1 +@Component
  2 +export struct ListHasNoMoreDataUI{
  3 + build(){
  4 + Row(){
  5 + Text("已显示全部内容")
  6 + .fontColor($r('app.color.color_999999'))
  7 + .fontWeight('500lpx')
  8 + .fontSize('23lpx')
  9 + }.justifyContent(FlexAlign.Center)
  10 + .width('100%')
  11 + .margin({top:'20lpx',bottom:'20lpx'})
  12 + }
  13 +}
@@ -2,6 +2,12 @@ @@ -2,6 +2,12 @@
2 import MinePagePersonalFunctionsItem from '../viewmodel/MinePagePersonalFunctionsItem' 2 import MinePagePersonalFunctionsItem from '../viewmodel/MinePagePersonalFunctionsItem'
3 import MinePageCreatorFunctionsItem from '../viewmodel/MinePageCreatorFunctionsItem' 3 import MinePageCreatorFunctionsItem from '../viewmodel/MinePageCreatorFunctionsItem'
4 import MinePageMoreFunctionModel from '../viewmodel/MinePageMoreFunctionModel'; 4 import MinePageMoreFunctionModel from '../viewmodel/MinePageMoreFunctionModel';
  5 +import { HttpUrlUtils } from '../network/HttpUrlUtils';
  6 +import HashMap from '@ohos.util.HashMap';
  7 +import { ResponseDTO, WDHttp } from 'wdNetwork';
  8 +import { MineAppointmentListItem } from '../viewmodel/MineAppointmentListItem';
  9 +import { Logger } from 'wdKit';
  10 +const TAG = "MinePageDatasModel"
5 11
6 /** 12 /**
7 * 我的页面 所有数据 获取封装类 13 * 我的页面 所有数据 获取封装类
@@ -12,7 +18,6 @@ class MinePageDatasModel{ @@ -12,7 +18,6 @@ class MinePageDatasModel{
12 creatorData:MinePageCreatorFunctionsItem[] = [] 18 creatorData:MinePageCreatorFunctionsItem[] = []
13 moreData:MinePageMoreFunctionModel[] = [] 19 moreData:MinePageMoreFunctionModel[] = []
14 20
15 -  
16 private constructor() { } 21 private constructor() { }
17 22
18 /** 23 /**
@@ -64,14 +69,13 @@ class MinePageDatasModel{ @@ -64,14 +69,13 @@ class MinePageDatasModel{
64 } 69 }
65 70
66 /** 71 /**
67 - * 更多功能 扫一扫 我的奖品 等6个数据 72 + * 扫一扫 我的奖品 等5个数据
68 * 包含名字和图标 73 * 包含名字和图标
69 */ 74 */
70 getMoreFunctionsData():MinePageCreatorFunctionsItem[]{ 75 getMoreFunctionsData():MinePageCreatorFunctionsItem[]{
71 - if(this.moreData.length === 6){ 76 + if(this.moreData.length === 5){
72 return this.moreData 77 return this.moreData
73 } 78 }
74 - this.moreData.push(new MinePageMoreFunctionModel("更多功能",null))  
75 this.moreData.push(new MinePageMoreFunctionModel("扫一扫",$r('app.media.mine_scan'))) 79 this.moreData.push(new MinePageMoreFunctionModel("扫一扫",$r('app.media.mine_scan')))
76 this.moreData.push(new MinePageMoreFunctionModel("我的奖品",$r('app.media.mine_mygift'))) 80 this.moreData.push(new MinePageMoreFunctionModel("我的奖品",$r('app.media.mine_mygift')))
77 this.moreData.push(new MinePageMoreFunctionModel("意见反馈",$r('app.media.mine_suggest'))) 81 this.moreData.push(new MinePageMoreFunctionModel("意见反馈",$r('app.media.mine_suggest')))
@@ -80,6 +84,29 @@ class MinePageDatasModel{ @@ -80,6 +84,29 @@ class MinePageDatasModel{
80 return this.moreData 84 return this.moreData
81 } 85 }
82 86
  87 + fetchAppointmentListData(pageSize:string,pageNum:string) {
  88 + let url = HttpUrlUtils.getAppointmentListDataUrl()+ `?pageSize=${pageSize}&pageNum=${pageNum}`
  89 + let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
  90 + return WDHttp.get<ResponseDTO<MineAppointmentListItem>>(url, headers)
  91 + };
  92 +
  93 + getAppointmentListData(pageSize:string,pageNum:string): Promise<MineAppointmentListItem> {
  94 + return new Promise<MineAppointmentListItem>((success, error) => {
  95 + Logger.info(TAG, `getAppointmentList start`);
  96 + this.fetchAppointmentListData(pageSize,pageNum).then((navResDTO: ResponseDTO<MineAppointmentListItem>) => {
  97 + if (!navResDTO) {
  98 + error("page data invalid");
  99 + return
  100 + }
  101 + Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  102 + let navigationBean = navResDTO.data
  103 + success(navigationBean);
  104 + }).catch((err: Error) => {
  105 + Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name}, error.message:${err.message}`);
  106 + error(err);
  107 + })
  108 + })
  109 + }
83 110
84 } 111 }
85 112
@@ -39,6 +39,11 @@ export class HttpUrlUtils { @@ -39,6 +39,11 @@ export class HttpUrlUtils {
39 * 批查接口,查询互动相关数据,如收藏数、评论数等 39 * 批查接口,查询互动相关数据,如收藏数、评论数等
40 */ 40 */
41 static readonly INTERACT_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/content/interactData"; 41 static readonly INTERACT_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/content/interactData";
  42 + /**
  43 + * 个人中心 我的预约列表
  44 + */
  45 + static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe";
  46 +
42 private static hostUrl: string = HttpUrlUtils.HOST_UAT; 47 private static hostUrl: string = HttpUrlUtils.HOST_UAT;
43 48
44 static getCommonHeaders(): HashMap<string, string> { 49 static getCommonHeaders(): HashMap<string, string> {
@@ -78,6 +83,44 @@ export class HttpUrlUtils { @@ -78,6 +83,44 @@ export class HttpUrlUtils {
78 return headers; 83 return headers;
79 } 84 }
80 85
  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 +
81 static getHost() { 124 static getHost() {
82 return this.hostUrl; 125 return this.hostUrl;
83 } 126 }
@@ -119,6 +162,11 @@ export class HttpUrlUtils { @@ -119,6 +162,11 @@ export class HttpUrlUtils {
119 return url; 162 return url;
120 } 163 }
121 164
  165 + static getAppointmentListDataUrl() {
  166 + let url = this.HOST_SIT + this.APPOINTMENT_LIST_DATA_PATH;
  167 + return url;
  168 + }
  169 +
122 static addSpecialHeaders(headers: HashMap<string, string>) { 170 static addSpecialHeaders(headers: HashMap<string, string>) {
123 switch (this.hostUrl) { 171 switch (this.hostUrl) {
124 case this.HOST_UAT: 172 case this.HOST_UAT:
@@ -30,4 +30,5 @@ export class PageRepository { @@ -30,4 +30,5 @@ export class PageRepository {
30 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); 30 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
31 return WDHttp.post<ResponseDTO<InteractDataDTO[]>>(url, param, headers) 31 return WDHttp.post<ResponseDTO<InteractDataDTO[]>>(url, param, headers)
32 }; 32 };
  33 +
33 } 34 }
  1 +@Observed
  2 +export class MineAppointmentItem{
  3 + appStyle:string //"15"
  4 + /*[
  5 + "https://sitcontentjdcdn.aikan.pdnews.cn/sjbj-20231204/image/live/563cc8ce1ecc43b288f6cf60da66579c.jpeg?x-oss-process=image/resize,l_550,m_fill,h_450,w_800/quality,q_90/format,jpg"
  6 + ]*/
  7 + imageUrl:string[]
  8 +
  9 + liveId:number //20000007348
  10 + planStartTime:string //2023-12-05 15:26:10
  11 + timePre:string //12月05日
  12 + timeBack:string //15:26
  13 + relId:string //"500000017021"
  14 + relType:number //1
  15 + startTime:string //""
  16 + status:string //"wait"
  17 + title:string //"视界运营位加权-加权中删除"
  18 + isAppointment:boolean
  19 +
  20 +
  21 + constructor(imageUrl:string[],status:string,title:string,isAppointment:boolean,timePre:string,timeBack:string,relType:number ) {
  22 + this.imageUrl=imageUrl
  23 + this.status=status
  24 + this.title=title
  25 + this.isAppointment=isAppointment
  26 + this.timePre = timePre
  27 + this.timeBack = timeBack
  28 + this.relType = relType
  29 + }
  30 +}
  1 +import { MineAppointmentItem } from './MineAppointmentItem'
  2 +
  3 +export class MineAppointmentListItem{
  4 + list:MineAppointmentItem[]
  5 +
  6 + pageNum: number
  7 + pageSize: number
  8 + totalCount: number
  9 +
  10 +}
@@ -79,6 +79,13 @@ @@ -79,6 +79,13 @@
79 { 79 {
80 "name": "main_red", 80 "name": "main_red",
81 "value": "#E84026" 81 "value": "#E84026"
  82 + }, {
  83 + "name":"color_4D000000",
  84 + "value": "#4D000000"
  85 + },
  86 + {
  87 + "name":"color_CCCCCC",
  88 + "value": "#CCCCCC"
82 } 89 }
83 ] 90 ]
84 } 91 }