Bläddra i källkod

修改JobList 和 LabourReview 的列表样式

liukai 13 timmar sedan
förälder
incheckning
8cab2f8fcd

+ 2 - 2
app/android/app/build.gradle

@@ -50,8 +50,8 @@ android {
         applicationId "com.guadou.yyemployer"
         minSdkVersion 21
         targetSdkVersion 35
-        versionCode 307
-        versionName "3.0.7"
+        versionCode 308
+        versionName "3.0.8"
 
         multiDexEnabled true
 

+ 17 - 15
app/pubspec_overrides.yaml

@@ -1,30 +1,32 @@
-# melos_managed_dependency_overrides: cpt_auth,cs_resources,domain,initializer,plugin_basic,plugin_platform,router,shared,widgets,cpt_uk,cpt_vn,cpt_sg,cpt_ms,cpt_nl
+# melos_managed_dependency_overrides: cpt_auth,cs_resources,domain,initializer,plugin_basic,plugin_platform,router,shared,widgets,cpt_uk,cpt_vn,cpt_sg,cpt_ms,cpt_nl,cpt_th
 dependency_overrides:
   cpt_auth:
-    path: ..\\packages\\cpt_auth
+    path: ../packages/cpt_auth
   cpt_ms:
-    path: ..\\packages\\cpt_ms
+    path: ../packages/cpt_ms
   cpt_nl:
-    path: ..\\packages\\cpt_nl
+    path: ../packages/cpt_nl
   cpt_sg:
-    path: ..\\packages\\cpt_sg
+    path: ../packages/cpt_sg
+  cpt_th:
+    path: ../packages/cpt_th
   cpt_uk:
-    path: ..\\packages\\cpt_uk
+    path: ../packages/cpt_uk
   cpt_vn:
-    path: ..\\packages\\cpt_vn
+    path: ../packages/cpt_vn
   cs_resources:
-    path: ..\\packages\\cs_resources
+    path: ../packages/cs_resources
   domain:
-    path: ..\\packages\\cs_domain
+    path: ../packages/cs_domain
   initializer:
-    path: ..\\packages\\cs_initializer
+    path: ../packages/cs_initializer
   plugin_basic:
-    path: ..\\packages\\cs_plugin_basic
+    path: ../packages/cs_plugin_basic
   plugin_platform:
-    path: ..\\packages\\cs_plugin_platform
+    path: ../packages/cs_plugin_platform
   router:
-    path: ..\\packages\\cs_router
+    path: ../packages/cs_router
   shared:
-    path: ..\\packages\\cs_shared
+    path: ../packages/cs_shared
   widgets:
-    path: ..\\packages\\cs_widgets
+    path: ../packages/cs_widgets

+ 7 - 7
packages/cpt_auth/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 7 - 7
packages/cpt_ms/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 7 - 7
packages/cpt_nl/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 7 - 7
packages/cpt_sg/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 11 - 2
packages/cpt_th/lib/modules/job_er/applied_er/applied_er_controller.dart

@@ -29,6 +29,7 @@ class AppliedErController extends GetxController with DioCancelableMixin {
 
   var _curPage = 1;
   var _needShowPlaceholder = true;
+  var isSelectAll = false;
 
   //页面PlaceHolder的展示
   LoadState loadingState = LoadState.State_Success;
@@ -401,8 +402,16 @@ class AppliedErController extends GetxController with DioCancelableMixin {
 
   //全部选中
   void operationSelectAll() {
-    for (var element in state.datas) {
-      element.isSelected = true;
+    if (!isSelectAll) {
+      for (var element in state.datas) {
+        element.isSelected = true;
+      }
+      isSelectAll = true;
+    } else {
+      for (var element in state.datas) {
+        element.isSelected = false;
+      }
+      isSelectAll = false;
     }
     update();
   }

+ 246 - 281
packages/cpt_th/lib/modules/job_er/applied_er/applied_er_item.dart

@@ -6,6 +6,7 @@ import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 import 'package:plugin_basic/basic_export.dart';
+import 'package:plugin_basic/service/app_config_service.dart';
 import 'package:plugin_platform/engine/image/image_preview.dart';
 import 'package:shared/utils/util.dart';
 import 'package:widgets/ext/ex_widget.dart';
@@ -40,7 +41,7 @@ class AppliedErItem extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Container(
-      padding: const EdgeInsets.symmetric(vertical: 23, horizontal: 21),
+      padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 21),
       margin: const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
       decoration: BoxDecoration(
         color: const Color(0xFF4DCFF6).withOpacity(0.2), // 设置背景颜色和不透明度
@@ -89,22 +90,27 @@ class AppliedErItem extends StatelessWidget {
           ),
 
           //头像
-          // Visibility(
-          //   visible: ConfigService.to.isTHOAType,
-          //   child: Row(
-          //     mainAxisSize: MainAxisSize.max,
-          //     crossAxisAlignment: CrossAxisAlignment.center,
-          //     children: [
-          //       MyTextView(
-          //         "Avatar:",
-          //         isFontRegular: true,
-          //         textColor: ColorConstants.textGrayAECAE5,
-          //         fontSize: 14,
-          //       ),
-          //
-          //     ],
-          //   ).marginOnly(top:10),
-          // ),
+          Visibility(
+            visible: ConfigService.to.isTHOAType,
+            child: Row(
+              mainAxisSize: MainAxisSize.max,
+              crossAxisAlignment: CrossAxisAlignment.center,
+              children: [
+                MyTextView(
+                  "${"Avatar".tr}:",
+                  isFontRegular: true,
+                  marginRight: 10,
+                  textColor: ColorConstants.textGrayAECAE5,
+                  fontSize: 14,
+                ),
+                MyLoadImage(
+                  item.avatar,
+                  width: 50,
+                  height: 50,
+                ),
+              ],
+            ).marginOnly(top: 10),
+          ),
 
           // 服装大小
           Row(
@@ -135,299 +141,258 @@ class AppliedErItem extends StatelessWidget {
                 onClick: onMemberAction,
               ).expanded(),
             ],
-          ).marginOnly(top:10),
+          ).marginOnly(top: 10),
 
-          // 工作开始时间
+          // 工作开始时间,结束时间
           Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
             children: [
-              MyTextView(
-                "${"ID Card No.".tr}:",
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
-
-              //时间
-              MyTextView(
-                item.labourerNric ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
+              //开始时间
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Start Time:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //时间
+                  MyTextView(
+                    item.startTime ?? "-",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: Colors.white,
+                    fontSize: 14,
+                  ).expanded(),
+                ],
               ).expanded(),
-            ],
-          ).marginOnly(top:10),
-
-          // 工作开始时间
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Start Time:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //时间
-              MyTextView(
-                item.startTime ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
+              const SizedBox(width: 10),
+
+              //工作结束时间
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "End Time:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //时间
+                  MyTextView(
+                    item.endTime ?? "-",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: Colors.white,
+                    fontSize: 14,
+                  ).expanded(),
+                ],
               ).expanded(),
             ],
