This commit is contained in:
wyf
2025-08-12 10:26:30 +08:00
parent 101b60611a
commit b528ab950d
16 changed files with 78 additions and 224 deletions

View File

@@ -15,201 +15,6 @@ class ApiService {
static Dio reservation = Dio();
static void init() {
// 添加全局配置如基础URL、
// 拦截器等
// dio.httpClientAdapter = IOHttpClientAdapter(
// createHttpClient: () {
// final client = HttpClient();
// client.badCertificateCallback =
// (X509Certificate cert, String host, int port) {
// return true; // Verify the certificate.
// };
// return client;
// },
// );
// request.options.baseUrl = CommonVariables.apiUrl;
// request.options.connectTimeout = const Duration(seconds: 15);
// request.options.receiveTimeout = const Duration(seconds: 10);
// request.options.sendTimeout = const Duration(seconds: 10);
// dio.options.headers['Content-Type'] = "application/json";
// dio.options.headers['Token'] = "1";
// 添加其他配置...
// 添加拦截器(可选)
// request.interceptors.add(InterceptorsWrapper(
// onRequest: (options, handler) {
// print("---> ${options.method}, ${options.path}, ${options.data}");
// options.headers['token'] = Get.find<UserInfoController>().model.token;
// print("${options.headers['token']}");
// return handler.next(options);
// },
// onResponse: (response, ResponseInterceptorHandler handler) {
// // 在响应处理前的操作,例如解析响应数据
// // if (response.realUri.toString().contains("/login")) {
// // String? token = response.headers.value('token');
// // if (token != null) {
// // print("token = ${token}");
// // Get.find<GlobalController>().token.value = token;
// // }
// // }
// print("<--- ${response.statusCode}, ${response.data}");
// if (response.data is Map) {
// if (response.data['code'] == HttpStatusCodes.ok) {
// return handler.next(response);
// } else {
// if (response.data['code'] == 10011) {
// Get.offAndToNamed(
// "/loginPage",
// );
// GlobalController globalController = Get.find<GlobalController>();
// globalController.resetParmAll();
// showCustomConfirmDialog(Get.context!, "当前用户已在别处登录,请确认账号密码安全!",
// btnName: "确定", icon: ConfirmDialogIcon.warn)
// .then((d) {
// if (d == "confirm") {
// Get.back();
// }
// });
// } else if (response.data['code'] == 11004) {
// showCustomConfirmAndCancelDialog(Get.context!, "当前用户已登录,是否重新登录",
// confirmName: "确定", cancelName: "取消")
// .then((d) async {
// if (d == "confirm") {
// LoginController loginController = Get.find();
// loginController.model.forceLogin = 1;
// String msg = await loginController.login(Get.context!);
// if (msg == null || msg.isEmpty) {
// Get.offAndToNamed("/mianPageBottomChange");
// }
// } else if (d == "cancel") {
// // Get.offAndToNamed(
// // "/loginPage",
// // );
// Get.back();
// }
// });
// } else if (response.data['code'] == 10009 ||
// response.data['code'] == 11007 ||
// response.data['code'] == 11008) {
// // 有可能对象获取不到所以try catch包住
// try {
// GlobalController globalController =
// Get.find<GlobalController>();
// globalController.resetParmAll();
// UserInfoController userInfoController =
// Get.find<UserInfoController>();
// userInfoController.model.token = null;
// userInfoController.model.user = null;
// userInfoController.model.login = 0;
// userInfoController.model.message = 0;
// LoginController loginController = Get.find();
// loginController.model.account = null;
// loginController.model.password = null;
// loginController.model.phone = null;
// loginController.model.code = null;
// } catch (e) {
// print(e);
// }
// final box = GetStorage();
// box.remove('user');
// box.remove('token');
// showToast(response.data["msg"]);
// } else if (response.data['code'] == 11005) {
// if (response.data['code'] == 11005) {
// var authUserData = response.data['data'];
// AuthBindTelController authBindTelController = Get.find();
// authBindTelController.model.authUserInfo = authUserData;
// Get.toNamed("/auth_bind_tel");
// }
// } else {
// showToast(response.data["msg"]);
// }
// return handler.reject(
// DioException(
// requestOptions: RequestOptions(data: response.data['msg']),
// message: response.data['msg']),
// );
// }
// }
// return handler.next(response);
// },
// onError: (e, handler) {
// // 错误处理,例如打印错误信息
// showToast("网络异常或服务连接异常,请稍候再试", color: color_error);
// print("DioError: $e");
// return handler.reject(e);
// },
// ));
// requestNoInfo.options.baseUrl = CommonVariables.apiUrl;
// requestNoInfo.options.connectTimeout = const Duration(seconds: 15);
// requestNoInfo.options.receiveTimeout = const Duration(seconds: 10);
// requestNoInfo.options.sendTimeout = const Duration(seconds: 10);
// requestNoInfo.interceptors.add(InterceptorsWrapper(
// onRequest: (options, handler) {
// print("---> ${options.method}, ${options.path}, ${options.data}");
// options.headers['token'] = Get.find<UserInfoController>().model.token;
// print("${options.headers['token']}");
// return handler.next(options);
// },
// onResponse: (response, ResponseInterceptorHandler handler) {
// // 在响应处理前的操作,例如解析响应数据
// // if (response.realUri.toString().contains("/login")) {
// // String? token = response.headers.value('token');
// // if (token != null) {
// // print("token = ${token}");
// // Get.find<GlobalController>().token.value = token;
// // }
// // }
// print("<--- ${response.statusCode}, ${response.data}");
// if (response.data is Map) {
// if (response.data['code'] == HttpStatusCodes.ok) {
// return handler.next(response);
// } else {
// // showToast(response.data["msg"]);
// return handler.reject(
// DioException(
// requestOptions: RequestOptions(data: response.data['msg']),
// message: response.data['msg'],
// ),
// );
// }
// }
// return handler.next(response);
// },
// onError: (e, handler) {
// // 错误处理,例如打印错误信息
// showToast("网络异常或服务连接异常,请稍候再试", color: color_error);
// print("DioError: $e");
// return handler.reject(e);
// },
// ));
// requestNoError.options.baseUrl = CommonVariables.apiUrl;
// requestNoError.options.connectTimeout = const Duration(seconds: 5);
// requestNoError.options.receiveTimeout = const Duration(seconds: 3);
// requestNoError.options.sendTimeout = const Duration(seconds: 3);
// requestNoError.interceptors.add(InterceptorsWrapper(
// onRequest: (options, handler) {
// print(
// "requestNoError---> ${options.method}, ${options.path}, ${options.data}");
// options.headers['token'] = Get.find<UserInfoController>().model.token;
// print("${options.headers['token']}");
// return handler.next(options);
// },
// onResponse: (response, ResponseInterceptorHandler handler) {
// print("requestNoError<--- ${response.statusCode}, ${response.data}");
// return handler.next(response);
// },
// onError: (e, handler) {
// // 错误处理,例如打印错误信息
// print("requestNoError-->DioError: $e");
// return handler.reject(e);
// },
// ));
reservationInit();
}

View File

@@ -243,6 +243,17 @@ class LoginController extends GetControllerEx<LoginModel> {
final box = GetStorage();
box.write('token', token); // 存储 token
box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息
if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) {
Map data = {
'img': "assets/img/bgNoImg.png",
};
await Get.toNamed("/auth_bind_tel", arguments: data);
}
if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) {
userInfoController.model.login = 0;
}
}
return apiResponse;
}

