1853 lines
109 KiB
Dart
1853 lines
109 KiB
Dart
import '/backend/api_requests/api_calls.dart';
|
|
import '/components/alert_box_custom_widget.dart';
|
|
import '/components/appbar_widget.dart';
|
|
import '/components/nav_bar1_widget.dart';
|
|
import '/components/new_member_widget.dart';
|
|
import '/components/update_member_widget.dart';
|
|
import '/flutterlib/flutter_theme.dart';
|
|
import '/flutterlib/flutter_util.dart';
|
|
import '/flutterlib/flutter_widgets.dart';
|
|
import '/flutterlib/custom_functions.dart' as functions;
|
|
import 'package:aligned_dialog/aligned_dialog.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/scheduler.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 'dashboard_model.dart';
|
|
export 'dashboard_model.dart';
|
|
|
|
class DashboardWidget extends StatefulWidget {
|
|
const DashboardWidget({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
_DashboardWidgetState createState() => _DashboardWidgetState();
|
|
}
|
|
|
|
class _DashboardWidgetState extends State<DashboardWidget> {
|
|
late DashboardModel _model;
|
|
|
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_model = createModel(context, () => DashboardModel());
|
|
|
|
// On page load action.
|
|
SchedulerBinding.instance.addPostFrameCallback((_) async {
|
|
_model.apiResult19 =
|
|
await NumstationGroup.checkRoleHasPermissionCall.call(
|
|
token: FFAppState().token,
|
|
roleId: FFAppState().roleID,
|
|
permissionId: 19,
|
|
);
|
|
if ((_model.apiResult19?.succeeded ?? true)) {
|
|
setState(() {
|
|
_model.checkPermission19 = getJsonField(
|
|
(_model.apiResult19?.jsonBody ?? ''),
|
|
r'''$.success''',
|
|
);
|
|
});
|
|
}
|
|
});
|
|
|
|
_model.companyEnFocusNode ??= FocusNode();
|
|
|
|
_model.companyCnFocusNode ??= FocusNode();
|
|
|
|
_model.officeAddEnFocusNode ??= FocusNode();
|
|
|
|
_model.officeAddCnFocusNode ??= FocusNode();
|
|
|
|
_model.bRnoFocusNode ??= 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(
|
|
'wvqwe2k3' /* 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(
|
|
'xicpgkfa' /* 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(
|
|
'ygpwwn63' /* 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(
|
|
'ok5mbgyz' /* 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(
|
|
'j2t66mhq' /* 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(
|
|
'c5q61d3t' /* 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,
|
|
title: Text(
|
|
FFLocalizations.of(context).getText(
|
|
'atnwqmfx' /* Page Title */,
|
|
),
|
|
style: FlutterTheme.of(context).headlineMedium.override(
|
|
fontFamily: 'Outfit',
|
|
color: Colors.white,
|
|
fontSize: 22.0,
|
|
),
|
|
),
|
|
actions: [],
|
|
centerTitle: false,
|
|
elevation: 0.0,
|
|
),
|
|
),
|
|
body: SafeArea(
|
|
top: true,
|
|
child: Stack(
|
|
children: [
|
|
FutureBuilder<ApiCallResponse>(
|
|
future: NumstationGroup.getCompanyDetailsCall.call(
|
|
token: FFAppState().token,
|
|
),
|
|
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 columnGetCompanyDetailsResponse = snapshot.data!;
|
|
return SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 16.0, 0.0, 150.0),
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Align(
|
|
alignment: AlignmentDirectional(0.0, 1.0),
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 100.0, 0.0, 8.0),
|
|
child: Text(
|
|
FFLocalizations.of(context).getText(
|
|
'dylii6mm' /* General Information */,
|
|
),
|
|
style: FlutterTheme.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Readex Pro',
|
|
color: Color(0xFF364257),
|
|
fontSize: 24.0,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
Align(
|
|
alignment: AlignmentDirectional(0.0, 0.0),
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 8.0, 0.0, 28.0),
|
|
child: Container(
|
|
width: () {
|
|
if (MediaQuery.sizeOf(context).width <
|
|
428.0) {
|
|
return 338.0;
|
|
} else if (MediaQuery.sizeOf(context)
|
|
.width >=
|
|
428.0) {
|
|
return 358.0;
|
|
} else {
|
|
return 348.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: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisAlignment:
|
|
MainAxisAlignment.center,
|
|
children: [
|
|
Align(
|
|
alignment: AlignmentDirectional(
|
|
0.0, 0.0),
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
0.0, 19.0, 0.0, 0.0),
|
|
child: Text(
|
|
FFLocalizations.of(context)
|
|
.getText(
|
|
'dz1z7sn0' /* Company registration informati... */,
|
|
),
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color:
|
|
Color(0xFF009B9A),
|
|
fontSize: 20.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 20.0, 0.0, 12.0),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
16.0, 0.0, 0.0, 0.0),
|
|
child: Text(
|
|
FFLocalizations.of(context)
|
|
.getText(
|
|
'5y954u1t' /* Company name(English) */,
|
|
),
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.black,
|
|
fontSize: 16.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Expanded(
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
8.0, 0.0, 8.0, 0.0),
|
|
child: Container(
|
|
width: 326.0,
|
|
child: TextFormField(
|
|
controller: _model
|
|
.companyEnController ??=
|
|
TextEditingController(
|
|
text: getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.name_english''',
|
|
).toString(),
|
|
),
|
|
focusNode: _model
|
|
.companyEnFocusNode,
|
|
readOnly: _model
|
|
.checkPermission19 !=
|
|
true,
|
|
obscureText: false,
|
|
decoration:
|
|
InputDecoration(
|
|
labelStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
hintStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
enabledBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: Color(
|
|
0x00000000),
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.primary,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
errorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedErrorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
filled: true,
|
|
fillColor:
|
|
Color(0xFF6D7581),
|
|
),
|
|
style:
|
|
FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Readex Pro',
|
|
fontSize: 16.0,
|
|
),
|
|
validator: _model
|
|
.companyEnControllerValidator
|
|
.asValidator(context),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 20.0, 0.0, 12.0),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
16.0, 0.0, 0.0, 0.0),
|
|
child: Text(
|
|
FFLocalizations.of(context)
|
|
.getText(
|
|
'67062bi7' /* Company name(Chinese) */,
|
|
),
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.black,
|
|
fontSize: 16.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Expanded(
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
8.0, 0.0, 8.0, 0.0),
|
|
child: Container(
|
|
width: 326.0,
|
|
child: TextFormField(
|
|
controller: _model
|
|
.companyCnController ??=
|
|
TextEditingController(
|
|
text: getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.name_chinese''',
|
|
).toString(),
|
|
),
|
|
focusNode: _model
|
|
.companyCnFocusNode,
|
|
readOnly: _model
|
|
.checkPermission19 !=
|
|
true,
|
|
obscureText: false,
|
|
decoration:
|
|
InputDecoration(
|
|
labelStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
hintStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
enabledBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: Color(
|
|
0x00000000),
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.primary,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
errorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedErrorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
filled: true,
|
|
fillColor:
|
|
Color(0xFF6D7581),
|
|
),
|
|
style:
|
|
FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Readex Pro',
|
|
fontSize: 16.0,
|
|
),
|
|
validator: _model
|
|
.companyCnControllerValidator
|
|
.asValidator(context),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 20.0, 0.0, 12.0),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
16.0, 0.0, 0.0, 0.0),
|
|
child: Text(
|
|
FFLocalizations.of(context)
|
|
.getText(
|
|
'mrkkzmmi' /* Registered office address(Engl... */,
|
|
),
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.black,
|
|
fontSize: 16.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Expanded(
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
8.0, 0.0, 8.0, 0.0),
|
|
child: Container(
|
|
width: 326.0,
|
|
child: TextFormField(
|
|
controller: _model
|
|
.officeAddEnController ??=
|
|
TextEditingController(
|
|
text: getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.registered_office_address_english''',
|
|
).toString(),
|
|
),
|
|
focusNode: _model
|
|
.officeAddEnFocusNode,
|
|
readOnly: _model
|
|
.checkPermission19 !=
|
|
true,
|
|
obscureText: false,
|
|
decoration:
|
|
InputDecoration(
|
|
labelStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
hintStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
enabledBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: Color(
|
|
0x00000000),
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.primary,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
errorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedErrorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
filled: true,
|
|
fillColor:
|
|
Color(0xFF6D7581),
|
|
),
|
|
style:
|
|
FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Readex Pro',
|
|
fontSize: 16.0,
|
|
),
|
|
validator: _model
|
|
.officeAddEnControllerValidator
|
|
.asValidator(context),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 20.0, 0.0, 12.0),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
16.0, 0.0, 0.0, 0.0),
|
|
child: Text(
|
|
FFLocalizations.of(context)
|
|
.getText(
|
|
'd5nvmj4k' /* Registered office address(Chin... */,
|
|
),
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.black,
|
|
fontSize: 16.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Expanded(
|
|
child: Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
8.0, 0.0, 8.0, 0.0),
|
|
child: Container(
|
|
width: 326.0,
|
|
child: TextFormField(
|
|
controller: _model
|
|
.officeAddCnController ??=
|
|
TextEditingController(
|
|
text: getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.registered_office_address_chinese''',
|
|
).toString(),
|
|
),
|
|
focusNode: _model
|
|
.officeAddCnFocusNode,
|
|
readOnly: _model
|
|
.checkPermission19 !=
|
|
true,
|
|
obscureText: false,
|
|
decoration:
|
|
InputDecoration(
|
|
labelStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
hintStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
enabledBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: Color(
|
|
0x00000000),
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.primary,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
errorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedErrorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
filled: true,
|
|
fillColor:
|
|
Color(0xFF6D7581),
|
|
),
|
|
style:
|
|
FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Readex Pro',
|
|
fontSize: 16.0,
|
|
),
|
|
validator: _model
|
|
.officeAddCnControllerValidator
|
|
.asValidator(context),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 20.0, 0.0, 12.0),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
16.0, 0.0, 0.0, 0.0),
|
|
child: Text(
|
|
FFLocalizations.of(context)
|
|
.getText(
|
|
'6fpayl5j' /* BR number */,
|
|
),
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.black,
|
|
fontSize: 16.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 0.0, 0.0, 20.0),
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Expanded(
|
|
child: Padding(
|
|
padding:
|
|
EdgeInsetsDirectional
|
|
.fromSTEB(8.0, 0.0,
|
|
8.0, 0.0),
|
|
child: Container(
|
|
width: 326.0,
|
|
child: TextFormField(
|
|
controller: _model
|
|
.bRnoController ??=
|
|
TextEditingController(
|
|
text: getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.br_number''',
|
|
).toString(),
|
|
),
|
|
focusNode: _model
|
|
.bRnoFocusNode,
|
|
readOnly: _model
|
|
.checkPermission19 !=
|
|
true,
|
|
obscureText: false,
|
|
decoration:
|
|
InputDecoration(
|
|
labelStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
hintStyle:
|
|
FlutterTheme.of(
|
|
context)
|
|
.labelMedium,
|
|
enabledBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: Color(
|
|
0x00000000),
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.primary,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
errorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
focusedErrorBorder:
|
|
OutlineInputBorder(
|
|
borderSide:
|
|
BorderSide(
|
|
color: FlutterTheme
|
|
.of(context)
|
|
.error,
|
|
width: 2.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius
|
|
.circular(
|
|
23.8),
|
|
),
|
|
filled: true,
|
|
fillColor:
|
|
Color(0xFF6D7581),
|
|
),
|
|
style: FlutterTheme
|
|
.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Readex Pro',
|
|
fontSize: 16.0,
|
|
),
|
|
keyboardType:
|
|
TextInputType
|
|
.number,
|
|
validator: _model
|
|
.bRnoControllerValidator
|
|
.asValidator(
|
|
context),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
if (_model.checkPermission19 == true)
|
|
Builder(
|
|
builder: (context) => Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
0.0, 0.0, 0.0, 20.0),
|
|
child: FFButtonWidget(
|
|
onPressed: () async {
|
|
_model.updateCompany =
|
|
await NumstationGroup
|
|
.updateCompanyDetailsCall
|
|
.call(
|
|
token: FFAppState().token,
|
|
nameEnglish: _model
|
|
.companyEnController
|
|
.text,
|
|
nameChinese: _model
|
|
.companyCnController
|
|
.text,
|
|
registeredOfficeAddressEnglish:
|
|
_model
|
|
.officeAddEnController
|
|
.text,
|
|
registeredOfficeAddressChinese:
|
|
_model
|
|
.officeAddCnController
|
|
.text,
|
|
brNumber: int.tryParse(
|
|
_model.bRnoController
|
|
.text),
|
|
);
|
|
if ((_model.updateCompany
|
|
?.succeeded ??
|
|
true)) {
|
|
await showAlignedDialog(
|
|
context: context,
|
|
isGlobal: true,
|
|
avoidOverflow: false,
|
|
targetAnchor:
|
|
AlignmentDirectional(
|
|
0.0, 0.0)
|
|
.resolve(
|
|
Directionality.of(
|
|
context)),
|
|
followerAnchor:
|
|
AlignmentDirectional(
|
|
0.0, 0.0)
|
|
.resolve(
|
|
Directionality.of(
|
|
context)),
|
|
builder:
|
|
(dialogContext) {
|
|
return Material(
|
|
color: Colors
|
|
.transparent,
|
|
child:
|
|
GestureDetector(
|
|
onTap: () => _model
|
|
.unfocusNode
|
|
.canRequestFocus
|
|
? FocusScope.of(
|
|
context)
|
|
.requestFocus(
|
|
_model
|
|
.unfocusNode)
|
|
: FocusScope.of(
|
|
context)
|
|
.unfocus(),
|
|
child:
|
|
AlertBoxCustomWidget(
|
|
text:
|
|
'All changes have been changed!',
|
|
),
|
|
),
|
|
);
|
|
},
|
|
).then((value) =>
|
|
setState(() {}));
|
|
} else {
|
|
await showDialog(
|
|
context: context,
|
|
builder:
|
|
(alertDialogContext) {
|
|
return AlertDialog(
|
|
content:
|
|
Text('Failed'),
|
|
actions: [
|
|
TextButton(
|
|
onPressed: () =>
|
|
Navigator.pop(
|
|
alertDialogContext),
|
|
child:
|
|
Text('Ok'),
|
|
),
|
|
],
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
context
|
|
.pushNamed('dashboard');
|
|
|
|
setState(() {});
|
|
},
|
|
text: FFLocalizations.of(
|
|
context)
|
|
.getText(
|
|
'hgvp05n2' /* Save */,
|
|
),
|
|
options: FFButtonOptions(
|
|
width: 326.0,
|
|
height: 50.0,
|
|
padding:
|
|
EdgeInsets.all(0.0),
|
|
iconPadding:
|
|
EdgeInsetsDirectional
|
|
.fromSTEB(0.0, 0.0,
|
|
0.0, 0.0),
|
|
color: Color(0xFF009B9A),
|
|
textStyle: FlutterTheme
|
|
.of(context)
|
|
.titleSmall
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.white,
|
|
fontSize: 20.0,
|
|
),
|
|
elevation: 3.0,
|
|
borderSide: BorderSide(
|
|
color: Colors.transparent,
|
|
width: 1.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius.circular(
|
|
40.0),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
Padding(
|
|
padding: EdgeInsetsDirectional.fromSTEB(
|
|
0.0, 0.0, 0.0, 28.0),
|
|
child: Container(
|
|
width: 358.0,
|
|
decoration: BoxDecoration(
|
|
color: Color(0xFFF4F7FA),
|
|
boxShadow: [
|
|
BoxShadow(
|
|
blurRadius: 4.0,
|
|
color: Color(0x33000000),
|
|
offset: Offset(0.0, 2.0),
|
|
)
|
|
],
|
|
borderRadius: BorderRadius.circular(8.0),
|
|
),
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Column(
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
10.0, 0.0, 0.0, 0.0),
|
|
child: Row(
|
|
mainAxisSize:
|
|
MainAxisSize.max,
|
|
mainAxisAlignment:
|
|
MainAxisAlignment.start,
|
|
children: [
|
|
Align(
|
|
alignment:
|
|
AlignmentDirectional(
|
|
0.0, 0.0),
|
|
child: Padding(
|
|
padding:
|
|
EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
0.0,
|
|
19.0,
|
|
0.0,
|
|
19.0),
|
|
child: Text(
|
|
FFLocalizations.of(
|
|
context)
|
|
.getText(
|
|
'zl9e4meh' /* Company members */,
|
|
),
|
|
style: FlutterTheme
|
|
.of(context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Roboto',
|
|
color: Color(
|
|
0xFF009B9A),
|
|
fontSize: 20.0,
|
|
fontWeight:
|
|
FontWeight
|
|
.w500,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Builder(
|
|
builder: (context) {
|
|
final companyMembers =
|
|
getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company_members[:]''',
|
|
).toList();
|
|
return ListView.builder(
|
|
padding: EdgeInsets.zero,
|
|
shrinkWrap: true,
|
|
scrollDirection:
|
|
Axis.vertical,
|
|
itemCount:
|
|
companyMembers.length,
|
|
itemBuilder: (context,
|
|
companyMembersIndex) {
|
|
final companyMembersItem =
|
|
companyMembers[
|
|
companyMembersIndex];
|
|
return Container(
|
|
decoration:
|
|
BoxDecoration(),
|
|
child: Column(
|
|
mainAxisSize:
|
|
MainAxisSize.max,
|
|
children: [
|
|
InkWell(
|
|
splashColor: Colors
|
|
.transparent,
|
|
focusColor: Colors
|
|
.transparent,
|
|
hoverColor: Colors
|
|
.transparent,
|
|
highlightColor:
|
|
Colors
|
|
.transparent,
|
|
onTap: () async {
|
|
setState(() {
|
|
_model.memberID =
|
|
getJsonField(
|
|
companyMembersItem,
|
|
r'''$.id''',
|
|
);
|
|
});
|
|
},
|
|
child: ListTile(
|
|
title: Text(
|
|
'Member ${getJsonField(
|
|
companyMembersItem,
|
|
r'''$.id''',
|
|
).toString()} - ${functions.convertToUpperCase(getJsonField(
|
|
companyMembersItem,
|
|
r'''$.title''',
|
|
).toString())} ${getJsonField(
|
|
companyMembersItem,
|
|
r'''$.name_english''',
|
|
).toString()}',
|
|
style: FlutterTheme.of(
|
|
context)
|
|
.bodyMedium
|
|
.override(
|
|
fontFamily:
|
|
'Roboto',
|
|
color: Color(
|
|
0xFF009B9A),
|
|
fontSize:
|
|
20.0,
|
|
fontWeight:
|
|
FontWeight.w500,
|
|
),
|
|
),
|
|
trailing: Icon(
|
|
Icons.edit,
|
|
color: FlutterTheme.of(
|
|
context)
|
|
.secondaryText,
|
|
size: 20.0,
|
|
),
|
|
tileColor: FlutterTheme.of(
|
|
context)
|
|
.secondaryBackground,
|
|
dense: false,
|
|
),
|
|
),
|
|
if (_model
|
|
.memberID ==
|
|
getJsonField(
|
|
companyMembersItem,
|
|
r'''$.id''',
|
|
))
|
|
Align(
|
|
alignment:
|
|
AlignmentDirectional(
|
|
0.0,
|
|
0.0),
|
|
child:
|
|
UpdateMemberWidget(
|
|
key: Key(
|
|
'Key97g_${companyMembersIndex}_of_${companyMembers.length}'),
|
|
memberData:
|
|
companyMembersItem,
|
|
companyID:
|
|
getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.id''',
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
},
|
|
);
|
|
},
|
|
),
|
|
Padding(
|
|
padding: EdgeInsetsDirectional
|
|
.fromSTEB(
|
|
0.0, 20.0, 0.0, 20.0),
|
|
child: FFButtonWidget(
|
|
onPressed: () async {
|
|
setState(() {
|
|
_model.showNewMemberForm =
|
|
true;
|
|
});
|
|
setState(() {
|
|
FFAppState().memberID = 0;
|
|
});
|
|
},
|
|
text: FFLocalizations.of(
|
|
context)
|
|
.getText(
|
|
'vd56ozw9' /* New member */,
|
|
),
|
|
options: FFButtonOptions(
|
|
width: 326.0,
|
|
height: 50.0,
|
|
padding:
|
|
EdgeInsets.all(0.0),
|
|
iconPadding:
|
|
EdgeInsetsDirectional
|
|
.fromSTEB(0.0, 0.0,
|
|
0.0, 0.0),
|
|
color: Color(0xFF009B9A),
|
|
textStyle: FlutterTheme
|
|
.of(context)
|
|
.titleSmall
|
|
.override(
|
|
fontFamily: 'Roboto',
|
|
color: Colors.white,
|
|
fontSize: 20.0,
|
|
),
|
|
elevation: 3.0,
|
|
borderSide: BorderSide(
|
|
color: Colors.transparent,
|
|
width: 1.0,
|
|
),
|
|
borderRadius:
|
|
BorderRadius.circular(
|
|
40.0),
|
|
),
|
|
),
|
|
),
|
|
if (_model.showNewMemberForm ==
|
|
true)
|
|
wrapWithModel(
|
|
model: _model.newMemberModel,
|
|
updateCallback: () =>
|
|
setState(() {}),
|
|
child: NewMemberWidget(
|
|
companyID: getJsonField(
|
|
columnGetCompanyDetailsResponse
|
|
.jsonBody,
|
|
r'''$.data.company.id''',
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
},
|
|
),
|
|
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,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|