Procházet zdrojové kódy

报告时间根据isreadonly字段判断是否需要选择时间

loki.wu před 2 roky
rodič
revize
5fd00680b3

+ 3 - 39
lib/main.dart

@@ -90,7 +90,7 @@ class _MyHomePageState extends State<MyHomePage> {
         children: [
           ReportEditPage(
             reporter: 'Loki',
-            reportDate: '2022-06-20',
+            reportDate: DateTime.now(),
             jsonStr: _jsonStr,
             onSelect: onSelect,
           ),
@@ -99,8 +99,8 @@ class _MyHomePageState extends State<MyHomePage> {
               decoration: _buildDecoration(),
               padding: _padding,
               alignment: Alignment.center,
-              height: _height,
-              width: _width - 50,
+              height: 800,
+              width: 600,
               child: Wrap(
                 children: [
                   ...demoImags.map((element) {
@@ -132,40 +132,4 @@ class _MyHomePageState extends State<MyHomePage> {
         ),
         color: Colors.white);
   }
-
-  void _intitTemplate() {
-    rootBundle.loadString('assets/single_image.json').then((jsonStr) {
-      final reportMap = jsonDecode(jsonStr);
-      final template = ReportTemplateDocument.fromJson(reportMap);
-      _reportTemplate = template;
-      ReportInfo.instance.init(_reportTemplate);
-      setState(() {
-        _initPage();
-      });
-    });
-  }
-
-  void _initPage() {
-    try {
-      _height = PtToPxConverter.ptToPx(_reportTemplate.pageSize!.height);
-      _width = PtToPxConverter.ptToPx(_reportTemplate.pageSize!.width);
-      _baseFontSize = PtToPxConverter.ptToPx(_reportTemplate.baseFontSize);
-      _footerDistance = PtToPxConverter.ptToPx(_reportTemplate.footerDistance);
-      _footerHeight = PtToPxConverter.ptToPx(_reportTemplate.footerHeight);
-      final pagePadding =
-          _reportTemplate.pagePadding ?? RTThickness.uniform(56);
-      _padding = EdgeInsets.only(
-        left: PtToPxConverter.ptToPx(pagePadding.left),
-        right: PtToPxConverter.ptToPx(pagePadding.right),
-        top: PtToPxConverter.ptToPx(pagePadding.top),
-        bottom: PtToPxConverter.ptToPx(pagePadding.bottom),
-      );
-      _footer = _reportTemplate.footer ?? [];
-      _blocks = _reportTemplate.blocks ?? [];
-      _header = _reportTemplate.header ?? [];
-    } catch (e) {
-      _height = 841.8897637795275;
-      _width = 595.275590551181;
-    }
-  }
 }

+ 6 - 6
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/report_info.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 
@@ -32,12 +33,11 @@ class _RDateTimeState extends State<RDateTime> {
   @override
   initState() {
     dateTimeElement = widget.dateTimeElement;
-    final currentDateTime = DateTime.now();
-    final timestamp = currentDateTime.millisecondsSinceEpoch;
-    _dateTime = currentDateTime.toString().substring(0, 10);
+
     final format = dateTimeElement.dateTimeFormat;
     if (format != null) {
-      _dateTimeConvert(format, timestamp);
+      _dateTimeConvert(
+          format, ReportInfo.instance.reportDate!.millisecondsSinceEpoch);
     }
 
     _fontSize = dateTimeElement.fontSize ?? 15.0;
@@ -80,7 +80,7 @@ class _RDateTimeState extends State<RDateTime> {
           border: Border.all(
             width: 1,
             color:
-                dateTimeElement.showEnabled! ? Colors.grey : Colors.transparent,
+                dateTimeElement.isReadOnly! ? Colors.transparent : Colors.grey,
           ),
         ),
         width: _width,
@@ -101,7 +101,7 @@ class _RDateTimeState extends State<RDateTime> {
                     dateTimeElement.horizontalAlignment),
               ),
             ),
-            if (dateTimeElement.showEnabled!) ...[
+            if (!dateTimeElement.isReadOnly!) ...[
               const Expanded(child: SizedBox()),
               GestureDetector(
                 onTap: () => _selectDate(context),

+ 2 - 4
lib/report/element.dart

@@ -37,10 +37,9 @@ class Element implements IElement {
 
   Element();
 
-  Element.fromParent(IReportElement parent) {
-    id = Uuid().v1();
+  Element.fromParent(this.parent) {
+    id = const Uuid().v1();
     margin = RTThickness.uniform(0);
-    this.parent = parent;
     horizontalAlignment = HorizontalLayout.Stretch;
     verticalAlignment = VerticalLayout.Stretch;
   }
@@ -58,7 +57,6 @@ class Element implements IElement {
     } else {
       tag = ElementTag.fromJson(json['Tag']);
     }
-    print(json['HorizontalAlignment']);
     horizontalAlignment = HorizontalLayout.values
         .firstWhere((e) => e.name == json['HorizontalAlignment']);
     verticalAlignment = VerticalLayout.values

+ 5 - 3
lib/report_edit.dart

@@ -19,9 +19,10 @@ class ReportEditPage extends StatefulWidget {
   }) : super(key: key);
 
   final FEventHandler<String> onSelect;
-  final String reporter;
+
   final String jsonStr;
-  final String reportDate;
+  final String reporter;
+  final DateTime reportDate;
 
   @override
   State<ReportEditPage> createState() => _ReportEditPageState();
@@ -96,7 +97,8 @@ class _ReportEditPageState extends State<ReportEditPage> {
     final reportMap = jsonDecode(widget.jsonStr);
     final template = ReportTemplateDocument.fromJson(reportMap);
     _reportTemplate = template;
-    ReportInfo.instance.init(_reportTemplate);
+    ReportInfo.instance
+        .init(_reportTemplate, widget.reportDate, widget.reporter);
     setState(() {
       _initPage();
     });

+ 11 - 1
lib/report_info/report_info.dart

@@ -48,6 +48,12 @@ class ReportInfo {
 
   double currentHeight = 0;
 
+  String? reporter;
+
+  DateTime? reportDate;
+
+  ReportTemplateDocument? reportTemplate;
+
   FEventHandler<double>? onHeightChange = FEventHandler();
 
   static ReportInfo get instance {
@@ -55,8 +61,12 @@ class ReportInfo {
     return _reportInfo!;
   }
 
-  void init(ReportTemplateDocument reportTemplate) {
+  void init(ReportTemplateDocument reportTemplate, DateTime reportDate,
+      String reporter) {
     try {
+      this.reportTemplate = reportTemplate;
+      this.reportDate = reportDate;
+      this.reporter = reporter;
       isCustom = reportTemplate.isCustom;
       name = reportTemplate.name;
       updateTime = reportTemplate.updateTime;