瀏覽代碼

显示时间

周睿 2 年之前
父節點
當前提交
b9bcc5b10a

+ 28 - 0
app_business/lib/generated/track_offical.pb.dart

@@ -658,6 +658,7 @@ class ToMatchRegusterEditRequest extends $pb.GeneratedMessage {
     $core.String? queryPasswd,
     $core.String? queryPasswd,
     $2.Timestamp? bShowTime,
     $2.Timestamp? bShowTime,
     $2.Timestamp? eShowTime,
     $2.Timestamp? eShowTime,
+    $core.String? matchPasswd,
   }) {
   }) {
     final $result = create();
     final $result = create();
     if (id != null) {
     if (id != null) {
@@ -684,6 +685,9 @@ class ToMatchRegusterEditRequest extends $pb.GeneratedMessage {
     if (eShowTime != null) {
     if (eShowTime != null) {
       $result.eShowTime = eShowTime;
       $result.eShowTime = eShowTime;
     }
     }
+    if (matchPasswd != null) {
+      $result.matchPasswd = matchPasswd;
+    }
     return $result;
     return $result;
   }
   }
   ToMatchRegusterEditRequest._() : super();
   ToMatchRegusterEditRequest._() : super();
@@ -699,6 +703,7 @@ class ToMatchRegusterEditRequest extends $pb.GeneratedMessage {
     ..aOS(6, _omitFieldNames ? '' : 'queryPasswd', protoName: 'queryPasswd')
     ..aOS(6, _omitFieldNames ? '' : 'queryPasswd', protoName: 'queryPasswd')
     ..aOM<$2.Timestamp>(7, _omitFieldNames ? '' : 'bShowTime', protoName: 'bShowTime', subBuilder: $2.Timestamp.create)
     ..aOM<$2.Timestamp>(7, _omitFieldNames ? '' : 'bShowTime', protoName: 'bShowTime', subBuilder: $2.Timestamp.create)
     ..aOM<$2.Timestamp>(8, _omitFieldNames ? '' : 'eShowTime', protoName: 'eShowTime', subBuilder: $2.Timestamp.create)
     ..aOM<$2.Timestamp>(8, _omitFieldNames ? '' : 'eShowTime', protoName: 'eShowTime', subBuilder: $2.Timestamp.create)
+    ..aOS(9, _omitFieldNames ? '' : 'MatchPasswd', protoName: 'MatchPasswd')
     ..hasRequiredFields = false
     ..hasRequiredFields = false
   ;
   ;
 
 
@@ -803,6 +808,15 @@ class ToMatchRegusterEditRequest extends $pb.GeneratedMessage {
   void clearEShowTime() => clearField(8);
   void clearEShowTime() => clearField(8);
   @$pb.TagNumber(8)
   @$pb.TagNumber(8)
   $2.Timestamp ensureEShowTime() => $_ensure(7);
   $2.Timestamp ensureEShowTime() => $_ensure(7);
+
+  @$pb.TagNumber(9)
+  $core.String get matchPasswd => $_getSZ(8);
+  @$pb.TagNumber(9)
+  set matchPasswd($core.String v) { $_setString(8, v); }
+  @$pb.TagNumber(9)
+  $core.bool hasMatchPasswd() => $_has(8);
+  @$pb.TagNumber(9)
+  void clearMatchPasswd() => clearField(9);
 }
 }
 
 
 class ToCourseListReply extends $pb.GeneratedMessage {
 class ToCourseListReply extends $pb.GeneratedMessage {
@@ -1399,6 +1413,7 @@ class ToMatchRegusterAddRequest extends $pb.GeneratedMessage {
     $core.String? queryPasswd,
     $core.String? queryPasswd,
     $2.Timestamp? bShowTime,
     $2.Timestamp? bShowTime,
     $2.Timestamp? eShowTime,
     $2.Timestamp? eShowTime,
+    $core.String? matchPasswd,
   }) {
   }) {
     final $result = create();
     final $result = create();
     if (regName != null) {
     if (regName != null) {
@@ -1425,6 +1440,9 @@ class ToMatchRegusterAddRequest extends $pb.GeneratedMessage {
     if (eShowTime != null) {
     if (eShowTime != null) {
       $result.eShowTime = eShowTime;
       $result.eShowTime = eShowTime;
     }
     }
+    if (matchPasswd != null) {
+      $result.matchPasswd = matchPasswd;
+    }
     return $result;
     return $result;
   }
   }
   ToMatchRegusterAddRequest._() : super();
   ToMatchRegusterAddRequest._() : super();
@@ -1440,6 +1458,7 @@ class ToMatchRegusterAddRequest extends $pb.GeneratedMessage {
     ..aOS(6, _omitFieldNames ? '' : 'queryPasswd', protoName: 'queryPasswd')
     ..aOS(6, _omitFieldNames ? '' : 'queryPasswd', protoName: 'queryPasswd')
     ..aOM<$2.Timestamp>(7, _omitFieldNames ? '' : 'bShowTime', protoName: 'bShowTime', subBuilder: $2.Timestamp.create)
     ..aOM<$2.Timestamp>(7, _omitFieldNames ? '' : 'bShowTime', protoName: 'bShowTime', subBuilder: $2.Timestamp.create)
     ..aOM<$2.Timestamp>(8, _omitFieldNames ? '' : 'eShowTime', protoName: 'eShowTime', subBuilder: $2.Timestamp.create)
     ..aOM<$2.Timestamp>(8, _omitFieldNames ? '' : 'eShowTime', protoName: 'eShowTime', subBuilder: $2.Timestamp.create)
+    ..aOS(9, _omitFieldNames ? '' : 'MatchPasswd', protoName: 'MatchPasswd')
     ..hasRequiredFields = false
     ..hasRequiredFields = false
   ;
   ;
 
 
@@ -1543,6 +1562,15 @@ class ToMatchRegusterAddRequest extends $pb.GeneratedMessage {
   void clearEShowTime() => clearField(8);
   void clearEShowTime() => clearField(8);
   @$pb.TagNumber(8)
   @$pb.TagNumber(8)
   $2.Timestamp ensureEShowTime() => $_ensure(7);
   $2.Timestamp ensureEShowTime() => $_ensure(7);
+
+  @$pb.TagNumber(9)
+  $core.String get matchPasswd => $_getSZ(8);
+  @$pb.TagNumber(9)
+  set matchPasswd($core.String v) { $_setString(8, v); }
+  @$pb.TagNumber(9)
+  $core.bool hasMatchPasswd() => $_has(8);
+  @$pb.TagNumber(9)
+  void clearMatchPasswd() => clearField(9);
 }
 }
 
 
 
 

+ 6 - 2
app_business/lib/generated/track_offical.pbjson.dart

@@ -168,6 +168,7 @@ const ToMatchRegusterEditRequest$json = {
     {'1': 'queryPasswd', '3': 6, '4': 1, '5': 9, '10': 'queryPasswd'},
     {'1': 'queryPasswd', '3': 6, '4': 1, '5': 9, '10': 'queryPasswd'},
     {'1': 'bShowTime', '3': 7, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'bShowTime'},
     {'1': 'bShowTime', '3': 7, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'bShowTime'},
     {'1': 'eShowTime', '3': 8, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'eShowTime'},
     {'1': 'eShowTime', '3': 8, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'eShowTime'},
+    {'1': 'MatchPasswd', '3': 9, '4': 1, '5': 9, '10': 'MatchPasswd'},
   ],
   ],
 };
 };
 
 
@@ -179,7 +180,8 @@ final $typed_data.Uint8List toMatchRegusterEditRequestDescriptor = $convert.base
     'RhbXBSBnN0b3BBdBIeCgppc1F1ZXJ5UHdkGAUgASgIUgppc1F1ZXJ5UHdkEiAKC3F1ZXJ5UGFz'
     'RhbXBSBnN0b3BBdBIeCgppc1F1ZXJ5UHdkGAUgASgIUgppc1F1ZXJ5UHdkEiAKC3F1ZXJ5UGFz'
     'c3dkGAYgASgJUgtxdWVyeVBhc3N3ZBI4CgliU2hvd1RpbWUYByABKAsyGi5nb29nbGUucHJvdG'
     'c3dkGAYgASgJUgtxdWVyeVBhc3N3ZBI4CgliU2hvd1RpbWUYByABKAsyGi5nb29nbGUucHJvdG'
     '9idWYuVGltZXN0YW1wUgliU2hvd1RpbWUSOAoJZVNob3dUaW1lGAggASgLMhouZ29vZ2xlLnBy'
     '9idWYuVGltZXN0YW1wUgliU2hvd1RpbWUSOAoJZVNob3dUaW1lGAggASgLMhouZ29vZ2xlLnBy'
-    'b3RvYnVmLlRpbWVzdGFtcFIJZVNob3dUaW1l');
+    'b3RvYnVmLlRpbWVzdGFtcFIJZVNob3dUaW1lEiAKC01hdGNoUGFzc3dkGAkgASgJUgtNYXRjaF'
+    'Bhc3N3ZA==');
 
 
 @$core.Deprecated('Use toCourseListReplyDescriptor instead')
 @$core.Deprecated('Use toCourseListReplyDescriptor instead')
 const ToCourseListReply$json = {
 const ToCourseListReply$json = {
@@ -294,6 +296,7 @@ const ToMatchRegusterAddRequest$json = {
     {'1': 'queryPasswd', '3': 6, '4': 1, '5': 9, '10': 'queryPasswd'},
     {'1': 'queryPasswd', '3': 6, '4': 1, '5': 9, '10': 'queryPasswd'},
     {'1': 'bShowTime', '3': 7, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'bShowTime'},
     {'1': 'bShowTime', '3': 7, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'bShowTime'},
     {'1': 'eShowTime', '3': 8, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'eShowTime'},
     {'1': 'eShowTime', '3': 8, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'eShowTime'},
+    {'1': 'MatchPasswd', '3': 9, '4': 1, '5': 9, '10': 'MatchPasswd'},
   ],
   ],
 };
 };
 
 
