view.dart 3.2 KB

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