-          ).marginOnly(top:10),
+          ).marginOnly(top: 10),
 
-          // 门卫签到时间
+          //门卫签到
           Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
             children: [
-              MyTextView(
-                "Security In:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
-
-              //时间
-              MyTextView(
-                item.securityIn?.time ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: item.securityIn?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textGreen0AC074,
-                fontSize: 14,
-                onClick: (){
-                  if (Utils.isNotEmpty(item.securityIn?.image)){
-                    ImagePreviewEngine.singleImagePreview(context, item.securityIn!.image!);
-                  }
-                },
-                textDecoration: Utils.isNotEmpty(item.securityIn?.image) ? TextDecoration.underline : TextDecoration.none,
-                decorationColor: ColorConstants.textGreen0AC074,
-                decorationThickness: 2.0,
-                decorationStyle: TextDecorationStyle.solid,
+              // 门卫签到时间
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Security In:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //时间
+                  MyTextView(
+                    item.securityIn?.time ?? "-",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: item.securityIn?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textGreen0AC074,
+                    fontSize: 14,
+                    onClick: () {
+                      if (Utils.isNotEmpty(item.securityIn?.image)) {
+                        ImagePreviewEngine.singleImagePreview(context, item.securityIn!.image!);
+                      }
+                    },
+                    textDecoration: Utils.isNotEmpty(item.securityIn?.image) ? TextDecoration.underline : TextDecoration.none,
+                    decorationColor: ColorConstants.textGreen0AC074,
+                    decorationThickness: 2.0,
+                    decorationStyle: TextDecorationStyle.solid,
+                  ).expanded(),
+                ],
               ).expanded(),
-            ],
-          ).marginOnly(top:10),
-
-          // 工作地签到时间
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Work In:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //时间
-              MyTextView(
-                item.workIn?.time ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: item.workIn?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textGreen0AC074,
-                fontSize: 14,
-                onClick: (){
-                  if (Utils.isNotEmpty(item.workIn?.image)){
-                    ImagePreviewEngine.singleImagePreview(context, item.workIn!.image!);
-                  }
-                },
-                textDecoration: Utils.isNotEmpty(item.workIn?.image) ? TextDecoration.underline : TextDecoration.none,
-                decorationColor: ColorConstants.textGreen0AC074,
-                decorationThickness: 2.0,
-                decorationStyle: TextDecorationStyle.solid,
+              const SizedBox(width: 10),
+
+              // 门卫签出时间
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Security Out:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //时间
+                  MyTextView(
+                    item.securityOut?.time ?? "-",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: item.securityOut?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textYellowF8AE00,
+                    fontSize: 14,
+                    onClick: () {
+                      if (Utils.isNotEmpty(item.securityOut?.image)) {
+                        ImagePreviewEngine.singleImagePreview(context, item.securityOut!.image!);
+                      }
+                    },
+                    textDecoration: Utils.isNotEmpty(item.securityOut?.image) ? TextDecoration.underline : TextDecoration.none,
+                    decorationColor: ColorConstants.textYellowF8AE00,
+                    decorationThickness: 2.0,
+                    decorationStyle: TextDecorationStyle.solid,
+                  ).expanded(),
+                ],
               ).expanded(),
             ],
