Bladeren bron

反馈的修改

liukai 6 maanden geleden
bovenliggende
commit
ff60c1ec06

+ 0 - 1
app/android/app/build.gradle

@@ -2,7 +2,6 @@ plugins {
     id "com.android.application"
     id "kotlin-android"
     id "kotlin-kapt"
-    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
     id "dev.flutter.flutter-gradle-plugin"
 }
 

+ 9 - 9
packages/cpt_job_sg/lib/modules/job_applied/applied_staff_item.dart

@@ -40,10 +40,10 @@ class AppliedStaffItem extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Container(
-      padding: EdgeInsets.symmetric(vertical: 23, horizontal: 21),
-      margin: EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
+      padding: const EdgeInsets.symmetric(vertical: 23, horizontal: 21),
+      margin: const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
       decoration: BoxDecoration(
-        color: Color(0xFF4DCFF6).withOpacity(0.2), // 设置背景颜色和不透明度
+        color: const Color(0xFF4DCFF6).withOpacity(0.2), // 设置背景颜色和不透明度
         borderRadius: BorderRadius.circular(5), // 设置圆角
       ),
       child: Column(
@@ -97,7 +97,7 @@ class AppliedStaffItem extends StatelessWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "Nric".tr + ":",
+                "${"Nric".tr}:",
                 isFontRegular: true,
                 textColor: ColorConstants.textGrayAECAE5,
                 fontSize: 14,
@@ -118,7 +118,7 @@ class AppliedStaffItem extends StatelessWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "Gender".tr + ":",
+                "${"Gender".tr}:",
                 isFontRegular: true,
                 textColor: ColorConstants.textGrayAECAE5,
                 fontSize: 14,
@@ -139,7 +139,7 @@ class AppliedStaffItem extends StatelessWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "Outlet".tr + ":",
+                "${"Outlet".tr}:",
                 isFontRegular: true,
                 textColor: ColorConstants.textGrayAECAE5,
                 fontSize: 14,
@@ -160,7 +160,7 @@ class AppliedStaffItem extends StatelessWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "Ballroom".tr + ":",
+                "${"Ballroom".tr}:",
                 isFontRegular: true,
                 textColor: ColorConstants.textGrayAECAE5,
                 fontSize: 14,
@@ -202,7 +202,7 @@ class AppliedStaffItem extends StatelessWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "Work Clock In".tr + ":",
+                "${"Work Clock In".tr}:",
                 isFontRegular: true,
                 textColor: ColorConstants.textGrayAECAE5,
                 fontSize: 14,
@@ -248,7 +248,7 @@ class AppliedStaffItem extends StatelessWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "Work Clock Out".tr + ":",
+                "${"Work Clock Out".tr}:",
                 isFontRegular: true,
                 textColor: ColorConstants.textGrayAECAE5,
                 fontSize: 14,

+ 21 - 4
packages/cpt_job_sg/lib/modules/job_applied/job_applied_controller.dart

@@ -157,6 +157,7 @@ class JobAppliedController extends GetxController with DioCancelableMixin {
   @override
   void onClose() {
     unregisterEventBus();
+    state.cb?.call(state.jobId);
     state.datas.clear();
     super.onClose();
   }
@@ -382,6 +383,12 @@ class JobAppliedController extends GetxController with DioCancelableMixin {
 
   /// 请求接口发送电子考勤,确定考勤
   void confirmJob() {
+    //如果当前没有员工则无需发送考勤
+    if (state.datas.isEmpty) {
+      ToastEngine.show('There are no staff for this job, E-Attendance cannot be sent');
+      return;
+    }
+
     DialogEngine.show(
       widget: AppDefaultDialog(
           title: "Notice".tr,
@@ -451,14 +458,14 @@ class JobAppliedController extends GetxController with DioCancelableMixin {
       widget: DropDownStatus(
         list: statusOptions,
         onSelectedAction: (item) {
-          _changeMemberStatus(state.datas[index].appliedId, item.value);
+          _changeMemberStatus(state.datas[index].appliedId, item.value, index);
         },
       ),
     );
   }
 
   // 请求接口修改用户的状态
-  void _changeMemberStatus(String? appliedId, String? statusId) async {
+  void _changeMemberStatus(String? appliedId, String? statusId, int index) async {
     //执行请求
     var result = await _jobRepository.submitEditAppliedStatus(
       appliedId,
@@ -469,8 +476,18 @@ class JobAppliedController extends GetxController with DioCancelableMixin {
     if (result.isSuccess) {
       NotifyEngine.showSuccess("Successful".tr);
 
-      //调用接口刷新指定的Staff的信息
-      fetchItemByIdAndRefreshItem(appliedId);
+      if ("4" == statusId) {
+        //如果是拒绝了,移除这个Item
+        if (state.datas.length > 1) {
+          state.datas.removeAt(index);
+          update();
+        } else {
+          refreshController.callRefresh();
+        }
+      } else {
+        //其他状态刷新当前Item,调用接口刷新指定的Staff的信息
+        fetchItemByIdAndRefreshItem(appliedId);
+      }
     } else {
       ToastEngine.show(result.errorMsg ?? "Network Load Error".tr);
       return;

+ 9 - 8
packages/cpt_job_sg/lib/modules/job_applied/job_applied_page.dart

@@ -22,15 +22,15 @@ import 'package:shared/utils/screen_util.dart';
 import 'package:widgets/my_appbar.dart';
 import 'job_applied_state.dart';
 
-/**
+/*
  * 已申请的页面 (新加坡)
  */
 class JobAppliedPage extends BaseStatefulPage<JobAppliedController> {
   JobAppliedPage({Key? key}) : super(key: key);
 
   //启动当前页面
-  static void startInstance(String? jobId) {
-    return Get.start(RouterPath.jobListAppliedSG, arguments: {'jobId': jobId});
+  static void startInstance(String? jobId, void Function(dynamic value)? cb) {
+    return Get.start(RouterPath.jobListAppliedSG, arguments: {'jobId': jobId, 'cb': cb});
   }
 
   @override
@@ -50,6 +50,7 @@ class _JobAppliedState extends BaseState<JobAppliedPage, JobAppliedController> {
     super.initState();
     state = controller.state;
     state.jobId = Get.arguments['jobId'];
+    state.cb = Get.arguments['cb'] as void Function(dynamic)?;
   }
 
   @override
@@ -86,11 +87,11 @@ class _JobAppliedState extends BaseState<JobAppliedPage, JobAppliedController> {
               Row(
                 children: [
                   Container(
-                    padding: EdgeInsets.only(left: 11, right: 11),
-                    margin: EdgeInsets.only(right: 10),
+                    padding: const EdgeInsets.only(left: 11, right: 11),
+                    margin: const EdgeInsets.only(right: 10),
                     height: 40,
                     decoration: BoxDecoration(
-                      color: Color(0xFF4DCFF6).withOpacity(0.2),
+                      color: const Color(0xFF4DCFF6).withOpacity(0.2),
                       borderRadius: const BorderRadius.all(Radius.circular(20)),
                     ),
                     child: Row(
@@ -108,7 +109,7 @@ class _JobAppliedState extends BaseState<JobAppliedPage, JobAppliedController> {
                         ).expanded(),
 
                         //下拉选图标
-                        MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
+                        const MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
                       ],
                     ),
                   ).onTap(() {
@@ -118,7 +119,7 @@ class _JobAppliedState extends BaseState<JobAppliedPage, JobAppliedController> {
                   SearchAppBar(
                     value: state.keyword,
                     searchBarHeight: 40,
-                    margin: EdgeInsets.only(right: 10),
+                    margin: const EdgeInsets.only(right: 10),
                     onSearch: (keyword) {
                       controller.doSearch(keyword);
                     },

+ 1 - 0
packages/cpt_job_sg/lib/modules/job_applied/job_applied_state.dart

@@ -11,6 +11,7 @@ class JobAppliedState {
   String? selectedStatusTxt;
 
   String? jobId;
+  void Function(dynamic value)? cb;
 
   JobAppliedIndexSGEntity? appliedIndexEntity; //指定工作的简短信息
 

+ 2 - 2
packages/cpt_job_sg/lib/router/job_sg_service_impl.dart

@@ -18,8 +18,8 @@ class JobSGServiceImpl extends GetxService implements JobSGService {
   }
 
   @override
-  void startJobAppliedPage(String? jobId) {
-    JobAppliedPage.startInstance(jobId);
+  void startJobAppliedPage(String? jobId,void Function(dynamic value)? cb) {
+    JobAppliedPage.startInstance(jobId,cb);
   }
 
   @override

+ 6 - 1
packages/cpt_labour_sg/lib/modules/job_list/job_list_controller.dart

@@ -199,7 +199,12 @@ class JobListController extends GetxController with DioCancelableMixin {
 
   /// 去已申请的成员列表
   void gotoJobAppliedPage(int index) {
-    ComponentRouterServices.jobSGService.startJobAppliedPage(state.datas[index].jobId);
+    ComponentRouterServices.jobSGService.startJobAppliedPage(state.datas[index].jobId, (result) {
+      if (result is String?) {
+        //添加成功之后刷新
+        fetchItemByIdAndRefreshItem(result ?? "");
+      }
+    });
   }
 
   //执行取消操作

+ 14 - 4
packages/cpt_labour_sg/lib/modules/job_list/job_list_page.dart

@@ -6,7 +6,9 @@ import 'package:plugin_basic/base/base_state.dart';
 import 'package:plugin_basic/base/base_stateful_page.dart';
 import 'package:plugin_basic/utils/ext_get_nav.dart';
 import 'package:router/path/router_path.dart';
+import 'package:shared/utils/date_time_utils.dart';
 import 'package:shared/utils/screen_util.dart';
+import 'package:shared/utils/util.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/my_appbar.dart';
@@ -18,15 +20,15 @@ import 'job_list_item.dart';
 import 'job_list_controller.dart';
 import 'job_list_state.dart';
 
-/**
+/*
  * 新加坡的JobList其实就是Labour的查询
  */
 class JobListPage extends BaseStatefulPage<JobListController> {
   JobListPage({Key? key}) : super(key: key);
 
   //启动当前页面
-  static void startInstance() {
-    return Get.start(RouterPath.jobListSG);
+  static void startInstance({String? date}) {
+    return Get.start(RouterPath.jobListSG, arguments: {'date': date ?? ""});
   }
 
   @override
@@ -45,6 +47,14 @@ class _JobListState extends BaseState<JobListPage, JobListController> {
   void initState() {
     super.initState();
     state = controller.state;
+
+    //如果有传递的Date,那就直接显示
+    String date = Get.arguments['date'];
+    if (Utils.isNotEmpty(date)) {
+      DateTime? selectDate = DateTimeUtils.getDateTime(date);
+      state.selectedStartDate = selectDate;
+      state.selectedEndDate = selectDate;
+    }
   }
 
   @override
@@ -72,7 +82,7 @@ class _JobListState extends BaseState<JobListPage, JobListController> {
             children: [
               MyAppBar.titleBar(context, "Job List".tr, actions: [
                 //筛选图标
-                MyAssetImage(
+                const MyAssetImage(
                   Assets.baseServiceTitleBarFilterIcon,
                   width: 24,
                   height: 16.5,

+ 39 - 37
packages/cpt_labour_sg/lib/modules/job_list_edit/job_list_edit_page.dart

@@ -24,7 +24,7 @@ import 'package:router/path/router_path.dart';
 
 import 'job_list_edit_state.dart';
 
-/**
+/*
  * 新加坡的工作详情,其实就是LabourRequest的详情和编辑
  */
 class JobListEditPage extends BaseStatelessPage<JobListEditController> {
@@ -90,11 +90,11 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
 
                       //工作标题
                       Container(
-                        padding: EdgeInsets.only(left: 16, right: 10),
-                        margin: EdgeInsets.only(top: 10),
+                        padding: const EdgeInsets.only(left: 16, right: 10),
+                        margin: const EdgeInsets.only(top: 10),
                         height: 45,
                         decoration: BoxDecoration(
-                          color: Color(0xFF4DCFF6).withOpacity(0.5),
+                          color: const Color(0xFF4DCFF6).withOpacity(0.5),
                           borderRadius: const BorderRadius.all(Radius.circular(5)),
                         ),
                         child: Row(
@@ -126,10 +126,10 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                           //选择开始时间
                           Expanded(
                             child: Container(
-                              padding: EdgeInsets.only(left: 16, right: 10),
+                              padding: const EdgeInsets.only(left: 16, right: 10),
                               height: 45,
                               decoration: BoxDecoration(
-                                color: Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
+                                color: const Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
                                 borderRadius: const BorderRadius.all(Radius.circular(5)),
                               ),
                               child: Row(
@@ -148,7 +148,7 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                                   //下拉选图标
                                   Visibility(
                                     visible: state.isEditType,
-                                    child: MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
+                                    child: const MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
                                   ),
                                 ],
                               ),
@@ -161,11 +161,11 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                           // //选择结束时间
                           Expanded(
                             child: Container(
-                              padding: EdgeInsets.only(left: 16, right: 10),
-                              margin: EdgeInsets.only(left: 10),
+                              padding: const EdgeInsets.only(left: 16, right: 10),
+                              margin: const EdgeInsets.only(left: 10),
                               height: 45,
                               decoration: BoxDecoration(
-                                color: Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
+                                color: const Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
                                 borderRadius: const BorderRadius.all(Radius.circular(5)),
                               ),
                               child: Row(
@@ -184,7 +184,7 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                                   //下拉选图标
                                   Visibility(
                                     visible: state.isEditType,
-                                    child: MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
+                                    child: const MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
                                   ),
                                 ],
                               ),
@@ -203,11 +203,11 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
 
                       //选择部门
                       Container(
-                        padding: EdgeInsets.only(left: 16, right: 10),
-                        margin: EdgeInsets.only(top: 10),
+                        padding: const EdgeInsets.only(left: 16, right: 10),
+                        margin: const EdgeInsets.only(top: 10),
                         height: 45,
                         decoration: BoxDecoration(
-                          color: Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
+                          color: const Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
                           borderRadius: const BorderRadius.all(Radius.circular(5)),
                         ),
                         child: Row(
@@ -225,7 +225,7 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                             ).expanded(),
                             Visibility(
                               visible: state.isEditType,
-                              child: MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
+                              child: const MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
                             ),
                           ],
                         ),
@@ -261,7 +261,7 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                           paddingBottom: 0,
                           height: 45,
                           enabled: state.isEditType,
-                          fillBackgroundColor: Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
+                          fillBackgroundColor: const Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
                           inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.digitsOnly],
                           textInputType: TextInputType.number,
                           formData: state.formData,
@@ -317,7 +317,7 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                               paddingBottom: 0,
                               height: 45,
                               enabled: state.isEditType,
-                              fillBackgroundColor: Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
+                              fillBackgroundColor: const Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
                               inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.digitsOnly],
                               textInputType: TextInputType.number,
                               formData: state.formData,
@@ -361,11 +361,11 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                       IgnoreKeyboardDismiss(
                         child: Container(
                           height: 160,
-                          margin: EdgeInsets.only(top: 10),
-                          padding: EdgeInsets.symmetric(vertical: 15, horizontal: 15),
+                          margin: const EdgeInsets.only(top: 10),
+                          padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 15),
                           decoration: BoxDecoration(
-                            color: Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
-                            borderRadius: BorderRadius.all(Radius.circular(5)),
+                            color: const Color(0xFF4DCFF6).withOpacity(state.isEditType ? 0.2 : 0.5),
+                            borderRadius: const BorderRadius.all(Radius.circular(5)),
                           ),
                           child: TextField(
                             cursorColor: ColorConstants.white,
@@ -380,13 +380,13 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                               isCollapsed: true,
                               border: InputBorder.none,
                               hintText: state.formData["remark"]!['hintText'],
-                              hintStyle: TextStyle(
+                              hintStyle: const TextStyle(
                                 color: ColorConstants.textGrayAECAE5,
                                 fontSize: 15.0,
                                 fontWeight: FontWeight.w400,
                               ),
                             ),
-                            style: TextStyle(
+                            style: const TextStyle(
                               color: ColorConstants.white,
                               fontSize: 15.0,
                               fontWeight: FontWeight.w400,
@@ -401,20 +401,22 @@ class JobListEditPage extends BaseStatelessPage<JobListEditController> {
                       ),
 
                       //提交按钮
-                      MyButton(
-                        type: ClickType.throttle,
-                        milliseconds: 500,
-                        onPressed: () {
-                          FocusScope.of(context).unfocus();
-                          controller.doSubmit();
-                        },
-                        text: "Submit".tr,
-                        textColor: ColorConstants.white,
-                        fontSize: 16,
-                        radius: 22.5,
-                        backgroundColor: hexToColor("#FFBB1B"),
-                        fontWeight: FontWeight.w500,
-                      ).marginSymmetric(horizontal: 0, vertical: 30),
+                      Visibility(
+                          visible: state.isEditType,
+                          child: MyButton(
+                            type: ClickType.throttle,
+                            milliseconds: 500,
+                            onPressed: () {
+                              FocusScope.of(context).unfocus();
+                              controller.doSubmit();
+                            },
+                            text: "Submit".tr,
+                            textColor: ColorConstants.white,
+                            fontSize: 16,
+                            radius: 22.5,
+                            backgroundColor: hexToColor("#FFBB1B"),
+                            fontWeight: FontWeight.w500,
+                          )).marginSymmetric(horizontal: 0, vertical: 30),
                     ],
                   ).paddingOnly(left: 15, right: 15),
                 ),

+ 1 - 0
packages/cpt_labour_sg/lib/modules/job_template_add/job_template_add_controller.dart

@@ -72,6 +72,7 @@ class JobTemplateAddController extends GetxController with DioCancelableMixin {
     String contactNo = contactNoController.text.toString();
     String note = noteController.text.toString();
 
+    //只校验模版的名称
     if (Utils.isEmpty(templateName)) {
       ToastEngine.show("Enter Job Template Name".tr);
       return;

+ 36 - 15
packages/cpt_labour_sg/lib/modules/job_template_add/job_template_add_page.dart

@@ -189,16 +189,23 @@ class JobTemplateAddPage extends BaseStatelessPage<JobTemplateAddController> {
                       ).marginOnly(left: 15, right: 15, top: 10),
 
                       //模板详情
-                      FormRequireText(text: "Description".tr).marginOnly(left: 15, top: 19),
+                      MyTextView(
+                        "Description".tr,
+                        textColor: Colors.white,
+                        fontSize: 14,
+                        isFontRegular: true,
+                        marginLeft: 15,
+                        marginTop: 15,
+                      ),
 
                       IgnoreKeyboardDismiss(
                         child: Container(
                           height: 130,
-                          margin: EdgeInsets.only(left: 15, right: 15, top: 10),
-                          padding: EdgeInsets.symmetric(vertical: 15, horizontal: 15),
+                          margin: const EdgeInsets.only(left: 15, right: 15, top: 10),
+                          padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 15),
                           decoration: BoxDecoration(
-                            color: Color(0xFF4DCFF6).withOpacity(0.2),
-                            borderRadius: BorderRadius.all(Radius.circular(5)),
+                            color: const Color(0xFF4DCFF6).withOpacity(0.2),
+                            borderRadius: const BorderRadius.all(Radius.circular(5)),
                           ),
                           child: TextField(
                             cursorColor: ColorConstants.white,
@@ -213,13 +220,13 @@ class JobTemplateAddPage extends BaseStatelessPage<JobTemplateAddController> {
                               isCollapsed: true,
                               border: InputBorder.none,
                               hintText: state.formData["desc"]!['hintText'],
-                              hintStyle: TextStyle(
+                              hintStyle: const TextStyle(
                                 color: ColorConstants.textGrayAECAE5,
                                 fontSize: 15.0,
                                 fontWeight: FontWeight.w400,
                               ),
                             ),
-                            style: TextStyle(
+                            style: const TextStyle(
                               color: ColorConstants.white,
                               fontSize: 15.0,
                               fontWeight: FontWeight.w400,
@@ -257,7 +264,14 @@ class JobTemplateAddPage extends BaseStatelessPage<JobTemplateAddController> {
                       ),
 
                       //联系人电话
-                      FormRequireText(text: "Contact No".tr).marginOnly(left: 15, top: 19),
+                      MyTextView(
+                        "Contact No".tr,
+                        textColor: Colors.white,
+                        fontSize: 14,
+                        isFontRegular: true,
+                        marginLeft: 15,
+                        marginTop: 18,
+                      ),
 
                       CustomTextField(
                         formKey: "contact_no",
@@ -273,16 +287,23 @@ class JobTemplateAddPage extends BaseStatelessPage<JobTemplateAddController> {
                       ),
 
                       //备注
-                      FormRequireText(text: "Note".tr).marginOnly(left: 15, top: 19),
+                      MyTextView(
+                        "Note".tr,
+                        textColor: Colors.white,
+                        fontSize: 14,
+                        isFontRegular: true,
+                        marginLeft: 15,
+                        marginTop: 18,
+                      ),
 
                       IgnoreKeyboardDismiss(
                         child: Container(
                           height: 130,
-                          margin: EdgeInsets.only(left: 15, right: 15, top: 10),
-                          padding: EdgeInsets.symmetric(vertical: 15, horizontal: 15),
+                          margin: const EdgeInsets.only(left: 15, right: 15, top: 10),
+                          padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 15),
                           decoration: BoxDecoration(
-                            color: Color(0xFF4DCFF6).withOpacity(0.2),
-                            borderRadius: BorderRadius.all(Radius.circular(5)),
+                            color: const Color(0xFF4DCFF6).withOpacity(0.2),
+                            borderRadius: const BorderRadius.all(Radius.circular(5)),
                           ),
                           child: TextField(
                             cursorColor: ColorConstants.white,
@@ -297,13 +318,13 @@ class JobTemplateAddPage extends BaseStatelessPage<JobTemplateAddController> {
                               isCollapsed: true,
                               border: InputBorder.none,
                               hintText: state.formData["note"]!['hintText'],
-                              hintStyle: TextStyle(
+                              hintStyle: const TextStyle(
                                 color: ColorConstants.textGrayAECAE5,
                                 fontSize: 14.0,
                                 fontWeight: FontWeight.w400,
                               ),
                             ),
-                            style: TextStyle(
+                            style: const TextStyle(
                               color: ColorConstants.white,
                               fontSize: 14.0,
                               fontWeight: FontWeight.w400,

+ 7 - 8
packages/cpt_labour_sg/lib/modules/labour_request/labour_request_item.dart

@@ -1,24 +1,20 @@
 import 'package:cs_resources/constants/color_constants.dart';
-import 'package:domain/entity/response/job_template_s_g_entity.dart';
-import 'package:domain/entity/response/job_title_s_g_entity.dart';
-import 'package:domain/entity/response/labour_request_list_entity.dart';
 import 'package:domain/entity/response/labour_request_s_g_entity.dart';
-import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
 import 'package:plugin_basic/basic_export.dart';
 import 'package:widgets/ext/ex_widget.dart';
-import 'package:widgets/my_button.dart';
 import 'package:widgets/my_text_view.dart';
 
-/**
+/*
  * 用工请求Item(新加坡)
  */
 class LabourRequestItem extends StatelessWidget {
   final LabourRequestSGCountList item;
+  final void Function(String? date) onDateAction;
 
-  LabourRequestItem({
+  const LabourRequestItem({super.key,
     required this.item,
+    required this.onDateAction,
   });
 
   @override
@@ -44,6 +40,9 @@ class LabourRequestItem extends StatelessWidget {
           decorationThickness: 2.0,
           decorationStyle: TextDecorationStyle.solid,
           textColor: ColorConstants.textYellowFFBB1B,
+          onClick: (){
+            onDateAction.call(item.date);
+          },
         ).expanded(flex: 4),
       ],
     ).paddingOnly(top: 7, bottom: 7);

+ 7 - 1
packages/cpt_labour_sg/lib/modules/labour_request/labour_request_page.dart

@@ -1,3 +1,4 @@
+import 'package:cpt_labour_sg/modules/job_list/job_list_page.dart';
 import 'package:cs_resources/constants/color_constants.dart';
 import 'package:cs_resources/generated/assets.dart';
 import 'package:flutter/material.dart';
@@ -151,7 +152,12 @@ class LabourRequestPage extends BaseStatelessPage<LabourRequestController> {
                         },
                         successWidget: Column(
                           children: state.datas.map((item) {
-                            return LabourRequestItem(item: item);
+                            return LabourRequestItem(
+                              item: item,
+                              onDateAction: (date) {
+                                JobListPage.startInstance(date: date);
+                              },
+                            );
                           }).toList(),
                         ).paddingOnly(top: 14, bottom: 7),
                       ).constrained(width: double.infinity, height: 291),

+ 4 - 5
packages/cpt_labour_sg/lib/modules/labour_request_add/labour_request_add_controller.dart

@@ -157,8 +157,8 @@ class LabourRequestAddController extends GetxController with DioCancelableMixin
     );
   }
 
-  // 提交表单
-  void doSubmit() async{
+  // 提交LabourRequest表单
+  void doSubmit() async {
     var maleNoController = state.formData['need_male']!['controller'];
     var femaleNoController = state.formData['need_female']!['controller'];
     var needNoController = state.formData['need_no']!['controller'];
@@ -205,8 +205,8 @@ class LabourRequestAddController extends GetxController with DioCancelableMixin
       state.selectedJobTitleId,
       DateTimeUtils.formatDate(state.selectedStartTime),
       DateTimeUtils.formatDate(state.selectedEndTime),
-      DateTimeUtils.formatDate(state.selectedRepeatStartTime),
-      DateTimeUtils.formatDate(state.selectedRepeatEndTime),
+      DateTimeUtils.formatDate(state.selectedRepeatStartTime, format: "yyyy-MM-dd"),
+      DateTimeUtils.formatDate(state.selectedRepeatEndTime, format: "yyyy-MM-dd"),
       state.selectedOutletId,
       state.genderOptionType,
       maleNo,
@@ -228,6 +228,5 @@ class LabourRequestAddController extends GetxController with DioCancelableMixin
     } else {
       ToastEngine.show(result.errorMsg ?? "Network Load Error".tr);
     }
-
   }
 }

+ 19 - 19
packages/cpt_labour_sg/lib/modules/labour_request_add/labour_request_add_page.dart

@@ -161,11 +161,11 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                           // //选择结束时间
                           Expanded(
                             child: Container(
-                              padding: EdgeInsets.only(left: 16, right: 10),
-                              margin: EdgeInsets.only(left: 10),
+                              padding: const EdgeInsets.only(left: 16, right: 10),
+                              margin: const EdgeInsets.only(left: 10),
                               height: 45,
                               decoration: BoxDecoration(
-                                color: Color(0xFF4DCFF6).withOpacity(0.2),
+                                color: const Color(0xFF4DCFF6).withOpacity(0.2),
                                 borderRadius: const BorderRadius.all(Radius.circular(5)),
                               ),
                               child: Row(
@@ -182,7 +182,7 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                                     textColor: ColorConstants.white,
                                   ).expanded(),
                                   //下拉选图标
-                                  MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
+                                  const MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
                                 ],
                               ),
                             ).onTap(() {
@@ -210,10 +210,10 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                           //选择开始时间
                           Expanded(
                             child: Container(
-                              padding: EdgeInsets.only(left: 16, right: 10),
+                              padding: const EdgeInsets.only(left: 16, right: 10),
                               height: 45,
                               decoration: BoxDecoration(
-                                color: Color(0xFF4DCFF6).withOpacity(0.2),
+                                color: const Color(0xFF4DCFF6).withOpacity(0.2),
                                 borderRadius: const BorderRadius.all(Radius.circular(5)),
                               ),
                               child: Row(
@@ -285,11 +285,11 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
 
                       //选择部门
                       Container(
-                        padding: EdgeInsets.only(left: 16, right: 10),
-                        margin: EdgeInsets.only(top: 10),
+                        padding: const EdgeInsets.only(left: 16, right: 10),
+                        margin: const EdgeInsets.only(top: 10),
                         height: 45,
                         decoration: BoxDecoration(
-                          color: Color(0xFF4DCFF6).withOpacity(0.2),
+                          color: const Color(0xFF4DCFF6).withOpacity(0.2),
                           borderRadius: const BorderRadius.all(Radius.circular(5)),
                         ),
                         child: Row(
@@ -305,7 +305,7 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                               isFontMedium: true,
                               textColor: ColorConstants.white,
                             ).expanded(),
-                            MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
+                            const MyAssetImage(Assets.baseServiceTriangleDropDownIcon, width: 11.5, height: 6.28),
                           ],
                         ),
                       ).onTap(() {
@@ -338,7 +338,7 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                           paddingTop: 0,
                           paddingBottom: 0,
                           height: 45,
-                          fillBackgroundColor: Color(0xFF4DCFF6).withOpacity(0.2),
+                          fillBackgroundColor: const Color(0xFF4DCFF6).withOpacity(0.2),
                           inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.digitsOnly],
                           textInputType: TextInputType.number,
                           formData: state.formData,
@@ -368,7 +368,7 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                               paddingTop: 0,
                               paddingBottom: 0,
                               height: 45,
-                              fillBackgroundColor: Color(0xFF4DCFF6).withOpacity(0.2),
+                              fillBackgroundColor: const Color(0xFF4DCFF6).withOpacity(0.2),
                               inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.digitsOnly],
                               textInputType: TextInputType.number,
                               formData: state.formData,
@@ -392,7 +392,7 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                               paddingTop: 0,
                               paddingBottom: 0,
                               height: 45,
-                              fillBackgroundColor: Color(0xFF4DCFF6).withOpacity(0.2),
+                              fillBackgroundColor: const Color(0xFF4DCFF6).withOpacity(0.2),
                               inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.digitsOnly],
                               textInputType: TextInputType.number,
                               formData: state.formData,
@@ -435,11 +435,11 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                       IgnoreKeyboardDismiss(
                         child: Container(
                           height: 160,
-                          margin: EdgeInsets.only(top: 10),
-                          padding: EdgeInsets.symmetric(vertical: 15, horizontal: 15),
+                          margin: const EdgeInsets.only(top: 10),
+                          padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 15),
                           decoration: BoxDecoration(
-                            color: Color(0xFF4DCFF6).withOpacity(0.2),
-                            borderRadius: BorderRadius.all(Radius.circular(5)),
+                            color: const Color(0xFF4DCFF6).withOpacity(0.2),
+                            borderRadius: const BorderRadius.all(Radius.circular(5)),
                           ),
                           child: TextField(
                             cursorColor: ColorConstants.white,
@@ -454,13 +454,13 @@ class LabourRequestAddPage extends BaseStatelessPage<LabourRequestAddController>
                               isCollapsed: true,
                               border: InputBorder.none,
                               hintText: state.formData["remark"]!['hintText'],
-                              hintStyle: TextStyle(
+                              hintStyle: const TextStyle(
                                 color: ColorConstants.textGrayAECAE5,
                                 fontSize: 15.0,
                                 fontWeight: FontWeight.w400,
                               ),
                             ),
-                            style: TextStyle(
+                            style: const TextStyle(
                               color: ColorConstants.white,
                               fontSize: 15.0,
                               fontWeight: FontWeight.w400,

+ 1 - 1
packages/cs_domain/lib/repository/labour_sg_repository.dart

@@ -587,7 +587,7 @@ class LabourSGRepository extends GetxService {
     if (sexLimit == 1) {
       params['male_limit'] = maleLimit ?? "0";
       params['female_limit'] = femaleLimit ?? "0";
-      params['need_num'] = (int.parse(maleLimit ?? "0") + int.parse(femaleLimit ?? "0")).toString();
+      // params['need_num'] = (int.parse(maleLimit ?? "0") + int.parse(femaleLimit ?? "0")).toString();  //不传 need_num 字段
     } else {
       params['need_num'] = needNum ?? "0";
     }

+ 4 - 11
packages/cs_plugin_platform/lib/engine/directory/directory_util.dart

@@ -86,28 +86,21 @@ class DirectoryUtil {
     if (_initStorageDir) {
       await initStorageDir();
     }
-    print(
-        "thll DirectoryUtil init : ${DateTime.now().millisecondsSinceEpoch - old}");
+    print("DirectoryUtil init : ${DateTime.now().millisecondsSinceEpoch - old}");
   }
 
   static Future<Directory?> initTempDir() async {
-    if (_tempDir == null) {
-      _tempDir = await getTemporaryDirectory();
-    }
+    _tempDir ??= await getTemporaryDirectory();
     return _tempDir;
   }
 
   static Future<Directory?> initAppDocDir() async {
-    if (_appDocDir == null) {
-      _appDocDir = await getApplicationDocumentsDirectory();
-    }
+    _appDocDir ??= await getApplicationDocumentsDirectory();
     return _appDocDir;
   }
 
   static Future<Directory?> initAppSupportDir() async {
-    if (_appSupportDir == null) {
-      _appSupportDir = await getApplicationSupportDirectory();
-    }
+    _appSupportDir ??= await getApplicationSupportDirectory();
     return _appSupportDir;
   }
 

+ 2 - 5
packages/cs_router/lib/componentRouter/job_sg_service.dart

@@ -1,11 +1,8 @@
-
-/**
+/*
  * Job组件对应的路由抽象接口 (新加坡)
  */
 abstract class JobSGService {
-
-  void startJobAppliedPage(String? jobId);
+  void startJobAppliedPage(String? jobId, void Function(dynamic value)? cb);
 
   void startReviseListPage();
-
 }