import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:zhiying_comm/models/user/user_info_model.dart'; import 'package:zhiying_comm/util/global_config.dart'; import 'package:zhiying_comm/util/log/let_log.dart'; import 'package:zhiying_comm/util/shared_prefe_util.dart'; /// /// 用户信息Provider /// class UserInfoNotifier with ChangeNotifier { /// 用户信息 UserInfoModel _userInfo; /// 更新用户数据 void setUserInfo(UserInfoModel loginUser) async { print('${loginUser.toString()}'); this._userInfo = loginUser; // 缓存数据 await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, loginUser.token); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, loginUser.mobile); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, jsonEncode(loginUser.toJson())); notifyListeners(); } /// 退出登陆 void unLogin() async { this._userInfo = null; // 清除缓存数据 await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, ''); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, ''); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, ''); notifyListeners(); } /// 获取登陆数据 Future getUserInfoModel() async { if (null != _userInfo) { return _userInfo; } try { String userInfoJson = await SharedPreferencesUtil.getStringValue(GlobalConfig.SHARED_KEY_USER_INFO); _userInfo = UserInfoModel.fromJson(jsonDecode(userInfoJson)); } catch (e) { Logger.log(e); } return _userInfo; } }