123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- 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<StatefulWidget> createState() {
- return WodePageState();
- }
- }
- class WodePageState extends State<WodePage> {
- 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<File> 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<UserProvider>(
- create: (_) => provider,
- child: Scaffold(
- appBar: MyAppBar(
- centerTitle: "个人中心",
- isBack: false,
- actions: <Widget>[
- 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<UserProvider>(builder: (_, provider, __) {
- return ListView(padding: EdgeInsets.all(0.0), children: <Widget>[
- Stack(
- children: <Widget>[
- 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;
- }
|