view.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:vitalapp/architecture/utils/advance_debounce.dart';
  4. import 'index.dart';
  5. class TwelveEcgView extends GetView<TwelveEcgViewController> {
  6. const TwelveEcgView({
  7. Key? key,
  8. required this.width,
  9. required this.height,
  10. required this.initData,
  11. required this.currentIndex,
  12. required this.isConclusion,
  13. }) : super(key: key);
  14. final double width;
  15. final double height;
  16. final List<int> initData;
  17. final int currentIndex;
  18. final bool isConclusion;
  19. // 主视图
  20. Widget _buildView() {
  21. return Center(
  22. child: ClipRect(
  23. child: RepaintBoundary(
  24. child: CustomPaint(
  25. foregroundPainter: EcgPainter(
  26. newPoints: controller.newPointsToDraw,
  27. oldPoints: controller.oldPointsToDraw,
  28. xDataCount: controller.xDataCount,
  29. yMaxList: controller.yMaxList,
  30. isInitPoints: controller.isInitPoints,
  31. ),
  32. painter: GridBackgroundPainter(10 * 25),
  33. size: Size(width, height),
  34. ),
  35. ),
  36. ),
  37. );
  38. }
  39. @override
  40. Widget build(BuildContext context) {
  41. return GetBuilder<TwelveEcgViewController>(
  42. init: TwelveEcgViewController(
  43. initPoints: initData,
  44. ),
  45. id: "twelve_ecg_view",
  46. builder: (_) {
  47. return GestureDetector(
  48. onTap: () {
  49. if (isConclusion) {
  50. Debouncer.run(
  51. controller.openFullScreenDialog,
  52. );
  53. }
  54. },
  55. child: Center(
  56. child: _buildView(),
  57. ),
  58. );
  59. },
  60. );
  61. }
  62. }