Ver código fonte

feat: 完成 借阅流程 页面下各功能的跳转

YuJing 1 mês atrás
pai
commit
a71016701e

+ 21 - 2
commons/basic/src/main/ets/utils/arkts/utils/YTRouter.ets

@@ -5,6 +5,8 @@ import { NavDiaLogModel } from '../../../models/NavDiaLogModel'
 class YTRouter extends NavPathStack {
   private static declare instance: YTRouter
 
+  private tabsController?: TabsController
+
   private constructor() {
     super()
   }
@@ -16,6 +18,13 @@ class YTRouter extends NavPathStack {
     return YTRouter.instance
   }
 
+  getTabControl(): TabsController {
+    if(this.tabsController == undefined) {
+      this.tabsController = new TabsController()
+    }
+    return this.tabsController
+  }
+
   router2SettingPage() {
     yTRouter.pushPathByName('SettingPage', '')
   }
@@ -97,12 +106,12 @@ class YTRouter extends NavPathStack {
     this.pushPathByName('QAPage', null)
   }
 
-  // 跳转至借阅流程页面
+  /** 跳转至借阅流程页面 */
   router2BorrowProcessPage(){
     this.pushPathByName('BorrowingProcessPage', null)
   }
 
-  // 前往订单管理页面
+  /** 前往订单管理页面 - 我的借阅 */
   router2OrderManagementPage(targetIndex?: number){
     this.pushPathByName('OrderManagementPage', targetIndex)
   }
@@ -141,6 +150,16 @@ class YTRouter extends NavPathStack {
   router2ReserveReturnPage(){
     this.pushPathByName('ReserveReturnPage', null)
   }
+
+  // 进入书籍详情页面
+  router2BookItemDetailPage(){
+    this.pushPathByName('BookItemDetailPage', null)
+  }
+
+  // 进入订单详情确认页
+  router2OrderDetailPage(){
+    this.pushPathByName('OrderDetailPage', null)
+  }
 }
 
 export const yTRouter = YTRouter.getInstance()

+ 13 - 7
features/feature/src/main/ets/pages/Order/BorrowingProcessPage.ets

@@ -1,4 +1,4 @@
-import { BasicType, RouterPage, YTAvoid, YTHeader } from 'basic'
+import { BasicType, RouterPage, YTAvoid, YTHeader, yTRouter } from 'basic'
 import { CustomTextStyle } from '../../style/CustomTextStyle'
 
 @ComponentV2
@@ -8,6 +8,7 @@ struct BorrowingProcessPage {
 
   tabControl: TabsController = new TabsController()
   safeBottom: number = AppStorage.get(YTAvoid.SAFE_BOTTOM_KEY) as number
+  tabsController: TabsController = yTRouter.getTabControl()
 
 
   iconForEach: Array<BasicType> = [
@@ -19,20 +20,25 @@ struct BorrowingProcessPage {
   ]
 
   pngList: Array<BasicType> = [
-    { text: '1.选择图书,加入背包', message: '找到喜欢的书,在图书详情页点击加入背包', src: $r('[basic].media.png_process1') , date: '去还书', click: () => {
-
+    { text: '1.选择图书,加入背包', message: '找到喜欢的书,在图书详情页点击加入背包', src: $r('[basic].media.png_process1') , date: '去选书', click: () => {
+      this.tabsController.changeIndex(1)
+      yTRouter.pop(true)
     }},
     { text: '2.勾选图书,下单借阅', message: '在书包勾选图书,点击立即借阅,确认后点击(提交订单)即可。', src: $r('[basic].media.png_process2') , date: '去下单', click: () => {
-
+      this.tabsController.changeIndex(2)
+      yTRouter.pop(true)
     }},
     { text: '3.快速到家,快速阅读', message: '订单提交成功后,等待快递送书上门,即开启快乐的阅读时光。', src: $r('[basic].media.png_process3') , date: '查看物流', click: () => {
-
+      yTRouter.pop()
+      yTRouter.router2OrderManagementPage(1)
     }},
     { text: '4.预约还书,继续借阅', message: '阅读完成后,在订单页点击(预约还书),在线预约快递上门取书,即可再次下单借阅。', src: $r('[basic].media.png_process4') , date: '去还书', click: () => {
-
+      yTRouter.pop()
+      yTRouter.router2OrderManagementPage(2)
     }},
     { text: '5.验收入库,借阅完成', message: '仓库人员会验收归还的图书,检查无误后,做三重消毒处理,再入库等待下次借阅。', src: $r('[basic].media.png_process5'), date: '去查看', click: () => {
-
+      yTRouter.pop()
+      yTRouter.router2OrderManagementPage(4)
     } }
   ]
 

+ 3 - 7
features/feature/src/main/ets/pages/Order/OrderManagementPage.ets

@@ -8,11 +8,7 @@ import { OrderManagementViewModel } from '../viewModel/OrderManagementViewModel'
 @ComponentV2
 @RouterPage
 struct OrderManagementPage {
-  @Local vm: OrderManagementViewModel = new OrderManagementViewModel();
-
-  aboutToAppear(): void {
-    this.vm.changeCategory(0)
-  }
+  @Param @Require vm: OrderManagementViewModel;
 
   build() {
     NavDestination() {
@@ -111,8 +107,8 @@ struct OrderManagementPage {
 }
 
 @Builder
-function OrderManagementBuilder() {
-  OrderManagementPage()
+function OrderManagementBuilder(_: string, targetIndex?: number) {
+  OrderManagementPage({vm: new OrderManagementViewModel(targetIndex)})
 }
 
 

+ 8 - 2
features/feature/src/main/ets/pages/viewModel/OrderManagementViewModel.ets

@@ -16,6 +16,14 @@ export class OrderManagementViewModel{
   private debounceTimer: number | null = null
   private readonly DEBOUNCE_DELAY: number = 500
 
+  constructor(index?: number) {
+    if(index != undefined) {
+      this.changeCategory(index)
+    } else {
+      this.changeCategory(0)
+    }
+  }
+
   changeCategory(index: number) {
     // 清除之前的定时器
     if (this.debounceTimer !== null) {
@@ -32,8 +40,6 @@ export class OrderManagementViewModel{
     }, this.DEBOUNCE_DELAY)
   }
 
-
-
   onRefreshing(){
     // this.isRefresh = true
     setTimeout(() => {

+ 0 - 13
features/feature/src/main/ets/utils/RouterUtrils.ets

@@ -1,13 +0,0 @@
-import { yTRouter } from "basic";
-
-export class RouterUtils{
-  static router2BookItemDetailPage(){
-    yTRouter.pushPathByName('BookItemDetailPage', null)
-  }
-
-  // 进入订单详情确认页
-  static router2OrderDetailPage(){
-    yTRouter.pushPathByName('OrderDetailPage', null)
-  }
-
-}

+ 1 - 2
features/feature/src/main/ets/view/MainView.ets

@@ -3,7 +3,6 @@ import { tagItemComp } from "../components/BuilderIndex"
 import { DeerSearch } from "../components/DeerSearch"
 import { ytBuildComp } from "../components/ytBuildComp"
 import { CustomTextStyle } from "../style/CustomTextStyle"
-import { RouterUtils } from "../utils/RouterUtrils"
 import { MainViModel } from "./viewModel/MainViewModel"
 
 @ComponentV2
@@ -141,7 +140,7 @@ export struct MainView {
                       .aspectRatio(152/180)
                       .backgroundColor(Color.White)
                       .border({width: 2, color: '#000000'})
-                      .onClick(() => { RouterUtils.router2BookItemDetailPage() })
+                      .onClick(() => { yTRouter.router2BookItemDetailPage() })
                     }
                   })
                 }

+ 2 - 2
features/feature/src/main/ets/view/ThirdView.ets

@@ -1,6 +1,6 @@
+import { yTRouter } from "basic";
 import { tagItemComp } from "../components/BuilderIndex";
 import { CustomTextStyle } from "../style/CustomTextStyle";
-import { RouterUtils } from "../utils/RouterUtrils";
 import { ThirdViewModel } from "./viewModel/ThirdViewModel";
 
 
@@ -214,7 +214,7 @@ export struct ThirdView {
               .width("100%")
               .alignItems(HorizontalAlign.Start)
             }
-            .onClick(() => { RouterUtils.router2BookItemDetailPage() })
+            .onClick(() => { yTRouter.router2BookItemDetailPage() })
           }
           .width("100%")
           .height(102)

+ 2 - 3
features/feature/src/main/ets/view/viewModel/ThirdViewModel.ets

@@ -1,5 +1,4 @@
-import { YTAvoid } from "basic";
-import { RouterUtils } from "../../utils/RouterUtrils";
+import { YTAvoid, yTRouter } from "basic";
 
 
 @ObservedV2
@@ -33,6 +32,6 @@ export class ThirdViewModel{
 
   // 点击按钮
   clickButton() {
-    RouterUtils.router2OrderDetailPage()
+    yTRouter.router2OrderDetailPage()
   }
 }

+ 3 - 2
products/entry/src/main/ets/pages/Index.ets

@@ -32,12 +32,13 @@ struct Index {
       acSrc: $r('app.media.icon_mine_')
     }
   ]
-  tabsController: TabsController = new TabsController()
+
+
+  tabsController: TabsController = yTRouter.getTabControl()
 
   aboutToAppear(): void {
     ContextHelper.init(this.getUIContext(), getContext())
     this.getUIContext().getRouter().clear()
-
   }
 
   build() {