Bladeren bron

feat:
1. 新增多个跳转逻辑
2. 新增物流信息展示页面
3. 修改书包详情页 返回 icon 的显示逻辑
4. 对多个页面添加页面描述文案

YuJing 1 maand geleden
bovenliggende
commit
48cc58bde5
20 gewijzigde bestanden met toevoegingen van 385 en 190 verwijderingen
  1. 6 0
      commons/basic/src/main/ets/utils/arkts/utils/YTRouter.ets
  2. 3 0
      features/feature/src/main/ets/pages/Address/AddressManagementPage.ets
  3. 3 0
      features/feature/src/main/ets/pages/Address/IncreaseAddressPage.ets
  4. 185 184
      features/feature/src/main/ets/pages/BookList/BookItemDetailPage.ets
  5. 3 0
      features/feature/src/main/ets/pages/BookList/BookListDetailPage.ets
  6. 3 1
      features/feature/src/main/ets/pages/BookList/BookListPage.ets
  7. 3 1
      features/feature/src/main/ets/pages/BookList/BookSearchPage.ets
  8. 3 0
      features/feature/src/main/ets/pages/BookList/BookSearchResultPage.ets
  9. 4 2
      features/feature/src/main/ets/pages/BookList/QAPage.ets
  10. 3 0
      features/feature/src/main/ets/pages/CashPledge/CashPledgePage.ets
  11. 3 0
      features/feature/src/main/ets/pages/CashPledge/CashPledgeRecord.ets
  12. 3 0
      features/feature/src/main/ets/pages/CashPledge/CashPledgeSecond.ets
  13. 3 0
      features/feature/src/main/ets/pages/Order/BorrowAnsPage.ets
  14. 3 0
      features/feature/src/main/ets/pages/Order/BorrowingProcessPage.ets
  15. 139 0
      features/feature/src/main/ets/pages/Order/LogisticsInfoPage.ets
  16. 3 0
      features/feature/src/main/ets/pages/Order/OrderDetailPage.ets
  17. 6 1
      features/feature/src/main/ets/pages/Order/OrderManagementPage.ets
  18. 3 1
      features/feature/src/main/ets/pages/Order/ReserveReturnPage.ets
  19. 1 0
      features/feature/src/main/ets/view/ThirdView.ets
  20. 5 0
      features/feature/src/main/resources/base/profile/router_map.json

+ 6 - 0
commons/basic/src/main/ets/utils/arkts/utils/YTRouter.ets

@@ -196,6 +196,12 @@ class YTRouter extends NavPathStack {
   router2CashPledgeRecord(){
     this.pushPathByName('CashPledgeRecord', null)
   }
+
+  // 进入物流信息页面
+  // todo 待完善-
+  router2LogisticsInfoPage(orderId?: string){
+    this.pushPathByName('LogisticsInfoPage', orderId)
+  }
 }
 
 export const yTRouter = YTRouter.getInstance()

+ 3 - 0
features/feature/src/main/ets/pages/Address/AddressManagementPage.ets

@@ -4,6 +4,9 @@ import { buttonComp } from '../../components/BuilderIndex'
 import { AddressAddPageState } from '../../model/EnumState'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 地址管理页面