@@ -305,5 +308,6 @@ final $typed_data.Uint8List toMatchRegusterAddRequestDescriptor = $convert.base6
     'N0SWQYBCABKAVSBWFjdElkEh4KCmlzUXVlcnlQd2QYBSABKAhSCmlzUXVlcnlQd2QSIAoLcXVl'
     'N0SWQYBCABKAVSBWFjdElkEh4KCmlzUXVlcnlQd2QYBSABKAhSCmlzUXVlcnlQd2QSIAoLcXVl'
     'cnlQYXNzd2QYBiABKAlSC3F1ZXJ5UGFzc3dkEjgKCWJTaG93VGltZRgHIAEoCzIaLmdvb2dsZS'
     'cnlQYXNzd2QYBiABKAlSC3F1ZXJ5UGFzc3dkEjgKCWJTaG93VGltZRgHIAEoCzIaLmdvb2dsZS'
     '5wcm90b2J1Zi5UaW1lc3RhbXBSCWJTaG93VGltZRI4CgllU2hvd1RpbWUYCCABKAsyGi5nb29n'
     '5wcm90b2J1Zi5UaW1lc3RhbXBSCWJTaG93VGltZRI4CgllU2hvd1RpbWUYCCABKAsyGi5nb29n'
-    'bGUucHJvdG9idWYuVGltZXN0YW1wUgllU2hvd1RpbWU=');
+    'bGUucHJvdG9idWYuVGltZXN0YW1wUgllU2hvd1RpbWUSIAoLTWF0Y2hQYXNzd2QYCSABKAlSC0'
+    '1hdGNoUGFzc3dk');
 
 

