logo 预约弹出列表

车辆无绑定弹窗
This commit is contained in:
2025-11-26 09:20:42 +08:00
parent 29fc16f2ff
commit 496d77482d
12 changed files with 139 additions and 82 deletions

View File

@@ -20,9 +20,10 @@ class StorageService extends GetxService {
static const String _phoneKey = 'user_phone';
static const String _idCardKey = 'user_id_card';
static const String _vehicleInfoKey = 'vehicle_info';
// 加氢站登录凭证的键名
static const String _stationAccountKey = 'station_account';
static const String _stationPasswordKey = 'station_password';
// 新增:用于标记“绑定车辆”弹窗是否已在本会话中显示过
static const String _bindDialogShownKey = 'bind_vehicle_dialog_shown';
static StorageService get to => Get.find();
@@ -41,10 +42,13 @@ class StorageService extends GetxService {
String? get idCard => _box.read<String?>(_idCardKey);
bool get hasVehicleInfo => _box.hasData(_vehicleInfoKey);
// 记住密码:获取加氢站账号和密码
String? get stationAccount => _box.read<String?>(_stationAccountKey);
String? get stationPassword => _box.read<String?>(_stationPasswordKey);
// 新增:获取“绑定车辆”弹窗是否已显示的标志
bool get hasShownBindVehicleDialog => _box.read<bool>(_bindDialogShownKey) ?? false;
VehicleInfo? get vehicleInfo {
final vehicleJson = _box.read<String?>(_vehicleInfoKey);
if (vehicleJson != null) {
@@ -84,17 +88,21 @@ class StorageService extends GetxService {
await _box.write(_vehicleInfoKey, vehicleInfoToJson(data));
}
// 保存加氢站登录凭证
Future<void> saveStationCredentials(String account, String password) async {
await _box.write(_stationAccountKey, account);
await _box.write(_stationPasswordKey, password);
}
// 新增:标记“绑定车辆”弹窗已显示
Future<void> markBindVehicleDialogAsShown() async {
await _box.write(_bindDialogShownKey, true);
}
Future<void> clearVehicleInfo() async {
await _box.remove(_vehicleInfoKey);
}
// 清除加氢站登录凭证
Future<void> clearStationCredentials() async {
await _box.remove(_stationAccountKey);
await _box.remove(_stationPasswordKey);
@@ -108,6 +116,7 @@ class StorageService extends GetxService {
await _box.remove(_phoneKey);
await _box.remove(_idCardKey);
await clearVehicleInfo();
// 注意:登出时我们不清除“记住的密码”,以便下次用户登录时仍然可以回填
// 登出时,清除“绑定车辆”弹窗的显示记录,以便下次登录时可以再次弹出
await _box.remove(_bindDialogShownKey);
}
}