登录调通

This commit is contained in:
2025-11-05 13:14:01 +08:00
parent ea18b71523
commit 36910b8b32
7 changed files with 85 additions and 42 deletions

View File

@@ -18,24 +18,21 @@ class HomeController extends GetxController with BaseControllerMixin {
FlutterNativeSplash.remove();
}
//登录状态 未登录跳转登录页
bool isLoggedIn = false;
// 登录渠道 加氢站b_login 司机端c_login
String loginChannel = "c_login";
String loginChannel_b = "b_login";
// 根据登录状态和登录渠道返回不同的首页
Widget getHomePage(bool isLoggedIn, String loginChannel) {
if (!isLoggedIn) {
return LoginPage(); // 未登录,跳转到登录页面
} else {
// 已登录,根据渠道判断跳转到不同的页面
if (loginChannel == "b_login") {
return BaseWidgetsPage(); // 渠道A进入 BaseWidgetsPage
Widget getHomePage() {
//登录状态跳转
if (StorageService.to.isLoggedIn) {
// 如果已登录,再判断是哪个渠道
if (StorageService.to.loginChannel == LoginChannel.station) {
return B_BaseWidgetsPage(); // 站点首页
} else if (StorageService.to.loginChannel == LoginChannel.driver) {
return BaseWidgetsPage(); // 司机首页
} else {
return StorageService.to.isLoggedIn ? B_BaseWidgetsPage() : LoginPage(); // 渠道B进入 B_BaseWidgetsPage
return LoginPage();
}
} else {
// 未登录,直接去登录页
return LoginPage();
}
}
}

View File

@@ -16,7 +16,7 @@ class HomePage extends GetView<HomeController> {
init: HomeController(),
id: 'home',
builder: (_) {
return controller.getHomePage(false, controller.loginChannel);
return controller.getHomePage();
},
);
}

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:getx_scaffold/getx_scaffold.dart';
import '../../storage_service.dart';
class LoginController extends GetxController with BaseControllerMixin {
@override
String get builderId => 'login';
@@ -14,6 +16,7 @@ class LoginController extends GetxController with BaseControllerMixin {
@override
void onInit() {
super.onInit();
}

View File

@@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:getx_scaffold/getx_scaffold.dart';
import 'package:ln_jq_app/common/login_util.dart';
@@ -255,19 +257,31 @@ class _LoginPageState extends State<LoginPage> with SingleTickerProviderStateMix
return;
}
final responseMap = responseData.data as Map<String, dynamic>;
try {
var result = BaseModel.fromJson(responseData.data);
//保存用户信息
String token = responseMap['token'] ?? '';
//hydrogenId
String userId = responseMap['userId'] ?? '';
await StorageService.to.saveLoginInfo(token: token, userId: userId);
//保存用户信息
String token = result.data['token'] ?? '';
//hydrogenId
String userId = result.data['userId'] ?? '';
dismissLoading();
showToast('登录成功,欢迎您');
HttpService.to.setAuthorization(token);
// 跳转到主页,并清除所有历史页面
Get.offAll(() => B_BaseWidgetsPage());
await StorageService.to.saveLoginInfo(
token: token,
userId: userId,
channel: "station",
);
dismissLoading();
showToast('登录成功,欢迎您');
HttpService.to.setAuthorization(token);
// 跳转到主页,并清除所有历史页面
Get.offAll(() => B_BaseWidgetsPage());
} catch (e) {
// 如果解析 JSON 失败
dismissLoading();
showToast('登录失败:返回数据解析失败${e.toString()}');
}
} catch (e) {
dismissLoading();
}