Commit 32edc052220040b26c61f8e41ce7570295464d05

Authored by wdn127929
1 parent 1479f833

企业资料UI部分OK

@@ -6,6 +6,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -6,6 +6,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
6 import 'package:one_key/widgets/system_app_bar.dart'; 6 import 'package:one_key/widgets/system_app_bar.dart';
7 import 'package:provider/provider.dart'; 7 import 'package:provider/provider.dart';
8 8
  9 +import '../../../models/get_reserve_type_field_model.dart';
9 import '../../../models/upload_img_model.dart'; 10 import '../../../models/upload_img_model.dart';
10 import '../../../provider/finance_provider.dart'; 11 import '../../../provider/finance_provider.dart';
11 import '../../../provider/upload_img_provider.dart'; 12 import '../../../provider/upload_img_provider.dart';
@@ -41,11 +42,50 @@ class _EnterpriseInformationUploadPageState @@ -41,11 +42,50 @@ class _EnterpriseInformationUploadPageState
41 late FinanceProvider financeProvider; 42 late FinanceProvider financeProvider;
42 43
43 final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>(); 44 final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
  45 + bool accountType = true; //企业 true,个体 false
  46 + TextEditingController registrNoC = TextEditingController();
  47 + FocusNode registrNoFoc = FocusNode();
  48 +
  49 + TextEditingController registrNameC = TextEditingController();
  50 + FocusNode registrNameFoc = FocusNode();
  51 +
  52 + TextEditingController legalNameC = TextEditingController();
  53 + FocusNode legalNameFoc = FocusNode();
  54 +
  55 + TextEditingController registrAddressC = TextEditingController();
  56 + FocusNode registrAddressFoc = FocusNode();
  57 +
  58 + TextEditingController idNumC = TextEditingController();
  59 + FocusNode idNumFoc = FocusNode();
  60 +
  61 + TextEditingController idAddressC = TextEditingController();
  62 + FocusNode idAddressFoc = FocusNode();
  63 +
  64 + TextEditingController legalPhoneC = TextEditingController();
  65 + FocusNode legalPhoneFoc = FocusNode();
  66 +
  67 + TextEditingController emailC = TextEditingController();
  68 + FocusNode emailFoc = FocusNode();
  69 +
  70 + TextEditingController bankAllNameC = TextEditingController();
  71 + FocusNode bankAllNameFoc = FocusNode();
  72 +
  73 + TextEditingController bankNumC = TextEditingController();
  74 + FocusNode bankNumFoc = FocusNode();
  75 +
  76 + TextEditingController merchantNameC = TextEditingController();
  77 + FocusNode merchantNameFoc = FocusNode();
  78 +
  79 + TextEditingController servicePhoneC = TextEditingController();
  80 + FocusNode servicePhoneFoc = FocusNode();
  81 +
  82 + List<GetReserveTypeFieldsSunModel> bankData = [];
  83 + String bankType='点击选择开户银行';
44 84
45 @override 85 @override
46 void initState() { 86 void initState() {
47 super.initState(); 87 super.initState();
48 - 88 + _initBankData();
49 WidgetsBinding.instance.addPostFrameCallback((_) { 89 WidgetsBinding.instance.addPostFrameCallback((_) {
50 _getQiniuInfo(); 90 _getQiniuInfo();
51 }); 91 });
@@ -65,6 +105,28 @@ class _EnterpriseInformationUploadPageState @@ -65,6 +105,28 @@ class _EnterpriseInformationUploadPageState
65 await _uploadImageProvider.getQiniuInfo(context, {}); 105 await _uploadImageProvider.getQiniuInfo(context, {});
66 } 106 }
67 107
  108 + _initBankData() {
  109 + List<String> names = [
  110 + '中国银行',
  111 + '农业银行',
  112 + '工商银行',
  113 + '建设银行',
  114 + '招商银行',
  115 + '邮政储蓄银行',
  116 + '民生银行',
  117 + '交通银行',
  118 + '兴业银行',
  119 + '平安银行',
  120 + '中信银行',
  121 + '光大银行',
  122 + '华夏银行',
  123 + '其他银行'
  124 + ];
  125 + bankData = names.map((e) {
  126 + return GetReserveTypeFieldsSunModel(name: e, select: false);
  127 + }).toList();
  128 + }
  129 +
