feat: submit signature
This commit is contained in:
parent
298d7f46d2
commit
9da1675250
BIN
assets/images/frame-signature.png
Normal file
BIN
assets/images/frame-signature.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
|
@ -72,4 +72,5 @@ class PathAssets {
|
||||||
static const String imgGuideBank = 'assets/images/img-guide-bank.png';
|
static const String imgGuideBank = 'assets/images/img-guide-bank.png';
|
||||||
static const String imgGuide1 = 'assets/images/img-guide1.png';
|
static const String imgGuide1 = 'assets/images/img-guide1.png';
|
||||||
static const String imgGuide2 = 'assets/images/img-guide2.png';
|
static const String imgGuide2 = 'assets/images/img-guide2.png';
|
||||||
|
static const String frameSignature = 'assets/images/frame-signature.png';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
import 'package:cims_apps/application/assets/path_assets.dart';
|
import 'package:cims_apps/application/assets/path_assets.dart';
|
||||||
import 'package:cims_apps/application/component/button/button_view.dart';
|
|
||||||
import 'package:cims_apps/application/component/image/image_view.dart';
|
import 'package:cims_apps/application/component/image/image_view.dart';
|
||||||
import 'package:cims_apps/application/component/select_form/select_form_view.dart';
|
import 'package:cims_apps/application/component/select_form/select_form_view.dart';
|
||||||
import 'package:cims_apps/application/component/text_caption/text_caption.dart';
|
import 'package:cims_apps/application/component/text_caption/text_caption.dart';
|
||||||
import 'package:cims_apps/application/component/text_form/text_form_view.dart';
|
import 'package:cims_apps/application/component/text_form/text_form_view.dart';
|
||||||
import 'package:cims_apps/application/theme/color_palette.dart';
|
import 'package:cims_apps/application/theme/color_palette.dart';
|
||||||
import 'package:cims_apps/core/route/route.dart';
|
import 'package:cims_apps/core/route/route.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/confirm_bank_account.dart';
|
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/guide_screen.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/guide_screen.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart';
|
import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
@ -62,14 +60,14 @@ class SubmitBankAccount extends StatelessWidget {
|
||||||
color: ColorPalette.slate400,
|
color: ColorPalette.slate400,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const Spacer(),
|
// const Spacer(),
|
||||||
ButtonView(
|
// ButtonView(
|
||||||
name: 'Next',
|
// name: 'Next',
|
||||||
onPressed: () {
|
// onPressed: () {
|
||||||
provider.nextSubmission(context);
|
// provider.nextSubmission(context);
|
||||||
routePush(context, page: const ConfirmBankAccount());
|
// routePush(context, page: const ConfirmBankAccount());
|
||||||
},
|
// },
|
||||||
)
|
// )
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -3,6 +3,7 @@ import 'package:cims_apps/application/component/button/button_view.dart';
|
||||||
import 'package:cims_apps/application/theme/color_palette.dart';
|
import 'package:cims_apps/application/theme/color_palette.dart';
|
||||||
import 'package:cims_apps/core/route/route.dart';
|
import 'package:cims_apps/core/route/route.dart';
|
||||||
import 'package:cims_apps/core/utils/size_config.dart';
|
import 'package:cims_apps/core/utils/size_config.dart';
|
||||||
|
import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/confirm_bank_account.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/risk_profile/risk_profile_view.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/risk_profile/risk_profile_view.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_data_id_card.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_data_id_card.dart';
|
||||||
|
@ -10,6 +11,7 @@ import 'package:cims_apps/features/auth/registration/view/submission_data/submit
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_email.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_email.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_personal_data.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_personal_data.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_photo_selfie.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_photo_selfie.dart';
|
||||||
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_signature/initial_signature.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_signature/submit_signature.dart';
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submit_signature/submit_signature.dart';
|
||||||
import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart';
|
import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart';
|
||||||
import 'package:cims_apps/features/bottom_navigation_view.dart';
|
import 'package:cims_apps/features/bottom_navigation_view.dart';
|
||||||
|
@ -54,7 +56,7 @@ class _SubmissionParentState extends State<SubmissionParent> {
|
||||||
case 6:
|
case 6:
|
||||||
return const SubmitBankAccount();
|
return const SubmitBankAccount();
|
||||||
case 7:
|
case 7:
|
||||||
return const SubmitSignature();
|
return const InitialSignature();
|
||||||
case 8:
|
case 8:
|
||||||
return const RiskProfileView();
|
return const RiskProfileView();
|
||||||
case 9:
|
case 9:
|
||||||
|
@ -64,6 +66,21 @@ class _SubmissionParentState extends State<SubmissionParent> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_contentPush(int index) {
|
||||||
|
switch (index) {
|
||||||
|
case 6:
|
||||||
|
routePush(context, page: const ConfirmBankAccount());
|
||||||
|
case 7:
|
||||||
|
routePush(context, page: const SubmitSignature());
|
||||||
|
// case 8:
|
||||||
|
// return const RiskProfileView();
|
||||||
|
// case 9:
|
||||||
|
// return Container(
|
||||||
|
// child: Text("Step 9"),
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ChangeNotifierProvider(
|
return ChangeNotifierProvider(
|
||||||
|
@ -125,8 +142,7 @@ class _SubmissionParentState extends State<SubmissionParent> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
provider.getCurrentStep == 3 ||
|
provider.getCurrentStep == 3 ||
|
||||||
provider.getCurrentStep == 4 ||
|
provider.getCurrentStep == 4
|
||||||
provider.getCurrentStep == 6
|
|
||||||
? const SizedBox()
|
? const SizedBox()
|
||||||
: Align(
|
: Align(
|
||||||
alignment: Alignment.bottomCenter,
|
alignment: Alignment.bottomCenter,
|
||||||
|
@ -134,6 +150,7 @@ class _SubmissionParentState extends State<SubmissionParent> {
|
||||||
name: 'Next',
|
name: 'Next',
|
||||||
marginVertical: 16.0,
|
marginVertical: 16.0,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
_contentPush(provider.getCurrentStep);
|
||||||
provider.nextSubmission(context);
|
provider.nextSubmission(context);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
import 'package:cims_apps/application/assets/path_assets.dart';
|
||||||
|
import 'package:cims_apps/application/component/image/image_view.dart';
|
||||||
|
import 'package:cims_apps/application/component/list_tile/list_tile_view.dart';
|
||||||
|
import 'package:cims_apps/application/component/text_caption/text_caption.dart';
|
||||||
|
import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class InitialSignature extends StatelessWidget {
|
||||||
|
const InitialSignature({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return MultiProvider(
|
||||||
|
providers: [
|
||||||
|
ChangeNotifierProvider(
|
||||||
|
create: (context) => SubmissionDataViewModel(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
builder: (context, child) {
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
const TextCaption(title: 'Draw your digital sign'),
|
||||||
|
const ImageView(image: PathAssets.frameSignature),
|
||||||
|
const ListTileView(
|
||||||
|
title:
|
||||||
|
'Make sure the sign you draw is match with your ID Card'),
|
||||||
|
// Consumer<SubmissionDataViewModel>(
|
||||||
|
// builder: (context, provider, child) {
|
||||||
|
// return ButtonView(
|
||||||
|
// name: 'Next',
|
||||||
|
// onPressed: () {
|
||||||
|
// provider.nextSubmission(context);
|
||||||
|
// routePush(context, page: const SubmitSignature());
|
||||||
|
// },
|
||||||
|
// );
|
||||||
|
// }),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
import 'dart:ui' as ui;
|
||||||
|
|
||||||
|
import 'package:cims_apps/application/component/button/back_button_view.dart';
|
||||||
|
import 'package:cims_apps/application/component/button/button_view.dart';
|
||||||
|
import 'package:cims_apps/application/component/list_tile/list_tile_view.dart';
|
||||||
|
import 'package:cims_apps/application/component/text_caption/text_caption.dart';
|
||||||
|
import 'package:cims_apps/application/theme/color_palette.dart';
|
||||||
|
import 'package:cims_apps/core/route/route.dart';
|
||||||
|
import 'package:cims_apps/core/utils/size_config.dart';
|
||||||
|
import 'package:cims_apps/features/auth/registration/view/submission_data/submission_parent.dart';
|
||||||
|
import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart';
|
||||||
|
import 'package:dotted_border/dotted_border.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:syncfusion_flutter_signaturepad/signaturepad.dart';
|
||||||
|
|
||||||
|
class SubmitSignature extends StatelessWidget {
|
||||||
|
const SubmitSignature({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
GlobalKey<SfSignaturePadState> signaturePadKey = GlobalKey();
|
||||||
|
return ChangeNotifierProvider(
|
||||||
|
create: (context) => SubmissionDataViewModel(),
|
||||||
|
builder: (context, child) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
toolbarHeight: 70,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
surfaceTintColor: Colors.white,
|
||||||
|
automaticallyImplyLeading: false,
|
||||||
|
title: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
const BackButtonView(),
|
||||||
|
const Text('Registration'),
|
||||||
|
SizedBox(
|
||||||
|
width: SizeConfig.width * 0.1,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
shape: const RoundedRectangleBorder(
|
||||||
|
side: BorderSide(color: ColorPalette.slate200)),
|
||||||
|
),
|
||||||
|
body: Container(
|
||||||
|
padding: const EdgeInsets.all(16.0),
|
||||||
|
child: Consumer<SubmissionDataViewModel>(
|
||||||
|
builder: (context, provider, child) {
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
const TextCaption(title: 'Draw your digital sign'),
|
||||||
|
SizedBox(
|
||||||
|
height: SizeConfig.height * .28,
|
||||||
|
child: DottedBorder(
|
||||||
|
color: ColorPalette.primary,
|
||||||
|
borderType: BorderType.RRect,
|
||||||
|
radius: const Radius.circular(8),
|
||||||
|
padding: const EdgeInsets.all(6),
|
||||||
|
strokeWidth: 2.0,
|
||||||
|
dashPattern: const [14, 0, 0, 8],
|
||||||
|
child: SfSignaturePad(
|
||||||
|
key: signaturePadKey,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const ListTileView(
|
||||||
|
title:
|
||||||
|
'Make sure the sign you draw is match with your ID Card'),
|
||||||
|
const Spacer(),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
ButtonView(
|
||||||
|
name: 'Delete',
|
||||||
|
isOutlined: true,
|
||||||
|
width: SizeConfig.width * .42,
|
||||||
|
onPressed: () {
|
||||||
|
signaturePadKey.currentState?.clear();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
ButtonView(
|
||||||
|
name: 'Next',
|
||||||
|
width: SizeConfig.width * .42,
|
||||||
|
onPressed: () async {
|
||||||
|
// ui.Image image = await _signaturePadKey.currentState!.toImage();
|
||||||
|
routePush(context, page: const SubmissionParent());
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -39,9 +39,11 @@ class DashboardPublicView extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
body: Container(
|
body: Container(
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.only(
|
||||||
vertical: 32.0,
|
top: 32.0,
|
||||||
horizontal: 24.0,
|
bottom: 8.0,
|
||||||
|
left: 24.0,
|
||||||
|
right: 24.0,
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
|
|
@ -153,6 +153,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.6"
|
version: "1.0.6"
|
||||||
|
dotted_border:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: dotted_border
|
||||||
|
sha256: "108837e11848ca776c53b30bc870086f84b62ed6e01c503ed976e8f8c7df9c04"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.0"
|
||||||
equatable:
|
equatable:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -49,6 +49,7 @@ dependencies:
|
||||||
path_provider: ^2.1.2
|
path_provider: ^2.1.2
|
||||||
path: ^1.8.3
|
path: ^1.8.3
|
||||||
syncfusion_flutter_signaturepad: ^24.2.4
|
syncfusion_flutter_signaturepad: ^24.2.4
|
||||||
|
dotted_border: ^2.1.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user