View File

@@ -79,6 +79,7 @@ import 'package:vbvs_app/pages/mh_page/user/controller/bind_tel_controller.dart'
import 'package:vbvs_app/pages/mh_page/user/controller/mht_login_controller.dart';
import 'package:vbvs_app/pages/mh_page/user/controller/mht_register_controller.dart';
import 'package:vbvs_app/pages/mh_page/user/controller/update_password_controller.dart';
import 'package:vbvs_app/pages/mh_page/user/page/bind_tel_page.dart';
import 'package:vbvs_app/routers/mh_routers.dart';
import 'controller/mh_controller/apply_repair_controller.dart';
@@ -166,13 +167,13 @@ void initwebService() {
initLanguageSetting() async {
try {
Get.put(MHLanguageController());
Get.put(LanguageController());
int code = AppConstants().ent_type;
if (APPPackageType.MHT.code == code) {
Get.put(MHTHomeController());
MHLanguageController mhLanguageController = Get.find();
await mhLanguageController.initLanuageList();
} else {
Get.put(LanguageController());
LanguageController languageController = Get.find();
await languageController.initLanuageList();
}
@@ -186,7 +187,7 @@ Future<void> initWX() async {
Fluwx fluwx = Fluwx();
fluwx.registerApi(
//请填写自己的微信appid
// appId: "wxeb2688220799e2c5",//太和
// appId: "wxeb2688220799e2c5", //太和
appId: "wx929c548fea6af9c7", //眠花糖
doOnAndroid: true,
doOnIOS: true,
@@ -694,6 +695,7 @@ class MyApp extends StatelessWidget {
Get.lazyPut(() => MessageReviewController()),
Get.lazyPut(() => MessageSettingController()),
Get.lazyPut(() => CommonMessageSettingController()),
Get.lazyPut(() => AuthBindTelController()),
]));
}

View File

@@ -390,9 +390,8 @@ class _EPageState extends State<DeviceTypePage> {
if (type != null) {
if (type == 1) {
Get.toNamed("/blueteethDevice");
}
if (type == 2) {
TopSlideNotification.show(
}else{
TopSlideNotification.show(
context,
text: "待开发.提示".tr,
textColor: themeController.currentColor.sc2,

View File

@@ -20,8 +20,6 @@ import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
import 'package:vbvs_app/controller/time/countdown_controller.dart';
import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/model/api_response.dart';
import 'package:vbvs_app/pages/user/privacy_scheme_page.dart';
import 'package:vbvs_app/pages/user/user_scheme_page.dart';
class OtherLoginPage extends StatefulWidget {
const OtherLoginPage({super.key});

View File

@@ -279,7 +279,7 @@ class _BluetoothPageState extends State<BluetoothPage> {
arguments: obsData,
),
_buildMenuButton(
context, '睡眠习惯', "/sleepHabitPage"),
context, '睡眠习惯'.tr, "/sleepHabitPage"),
_buildMenuButton(
context, '分享设备'.tr, "/deviceSharePage",
arguments: obsData),

View File

@@ -94,7 +94,7 @@ class AuthBindTelController extends GetControllerEx<AuthBindTelModel> {
// }
}
getCode(BuildContext context) async {
getCode(BuildContext context, [Map? img]) async {
String message = "";
if (model.phone == null || model.phone!.isEmpty) {
message = "请输入手机号".tr;
@@ -116,7 +116,11 @@ class AuthBindTelController extends GetControllerEx<AuthBindTelModel> {
"userName": model.phone!,
'type': 5,
};
data['code'] = "mht";
if (img != null) {
if (img!['code'] != null) {
data['code'] = img!['code'];
}
}
await requestWithLog(
logTitle: "获取验证码".tr,
method: MyHttpMethod.post,
@@ -147,7 +151,7 @@ class AuthBindTelController extends GetControllerEx<AuthBindTelModel> {
String serviceApi = ServiceConstant.user_info;
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
String? language = "";
if (languageController.selectLanguage != null) {
if (languageController.selectLanguage.value != null) {
language = languageController.selectLanguage.value!.language_code;
}
if (language != null && language.isNotEmpty) {

View File

@@ -271,12 +271,6 @@ class MHTLoginController extends GetControllerEx<LoginModel> {
queryUrl: queryUrl,
data: data);
if (apiResponse.code == HttpStatusCodes.ok) {
// UserInfoController userInfoController = Get.find();
// if (userInfoController.model.user!.phone == null ||
// userInfoController.model.user!.phone!.isEmpty) {
// Get.toNamed("/auth_bind_tel");
// return;
// }
UserInfoController userInfoController = Get.find();
userInfoController.model.user = UserModel.fromJson(apiResponse.data);
userInfoController.model.login = 1;
@@ -287,7 +281,7 @@ class MHTLoginController extends GetControllerEx<LoginModel> {
box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息
if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) {
await Get.toNamed("/auth_bind_tel");
await Get.toNamed("/auth_bind_tel", arguments: {'code':'mht'});
}
if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) {

View File

@@ -17,9 +17,12 @@ import 'package:vbvs_app/pages/mh_page/user/controller/mht_login_controller.dart
class BindTelWidget extends GetView<AuthBindTelController> {
BoxConstraints? bodysize;
Map img;
final scaffoldKey = GlobalKey<ScaffoldState>();
BindTelWidget({super.key, required this.img});
@override
Widget build(BuildContext context) {
return LayoutBuilder(builder: (context, cc) {
@@ -28,7 +31,9 @@ class BindTelWidget extends GetView<AuthBindTelController> {
// onTap: () => FocusScope.of(context).unfocus(),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/new_background.png'),
image: AssetImage((img!['img'] == null || "" == img!['img'])
? 'assets/images/new_background.png'
: img!['img']!),
fit: BoxFit.fill,
),
),
@@ -304,7 +309,7 @@ class BindTelWidget extends GetView<AuthBindTelController> {
}
String msg =
await controller
.getCode(context);
.getCode(context,img);
if (msg.isNotEmpty) {
return;
}

View File

@@ -223,7 +223,7 @@ class _VitalSignsWidgetState extends State<VitalSignsWidget> {
onPressed: () {
MHTHomeController homeController = Get.find();
Get.toNamed("/newSleepReportPage", arguments: {
'date': widget.sleepReport['startTime'],
'date': widget.sleepReport['endTime'],
"mac": homeController.selectDevcie.value,
'type': 1,
'backgroundImg': 'assets/images/new_background.png',

View File

@@ -154,7 +154,7 @@ class _NewSleepViewWidgetState extends State<NewSleepViewWidget> {
Container(
alignment: Alignment(-1, 0),
child: Text(
"在床时长 ${formatDecimalHoursWithTr(matched['value'])}",
"在床时长".tr + " ${formatDecimalHoursWithTr(matched['value'])}",
style: TextStyle(color: Color(0xFF929699), fontSize: 20.rpx),
),
),
@@ -258,7 +258,7 @@ class _NewSleepViewWidgetState extends State<NewSleepViewWidget> {
onPressed: () {
MHTHomeController homeController = Get.find();
Get.toNamed("/newSleepReportPage", arguments: {
'date': widget.sleepReport['startTime'],
'date': widget.sleepReport['endTime'],
"mac": homeController.selectDevcie.value,
'type': 1,
'backgroundImg': 'assets/images/new_background.png',

View File

@@ -129,7 +129,9 @@ var mhroutes = {
"/mhtWifiAfterPage": (contxt, {arguments}) =>
MHTWifiAfterPage(deviceInfo: arguments),
"/deleteAccount": (context, {arguments}) => DeletedAccountPage(),
"/auth_bind_tel": (context) => BindTelWidget(),
"/auth_bind_tel": (context, {arguments}) => BindTelWidget(
img: arguments,
),
};
var mhonGenerateRoute = (RouteSettings settings) {
final String? name = settings.name; // 获取路由名称,如 /news 或 /search

View File

@@ -31,6 +31,7 @@ import 'package:vbvs_app/pages/main_bottom/home_page.dart';
import 'package:vbvs_app/pages/main_bottom/main_page_bottom_change.dart';
import 'package:vbvs_app/pages/main_bottom/message_page.dart';
import 'package:vbvs_app/pages/main_bottom/mine_page.dart';
import 'package:vbvs_app/pages/mh_page/user/page/bind_tel_page.dart';
import 'package:vbvs_app/pages/person/person_page.dart';
import 'package:vbvs_app/pages/person/update_person_page.dart';
import 'package:vbvs_app/pages/repair/apply_repair_page.dart';
@@ -105,8 +106,10 @@ var routes = {
"/afterWifiPagePerson": (contxt, {arguments}) => AfterWifiPagePerson(
type: arguments,
),
"/deleteAccount": (context, {arguments}) =>LogoutPage(),
"/deleteAccount": (context, {arguments}) => LogoutPage(),
"/auth_bind_tel": (context, {arguments}) => BindTelWidget(
img: arguments,
),
};
var onGenerateRoute = (RouteSettings settings) {