task_item_view.dart 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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, VoidCallback? onThinkingClick}) {
  12. return Container(
  13. padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 17).w,
  14. margin: const EdgeInsets.only(left: 12, right: 12, bottom: 8).w,
  15. decoration: BoxDecoration(
  16. color: Colors.white,
  17. borderRadius: BorderRadius.circular(8),
  18. ),
  19. child: Row(
  20. crossAxisAlignment: CrossAxisAlignment.center,
  21. children: [
  22. GestureDetector(
  23. onTap: onCheckClick,
  24. child: SizedBox(
  25. width: 20.w,
  26. height: 20.w,
  27. child: item.isDone.isTrue
  28. ? Assets.images.iconAgentChecked.image()
  29. : Assets.images.iconAgentUnCheck.image()),
  30. ),
  31. SizedBox(width: 3.w),
  32. Visibility(
  33. visible: item.isExample.isTrue,
  34. child: Container(
  35. decoration: BoxDecoration(
  36. color: ColorName.colorPrimary.withOpacity(0.2),
  37. borderRadius: BorderRadius.circular(4),
  38. ),
  39. padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 3).w,
  40. child: Text(
  41. StringName.homeTalkExample.tr,
  42. style: TextStyle(
  43. fontSize: 12.sp, color: ColorName.colorPrimary, height: 1),
  44. ),
  45. ),
  46. ),
  47. SizedBox(width: 5.w),
  48. Expanded(
  49. child: Padding(
  50. padding: const EdgeInsets.only(right: 12).w,
  51. child: Text(item.content ?? '',
  52. maxLines: 1,
  53. overflow: TextOverflow.ellipsis,
  54. style: TextStyle(
  55. fontSize: 15.sp,
  56. fontWeight: FontWeight.bold,
  57. color: ColorName.primaryTextColor)),
  58. ),
  59. ),
  60. GestureDetector(
  61. onTap: onThinkingClick,
  62. child: Container(
  63. decoration: getPrimaryBtnDecoration(6),
  64. padding: const EdgeInsets.symmetric(horizontal: 9, vertical: 5).w,
  65. child: Text(
  66. StringName.homeTalkThinking.tr,
  67. style: TextStyle(fontSize: 13.sp, color: ColorName.white),
  68. ),
  69. ),
  70. )
  71. ],
  72. ),
  73. );
  74. }