import 'dart:io'; import 'package:flustars/flustars.dart' as ft; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'package:liftmanager/common/common.dart'; import 'package:liftmanager/internal/account/account_router.dart'; import 'package:liftmanager/internal/account/model/user_info_entity.dart'; import 'package:liftmanager/internal/account/provider/user_provider.dart'; import 'package:liftmanager/internal/wode/page/edit_text_page.dart'; import 'package:liftmanager/internal/wode/wode_router.dart'; import 'package:liftmanager/net/api_service.dart'; import 'package:liftmanager/res/resources.dart'; import 'package:liftmanager/routers/fluro_navigator.dart'; import 'package:liftmanager/internal/team/team_router.dart'; import 'package:liftmanager/utils/image_utils.dart'; import 'package:liftmanager/utils/theme_utils.dart'; import 'package:liftmanager/utils/toast.dart'; import 'package:liftmanager/widgets/app_bar.dart'; import 'package:liftmanager/widgets/click_item.dart'; import 'package:liftmanager/widgets/load_image.dart'; import 'package:provider/provider.dart' as p; class WodePage extends StatefulWidget { @override State createState() { return WodePageState(); } } class WodePageState extends State { UserProvider provider = UserProvider(); @override void initState() { super.initState(); getUserInfo(); } ///获取用户信息 void getUserInfo() { ApiService(context: context).userInfo( onSuccess: (data) { if (!mounted) { return; } setUser(data); }, onError: (code, msg) {}); } void setUser(UserInfoEntity user) { provider.setUser(user); } ///选择图片 void selectPicker() { showDialog( context: context, builder: (BuildContext context) { return SimpleDialog( title: Text("修改头像"), children: ["拍照", '从手机相册选择'].map((String value) { print("$value"); return SimpleDialogOption( child: Text( "${value}", style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500), ), onPressed: () { _getImage(value == '拍照' ? 1 : 0); Navigator.of(context).pop(); }, ); }).toList()); }); } void _getImage(int key) async { try { var _imageFile = await ImagePicker.pickImage( source: key == 1 ? ImageSource.camera : ImageSource.gallery, maxWidth: 800, imageQuality: 95); if (_imageFile != null) { updateAvatar(_imageFile); setState(() {}); } } catch (e) { toasts("没有权限,无法打开相册!"); } } void updateAvatar(File imageFile) { List list = [imageFile]; ApiService(context: context).uploadMore(list, onSuccess: (imgs) { ApiService(context: context).modifyAvatar(imgs[0], onSuccess: (res) { if (res != null) { getUserInfo(); } }, onError: (code, msg) { toasts(msg); }); }); } void _updateUserInfo(value) { ApiService(context: context).modifyName(value, onSuccess: (res) { if (res != null) { getUserInfo(); } }, onError: (code, msg) { toasts(msg); }); } @override void dispose() { super.dispose(); } goToPage(pagePath){ NavigatorUtils.pushResult(context, pagePath, (res){ getUserInfo(); }); } @override Widget build(BuildContext context) { // super.build(context); bool isDark = ThemeUtils.isDark(context); Color buttonColor = isDark ? Colours.dark_text : Colors.white; return p.ChangeNotifierProvider( create: (_) => provider, child: Scaffold( appBar: MyAppBar( centerTitle: "个人中心", isBack: false, actions: [ IconButton( onPressed: () { goToPage(WodeRouter.settingPage); }, icon: LoadAssetImage( "icon_setting", key: const Key('add'), width: 24.0, height: 24.0, // color: Colors.white,//todo color: buttonColor, ), ) ], ), body: p.Consumer(builder: (_, provider, __) { return ListView(padding: EdgeInsets.all(0.0), children: [ Stack( children: [ Image.asset( "assets/images/wode/bg_header.png", color: isDark ? Colours.dark_appbar_main : Colours.appbar_main, ), Positioned( top: 20, left: 0, right: 0, child: Center( child: GestureDetector( onTap: () { selectPicker(); }, child: CircleAvatar( radius: 30.0, backgroundColor: Colors.transparent, backgroundImage: ImageUtils.getImageProvider( provider.user?.avatarUrl)), )), ), Positioned( top: 92, left: 0, right: 0, child: Center( child: GestureDetector( onTap: () { Navigator.of(context) .push(MaterialPageRoute(builder: (context) { return EditTextPage( title: "编辑姓名", mType: 0, ); })).then((value) { if (value != null) { print(value); _updateUserInfo(value); } }); }, child: Text( "${provider.user != null ? provider.user?.userName : ""}", style: TextStyle( color: Colors.white, fontSize: 20), ))), ), ], ), // ClickItem(title: "姓名", content: "${provider.user?.userName??""}"), ClickItem( title: "手机号", content: "${provider.user?.mobile ?? ""}"), ClickItem( title: "我的团队", content: "${provider.user?.companyName ?? ""}", onTap: () { if (ft.SpUtil.getString(Constant.companyId).length == 0) { showAlert( context, "提示", "尚未加入团队,是否立即加入?", "确定", () { NavigatorUtils.goBack(context); // NavigatorUtils.push( // context, TeamRouter.teamListPage); goToPage(TeamRouter.teamListPage); }, txt2: "取消", onPre2: () { NavigatorUtils.goBack(context); }); } else { // NavigatorUtils.push(context, TeamRouter.teamCardPage); goToPage(TeamRouter.teamCardPage); } }, ), ClickItem( title: "团队角色", content: "${provider.user?.roleName ?? ""}"), ClickItem( title: "操作证", content: Constant .certificateStatus[provider.user?.certificateStatus ?? 0], onTap: () { if (ft.SpUtil.getString(Constant.companyId).length == 0) { showAlert( context, "提示", "尚未加入团队,是否立即加入?", "确定", () { NavigatorUtils.goBack(context); // NavigatorUtils.push( // context, TeamRouter.teamListPage); goToPage(TeamRouter.teamListPage); }, txt2: "取消", onPre2: () { NavigatorUtils.goBack(context); }); } else { // NavigatorUtils.push( // context, AccountRouter.certificatePage); goToPage(AccountRouter.certificatePage); } }, ), // Container( // margin: EdgeInsets.only(top: 8, bottom: 8), // child: ClickItem(title: "我的收藏", content: "",onTap: (){ // NavigatorUtils.push(context, TeamRouter.teamListPage); // },), // ), ClickItem( title: "团队管理", content: "", onTap: () { // NavigatorUtils.push(context, TeamRouter.teamListPage); goToPage(TeamRouter.teamListPage); }, ), Container( margin: EdgeInsets.only(bottom: 8), child: ClickItem( title: "团队成员", content: "", onTap: () { if (ft.SpUtil.getString(Constant.companyId).length == 0) { showAlert( context, "提示", "尚未加入团队,是否立即加入?", "确定", () { NavigatorUtils.goBack(context); goToPage(TeamRouter.teamListPage); // NavigatorUtils.push( // context, TeamRouter.teamListPage); }, txt2: "取消", onPre2: () { NavigatorUtils.goBack(context); }); } else { // NavigatorUtils.push( // context, "${TeamRouter.teamUserPage}"); goToPage(TeamRouter.teamUserPage); } }, ), ) ]); }))); } @override bool get wantKeepAlive => true; }