no message
This commit is contained in:
parent
85aa842a9a
commit
48e842f113
|
|
@ -1,5 +1,8 @@
|
||||||
import 'package:dio/dio.dart' hide Headers;
|
import 'package:dio/dio.dart' hide Headers;
|
||||||
import 'package:retrofit/retrofit.dart';
|
import 'package:retrofit/retrofit.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/app_version_model.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/base_app_version.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/base_page_data.dart';
|
||||||
import 'package:school_asignment_app/common/job/enum_subject.dart';
|
import 'package:school_asignment_app/common/job/enum_subject.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
||||||
import 'package:school_asignment_app/common/job/work_student.dart';
|
import 'package:school_asignment_app/common/job/work_student.dart';
|
||||||
|
|
@ -12,6 +15,12 @@ part 'retrofit_client.g.dart';
|
||||||
abstract class RetrofitClient {
|
abstract class RetrofitClient {
|
||||||
factory RetrofitClient(Dio dio, {String? baseUrl}) = _RetrofitClient;
|
factory RetrofitClient(Dio dio, {String? baseUrl}) = _RetrofitClient;
|
||||||
|
|
||||||
|
/* start 系统系列接口 */
|
||||||
|
@POST("/api/infra/AppVersion/GetList")
|
||||||
|
Future<BasePageData<AppVersionModel>?> getAppVersions(@Body() BaseAppVersion appVersion);
|
||||||
|
|
||||||
|
/* start 系统系列接口 */
|
||||||
|
|
||||||
@POST("/api/rbac/Auth/Login")
|
@POST("/api/rbac/Auth/Login")
|
||||||
Future toLogin(@Field() String account, @Field() String password);
|
Future toLogin(@Field() String account, @Field() String password);
|
||||||
|
|
||||||
|
|
@ -22,5 +31,5 @@ abstract class RetrofitClient {
|
||||||
Future<WorkStudent> getWorkList(@Queries() WorkStudentParams params);
|
Future<WorkStudent> getWorkList(@Queries() WorkStudentParams params);
|
||||||
|
|
||||||
@GET("/api/app/Common/GetEnumInfos")
|
@GET("/api/app/Common/GetEnumInfos")
|
||||||
Future<Map<String,List<EnumSubject>>> getEnumSubjectList(@Query('enumNames') String enumNames);
|
Future<Map<String, List<EnumSubject>>> getEnumSubjectList(@Query('enumNames') String enumNames);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
import 'package:school_asignment_app/common/job/user_info.dart';
|
|
||||||
import 'package:school_asignment_app/common/request/rest_dio.dart';
|
|
||||||
|
|
||||||
import '../job/common/base_structure_result.dart';
|
|
||||||
import 'retrofit_client.dart';
|
|
||||||
|
|
||||||
class UserApi {
|
|
||||||
// static Future<BaseStructureResult<dynamic>> toLogin({required String loginName, required String password}) async {
|
|
||||||
// var response = await RestDio.instance
|
|
||||||
// .post('/auth/login/exam-marking/user', data: {'loginName': loginName, 'password': password});
|
|
||||||
// return BaseStructureResult.fromJson(response, (response) => response);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 获取用户信息
|
|
||||||
// static Future<BaseStructureResult<UserInfo>> getUserInfo() async {
|
|
||||||
// var response = await RestDio.instanime.get('/auth/info/cur-user');
|
|
||||||
// return BaseStructureResult.fromJson(response, (response) => UserInfo.fromJson(response));
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
@ -15,4 +15,6 @@ class AppConfig {
|
||||||
/// ui width
|
/// ui width
|
||||||
static const UI_HEIGHT = 812.0;
|
static const UI_HEIGHT = 812.0;
|
||||||
|
|
||||||
|
static const SKIP_UPDATING_USER = '18888888888';
|
||||||
|
static const APP_NAME = '18888888888';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'app_version_model.g.dart';
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class AppVersionModel extends Object {
|
||||||
|
AppVersionModel();
|
||||||
|
|
||||||
|
factory AppVersionModel.fromJson(Map<String, dynamic> srcJson) => _$AppVersionModelFromJson(srcJson);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$AppVersionModelToJson(this);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/base_page.dart';
|
||||||
|
|
||||||
|
part 'base_app_version.g.dart';
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class BaseAppVersion extends BasePage {
|
||||||
|
@JsonKey(name: 'AppName')
|
||||||
|
String appName;
|
||||||
|
|
||||||
|
// 1 安卓 2 IOS
|
||||||
|
@JsonKey(name: 'FtuType')
|
||||||
|
int ftuType;
|
||||||
|
|
||||||
|
BaseAppVersion(this.appName, this.ftuType, super.page, super.limit);
|
||||||
|
|
||||||
|
factory BaseAppVersion.fromJson(Map<String, dynamic> srcJson) => _$BaseAppVersionFromJson(srcJson);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$BaseAppVersionToJson(this);
|
||||||
|
}
|
||||||
|
|
@ -10,22 +10,20 @@ import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
part 'base_page.g.dart';
|
part 'base_page.g.dart';
|
||||||
|
|
||||||
|
|
||||||
@JsonSerializable()
|
@JsonSerializable()
|
||||||
class BasePage extends Object {
|
class BasePage extends Object {
|
||||||
|
@JsonKey(name: 'PageNumber')
|
||||||
@JsonKey(name: 'Page')
|
|
||||||
int page;
|
int page;
|
||||||
|
|
||||||
@JsonKey(name: 'Limit')
|
@JsonKey(name: 'PageSize')
|
||||||
int limit;
|
int limit;
|
||||||
|
|
||||||
BasePage(this.page,this.limit,);
|
BasePage(
|
||||||
|
this.page,
|
||||||
|
this.limit,
|
||||||
|
);
|
||||||
|
|
||||||
factory BasePage.fromJson(Map<String, dynamic> srcJson) => _$BasePageFromJson(srcJson);
|
factory BasePage.fromJson(Map<String, dynamic> srcJson) => _$BasePageFromJson(srcJson);
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$BasePageToJson(this);
|
Map<String, dynamic> toJson() => _$BasePageToJson(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,19 +11,18 @@ import 'package:json_annotation/json_annotation.dart';
|
||||||
part 'base_page_data.g.dart';
|
part 'base_page_data.g.dart';
|
||||||
|
|
||||||
@JsonSerializable(genericArgumentFactories: true, fieldRename: FieldRename.snake)
|
@JsonSerializable(genericArgumentFactories: true, fieldRename: FieldRename.snake)
|
||||||
class BasePageData<T> extends Object {
|
class BasePageData<T> extends Object {
|
||||||
|
|
||||||
@JsonKey(name: 'items')
|
@JsonKey(name: 'items')
|
||||||
List<T> items;
|
List<T> items;
|
||||||
|
|
||||||
@JsonKey(name: 'total')
|
@JsonKey(name: 'totalCount')
|
||||||
int total;
|
int total;
|
||||||
|
|
||||||
BasePageData(this.items,this.total,);
|
BasePageData(
|
||||||
|
this.items,
|
||||||
|
this.total,
|
||||||
|
);
|
||||||
|
|
||||||
|
factory BasePageData.fromJson(Map<String, dynamic> json, T Function(dynamic json) fromJsonT) => _$BasePageDataFromJson(json, fromJsonT);
|
||||||
factory BasePageData.fromJson( Map<String, dynamic> json, T Function(dynamic json) fromJsonT) => _$BasePageDataFromJson(json, fromJsonT);
|
|
||||||
Map<String, dynamic> toJson(Object Function(T value) toJsonT) => _$BasePageDataToJson(this, toJsonT);
|
Map<String, dynamic> toJson(Object Function(T value) toJsonT) => _$BasePageDataToJson(this, toJsonT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,14 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:package_info/package_info.dart';
|
||||||
|
import 'package:school_asignment_app/common/config/app_config.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/app_version_model.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/base_app_version.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/common/base_page_data.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info.dart';
|
import 'package:school_asignment_app/common/job/user_info.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
||||||
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||||
|
|
@ -16,8 +22,6 @@ import 'package:school_asignment_app/page/work_page/work_logic.dart';
|
||||||
import 'package:school_asignment_app/page/work_page/work_view.dart';
|
import 'package:school_asignment_app/page/work_page/work_view.dart';
|
||||||
import 'package:school_asignment_app/routes/app_pages.dart';
|
import 'package:school_asignment_app/routes/app_pages.dart';
|
||||||
|
|
||||||
import '../../common/utils/storage.dart';
|
|
||||||
|
|
||||||
class StartPage extends StatefulWidget {
|
class StartPage extends StatefulWidget {
|
||||||
const StartPage({Key? key}) : super(key: key);
|
const StartPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
|
@ -132,9 +136,10 @@ class _StartPageState extends State<StartPage> {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PageIndexState {
|
class PageIndexState {
|
||||||
PageIndexState({required this.pageController});
|
PageIndexState({required this.pageController, this.showUpgrade = false});
|
||||||
|
|
||||||
RxInt pageIndex = 0.obs;
|
RxInt pageIndex = 0.obs;
|
||||||
|
bool showUpgrade;
|
||||||
|
|
||||||
//文本输入框控制器
|
//文本输入框控制器
|
||||||
final PageController pageController;
|
final PageController pageController;
|
||||||
|
|
@ -143,6 +148,44 @@ class PageIndexState {
|
||||||
class PageIndexController extends GetxController with RequestToolMixin {
|
class PageIndexController extends GetxController with RequestToolMixin {
|
||||||
late PageIndexState _pageIndexState;
|
late PageIndexState _pageIndexState;
|
||||||
|
|
||||||
|
void getAppUpgrade(UserInfoDetail user) async {
|
||||||
|
try {
|
||||||
|
_pageIndexState.showUpgrade = true;
|
||||||
|
if (user.name == AppConfig.SKIP_UPDATING_USER) return;
|
||||||
|
// 获取设备信息
|
||||||
|
String deviceInfo = "android";
|
||||||
|
int deviceType;
|
||||||
|
if (Platform.isAndroid) {
|
||||||
|
deviceType = 1;
|
||||||
|
} else if (Platform.isIOS) {
|
||||||
|
deviceInfo = "ios";
|
||||||
|
deviceType = 2;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var params = BaseAppVersion(AppConfig.APP_NAME, deviceType, 1, 1);
|
||||||
|
BasePageData<AppVersionModel>? result = await getClient().getAppVersions(params);
|
||||||
|
if (result != null && result.total == 1) {
|
||||||
|
//获取当前版本
|
||||||
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||||||
|
//获取当前版本
|
||||||
|
String localVersion = packageInfo.version;
|
||||||
|
String appName = packageInfo.appName; //应用名称
|
||||||
|
String packageName = packageInfo.packageName; //包名称
|
||||||
|
// String buildNumber = packageInfo.buildNumber; //小版本号
|
||||||
|
AppVersionModel data = result.items[0];
|
||||||
|
// Map json = {'downloadPath': data.apkUrl, 'version': data.version, 'systemType': deviceType, 'description': data.description};
|
||||||
|
// UpdateAppEvent updateAppEvent = UpdateAppEvent.fromJson(json, localVersion, deviceInfo, appName, packageName, typeName: 'systemType');
|
||||||
|
// if (updateAppEvent.upgrade) {
|
||||||
|
// await UpdateDialog.showUpdateDialog(context, updateAppEvent);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
} finally {
|
||||||
|
_pageIndexState.showUpgrade = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
_pageIndexState = PageIndexState(pageController: PageController());
|
_pageIndexState = PageIndexState(pageController: PageController());
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
import 'package:dio/dio.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:school_asignment_app/common/api/user_api.dart';
|
|
||||||
import 'package:school_asignment_app/common/job/common/base_structure_result.dart';
|
|
||||||
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/mixins/request_tool_mixin.dart';
|
||||||
import 'package:school_asignment_app/common/store/user_store.dart';
|
import 'package:school_asignment_app/common/store/user_store.dart';
|
||||||
import 'package:school_asignment_app/common/utils/storage.dart';
|
import 'package:school_asignment_app/common/utils/storage.dart';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue