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

@@ -603,5 +603,16 @@
"注销账号成功": "Account deleted successfully", "注销账号成功": "Account deleted successfully",
"注销账号失败": "Failed to delete account", "注销账号失败": "Failed to delete account",
"是否确认注销?": "Are you sure you want to delete your account?", "是否确认注销?": "Are you sure you want to delete your account?",
"设备已被用户解绑,将取消当前分享!": "The device has been unbound by the user, and the current sharing will be cancelled!","设备解绑提醒": "Device Unbind Reminder" "设备已被用户解绑,将取消当前分享!": "The device has been unbound by the user, and the current sharing will be cancelled!",
"设备解绑提醒": "Device Unbind Reminder",
"位置权限说明": "Location Permission Description",
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "Obtain location information, connect to nearby Bluetooth devices, and recommend nearby stores",
"蓝牙权限说明": "Bluetooth Permission Description",
"搜索链接附近的蓝牙设备": "Search and connect to nearby Bluetooth devices",
"附近设备权限说明": "Nearby Device Permission Description",
"平均心率": "Ave HeartRate",
"平均hrv": "Ave HRV",
"平均呼吸": "Ave Respiration",
"在床时长": "Time in Bed",
"生命体征指的是睡眠周期的整体数据。": "Vital signs refer to the overall data of the sleep cycle."
} }

View File

@@ -602,5 +602,15 @@
"注销账号失败": "注销账号失败", "注销账号失败": "注销账号失败",
"是否确认注销?": "是否确认注销?", "是否确认注销?": "是否确认注销?",
"设备已被用户解绑,将取消当前分享!": "设备已被用户解绑,将取消当前分享!", "设备已被用户解绑,将取消当前分享!": "设备已被用户解绑,将取消当前分享!",
"设备解绑提醒": "设备解绑提醒" "设备解绑提醒": "设备解绑提醒",
"位置权限说明": "位置权限说明",
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "获得位置信息,连接附近的蓝牙设备与推荐附近门店和获取天气情况",
"蓝牙权限说明": "蓝牙权限说明",
"搜索链接附近的蓝牙设备": "搜索链接附近的蓝牙设备",
"附近设备权限说明": "附近设备权限说明",
"平均心率":"平均心率",
"平均hrv":"平均hrv",
"平均呼吸":"平均呼吸",
"在床时长": "在床时长",
"生命体征指的是睡眠周期的整体数据。":"生命体征指的是睡眠周期的整体数据。"
} }

View File

@@ -602,5 +602,15 @@
"注销账号失败": "註銷帳號失敗", "注销账号失败": "註銷帳號失敗",
"是否确认注销?": "是否確認註銷?", "是否确认注销?": "是否確認註銷?",
"设备已被用户解绑,将取消当前分享!": "設備已被用戶解綁,將取消當前分享!", "设备已被用户解绑,将取消当前分享!": "設備已被用戶解綁,將取消當前分享!",
"设备解绑提醒": "設備解绑提醒" "设备解绑提醒": "設備解绑提醒",
"位置权限说明": "位置權限說明",
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "獲得位置信息,連接附近的藍牙設備與推薦附近門店",
"蓝牙权限说明": "藍牙權限說明",
"搜索链接附近的蓝牙设备": "搜索連接附近的藍牙設備",
"附近设备权限说明": "附近設備權限說明",
"平均心率": "平均心率",
"平均hrv": "平均hrv",
"平均呼吸": "平均呼吸",
"在床时长": "在床時長",
"生命体征指的是睡眠周期的整体数据。": "生命體徵指的是睡眠週期的整體數據。"
} }

View File

@@ -15,201 +15,6 @@ class ApiService {
static Dio reservation = Dio(); static Dio reservation = Dio();
static void init() { 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(); reservationInit();
} }

View File