+ */
 @ComponentV2
 @RouterPage
 struct AddressManagementPage {

+ 3 - 0
features/feature/src/main/ets/pages/Address/IncreaseAddressPage.ets

@@ -4,6 +4,9 @@ import { ChooseAddress } from '../../components/chooseAddress'
 import { AddressAddPageState } from '../../model/EnumState'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 新增地址页面
+ */
 @ComponentV2
 struct IncreaseAddressPage {
   @Param pageState: AddressAddPageState = AddressAddPageState.ADD

+ 185 - 184
features/feature/src/main/ets/pages/BookList/BookItemDetailPage.ets

@@ -4,6 +4,9 @@ import { SchoolBag } from '../../components/SchoolBag';
 import { CustomTextStyle } from '../../style/CustomTextStyle';
 import { BookItemDetailViewModel } from '../viewModel/BookItemDetailViewModel';
 
+/**
+ * 书籍详情页面
+ */
 @ComponentV2
 @RouterPage
 struct BookItemDetailPage {
@@ -11,186 +14,175 @@ struct BookItemDetailPage {
 
   build() {
     NavDestination() {
-      Column() {
-        Column(){
-          List(){
-            ListItem().height(this.vm.safeTop)
-
-            // 书籍封面
-            ListItem(){
-              Stack({alignContent: Alignment.TopStart}){
+      Stack({alignContent: Alignment.TopStart}){
+        Column() {
+          Column(){
+            List(){
+              // 书籍封面
+              ListItem(){
                 Row(){
                   Image(this.vm.book.coverUrl)
                     .height(344)
                 }
-                .width("100%").height('100%')
+                .width("100%")
                 .alignItems(VerticalAlign.Center)
                 .justifyContent(FlexAlign.Center)
-                .padding({left: 20, right: 20, top: 10, bottom: 10})
-
-                Image($r('[basic].media.ic_back'))
-                  .width(24).aspectRatio(1)
-                  .onClick(() => { yTRouter.routerBack() })
+                // .padding({left: 20, right: 20, top: 10, bottom: 10})
               }
-              .height(344)
-              .width("100%")
-              .backgroundColor(Color.White)
-              .padding({left: 14, right: 14})
-            }
 
-            // 借阅价
-            ListItem(){
-              Row(){
-                Column(){
-                  Text(){
-                    Span('借阅价 ')
-                    Span(this.vm.book.rentPerDay)
-                      .fontSize(24)
-                    Span(' 元/天')
-                  }.attributeModifier(new CustomTextStyle({size: 14, weight: 500}))
+              // 借阅价
+              ListItem(){
+                Row(){
+                  Column(){
+                    Text(){
+                      Span('借阅价 ')
+                      Span(this.vm.book.rentPerDay)
+                        .fontSize(24)
+                      Span(' 元/天')
+                    }.attributeModifier(new CustomTextStyle({size: 14, weight: 500}))
 
-                  Text(`市场售价:¥${Number(this.vm.book.marketPrice).toFixed(2)}`)
-                    .borderRadius(9)
-                    .backgroundColor(Color.White)
-                    .padding({left: 10, right: 10, top: 2, bottom: 2})
-                }
-                .width("100%")
-                .alignItems(HorizontalAlign.Start)
+                    Text(`市场售价:¥${Number(this.vm.book.marketPrice).toFixed(2)}`)
+                      .borderRadius(9)
+                      .backgroundColor(Color.White)
+                      .padding({left: 10, right: 10, top: 2, bottom: 2})
+                  }
+                  .width("100%")
+                  .alignItems(HorizontalAlign.Start)
 
-                Column({space: 3}){
-                  Image($r('[basic].media.icon_book'))
-                    .width(28).aspectRatio(1)
+                  Column({space: 3}){
+                    Image($r('[basic].media.icon_book'))
+                      .width(28).aspectRatio(1)
 
-                  Text(`${1275}人已读`)
-                    .attributeModifier(new CustomTextStyle({size: 11, weight: 400, color: '#FFFFFF'}))
+                    Text(`${1275}人已读`)
+                      .attributeModifier(new CustomTextStyle({size: 11, weight: 400, color: '#FFFFFF'}))
+                  }
                 }
+                .width("100%")
+                .backgroundColor('#FED049')
+                .justifyContent(FlexAlign.SpaceBetween)
+                .padding({left: 21, right: 13, top: 10, bottom: 10})
               }
-              .width("100%")
-              .backgroundColor('#FED049')
-              .justifyContent(FlexAlign.SpaceBetween)
-              .padding({left: 21, right: 13, top: 10, bottom: 10})
-            }
 
-            // 书籍介绍
-            ListItem(){
-              Column({space: 12}){
-                Column({space: 8}){
-                  Text(this.vm.book.bookTitle)
-                    .attributeModifier(new CustomTextStyle({size: 18, weight: 600}))
+              // 书籍介绍
+              ListItem(){
+                Column({space: 12}){
+                  Column({space: 8}){
+                    Text(this.vm.book.bookTitle)
+                      .attributeModifier(new CustomTextStyle({size: 18, weight: 600}))
 
-                  Row({space: 8}){
-                    tagItemComp('情绪价值', '#4EB1EF', '#EDF7FD')
-                    tagItemComp('哄娃神器', '#4EB1EF', '#EDF7FD')
-                    tagItemComp(`${this.vm.book.minAge}-${this.vm.book.maxAge}岁`, '#FC9911', '#FFF5E7')
-                  }
+                    Row({space: 8}){
+                      tagItemComp('情绪价值', '#4EB1EF', '#EDF7FD')
+                      tagItemComp('哄娃神器', '#4EB1EF', '#EDF7FD')
+                      tagItemComp(`${this.vm.book.minAge}-${this.vm.book.maxAge}岁`, '#FC9911', '#FFF5E7')
+                    }
 
-                  Column(){
-                    Text(){
-                      Span(`语言:${this.vm.book.language}` + '\n')
-                      Span(`作者:${this.vm.book.author}` + '\n')
-                      Span(`出版社:${this.vm.book.publisher}` + '\n')
-                      Span(`出版时间:${this.vm.book.publicationDate?.split(' ')[1]}}`)
+                    Column(){
+                      Text(){
+                        Span(`语言:${this.vm.book.language}` + '\n')
+                        Span(`作者:${this.vm.book.author}` + '\n')
+                        Span(`出版社:${this.vm.book.publisher}` + '\n')
+                        Span(`出版时间:${this.vm.book.publicationDate?.split(' ')[1]}}`)
+                      }
+                      .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: '#80000000'}))
                     }
-                    .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: '#80000000'}))
+                    .width("100%")
+                    .borderRadius(10)
+                    .backgroundColor('#FFF6F6F6')
+                    .justifyContent(FlexAlign.Start)
+                    .alignItems(HorizontalAlign.Start)
+                    .padding({left: 10, top: 7, right: 10, bottom: 7})
                   }
+                  .padding(12)
                   .width("100%")
                   .borderRadius(10)
-                  .backgroundColor('#FFF6F6F6')
-                  .justifyContent(FlexAlign.Start)
+                  .backgroundColor(Color.White)
                   .alignItems(HorizontalAlign.Start)
-                  .padding({left: 10, top: 7, right: 10, bottom: 7})
-                }
-                .padding(12)
-                .width("100%")
-                .borderRadius(10)
-                .backgroundColor(Color.White)
-                .alignItems(HorizontalAlign.Start)
 
 
-                // 本书书单
-                if(false){
-                  Column({space: 12}){
-                    Row(){
-                      Text('本书书单')
-                        .attributeModifier(new CustomTextStyle({size: 16, weight: 600}))
+                  // 本书书单
+                  if(false){
+                    Column({space: 12}){
+                      Row(){
+                        Text('本书书单')
+                          .attributeModifier(new CustomTextStyle({size: 16, weight: 600}))
 
-                      Row({space: 5}){
-                        Text('更多')
-                          .attributeModifier(new CustomTextStyle({size: 12, weight: 600, color: '#FF888888'}))
+                        Row({space: 5}){
+                          Text('更多')
+                            .attributeModifier(new CustomTextStyle({size: 12, weight: 600, color: '#FF888888'}))
 
-                        Image($r('[basic].media.ic_public_arrow_left'))
-                          .rotate({angle: 180})
-                          .fillColor('#FF888888')
-                          .width(7)
-                          .height(11)
-                      }
-                    }.width("100%")
-                    .justifyContent(FlexAlign.SpaceBetween)
+                          Image($r('[basic].media.ic_public_arrow_left'))
+                            .rotate({angle: 180})
+                            .fillColor('#FF888888')
+                            .width(7)
+                            .height(11)
+                        }
+                      }.width("100%")
+                      .justifyContent(FlexAlign.SpaceBetween)
 
-                    List({space: 15}){
-                      ForEach(new Array(5).fill(5), (item: string, index) => {
-                        ListItem(){
-                          Column({space: 12}){
-                            Image($r('[basic].media.png_TopRecommend'))
-                              .width(120)
-                              .aspectRatio(1)
-                              .borderRadius(16)
-                              .shadow({color: '#f1f1f1', radius: 5})
+                      List({space: 15}){
+                        ForEach(new Array(5).fill(5), (item: string, index) => {
+                          ListItem(){
+                            Column({space: 12}){
+                              Image($r('[basic].media.png_TopRecommend'))
+                                .width(120)
+                                .aspectRatio(1)
+                                .borderRadius(16)
+                                .shadow({color: '#f1f1f1', radius: 5})
 
-                            Text('3月书单推荐')
-                              .attributeModifier(new CustomTextStyle({size: 14, weight: 600, color: '#FF000000'}))
+                              Text('3月书单推荐')
+                                .attributeModifier(new CustomTextStyle({size: 14, weight: 600, color: '#FF000000'}))
+                            }
                           }
-                        }
-                      })
+                        })
+                      }
+                      .height(160)
+                      .width("100%")
+                      .scrollBar(BarState.Off)
+                      .listDirection(Axis.Horizontal)
                     }
-                    .height(160)
-                    .width("100%")
-                    .scrollBar(BarState.Off)
-                    .listDirection(Axis.Horizontal)
+                    .borderRadius(10)
+                    .padding({left: 15, right: 15, top: 11, bottom: 11})
+                    .linearGradient({colors: [['#FFFFF6D9', 0], ['#FFFFFFFF', 1]]})
                   }
-                  .borderRadius(10)
-                  .padding({left: 15, right: 15, top: 11, bottom: 11})
-                  .linearGradient({colors: [['#FFFFF6D9', 0], ['#FFFFFFFF', 1]]})
-                }
 
 
-                // 图书介绍
-                if(true){
-                  // Column({space: 13}){
-                  //   Column(){
-                  //     Text('图书简介')
-                  //       .zIndex(99)
-                  //       .attributeModifier(new CustomTextStyle({size: 16, weight: 600, color: '#FF000000'}))
-                  //
-                  //     Image($r('[basic].media.icon_SelectBg'))
-                  //       .width(45)
-                  //       .height(16)
-                  //       .margin({top:-10})
-                  //   }
-                  //
-                  //   Text('哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\n' +
-                  //     '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\n' +
-                  //     '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\n' +
-                  //     '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈')
-                  //     .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: '#FF555555'}))
-                  // }
-                  // .borderRadius(10)
-                  // .alignItems(HorizontalAlign.Start)
-                  // .padding({left: 15, right: 15, top: 11, bottom: 11})
-                  // .linearGradient({colors: [['#FFFFF6D9', 0], ['#FFFFFFFF', 1]]})
-                  //富文本
-                  Web({ src: $rawfile('index.html'), controller: this.vm.webController, renderMode: RenderMode.SYNC_RENDER  })
-                    .margin(5)
-                    .width('100%')
-                    .javaScriptAccess(true)
-                    // .height(this.vm.webHeight).../
-                    .backgroundColor(Color.Transparent)
-                    .overScrollMode(OverScrollMode.NEVER) // 禁用弹性回弹
-                    .onPageEnd(() => {
-                      this.vm.webController.runJavaScript(`writeHtml(\`${this.vm.book.remark}\`)`).catch(() => {
-                        console.log('writeHtml error')
+                  // 图书介绍
+                  if(true){
+                    // Column({space: 13}){
+                    //   Column(){
+                    //     Text('图书简介')
+                    //       .zIndex(99)
+                    //       .attributeModifier(new CustomTextStyle({size: 16, weight: 600, color: '#FF000000'}))
+                    //
+                    //     Image($r('[basic].media.icon_SelectBg'))
+                    //       .width(45)
+                    //       .height(16)
+                    //       .margin({top:-10})
+                    //   }
+                    //
+                    //   Text('哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\n' +
+                    //     '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\n' +
+                    //     '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\n' +
+                    //     '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈')
+                    //     .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: '#FF555555'}))
+                    // }
+                    // .borderRadius(10)
+                    // .alignItems(HorizontalAlign.Start)
+                    // .padding({left: 15, right: 15, top: 11, bottom: 11})
+                    // .linearGradient({colors: [['#FFFFF6D9', 0], ['#FFFFFFFF', 1]]})
+                    //富文本
+                    Web({ src: $rawfile('index.html'), controller: this.vm.webController, renderMode: RenderMode.SYNC_RENDER  })
+                      .margin(5)
+                      .width('100%')
+                      .javaScriptAccess(true)
+                      // .height(this.vm.webHeight).../
+                      .backgroundColor(Color.Transparent)
+                      .overScrollMode(OverScrollMode.NEVER) // 禁用弹性回弹
+                      .onPageEnd(() => {
+                        this.vm.webController.runJavaScript(`writeHtml(\`${this.vm.book.remark}\`)`).catch(() => {
+                          console.log('writeHtml error')
+                        })
                       })
-                    })
                     // .onControllerAttached(() => {
                     //   this.vm.webController.loadData('<!DOCTYPE html>' +
                     //     "<html><body style=\"font-size:16px;color:rgba(0,0,0,0.6);flex-shrink:0;font-style:normal;font-weight:normal;background-color:rgb(255, 255, 255);\">" +
@@ -212,57 +204,66 @@ struct BookItemDetailPage {
                     //     "UTF-8", " ", " ");
                     // })
 
-                  // .layoutMode(WebLayoutMode.FIT_CONTENT)
+                    // .layoutMode(WebLayoutMode.FIT_CONTENT)
+                  }
                 }
+                .backgroundColor('#F5F7F8')
+                .padding({ left: 16, right: 16, top: 12})
               }
-              .backgroundColor('#F5F7F8')
-              .padding({ left: 16, right: 16, top: 12})
-            }
 
-            // 已经到底啦~
-            ListItem(){
-              Column(){
-                Text('已经到底啦~')
-                  .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: '#80000000'}))
+              // 已经到底啦~
+              ListItem(){
+                Column(){
+                  Text('已经到底啦~')
+                    .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: '#80000000'}))
+                }
+                .width("100%")
+                .padding({top: 9, bottom: 53})
+                .alignItems(HorizontalAlign.Center)
               }
-              .width("100%")
-              .padding({top: 9, bottom: 53})
-              .alignItems(HorizontalAlign.Center)
-            }
-          }.width("100%").height("100%").scrollBar(BarState.Off)
-        }.width("100%").layoutWeight(1)
+            }.width("100%").height("100%").scrollBar(BarState.Off)
+          }.width("100%").layoutWeight(1)
 
 
-        // 书包 和 底部按钮
-        Row({space: 12}){
-          SchoolBag().margin({right: 9})
+          // 书包 和 底部按钮
+          Row({space: 12}){
+            SchoolBag().margin({right: 9})
 
-          ForEach(['加入书包', '立刻借阅'], (item: string, index) => {
-            Row(){
-              Text(index == 0 && this.vm.book.schoolbagFlag == '1' ? '已加入' : item)
-                .attributeModifier(new CustomTextStyle({size: 18, weight: 400}))
-            }
-            .layoutWeight(1)
-            .borderRadius(25)
-            .border({width: 2})
-            .backgroundColor('#FECF2F')
-            .padding({top: 10, bottom: 10})
-            .justifyContent(FlexAlign.Center)
-            .onClick(() => {
-              if(index == 0) {
-                this.vm.addToBag()
-              } else {
-                this.vm.borrow()
+            ForEach(['加入书包', '立刻借阅'], (item: string, index) => {
+              Row(){
+                Text(index == 0 && this.vm.book.schoolbagFlag == '1' ? '已加入' : item)
+                  .attributeModifier(new CustomTextStyle({size: 18, weight: 400}))
               }
+              .layoutWeight(1)
+              .borderRadius(25)
+              .border({width: 2})
+              .backgroundColor('#FECF2F')
+              .padding({top: 10, bottom: 10})
+              .justifyContent(FlexAlign.Center)
+              .onClick(() => {
+                if(index == 0) {
+                  this.vm.addToBag()
+                } else {
+                  this.vm.borrow()
+                }
+              })
             })
-          })
+          }
+          .shadow({ color: '#f1f1f1', radius: 5, offsetY: -5})
+          .padding({bottom: this.vm.safeBottom, top: 10, left: 16, right: 16})
         }
-        .shadow({ color: '#f1f1f1', radius: 5, offsetY: -5})
-        .padding({bottom: this.vm.safeBottom, top: 10, left: 16, right: 16})
+        .width('100%')
+        .height('100%')
+        .backgroundColor('#F7F9FA')
+
+        Image($r('[basic].media.ic_back'))
+          .width(24).aspectRatio(1)
+          .onClick(() => { yTRouter.routerBack() })
       }
       .width('100%')
       .height('100%')
       .backgroundColor('#F7F9FA')
+      .padding({top: this.vm.safeTop})
     }
     .hideTitleBar(true)
   }

+ 3 - 0
features/feature/src/main/ets/pages/BookList/BookListDetailPage.ets

@@ -5,6 +5,9 @@ import { BookListItem } from '../../model/BookModelIndex';
 import { CustomTextStyle } from '../../style/CustomTextStyle';
 import { BookListDetailViewModel } from '../viewModel/BookListDetailViewModel';
 
+/**
+ * 书单详情页面
+ */
 @ComponentV2
 @RouterPage
 struct BookListDetailPage {

+ 3 - 1
features/feature/src/main/ets/pages/BookList/BookListPage.ets

@@ -5,7 +5,9 @@ import { BookListViewModel } from '../viewModel/BookListViewModel';
 import { bookListItemComp } from '../../components/BuilderIndex';
 import { BookListTypeItem } from '../../model/BookModelIndex';
 
-// 精选书单
+/**
+ * 精选书单
+ */
 @ComponentV2
 @RouterPage
 struct BookListPage {

+ 3 - 1
features/feature/src/main/ets/pages/BookList/BookSearchPage.ets

@@ -6,7 +6,9 @@ import { BookCategoryStorage, HistoryStorage } from '../../model/Storage'
 import { BookListTypeList, HotSearchItem } from '../../model/BookModelIndex'
 import { bookListApi } from '../../apis/BookListApi'
 
-// 书籍搜索页面
+/**
+ * 书籍搜索页面
+ */
 @ComponentV2
 struct BookSearchPage {
   @Local safeBottom: number = AppStorage.get(YTAvoid.SAFE_BOTTOM_KEY) as number

+ 3 - 0
features/feature/src/main/ets/pages/BookList/BookSearchResultPage.ets

@@ -6,6 +6,9 @@ import { BookListItem } from '../../model/BookModelIndex';
 import { CustomTextStyle } from '../../style/CustomTextStyle';
 import { BookSearchResultViewModel } from '../viewModel/BookSearchResultViewModel';
 
+/**
+ * 书籍搜索结果页面
+ */
 @ComponentV2
 struct BookSearchResultPage {
   @Param @Require vm: BookSearchResultViewModel;

+ 4 - 2
features/feature/src/main/ets/pages/BookList/QAPage.ets

@@ -1,7 +1,9 @@
-import { BasicType, RouterPage, YTHeader } from 'basic'
+import { BasicType, YTHeader } from 'basic'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
-// 借阅问答页面
+/**
+ * 借阅问答页面
+ */
 @ComponentV2
 struct QAPage {
   iconList: Array<Resource> = [

+ 3 - 0
features/feature/src/main/ets/pages/CashPledge/CashPledgePage.ets

@@ -3,6 +3,9 @@ import { OrderApi } from '../../apis/OrderApi'
 import { buttonComp } from '../../components/BuilderIndex'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 押金页面
+ */
 @ComponentV2
 struct CashPledgePage {
   @Local deposit: number = 0.00

+ 3 - 0
features/feature/src/main/ets/pages/CashPledge/CashPledgeRecord.ets

@@ -1,6 +1,9 @@
 import { YTHeader } from 'basic'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 押金记录页面
+ */
 @ComponentV2
 struct CashPledgeRecord {
   @Local categoryIndex: number = 0

+ 3 - 0
features/feature/src/main/ets/pages/CashPledge/CashPledgeSecond.ets

@@ -2,6 +2,9 @@ import { YTAvoid, YTHeader } from 'basic'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 import { buttonComp } from '../../components/BuilderIndex'
 
+/**
+ * 缴纳押金页面
+ */
 @ComponentV2
 struct CashPledgeSecond {
 

+ 3 - 0
features/feature/src/main/ets/pages/Order/BorrowAnsPage.ets

@@ -2,6 +2,9 @@ import { RouterPage, YTHeader, YTRequest, yTRouter } from 'basic'
 import { buttonComp } from '../../components/BuilderIndex'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 借阅结果页面
+ */
 @ComponentV2
 @RouterPage
 struct BorrowAnsPage {

+ 3 - 0
features/feature/src/main/ets/pages/Order/BorrowingProcessPage.ets

@@ -1,6 +1,9 @@
 import { BasicType, RouterPage, YTAvoid, YTHeader, yTRouter } from 'basic'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 借阅流程
+ */
 @ComponentV2
 @RouterPage
 struct BorrowingProcessPage {

+ 139 - 0
features/feature/src/main/ets/pages/Order/LogisticsInfoPage.ets

@@ -0,0 +1,139 @@
+import { IBestToast, YTAvoid, YTHeader } from 'basic'
+import { CustomTextStyle } from '../../style/CustomTextStyle'
+import { pasteboard } from '@kit.BasicServicesKit';
+
+/**
+ * 物流信息 页面
+ */
+@ComponentV2
+struct LogisticsInfoPage {
+  @Local heightList: number[] = []
+
+  safeBottom: number = AppStorage.get(YTAvoid.SAFE_BOTTOM_KEY) as number
+
+  forEach: string[] = [
+    '厦门市  快件已发往湖里区厦门市  快件已发往湖里区厦门市  快件已发往湖里区厦门市  快件已发往湖里区厦门市  快件已发往湖里区厦门市  快件已发往湖里区',
+    '厦门市高新区物流点揽件成功',
+    '您的订单已出库',
+    '您的订单已发货',
+    '您的订单在配货'
+  ]
+
+  // 复制订单号
+  onCopyOrderNumber() {
+
+    // 1. 创建 PasteData 对象
+    let pasteData = pasteboard.createPlainTextData('JD2334566446565');
+
+    // 2. 获取系统剪贴板实例
+    let systemPasteboard = pasteboard.getSystemPasteboard();
+
+    // 3. 同步写入数据
+    try {
+      systemPasteboard.setDataSync(pasteData);
+      console.log('写入剪贴板成功');
+      IBestToast.show('复制成功')
+    } catch (error) {
+      console.error('写入失败,错误码: ' + error.code);
+      IBestToast.show('复制失败,请重试')
+    }
+
+  }
+
+  aboutToAppear(): void {
+    this.heightList = new Array(this.forEach.length).fill(60)
+  }
+
+  build() {
+    NavDestination() {
+      Column() {
+        YTHeader({ defaultStyle: {title: "物流信息"}, bgc: Color.White })
+
+        Column(){
+          List({space: 15}){
+            ListItem(){
+              Row({space: 15}){
+                Text('物流状态')
+                  .attributeModifier(new CustomTextStyle({size: 16, weight: 400, color: '#FF666666'}))
+
+                Text('运输中')
+                  .attributeModifier(new CustomTextStyle({size: 16, weight: 500, color: '#FF333333'}))
+              }.padding(15)
+              .width('100%')
+              .borderRadius(8)
+              .backgroundColor(Color.White)
+            }
+
+            ListItem(){
+              Column(){
+                Row(){
+                  Text('京东快递  JD2334566446565')
+                    .attributeModifier(new CustomTextStyle({size: 15, weight: 500, color: '#FF333333'}))
+
+                  Text('复制')
+                    .padding({left: 9})
+                    .border({width: {left: 1}, color: '#C1C1C1'})
+                    .attributeModifier(new CustomTextStyle({size: 15, weight: 400, color: '#FF333333'}))
+                    .onClick(() => { this.onCopyOrderNumber() })
+                }
+                .width('100%')
+                .margin({bottom: 15})
+                .justifyContent(FlexAlign.SpaceBetween)
+
+                Column(){
+                  ForEach(this.forEach, (item: string, index) => {
+                    Row(){
+                      Column(){
+                        Row()
+                          .width(index == 0 ? 14 : 10).aspectRatio(1)
+                          .borderRadius(99)
+                          .backgroundColor(index == 0 ? '#FDC121' : '#FFC1C1C1')
+
+                        if(index != this.forEach.length - 1) {
+                          Blank()
+                            .width(2)
+                            .height(this.heightList[index])
+                            .backgroundColor('#FFC1C1C1')
+                        }
+                      }.width(27)
+
+                      Column({space: 5}){
+                        Text(item)
+                          .attributeModifier(new CustomTextStyle({size: 15, weight: 400, color: index == 0 ? '#FF333333' : '#FFC1C1C1'}))
+
+                        Text('2021-09-01 10:00:00')
+                        .attributeModifier(new CustomTextStyle({size: 12, weight: 400, color: index == 0 ? '#FF333333' : '#FFC1C1C1'}))
+                      }.layoutWeight(1)
+                      .alignItems(HorizontalAlign.Start)
+                      .justifyContent(FlexAlign.Start)
+                      .onAreaChange((o, n) => {
+                        this.heightList[index] = Math.max(n.height as number + 26, 60)
+                      })
+                    }.width('100%')
+                    .alignItems(VerticalAlign.Top)
+                  })
+                }
+              }
+              .padding(15)
+              .width('100%')
+              .borderRadius(8)
+              .backgroundColor(Color.White)
+            }
+          }.width('100%').height('100%')
+          .scrollBar(BarState.Off)
+        }.width('100%')
+        .layoutWeight(1)
+        .padding(15)
+
+      }.width('100%')
+      .backgroundColor('#F7F9FA')
+      .padding({bottom: this.safeBottom})
+    }
+    .hideTitleBar(true)
+  }
+}
+
+@Builder
+function LogisticsInfoBuilder() {
+  LogisticsInfoPage()
+}

+ 3 - 0
features/feature/src/main/ets/pages/Order/OrderDetailPage.ets

@@ -8,6 +8,9 @@ import { AddressAddPageState } from '../../model/EnumState'
 import { OrderValidationData } from '../../model/OrderModelIndex'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
+/**
+ * 订单详情 - 订单校验页面
+ */
 @ComponentV2
 struct OrderDetailPage {
   @Local safeBottom: number = AppStorage.get(YTAvoid.SAFE_BOTTOM_KEY) as number

+ 6 - 1
features/feature/src/main/ets/pages/Order/OrderManagementPage.ets

@@ -4,7 +4,9 @@ import { OrderStatus } from '../../model/EnumState';
 import { CustomTextStyle } from '../../style/CustomTextStyle';
 import { OrderManagementViewModel } from '../viewModel/OrderManagementViewModel';
 
-// 我的借阅
+/**
+ * 我的借阅
+ */
 @ComponentV2
 @RouterPage
 struct OrderManagementPage {
@@ -266,6 +268,9 @@ struct OrderItemComp{
       else if(this.orderStatus == OrderStatus.PENDING_RECEIPT) {
         Text('查看物流信息>>')
           .attributeModifier(new CustomTextStyle({size: 14, weight: 400, color: '#FF0051FF'}))
+          .onClick(() => {
+            yTRouter.router2LogisticsInfoPage()
+          })
       }
       // 其他状态
       else {

+ 3 - 1
features/feature/src/main/ets/pages/Order/ReserveReturnPage.ets

@@ -4,7 +4,9 @@ import { AppointmentTimeComp } from '../../components/AppointmentTimeComp'
 import { buttonComp } from '../../components/BuilderIndex'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
-// 预约还书
+/**
+ * 预约还书
+ */
 @ComponentV2
 struct ReserveReturnPage {
   @Param isComplete: boolean = false

+ 1 - 0
features/feature/src/main/ets/view/ThirdView.ets

@@ -162,6 +162,7 @@ export struct ThirdView {
             .border({width: 2, color: '#FF000000'})
             .padding({left: 45, top: 10, right: 45, bottom: 10})
             .attributeModifier(new CustomTextStyle({size: 18, weight: 400, color: '#FF000000'}))
+            .onClick(() => { yTRouter.changeIndex(1) })
         }
         .width("100%")
         .layoutWeight(1)

+ 5 - 0
features/feature/src/main/resources/base/profile/router_map.json

@@ -60,6 +60,11 @@
       "pageSourceFile": "src/main/ets/pages/Order/ReserveReturnPage.ets",
       "buildFunction": "ReserveReturnBuilder"
     },
+    {
+      "name": "LogisticsInfoPage",
+      "pageSourceFile": "src/main/ets/pages/Order/LogisticsInfoPage.ets",
+      "buildFunction": "LogisticsInfoBuilder"
+    },
     {
       "name": "BookSearchResultPage",
       "pageSourceFile": "src/main/ets/pages/BookList/BookSearchResultPage.ets",