| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- 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';
- class FieldControlPageImpl extends FieldControlPage {
- const FieldControlPageImpl({super.key});
- @override
- Widget get rightColumn {
- return Obx(() => Container(
- width: 263,
- padding: const EdgeInsets.all(6.4),
- height: double.infinity,
- color: Colors.white,
- child: Column(
- children: [
- SizedBox(
- width: double.infinity,
- child: DarkButton(
- child: const Text('注册比赛'),
- onPressed: () {
- Get.dialog(RegisterDialog());
- })),
- Expanded(
- child: ListView(
- children: controller.eventList
- .map((element) => eventView(element))
- .toList(),
- ),
- )
- ],
- )));
- }
- Widget eventView(EventOnMap event) {
- return Card(
- shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(3.56)),
- child: Row(
- children: [
- Text(event.name),
- Text('(${event.userList.length} 人)'),
- const Spacer(),
- IconButton(
- onPressed: () {},
- icon: const Icon(Icons.arrow_drop_down_outlined))
- ],
- ),
- );
- }
- }
- class FieldControlControllerImpl extends FieldControlController {
- var registerName = '';
- TimeOfDay? registerStartAt;
- TimeOfDay? registerStopAt;
- final registerStartAtController = TextEditingController();
- final registerStopAtController = TextEditingController();
- }
- class RegisterDialog extends GetView<FieldControlController> {
- const RegisterDialog({super.key});
- FieldControlControllerImpl get c => controller as FieldControlControllerImpl;
- @override
- Widget build(BuildContext context) {
- return AlertDialog(
- title: const Center(
- child: Text(
- '注册比赛',
- style: TextStyle(fontSize: 17),
- )),
- backgroundColor: Colors.white,
- shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(17.78)),
- content: SizedBox(
- width: 75.38,
- child: ListView(
- shrinkWrap: true,
- children: [
- const _TextField(hint: '请选择活动'),
- const SizedBox(height: 21.34),
- _TextField(
- hint: '请输入名称',
- onChanged: (v) {
- c.registerName = v;
- }),
- const SizedBox(height: 21.34),
- Row(children: [
- Expanded(
- child: _TextField(
- hint: '开始时间',
- readOnly: true,
- controller: c.registerStartAtController,
- onTap: () async {
- debug('onTap');
- final t =
- await _showTimePicker(context, c.registerStartAt);
- c.registerStartAt = t;
- if (t != null) {
- c.registerStartAtController.text = t.toString();
- }
- })),
- const SizedBox(width: 15.64),
- Expanded(
- child: _TextField(
- hint: '结束时间',
- readOnly: true,
- controller: c.registerStopAtController,
- onTap: () async {
- debug('onTap');
- final t =
- await _showTimePicker(context, c.registerStopAt);
- c.registerStopAt = t;
- if (t != null) {
- c.registerStopAtController.text = t.toString();
- }
- })),
- ]),
- Row(
- mainAxisSize: MainAxisSize.min,
- children: [
- Switch(value: true, onChanged: (v) {}),
- const Text('查询密码')
- ],
- ),
- SizedBox(
- width: double.infinity,
- child: DarkButton(child: const Text('注 册'), onPressed: () {}))
- ],
- )),
- );
- }
- Future<TimeOfDay?> _showTimePicker(
- BuildContext context, TimeOfDay? init) async {
- final TimeOfDay? time = await showTimePicker(
- context: context,
- initialTime: init ?? TimeOfDay.now(),
- );
- return time;
- }
- }
- class _TextField extends StatelessWidget {
- const _TextField(
- {required this.hint,
- this.onChanged,
- this.readOnly = false,
- this.onTap,
- this.controller});
- final String hint;
- final void Function(String)? onChanged;
- final bool readOnly;
- final void Function()? onTap;
- final TextEditingController? controller;
- @override
- Widget build(BuildContext context) {
- return SizedBox(
- height: 34.13,
- child: TextField(
- controller: controller,
- maxLines: 1,
- style: const TextStyle(fontSize: 11.38),
- onChanged: onChanged,
- onTap: onTap,
- readOnly: readOnly,
- decoration: InputDecoration(
- hintText: hint,
- border: OutlineInputBorder(
- borderSide: const BorderSide(
- width: 0.71, color: Color(0xff818181)), //<-- SEE HERE
- borderRadius: BorderRadius.circular(2.13),
- ),
- isDense: true,
- contentPadding: const EdgeInsets.all(8.53)),
- ),
- );
- }
- }
|