From 010817038b1cb54e1da145d1466f7621607b02ce Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Sat, 20 Feb 2021 16:55:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=EF=BC=9A=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7=E4=BF=AE=E6=94=B9=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81=20=E5=AF=B9=E6=8E=A5=EF=BC=9A=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E8=B5=84=E6=96=99=E4=BF=AE=E6=94=B9=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/const/api.dart | 7 ++++ lib/ui/settings/tel_change_page.dart | 51 ++++++++++++++++------- lib/ui/settings/update_userinfo_func.dart | 23 ++++++++++ lib/ui/settings/user_info_page.dart | 8 +++- 4 files changed, 73 insertions(+), 16 deletions(-) create mode 100644 lib/ui/settings/update_userinfo_func.dart diff --git a/lib/const/api.dart b/lib/const/api.dart index 5ec3d5d..1cbe23e 100644 --- a/lib/const/api.dart +++ b/lib/const/api.dart @@ -35,4 +35,11 @@ class _User { ///个人资料:修改管家用户昵称 String get updateNickName => '/user/personalData/updateNickName'; + + ///个人资料:发送手机号修改验证码 + String get sendTelUpdateCode => '/user/personalData/sendTelUpdateCode'; + + ///个人资料:根据新手机号发送修改验证码 + String get updateTel =>'/user/personalData/updateTel'; + } diff --git a/lib/ui/settings/tel_change_page.dart b/lib/ui/settings/tel_change_page.dart index f4a721f..1e5db3b 100644 --- a/lib/ui/settings/tel_change_page.dart +++ b/lib/ui/settings/tel_change_page.dart @@ -1,7 +1,9 @@ import 'dart:async'; import 'package:aku_community_manager/provider/user_provider.dart'; +import 'package:aku_community_manager/ui/settings/update_userinfo_func.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; +import 'package:aku_community_manager/utils/network/base_model.dart'; import 'package:bot_toast/bot_toast.dart'; import 'package:common_utils/common_utils.dart'; import 'package:flutter/material.dart'; @@ -28,7 +30,8 @@ class _TelChangePageState extends State { bool timeActive = _timer?.isActive ?? false; return (!timeActive) && validPhone; } - startTick() { + + startTick() { _timer = Timer.periodic(Duration(seconds: 1), (_timer) { if (_timer.tick >= 60) { _timer.cancel(); @@ -37,23 +40,25 @@ class _TelChangePageState extends State { setState(() {}); }); } + @override - void initState() { + void initState() { super.initState(); - _codeController=TextEditingController(); - _newTelController=TextEditingController(); - _oldTelController=TextEditingController(); + _codeController = TextEditingController(); + _newTelController = TextEditingController(); + _oldTelController = TextEditingController(); } + @override - void dispose() { + void dispose() { _codeController?.dispose(); _newTelController?.dispose(); _oldTelController?.dispose(); super.dispose(); } + @override Widget build(BuildContext context) { - UserProvider userProvider = Provider.of(context); return AkuScaffold( title: '修改手机', @@ -97,8 +102,13 @@ class _TelChangePageState extends State { BoxConstraints(minHeight: 0.w, minWidth: 0.w), suffixIcon: MaterialButton( onPressed: _canGetCode - ? () { - startTick(); + ? () async { + BaseModel baseModel = + await UpdateUserInfoFunc.sendTelUpdateCode( + _newTelController.text); + if (baseModel.status) { + startTick(); + } else {} } : () {}, child: _timer?.isActive ?? false @@ -107,7 +117,11 @@ class _TelChangePageState extends State { .color(Color(0xFFFFC40C)) .size(28.sp) .make() - : '获取验证码'.text.color(Color(0xFFFFC40C)).size(28.sp).make(), + : '获取验证码' + .text + .color(Color(0xFFFFC40C)) + .size(28.sp) + .make(), padding: EdgeInsets.zero, minWidth: 177.w, height: 62.w, @@ -155,7 +169,7 @@ class _TelChangePageState extends State { ), 64.w.heightBox, MaterialButton( - onPressed: () { + onPressed: () async { if (TextUtil.isEmpty(_oldTelController.text)) { BotToast.showText(text: '旧手机号不能为空'); } else if (TextUtil.isEmpty(_newTelController.text)) { @@ -163,9 +177,16 @@ class _TelChangePageState extends State { } else if (TextUtil.isEmpty(_codeController.text)) { BotToast.showText(text: '验证码不能为空'); } else { - // userProvider.setTel(_oldTelController.text, - // _newTelController.text, _codeController.text); - Get.back(); + BaseModel baseModel = await UpdateUserInfoFunc.updateTel( + _oldTelController.text, + _newTelController.text, + _codeController.text); + if (baseModel.status) { + userProvider.setTel(_newTelController.text); + Get.back(); + } else { + BotToast.showText(text: baseModel.message); + } } }, child: '保存'.text.black.size(32.sp).make(), @@ -187,4 +208,4 @@ class _TelChangePageState extends State { ), ); } -} \ No newline at end of file +} diff --git a/lib/ui/settings/update_userinfo_func.dart b/lib/ui/settings/update_userinfo_func.dart new file mode 100644 index 0000000..b1a1172 --- /dev/null +++ b/lib/ui/settings/update_userinfo_func.dart @@ -0,0 +1,23 @@ +import 'package:aku_community_manager/const/api.dart'; +import 'package:aku_community_manager/utils/network/base_model.dart'; +import 'package:aku_community_manager/utils/network/net_util.dart'; + +class UpdateUserInfoFunc { + static Future sendTelUpdateCode(String tel) async { + BaseModel baseModel = + await NetUtil().post(API.user.sendTelUpdateCode, params: { + 'newTel': tel, + }); + return baseModel; + } + + static Future updateTel( + String oldTel, String newTel, String code) async { + BaseModel baseModel = await NetUtil().post(API.user.updateTel, params: { + 'oldTel': oldTel, + 'newTel': newTel, + 'code': code, + }); + return baseModel; + } +} diff --git a/lib/ui/settings/user_info_page.dart b/lib/ui/settings/user_info_page.dart index 94bce98..338eafe 100644 --- a/lib/ui/settings/user_info_page.dart +++ b/lib/ui/settings/user_info_page.dart @@ -1,6 +1,7 @@ // Flutter imports: import 'package:aku_community_manager/tools/aku_divider.dart'; import 'package:aku_community_manager/ui/settings/nick_name_change_page.dart'; +import 'package:aku_community_manager/ui/settings/tel_change_page.dart'; import 'package:flutter/material.dart'; // Package imports: @@ -52,7 +53,12 @@ class _UserInfoPageState extends State { suffix: Text(userProvider.infoModel.nickName), ), AkuTile( - onTap: () {}, + onTap: () async{ + await TelChangePage().to(); + setState(() { + + }); + }, title: Text('手机'), suffix: Text(TextUtil.hideNumber(userProvider.infoModel.tel)), ),