@@ -3,6 +3,7 @@ import 'package:get/get.dart';
33import 'package:myappflutter/core/config/app_routes.dart' ;
44import 'package:myappflutter/core/utils/log_util.dart' ;
55import 'package:myappflutter/data/api/http_client.dart' ;
6+ import 'package:myappflutter/data/models/version_model.dart' ;
67import '../widgets/base_page.dart' ;
78
89class AppVersionPage extends StatefulWidget {
@@ -14,7 +15,7 @@ class AppVersionPage extends StatefulWidget {
1415
1516class _AppVersionPageState extends State <AppVersionPage > {
1617final HttpClient _httpClient= HttpClient ();
17- List <dynamic > _versions= [];
18+ List <Version > _versions= [];
1819bool _isLoading= false ;
1920bool _hasMore= true ;
2021int _currentPage= 0 ;
@@ -42,28 +43,35 @@ class _AppVersionPageState extends State<AppVersionPage> {
4243final response= await _httpClient.get ('/app/versions' );
4344
4445if (response['code' ]== 200 && response['data' ]!= null ) {
45- final data = response['data' ];
46- final List <dynamic > newVersions= data[ 'versions' ] ?? [] ;
46+ final List < dynamic > versionData = response['data' ][ 'versions' ] ?? [ ];
47+ final List <Version > newVersions= versionData. map < Version >((item) => Version . fromJson (item)). toList () ;
4748
4849setState (() {
4950 _versions.addAll (newVersions);
5051 _currentPage++ ;
5152 _hasMore= newVersions.length== _pageSize;
5253 });
5354 }else {
54- Get .snackbar ('error' .tr,'fetch_version_failed' .tr+ ': ${response ['message' ] ??'unknown_error' .tr }' );
55+ Get .snackbar (
56+ 'error' .tr,
57+ 'fetch_version_failed' .tr+
58+ ': ${response ['message' ] ??'unknown_error' .tr }' ,
59+ );
5560 }
5661 }catch (e) {
5762LogUtil .error ('获取版本列表异常: $e ' );
58- Get .snackbar ('error' .tr,'fetch_version_failed' .tr+ ', ' + 'retry_later' .tr);
63+ Get .snackbar (
64+ 'error' .tr,
65+ 'fetch_version_failed' .tr+ ', ' + 'retry_later' .tr,
66+ );
5967 }finally {
6068setState (() {
6169 _isLoading= false ;
6270 });
6371 }
6472 }
6573
66- Widget _buildVersionCard (Map < String , dynamic > version) {
74+ Widget _buildVersionCard (Version version) {
6775return Card (
6876 margin: const EdgeInsets .symmetric (vertical: 8 , horizontal: 16 ),
6977 child: Padding (
@@ -75,13 +83,13 @@ class _AppVersionPageState extends State<AppVersionPage> {
7583 mainAxisAlignment: MainAxisAlignment .spaceBetween,
7684 children: [
7785Text (
78- '${'version' .tr } ${version [ ' version' ] }' ,
86+ '${'version' .tr } ${version . version }' ,
7987 style: const TextStyle (
8088 fontSize: 18 ,
8189 fontWeight: FontWeight .bold,
8290 ),
8391 ),
84- if (version[ ' forceUpdate' ] == true )
92+ if (version. forceUpdate== true )
8593Container (
8694 padding: const EdgeInsets .symmetric (
8795 horizontal: 8 ,
@@ -103,17 +111,14 @@ class _AppVersionPageState extends State<AppVersionPage> {
103111 ],
104112 ),
105113const SizedBox (height: 8 ),
106- Text ('${'release_date' .tr }: ${version [ ' releaseDate' ] }' ),
114+ Text ('${'release_date' .tr }: ${version . releaseDate }' ),
107115const SizedBox (height: 8 ),
108- Text ('${'update_content' .tr }: ${version [ ' releaseNotes' ] }' ),
116+ Text ('${'update_content' .tr }: ${version . releaseNotes }' ),
109117const SizedBox (height: 12 ),
110118ElevatedButton (
111119 onPressed: () {
112120// 跳转到更新页面,传递整个version对象
113- Get .toNamed (
114- AppRoutes .UPDATE ,
115- arguments: {'version' : version},
116- );
121+ Get .toNamed (AppRoutes .UPDATE , arguments: {'version' : version});
117122 },
118123 child: Text ('update_app' .tr),
119124 ),