task_item_view.dart 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import 'package:electronic_assistant/data/bean/agenda.dart';
  2. import 'package:electronic_assistant/utils/expand.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter_screenutil/flutter_screenutil.dart';
  5. import 'package:get/get.dart';
  6. import '../../resource/assets.gen.dart';
  7. import '../../resource/colors.gen.dart';
  8. import '../../resource/string.gen.dart';
  9. import '../../utils/common_style.dart';
  10. Widget taskItemView(Agenda item,
  11. {VoidCallback? onCheckClick,
  12. VoidCallback? onThinkingClick,
  13. bool? isShowAnalyse,
  14. bool isLimitLines = true}) {
  15. return Container(
  16. padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 17).w,
  17. margin: const EdgeInsets.only(left: 12, right: 12, bottom: 8).w,
  18. decoration: BoxDecoration(
  19. color: Colors.white,
  20. borderRadius: BorderRadius.circular(8),
  21. ),
  22. child: Row(
  23. crossAxisAlignment: CrossAxisAlignment.center,
  24. children: [
  25. GestureDetector(
  26. onTap: onCheckClick,
  27. child: _buildCheckBox(item.agendaStatus?.value),
  28. ),
  29. Visibility(
  30. visible: item.isExample.isTrue,
  31. child: Container(
  32. decoration: BoxDecoration(
  33. color: "#B2BAC4".toColor(),
  34. borderRadius: BorderRadius.circular(4),
  35. ),
  36. padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 3).w,
  37. child: Text(
  38. StringName.homeTalkExample.tr,
  39. style:
  40. TextStyle(fontSize: 12.sp, color: ColorName.white, height: 1),
  41. ),
  42. ),
  43. ),
  44. SizedBox(width: 6.w),
  45. Expanded(
  46. child: Padding(
  47. padding: const EdgeInsets.only(right: 12).w,
  48. child: Text(item.content ?? '',
  49. maxLines: isLimitLines ? 1 : null,
  50. overflow: isLimitLines ? TextOverflow.ellipsis : null,
  51. style: TextStyle(
  52. fontSize: 15.sp,
  53. fontWeight: FontWeight.bold,
  54. color: ColorName.primaryTextColor)),
  55. ),
  56. ),
  57. Visibility(
  58. visible: isShowAnalyse ?? true,
  59. child: GestureDetector(
  60. onTap: onThinkingClick,
  61. child: Container(
  62. decoration: getAIBtnDecoration(6.w),
  63. padding: const EdgeInsets.symmetric(horizontal: 9, vertical: 5).w,
  64. child: Text(StringName.homeTalkThinking.tr,
  65. style: TextStyle(
  66. fontSize: 13.sp, color: ColorName.colorPrimary)),
  67. ),
  68. ),
  69. )
  70. ],
  71. ),
  72. );
  73. }
  74. Widget _buildCheckBox(AgendaStatus? status) {
  75. if (status == AgendaStatus.todo) {
  76. return Container(
  77. margin: EdgeInsets.only(right: 6.w),
  78. width: 20.w,
  79. height: 20.w,
  80. child: Assets.images.iconAgentUnderway.image());
  81. } else if (status == AgendaStatus.done) {
  82. return Container(
  83. margin: EdgeInsets.only(right: 6.w),
  84. width: 20.w,
  85. height: 20.w,
  86. child: Assets.images.iconAgentDone.image());
  87. } else {
  88. return Container();
  89. }
  90. }