Files
numstation-flutter/lib/bookkeeping/search1/search1_widget.dart
2023-12-27 16:10:09 +08:00

1426 lines
80 KiB
Dart

import '/backend/api_requests/api_calls.dart';
import '/components/appbar_widget.dart';
import '/components/emptylist_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'search1_model.dart';
export 'search1_model.dart';
class Search1Widget extends StatefulWidget {
const Search1Widget({
Key? key,
required this.search,
required this.status,
required this.category,
required this.fixDate,
required this.dateFrom,
required this.dateTo,
}) : super(key: key);
final String? search;
final String? status;
final String? category;
final String? fixDate;
final String? dateFrom;
final String? dateTo;
@override
_Search1WidgetState createState() => _Search1WidgetState();
}
class _Search1WidgetState extends State<Search1Widget> {
late Search1Model _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => Search1Model());
_model.textController ??= TextEditingController();
_model.textFieldFocusNode ??= FocusNode();
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'o0s247dg' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ohz2r9h0' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'2j9d4im6' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'e6ffa2mq' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'fc9wkvty' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'kii6flq4' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('bk4');
},
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: Color(0xFFD6DEE9),
shape: BoxShape.circle,
),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(
0.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
0.0,
0.0),
child: Icon(
Icons.arrow_back_ios,
color:
FlutterTheme.of(
context)
.secondaryText,
size: 24.0,
),
),
),
),
],
),
),
),
),
),
),
],
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 8.0, 0.0, 8.0),
child: Text(
FFLocalizations.of(context).getText(
'mefbbqi6' /* Document/Record Search */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF364257),
fontSize: 24.0,
),
),
),
),
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(12.0, 8.0, 12.0, 8.0),
child: Container(
width: 350.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(50.0),
border: Border.all(
color: Color(0xFF6D7581),
),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 8.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('search_page');
},
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-4.svg',
width: 34.0,
height: 34.0,
fit: BoxFit.none,
),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: TextFormField(
controller: _model.textController,
focusNode: _model.textFieldFocusNode,
onChanged: (_) => EasyDebounce.debounce(
'_model.textController',
Duration(milliseconds: 2000),
() => setState(() {}),
),
obscureText: false,
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color(0x00000000),
width: 1.0,
),
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(4.0),
topRight: Radius.circular(4.0),
),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color(0x00000000),
width: 1.0,
),
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(4.0),
topRight: Radius.circular(4.0),
),
),
errorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color(0x00000000),
width: 1.0,
),
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(4.0),
topRight: Radius.circular(4.0),
),
),
focusedErrorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color(0x00000000),
width: 1.0,
),
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(4.0),
topRight: Radius.circular(4.0),
),
),
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Open Sans',
color: Color(0xFF364257),
fontSize: 16.0,
fontWeight: FontWeight.normal,
),
validator: _model.textControllerValidator
.asValidator(context),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
4.0, 0.0, 4.0, 0.0),
child: Icon(
Icons.search_rounded,
color: Color(0xFF009B9A),
size: 34.0,
),
),
],
),
),
),
),
Expanded(
child: Container(
width: 358.0,
height: 906.0,
decoration: BoxDecoration(
color:
FlutterTheme.of(context).secondaryBackground,
),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
FlutterDropDown<String>(
controller:
_model.dropDownValueController ??=
FormFieldController<String>(null),
options: [
FFLocalizations.of(context).getText(
'i0j8hq18' /* Page 1 */,
),
FFLocalizations.of(context).getText(
'fqzocdze' /* Page 2 */,
),
FFLocalizations.of(context).getText(
'xhooyj5v' /* Page 3 */,
),
FFLocalizations.of(context).getText(
'siyl3fjc' /* Psge 4 */,
)
],
onChanged: (val) => setState(
() => _model.dropDownValue = val),
width: 142.0,
height: 40.0,
textStyle: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
hintText:
FFLocalizations.of(context).getText(
'd81vigdp' /* Page 1 */,
),
icon: Icon(
Icons.keyboard_arrow_down_rounded,
color: FlutterTheme.of(context)
.secondaryText,
size: 24.0,
),
fillColor: FlutterTheme.of(context)
.secondaryBackground,
elevation: 2.0,
borderColor: Colors.transparent,
borderWidth: 2.0,
borderRadius: 8.0,
margin: EdgeInsetsDirectional.fromSTEB(
16.0, 4.0, 16.0, 4.0),
hidesUnderline: true,
isSearchable: false,
isMultiSelect: false,
),
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
70.0, 0.0, 9.0, 0.0),
child: Theme(
data: ThemeData(
checkboxTheme: CheckboxThemeData(
visualDensity:
VisualDensity.compact,
materialTapTargetSize:
MaterialTapTargetSize
.shrinkWrap,
),
unselectedWidgetColor:
FlutterTheme.of(context)
.secondaryText,
),
child: CheckboxListTile(
value: _model
.checkboxListTileValue ??= true,
onChanged: (newValue) async {
setState(() =>
_model.checkboxListTileValue =
newValue!);
},
title: Text(
FFLocalizations.of(context).getText(
'bcdc4yj1' /* Select All */,
),
style: FlutterTheme.of(context)
.titleLarge
.override(
fontFamily: 'Outfit',
color: Color(0xFF009B9A),
fontSize: 16.0,
),
),
tileColor: Color(0xFF009B9A),
activeColor: Color(0xFF009B9A),
checkColor:
FlutterTheme.of(context).info,
dense: false,
controlAffinity:
ListTileControlAffinity.trailing,
),
),
),
),
],
),
FutureBuilder<ApiCallResponse>(
future: NumstationGroup
.documentLibrarySearchCall
.call(
s: widget.search,
token: FFAppState().token,
status: widget.status,
categoryId: widget.category,
fixDate: widget.fixDate,
dateFrom: widget.dateFrom,
dateTo: widget.dateTo,
),
builder: (context, snapshot) {
// Customize what your widget looks like when it's loading.
if (!snapshot.hasData) {
return Center(
child: SizedBox(
width: 50.0,
height: 50.0,
child: CircularProgressIndicator(
valueColor:
AlwaysStoppedAnimation<Color>(
FlutterTheme.of(context).info,
),
),
),
);
}
final columnDocumentLibrarySearchResponse =
snapshot.data!;
return Builder(
builder: (context) {
final docList = getJsonField(
columnDocumentLibrarySearchResponse
.jsonBody,
r'''$.documents..data''',
).toList();
if (docList.isEmpty) {
return EmptylistWidget();
}
return Column(
mainAxisSize: MainAxisSize.max,
children: List.generate(docList.length,
(docListIndex) {
final docListItem =
docList[docListIndex];
return Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 10.0, 0.0, 10.0),
child: Container(
width: 328.0,
height: 144.0,
decoration: BoxDecoration(
color:
FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius:
BorderRadius.circular(8.0),
),
child: Align(
alignment: AlignmentDirectional(
0.0, 0.0),
child: Column(
mainAxisSize:
MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
8.0,
8.0,
0.0,
0.0),
child: Row(
mainAxisSize:
MainAxisSize.max,
children: [
ClipRRect(
borderRadius:
BorderRadius
.circular(
8.0),
child: SvgPicture
.asset(
'assets/images/Menu.svg',
width: 24.0,
height: 24.0,
fit: BoxFit
.contain,
),
),
Expanded(
child: Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
0.0,
0.0,
10.0,
0.0),
child: Theme(
data:
ThemeData(
checkboxTheme:
CheckboxThemeData(
visualDensity:
VisualDensity
.compact,
materialTapTargetSize:
MaterialTapTargetSize
.shrinkWrap,
shape:
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(4.0),
),
),
unselectedWidgetColor:
Color(
0xFF009B9A),
),
child:
Checkbox(
value: _model
.checkboxValueMap[
docListItem] ??= true,
onChanged:
(newValue) async {
setState(() =>
_model.checkboxValueMap[docListItem] =
newValue!);
},
activeColor:
Color(
0xFF009B9A),
checkColor:
Colors
.white,
),
),
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
8.0,
14.0,
0.0,
0.0),
child: Row(
mainAxisSize:
MainAxisSize.max,
children: [
ClipRRect(
borderRadius:
BorderRadius
.circular(
8.0),
child: SvgPicture
.asset(
'assets/images/XMLID_2001_.svg',
width: 45.0,
height: 58.0,
fit: BoxFit.none,
),
),
Expanded(
child: Row(
mainAxisSize:
MainAxisSize
.max,
children: [
Column(
mainAxisSize:
MainAxisSize
.max,
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Row(
mainAxisSize:
MainAxisSize
.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0,
0.0,
100.0,
0.0),
child:
Wrap(
spacing:
0.0,
runSpacing:
0.0,
alignment:
WrapAlignment.start,
crossAxisAlignment:
WrapCrossAlignment.start,
direction:
Axis.horizontal,
runAlignment:
WrapAlignment.start,
verticalDirection:
VerticalDirection.down,
clipBehavior:
Clip.none,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 0.0, 5.0),
child: Text(
getJsonField(
docListItem,
r'''$.name''',
).toString(),
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
),
],
),
),
],
),
Align(
alignment:
AlignmentDirectional(
-1.0,
0.0),
child:
Row(
mainAxisSize:
MainAxisSize.max,
children: [
Align(
alignment:
AlignmentDirectional(-1.0, 0.0),
child:
Padding(
padding: EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 0.0, 5.0),
child: Text(
functions.getCategoryLabel(getJsonField(
docListItem,
r'''$.bookkeeping_document_category_id''',
)),
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
),
),
],
),
),
Row(
mainAxisSize:
MainAxisSize
.max,
children: [
Align(
alignment: AlignmentDirectional(
-1.0,
0.0),
child:
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0,
0.0,
0.0,
0.0),
child:
Text(
FFLocalizations.of(context).getText(
'w0abown0' /* Entry Completed */,
),
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
color: Color(0xFF06AE25),
),
),
),
),
],
),
],
),
],
),
),
Column(
mainAxisSize:
MainAxisSize
.max,
children: [
Align(
alignment:
AlignmentDirectional(
1.0,
0.0),
child: Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
0.0,
0.0,
8.0,
0.0),
child:
InkWell(
splashColor:
Colors
.transparent,
focusColor:
Colors
.transparent,
hoverColor:
Colors
.transparent,
highlightColor:
Colors
.transparent,
onTap:
() async {
_model.apiResultr1v = await NumstationGroup
.viewDocumentCall
.call(
token: FFAppState()
.token,
id: getJsonField(
docListItem,
r'''$.id''',
).toString(),
);
if ((_model
.apiResultr1v
?.succeeded ??
true)) {
context
.pushNamed(
'bk_view',
queryParameters:
{
'fileUrl':
serializeParam(
getJsonField(
docListItem,
r'''$..url''',
),
ParamType.JSON,
),
}.withoutNulls,
);
}
setState(
() {});
},
child:
Container(
width:
34.0,
height:
34.0,
decoration:
BoxDecoration(
color: Color(
0xFF009B9A),
shape: BoxShape
.circle,
),
child:
Align(
alignment: AlignmentDirectional(
0.0,
0.0),
child:
Icon(
Icons
.remove_red_eye_outlined,
color:
Colors.white,
size:
24.0,
),
),
),
),
),
),
],
),
],
),
),
Expanded(
child: Row(
mainAxisSize:
MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment
.end,
crossAxisAlignment:
CrossAxisAlignment
.end,
children: [
Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Text(
functions
.formatDate2(
getJsonField(
docListItem,
r'''$.created_at''',
).toString()),
style: FlutterTheme
.of(context)
.bodyMedium,
),
),
Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'fq4g2l15' /* - */,
),
style: FlutterTheme
.of(context)
.bodyMedium,
),
),
Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
0.0,
0.0,
10.0,
0.0),
child: Text(
functions
.formatTime(
getJsonField(
docListItem,
r'''$.created_at''',
).toString()),
style: FlutterTheme.of(
context)
.bodyMedium,
),
),
),
],
),
),
],
),
),
),
);
}),
);
},
);
},
),
],
),
),
),
),
],
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}