@@ -243,6 +243,17 @@ class LoginController extends GetControllerEx<LoginModel> {
final box = GetStorage(); final box = GetStorage();
box.write('token', token); // 存储 token box.write('token', token); // 存储 token
box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息 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; 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_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/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/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 'package:vbvs_app/routers/mh_routers.dart';
import 'controller/mh_controller/apply_repair_controller.dart'; import 'controller/mh_controller/apply_repair_controller.dart';
@@ -166,13 +167,13 @@ void initwebService() {
initLanguageSetting() async { initLanguageSetting() async {
try { try {
Get.put(MHLanguageController()); Get.put(MHLanguageController());
Get.put(LanguageController());
int code = AppConstants().ent_type; int code = AppConstants().ent_type;
if (APPPackageType.MHT.code == code) { if (APPPackageType.MHT.code == code) {
Get.put(MHTHomeController()); Get.put(MHTHomeController());
MHLanguageController mhLanguageController = Get.find(); MHLanguageController mhLanguageController = Get.find();
await mhLanguageController.initLanuageList(); await mhLanguageController.initLanuageList();
} else { } else {
Get.put(LanguageController());
LanguageController languageController = Get.find(); LanguageController languageController = Get.find();
await languageController.initLanuageList(); await languageController.initLanuageList();
} }
@@ -186,7 +187,7 @@ Future<void> initWX() async {
Fluwx fluwx = Fluwx(); Fluwx fluwx = Fluwx();
fluwx.registerApi( fluwx.registerApi(
//请填写自己的微信appid //请填写自己的微信appid
// appId: "wxeb2688220799e2c5",//太和 // appId: "wxeb2688220799e2c5", //太和
appId: "wx929c548fea6af9c7", //眠花糖 appId: "wx929c548fea6af9c7", //眠花糖
doOnAndroid: true, doOnAndroid: true,
doOnIOS: true, doOnIOS: true,
@@ -694,6 +695,7 @@ class MyApp extends StatelessWidget {
Get.lazyPut(() => MessageReviewController()), Get.lazyPut(() => MessageReviewController()),
Get.lazyPut(() => MessageSettingController()), Get.lazyPut(() => MessageSettingController()),
Get.lazyPut(() => CommonMessageSettingController()), Get.lazyPut(() => CommonMessageSettingController()),
Get.lazyPut(() => AuthBindTelController()),
])); ]));
} }

View File

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

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/time/countdown_controller.dart';
import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/model/api_response.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 { class OtherLoginPage extends StatefulWidget {
const OtherLoginPage({super.key}); const OtherLoginPage({super.key});

View File

@@ -279,7 +279,7 @@ class _BluetoothPageState extends State<BluetoothPage> {
arguments: obsData, arguments: obsData,
), ),
_buildMenuButton( _buildMenuButton(
context, '睡眠习惯', "/sleepHabitPage"), context, '睡眠习惯'.tr, "/sleepHabitPage"),
_buildMenuButton( _buildMenuButton(
context, '分享设备'.tr, "/deviceSharePage", context, '分享设备'.tr, "/deviceSharePage",
arguments: obsData), 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 = ""; String message = "";
if (model.phone == null || model.phone!.isEmpty) { if (model.phone == null || model.phone!.isEmpty) {
message = "请输入手机号".tr; message = "请输入手机号".tr;
@@ -116,7 +116,11 @@ class AuthBindTelController extends GetControllerEx<AuthBindTelModel> {
"userName": model.phone!, "userName": model.phone!,
'type': 5, 'type': 5,
}; };
data['code'] = "mht"; if (img != null) {
if (img!['code'] != null) {
data['code'] = img!['code'];
}
}
await requestWithLog( await requestWithLog(
logTitle: "获取验证码".tr, logTitle: "获取验证码".tr,
method: MyHttpMethod.post, method: MyHttpMethod.post,
@@ -147,7 +151,7 @@ class AuthBindTelController extends GetControllerEx<AuthBindTelModel> {
String serviceApi = ServiceConstant.user_info; String serviceApi = ServiceConstant.user_info;
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
String? language = ""; String? language = "";
if (languageController.selectLanguage != null) { if (languageController.selectLanguage.value != null) {
language = languageController.selectLanguage.value!.language_code; language = languageController.selectLanguage.value!.language_code;
} }
if (language != null && language.isNotEmpty) { if (language != null && language.isNotEmpty) {

View File

@@ -271,12 +271,6 @@ class MHTLoginController extends GetControllerEx<LoginModel> {
queryUrl: queryUrl, queryUrl: queryUrl,
data: data); data: data);
if (apiResponse.code == HttpStatusCodes.ok) { 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 userInfoController = Get.find();
userInfoController.model.user = UserModel.fromJson(apiResponse.data); userInfoController.model.user = UserModel.fromJson(apiResponse.data);
userInfoController.model.login = 1; userInfoController.model.login = 1;
@@ -287,7 +281,7 @@ class MHTLoginController extends GetControllerEx<LoginModel> {
box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息 box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息
if (userInfoController.model.user!.phone == null || if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) { 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 || if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) { 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> { class BindTelWidget extends GetView<AuthBindTelController> {
BoxConstraints? bodysize; BoxConstraints? bodysize;
Map img;
final scaffoldKey = GlobalKey<ScaffoldState>(); final scaffoldKey = GlobalKey<ScaffoldState>();
BindTelWidget({super.key, required this.img});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return LayoutBuilder(builder: (context, cc) { return LayoutBuilder(builder: (context, cc) {
@@ -28,7 +31,9 @@ class BindTelWidget extends GetView<AuthBindTelController> {
// onTap: () => FocusScope.of(context).unfocus(), // onTap: () => FocusScope.of(context).unfocus(),
decoration: BoxDecoration( decoration: BoxDecoration(
image: DecorationImage( 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, fit: BoxFit.fill,
), ),
), ),
@@ -304,7 +309,7 @@ class BindTelWidget extends GetView<AuthBindTelController> {
} }
String msg = String msg =
await controller await controller
.getCode(context); .getCode(context,img);
if (msg.isNotEmpty) { if (msg.isNotEmpty) {
return; return;
} }

View File

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

View File

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

View File

@@ -129,7 +129,9 @@ var mhroutes = {
"/mhtWifiAfterPage": (contxt, {arguments}) => "/mhtWifiAfterPage": (contxt, {arguments}) =>
MHTWifiAfterPage(deviceInfo: arguments), MHTWifiAfterPage(deviceInfo: arguments),
"/deleteAccount": (context, {arguments}) => DeletedAccountPage(), "/deleteAccount": (context, {arguments}) => DeletedAccountPage(),
"/auth_bind_tel": (context) => BindTelWidget(), "/auth_bind_tel": (context, {arguments}) => BindTelWidget(
img: arguments,
),
}; };
var mhonGenerateRoute = (RouteSettings settings) { var mhonGenerateRoute = (RouteSettings settings) {
final String? name = settings.name; // 获取路由名称,如 /news 或 /search 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/main_page_bottom_change.dart';
import 'package:vbvs_app/pages/main_bottom/message_page.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/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/person_page.dart';
import 'package:vbvs_app/pages/person/update_person_page.dart'; import 'package:vbvs_app/pages/person/update_person_page.dart';
import 'package:vbvs_app/pages/repair/apply_repair_page.dart'; import 'package:vbvs_app/pages/repair/apply_repair_page.dart';
@@ -105,8 +106,10 @@ var routes = {
"/afterWifiPagePerson": (contxt, {arguments}) => AfterWifiPagePerson( "/afterWifiPagePerson": (contxt, {arguments}) => AfterWifiPagePerson(
type: arguments, type: arguments,
), ),
"/deleteAccount": (context, {arguments}) =>LogoutPage(), "/deleteAccount": (context, {arguments}) => LogoutPage(),
"/auth_bind_tel": (context, {arguments}) => BindTelWidget(
img: arguments,
),
}; };
var onGenerateRoute = (RouteSettings settings) { var onGenerateRoute = (RouteSettings settings) {