+ 12 - 7
app_business/lib/service/api.dart

@@ -222,10 +222,12 @@ class ApiService extends IService {
     await stub.toMatchRegusterEdit(pb.ToMatchRegusterEditRequest()
     await stub.toMatchRegusterEdit(pb.ToMatchRegusterEditRequest()
       ..id = id
       ..id = id
       ..regName = event.name
       ..regName = event.name
-      ..startAt = event.startAt.toPb()
-      ..stopAt = event.stopAt.toPb()
-      ..isQueryPwd = event.password != null
-      ..queryPasswd = event.password ?? '');
+      ..startAt = event.eventStartAt.toPb()
+      ..stopAt = event.eventStopAt.toPb()
+      ..bShowTime = event.showStartAt.toPb()
+      ..eShowTime = event.showStopAt.toPb()
+      ..isQueryPwd = event.passwordQuery != null
+      ..queryPasswd = event.passwordQuery ?? '');
   }
   }
 
 
   Future<void> eventUserAllocRoute(int checkId, int routeId) async {
   Future<void> eventUserAllocRoute(int checkId, int routeId) async {
@@ -295,9 +297,12 @@ class CooperationInfo {
 class EventRegisterInfo {
 class EventRegisterInfo {
   var id = 0;
   var id = 0;
   var name = '';
   var name = '';
-  var startAt = DateTime.now();
-  var stopAt = DateTime.now();
-  String? password;
+  var showStartAt = DateTime.now();
+  var eventStartAt = DateTime.now();
+  var showStopAt = DateTime.now();
+  var eventStopAt = DateTime.now();
+  String? passwordQuery;
+  String? passwordEvent;
 }
 }
 
 
 class Rule {
 class Rule {

+ 138 - 97
app_business/lib/view/home/dialog_event_register.dart

@@ -31,27 +31,33 @@ Future<EventRegisterInfo?> showEventEditDialog(
 
 
 class RegisterDialogController extends GetxController {
 class RegisterDialogController extends GetxController {
   var registerName = '';
   var registerName = '';
-  final date = Rx<DateTime?>(null);
-  final registerStartAt = Rx<TimeOfDay?>(null);
-  final registerStopAt = Rx<TimeOfDay?>(null);
+  // final date = Rx<DateTime?>(null);
+  // final registerStartAt = Rx<TimeOfDay?>(null);
+  // final registerStopAt = Rx<TimeOfDay?>(null);
   final selected = Rx<EventInfo?>(null);
   final selected = Rx<EventInfo?>(null);
-  final hasPassword = false.obs;
-  var password = '';
+  final hasPasswordQuery = false.obs;
+  final hasPasswordEvent = false.obs;
+  var passwordQuery = '';
+  var passwordEvent = '';
   late final int mapId;
   late final int mapId;
   late final Iterable<EventInfo>? eventList;
   late final Iterable<EventInfo>? eventList;
   late final Object _args;
   late final Object _args;
 
 
+  DateTime? eventDate;
+  TimeOfDay? eventStartAt;
+  TimeOfDay? eventEndAt;
+
   DateTime? showDate;
   DateTime? showDate;
   TimeOfDay? showStartAt;
   TimeOfDay? showStartAt;
   TimeOfDay? showEndAt;
   TimeOfDay? showEndAt;
 
 
-  String? get dateString {
-    final d = date.value;
-    if (d != null) {
-      return '${d.month}/${d.day}';
-    }
-    return null;
-  }
+  // String? get dateString {
+  //   final d = date.value;
+  //   if (d != null) {
+  //     return '${d.month}/${d.day}';
+  //   }
+  //   return null;
+  // }
 
 
   @override
   @override
   void onInit() {
   void onInit() {
@@ -66,12 +72,21 @@ class RegisterDialogController extends GetxController {
       eventList = null;
       eventList = null;
       mapId = args.mapId;
       mapId = args.mapId;
       registerName = args.old.name;
       registerName = args.old.name;
-      final d = args.old.startAt;
-      date.value = DateTime(d.year, d.month, d.day);
-      registerStartAt.value = TimeOfDay.fromDateTime(args.old.startAt);
-      registerStopAt.value = TimeOfDay.fromDateTime(args.old.stopAt);
-      password = args.old.password ?? '';
-      hasPassword.value = args.old.password != null;
+      var d = args.old.eventStartAt;
+
+      eventDate = DateTime(d.day, d.month, d.day);
+      d = args.old.showStartAt;
+      showDate = DateTime(d.day, d.month, d.day);
+      eventStartAt = TimeOfDay.fromDateTime(args.old.eventStartAt);
+      eventEndAt = TimeOfDay.fromDateTime(args.old.eventStopAt);
+
+      showStartAt = TimeOfDay.fromDateTime(args.old.showStartAt);
+      showEndAt = TimeOfDay.fromDateTime(args.old.showStopAt);
+
+      passwordQuery = args.old.passwordQuery ?? '';
+      hasPasswordQuery.value = args.old.passwordQuery != null;
+      passwordEvent = args.old.passwordEvent ?? '';
+      hasPasswordEvent.value = args.old.passwordEvent != null;
     }
     }
     super.onInit();
     super.onInit();
   }
   }
@@ -87,6 +102,18 @@ class RegisterDialogController extends GetxController {
       showEndAt = endAt;
       showEndAt = endAt;
     }
     }
   }
   }
+
+  void updateEventTime(DateTime? date, TimeOfDay? startAt, TimeOfDay? endAt) {
+    if (date != null) {
+      eventDate = date;
+    }
+    if (startAt != null) {
+      eventStartAt = startAt;
+    }
+    if (endAt != null) {
+      eventEndAt = endAt;
+    }
+  }
 }
 }
 
 
 class RegisterDialog extends GetView<RegisterDialogController> {
 class RegisterDialog extends GetView<RegisterDialogController> {
@@ -132,64 +159,25 @@ class RegisterDialog extends GetView<RegisterDialogController> {
                   : controller.registerName,
                   : controller.registerName,
             ),
             ),
             const SizedBox(height: 21.34),
             const SizedBox(height: 21.34),
-            Row(children: [
-              Expanded(
-                  child: Obx(() => _TextField(
-                      hint: '日期',
-                      readOnly: true,
-                      initText: c.dateString,
-                      onTap: () async {
-                        c.date.value =
-                            await _showDatePicker(context, c.date.value);
-                      }))),
-              const SizedBox(width: 15.64),
-              Expanded(
-                  child: Obx(() => _TextField(
-                      hint: '开始时间',
-                      readOnly: true,
-                      initText: c.registerStartAt.value?.format(context),
-                      onTap: () async {
-                        c.registerStartAt.value = await _showTimePicker(
-                            context, c.registerStartAt.value);
-                      }))),
-              const SizedBox(width: 15.64),
-              Expanded(
-                  child: Obx(() => _TextField(
-                      hint: '结束时间',
-                      readOnly: true,
-                      initText: c.registerStopAt.value?.format(context),
-                      onTap: () async {
-                        c.registerStopAt.value = await _showTimePicker(
-                            context, c.registerStopAt.value);
-                      }))),
-            ]),
-            const SizedBox(height: 21.34),
-            // _DateTimeSelect(
-            //     title: '显示时间',
-            //     date: c.showDate,
-            //     startAt: c.showStartAt,
-            //     endAt: c.showEndAt,
-            //     onChanged: c.updateShowTime),
-            Row(
-              mainAxisSize: MainAxisSize.min,
-              children: [
-                Obx(() => Switch(
-                    value: c.hasPassword.value,
-                    onChanged: (v) {
-                      c.hasPassword.value = v;
-                    })),
-                const Text('查询密码'),
-                const SizedBox(width: 12),
-                Obx(() => Expanded(
-                    child: Visibility(
-                        visible: c.hasPassword.value,
-                        child: _TextField(
-                            hint: '请输入密码',
-                            onChanged: (v) {
-                              c.password = v;
-                            })))),
-              ],
-            ),
+            _DateTimeSelect(
+                title: '比赛时间',
+                date: c.eventDate,
+                startAt: c.eventStartAt,
+                endAt: c.eventEndAt,
+                onChanged: c.updateEventTime),
+            const SizedBox(height: 12),
+            _DateTimeSelect(
+                title: '显示时间',
+                date: c.showDate,
+                startAt: c.showStartAt,
+                endAt: c.showEndAt,
+                onChanged: c.updateShowTime),
+            password('查询密码', c.hasPasswordQuery, (v) {
+              c.passwordQuery = v;
+            }),
+            password('赛事密码', c.hasPasswordEvent, (v) {
+              c.passwordEvent = v;
+            }),
             const SizedBox(height: 21.34),
             const SizedBox(height: 21.34),
             SizedBox(
             SizedBox(
                 width: double.infinity,
                 width: double.infinity,
@@ -214,10 +202,35 @@ class RegisterDialog extends GetView<RegisterDialogController> {
         });
         });
   }
   }
 
 
