Browse Source

文本输入框控件调整 & Bug修复

loki.wu 2 years ago
parent
commit
e25c233161

+ 4 - 0
lib/pages/components/datetime.dart

@@ -3,6 +3,7 @@ import 'package:fis_lib_report/converts/pt_to_px_converter.dart';
 import 'package:fis_lib_report/converts/text_size_converter.dart';
 import 'package:fis_lib_report/converts/alignment_convert.dart';
 import 'package:fis_lib_report/report/dateTimeElement.dart';
+import 'package:fis_lib_report/report_info/date_time_info.dart';
 import 'package:fis_lib_report/report_info/report_info.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
@@ -29,10 +30,13 @@ class _RDateTimeState extends State<RDateTime> {
   Color _fontColor = Colors.black;
   Color _backgroundColor = const Color.fromARGB(255, 255, 255, 255);
   EdgeInsets _margin = const EdgeInsets.all(0);
+  DateTimeInfo? _dateTimeInfo;
 
   @override
   initState() {
     dateTimeElement = widget.dateTimeElement;
+    //_dateTimeInfo =
+    //     ReportInfo.instance.getElementInfo(dateTimeElement) as DateTimeInfo;
 
     final format = dateTimeElement.dateTimeFormat;
     if (format != null) {

+ 13 - 15
lib/pages/components/input_text.dart

@@ -39,7 +39,9 @@ class _RInputTextState extends State<RInputText> {
     final inputTextInfo = ReportInfo.instance.getElementInfo(inputText);
     _inputTextInfo = inputTextInfo as InputTextInfo;
     if (inputText.isReadOnly!) {
-      _controller.text = 'test';
+      if (_inputTextInfo!.tag!.name == 'ReportPhysician') {
+        _controller.text = ReportInfo.instance.reporter ?? '';
+      }
     }
     final fontColor = inputText.fontColor;
     if (fontColor != null) {
@@ -61,9 +63,10 @@ class _RInputTextState extends State<RInputText> {
     final fontStyles = inputText.fontStyles;
     _lineLength = inputText.lineLength;
     _lineWidth = inputText.lineWidth;
+
     _textWrap = inputText.textWrap;
     _fontSize = PtToPxConverter.ptToPx(inputText.fontSize);
-    _height = _fontSize! > 30 ? 36.5 : 22;
+    _height = _fontSize! > 30 ? 43 : 22;
     super.initState();
   }
 
@@ -76,7 +79,7 @@ class _RInputTextState extends State<RInputText> {
     return Container(
       width: PtToPxConverter.ptToPx(_lineWidth!),
       height: _textWrap! ? _height! * 4 : (_height!),
-      padding: EdgeInsets.only(top: _textWrap! ? 10 : 5, right: 5, left: 5),
+      padding: const EdgeInsets.only(right: 5, left: 5),
       decoration: BoxDecoration(
         border: Border.all(
           width: 1,
@@ -87,18 +90,7 @@ class _RInputTextState extends State<RInputText> {
       child: TextField(
         focusNode: _focusNode,
         readOnly: inputText.isReadOnly ?? false,
-        // cursorHeight: _height!,
-        decoration: InputDecoration.collapsed(
-          hintText: '',
-          hintStyle: TextStyle(
-            fontSize: _fontSize,
-            color: Colors.black54,
-          ),
-          fillColor: _backgroundColor,
-          filled: false,
-        ).copyWith(
-          contentPadding: EdgeInsets.symmetric(vertical: _textWrap! ? 2.5 : 4),
-        ),
+        decoration: null,
         textAlignVertical: AlignmentConvert.verticalAlignmentConvert(
             inputText.verticalAlignment),
         minLines: 1,
@@ -144,4 +136,10 @@ class _RInputTextState extends State<RInputText> {
       }
     }
   }
+
+  @override
+  void dispose() {
+    _controller.dispose();
+    super.dispose();
+  }
 }

+ 10 - 2
lib/pages/components/static_text.dart

@@ -4,7 +4,9 @@ import 'dart:typed_data';
 import 'package:fis_lib_report/converts/alignment_convert.dart';
 import 'package:fis_lib_report/converts/pt_to_px_converter.dart';
 import 'package:fis_lib_report/converts/text_size_converter.dart';
-import 'package:fis_lib_report/report/staticText.dart';
+import 'package:fis_lib_report/report/static_text.dart';
+import 'package:fis_lib_report/report_info/report_info.dart';
+import 'package:fis_lib_report/report_info/static_text_info.dart';
 import 'package:flutter/material.dart';
 
 class RStaticText extends StatefulWidget {
@@ -27,9 +29,15 @@ class _RStaticTextState extends State<RStaticText> {
   Color _fontColor = Colors.black;
   Color _backgroundColor = const Color.fromARGB(255, 255, 255, 255);
   EdgeInsets _margin = const EdgeInsets.all(0);
+  StaticTextInfo? _staticTextInfo;
+
   @override
   initState() {
     staticText = widget.staticText;
+    final staticTextInfo = ReportInfo.instance.getElementInfo(staticText);
+    if (staticTextInfo != null) {
+      _staticTextInfo = staticTextInfo as StaticTextInfo;
+    }
     _fontSize = staticText.fontSize ?? 15.0;
     //TODO(Loki):常规模板暂未设置fontStyles,后续再支持
     //final fontStyles = staticText.fontStyles;
@@ -62,7 +70,7 @@ class _RStaticTextState extends State<RStaticText> {
 
   @override
   Widget build(BuildContext context) {
-    final text = staticText.text!;
+    final text = _staticTextInfo!.text!;
     return Container(
       margin: _margin,
       child: Text(

+ 1 - 1
lib/pages/paragraph_page.dart

@@ -24,7 +24,7 @@ import 'package:fis_lib_report/report/page_number.dart';
 import 'package:fis_lib_report/report/paragraph.dart';
 import 'package:fis_lib_report/report/singleSelected.dart';
 import 'package:fis_lib_report/report/space.dart';
-import 'package:fis_lib_report/report/staticText.dart';
+import 'package:fis_lib_report/report/static_text.dart';
 import 'package:fis_lib_report/report/static_image.dart';
 import 'package:fis_lib_report/report_info/report_info.dart';
 import 'package:flutter/material.dart';

+ 1 - 1
lib/report/paragraph.dart

@@ -10,7 +10,7 @@ import 'package:fis_lib_report/report/multiSelected.dart';
 import 'package:fis_lib_report/report/page_number.dart';
 import 'package:fis_lib_report/report/singleSelected.dart';
 import 'package:fis_lib_report/report/space.dart';
-import 'package:fis_lib_report/report/staticText.dart';
+import 'package:fis_lib_report/report/static_text.dart';
 import 'package:fis_lib_report/report/static_image.dart';
 
 class Paragraph extends Element implements IParagraph {

+ 2 - 2
lib/report/report_template_document.dart

@@ -116,9 +116,9 @@ class ReportTemplateDocument implements IReportTemplateDocument {
 
   @override
   ReportTemplateDocument() {
-    id = Uuid().v1();
+    id = const Uuid().v1();
     pageSize = RTPageSize.a4;
-    pagePadding = new RTThickness.uniform(56.83);
+    pagePadding = RTThickness.uniform(56.83);
     headerHeight = null;
     footerHeight = null;
     baseFontSize = 9;

+ 0 - 0
lib/report/staticText.dart → lib/report/static_text.dart


+ 1 - 1
lib/report_info/page_number_info.dart

@@ -1,5 +1,5 @@
 import 'package:fis_lib_report/report/page_number.dart';
-import 'package:fis_lib_report/report/staticText.dart';
+import 'package:fis_lib_report/report/static_text.dart';
 import 'package:fis_lib_report/report_info/text_element_info.dart';
 
 class PageNumberInfo extends TextElementInfo {

+ 1 - 1
lib/report_info/paragraph_info.dart

@@ -6,7 +6,7 @@ import 'package:fis_lib_report/report/multiSelected.dart';
 import 'package:fis_lib_report/report/page_number.dart';
 import 'package:fis_lib_report/report/paragraph.dart';
 import 'package:fis_lib_report/report/singleSelected.dart';
-import 'package:fis_lib_report/report/staticText.dart';
+import 'package:fis_lib_report/report/static_text.dart';
 import 'package:fis_lib_report/report/static_image.dart';
 import 'package:fis_lib_report/report_info/block_element_info_interface.dart';
 import 'package:fis_lib_report/report_info/date_time_info.dart';

+ 1 - 1
lib/report_info/static_text_info.dart

@@ -1,4 +1,4 @@
-import 'package:fis_lib_report/report/staticText.dart';
+import 'package:fis_lib_report/report/static_text.dart';
 import 'package:fis_lib_report/report_info/text_element_info.dart';
 
 class StaticTextInfo extends TextElementInfo {