68 Widget _title(String title) { 130 Widget _title(String title) {
69 return Padding( 131 return Padding(
70 padding: EdgeInsets.only(left: w(16), top: w(10), bottom: w(10)), 132 padding: EdgeInsets.only(left: w(16), top: w(10), bottom: w(10)),
@@ -260,45 +322,64 @@ class _EnterpriseInformationUploadPageState @@ -260,45 +322,64 @@ class _EnterpriseInformationUploadPageState
260 color: MyColours.color_515151, fontSize: font(14)), 322 color: MyColours.color_515151, fontSize: font(14)),
261 ), 323 ),
262 Spacer(), 324 Spacer(),
263 - Container(  
264 - // width: w(100),  
265 - // height: w(30),  
266 - padding: EdgeInsets.symmetric(  
267 - horizontal: w(10), vertical: w(5)),  
268 - decoration: BoxDecoration(  
269 - color: MyColours.color_438E93,  
270 - borderRadius: BorderRadius.only(  
271 - topLeft: Radius.circular(r(5)),  
272 - bottomLeft: Radius.circular(r(5)))),  
273 - child: Text(  
274 - '企业',  
275 - style: TextStyle(  
276 - color: MyColours.color_ffffff,  
277 - fontSize: font(14)),  
278 - ),  
279 - ),  
280 - Container(  
281 - padding: EdgeInsets.symmetric(  
282 - horizontal: w(10), vertical: w(5)),  
283 - decoration: BoxDecoration(  
284 - color: MyColours.color_DBDBDB,  
285 - borderRadius: BorderRadius.only(  
286 - topRight: Radius.circular(r(5)),  
287 - bottomRight: Radius.circular(r(5)))),  
288 - child: Text(  
289 - '个体',  
290 - style: TextStyle(  
291 - color: MyColours.color_438E93,  
292 - fontSize: font(14)),  
293 - ),  
294 - ) 325 + InkWell(
  326 + onTap: () {
  327 + setState(() {
  328 + accountType = !accountType;
  329 + });
  330 + },
  331 + child: Container(
  332 + // width: w(100),
  333 + // height: w(30),
  334 + padding: EdgeInsets.symmetric(
  335 + horizontal: w(10), vertical: w(5)),
  336 + decoration: BoxDecoration(
  337 + color: accountType
  338 + ? MyColours.color_438E93
  339 + : MyColours.color_DBDBDB,
  340 + borderRadius: BorderRadius.only(
  341 + topLeft: Radius.circular(r(5)),
  342 + bottomLeft: Radius.circular(r(5)))),
  343 + child: Text(
  344 + '企业',
  345 + style: TextStyle(
  346 + color: accountType
  347 + ? MyColours.color_ffffff
  348 + : MyColours.color_438E93,
  349 + fontSize: font(14)),
  350 + ),
  351 + )),
  352 + InkWell(
  353 + onTap: () {
  354 + setState(() {
  355 + accountType = !accountType;
  356 + });
  357 + },
  358 + child: Container(
  359 + padding: EdgeInsets.symmetric(
  360 + horizontal: w(10), vertical: w(5)),
  361 + decoration: BoxDecoration(
  362 + color: !accountType
  363 + ? MyColours.color_438E93
  364 + : MyColours.color_DBDBDB,
  365 + borderRadius: BorderRadius.only(
  366 + topRight: Radius.circular(r(5)),
  367 + bottomRight: Radius.circular(r(5)))),
  368 + child: Text(
  369 + '个体',
  370 + style: TextStyle(
  371 + color: !accountType
  372 + ? MyColours.color_ffffff
  373 + : MyColours.color_438E93,
  374 + fontSize: font(14)),
  375 + ),
  376 + ))
295 ], 377 ],
296 ), 378 ),
297 ), 379 ),
  380 + _inputWidget('注册号', registrNoC, registrNoFoc, '点击输入营业执照注册号'),