-          ).marginOnly(top:10),
+          ).marginOnly(top: 10),
 
-          //工作结束时间
+          //工作地签到
           Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
             children: [
-              MyTextView(
-                "End Time:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
-
-              //时间
-              MyTextView(
-                item.endTime ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
+              // 工作地签到时间
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Work In:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //时间
+                  MyTextView(
+                    item.workIn?.time ?? "-",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: item.workIn?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textGreen0AC074,
+                    fontSize: 14,
+                    onClick: () {
+                      if (Utils.isNotEmpty(item.workIn?.image)) {
+                        ImagePreviewEngine.singleImagePreview(context, item.workIn!.image!);
+                      }
+                    },
+                    textDecoration: Utils.isNotEmpty(item.workIn?.image) ? TextDecoration.underline : TextDecoration.none,
+                    decorationColor: ColorConstants.textGreen0AC074,
+                    decorationThickness: 2.0,
+                    decorationStyle: TextDecorationStyle.solid,
+                  ).expanded(),
+                ],
               ).expanded(),
-            ],
-          ).marginOnly(top:10),
-
-          // 工作地签出时间
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Work Out:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //时间
-              MyTextView(
-                item.workOut?.time ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: item.workOut?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textYellowF8AE00,
-                fontSize: 14,
-                onClick: (){
-                  if (Utils.isNotEmpty(item.workOut?.image)){
-                    ImagePreviewEngine.singleImagePreview(context, item.workOut!.image!);
-                  }
-                },
-                textDecoration: Utils.isNotEmpty(item.workOut?.image) ? TextDecoration.underline : TextDecoration.none,
-                decorationColor: ColorConstants.textYellowF8AE00,
-                decorationThickness: 2.0,
-                decorationStyle: TextDecorationStyle.solid,
+              const SizedBox(width: 10),
+
+              // 工作地签出时间
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Work Out:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //时间
+                  MyTextView(
+                    item.workOut?.time ?? "-",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: item.workOut?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textYellowF8AE00,
+                    fontSize: 14,
+                    onClick: () {
+                      if (Utils.isNotEmpty(item.workOut?.image)) {
+                        ImagePreviewEngine.singleImagePreview(context, item.workOut!.image!);
+                      }
+                    },
+                    textDecoration: Utils.isNotEmpty(item.workOut?.image) ? TextDecoration.underline : TextDecoration.none,
+                    decorationColor: ColorConstants.textYellowF8AE00,
+                    decorationThickness: 2.0,
+                    decorationStyle: TextDecorationStyle.solid,
+                  ).expanded(),
+                ],
               ).expanded(),
