From 7b3f4bcb6deaeb4148ccfa5b8dc0551984be3927 Mon Sep 17 00:00:00 2001 From: "1147192855@qq.com" <1147192855@qq.com> Date: Wed, 3 Apr 2024 09:42:29 +0800 Subject: [PATCH] no message --- .gitignore | 3 ++- lib/common/request/rest_dio.dart | 24 +++++++++++++++++------- lib/common/utils/common_utils.dart | 21 --------------------- lib/common/utils/storage.dart | 13 +++++++++++-- lib/main.dart | 19 +++++++------------ lib/page/login_page/login_logic.dart | 1 - 6 files changed, 37 insertions(+), 44 deletions(-) delete mode 100644 lib/common/utils/common_utils.dart diff --git a/.gitignore b/.gitignore index 3a55b4a..b32a2e1 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,5 @@ lib/common/job/common/base_page.g.dart lib/common/job/common/base_page_report.g.dart lib/common/job/common/base_page_data.g.dart lib/common/job/common/base_page_data_report.g.dart -.fvm/flutter_sdk +/.fvm/flutter_sdk +.fvm/fvm_config.json diff --git a/lib/common/request/rest_dio.dart b/lib/common/request/rest_dio.dart index 7f5e727..4e57d7c 100644 --- a/lib/common/request/rest_dio.dart +++ b/lib/common/request/rest_dio.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:io'; +import 'package:get/get.dart' as getx; import 'package:dio/dio.dart'; import 'package:package_info/package_info.dart'; import 'package:school_asignment_app/common/config/request_config.dart'; @@ -7,6 +8,7 @@ import 'package:school_asignment_app/common/api/retrofit_client.dart'; import 'package:school_asignment_app/common/job/user_info.dart'; import 'package:school_asignment_app/common/store/user_store.dart'; import 'package:school_asignment_app/common/utils/toast_utils.dart'; +import 'package:school_asignment_app/routes/app_pages.dart'; class RequestTool { // 初始化请求配置 @@ -126,36 +128,44 @@ class TheError extends Interceptor { print('----------------'); print(error); print('*************'); + var message = '请求错误,请重试'; switch (error.type) { case DioExceptionType.connectionTimeout: + message = '请求链接超时'; break; case DioExceptionType.badCertificate: + message = '证书错误,清联系管理员'; break; case DioExceptionType.sendTimeout: + message = '请求发送超时'; break; case DioExceptionType.receiveTimeout: + message = '接收超时时发生'; break; case DioExceptionType.badResponse: if (error.response == null) { - print('1111111111111'); + print('请求进入异常但是请求response'); } else { var errorMap = error.response!.data; if (errorMap['error'] != null) { - var message = errorMap['error']?['message'] ?? '请求错误,请重试'; - print(message); - ToastUtils.showError(message); + message = errorMap['error']?['message'] ?? '请求错误,请重试'; + } + if (error.response!.statusCode == 401) { + message = '用户登录失效,请重新登录'; + Future.delayed(const Duration(seconds: 2), () => getx.Get.offAllNamed(Routes.login)); } - if (error.response!.statusCode == 401) {} } break; case DioExceptionType.cancel: + message = '请求已取消'; break; case DioExceptionType.connectionError: + message = '当前无网络,请重试'; break; default: - print('这里是错误的东西'); + message = '请求错误'; } - + ToastUtils.showError(message); return handler.next(error); } } diff --git a/lib/common/utils/common_utils.dart b/lib/common/utils/common_utils.dart deleted file mode 100644 index e7bb2a8..0000000 --- a/lib/common/utils/common_utils.dart +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Author: wangyang 1147192855@qq.com - * @Date: 2022-07-13 16:59:53 - * @LastEditors: wangyang 1147192855@qq.com - * @LastEditTime: 2022-07-13 17:00:56 - * @FilePath: \marking_app\lib\utils\common_utils.dart - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - */ -import 'dart:convert'; -import 'package:convert/convert.dart'; -import 'package:crypto/crypto.dart'; - -class CommonUtils { - // md5 加密 - static String generateMD5(String data) { - var content = new Utf8Encoder().convert(data); - var digest = md5.convert(content); - // 这里其实就是 digest.toString() - return hex.encode(digest.bytes); - } -} diff --git a/lib/common/utils/storage.dart b/lib/common/utils/storage.dart index dd4d5f8..a417fea 100644 --- a/lib/common/utils/storage.dart +++ b/lib/common/utils/storage.dart @@ -2,12 +2,21 @@ import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; class StorageService extends GetxService { + StorageService._(); + static final StorageService _instance = StorageService._(); + factory StorageService({Future Function()? initCall}) { + // 具体初始化代码. + _instance._init().then((value) { + if (initCall != null) initCall(); + }); + return _instance; + } + static StorageService get to => Get.find(); late final GetStorage _getStorage; - get storage => _getStorage; - Future init() async { + Future _init() async { await GetStorage.init(); _getStorage = GetStorage(); } diff --git a/lib/main.dart b/lib/main.dart index c30571c..1e2c14e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -15,20 +15,15 @@ void main() async { Get.testMode = true; /// 初始化本地存储 - StorageService storageService = StorageService(); - await storageService.init(); + StorageService storageService = StorageService(initCall: () async { + /// 初始化UserStore + Get.put(UserStore()..init()); + + runApp(const MyApp()); + }); Get.put(storageService); - - /// 初始化UserStore - UserStore userStore = UserStore(); - userStore.init(); - Get.put(userStore); - - SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, - overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); // 屏幕刘海 + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); // 屏幕刘海 SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); // 屏幕强制竖屏 - - runApp(const MyApp()); } class MyApp extends StatelessWidget { diff --git a/lib/page/login_page/login_logic.dart b/lib/page/login_page/login_logic.dart index fd64013..77f0264 100644 --- a/lib/page/login_page/login_logic.dart +++ b/lib/page/login_page/login_logic.dart @@ -8,7 +8,6 @@ import 'package:school_asignment_app/common/job/user_info.dart'; import 'package:school_asignment_app/common/job/user_login.dart'; import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart'; import 'package:school_asignment_app/common/store/user_store.dart'; -import 'package:school_asignment_app/common/utils/common_utils.dart'; import 'package:school_asignment_app/common/utils/toast_utils.dart'; import 'package:school_asignment_app/common/utils/utils.dart'; import 'package:school_asignment_app/routes/app_pages.dart';