crowd_label.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import 'package:fis_jsonrpc/rpc.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:get/get.dart';
  4. import 'package:vitalapp/components/cell.dart';
  5. import 'package:vitalapp/pages/controllers/crowd_labels.dart';
  6. class CrowdLabelView extends GetView<CrowdLabelsController> {
  7. const CrowdLabelView({super.key});
  8. @override
  9. Widget build(BuildContext context) {
  10. return Container(
  11. padding: const EdgeInsets.only(bottom: 80),
  12. child: buildCrowdLables(context));
  13. }
  14. Widget buildCrowdLables(BuildContext context) {
  15. return Obx(() {
  16. final state = controller.state;
  17. return SingleChildScrollView(
  18. child: Column(
  19. children: [
  20. VListFormCellGroup(
  21. children: [
  22. ...state.normalOptions
  23. .map((LabelDTO e) => buildItem(e, context))
  24. .toList(),
  25. ...state.diseaseOptions
  26. .map((LabelDTO e) => buildItem(e, context))
  27. .toList(),
  28. ...state.specialCareOptions
  29. .map((LabelDTO e) => buildItem(e, context))
  30. .toList(),
  31. ],
  32. ),
  33. ],
  34. ),
  35. );
  36. });
  37. }
  38. Widget buildItem(LabelDTO dto, BuildContext context) {
  39. return InkWell(
  40. onTap: () {
  41. controller.onItemCheckChanged(dto.code!);
  42. },
  43. child: Row(
  44. children: [
  45. Expanded(
  46. child: VListFormCell(
  47. label: dto.labelName ?? '',
  48. contentWidget: Obx(
  49. () => Switch(
  50. value: controller.state.selectedCodes.contains(dto.code),
  51. onChanged: (value) {
  52. controller.onItemCheckChanged(dto.code!);
  53. },
  54. activeColor: Theme.of(context).primaryColor,
  55. inactiveThumbColor: Colors.grey,
  56. // inactiveTrackColor:Colors.grey,
  57. ),
  58. ),
  59. ),
  60. ),
  61. ],
  62. ),
  63. );
  64. }
  65. }