298 _inputWidget( 381 _inputWidget(
299 - '注册号', TextEditingController(), FocusNode(), '点击输入营业执照注册号'),  
300 - _inputWidget('注册名称', TextEditingController(), FocusNode(),  
301 - '点击输入营业执照上的企业名称'), 382 + '注册名称', registrNameC, registrNameFoc, '点击输入营业执照上的企业名称'),
302 _select('营业执照开始于', stime, () { 383 _select('营业执照开始于', stime, () {
303 FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 384 FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
304 //弹出时间选择器 385 //弹出时间选择器
@@ -320,6 +401,8 @@ class _EnterpriseInformationUploadPageState @@ -320,6 +401,8 @@ class _EnterpriseInformationUploadPageState
320 dateTime: stime == '点击选择营业执照开始日期' 401 dateTime: stime == '点击选择营业执照开始日期'
321 ? null 402 ? null
322 : DateUtil.getDateTime(stime), 403 : DateUtil.getDateTime(stime),
  404 + minValue: DateTime(1987),
  405 + yearBegin: 1987,
323 pickerDateTimeType: PickerDateTimeType.kYMD, 406 pickerDateTimeType: PickerDateTimeType.kYMD,
324 onCancel: () { 407 onCancel: () {
325 // showDateSelWidget = false; 408 // showDateSelWidget = false;
@@ -351,16 +434,18 @@ class _EnterpriseInformationUploadPageState @@ -351,16 +434,18 @@ class _EnterpriseInformationUploadPageState
351 dateTime: etime == '点击选择营业执照结束日期' 434 dateTime: etime == '点击选择营业执照结束日期'
352 ? null 435 ? null
353 : DateUtil.getDateTime(etime), 436 : DateUtil.getDateTime(etime),
  437 + minValue: DateTime(1987),
  438 + yearBegin: 1987,
354 pickerDateTimeType: PickerDateTimeType.kYMD, 439 pickerDateTimeType: PickerDateTimeType.kYMD,
355 onCancel: () { 440 onCancel: () {
356 // showDateSelWidget = false; 441 // showDateSelWidget = false;
357 }); 442 });
358 }, 443 },
359 ), 444 ),
360 - _inputWidget('经营者/法人姓名', TextEditingController(), FocusNode(),  
361 - '点击输入经营者/法人姓名'),  
362 _inputWidget( 445 _inputWidget(
363 - '注册地址', TextEditingController(), FocusNode(), '点击输入注册地址'), 446 + '经营者/法人姓名', legalNameC, legalNameFoc, '点击输入经营者/法人姓名'),
  447 + _inputWidget(
  448 + '注册地址', registrAddressC, registrAddressFoc, '点击输入注册地址'),