-            ],
-          ).marginOnly(top:10),
-
-          // 门卫签出时间
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Security Out:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //时间
-              MyTextView(
-                item.securityOut?.time ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: item.securityOut?.changed == 1 ? ColorConstants.textRedFF6262 : ColorConstants.textYellowF8AE00,
-                fontSize: 14,
-                onClick: (){
-                  if (Utils.isNotEmpty(item.securityOut?.image)){
-                    ImagePreviewEngine.singleImagePreview(context, item.securityOut!.image!);
-                  }
-                },
-                textDecoration: Utils.isNotEmpty(item.securityOut?.image) ? TextDecoration.underline : TextDecoration.none,
-                decorationColor: ColorConstants.textYellowF8AE00,
-                decorationThickness: 2.0,
-                decorationStyle: TextDecorationStyle.solid,
-              ).expanded(),
             ],
-          ).marginOnly(top:10),
+          ).marginOnly(top: 10),
 
-          // + - Hours
+          //工作时长
           Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
             children: [
-              MyTextView(
-                "+/- Hours:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //小时
-              MyTextView(
-                item.adjustHours ?? "0",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
+              // + - Hours
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "+/- Hours:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //小时
+                  MyTextView(
+                    item.adjustHours ?? "0",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: Colors.white,
+                    fontSize: 14,
+                  ).expanded(),
+                ],
               ).expanded(),
-            ],
-          ).marginOnly(top:10),
-
-          // Total Hours
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Total Hours:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //小时
-              MyTextView(
-                item.totalHours ?? "0",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
+              const SizedBox(width: 10),
+
+              // Total Hours
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Total Hours:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //小时
+                  MyTextView(
+                    item.totalHours ?? "0",
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: Colors.white,
+                    fontSize: 14,
+                  ).expanded(),
+                ],
               ).expanded(),
+
             ],
-          ).marginOnly(top:10),
-
-          // // Total Rooms
-          // Visibility(
-          //   visible: jobInfo?.jobUnit != "hour",
-          //   child: Row(
-          //     mainAxisSize: MainAxisSize.max,
-          //     crossAxisAlignment: CrossAxisAlignment.center,
-          //     children: [
-          //       MyTextView(
-          //         "Total Rooms:".tr,
-          //         isFontRegular: true,
-          //         textColor: ColorConstants.textGrayAECAE5,
-          //         fontSize: 14,
-          //       ),
-          //
-          //       //小时
-          //       MyTextView(
-          //         item.totalRooms.toString(),
-          //         marginLeft: 5,
-          //         isFontRegular: true,
-          //         textColor: Colors.white,
-          //         fontSize: 14,
-          //       ).expanded(),
-          //     ],
-          //   ).marginOnly(top:10),
-          // ),
-
-          // // 申请时间
-          // Row(
-          //   mainAxisSize: MainAxisSize.max,
-          //   crossAxisAlignment: CrossAxisAlignment.center,
-          //   children: [
-          //     MyTextView(
-          //       "Applied At:".tr,
-          //       isFontRegular: true,
-          //       textColor: ColorConstants.textGrayAECAE5,
-          //       fontSize: 14,
-          //     ),
-          //
-          //     //发布状态
-          //     MyTextView(
-          //       item.appliedAt ?? "-",
-          //       marginLeft: 5,
-          //       isFontRegular: true,
-          //       textColor: Colors.white,
-          //       fontSize: 14,
-          //     ).expanded(),
-          //   ],
-          // ).marginOnly(top:10),
+          ).marginOnly(top: 10),
 
           // 状态
           Row(
@@ -456,7 +421,7 @@ class AppliedErItem extends StatelessWidget {
                 fontSize: 14,
               ).expanded(),
             ],
