renovation_date_page.dart 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import 'package:cs_resources/generated/l10n.dart';
  2. import 'package:cs_resources/theme/app_colors_theme.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:auto_route/auto_route.dart';
  5. import 'package:flutter_hooks/flutter_hooks.dart';
  6. import 'package:hooks_riverpod/hooks_riverpod.dart';
  7. import 'package:plugin_platform/engine/toast/toast_engine.dart';
  8. import 'package:router/ext/auto_router_extensions.dart';
  9. import 'package:widgets/ext/ex_widget.dart';
  10. import 'package:widgets/my_appbar.dart';
  11. import 'package:widgets/my_button.dart';
  12. import 'package:widgets/my_text_view.dart';
  13. import 'package:widgets/shatter/picker_container.dart';
  14. import '../../router/page/form_page_router.dart';
  15. import 'vm/apply_view_model.dart';
  16. @RoutePage()
  17. class RenovationDatePage extends HookConsumerWidget {
  18. const RenovationDatePage({Key? key}) : super(key: key);
  19. //启动当前页面
  20. static void startInstance({BuildContext? context}) {
  21. if (context != null) {
  22. context.router.push(const RenovationDatePageRoute());
  23. } else {
  24. appRouter.push(const RenovationDatePageRoute());
  25. }
  26. }
  27. @override
  28. Widget build(BuildContext context, WidgetRef ref) {
  29. final viewModel = ref.watch(applyViewModelProvider.notifier);
  30. final state = ref.watch(applyViewModelProvider);
  31. useEffect(() {
  32. //赋值State的值
  33. Future.microtask(() {});
  34. return () {
  35. // 组件卸载时执行
  36. };
  37. }, []);
  38. return WillPopScope(
  39. child: Scaffold(
  40. appBar: MyAppBar.appBar(context, state.applyDetail?['title']),
  41. backgroundColor: context.appColors.backgroundWhite,
  42. body: Column(
  43. crossAxisAlignment: CrossAxisAlignment.start,
  44. children: [
  45. SingleChildScrollView(
  46. scrollDirection: Axis.vertical,
  47. physics: const BouncingScrollPhysics(),
  48. child: Container(
  49. width: double.infinity,
  50. child: Column(
  51. mainAxisSize: MainAxisSize.max,
  52. crossAxisAlignment: CrossAxisAlignment.start,
  53. children: [
  54. //下拉选 - 开始时间
  55. MyTextView(
  56. S.current.renovation_start_date,
  57. fontSize: 17,
  58. marginTop: 30,
  59. marginLeft: 15,
  60. marginBottom: 16,
  61. isFontMedium: true,
  62. textColor: context.appColors.textBlack,
  63. ),
  64. PickerContainer(
  65. hint: S.current.choose_date,
  66. onClick: (){
  67. viewModel.pickDate(null,(date){
  68. ToastEngine.show("选择的日期:$date");
  69. });
  70. },
  71. ).marginOnly(left: 15, right: 15),
  72. //下拉选 - 结束时间
  73. MyTextView(
  74. S.current.renovation_end_date,
  75. fontSize: 17,
  76. marginTop: 14,
  77. marginLeft: 15,
  78. marginBottom: 16,
  79. isFontMedium: true,
  80. textColor: context.appColors.textBlack,
  81. ),
  82. PickerContainer(
  83. hint: S.current.choose_date,
  84. onClick: (){
  85. viewModel.pickDate(null,(date){
  86. ToastEngine.show("选择的日期:$date");
  87. });
  88. },
  89. ).marginOnly(left: 15, right: 15),
  90. //下拉选 - 施工时间开始时间
  91. MyTextView(
  92. S.current.hacking_start_date,
  93. fontSize: 17,
  94. marginTop: 14,
  95. marginLeft: 15,
  96. marginBottom: 16,
  97. isFontMedium: true,
  98. textColor: context.appColors.textBlack,
  99. ),
  100. PickerContainer(
  101. hint: S.current.choose_date,
  102. onClick: (){
  103. viewModel.pickDate(null,(date){
  104. ToastEngine.show("选择的日期:$date");
  105. });
  106. },
  107. ).marginOnly(left: 15, right: 15),
  108. //下拉选 - 施工时间结束时间
  109. MyTextView(
  110. S.current.hacking_end_date,
  111. fontSize: 17,
  112. marginTop: 14,
  113. marginLeft: 15,
  114. marginBottom: 16,
  115. isFontMedium: true,
  116. textColor: context.appColors.textBlack,
  117. ),
  118. PickerContainer(
  119. hint: S.current.choose_date,
  120. onClick: (){
  121. viewModel.pickDate(null,(date){
  122. ToastEngine.show("选择的日期:$date");
  123. });
  124. },
  125. ).marginOnly(left: 15, right: 15),
  126. ],
  127. ),
  128. ),
  129. ).expanded(),
  130. //底部按钮
  131. MyButton(
  132. onPressed: viewModel.gotoNextPage,
  133. text: S.current.next,
  134. textColor: Colors.white,
  135. backgroundColor: context.appColors.btnBgDefault,
  136. fontWeight: FontWeight.w500,
  137. type: ClickType.throttle,
  138. fontSize: 16,
  139. minHeight: 50,
  140. radius: 0,
  141. ),
  142. ],
  143. )),
  144. onWillPop: () async {
  145. viewModel.handlePopAction();
  146. return true;
  147. });
  148. }
  149. }