364 Consumer<UploadImageProvider>(builder: (context, model, _) { 449 Consumer<UploadImageProvider>(builder: (context, model, _) {
365 return Padding( 450 return Padding(
366 padding: EdgeInsets.only( 451 padding: EdgeInsets.only(
@@ -404,14 +489,11 @@ class _EnterpriseInformationUploadPageState @@ -404,14 +489,11 @@ class _EnterpriseInformationUploadPageState
404 VEmptyView(24), 489 VEmptyView(24),
405 _title('经营者/法人信息'), 490 _title('经营者/法人信息'),
406 VEmptyView(20), 491 VEmptyView(20),
407 - _inputWidget('法人身份证号码', TextEditingController(), FocusNode(),  
408 - '点击输入法人身份证号码'),  
409 - _inputWidget('法人身份证住址', TextEditingController(), FocusNode(),  
410 - '点击输入法人身份证住址'), 492 + _inputWidget('法人身份证号码', idNumC, idNumFoc, '点击输入法人身份证号码'),
411 _inputWidget( 493 _inputWidget(
412 - '电话', TextEditingController(), FocusNode(), '点击输入法人电话号码'),  
413 - _inputWidget('邮箱', TextEditingController(), FocusNode(),  
414 - '点击输入用来收取支付信息的邮箱'), 494 + '法人身份证住址', idAddressC, idAddressFoc, '点击输入法人身份证住址'),
  495 + _inputWidget('电话', legalPhoneC, legalPhoneFoc, '点击输入法人电话号码'),
  496 + _inputWidget('邮箱', emailC, emailFoc, '点击输入用来收取支付信息的邮箱'),
415 Row(children: [ 497 Row(children: [
416 Padding( 498 Padding(
417 padding: EdgeInsets.only( 499 padding: EdgeInsets.only(
@@ -440,18 +522,26 @@ class _EnterpriseInformationUploadPageState @@ -440,18 +522,26 @@ class _EnterpriseInformationUploadPageState
440 ]), 522 ]),
441 _title('收款信息'), 523 _title('收款信息'),
442 VEmptyView(20), 524 VEmptyView(20),
443 - _select('开户银行', '点击选择开户银行', () {  
444 - FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 525 + _select('开户银行', bankType, () {
445 //弹出开户银行 526 //弹出开户银行
  527 + FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
  528 + // 存储
  529 +
  530 + DialogUtil.openBankTypeSelectModalBottomSheet(
  531 + context, bankData, bankType, rCallback: (value) async {
  532 + if (value != null) {
  533 + bankType = value;
  534 + setState(() {});
  535 + }
  536 + });
446 }), 537 }),
447 - _inputWidget('开户银行网点', TextEditingController(), FocusNode(),  
448 - '点击输入开户银行网点全称'),  
449 _inputWidget( 538 _inputWidget(
450 - '银行账户', TextEditingController(), FocusNode(), '点击录入银行账户号'),  
451 - _inputWidget('收款商户简称', TextEditingController(), FocusNode(), 539 + '开户银行网点', bankAllNameC, bankAllNameFoc, '点击输入开户银行网点全称'),
  540 + _inputWidget('银行账户', bankNumC, bankNumFoc, '点击录入银行账户号'),
  541 + _inputWidget('收款商户简称', merchantNameC, merchantNameFoc,
452 '点击输入商户简称,用户支付时可见'), 542 '点击输入商户简称,用户支付时可见'),
453 _inputWidget( 543 _inputWidget(
454 - '服务电话', TextEditingController(), FocusNode(), '点击输入服务电话'), 544 + '服务电话', servicePhoneC, servicePhoneFoc, '点击输入服务电话'),
455 VEmptyView(44), 545 VEmptyView(44),
456 Padding( 546 Padding(
457 padding: EdgeInsets.only(left: w(16)), 547 padding: EdgeInsets.only(left: w(16)),
@@ -67,9 +67,9 @@ class _FinanceManageHomePageState extends State<FinanceManageHomePage> { @@ -67,9 +67,9 @@ class _FinanceManageHomePageState extends State<FinanceManageHomePage> {
67 body: SingleChildScrollView( 67 body: SingleChildScrollView(
68 child: Column( 68 child: Column(
69 children: [ 69 children: [
70 - // _item('收银资料上传', () {  
71 - // NavigatorUtil.goEnterpriseInformationUploadPage(context);  
72 - // }), 70 + _item('收银资料上传', () {
  71 + NavigatorUtil.goEnterpriseInformationUploadPage(context);
  72 + }),
73 // _item('微信商户账户开通结果查询', () {}), 73 // _item('微信商户账户开通结果查询', () {}),
74 _item('支付返券', () { 74 _item('支付返券', () {
75 NavigatorUtil.goPaymentGiftPage(context); 75 NavigatorUtil.goPaymentGiftPage(context);
@@ -811,6 +811,102 @@ class DialogUtil { @@ -811,6 +811,102 @@ class DialogUtil {
811 }); 811 });
812 } 812 }
813 813
  814 + ///银行选择
  815 + static openBankTypeSelectModalBottomSheet(
  816 + context, List<GetReserveTypeFieldsSunModel> bankTypes, String? bankType,
  817 + {VoidCallback? lCallback, ClickCallback? rCallback}) async {
  818 + String? selectType = bankType;
  819 + if (selectType != '点击选择开户银行') {
  820 + bankTypes.forEach((element) {
  821 + element.select = false;
  822 + if (element.name == selectType) {
  823 + element.select = true;
  824 + }
  825 + });
  826 + }
  827 + final option = await showModalBottomSheet(
  828 + context: context,
  829 + backgroundColor: Colors.transparent,
  830 + isDismissible: false,
  831 + isScrollControlled: true,
  832 + builder: (BuildContext context) {
  833 + return StatefulBuilder(builder: (context, state) {
  834 + return Container(
  835 + decoration: BoxDecoration(
  836 + color: MyColours.color_ffffff,
  837 + borderRadius: BorderRadius.only(
  838 + topLeft: Radius.circular(ScreenUtil().setWidth(10)),
  839 + topRight: Radius.circular(ScreenUtil().setWidth(10)))),
  840 + child:
  841 + Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
  842 + Row(
  843 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
  844 + children: [
  845 + GestureDetector(
  846 + behavior: HitTestBehavior.opaque,
  847 + onTap: () {
  848 + Navigator.of(context).pop();
  849 + },
  850 + child: Container(
  851 + // width: double.infinity,
  852 + alignment: Alignment.center,
  853 + padding: EdgeInsets.symmetric(
  854 + horizontal: w(15),
  855 + vertical: ScreenUtil().setWidth(40)),
  856 + child: Text(
  857 + "取消",
  858 + style: TextStyle(
  859 + fontSize: ScreenUtil().setSp(32),
  860 + color: MyColours.color_438E93),
  861 + ),
  862 + )),
  863 + Container(
  864 + // width: double.infinity,
  865 + alignment: Alignment.center,
  866 + padding: EdgeInsets.symmetric(
  867 + vertical: ScreenUtil().setWidth(40)),
  868 + child: Text(
  869 + "选择开户银行",
  870 + style: TextStyle(
  871 + fontWeight: FontWeight.bold,
  872 + fontSize: ScreenUtil().setSp(32),
  873 + color: MyColours.color_E6000000),
  874 + ),
  875 + ),
  876 + GestureDetector(
  877 + behavior: HitTestBehavior.opaque,
  878 + onTap: () {
  879 + Navigator.of(context).pop();
  880 + rCallback!(selectType);
  881 + },
  882 + child: Container(
  883 + // width: double.infinity,
  884 + alignment: Alignment.center,
  885 + padding: EdgeInsets.symmetric(
  886 + horizontal: w(15),
  887 + vertical: ScreenUtil().setWidth(40)),
  888 + child: Text("确定",
  889 + style: TextStyle(
  890 + fontSize: ScreenUtil().setSp(32),
  891 + color: MyColours.color_438E93)),
  892 + )),
  893 + ]),
  894 + VEmptyView(50),
  895 + Wrap(
  896 + spacing: w(12),
  897 + runSpacing: w(12),
  898 + children: dishSelectBtn(bankTypes, state, (value) {
  899 + selectType = value;
  900 + })),
  901 + VEmptyView(50),
  902 + ]));
  903 + });
  904 + });
  905 + bankTypes.forEach((element) {
  906 + element.select = false;
  907 + });
  908 + }
  909 +
814 ///用餐类型 910 ///用餐类型
815 static openDishTypeSelectModalBottomSheet(context, 911 static openDishTypeSelectModalBottomSheet(context,
816 List<GetReserveTypeFieldsSunModel> reserveTypes, String? reserveType, 912 List<GetReserveTypeFieldsSunModel> reserveTypes, String? reserveType,
@@ -9709,7 +9805,7 @@ class DialogUtil { @@ -9709,7 +9805,7 @@ class DialogUtil {
9709 minHour: 00, 9805 minHour: 00,
9710 maxHour: 23, 9806 maxHour: 23,
9711 yearBegin: yearBegin, 9807 yearBegin: yearBegin,
9712 - yearEnd: 2030, 9808 + yearEnd: 2100,
9713 minValue: minValue, 9809 minValue: minValue,
9714 value: dateTime), 9810 value: dateTime),
9715 title: new Text(""), 9811 title: new Text(""),