band_account.dart 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import 'package:flustars/flustars.dart' as FlutterStars;
  2. import 'package:flutter/material.dart';
  3. import 'package:liftmanager/internal/wode/page/input_account.dart';
  4. import 'package:liftmanager/common/common.dart';
  5. import 'package:liftmanager/internal/account/model/user_info_entity.dart';
  6. import 'package:liftmanager/internal/account/provider/user_provider.dart';
  7. import 'package:liftmanager/net/api_service.dart';
  8. import 'package:liftmanager/utils/toast.dart';
  9. import 'package:liftmanager/widgets/app_bar.dart';
  10. import 'package:liftmanager/widgets/click_item.dart';
  11. import 'package:provider/provider.dart';
  12. class BandAccount extends StatefulWidget {
  13. @override
  14. State<StatefulWidget> createState() {
  15. return BandAccountState();
  16. }
  17. }
  18. class BandAccountState extends State<BandAccount>
  19. with AutomaticKeepAliveClientMixin {
  20. // PersonalPageState({Key key}) : super(key: key);
  21. UserProvider provider = UserProvider();
  22. TextEditingController _nameController = new TextEditingController();
  23. TextEditingController _alipayController = new TextEditingController();
  24. @override
  25. void initState() {
  26. super.initState();
  27. getUserInfo();
  28. }
  29. ///获取用户信息
  30. void getUserInfo() {
  31. ApiService().userInfo(
  32. onSuccess: (data) {
  33. setUser(data);
  34. },
  35. onError: (code, msg) {});
  36. }
  37. void setUser(UserInfoEntity user) {
  38. provider.setUser(user);
  39. }
  40. updateUser({name, phone}) {
  41. NewApiService().updateUser({
  42. "userId": FlutterStars.SpUtil.getString(Constant.userId),
  43. "alipayAccount": phone,
  44. "alipayRealName": name
  45. }, onSuccess: (res) {
  46. getUserInfo();
  47. setState(() {});
  48. }, onError: (code, msg) {
  49. toasts(msg);
  50. });
  51. }
  52. @override
  53. void dispose() {
  54. // provider.dispose();
  55. super.dispose();
  56. }
  57. @override
  58. Widget build(BuildContext context) {
  59. double width = MediaQuery.of(context).size.width;
  60. double height = MediaQuery.of(context).size.height;
  61. return ChangeNotifierProvider<UserProvider>(
  62. create: (_) => provider,
  63. child: Container(
  64. child: Scaffold(
  65. resizeToAvoidBottomPadding: false,
  66. appBar: MyAppBar(
  67. centerTitle: "绑定账号",
  68. ),
  69. body: Consumer<UserProvider>(builder: (_, provider, __) {
  70. return ListView(
  71. padding: EdgeInsets.all(0.0),
  72. children: <Widget>[
  73. ClickItem(
  74. title: "支付宝账号",
  75. content: "${provider.user?.alipayAccount ?? ""}",
  76. onTap: () {
  77. Navigator.push(context,
  78. MaterialPageRoute(builder: (_) {
  79. return InputAccount(
  80. name: provider.user?.alipayRealName,
  81. phone: provider.user?.alipayAccount,
  82. backBlock: (phone, name) {
  83. updateUser(name: name, phone: phone);
  84. },
  85. );
  86. }));
  87. if (provider.user?.alipayAccount != null) {
  88. _alipayController.text =
  89. provider.user?.alipayAccount;
  90. }
  91. if (provider.user?.alipayRealName != null) {
  92. _nameController.text =
  93. provider.user?.alipayRealName;
  94. }
  95. },
  96. ),
  97. ]);
  98. })),
  99. ));
  100. }
  101. @override
  102. bool get wantKeepAlive => true;
  103. }