Pārlūkot izejas kodu

1、变更图片组件

bakamaka.guan 2 gadi atpakaļ
vecāks
revīzija
823c5779f7
1 mainītis faili ar 71 papildinājumiem un 55 dzēšanām
  1. 71 55
      lib/components/picture_components.dart

+ 71 - 55
lib/components/picture_components.dart

@@ -33,33 +33,45 @@ class TerminalImage {
 
 /// 所有图片的入口
 class ContentImage extends StatelessWidget implements FWidget {
-  /// 图片类型
-  final RemedicalFileDataTypeEnum fileDataType;
+  /// 图片参数
+  final RemedicalInfoDTO remedicalInfo;
 
   /// 图片地址
   final TerminalImage terminalImage;
 
-  /// AI 良恶性
-  final DiagnosisConclusionEnum? diagnosisConclusion;
-
   /// 是否是测量页面
   final bool? isMeasure;
 
   /// 改变图片地址
   final VoidCallback? onChangeImage;
 
+  /// AI 良恶性
+  late final DiagnosisConclusionEnum diagnosisConclusion =
+      remedicalInfo.diagnosisConclusion;
+
+  /// 图片类型
+  late final RemedicalFileDataTypeEnum fileDataType =
+      remedicalInfo.fileDataType;
+
   /// AI测量的器官
-  final List<DiagnosisOrganEnum>? diagnosisOrgans;
+  late final List<DiagnosisOrganEnum>? diagnosisOrgans =
+      remedicalInfo.diagnosisOrgans;
 
   /// 判断是否有AI器官
   bool get hasDiagnosisOrgans => diagnosisOrgans?.length != 0;
 
+  /// 判断是否展示ai字
+  bool get isShowDiagnosisOrgans => [
+        DiagnosisConclusionEnum.NoObviousLesion,
+        DiagnosisConclusionEnum.Benign,
+        DiagnosisConclusionEnum.Malignant,
+        DiagnosisConclusionEnum.BenignAndMalignant
+      ].contains(diagnosisOrgans);
+
   ContentImage({
     Key? key,
-    required this.fileDataType,
     required this.terminalImage,
-    this.diagnosisConclusion = DiagnosisConclusionEnum.NotRequired,
-    this.diagnosisOrgans = const [DiagnosisOrganEnum.Null],
+    required this.remedicalInfo,
     this.isMeasure = false,
     this.onChangeImage,
   }) : super(key: key);
@@ -124,7 +136,7 @@ class ContentImage extends StatelessWidget implements FWidget {
                   )
                 : const SizedBox(),
             InkWell(
-              onTap: () {
+              onDoubleTap: () {
                 onChangeImage!.call();
               },
               child: Center(
@@ -137,26 +149,28 @@ class ContentImage extends StatelessWidget implements FWidget {
                 ),
               ),
             ),
-            Positioned(
-              bottom: 5,
-              right: 5,
-              child: Tooltip(
-                textStyle: TextStyle(
-                  fontSize: 16,
-                  color: Colors.white,
-                ),
-                message: _buildAIText(diagnosisConclusion!),
-                child: Text(
-                  'AI',
-                  style: TextStyle(
-                    color: _buildAITextColor(
-                      diagnosisConclusion!,
+            isShowDiagnosisOrgans
+                ? Positioned(
+                    bottom: 5,
+                    right: 5,
+                    child: Tooltip(
+                      textStyle: TextStyle(
+                        fontSize: 16,
+                        color: Colors.white,
+                      ),
+                      message: _buildAIText(diagnosisConclusion),
+                      child: Text(
+                        'AI',
+                        style: TextStyle(
+                          color: _buildAITextColor(
+                            diagnosisConclusion,
+                          ),
+                          fontSize: 20,
+                        ),
+                      ),
                     ),
-                    fontSize: 20,
-                  ),
-                ),
-              ),
-            ),
+                  )
+                : const SizedBox(),
           ],
         ),
       ),
@@ -168,7 +182,7 @@ class ContentImage extends StatelessWidget implements FWidget {
   ) {
     return Listener(
       child: InkWell(
-        onTap: () {
+        onDoubleTap: () {
           onChangeImage!.call();
         },
         child: Container(
@@ -194,26 +208,28 @@ class ContentImage extends StatelessWidget implements FWidget {
                       child: _buildAIDiagnosticOrgans(),
                     )
                   : const SizedBox(),
-              Positioned(
-                bottom: 5,
-                right: 5,
-                child: Tooltip(
-                  textStyle: TextStyle(
-                    fontSize: 16,
-                    color: Colors.white,
-                  ),
-                  message: _buildAIText(diagnosisConclusion!),
-                  child: Text(
-                    'AI',
-                    style: TextStyle(
-                      color: _buildAITextColor(
-                        diagnosisConclusion!,
+              isShowDiagnosisOrgans
+                  ? Positioned(
+                      bottom: 5,
+                      right: 5,
+                      child: Tooltip(
+                        textStyle: TextStyle(
+                          fontSize: 16,
+                          color: Colors.white,
+                        ),
+                        message: _buildAIText(diagnosisConclusion),
+                        child: Text(
+                          'AI',
+                          style: TextStyle(
+                            color: _buildAITextColor(
+                              diagnosisConclusion,
+                            ),
+                            fontSize: 20,
+                          ),
+                        ),
                       ),
-                      fontSize: 20,
-                    ),
-                  ),
-                ),
-              ),
+                    )
+                  : const SizedBox(),
             ],
           ),
         ),
@@ -267,14 +283,14 @@ class ContentImage extends StatelessWidget implements FWidget {
         return FIcon(
           FIcons.fis_breast,
           color: _buildAITextColor(
-            diagnosisConclusion!,
+            diagnosisConclusion,
           ),
         );
       case DiagnosisOrganEnum.Abdomen:
         return FIcon(
           FIcons.fis_abdomen,
           color: _buildAITextColor(
-            diagnosisConclusion!,
+            diagnosisConclusion,
           ),
         );
 
@@ -282,28 +298,28 @@ class ContentImage extends StatelessWidget implements FWidget {
         return FIcon(
           FIcons.fis_liver,
           color: _buildAITextColor(
-            diagnosisConclusion!,
+            diagnosisConclusion,
           ),
         );
       case DiagnosisOrganEnum.Cholecyst:
         return FIcon(
           FIcons.fis_gallbladder,
           color: _buildAITextColor(
-            diagnosisConclusion!,
+            diagnosisConclusion,
           ),
         );
       case DiagnosisOrganEnum.Kidney:
         return FIcon(
           FIcons.fis_kidney,
           color: _buildAITextColor(
-            diagnosisConclusion!,
+            diagnosisConclusion,
           ),
         );
       case DiagnosisOrganEnum.Spleen:
         return FIcon(
           FIcons.fis_spleen,
           color: _buildAITextColor(
-            diagnosisConclusion!,
+            diagnosisConclusion,
           ),
         );