hyzp_ybqx-Commit066:一套APP适应多个区县,已经实现登录验证通过后,先等待预加载数据完成后,再跳转
This commit is contained in:
@@ -1,16 +1,19 @@
|
|||||||
|
import 'package:hyzp_ybqx/components/commonFun.dart';
|
||||||
|
|
||||||
import 'EncryptUtil.dart';
|
import 'EncryptUtil.dart';
|
||||||
import 'dart:convert';
|
import 'commonFun.dart';
|
||||||
|
|
||||||
class UserInfo {
|
class UserInfo {
|
||||||
UserInfo({this.mapUserInfoRet}) {
|
UserInfo({this.mapUserInfoRet}) {
|
||||||
setUserInfo(theMapUserInfoRet: mapUserInfoRet);
|
setUserInfo(theMapUserInfoRet: mapUserInfoRet);
|
||||||
}
|
}
|
||||||
|
|
||||||
setUserInfo({Map theMapUserInfoRet}) {
|
Future setUserInfo({Map theMapUserInfoRet}) async {
|
||||||
if (200 == theMapUserInfoRet["ret"]) {
|
if (200 == theMapUserInfoRet["ret"]) {
|
||||||
mapUserInfoRet = theMapUserInfoRet;
|
mapUserInfoRet = theMapUserInfoRet;
|
||||||
mapUserInfo = theMapUserInfoRet["data"];
|
mapUserInfo = theMapUserInfoRet["data"];
|
||||||
print('mapUserInfo = ${mapUserInfo.toString()}');
|
print('mapUserInfo = ${mapUserInfo.toString()}');
|
||||||
|
setQxInfo(mapUserInfo["qx_code"], mapUserInfo["qx_name"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -18,23 +21,107 @@ class UserInfo {
|
|||||||
setUserInfoFaceLogin(Map _mapGetData) {
|
setUserInfoFaceLogin(Map _mapGetData) {
|
||||||
mapUserInfo['user_id'] = _mapGetData['user_id'];
|
mapUserInfo['user_id'] = _mapGetData['user_id'];
|
||||||
mapUserInfo['token'] = _mapGetData['token'];
|
mapUserInfo['token'] = _mapGetData['token'];
|
||||||
|
setQxInfo(mapUserInfo["qx_code"], mapUserInfo["qx_name"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
setQxInfo(String _qx_code, String _qx_name) {
|
||||||
|
qx_code = int.parse(_qx_code.trim());
|
||||||
|
qx_name = _qx_name;
|
||||||
|
|
||||||
|
// 511528、兴文县
|
||||||
|
// int qx_code = 511528;
|
||||||
|
// String qx_name = '宜宾市兴文';
|
||||||
|
// String service_tel = '\n服务热线:187-8467-8300';
|
||||||
|
// String copyright_info = '© ' + qx_name + '生态环境局 四川省踏石科技 版权所有' + service_tel;
|
||||||
|
// String copyright_info_PinYin = 'YIBIN XINGWEN BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
// // 兴文县中心地址:天泉商城
|
||||||
|
// double center_latitude = 28.29678023715008; // 区县中心纬度
|
||||||
|
// double center_longitude = 105.24189826141459; // 区县中心经度
|
||||||
|
|
||||||
|
// 511501 市辖区
|
||||||
|
// 511502 翠屏区
|
||||||
|
// 511503 南溪区
|
||||||
|
// 511504 叙州区
|
||||||
|
// 511523 江安县
|
||||||
|
// 511524 长宁县
|
||||||
|
// 511525 高县
|
||||||
|
// 511526 珙县
|
||||||
|
// 511527 筠连县
|
||||||
|
// 511528 兴文县
|
||||||
|
// 511529 屏山县
|
||||||
|
|
||||||
|
// 511501、宜宾市生态环境局、四川省踏石科技,保留客服电话
|
||||||
|
// 511502、宜宾市翠屏生态环境局,去掉客服电话
|
||||||
|
// 511505、宜宾三江新区城乡融合发展局、四川省踏石科技,保留客服电话
|
||||||
|
// 511524、宜宾市长宁生态环境局,去掉客服电话
|
||||||
|
// 511528、宜宾市兴文生态环境局、四川省踏石科技,保留客服电话
|
||||||
|
// 511527、宜宾市筠连生态环境局、四川省踏石科技,保留客服电话
|
||||||
|
|
||||||
|
qx_name_long = '宜宾市' + trim_county(qx_name);
|
||||||
|
service_tel = '\n服务热线:187-8467-8300';
|
||||||
|
copyright_info = '© ' + qx_name_long + '生态环境局 四川省踏石科技 版权所有' + service_tel;
|
||||||
|
// 中心地址:宜宾市白塔山
|
||||||
|
center_latitude = 28.77914; // 区县中心纬度
|
||||||
|
center_longitude = 104.644079; // 区县中心经度
|
||||||
|
|
||||||
|
// App开发登录用户:
|
||||||
|
// 翠屏区:mancpq
|
||||||
|
// 三江新区:mansjxq
|
||||||
|
// 长宁县:mancnx
|
||||||
|
// 高县:mangx
|
||||||
|
// 筠连县:manjlx
|
||||||
|
// 兴文县:manxwx
|
||||||
|
switch (qx_code) {
|
||||||
|
case 511502: // 翠屏区
|
||||||
|
service_tel = '';
|
||||||
|
copyright_info = '© ' + qx_name_long + '生态环境局 版权所有' + service_tel;
|
||||||
|
copyright_info_PinYin = 'YIBIN CUIPING BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
break;
|
||||||
|
case 511505: // 三江新区
|
||||||
|
qx_name_long = '宜宾' + qx_name;
|
||||||
|
copyright_info = '© ' + qx_name_long + '城乡融合发展局 四川省踏石科技\n版权所有, ' + service_tel;
|
||||||
|
copyright_info_PinYin = 'YIBIN SANJIANG NEW AREA BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
break;
|
||||||
|
case 511524: // 长宁县
|
||||||
|
service_tel = '';
|
||||||
|
copyright_info = '© ' + qx_name_long + '生态环境局 版权所有' + service_tel;
|
||||||
|
copyright_info_PinYin = 'YIBIN CHANGNING BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
break;
|
||||||
|
case 511525: // 高县
|
||||||
|
copyright_info_PinYin = 'YIBIN GAOXIAN BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
break;
|
||||||
|
case 511527: // 筠连县
|
||||||
|
copyright_info_PinYin = 'YIBIN JUNLIAN BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
break;
|
||||||
|
case 511528: // 兴文县
|
||||||
|
copyright_info_PinYin = 'YIBIN XINGWEN BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
// 中心地址:天泉商城
|
||||||
|
center_latitude = 28.29678023715008; // 区县中心纬度
|
||||||
|
center_longitude = 105.24189826141459; // 区县中心经度
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 去除末尾的区县
|
||||||
|
String trim_county(String _name) {
|
||||||
|
return _name.substring(0, _name.length - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map mapUserInfoRet = {
|
Map mapUserInfoRet = {
|
||||||
"ret": 200,
|
"ret": 200,
|
||||||
"data": {
|
"data": {
|
||||||
"is_login": true,
|
"is_login": true,
|
||||||
"user_id": 1,
|
"user_id": 152,
|
||||||
"token": "B93EC91FA2FE293B7077162D4527FC4BB228CD6C0A4F24A882B9A8BBE6C3FB47"
|
"token": "959091E2A5E362E22F22F8DBE05737A95545A43AF28B19AB3DAD5F8557EE2E29",
|
||||||
|
"qx_code": "511528",
|
||||||
|
"qx_name": "兴文县"
|
||||||
},
|
},
|
||||||
"msg": ""
|
"msg": ""
|
||||||
};
|
};
|
||||||
|
|
||||||
Map mapUserInfo = {
|
Map mapUserInfo = {"is_login": false, "user_id": -1, "token": "", "qx_code": "", "qx_name": ""};
|
||||||
"is_login": false,
|
|
||||||
"user_id": -1,
|
|
||||||
"token": ""
|
|
||||||
};
|
|
||||||
|
|
||||||
//若list[i]为'',解密时会报错:aes decode error:RangeError: Value not in range: -16
|
//若list[i]为'',解密时会报错:aes decode error:RangeError: Value not in range: -16
|
||||||
String thisAndroidId = ''; //每个手机唯一的设备号
|
String thisAndroidId = ''; //每个手机唯一的设备号
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ import 'UserInfo.dart';
|
|||||||
// 511501、宜宾市
|
// 511501、宜宾市
|
||||||
// String APPkey = 'ijddvzgEGaxbzsbmCtpdohxHyrAArwJB'; // 宜宾市APPkey
|
// String APPkey = 'ijddvzgEGaxbzsbmCtpdohxHyrAArwJB'; // 宜宾市APPkey
|
||||||
// String service_tel = '\n服务热线:187-8467-8300';
|
// String service_tel = '\n服务热线:187-8467-8300';
|
||||||
// String qx_name = '宜宾';
|
// String yibin_QuXian = '宜宾';
|
||||||
// String copyright_info = '© ' + qx_name + '市生态环境局 四川省踏石科技有限公司 版权所有' + service_tel;
|
// String copyright_info = '© ' + yibin_QuXian + '市生态环境局 四川省踏石科技有限公司 版权所有' + service_tel;
|
||||||
// String copyright_info_PinYin = 'YIBIN BLACK SMOKE CAR CAPTURE SYSTEM';
|
// String copyright_info_PinYin = 'YIBIN BLACK SMOKE CAR CAPTURE SYSTEM';
|
||||||
|
|
||||||
// const serviceUrl_ybqx = 'http://125.64.218.67:9904'; // 宜宾市
|
// const serviceUrl_ybqx = 'http://125.64.218.67:9904'; // 宜宾市
|
||||||
@@ -74,6 +74,7 @@ const String setSphericalCameraUrl = 'http://125.64.218.67:9914/';
|
|||||||
// 一套APP适应多个区县,等用户登录后,会返回 qx_code、qx_name
|
// 一套APP适应多个区县,等用户登录后,会返回 qx_code、qx_name
|
||||||
int qx_code = -1;
|
int qx_code = -1;
|
||||||
String qx_name = '';
|
String qx_name = '';
|
||||||
|
String qx_name_long = '';
|
||||||
String service_tel = '';
|
String service_tel = '';
|
||||||
String copyright_info = '';
|
String copyright_info = '';
|
||||||
String copyright_info_PinYin = '';
|
String copyright_info_PinYin = '';
|
||||||
@@ -81,6 +82,18 @@ String copyright_info_PinYin = '';
|
|||||||
double center_latitude = -1; // 区县中心纬度
|
double center_latitude = -1; // 区县中心纬度
|
||||||
double center_longitude = -1; // 区县中心经度
|
double center_longitude = -1; // 区县中心经度
|
||||||
|
|
||||||
|
clear_user_info() {
|
||||||
|
qx_code = -1;
|
||||||
|
qx_name = '';
|
||||||
|
qx_name_long = '';
|
||||||
|
service_tel = '';
|
||||||
|
copyright_info = '';
|
||||||
|
copyright_info_PinYin = '';
|
||||||
|
// 区县中心地址
|
||||||
|
center_latitude = -1; // 区县中心纬度
|
||||||
|
center_longitude = -1; // 区县中心经度
|
||||||
|
}
|
||||||
|
|
||||||
// 511528、兴文县
|
// 511528、兴文县
|
||||||
// int qx_code = 511528;
|
// int qx_code = 511528;
|
||||||
// String qx_name = '宜宾市兴文';
|
// String qx_name = '宜宾市兴文';
|
||||||
@@ -220,6 +233,11 @@ UserInfo g_userInfo = UserInfo(mapUserInfoRet: {
|
|||||||
"msg": ""
|
"msg": ""
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 去除末尾的区县
|
||||||
|
String trim_county(String _name) {
|
||||||
|
return _name.substring(0, _name.length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
Future<Map> getMapFromJson(var response) async {
|
Future<Map> getMapFromJson(var response) async {
|
||||||
String _str = json.encode(response);
|
String _str = json.encode(response);
|
||||||
Map _map = json.decode(_str);
|
Map _map = json.decode(_str);
|
||||||
@@ -747,6 +765,13 @@ Widget getImageWidget() {
|
|||||||
color: Color.fromRGBO(49, 216, 123, 1),
|
color: Color.fromRGBO(49, 216, 123, 1),
|
||||||
fontWeight: FontWeight.bold)),
|
fontWeight: FontWeight.bold)),
|
||||||
),
|
),
|
||||||
|
SizedBox(height: ScreenUtil().setHeight(copyright_info.contains('\n') ? 50 : 90)),
|
||||||
|
Container(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: Text(copyright_info,
|
||||||
|
style: TextStyle(fontSize: 13, color: Color.fromRGBO(192, 192, 192, 1)),
|
||||||
|
textAlign: TextAlign.center),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
// child: Image.asset(
|
// child: Image.asset(
|
||||||
|
|||||||
@@ -475,7 +475,7 @@ Future getAllStatisData({String ip = '', String date = ''}) async {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//访问区县后台接口,需要统一添加区县代码参数
|
//访问区县后台接口,需要统一添加区县代码参数
|
||||||
map['qx_code'] = qx_code;
|
map['qxdm'] = qx_code;
|
||||||
|
|
||||||
Dio dio = Dio();
|
Dio dio = Dio();
|
||||||
String api = ServicePath.getStaAllUrl;
|
String api = ServicePath.getStaAllUrl;
|
||||||
@@ -735,7 +735,7 @@ Future getStatisData({@required String statisType, String ip = '', String date =
|
|||||||
}
|
}
|
||||||
|
|
||||||
//访问区县后台接口,需要统一添加区县代码参数
|
//访问区县后台接口,需要统一添加区县代码参数
|
||||||
map['qx_code'] = qx_code;
|
map['qxdm'] = qx_code;
|
||||||
|
|
||||||
Dio dio = Dio();
|
Dio dio = Dio();
|
||||||
String api = mapStatisType[statisType]['api'];
|
String api = mapStatisType[statisType]['api'];
|
||||||
@@ -1963,7 +1963,7 @@ Future getThePageList(
|
|||||||
}
|
}
|
||||||
|
|
||||||
//访问区县后台接口,需要统一添加区县代码参数
|
//访问区县后台接口,需要统一添加区县代码参数
|
||||||
map['qx_code'] = qx_code;
|
map['qxdm'] = qx_code;
|
||||||
|
|
||||||
print('mapHyshlx[theHyshlx][api] = ${mapHyshlx[theHyshlx]['api']}');
|
print('mapHyshlx[theHyshlx][api] = ${mapHyshlx[theHyshlx]['api']}');
|
||||||
// mapHyshlx[theHyshlx][api] = http://125.64.218.67:9904/?s=App.Car_Hyc.GetList
|
// mapHyshlx[theHyshlx][api] = http://125.64.218.67:9904/?s=App.Car_Hyc.GetList
|
||||||
|
|||||||
+2
-4
@@ -8,7 +8,6 @@ import 'package:flutter_bmfbase/BaiduMap/bmfmap_base.dart' show BMFMapSDK, BMF_C
|
|||||||
import 'package:flutter_screenutil/screenutil_init.dart';
|
import 'package:flutter_screenutil/screenutil_init.dart';
|
||||||
import 'package:hyzp_ybqx/pages/Login/LoginTabs2.dart';
|
import 'package:hyzp_ybqx/pages/Login/LoginTabs2.dart';
|
||||||
import 'package:hyzp_ybqx/pages/MyMsics/05_updated/MyUpdatedNew.dart';
|
import 'package:hyzp_ybqx/pages/MyMsics/05_updated/MyUpdatedNew.dart';
|
||||||
import 'package:hyzp_ybqx/pages/Works/TJXX/tj_data.dart';
|
|
||||||
import 'package:package_info/package_info.dart';
|
import 'package:package_info/package_info.dart';
|
||||||
// 引入provider
|
// 引入provider
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@@ -65,7 +64,7 @@ class _MyAppState extends State<MyApp> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
initApp(); // 1、处理百度地图sdk初始化鉴权
|
initApp(); // 1、处理百度地图sdk初始化鉴权
|
||||||
startGetStatisDataNew(); // 2、登录前提前获取统计数据,改善用户登录体验
|
// startGetStatisDataNew(); // 2、登录前提前获取统计数据,改善用户登录体验
|
||||||
// 3、处理版本更新
|
// 3、处理版本更新
|
||||||
PackageInfo.fromPlatform().then((PackageInfo packageInfo) async {
|
PackageInfo.fromPlatform().then((PackageInfo packageInfo) async {
|
||||||
String appName = packageInfo.appName;
|
String appName = packageInfo.appName;
|
||||||
@@ -250,8 +249,7 @@ class _SplashScreenState extends State<SplashScreen> {
|
|||||||
// 屏幕高度
|
// 屏幕高度
|
||||||
// child: Image.asset('assets/images/hyzp_ybqx00_yibin_launche.png', fit: BoxFit.cover),
|
// child: Image.asset('assets/images/hyzp_ybqx00_yibin_launche.png', fit: BoxFit.cover),
|
||||||
// child: Image.asset('assets/images/hyzp_ybqx01_cuiping_launche.png', fit: BoxFit.cover),
|
// child: Image.asset('assets/images/hyzp_ybqx01_cuiping_launche.png', fit: BoxFit.cover),
|
||||||
child: Image.asset('assets/images/hyzp_ybqx_launche.png',
|
child: Image.asset('assets/images/hyzp_ybqx_launche.png', fit: BoxFit.cover)),
|
||||||
fit: BoxFit.cover)),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class _LoginPageState extends State<LoginByName2> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//处理延迟登录
|
// 一套APP适应多个区县登录过程05、处理延迟登录。等待预加载数据成功后,进行页面跳转
|
||||||
updateMayLogin() {
|
updateMayLogin() {
|
||||||
//判断从网络获取三种统计数据是否完成
|
//判断从网络获取三种统计数据是否完成
|
||||||
// if (listZptjStatisAlone.length >= dwSum &&
|
// if (listZptjStatisAlone.length >= dwSum &&
|
||||||
@@ -99,11 +99,16 @@ class _LoginPageState extends State<LoginByName2> {
|
|||||||
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
if (!bMayLogin) {
|
// if (!bMayLogin) {
|
||||||
bPreLoading = true;
|
// bPreLoading = true;
|
||||||
try_setState();
|
// try_setState();
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
// 一套APP适应多个区县登录过程01、显示“加载中 ...”
|
||||||
|
bPreLoading = true;
|
||||||
|
try_setState();
|
||||||
|
|
||||||
|
// 一套APP适应多个区县登录过程02、进行登录验证,保存登录信息
|
||||||
if (bRemmberPW) {
|
if (bRemmberPW) {
|
||||||
Storage.setBool('bRemmberPW', bRemmberPW);
|
Storage.setBool('bRemmberPW', bRemmberPW);
|
||||||
//加密保存
|
//加密保存
|
||||||
@@ -158,9 +163,17 @@ class _LoginPageState extends State<LoginByName2> {
|
|||||||
if (true == response.data["data"]["is_login"]) {
|
if (true == response.data["data"]["is_login"]) {
|
||||||
print('登录成功');
|
print('登录成功');
|
||||||
print('response.data = ${response.data}');
|
print('response.data = ${response.data}');
|
||||||
//保存用户信息
|
|
||||||
|
// 一套APP适应多个区县登录过程03、登录成功,保存登录信息
|
||||||
Storage.setString('userInfo', json.encode(response.data["data"]));
|
Storage.setString('userInfo', json.encode(response.data["data"]));
|
||||||
g_userInfo.setUserInfo(theMapUserInfoRet: await getMapFromJson(response.data));
|
g_userInfo
|
||||||
|
.setUserInfo(theMapUserInfoRet: await getMapFromJson(response.data))
|
||||||
|
.then((value) {
|
||||||
|
// 一套APP适应多个区县登录过程04、登录成功,开始使用保存的登录信息预加载数据,并设置bLoginVerify = true
|
||||||
|
bLoginVerify = true; //处理延时登录,判断用户名登录是否验证通过
|
||||||
|
startGetStatisDataNew(); // 2、登录前提前获取统计数据,改善用户登录体验
|
||||||
|
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
||||||
|
});
|
||||||
//获取用户所属分组和相应权限
|
//获取用户所属分组和相应权限
|
||||||
// getUserGroupAll().then((value) {
|
// getUserGroupAll().then((value) {
|
||||||
// bLoginVerify = true; //处理延时登录,判断用户名登录是否验证通过
|
// bLoginVerify = true; //处理延时登录,判断用户名登录是否验证通过
|
||||||
@@ -171,8 +184,9 @@ class _LoginPageState extends State<LoginByName2> {
|
|||||||
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
bLoginVerify = true; //处理延时登录,判断用户名登录是否验证通过
|
|
||||||
Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
// bLoginVerify = true; //处理延时登录,判断用户名登录是否验证通过
|
||||||
|
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
|
||||||
} else {
|
} else {
|
||||||
print('登录失败:${response.data["data"]}');
|
print('登录失败:${response.data["data"]}');
|
||||||
bLoginVerify = false; //处理延时登录,判断用户名登录是否验证通过
|
bLoginVerify = false; //处理延时登录,判断用户名登录是否验证通过
|
||||||
|
|||||||
Reference in New Issue
Block a user