task_item_view.dart 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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: getPrimaryBtnDecoration(6),
  63. padding: const EdgeInsets.symmetric(horizontal: 9, vertical: 5).w,
  64. child: Text(
  65. StringName.homeTalkThinking.tr,
  66. style: TextStyle(fontSize: 13.sp, color: ColorName.white),
  67. ),
  68. ),
  69. ),
  70. )
  71. ],
  72. ),
  73. );
  74. }
  75. Widget _buildCheckBox(AgendaStatus? status) {
  76. if (status == AgendaStatus.todo) {
  77. return Container(
  78. margin: EdgeInsets.only(right: 6.w),
  79. width: 20.w,
  80. height: 20.w,
  81. child: Assets.images.iconAgentUnderway.image());
  82. } else if (status == AgendaStatus.done) {
  83. return Container(
  84. margin: EdgeInsets.only(right: 6.w),
  85. width: 20.w,
  86. height: 20.w,
  87. child: Assets.images.iconAgentDone.image());
  88. } else {
  89. return Container();
  90. }
  91. }