43 lines
1.5 KiB
Dart
43 lines
1.5 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:get/get.dart';
|
|
import 'package:starwork_flutter/api/model/team/request/role_list_request.dart';
|
|
import 'package:starwork_flutter/api/model/team/response/role_list_response.dart';
|
|
import 'package:starwork_flutter/api/model/user/response/user_info_response.dart';
|
|
import 'package:starwork_flutter/api/service/team_api_service.dart';
|
|
import 'package:starwork_flutter/base/app_logger.dart';
|
|
import 'package:starwork_flutter/base/base_controller.dart';
|
|
import 'package:starwork_flutter/common/constant/cache_keys.dart';
|
|
import 'package:starwork_flutter/common/utils/shared_preferences_utils.dart';
|
|
|
|
class RoleManageController extends BaseController {
|
|
final teamApi = Get.find<TeamApiService>();
|
|
var roleList = <RoleListResponse>[].obs;
|
|
var cacheUserInfo = UserInfoResponse().obs; // 缓存的登录用户信息
|
|
@override
|
|
void onReady() async {
|
|
super.onReady();
|
|
requestRoleList();
|
|
|
|
String? cachedJson = await SharedPreferencesUtils.getString(CacheKeys.userAccountInfo);
|
|
if (cachedJson != null) {
|
|
try {
|
|
Map<String, dynamic> jsonMap = jsonDecode(cachedJson);
|
|
UserInfoResponse userInfoResponse = UserInfoResponse.fromJson(jsonMap);
|
|
cacheUserInfo.value = userInfoResponse;
|
|
cacheUserInfo.refresh();
|
|
} catch (e) {
|
|
AppLogger.error('JSON 解析错误: $e');
|
|
}
|
|
}
|
|
}
|
|
|
|
void requestRoleList() async {
|
|
var response = await teamApi.requestTeamRoleList();
|
|
if (response.isSuccess) {
|
|
roleList.value = response.data ?? [];
|
|
roleList.refresh();
|
|
}
|
|
}
|
|
}
|