+  Widget password(
+    String title,
+    Rx<bool> hasPassword,
+    void Function(String) onChanged,
+  ) {
+    return SizedBox(
+        height: 80,
+        child: Row(mainAxisSize: MainAxisSize.min, children: [
+          Obx(() => Switch(
+              value: hasPassword.value,
+              onChanged: (v) {
+                hasPassword.value = v;
+              })),
+          Text(title),
+          const SizedBox(width: 12),
+          Obx(() => Expanded(
+              child: Visibility(
+                  visible: hasPassword.value,
+                  child: _TextField(hint: '请输入密码', onChanged: onChanged))))
+        ]));
+  }
+
   void _onRegister() {
   void _onRegister() {
-    final date = controller.date.value;
-    final timeStartAt = controller.registerStartAt.value;
-    final timeStopAt = controller.registerStopAt.value;
+    final showDate = controller.showDate;
+    final showTimeStartAt = controller.showStartAt;
+    final showTimeStopAt = controller.showEndAt;
+    final evenDate = controller.eventDate;
+    final eventTimeStartAt = controller.eventStartAt;
+    final eventTimeStopAt = controller.eventEndAt;
     final selected = controller.selected.value;
     final selected = controller.selected.value;
     final args = controller._args;
     final args = controller._args;
     var selectedId = -1;
     var selectedId = -1;
@@ -237,38 +250,65 @@ class RegisterDialog extends GetView<RegisterDialogController> {
       return;
       return;
     }
     }
 
 
-    if (date == null) {
+    if (showDate == null) {
       Get.snackbar('错误', '请选择日期');
       Get.snackbar('错误', '请选择日期');
       return;
       return;
     }
     }
-    if (timeStartAt == null) {
+    if (showTimeStartAt == null) {
       Get.snackbar('错误', '请选择开始时间');
       Get.snackbar('错误', '请选择开始时间');
       return;
       return;
     }
     }
 
 
-    if (timeStopAt == null) {
+    if (showTimeStopAt == null) {
       Get.snackbar('错误', '请选择结束时间');
       Get.snackbar('错误', '请选择结束时间');
       return;
       return;
     }
     }
+    if (evenDate == null) {
+      Get.snackbar('错误', '请选择日期');
+      return;
+    }
+    if (eventTimeStartAt == null) {
+      Get.snackbar('错误', '请选择开始时间');
+      return;
+    }
 
 
-    final startAt =
-        date.copyWith(hour: timeStartAt.hour, minute: timeStartAt.minute);
-    final stopAt =
-        date.copyWith(hour: timeStopAt.hour, minute: timeStopAt.minute);
+    if (eventTimeStopAt == null) {
+      Get.snackbar('错误', '请选择结束时间');
+      return;
+    }
+    final eventStartAt = evenDate.copyWith(
+        hour: eventTimeStartAt.hour, minute: eventTimeStartAt.minute);
+    final eventStopAt = evenDate.copyWith(
+        hour: eventTimeStopAt.hour, minute: eventTimeStopAt.minute);
 
 
-    if (startAt.isAfter(stopAt)) {
+    if (eventStartAt.isAfter(eventStopAt)) {
       Get.snackbar('错误', '结束时间应晚于开始时间');
       Get.snackbar('错误', '结束时间应晚于开始时间');
       return;
       return;
     }
     }
 
 
+    final showStartAt = showDate.copyWith(
+        hour: showTimeStartAt.hour, minute: showTimeStartAt.minute);
+    final showStopAt = showDate.copyWith(
+        hour: showTimeStopAt.hour, minute: showTimeStopAt.minute);
+
+    if (showStartAt.isAfter(showStopAt)) {
+      Get.snackbar('错误', '结束时间应晚于开始时间');
+      return;
+    }
     Get.back(
     Get.back(
         result: EventRegisterInfo()
         result: EventRegisterInfo()
           ..id = selectedId
           ..id = selectedId
           ..name = controller.registerName
           ..name = controller.registerName
-          ..startAt = startAt
-          ..stopAt = stopAt
-          ..password =
-              controller.hasPassword.value ? controller.password : null);
+          ..showStartAt = showStartAt
+          ..showStopAt = showStopAt
+          ..eventStartAt = eventStartAt
+          ..eventStopAt = eventStopAt
+          ..passwordQuery = controller.hasPasswordQuery.value
+              ? controller.passwordQuery
+              : null
+          ..passwordEvent = controller.hasPasswordEvent.value
+              ? controller.passwordEvent
+              : null);
   }
   }
 }
 }
 
 
