123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import 'package:fis_lib_report/converts/alignment_convert.dart';
- import 'package:fis_lib_report/pages/components/RDateTime.dart';
- import 'package:fis_lib_report/pages/components/input_text.dart';
- import 'package:fis_lib_report/pages/components/line.dart';
- import 'package:fis_lib_report/pages/components/multi_select.dart';
- import 'package:fis_lib_report/pages/components/multi_selected.dart';
- import 'package:fis_lib_report/pages/components/single_select.dart';
- import 'package:fis_lib_report/pages/components/static_Text.dart';
- import 'package:fis_lib_report/pages/helpler.dart';
- import 'package:fis_lib_report/report/dateTimeElement.dart';
- import 'package:fis_lib_report/report/element_type.dart';
- import 'package:fis_lib_report/report/inputText.dart';
- import 'package:fis_lib_report/report/interfaces/element.dart';
- import 'package:fis_lib_report/report/interfaces/position_layout.dart';
- import 'package:fis_lib_report/report/line.dart';
- import 'package:fis_lib_report/report/multiSelected.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:flutter/material.dart';
- class ParagraphPage extends StatefulWidget {
- final Paragraph paragraph;
- ParagraphPage({Key? key, required this.paragraph}) : super(key: key);
- @override
- State<StatefulWidget> createState() {
- return _ParagraphState();
- }
- }
- class _ParagraphState extends State<ParagraphPage> {
- List<IElement>? _elements = [];
- int _itemCount = 0;
- @override
- initState() {
- _elements = widget.paragraph.elements;
- _itemCount = _elements!.length;
- super.initState();
- }
- @override
- Widget build(BuildContext context) {
- if (_itemCount == 0) {
- return const SizedBox();
- }
- final margin = widget.paragraph.margin!;
- return Container(
- margin: EdgeInsets.only(
- top: margin.top!,
- bottom: margin.bottom!,
- left: margin.left!,
- right: margin.right!,
- ),
- alignment: AlignmentConvert.horizontalConvert(
- widget.paragraph.horizontalAlignment),
- child: Wrap(
- alignment: WrapAlignment.spaceEvenly,
- children: [
- ..._elements!.map((element) {
- if (element.elementType!.name == ElementType.inputText!.name) {
- InputText inputText = element as InputText;
- return RInputText(inputText: inputText);
- } else if (element.elementType!.name ==
- ElementType.staticText!.name) {
- StaticText staticText = element as StaticText;
- if (staticText.lineWidth == 0) {
- staticText.lineWidth = staticText.lineLength! * 10.5;
- }
- return RStaticText(staticText);
- } else if (element.elementType!.name ==
- ElementType.singleSelected!.name) {
- SingleSelected singleSelected = element as SingleSelected;
- return RSingleSelected(singleSelected);
- } else if (element.elementType!.name == ElementType.line!.name) {
- Line line = element as Line;
- return RLine(line);
- } else if (element.elementType!.name ==
- ElementType.dateTime!.name) {
- final dateTime = element as DateTimeElement;
- return RDateTime(dateTime);
- } else if (element.elementType!.name ==
- ElementType.multiSelected!.name) {
- final multiSelected = element as MultiSelected;
- return RMultiSelected(multiSelected);
- }
- return Container(
- height: 30,
- width: 80,
- decoration: TestBoxDecoration.buildDecoration(),
- child: const Text('未知组件占位'),
- );
- }),
- ],
- ),
- );
- }
- void _showMultiSelect(List<String>? items) async {
- // a list of selectable items
- // these items can be hard-coded or dynamically fetched from a database/API
- if (items!.isEmpty) {
- return;
- }
- final List<String>? results = await showDialog(
- context: context,
- builder: (BuildContext context) {
- return MultiSelect(items: items);
- },
- );
- }
- }
|