import 'package:get/get.dart'; import 'package:getx_scaffold/getx_scaffold.dart'; import 'package:ln_jq_app/common/model/base_model.dart'; import 'package:ln_jq_app/pages/login/view.dart'; import '../../../storage_service.dart'; class ReservationController extends GetxController with BaseControllerMixin { @override String get builderId => 'b_reservation'; // 确保ID与View中一致 // --- 运营状态下拉菜单所需的状态 --- // 下拉菜单的选项列表 final List operationStatusOptions = ["营运中", "维修中", "暂停营业", "站点关闭"]; // 当前选中的值,默认为'运营中' String selectedOperationStatus = "营运中"; @override void onInit() { super.onInit(); renderData(); } String name = ""; String address = ""; String phone = ""; String costPrice = ""; //氢气价格 String customerPrice = ""; //官方价格 String startBusiness = ""; String endBusiness = ""; String timeStr = ""; String operatingEnterprise = ""; String hydrogenId = ""; Future renderData() async { showLoading("加载中"); try { var responseData = await HttpService.to.get( 'appointment/station/getStationInfoById?hydrogenId=${StorageService.to.userId}', ); if (responseData == null && responseData!.data == null) { dismissLoading(); showToast('暂时无法获取站点信息'); return; } try { var result = BaseModel.fromJson(responseData.data); name = result.data["name"]; hydrogenId = result.data["hydrogenId"].toString(); address = result.data["address"]; var rawCostPrice = result.data["costPrice"]; if (rawCostPrice != null && rawCostPrice.toString().isNotEmpty) { costPrice = "¥$rawCostPrice"; } else { costPrice = "暂无价格"; } var customerPriceTemp = result.data["customerPrice"]; if (customerPriceTemp != null && customerPriceTemp.toString().isNotEmpty) { customerPrice = "$customerPriceTemp"; } else { customerPrice = "暂无价格"; } phone = result.data["phone"]; startBusiness = result.data["startBusiness"]; endBusiness = result.data["endBusiness"]; operatingEnterprise = result.data["operatingEnterprise"].toString(); String temp = result.data["siteStatusName"].toString(); selectedOperationStatus = (temp.isEmpty || temp == "null") ? "营运中" : temp; if (startBusiness.isNotEmpty && endBusiness.isNotEmpty) { // 营业时间为24小时的特殊处理 if (startBusiness == "00:00:00" && endBusiness == "23:59:59") { timeStr = "24小时营业"; } else { timeStr = '${startBusiness.substring(0, 5)} - ${endBusiness.substring(0, 5)}'; } } else { timeStr = "时间未设置"; } operatingEnterprise = operatingEnterprise.isEmpty ? "暂未设置" : operatingEnterprise; updateUi(); dismissLoading(); } catch (e) { // 如果解析 JSON 失败 dismissLoading(); showToast('数据异常'); } } catch (e) { dismissLoading(); } } /// 更新运营状态的方法 void onOperationStatusChanged(String? newValue) { if (newValue != null) { selectedOperationStatus = newValue; updateUi(); } } void saveInfo() async { showLoading("保存中"); try { var responseData = await HttpService.to.post( 'appointment/station/updateStationStatus', data: { 'hydrogenId': hydrogenId, 'siteStatus': selectedOperationStatus == "营运中" ? "0" : selectedOperationStatus == "维修中" ? "1" : selectedOperationStatus == "站点关闭" ? "2" : selectedOperationStatus == "暂停营业" ? "3" : 0, 'updateTime': getNowDateTimeString(), }, ); if (responseData == null && responseData!.data == null) { dismissLoading(); showToast('服务暂不可用,请稍后'); return; } var result = BaseModel.fromJson(responseData.data); if (result.code == 0) { showSuccessToast("保存成功"); } dismissLoading(); } catch (e) { dismissLoading(); } } void logout() async { // TODO: 在这里执行退出登录的逻辑 //清理本地缓存的用户信息 导航到登录页面 await StorageService.to.clearLoginInfo(); Get.offAll(() => LoginPage()); } }