view.dart 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import 'package:electronic_assistant/base/base_page.dart';
  2. import 'package:electronic_assistant/data/bean/agenda.dart';
  3. import 'package:electronic_assistant/utils/expand.dart';
  4. import 'package:flutter/cupertino.dart';
  5. import 'package:flutter/gestures.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:flutter/src/widgets/framework.dart';
  8. import 'package:flutter_screenutil/flutter_screenutil.dart';
  9. import 'package:get/get.dart';
  10. import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
  11. import 'package:pull_to_refresh/pull_to_refresh.dart';
  12. import '../../../data/consts/Constants.dart';
  13. import '../../../resource/colors.gen.dart';
  14. import '../../../resource/string.gen.dart';
  15. import '../../agenda/task_item_view.dart';
  16. import '../../chat/view.dart';
  17. import 'controller.dart';
  18. class HomeAgendaView extends BasePage<HomeAgendaController> {
  19. const HomeAgendaView({super.key});
  20. @override
  21. bool immersive() {
  22. return true;
  23. }
  24. @override
  25. Color backgroundColor() {
  26. return '#F6F5F8'.color;
  27. }
  28. @override
  29. Widget buildBody(BuildContext context) {
  30. return Obx(() {
  31. return SmartRefresher(
  32. controller: controller.refreshController,
  33. enablePullUp: false,
  34. onRefresh: controller.onRefresh,
  35. enablePullDown: true,
  36. child: ListView(
  37. padding: EdgeInsets.only(top: 4.w),
  38. children: [
  39. for (var value in controller.agendaList.length > 10
  40. ? controller.agendaList.sublist(0, 10)
  41. : controller.agendaList)
  42. _buildAgendaView(value),
  43. _buildSeeMoreView()
  44. ],
  45. ));
  46. });
  47. }
  48. Widget _buildAgendaView(Agenda item) {
  49. return GestureDetector(
  50. onTap: () {
  51. controller.onAgendaItemClick(item);
  52. },
  53. child: taskItemView(
  54. item,
  55. onThinkingClick: () {
  56. ChatPage.startByTalkId(
  57. item.isExample == true
  58. ? ChatFromType.fromTalkExample
  59. : ChatFromType.fromAnalysisBtn,
  60. item.talkId,
  61. agenda: item);
  62. },
  63. onCheckClick: () {
  64. controller.agendaComplete(item);
  65. },
  66. ));
  67. }
  68. Widget _buildSeeMoreView() {
  69. return Obx(() {
  70. return Visibility(
  71. visible: controller.agendaList.isNotEmpty,
  72. child: Container(
  73. alignment: Alignment.center,
  74. padding: EdgeInsets.only(
  75. top: 16.w, bottom: 100.w + Constants.bottomBarHeight),
  76. child: RichText(
  77. text: TextSpan(
  78. text: StringName.homeTalkTodo1.tr,
  79. style: TextStyle(
  80. color: ColorName.secondaryTextColor, fontSize: 12.sp),
  81. children: <TextSpan>[
  82. TextSpan(
  83. text: StringName.homeTalkTodo2.tr,
  84. style: TextStyle(
  85. color: ColorName.colorPrimary, fontSize: 12.sp),
  86. recognizer: TapGestureRecognizer()
  87. ..onTap = () {
  88. controller.onGoAgendaSeeAll();
  89. }),
  90. ],
  91. ),
  92. ),
  93. ),
  94. );
  95. });
  96. }
  97. }