-          ).marginOnly(top:10),
+          ).marginOnly(top: 10),
 
           //按钮组
           Visibility(

+ 11 - 2
packages/cpt_th/lib/modules/labour/labour_review_list/labour_review_controller.dart

@@ -23,6 +23,7 @@ class LabourReviewController extends GetxController with DioCancelableMixin {
   final THOARepository _thRepository = Get.find();
   final LabourReviewState state = LabourReviewState();
 
+  var isSelectAll = false;
   var _curPage = 1;
   var _needShowPlaceholder = true;
 
@@ -354,8 +355,16 @@ class LabourReviewController extends GetxController with DioCancelableMixin {
 
   // 全部选择
   void operationSelectAll() {
-    for (var element in state.datas) {
-      element.isSelected = true;
+    if (!isSelectAll) {
+      for (var element in state.datas) {
+        element.isSelected = true;
+      }
+      isSelectAll = true;
+    } else {
+      for (var element in state.datas) {
+        element.isSelected = false;
+      }
+      isSelectAll = false;
     }
     update();
   }

+ 52 - 93
packages/cpt_th/lib/modules/labour/labour_review_list/labour_review_item.dart

@@ -33,7 +33,7 @@ class LabourReviewItem extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Container(
-      padding: const EdgeInsets.symmetric(vertical: 23, horizontal: 21),
+      padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 21),
       margin: const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
       decoration: BoxDecoration(
         color: const Color(0xFF4DCFF6).withOpacity(0.2), // 设置背景颜色和不透明度
@@ -56,12 +56,6 @@ class LabourReviewItem extends StatelessWidget {
                 fontSize: 14,
                 marginLeft: 5,
                 marginRight: 5,
-                textDecoration: TextDecoration.underline,
-                decorationColor: ColorConstants.textYellowFFBB1B,
-                // 可选,设置下划线的颜色
-                decorationThickness: 2.0,
-                // 可选,设置下划线的粗细
-                decorationStyle: TextDecorationStyle.solid,
               ).expanded(),
 
               //是否选中
@@ -119,103 +113,68 @@ class LabourReviewItem extends StatelessWidget {
             ],
           ).marginOnly(top:10),
 
-          // 人数
           Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
             children: [
-              MyTextView(
-                "${"Manpower Needed".tr}:",
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
-
-              //人数
-              MyTextView(
-                item.hiringNum.toString(),
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
+              // 人数
+              Row(
+
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "${"Manpower Needed".tr}:",
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //人数
+                  MyTextView(
+                    item.hiringNum.toString(),
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: Colors.white,
+                    fontSize: 14,
+                  ).expanded(),
+                ],
               ).expanded(),
-            ],
-          ).marginOnly(top:10),
 
-          // 薪水
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "${"Hourly Rate".tr}:",
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
-
-              //发布状态
-              MyTextView(
-                item.hourlyRate ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
-              ).expanded(),
-            ],
-          ).marginOnly(top:10),
 
-          // 状态
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Status:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
-
-              //状态
-              MyTextView(
-                item.statusShow == null ? "" : item.statusShow!.tr,
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: "Approved" == item.statusShow
-                    ? ColorConstants.textGreen05DC82
-                    : "Rejected" == item.statusShow
+              const SizedBox(width: 10),
+
+              // 状态
+              Row(
+                mainAxisSize: MainAxisSize.max,
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  MyTextView(
+                    "Status:".tr,
+                    isFontRegular: true,
+                    textColor: ColorConstants.textGrayAECAE5,
+                    fontSize: 14,
+                  ),
+
+                  //状态
+                  MyTextView(
+                    item.statusShow == null ? "" : item.statusShow!.tr,
+                    marginLeft: 5,
+                    isFontRegular: true,
+                    textColor: "Approved" == item.statusShow
+                        ? ColorConstants.textGreen05DC82
+                        : "Rejected" == item.statusShow
                         ? ColorConstants.textRedFF6262
                         : "Recall" == item.statusShow
-                            ? ColorConstants.textYellowFFBB1B
-                            : ColorConstants.textBlue06D9FF,
-                fontSize: 14,
+                        ? ColorConstants.textYellowFFBB1B
+                        : ColorConstants.textBlue06D9FF,
+                    fontSize: 14,
+                  ).expanded(),
+                ],
               ).expanded(),
+
             ],
           ).marginOnly(top:10),
 
