|
|
@@ -1,5 +1,4 @@
|
|
|
import 'package:track_common/service/map_watch.dart';
|
|
|
-import 'package:track_common/track_common.dart';
|
|
|
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/widget/prelude.dart';
|
|
|
@@ -21,7 +20,7 @@ class FieldControlPageImpl extends FieldControlPage {
|
|
|
child: DarkButton(
|
|
|
child: const Text('注册比赛'),
|
|
|
onPressed: () {
|
|
|
- Get.dialog(RegisterDialog());
|
|
|
+ Get.dialog(const RegisterDialog());
|
|
|
})),
|
|
|
Expanded(
|
|
|
child: ListView(
|
|
|
@@ -53,11 +52,8 @@ class FieldControlPageImpl extends FieldControlPage {
|
|
|
|
|
|
class FieldControlControllerImpl extends FieldControlController {
|
|
|
var registerName = '';
|
|
|
- TimeOfDay? registerStartAt;
|
|
|
- TimeOfDay? registerStopAt;
|
|
|
-
|
|
|
- final registerStartAtController = TextEditingController();
|
|
|
- final registerStopAtController = TextEditingController();
|
|
|
+ final registerStartAt = Rx<TimeOfDay?>(null);
|
|
|
+ final registerStopAt = Rx<TimeOfDay?>(null);
|
|
|
}
|
|
|
|
|
|
class RegisterDialog extends GetView<FieldControlController> {
|
|
|
@@ -90,33 +86,23 @@ class RegisterDialog extends GetView<FieldControlController> {
|
|
|
const SizedBox(height: 21.34),
|
|
|
Row(children: [
|
|
|
Expanded(
|
|
|
- child: _TextField(
|
|
|
+ child: Obx(() => _TextField(
|
|
|
hint: '开始时间',
|
|
|
readOnly: true,
|
|
|
- controller: c.registerStartAtController,
|
|
|
+ initText: c.registerStartAt.value?.format(context),
|
|
|
onTap: () async {
|
|
|
- debug('onTap');
|
|
|
- final t =
|
|
|
- await _showTimePicker(context, c.registerStartAt);
|
|
|
- c.registerStartAt = t;
|
|
|
- if (t != null) {
|
|
|
- c.registerStartAtController.text = t.toString();
|
|
|
- }
|
|
|
- })),
|
|
|
+ c.registerStartAt.value = await _showTimePicker(
|
|
|
+ context, c.registerStartAt.value);
|
|
|
+ }))),
|
|
|
const SizedBox(width: 15.64),
|
|
|
Expanded(
|
|
|
child: _TextField(
|
|
|
hint: '结束时间',
|
|
|
readOnly: true,
|
|
|
- controller: c.registerStopAtController,
|
|
|
+ initText: c.registerStopAt.value?.format(context),
|
|
|
onTap: () async {
|
|
|
- debug('onTap');
|
|
|
- final t =
|
|
|
- await _showTimePicker(context, c.registerStopAt);
|
|
|
- c.registerStopAt = t;
|
|
|
- if (t != null) {
|
|
|
- c.registerStopAtController.text = t.toString();
|
|
|
- }
|
|
|
+ c.registerStopAt.value = await _showTimePicker(
|
|
|
+ context, c.registerStopAt.value);
|
|
|
})),
|
|
|
]),
|
|
|
Row(
|
|
|
@@ -150,20 +136,21 @@ class _TextField extends StatelessWidget {
|
|
|
this.onChanged,
|
|
|
this.readOnly = false,
|
|
|
this.onTap,
|
|
|
- this.controller});
|
|
|
+ this.initText});
|
|
|
|
|
|
final String hint;
|
|
|
final void Function(String)? onChanged;
|
|
|
final bool readOnly;
|
|
|
final void Function()? onTap;
|
|
|
- final TextEditingController? controller;
|
|
|
+ final String? initText;
|
|
|
|
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
|
return SizedBox(
|
|
|
height: 34.13,
|
|
|
- child: TextField(
|
|
|
- controller: controller,
|
|
|
+ child: TextFormField(
|
|
|
+ key: GlobalKey(),
|
|
|
+ initialValue: initText,
|
|
|
maxLines: 1,
|
|
|
style: const TextStyle(fontSize: 11.38),
|
|
|
onChanged: onChanged,
|
|
|
@@ -172,8 +159,8 @@ class _TextField extends StatelessWidget {
|
|
|
decoration: InputDecoration(
|
|
|
hintText: hint,
|
|
|
border: OutlineInputBorder(
|
|
|
- borderSide: const BorderSide(
|
|
|
- width: 0.71, color: Color(0xff818181)), //<-- SEE HERE
|
|
|
+ borderSide:
|
|
|
+ const BorderSide(width: 0.71, color: Color(0xff818181)),
|
|
|
borderRadius: BorderRadius.circular(2.13),
|
|
|
),
|
|
|
isDense: true,
|