zhenghy

精选评论通顶通底

@@ -18,9 +18,8 @@ const TAG = 'QualityCommentsComponent'; @@ -18,9 +18,8 @@ const TAG = 'QualityCommentsComponent';
18 @Preview 18 @Preview
19 @Component 19 @Component
20 export struct QualityCommentsComponent { 20 export struct QualityCommentsComponent {
21 -  
22 //刷新 21 //刷新
23 - @State viewType:number = ViewType.LOADING; 22 + @State viewType: number = ViewType.LOADING;
24 @State hasMore: boolean = true; 23 @State hasMore: boolean = true;
25 @State currentPage: number = 1; 24 @State currentPage: number = 1;
26 private scroller: Scroller = new Scroller(); 25 private scroller: Scroller = new Scroller();
@@ -32,11 +31,9 @@ export struct QualityCommentsComponent { @@ -32,11 +31,9 @@ export struct QualityCommentsComponent {
32 currentWindowColor: string = '#FF4202' 31 currentWindowColor: string = '#FF4202'
33 @State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource(); 32 @State allDatas: LazyDataSource<commentItemModel> = new LazyDataSource();
34 @State dialogController: CustomDialogController | null = null; 33 @State dialogController: CustomDialogController | null = null;
35 -  
36 /*必传*/ 34 /*必传*/
37 @State publishCommentModel: publishCommentModel = new publishCommentModel() 35 @State publishCommentModel: publishCommentModel = new publishCommentModel()
38 36
39 -  
40 aboutToDisappear(): void { 37 aboutToDisappear(): void {
41 // windowClass.setWindowSystemBarProperties({ statusBarColor: '#000' }) 38 // windowClass.setWindowSystemBarProperties({ statusBarColor: '#000' })
42 this.dialogController = null // 将dialogController置空 39 this.dialogController = null // 将dialogController置空
@@ -55,7 +52,7 @@ export struct QualityCommentsComponent { @@ -55,7 +52,7 @@ export struct QualityCommentsComponent {
55 this.showAlert() 52 this.showAlert()
56 } 53 }
57 54
58 - showAlert(){ 55 + showAlert() {
59 this.dialogController = new CustomDialogController({ 56 this.dialogController = new CustomDialogController({
60 builder: CommentCustomDialog({ 57 builder: CommentCustomDialog({
61 confirm: (value: Record<string, string>) => { 58 confirm: (value: Record<string, string>) => {
@@ -74,9 +71,11 @@ export struct QualityCommentsComponent { @@ -74,9 +71,11 @@ export struct QualityCommentsComponent {
74 }) 71 })
75 } 72 }
76 73
77 - getData(resolve?: (value: string | PromiseLike<string>) => void){ 74 + getData(resolve?: (value: string | PromiseLike<string>) => void) {
78 commentViewModel.fetchQualityCommentList(this.currentPage + '').then((commentListModel) => { 75 commentViewModel.fetchQualityCommentList(this.currentPage + '').then((commentListModel) => {
79 - if(resolve) resolve('刷新成功') 76 + if (resolve) {
  77 + resolve('刷新成功')
  78 + }
80 79
81 if (commentListModel && commentListModel.list && commentListModel.list.length > 0) { 80 if (commentListModel && commentListModel.list && commentListModel.list.length > 0) {
82 if (this.currentPage === 1) { 81 if (this.currentPage === 1) {
@@ -143,6 +142,7 @@ export struct QualityCommentsComponent { @@ -143,6 +142,7 @@ export struct QualityCommentsComponent {
143 .height(this.topSafeHeight + vp2px(44) + 'px') 142 .height(this.topSafeHeight + vp2px(44) + 'px')
144 .width('100%') 143 .width('100%')
145 .backgroundColor($r('app.color.color_transparent')) 144 .backgroundColor($r('app.color.color_transparent'))
  145 + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
146 } 146 }
147 147
148 /*导航栏*/ 148 /*导航栏*/
@@ -187,62 +187,66 @@ export struct QualityCommentsComponent { @@ -187,62 +187,66 @@ export struct QualityCommentsComponent {
187 .height(this.topSafeHeight + vp2px(44) + 'px') 187 .height(this.topSafeHeight + vp2px(44) + 'px')
188 .width('100%') 188 .width('100%')
189 .backgroundColor($r('app.color.white')) 189 .backgroundColor($r('app.color.white'))
  190 + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
190 } 191 }
191 192
192 build() { 193 build() {
193 - Column() {  
194 -  
195 -  
196 Stack({ alignContent: Alignment.Top }) { 194 Stack({ alignContent: Alignment.Top }) {
197 -  
198 Scroll() { 195 Scroll() {
199 Column() { 196 Column() {
200 Stack() { 197 Stack() {
201 this.titleHeader() 198 this.titleHeader()
202 199
203 - if(this.viewType == ViewType.ERROR){ 200 + if (this.viewType == ViewType.ERROR) {
204 ErrorComponent() 201 ErrorComponent()
205 - }else if(this.viewType == ViewType.EMPTY){  
206 - EmptyComponent({emptyType:WDViewDefaultType.WDViewDefaultType_NoComment})  
207 - }else { 202 + } else if (this.viewType == ViewType.EMPTY) {
  203 + EmptyComponent({ emptyType: WDViewDefaultType.WDViewDefaultType_NoComment })
  204 + } else {
208 this.listLayout() 205 this.listLayout()
209 } 206 }
210 207
211 }.alignContent(Alignment.Top) 208 }.alignContent(Alignment.Top)
212 - }.backgroundColor(this.currentWindowColor).width('100%') 209 + }
  210 + .backgroundColor(this.currentWindowColor).width('100%')
213 } 211 }
214 .friction(0.6) 212 .friction(0.6)
215 .scrollBar(BarState.Off) 213 .scrollBar(BarState.Off)
216 .edgeEffect(EdgeEffect.None) 214 .edgeEffect(EdgeEffect.None)
217 - .width('100%')  
218 - .height('100%') 215 + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
219 216
220 this.TabbarTransparent() 217 this.TabbarTransparent()
221 this.TabbarNormal() 218 this.TabbarNormal()
222 -  
223 - }  
224 -  
225 } 219 }
  220 + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
226 221
227 } 222 }
228 223
229 @Builder 224 @Builder
230 - listLayout(){  
231 - List({ space: 12, scroller:this.scroller }) { 225 + listLayout() {
  226 + List({ space: 12, scroller: this.scroller }) {
232 // ListItemGroup({ header: this.titleHeader() }) 227 // ListItemGroup({ header: this.titleHeader() })
233 LazyForEach(this.allDatas, (item: commentItemModel, index: number) => { 228 LazyForEach(this.allDatas, (item: commentItemModel, index: number) => {
234 ListItem() { 229 ListItem() {
235 - QualityCommentItem({ item: item, index: index , dialogController:this.dialogController, publishCommentModel:this.publishCommentModel}).margin({ left: 12, right: 12 }) 230 + QualityCommentItem({
  231 + item: item,
  232 + index: index,
  233 + dialogController: this.dialogController,
  234 + publishCommentModel: this.publishCommentModel
  235 + }).margin({ left: 12, right: 12 })
236 } 236 }
237 }) 237 })
238 // 加载更多 238 // 加载更多
239 ListItem() { 239 ListItem() {
240 - if (this.hasMore === false) NoMoreLayout() 240 + if (this.hasMore === false) {
  241 + NoMoreLayout()
241 } 242 }
  243 + }
  244 +
242 // ListItem() { 245 // ListItem() {
243 // 246 //
244 // }.height(`${this.bottomSafeHeight}` + 'px') 247 // }.height(`${this.bottomSafeHeight}` + 'px')
245 - }.onReachEnd(()=>{ 248 + }
  249 + .onReachEnd(() => {
246 this.currentPage++ 250 this.currentPage++
247 this.getData() 251 this.getData()
248 }) 252 })
@@ -255,14 +259,9 @@ export struct QualityCommentsComponent { @@ -255,14 +259,9 @@ export struct QualityCommentsComponent {
255 scrollBackward: NestedScrollMode.SELF_FIRST 259 scrollBackward: NestedScrollMode.SELF_FIRST
256 }) 260 })
257 } 261 }
258 -  
259 -  
260 -  
261 } 262 }
262 263
263 264
264 -  
265 -  
266 @Component 265 @Component
267 struct QualityCommentItem { 266 struct QualityCommentItem {
268 @ObjectLink publishCommentModel: publishCommentModel 267 @ObjectLink publishCommentModel: publishCommentModel
@@ -279,7 +278,8 @@ struct QualityCommentItem { @@ -279,7 +278,8 @@ struct QualityCommentItem {
279 278
280 Image(this.item.fromUserHeader) 279 Image(this.item.fromUserHeader)
281 280
282 - .alt($r(commentViewModel.adjustUserType(this.item.fromUserType) ? 'app.media.WDAccountOwnerHedaerDefaultIcon' : 'app.media.WDAccountDefaultIcon')) 281 + .alt($r(commentViewModel.adjustUserType(this.item.fromUserType) ?
  282 + 'app.media.WDAccountOwnerHedaerDefaultIcon' : 'app.media.WDAccountDefaultIcon'))
283 .width(50) 283 .width(50)
284 .height(50) 284 .height(50)
285 .borderRadius(25) 285 .borderRadius(25)
@@ -376,7 +376,7 @@ struct QualityCommentItem { @@ -376,7 +376,7 @@ struct QualityCommentItem {
376 Row() { 376 Row() {
377 Image($r('app.media.comment_icon_pinglun')).width(16).height(16) 377 Image($r('app.media.comment_icon_pinglun')).width(16).height(16)
378 }.height('100%') 378 }.height('100%')
379 - .onClick(()=>{ 379 + .onClick(() => {
380 this.replyComment() 380 this.replyComment()
381 }) 381 })
382 382