-          // 创建时间
-          Row(
-            mainAxisSize: MainAxisSize.max,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              MyTextView(
-                "Created At:".tr,
-                isFontRegular: true,
-                textColor: ColorConstants.textGrayAECAE5,
-                fontSize: 14,
-              ),
 
-              //发布状态
-              MyTextView(
-                item.createdAt ?? "-",
-                marginLeft: 5,
-                isFontRegular: true,
-                textColor: Colors.white,
-                fontSize: 14,
-              ).expanded(),
-            ],
-          ).marginOnly(top:10),
 
           //按钮组
           Visibility(
@@ -276,7 +235,7 @@ class LabourReviewItem extends StatelessWidget {
                   ).marginOnly(left: 12),
                 ),
               ],
-            ).marginOnly(top: 18, bottom: 2),
+            ).marginOnly(top: 12, bottom: 2),
           ),
         ],
       ),

+ 7 - 7
packages/cpt_uk/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 7 - 7
packages/cpt_vn/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 1 - 0
packages/cs_domain/lib/entity/response/t_h_applied_table_entity.dart

@@ -25,6 +25,7 @@ class THAppliedTableRows {
 	String? id;
 	@JSONField(name: "member_id")
 	String? memberId;
+	String? avatar;
 	@JSONField(name: "s_id")
 	String? sId;
 	@JSONField(name: "job_title")

+ 7 - 0
packages/cs_domain/lib/generated/json/t_h_applied_table_entity.g.dart

@@ -43,6 +43,10 @@ THAppliedTableRows $THAppliedTableRowsFromJson(Map<String, dynamic> json) {
   if (memberId != null) {
     tHAppliedTableRows.memberId = memberId;
   }
+  final String? avatar = jsonConvert.convert<String>(json['avatar']);
+  if (avatar != null) {
+    tHAppliedTableRows.avatar = avatar;
+  }
   final String? sId = jsonConvert.convert<String>(json['s_id']);
   if (sId != null) {
     tHAppliedTableRows.sId = sId;
@@ -162,6 +166,7 @@ Map<String, dynamic> $THAppliedTableRowsToJson(THAppliedTableRows entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['member_id'] = entity.memberId;
+  data['avatar'] = entity.avatar;
   data['s_id'] = entity.sId;
   data['job_title'] = entity.jobTitle;
   data['outlet_name'] = entity.outletName;
@@ -197,6 +202,7 @@ extension THAppliedTableRowsExtension on THAppliedTableRows {
   THAppliedTableRows copyWith({
     String? id,
     String? memberId,
+    String? avatar,
     String? sId,
     String? jobTitle,
     String? outletName,
@@ -229,6 +235,7 @@ extension THAppliedTableRowsExtension on THAppliedTableRows {
     return THAppliedTableRows()
       ..id = id ?? this.id
       ..memberId = memberId ?? this.memberId
+      ..avatar = avatar ?? this.avatar
       ..sId = sId ?? this.sId
       ..jobTitle = jobTitle ?? this.jobTitle
       ..outletName = outletName ?? this.outletName

+ 8 - 1
packages/cs_domain/lib/generated/json/t_h_o_a_labour_review_table_entity.g.dart

@@ -99,6 +99,10 @@ THOALabourReviewTableRows $THOALabourReviewTableRowsFromJson(Map<String, dynamic
   if (isOt != null) {
     tHOALabourReviewTableRows.isOt = isOt;
   }
+  final bool? isSelected = jsonConvert.convert<bool>(json['isSelected']);
+  if (isSelected != null) {
+    tHOALabourReviewTableRows.isSelected = isSelected;
+  }
   return tHOALabourReviewTableRows;
 }
 
@@ -120,6 +124,7 @@ Map<String, dynamic> $THOALabourReviewTableRowsToJson(THOALabourReviewTableRows
   data['att_num'] = entity.attNum;
   data['position_name'] = entity.positionName;
   data['is_ot'] = entity.isOt;
+  data['isSelected'] = entity.isSelected;
   return data;
 }
 
@@ -141,6 +146,7 @@ extension THOALabourReviewTableRowsExtension on THOALabourReviewTableRows {
     int? attNum,
     String? positionName,
     int? isOt,
+    bool? isSelected,
   }) {
     return THOALabourReviewTableRows()
       ..recordId = recordId ?? this.recordId
@@ -158,6 +164,7 @@ extension THOALabourReviewTableRowsExtension on THOALabourReviewTableRows {
       ..hiringNum = hiringNum ?? this.hiringNum
       ..attNum = attNum ?? this.attNum
       ..positionName = positionName ?? this.positionName
-      ..isOt = isOt ?? this.isOt;
+      ..isOt = isOt ?? this.isOt
+      ..isSelected = isSelected ?? this.isSelected;
   }
 }

+ 4 - 4
packages/cs_domain/pubspec_overrides.yaml

@@ -1,10 +1,10 @@
 # melos_managed_dependency_overrides: cs_resources,plugin_platform,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 7 - 7
packages/cs_initializer/pubspec_overrides.yaml

@@ -1,16 +1,16 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_basic,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_basic:
-    path: ..\\cs_plugin_basic
+    path: ../cs_plugin_basic
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 6 - 6
packages/cs_plugin_basic/pubspec_overrides.yaml

@@ -1,14 +1,14 @@
 # melos_managed_dependency_overrides: cs_resources,domain,plugin_platform,router,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   domain:
-    path: ..\\cs_domain
+    path: ../cs_domain
   plugin_platform:
-    path: ..\\cs_plugin_platform
+    path: ../cs_plugin_platform
   router:
-    path: ..\\cs_router
+    path: ../cs_router
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 3 - 3
packages/cs_plugin_platform/pubspec_overrides.yaml

@@ -1,8 +1,8 @@
 # melos_managed_dependency_overrides: cs_resources,shared,widgets
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared
   widgets:
-    path: ..\\cs_widgets
+    path: ../cs_widgets

+ 1 - 0
packages/cs_resources/lib/local/language/en_US.dart

@@ -317,6 +317,7 @@ const Map<String, String> en_US = {
   'Choose Attachment': 'Choose Attachment',
   'Add File': 'Add File',
   'Url': 'Url',
+  'Avatar': 'Avatar',
 
   //插件的国际化
   'Pull to refresh': 'Pull to refresh',

+ 1 - 0
packages/cs_resources/lib/local/language/th_TH.dart

@@ -317,6 +317,7 @@ const Map<String, String> th_TH = {
   'Choose Attachment': 'เลือกไฟล์แนบ',
   'Add File': 'เพิ่มไฟล์',
   'Url': 'ลิงก์',
+  'Avatar': 'อวาตาร์',
 
   // การแปลของปลั๊กอิน
   'Pull to refresh': 'ดึงเพื่อรีเฟรช',

+ 1 - 0
packages/cs_resources/lib/local/language/zh_CN.dart

@@ -317,6 +317,7 @@ const Map<String, String> zh_CN = {
   'Choose Attachment': '选择附件',
   'Add File': '添加文件',
   'Url': '链接',
+  'Avatar': '头像',
 
   //插件的国际化
   'Pull to refresh': '下拉刷新',

+ 2 - 2
packages/cs_widgets/pubspec_overrides.yaml

@@ -1,6 +1,6 @@
 # melos_managed_dependency_overrides: cs_resources,shared
 dependency_overrides:
   cs_resources:
-    path: ..\\cs_resources
+    path: ../cs_resources
   shared:
-    path: ..\\cs_shared
+    path: ../cs_shared