2 Commits 52f6ca6589 ... 7937a3b623

Autor SHA1 Mensagem Data
  liukai 7937a3b623 payment 的 history 的详情 2 semanas atrás
  liukai b20ee481a8 GlobalWebPage的网页与富文本兼容 2 semanas atrás

+ 1 - 0
packages/cpt_main/lib/modules/home/latest_news/property/latest_news_property_view_model.dart

@@ -113,6 +113,7 @@ class LatestNewsPropertyViewModel extends _$LatestNewsPropertyViewModel with Dio
 
   /// 去详情页面
   void gotoLatestNewsDetail(BuildContext context, LatestNewsList data) async {
+    //先获取到详情
     final result = await _mainRepository.fetchLatestNewsDetail(id: data.id ?? "");
     if (result.isSuccess) {
       GlobalWebPage.startInstance(context: context, title: S.current.latest_news, url: result.data?.content ?? "");

+ 3 - 1
packages/cpt_payment/lib/modules/payment/history/history_list_screen.dart

@@ -41,7 +41,9 @@ class HistoryListScreen extends HookConsumerWidget {
             SliverList(
                 delegate: SliverChildBuilderDelegate(
               (context, index) {
-                return HistoryListItem(index: index, item: state.datas[index]).onTap(() {});
+                return HistoryListItem(index: index, item: state.datas[index]).onTap(() {
+                  viewModel.gotoPaymentDetailPageByType(state.datas[index]);
+                });
               },
               childCount: state.datas.length,
             ))

+ 29 - 0
packages/cpt_payment/lib/modules/payment/history/history_list_view_model.dart

@@ -1,11 +1,14 @@
 import 'package:domain/entity/payment_page_entity.dart';
 import 'package:domain/repository/payment_repository.dart';
+import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
+import 'package:router/componentRouter/component_service_manager.dart';
 import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/widget_export.dart';
 
+import '../../payment_success/payment_success_page.dart';
 import 'history_list_state.dart';
 
 part 'history_list_view_model.g.dart';
@@ -106,4 +109,30 @@ class HistoryListViewModel extends _$HistoryListViewModel with DioCancelableMixi
       }
     }
   }
+
+  //根据类型跳转到详情页面
+  void gotoPaymentDetailPageByType(PaymentPageList data) {
+    switch (data.type) {
+      case 'facility_booking':
+        //设施预定订单
+        ComponentServiceManager().facilityService.startFacilityDetailPage(id: data.orderable?.id ?? "");
+        break;
+      case 'online_form_apply':
+        //在线表单订单
+        ComponentServiceManager().formService.startFormDetailPage(
+          data.orderable?.estateOnlineFormId ?? "",
+          data.orderable?.id ?? "",
+          data.orderable?.onlineFormTypeId ?? "",
+        );
+        break;
+      case 'paid_service_order':
+        //服务订单
+        ToastEngine.show("Service 的订单,自己写路由跳转到支付详情页面");
+        break;
+      default:
+        //默认周期订单的支付 (通用支付页面)
+        PaymentSuccessPage.startWithPop(orderId: data.id);
+        break;
+    }
+  }
 }

+ 35 - 6
packages/cs_plugin_basic/lib/modules/global_web_page.dart

@@ -1,12 +1,17 @@
+import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
+import 'package:plugin_basic/dialog/country_code_selecter.dart';
 import 'package:plugin_basic/router/basic_page_router.dart';
 import 'package:shared/utils/log_utils.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:widgets/ext/ex_widget.dart';
+import 'package:widgets/my_appbar.dart';
+import 'package:widgets/widget_export.dart';
 import '../widget/webview_page.dart';
 import 'package:auto_route/auto_route.dart';
 
 /*
- * 全局的公共Web页面
+ * 全局的公共Web页面,兼容网页与富文本展示
  */
 @RoutePage()
 class GlobalWebPage extends HookConsumerWidget {
@@ -34,10 +39,34 @@ class GlobalWebPage extends HookConsumerWidget {
   @override
   Widget build(BuildContext context, WidgetRef ref) {
     Log.d("GlobalWebPage 的参数 isShowAppBar:$isShowAppBar title:$title initialUrl:$initialUrl ");
-    return WebViewPage(
-      showAppbar: isShowAppBar,
-      initialUrl: initialUrl,
-      arguments: {'title': title},
-    );
+
+    if (initialUrl.startsWith('http')) {
+      //网页加载
+      return WebViewPage(
+        showAppbar: isShowAppBar,
+        initialUrl: initialUrl,
+        arguments: {'title': title},
+      );
+    } else {
+      //富文本加载
+      return Scaffold(
+          backgroundColor: context.appColors.whiteBG,
+          appBar: isShowAppBar
+              ? MyAppBar.appBar(
+                  context,
+                  title ?? "",
+                  backgroundColor: context.appColors.backgroundWhite,
+                )
+              : null,
+          body: SafeArea(
+            bottom: true,
+            top: false,
+            child: SingleChildScrollView(
+              scrollDirection: Axis.vertical,
+              physics: const BouncingScrollPhysics(),
+              child: Html(data: initialUrl).paddingOnly(left: 10, right: 10),
+            ),
+          ));
+    }
   }
 }