glglove 2 maanden geleden
bovenliggende
commit
9fc710ed28

+ 27 - 26
packages/cpt_community/lib/components/newsfeed_card_content.dart

@@ -9,6 +9,7 @@ import 'package:flutter/widgets.dart';
 import 'package:plugin_basic/modules/global_web_page.dart';
 import 'package:plugin_basic/modules/preview_photo_page.dart';
 import 'package:plugin_basic/router/basic_page_router.dart';
+import 'package:plugin_platform/engine/image/image_preview.dart';
 import 'package:router/componentRouter/component_service_manager.dart';
 import 'package:router/ext/auto_router_extensions.dart';
 import 'package:shared/utils/color_utils.dart';
@@ -17,15 +18,6 @@ import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
 
-// 'id':1,
-// 'avator': Assets.communityCamera,
-// 'title': 'William Jefferson',
-// 'isFollow': false,
-// 'content': 'She said YES and our lives changed.Thank you all for coming to my propose today.We hope everyone can ……[More]',
-// 'imageUrls': ['https://img2.baidu.com/it/u=3489233687,2364672159&fm=253&fmt=auto&app=120&f=JPEG?w=507&h=500','https://img2.baidu.com/it/u=3489233687,2364672159&fm=253&fmt=auto&app=120&f=JPEG?w=507&h=500','https://img2.baidu.com/it/u=3489233687,2364672159&fm=253&fmt=auto&app=120&f=JPEG?w=507&h=500'],
-// 'time': 'June 17,2016 at 7:23 p.m.',
-// 'likeno': 12
-
 class NewsFeedCardContent extends StatelessWidget {
   final String content;
   final List<dynamic>? imageUrls;
@@ -109,23 +101,32 @@ class NewsFeedCardContent extends StatelessWidget {
                 color: ColorUtils.string2Color("#F2F3F6"),
                 child:Stack(
                     children: [
-                      MyLoadImage(
-                        imageUrls[index],
-                        height: 87,
-                        // width: maxWidth/imageCount - 16,
-                        width: (totalImageCount < rowMaxImageNum)? maxWidth/rowMaxImageNum - 16 : maxWidth/imageCount - 16,
-                        fit: BoxFit.cover,
-                        // fit:BoxFit.fitWidth,
-                        cornerRadius: 5,
-                        onClick: (){
-                          if(isPreviewImage){
-                            // 点击图片预览
-                            // 过滤掉非字符串类型的元素
-                            List<String> filteredImages = totalImageUrls?.whereType<String>().toList() ?? [];
-                            // PreviewPhotoPage.startInstance(context: context, images: filteredImages, position: index);
-                            context.appRouter.push(PreviewPhotoPageRoute(images: filteredImages, position: index));
-                          }
-                        },
+                      Hero(
+                        tag: imageUrls[index],
+                        child: MyLoadImage(
+                          imageUrls[index],
+                          height: 87,
+                          // width: maxWidth/imageCount - 16,
+                          width: (totalImageCount < rowMaxImageNum)? maxWidth/rowMaxImageNum - 16 : maxWidth/imageCount - 16,
+                          fit: BoxFit.cover,
+                          // fit:BoxFit.fitWidth,
+                          cornerRadius: 5,
+                          onClick: (){
+                            if(isPreviewImage){
+                              // 点击图片预览
+                              // 过滤掉非字符串类型的元素
+                              List<String> filteredImages = totalImageUrls?.whereType<String>().toList() ?? [];
+                              // PreviewPhotoPage.startInstance(context: context, images: filteredImages, position: index);
+                              context.appRouter.push(PreviewPhotoPageRoute(images: filteredImages, position: index));
+                              // ImagePreviewEngine.multipleImagePreview(
+                              //     context,
+                              //     filteredImages,
+                              //     heroes: List.generate(filteredImages.length, (index) => filteredImages[index]),
+                              //     onLongPressAction: (url) {}
+                              // );
+                            }
+                          },
+                        ),
                       ),
                       otherImageCount > 0 && index == imageCount-1 ?
                         Positioned(

+ 14 - 12
packages/cpt_community/lib/modules/community/community_page.dart

@@ -271,20 +271,22 @@ class CommunityPage extends HookConsumerWidget with WidgetsBindingObserver {
        }
        return Container(
         width: double.infinity,
-        padding: const EdgeInsets.only(left: 15, right: 15,top: 14,bottom: 12),
         color: ColorUtils.string2Color('#F2F3F6'),
-        child: NewsfeedTabs(
-          key: UniqueKey(),
-          tabsList: tabsList,
-            tabsRouter: tabsRouter,
-          onClickAction:(Map<String, dynamic>? params){
-            if (params != null) {
-              // 解构 params
-              final int? currentCatgoryIdx = params['currentCatgoryIdx'] as int?;
-              final int? tabIdx = params['tabIdx'] as int?;
-              vm.handlerChangeTab(tabIdx, tabsRouter, currentCatgoryIdx);
+        child: Center(
+          child: NewsfeedTabs(
+            key: UniqueKey(),
+            tabsList: tabsList,
+              tabsRouter: tabsRouter,
+            margin: EdgeInsets.only(top: 14,bottom: 12, left: 20, right: 20),
+            onClickAction:(Map<String, dynamic>? params){
+              if (params != null) {
+                // 解构 params
+                final int? currentCatgoryIdx = params['currentCatgoryIdx'] as int?;
+                final int? tabIdx = params['tabIdx'] as int?;
+                vm.handlerChangeTab(tabIdx, tabsRouter, currentCatgoryIdx);
+              }
             }
-          }
+          ),
         ),
       );
     }

+ 5 - 6
packages/cpt_community/lib/modules/community/newsfeed_tabs.dart

@@ -19,12 +19,14 @@ class NewsfeedTabs extends HookConsumerWidget {
   Widget? Function(BuildContext)? tabItemBuilder;
   dynamic? tabsRouter;
   void Function(Map<String, dynamic>)? onClickAction;
+  EdgeInsets? margin;
   NewsfeedTabs({
     Key? key,
     required this.tabsList,
     this.tabsRouter,
     this.onClickAction,
-    this.tabItemBuilder
+    this.tabItemBuilder,
+    this.margin = const EdgeInsets.only(top: 10, bottom: 10, left: 20, right: 20),
   }) : super(key: key);
 
   Widget _buildTabItem(BuildContext context, WidgetRef ref, vm, item, index) {
@@ -67,7 +69,6 @@ class NewsfeedTabs extends HookConsumerWidget {
           lastNewsFeedTabIdx = newValue;
           currentCatgoryIdx = 0;
           Log.d("-从garagesale  切换到 newsfeed---------------currentCatgoryIdx  $currentCatgoryIdx------lastNewsFeedTabIdx: $lastNewsFeedTabIdx, lastGarageTabIdx: $lastGarageTabIdx---------------");
-
         }else {
           lastGarageTabIdx = newValue - newsfeedTabCount;
           lastNewsFeedTabIdx = providerCommunityState.lastNewsfeedTabIdx;
@@ -91,9 +92,9 @@ class NewsfeedTabs extends HookConsumerWidget {
       curTabIdx = activePageIdx;
     }
     return Container(
-      width: MediaQuery.of(context).size.width / tabsList.length - 30,
+      width: MediaQuery.of(context).size.width / tabsList.length - margin!.left - margin!.right,
       height: 43,
-      padding: const EdgeInsets.only(top: 10, bottom: 10, left: 10, right: 10),
+      margin: margin,
       decoration: index==curTabIdx? BoxDecoration(
         color: index==curTabIdx? context.appColors.btnBgDefault: ColorUtils.string2Color("#F2F3F6"),
         borderRadius: BorderRadius.circular(20),
@@ -164,8 +165,6 @@ class NewsfeedTabs extends HookConsumerWidget {
         mainAxisAlignment: MainAxisAlignment.center,
         crossAxisAlignment: CrossAxisAlignment.center,
         children: _buildTabs(context, ref, vm),
-      ).constrained(
-          maxWidth:  MediaQuery.of(context).size.width
       ),
     );
   }

+ 1 - 1
packages/cpt_community/lib/modules/my_following/my_following_page.dart

@@ -46,11 +46,11 @@ class MyFollowingPage extends HookConsumerWidget {
     final vm = ref.read(myFollowingVmProvider.notifier);
     return Container(
       width: double.infinity,
-      padding: const EdgeInsets.only(left: 15, right: 15,top: 14,bottom: 14),
       child: MyFollowingTabs(
           key: UniqueKey(),
           tabsList: state.tabsList,
           tabsRouter: tabsRouter,
+          margin: EdgeInsets.only(top: 14,bottom: 12, left: 20, right: 20),
           onClickAction:(activeTabIdx){
             vm.handlerChangeTab.call(activeTabIdx, tabsRouter);
           }

+ 5 - 3
packages/cpt_community/lib/modules/my_following/my_following_tabs.dart

@@ -19,12 +19,14 @@ class MyFollowingTabs extends HookConsumerWidget {
   Widget? Function(BuildContext)? tabItemBuilder;
   dynamic? tabsRouter;
   void Function(int)? onClickAction;
+  EdgeInsets? margin;
   MyFollowingTabs({
     Key? key,
     required this.tabsList,
     this.tabsRouter,
     this.onClickAction,
-    this.tabItemBuilder
+    this.tabItemBuilder,
+    this.margin = const EdgeInsets.only(top: 10, bottom: 10, left: 20, right: 20),
   }) : super(key: key);
 
   Widget _buildTabItem(BuildContext context, WidgetRef ref, vm,state, item, index, int activeTabCounter) {
@@ -36,9 +38,9 @@ class MyFollowingTabs extends HookConsumerWidget {
 
 
     return Container(
-      width: MediaQuery.of(context).size.width / vm.state.tabsList.length - 30,
+      width: MediaQuery.of(context).size.width / tabsList.length - margin!.left - margin!.right,
       height: 43,
-      padding: const EdgeInsets.only(top: 10, bottom: 10, left: 10, right: 10),
+      margin: margin,
       decoration: index==activeTabIdx? BoxDecoration(
         color: index==activeTabIdx? context.appColors.btnBgDefault: ColorUtils.string2Color("#F2F3F6"),
         borderRadius: BorderRadius.circular(20),

+ 1 - 1
packages/cpt_property/lib/modules/news/page/property_news_page.dart

@@ -121,7 +121,7 @@ class PropertyNewsPage extends HookConsumerWidget {
                   children: [
                     Expanded(
                       child: MyTextView(
-                        Utils.getTimeAgo(item['time']),
+                        Utils.getTimeAgo(item['created_at']),
                         maxLines: 1, // 设置最大行数为1
                         isTextEllipsis: true, // 超出部分用省略号表示
                         fontSize: 12,

+ 14 - 0
packages/cs_resources/lib/generated/assets.dart

@@ -59,6 +59,7 @@ class Assets {
   static const String communityPhone = 'assets/community/phone.png';
   static const String communityShare = 'assets/community/share.webp';
   static const String communityWhatsAPP = 'assets/community/WhatsAPP.png';
+  static const String constantsColorConstants = 'lib/constants/color_constants.dart';
   static const String facilityActiveIcon = 'assets/facility/active_icon.webp';
   static const String facilityAddCardAmerican = 'assets/facility/add_card_american.webp';
   static const String facilityAddCardMaster = 'assets/facility/add_card_master.webp';
@@ -89,6 +90,16 @@ class Assets {
   static const String formOvernight = 'assets/form/overnight.webp';
   static const String formRenovation = 'assets/form/renovation.webp';
   static const String formSubmitIcon = 'assets/form/submit_icon.webp';
+  static const String generatedAssets = 'lib/generated/assets.dart';
+  static const String generatedL10n = 'lib/generated/l10n.dart';
+  static const String intlMessagesAll = 'lib/generated/intl/messages_all.dart';
+  static const String intlMessagesEn = 'lib/generated/intl/messages_en.dart';
+  static const String intlMessagesZhCN = 'lib/generated/intl/messages_zh_CN.dart';
+  static const String intlMessagesZhHK = 'lib/generated/intl/messages_zh_HK.dart';
+  static const String l10nIntlEn = 'lib/l10n/intl_en.arb';
+  static const String l10nIntlZhCN = 'lib/l10n/intl_zh_CN.arb';
+  static const String l10nIntlZhHK = 'lib/l10n/intl_zh_HK.arb';
+  static const String l10nMergeArb = 'lib/l10n/merge_arb';
   static const String mainAccountDeactivationImg = 'assets/main/account_deactivation_img.webp';
   static const String mainFeedbackHistory = 'assets/main/feedback_history.webp';
   static const String mainFeedbackInProgress = 'assets/main/feedback_in_progress.webp';
@@ -239,5 +250,8 @@ class Assets {
   static const String serviceServiceIcon9 = 'assets/service/service_icon_9.png';
   static const String serviceServiceScoreNo = 'assets/service/service_score_no.png';
   static const String serviceServiceScoreYes = 'assets/service/service_score_yes.png';
+  static const String themeAppColorsTheme = 'lib/theme/app_colors_theme.dart';
+  static const String themeThemeConfig = 'lib/theme/theme_config.dart';
+  static const String themeThemeNotifier = 'lib/theme/theme_notifier.dart';
 
 }

+ 2 - 0
packages/cs_shared/lib/utils/util.dart

@@ -4,6 +4,7 @@ import 'dart:io';
 import 'dart:math';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
+import 'log_utils.dart';
 
 class Utils {
   /// 是否字符串为空
@@ -170,6 +171,7 @@ class Utils {
     }
   }
 
+
   /// 从 Url 中找到对应的宽高
   static List<double>? extractWidthHeight(String? url) {
     if (isEmpty(url)) return null;

+ 1 - 0
packages/cs_shared/pubspec.yaml

@@ -26,5 +26,6 @@ dependencies:
   crypto: ^3.0.3
   convert: 3.1.1
 
+
 flutter:
   uses-material-design: true