优化套餐显示逻辑新增多语言

This commit is contained in:
2025-10-18 15:25:28 +08:00
parent a3b7c418b1
commit 89c7334caf
11 changed files with 198 additions and 77 deletions
+49 -39
View File
@@ -44,14 +44,9 @@ class HttpUtil {
/// 对dio进行配置
void initDio() {
Loggy.initLoggy(logPrinter: _KRSimpleLogPrinter());
_dio.interceptors.add(LoggyDioInterceptor(requestBody: true));
// 不使用 Loggy,改用自定义简洁拦截器
_dio.interceptors.add(_KRSimpleHttpInterceptor());
_dio.options.baseUrl = AppConfig.getInstance().baseUrl;
// 添加日志拦截器
_dio.interceptors.add(LoggyDioInterceptor(
requestBody: true,
responseBody: true,
));
// 设置连接超时时间
_dio.options.connectTimeout = const Duration(seconds: 60);
@@ -246,55 +241,70 @@ class HttpUtil {
}
}
/// 拦截器
/// 拦截器(简洁格式,无边框)
class MyInterceptor extends Interceptor {
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
KRLogUtil.kr_d(
'>>> Request │ ${options.method}${options.uri}\n'
'╔ Headers\n'
'${options.headers}\n'
'╚════════════════════════════════════════════════════════════════════════════════════════╝\n'
'╔ Body\n'
'${options.data}\n'
'╚════════════════════════════════════════════════════════════════════════════════════════╝',
tag: 'DioLoggy');
print('>>> Request │ ${options.method}${options.uri}');
if (options.data != null) {
print('Body: ${options.data}');
}
handler.next(options);
}
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
KRLogUtil.kr_d(
'<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}\n'
'Body\n'
'${response.data}\n'
'╚════════════════════════════════════════════════════════════════════════════════════════╝',
tag: 'DioLoggy');
print('<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}');
if (response.data != null) {
print('Body: ${response.data}');
}
handler.next(response);
}
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
KRLogUtil.kr_e(
'<<< Error ${err.requestOptions.method}${err.requestOptions.uri}\n'
'╔ Error Type\n'
' ${err.type}\n'
'╚════════════════════════════════════════════════════════════════════════════════════════╝\n'
'╔ Error Message\n'
'${err.message}\n'
'╚════════════════════════════════════════════════════════════════════════════════════════╝\n'
'╔ Response Data\n'
'${err.response?.data}\n'
'╚════════════════════════════════════════════════════════════════════════════════════════╝',
tag: 'DioLoggy');
print('<<< Error │ ${err.requestOptions.method}${err.requestOptions.uri}');
print('Error Type: ${err.type}');
if (err.message != null) {
print('Error Message: ${err.message}');
}
if (err.response?.data != null) {
print('Response Data: ${err.response?.data}');
}
handler.next(err);
}
}
/// 自定义简洁日志打印机(无边框符号)
class _KRSimpleLogPrinter extends LoggyPrinter {
/// 自定义简洁 HTTP 拦截器(无边框符号)
class _KRSimpleHttpInterceptor extends Interceptor {
@override
void onLog(LogRecord record) {
print(record.message);
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
print('>>> Request │ ${options.method}${options.uri}');
if (options.data != null) {
print('Body: ${options.data}');
}
handler.next(options);
}
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
print('<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}');
if (response.data != null) {
print('Body: ${response.data}');
}
handler.next(response);
}
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
print('<<< Error │ ${err.requestOptions.method}${err.requestOptions.uri}');
print('Error Type: ${err.type}');
if (err.message != null) {
print('Error Message: ${err.message}');
}
if (err.response?.data != null) {
print('Response Data: ${err.response?.data}');
}
handler.next(err);
}
}