add
This commit is contained in:
@@ -76,19 +76,6 @@ func ReadHandler(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 验证查询条件至少有一个不为空
|
|
||||||
if req.CountryID == "" && req.Name == "" && req.Code == "" {
|
|
||||||
zap.L().Warn("⚠️ 请求参数验证失败",
|
|
||||||
zap.String("req_id", reqID),
|
|
||||||
zap.String("reason", "country_id、name、code不能同时为空"),
|
|
||||||
)
|
|
||||||
c.JSON(http.StatusBadRequest, ReadResponse{
|
|
||||||
Success: false,
|
|
||||||
Message: "请求参数错误:country_id、name、code不能同时为空",
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 处理分页参数默认值
|
// 处理分页参数默认值
|
||||||
page, err := strconv.Atoi(req.Page)
|
page, err := strconv.Atoi(req.Page)
|
||||||
if err != nil || page < 1 {
|
if err != nil || page < 1 {
|
||||||
|
|||||||
@@ -109,14 +109,17 @@ class _CountryPageState extends State<CountryPage> {
|
|||||||
final baseUrl = HostUtils().currentHost;
|
final baseUrl = HostUtils().currentHost;
|
||||||
final path = '/country/read';
|
final path = '/country/read';
|
||||||
final url = '$baseUrl$path';
|
final url = '$baseUrl$path';
|
||||||
|
// 打印请求基本信息
|
||||||
|
debugPrint('====== 开始请求国家列表 ======');
|
||||||
|
debugPrint('请求URL: $url');
|
||||||
|
debugPrint('请求参数: page=$_currentPage, page_size=$_pageSize');
|
||||||
|
|
||||||
final dio = Dio();
|
final dio = Dio();
|
||||||
final response = await dio.get(
|
final response = await dio.post(
|
||||||
url,
|
url,
|
||||||
queryParameters: {
|
queryParameters: {
|
||||||
'page': _currentPage,
|
'page': _currentPage,
|
||||||
'page_size': _pageSize,
|
'page_size': _pageSize,
|
||||||
// 为空时查询所有国家
|
|
||||||
'name': '',
|
'name': '',
|
||||||
'code': '',
|
'code': '',
|
||||||
'country_id': '',
|
'country_id': '',
|
||||||
@@ -124,6 +127,10 @@ class _CountryPageState extends State<CountryPage> {
|
|||||||
options: Options(headers: {'Content-Type': 'application/json'}),
|
options: Options(headers: {'Content-Type': 'application/json'}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 打印响应状态
|
||||||
|
debugPrint('请求成功,状态码: ${response.statusCode}');
|
||||||
|
debugPrint('响应数据: ${response.data}');
|
||||||
|
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
final CountryResponse countryResponse = CountryResponse.fromJson(
|
final CountryResponse countryResponse = CountryResponse.fromJson(
|
||||||
response.data,
|
response.data,
|
||||||
@@ -142,24 +149,36 @@ class _CountryPageState extends State<CountryPage> {
|
|||||||
_currentPage++;
|
_currentPage++;
|
||||||
_errorMessage = null;
|
_errorMessage = null;
|
||||||
});
|
});
|
||||||
|
// 打印数据处理结果
|
||||||
|
debugPrint('数据解析成功,当前列表总数: ${_countries.length}');
|
||||||
|
debugPrint('是否还有更多数据: $_hasMoreData,下一页: $_currentPage');
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
_errorMessage = countryResponse.message;
|
_errorMessage = countryResponse.message;
|
||||||
});
|
});
|
||||||
|
debugPrint('接口返回失败: ${countryResponse.message}');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
_errorMessage = '服务器响应异常: ${response.statusCode}';
|
_errorMessage = '服务器响应异常: ${response.statusCode}';
|
||||||
});
|
});
|
||||||
|
debugPrint('服务器响应异常: ${response.statusCode}');
|
||||||
}
|
}
|
||||||
} on DioException catch (e) {
|
} on DioException catch (e) {
|
||||||
String errorMsg = '网络请求失败';
|
String errorMsg = '网络请求失败';
|
||||||
if (e.response != null) {
|
if (e.response != null) {
|
||||||
errorMsg = '请求失败: ${e.response?.statusCode}';
|
errorMsg = '请求失败: ${e.response?.statusCode}';
|
||||||
|
debugPrint(
|
||||||
|
'请求错误,状态码: ${e.response?.statusCode},响应数据: ${e.response?.data}',
|
||||||
|
);
|
||||||
} else if (e.type == DioExceptionType.connectionTimeout) {
|
} else if (e.type == DioExceptionType.connectionTimeout) {
|
||||||
errorMsg = '连接超时,请检查网络';
|
errorMsg = '连接超时,请检查网络';
|
||||||
|
debugPrint('连接超时: ${e.message}');
|
||||||
} else if (e.type == DioExceptionType.connectionError) {
|
} else if (e.type == DioExceptionType.connectionError) {
|
||||||
errorMsg = '网络连接错误';
|
errorMsg = '网络连接错误';
|
||||||
|
debugPrint('网络连接错误: ${e.message}');
|
||||||
|
} else {
|
||||||
|
debugPrint('Dio异常: ${e.type},消息: ${e.message}');
|
||||||
}
|
}
|
||||||
setState(() {
|
setState(() {
|
||||||
_errorMessage = errorMsg;
|
_errorMessage = errorMsg;
|
||||||
@@ -168,21 +187,25 @@ class _CountryPageState extends State<CountryPage> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_errorMessage = '发生未知错误: $e';
|
_errorMessage = '发生未知错误: $e';
|
||||||
});
|
});
|
||||||
|
debugPrint('未知错误: $e');
|
||||||
} finally {
|
} finally {
|
||||||
setState(() {
|
setState(() {
|
||||||
_isLoading = false;
|
_isLoading = false;
|
||||||
});
|
});
|
||||||
|
debugPrint('====== 请求结束 ======\n');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 下拉刷新
|
// 下拉刷新
|
||||||
Future<void> _refresh() async {
|
Future<void> _refresh() async {
|
||||||
|
debugPrint('触发下拉刷新');
|
||||||
await _fetchCountries(isRefresh: true);
|
await _fetchCountries(isRefresh: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载更多
|
// 加载更多
|
||||||
void _loadMore() {
|
void _loadMore() {
|
||||||
if (!_isLoading && _hasMoreData) {
|
if (!_isLoading && _hasMoreData) {
|
||||||
|
debugPrint('触发加载更多,当前页: $_currentPage');
|
||||||
_fetchCountries();
|
_fetchCountries();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,12 +231,14 @@ class _CountryPageState extends State<CountryPage> {
|
|||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.add),
|
icon: const Icon(Icons.add),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
debugPrint('点击新增按钮,跳转到新增页面');
|
||||||
// 跳转到新增页面,返回时刷新列表
|
// 跳转到新增页面,返回时刷新列表
|
||||||
final result = await Navigator.push(
|
final result = await Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => const AddCountryPage()),
|
MaterialPageRoute(builder: (context) => const AddCountryPage()),
|
||||||
);
|
);
|
||||||
if (result == true) {
|
if (result == true) {
|
||||||
|
debugPrint('从新增页面返回,刷新列表数据');
|
||||||
_fetchCountries(isRefresh: true);
|
_fetchCountries(isRefresh: true);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:asset_assistant/pages/exchange_page.dart';
|
|
||||||
|
|
||||||
class HomePage extends StatelessWidget {
|
class HomePage extends StatelessWidget {
|
||||||
// 功能列表数据 - 为交易所项添加路由信息
|
// 功能列表数据 - 为交易所项添加路由信息
|
||||||
@@ -117,7 +116,7 @@ class HomePage extends StatelessWidget {
|
|||||||
// 点击事件处理 - 如果有路由信息则导航
|
// 点击事件处理 - 如果有路由信息则导航
|
||||||
if (route != null && context.mounted) {
|
if (route != null && context.mounted) {
|
||||||
// 使用路由路径进行导航
|
// 使用路由路径进行导航
|
||||||
Navigator.pushNamed(context, route!);
|
Navigator.pushNamed(context, route);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
|||||||
Reference in New Issue
Block a user