Browse Source

[new]首页每日轨迹增加无会员状态显示

zk 4 months ago
parent
commit
0f5f013623

BIN
assets/images/img_track_no_member_tips.webp


+ 4 - 1
lib/module/main/main_controller.dart

@@ -96,7 +96,6 @@ class MainController extends BaseController {
   RxMap<String, TodayTrackReportBean> get todayTrackReportMap =>
       todayTrackHelper.todayTrackReportMap;
 
-
   MainController(
       this.friendsRepository,
       this.accountRepository,
@@ -483,6 +482,10 @@ class MainController extends BaseController {
     onViewTraceClick(selectedUserInfo);
   }
 
+  void onTrackNoMemberClick() {
+    MemberPage.start();
+  }
+
   @override
   void onClose() {
     mineLocationSubscription?.cancel();

+ 47 - 36
lib/module/main/main_page.dart

@@ -104,30 +104,36 @@ class MainPage extends BasePage<MainController> {
         final visibleFraction = info.visibleFraction;
         controller.onFriendVisibleFraction(visibleFraction);
       },
-      child: Container(
-        margin: EdgeInsets.only(left: 12.w, right: 12.w, bottom: 12.w),
-        padding:
-            EdgeInsets.only(left: 12.w, right: 12.w, top: 12.w, bottom: 9.w),
-        decoration: BoxDecoration(
-            color: Colors.white, borderRadius: BorderRadius.circular(20.r)),
-        child: AspectRatio(
-          aspectRatio: 336 / 134,
-          child: Obx(() {
-            final todayTrack = controller.selectedFriend?.id == null
-                ? null
-                : controller.todayTrackReportMap[controller.selectedFriend?.id];
-            if (todayTrack == null ||
-                todayTrack.isRequestSuccess.value == false) {
-              return buildTodayTrackLoadingView();
-            } else {
-              return buildTodayTrackDetailView(todayTrack);
-            }
-          }),
-        ),
+      child: AspectRatio(
+        aspectRatio: 336 / 134,
+        child: Container(
+            margin: EdgeInsets.only(left: 12.w, right: 12.w, bottom: 12.w),
+            decoration: BoxDecoration(
+                color: Colors.white, borderRadius: BorderRadius.circular(20.r)),
+            child: Obx(() {
+              final todayTrack = controller.selectedFriend?.id == null
+                  ? null
+                  : controller
+                      .todayTrackReportMap[controller.selectedFriend?.id];
+              if (todayTrack?.noMember.value == true) {
+                return buildNoMemberView();
+              } else if (todayTrack == null ||
+                  todayTrack.isRequestSuccess.value == false) {
+                return buildTodayTrackLoadingView();
+              } else {
+                return buildTodayTrackDetailView(todayTrack);
+              }
+            })),
       ),
     );
   }
 
+  Widget buildNoMemberView() {
+    return GestureDetector(
+        onTap: controller.onTrackNoMemberClick,
+        child: Assets.images.imgTrackNoMemberTips.image(fit: BoxFit.fill));
+  }
+
   Widget buildTodayTrackLoadingView() {
     return Column(
       mainAxisAlignment: MainAxisAlignment.center,
@@ -148,22 +154,27 @@ class MainPage extends BasePage<MainController> {
     return GestureDetector(
       behavior: HitTestBehavior.opaque,
       onTap: controller.onTodayTraceClick,
-      child: Column(
-        children: [
-          Row(
-            children: [
-              Text(StringName.todaySimpleTrack,
-                  style: TextStyle(
-                      fontSize: 13.sp,
-                      color: '#333333'.color,
-                      fontWeight: FontWeight.bold)),
-              Spacer(),
-              Assets.images.iconMainTrackArrow.image(width: 10.w, height: 10.w),
-            ],
-          ),
-          SizedBox(height: 7.w),
-          buildSelectedFriendTodayTrackDetailView(todayTrackReportBean),
-        ],
+      child: Padding(
+        padding:
+            EdgeInsets.only(left: 12.w, right: 12.w, top: 12.w, bottom: 9.w),
+        child: Column(
+          children: [
+            Row(
+              children: [
+                Text(StringName.todaySimpleTrack,
+                    style: TextStyle(
+                        fontSize: 13.sp,
+                        color: '#333333'.color,
+                        fontWeight: FontWeight.bold)),
+                Spacer(),
+                Assets.images.iconMainTrackArrow
+                    .image(width: 10.w, height: 10.w),
+              ],
+            ),
+            SizedBox(height: 7.w),
+            buildSelectedFriendTodayTrackDetailView(todayTrackReportBean),
+          ],
+        ),
       ),
     );
   }

+ 0 - 1
lib/module/main/today_track_helper.dart

@@ -7,7 +7,6 @@ import 'package:location/data/repositories/track_repository.dart';
 import 'package:location/di/get_it.dart';
 import 'package:location/handler/error_handler.dart';
 import 'package:location/utils/http_handler.dart';
-import 'package:location/utils/toast_util.dart';
 import '../../data/bean/atmob_track_point.dart';
 import '../../data/bean/track_daily_bean.dart';
 

+ 6 - 1
lib/resource/assets.gen.dart

@@ -621,6 +621,10 @@ class $AssetsImagesGen {
   AssetGenImage get imgTrackNoData =>
       const AssetGenImage('assets/images/img_track_no_data.webp');
 
+  /// File path: assets/images/img_track_no_member_tips.webp
+  AssetGenImage get imgTrackNoMemberTips =>
+      const AssetGenImage('assets/images/img_track_no_member_tips.webp');
+
   /// List of all assets
   List<AssetGenImage> get values => [
         bgAddFriendDialog,
@@ -771,7 +775,8 @@ class $AssetsImagesGen {
         imgMemberRetainContainer,
         imgMemberUserCancelsContainer,
         imgTrackAiAnalyse,
-        imgTrackNoData
+        imgTrackNoData,
+        imgTrackNoMemberTips
       ];
 }