| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- import 'package:bot_toast/bot_toast.dart';
- import 'package:flutter/material.dart';
- import 'package:provider/provider.dart';
- import 'package:twong/api/index.dart';
- import 'package:twong/config/style.dart';
- import 'package:twong/providers/user.dart';
- import 'package:twong/utils/index.dart';
- import 'package:twong/widgets/app_bar.dart';
- import 'package:twong/widgets/counter_botton.dart';
- class AccountEditPage extends StatefulWidget {
- final int type;
- AccountEditPage(this.type);
- @override
- State<StatefulWidget> createState() {
- return _AccountEditState();
- }
- }
- class _AccountEditState extends State<AccountEditPage> {
- List _widgets;
- FocusNode _firstNode = FocusNode();
- List _titles = ["修改昵称", "修改密码"];
- TextEditingController _firstCtrl = TextEditingController();
- @override
- initState() {
- super.initState();
- _widgets = [_nickEdit, _passEdit];
- }
- Widget get _nickEdit {
- _firstCtrl.text = Cache.user.nickname;
- // FocusScope.of(context).requestFocus(_firstNode);
- return Column(
- children: [
- Container(
- padding: EdgeInsets.all(6.px),
- child: Row(
- children: [
- Text("昵称"),
- Expanded(child: Container(
- margin: EdgeInsets.only(left: 24.px),
- child: TextField(
- focusNode: _firstNode,
- controller: _firstCtrl,
- cursorColor: DColors.Main,
- decoration: InputDecoration(
- border: InputBorder.none
- ),
- ),
- ))
- ],
- ),
- ),
- Divider()
- ],
- );
- }
- Widget get _passEdit {
- return Column(
- children: [
- _buildItem("手机号", value: Consumer<UserModel>(
- builder: (context, model, child) =>
- Text("${Utils.encodeString(model.info.phone)}"),
- )),
- _buildItem("验证码", hit: "请输入手机验证码", child: CounterButton(
- onClick: _onGetCode,
- color: DColors.Main, disableColor: Colors.grey)),
- _buildItem("新密码", password: true, hit: "请输入新的密码"),
- _buildItem("密码确认", password: true, hit: "请再次输入新的密码"),
- ],
- );
- }
- bool _onGetCode() {
- return true;
- }
- Widget _buildItem(String key, { Widget child, bool password = false,
- String hit, Widget value }) {
- return Column(
- children: [
- Container(
- padding: EdgeInsets.all(6.px),
- child: Row(
- children: [
- Container(
- width: 68.px,
- child: Text(key),
- ),
- value == null ? Expanded(child: Container(
- child: TextField(
- obscureText: password,
- // focusNode: _firstNode,
- // controller: _firstCtrl,
- cursorColor: DColors.Main,
- decoration: InputDecoration(
- hintText: hit,
- border: InputBorder.none
- ),
- ),
- )) : value,
- child == null ? Container() : child
- ],
- ),
- ),
- Divider()
- ],
- );
- }
- _saveClick() {
- if(widget.type == 0) {
- Network.inst.editUser(nickname: _firstCtrl.text).then((res) {
- Provider.of<UserModel>(context, listen: false)
- .updateNickName(_firstCtrl.text);
- Navigator.pop(context);
- BotToast.showText(text: "保存成功");
- }).catchError((err) {
- Log.d(err);
- });
- }
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: DAppBar(_titles[widget.type]),
- body: Container(
- margin: EdgeInsets.only(left: 12.px, right: 12.px, top: 6.px),
- child: Column(
- children: [
- _widgets[widget.type],
- Container(
- margin: EdgeInsets.only(left: 32.px, right: 32.px),
- width: double.infinity,
- child: FlatButton(
- color: DColors.Main,
- shape: StadiumBorder(),
- onPressed: _saveClick,
- child: Text("保 存", style: TextStyle(color: Colors.white,
- fontSize: 14.px)),
- ),
- )
- ],
- ),
- ),
- );
- }
- }
|