@@ -367,11 +407,12 @@ class _DateTimeSelectState extends State<_DateTimeSelect> {
   Widget build(BuildContext context) {
   Widget build(BuildContext context) {
     return Column(
     return Column(
       mainAxisSize: MainAxisSize.min,
       mainAxisSize: MainAxisSize.min,
+      crossAxisAlignment: CrossAxisAlignment.start,
       children: [
       children: [
         Text(widget.title),
         Text(widget.title),
         Row(children: [
         Row(children: [
           Expanded(
           Expanded(
-              child: Obx(() => _TextField(
+              child: _TextField(
                   hint: '日期',
                   hint: '日期',
                   readOnly: true,
                   readOnly: true,
                   initText: dateString(date),
                   initText: dateString(date),
@@ -379,10 +420,10 @@ class _DateTimeSelectState extends State<_DateTimeSelect> {
                     date = await _showDatePicker(context, date);
                     date = await _showDatePicker(context, date);
                     setState(() {});
                     setState(() {});
                     widget.onChanged(date, null, null);
                     widget.onChanged(date, null, null);
-                  }))),
+                  })),
           const SizedBox(width: 15.64),
           const SizedBox(width: 15.64),
           Expanded(
           Expanded(
-              child: Obx(() => _TextField(
+              child: _TextField(
                   hint: '开始时间',
                   hint: '开始时间',
                   readOnly: true,
                   readOnly: true,
                   initText: startAt?.format(context),
                   initText: startAt?.format(context),
@@ -390,10 +431,10 @@ class _DateTimeSelectState extends State<_DateTimeSelect> {
                     startAt = await _showTimePicker(context, startAt);
                     startAt = await _showTimePicker(context, startAt);
                     setState(() {});
                     setState(() {});
                     widget.onChanged(null, startAt, null);
                     widget.onChanged(null, startAt, null);
-                  }))),
+                  })),
           const SizedBox(width: 15.64),
           const SizedBox(width: 15.64),
           Expanded(
           Expanded(
-              child: Obx(() => _TextField(
+              child: _TextField(
                   hint: '结束时间',
                   hint: '结束时间',
                   readOnly: true,
                   readOnly: true,
                   initText: endAt?.format(context),
                   initText: endAt?.format(context),
@@ -401,7 +442,7 @@ class _DateTimeSelectState extends State<_DateTimeSelect> {
                     endAt = await _showTimePicker(context, endAt);
                     endAt = await _showTimePicker(context, endAt);
                     setState(() {});
                     setState(() {});
                     widget.onChanged(null, null, endAt);
                     widget.onChanged(null, null, endAt);
-                  }))),
+                  })),
         ]),
         ]),
       ],
       ],
     );
     );

+ 4 - 1
app_business/lib/view/home/event_manage/event_manage.dart

@@ -448,7 +448,10 @@ class EventTitle extends GetView<EventManagerController> {
                             ? () async {
                             ? () async {
                                 final r = await showEventEditDialog(
                                 final r = await showEventEditDialog(
                                     controller.mapId!,
                                     controller.mapId!,
-                                    EventRegisterInfo()..name = data.name);
+                                    EventRegisterInfo()
+                                      ..name = data.name
+                                      ..showStartAt = data.showStartAt
+                                      ..showStopAt = data.showEndAt);
                                 if (r != null) {
                                 if (r != null) {
                                   controller.eventEdit(data.id, r);
                                   controller.eventEdit(data.id, r);
                                 }
                                 }

+ 19 - 5
app_business/lib/view/home/field_control.dart

@@ -6,6 +6,8 @@ import 'package:track_common/view/home/field_control/field_control.dart';
 import 'package:track_common/view/home/field_control/field_control_controller.dart';
 import 'package:track_common/view/home/field_control/field_control_controller.dart';
 import 'package:track_common/widget/prelude.dart';
 import 'package:track_common/widget/prelude.dart';
 
 
+import 'dialog_event_register.dart';
+
 class FieldControlPageImpl extends FieldControlPage {
 class FieldControlPageImpl extends FieldControlPage {
   const FieldControlPageImpl({super.key});
   const FieldControlPageImpl({super.key});
 
 
@@ -36,8 +38,17 @@ class FieldControlPageImpl extends FieldControlPage {
   }
   }
 
 
   Future<void> _onTapRegister(BuildContext context, MapWatch mapWatch) async {
   Future<void> _onTapRegister(BuildContext context, MapWatch mapWatch) async {
-    final r = await Get.dialog(const RegisterDialog(), arguments: mapWatch.id)
-        as RegisterInfo?;
+    // final r = await Get.dialog(const RegisterDialog(), arguments: mapWatch.id)
+    //     as RegisterInfo?;
+    final mapId = mapWatch.id;
+    final rl = await Get.find<ApiService>()
+        .stub
+        .toActivitySelectList(IdRequest()..id = Int64(mapId));
+    final l = rl.list.map((e) => EventInfo()
+      ..id = e.actId
+      ..name = e.actName);
+
+    final r = await showEventRegisterDialog(mapId, l);
 
 
     if (r != null) {
     if (r != null) {
       Get.find<ApiService>()
       Get.find<ApiService>()
@@ -45,10 +56,13 @@ class FieldControlPageImpl extends FieldControlPage {
           .toMatchRegusterAdd(ToMatchRegusterAddRequest()
           .toMatchRegusterAdd(ToMatchRegusterAddRequest()
             ..actId = r.id
             ..actId = r.id
             ..regName = r.name
             ..regName = r.name
-            ..startAt = r.startAt.toPb()
-            ..stopAt = r.stopAt.toPb()
+            ..startAt = r.eventStartAt.toPb()
+            ..stopAt = r.eventStopAt.toPb()
+            ..bShowTime = r.showStartAt.toPb()
+            ..eShowTime = r.showStopAt.toPb()
             ..isQueryPwd = r.passwordQuery != null
             ..isQueryPwd = r.passwordQuery != null
-            ..queryPasswd = r.passwordQuery ?? '')
+            ..queryPasswd = r.passwordQuery ?? ''
+            ..matchPasswd = r.passwordEvent ?? '')
           .then((p0) {}, onError: (e) {
           .then((p0) {}, onError: (e) {
         if (e is GrpcError) {
         if (e is GrpcError) {
           if (context.mounted) {
           if (context.mounted) {

+ 1 - 1
protos/app_api

@@ -1 +1 @@
-Subproject commit b8ea8b341f1d508098cf38ef1021650a0d41e902
+Subproject commit 39c1aeaaeb2b42a8306591652dd1e359cbe8db91