设备 预约接口
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package com.taihe.vbvs_app
|
||||
package com.taihe.mh_app
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
|
||||
241
lib/common/util/Dio.dart
Normal file
241
lib/common/util/Dio.dart
Normal file
@@ -0,0 +1,241 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/login/login_controller.dart';
|
||||
import 'package:vbvs_app/pages/common/selectDialog.dart';
|
||||
|
||||
class ApiService {
|
||||
static Dio dio = Dio();
|
||||
|
||||
static Dio request = Dio();
|
||||
static Dio requestNoInfo = Dio();
|
||||
static Dio requestNoError = Dio(); //不处理错误的请求,用于设备操作上报
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
static void reservationInit() {
|
||||
reservation.options.baseUrl = "https://crm-api.swes.com.cn";
|
||||
reservation.options.connectTimeout = const Duration(seconds: 15);
|
||||
reservation.options.receiveTimeout = const Duration(seconds: 10);
|
||||
reservation.options.sendTimeout = const Duration(seconds: 10);
|
||||
reservation.interceptors.add(InterceptorsWrapper(
|
||||
onRequest: (options, handler) {
|
||||
print("---> ${options.method}, ${options.path}, ${options.data}");
|
||||
options.headers['token'] =
|
||||
"bMAQVR1x48t66u8EDYSftAJGo17r0rIB3z15JgyyoGz1rAEZHs1htHOCorYFJ2RT";
|
||||
return handler.next(options);
|
||||
},
|
||||
onResponse: (response, ResponseInterceptorHandler handler) {
|
||||
print("<--- ${response.statusCode} ${response.data}");
|
||||
return handler.next(response);
|
||||
},
|
||||
onError: (e, handler) {
|
||||
// 错误处理,例如打印错误信息
|
||||
showToast("网络异常或服务连接异常,请稍候再试", color: color_error);
|
||||
print("DioError: $e");
|
||||
return handler.reject(e);
|
||||
},
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,13 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/color/repair_status.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/common/util/myDialog/my_dialog_controller.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
import 'package:vbvs_app/model/user_data.dart';
|
||||
|
||||
part 'apply_repair_controller.g.dart';
|
||||
|
||||
@@ -91,69 +99,122 @@ class ApplyRepairController extends GetControllerEx<ApplyRepairModel> {
|
||||
// }
|
||||
// }
|
||||
|
||||
// //提交
|
||||
// Future<String> submitRepair(BuildContext context) async {
|
||||
// //tmp
|
||||
// // return '';
|
||||
// String message = '';
|
||||
// final MyDialogController myDialogController =
|
||||
// Get.find<MyDialogController>();
|
||||
// if (model.device_type == null || model.device_type!.isEmpty) {
|
||||
// message = '请选择设备类型!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.device_category == null || model.device_category!.isEmpty) {
|
||||
// message = '请输入设备型号!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.device_id == null || model.device_id!.isEmpty) {
|
||||
// message = '请输入设备序列号id!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.apply_name == null || model.apply_name!.isEmpty) {
|
||||
// message = '请输入姓名!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// RegExp nameRegExp = RegExp(r'^[\u4e00-\u9fa5]{2,4}$');
|
||||
//提交
|
||||
Future<String> submitRepair(BuildContext context) async {
|
||||
//tmp
|
||||
// return '';
|
||||
String message = '';
|
||||
final MyDialogController myDialogController =
|
||||
Get.find<MyDialogController>();
|
||||
if (model.device_type == null || model.device_type!.isEmpty) {
|
||||
message = '请选择设备类型!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.device_category == null || model.device_category!.isEmpty) {
|
||||
message = '请输入设备型号!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.device_id == null || model.device_id!.isEmpty) {
|
||||
message = '请输入设备序列号id!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.apply_name == null || model.apply_name!.isEmpty) {
|
||||
message = '请输入姓名!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
RegExp nameRegExp = RegExp(r'^[\u4e00-\u9fa5]{2,4}$');
|
||||
|
||||
// if (!nameRegExp.hasMatch(model.apply_name!)) {
|
||||
// message = '姓名必须为2到4个汉字!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.tel == null || model.tel!.isEmpty) {
|
||||
// message = '请输入手机号!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (!MyUtils.isValidPhoneNumber(model.tel!)) {
|
||||
// message = '无效的手机号!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.address == null || model.address!.isEmpty) {
|
||||
// message = '请输入地址!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.desc == null || model.desc!.isEmpty) {
|
||||
// message = '请输入问题描述!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.issue_img == null || model.issue_img!.isEmpty) {
|
||||
// message = '请至少上传一张问题图片!';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// model.status = RepairStatus.pending;
|
||||
// await repairRepository.saveRepair(model);
|
||||
// return message;
|
||||
// }
|
||||
if (!nameRegExp.hasMatch(model.apply_name!)) {
|
||||
message = '姓名必须为2到4个汉字!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.tel == null || model.tel!.isEmpty) {
|
||||
message = '请输入手机号!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (!MyUtils.isValidPhoneNumber(model.tel!)) {
|
||||
message = '无效的手机号!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.address == null || model.address!.isEmpty) {
|
||||
message = '请输入地址!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.desc == null || model.desc!.isEmpty) {
|
||||
message = '请输入问题描述!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
if (model.issue_img == null || model.issue_img!.isEmpty) {
|
||||
message = '请至少上传一张问题图片!';
|
||||
showToast(message);
|
||||
return message;
|
||||
}
|
||||
model.status = RepairStatus.pending;
|
||||
// await repairRepository.saveRepair(model);
|
||||
String type = "repair_submit_${model.device_id}";
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.submit_repair;
|
||||
String queryUrl = "$serviceAddress$serviceName$serviceApi?type=$type";
|
||||
|
||||
// 组织请求数据
|
||||
final UserInfoController userInfoController =
|
||||
Get.find<UserInfoController>();
|
||||
UserModel user = userInfoController.model.user!;
|
||||
|
||||
Map<String, dynamic> data = {
|
||||
'apply_name': model.apply_name,
|
||||
'address': model.address,
|
||||
'desc': model.desc,
|
||||
'device_type': model.device_type,
|
||||
'issue_img': model.issue_img,
|
||||
'tel': model.tel,
|
||||
'uid': user.uid,
|
||||
'device_category': model.device_category,
|
||||
'device_id': model.device_id,
|
||||
'device_name': model.device_name,
|
||||
'status': model.status,
|
||||
};
|
||||
|
||||
// 发起插入请求(这里相当于之前的 saveRepair)
|
||||
requestWithLog(
|
||||
logTitle: "提交报修",
|
||||
method: MyHttpMethod.post,
|
||||
queryUrl: queryUrl,
|
||||
data: data,
|
||||
onSuccess: (res) {
|
||||
if (res.data is List && res.data.isNotEmpty) {
|
||||
final inserted = res.data[0];
|
||||
model.id = inserted['id'];
|
||||
model.create_time = DateTime.tryParse(inserted['create_time']);
|
||||
// TextSelectionOverlay
|
||||
// // saveRepairHistor
|
||||
// saveRepairHistory(
|
||||
// RepairProcessModel()
|
||||
// ..status = model.status
|
||||
// ..record_id = inserted['id'],
|
||||
// );
|
||||
showToast("提交成功!");
|
||||
} else {
|
||||
showToast("提交失败:未返回数据!");
|
||||
}
|
||||
},
|
||||
onFailure: (res) {
|
||||
showToast("提交失败!");
|
||||
},
|
||||
);
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
// Future<void> getDeviceList() async {
|
||||
// final UserInfoController userInfoController =
|
||||
|
||||
@@ -5,9 +5,11 @@ import 'package:ef/ef.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
||||
import 'package:vbvs_app/common/util/Dio.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
import 'package:vbvs_app/model/api_response.dart';
|
||||
|
||||
class BookInfoModel {
|
||||
@@ -38,53 +40,23 @@ class BookInfoController extends GetControllerEx<BookInfoModel> {
|
||||
attr = GetModel(BookInfoModel()).obs;
|
||||
}
|
||||
|
||||
// get userInfoController => Get.find<UserInfoController>();
|
||||
get userInfoController => Get.find<UserInfoController>();
|
||||
|
||||
Future<void> getData(String storeId) async {
|
||||
// 初始化模型
|
||||
getData(id) {
|
||||
model.datetimes = [];
|
||||
model.datetimes_index = null;
|
||||
model.dataT = {};
|
||||
updateAll();
|
||||
|
||||
String url =
|
||||
"https://crm-api.swes.com.cn/agent/userBook/config/detailConfigByStore?storeId=$storeId";
|
||||
|
||||
await requestWithLog(
|
||||
logTitle: "获取预约门店时间",
|
||||
method: MyHttpMethod.get,
|
||||
queryUrl: url,
|
||||
successMsg: "获取预约门店时间成功",
|
||||
errorMsg: "获取预约门店时间失败",
|
||||
onSuccess: (res) {
|
||||
final data = res.data;
|
||||
if (data != null) {
|
||||
model.datetimes = data["dateList"] ?? [];
|
||||
model.datetimes_index = 0;
|
||||
model.dataT = data;
|
||||
time_periodChange(); // 原来的 time_periodChange
|
||||
updateAll();
|
||||
}
|
||||
},
|
||||
onFailure: (res) {},
|
||||
);
|
||||
ApiService.reservation
|
||||
.get("/agent/userBook/config/detailConfigByStore?storeId=$id")
|
||||
.then((d) {
|
||||
model.datetimes = d.data["dateList"];
|
||||
model.datetimes_index = 0;
|
||||
model.dataT = d.data;
|
||||
time_periodChange();
|
||||
});
|
||||
}
|
||||
|
||||
// getData(id) {
|
||||
// model.datetimes = [];
|
||||
// model.datetimes_index = null;
|
||||
// model.dataT = {};
|
||||
// updateAll();
|
||||
// ApiService.reservation
|
||||
// .get("/agent/userBook/config/detailConfigByStore?storeId=$id")
|
||||
// .then((d) {
|
||||
// model.datetimes = d.data["dateList"];
|
||||
// model.datetimes_index = 0;
|
||||
// model.dataT = d.data;
|
||||
// time_periodChange();
|
||||
// });
|
||||
// }
|
||||
|
||||
time_periodChange() {
|
||||
if (model.datetimes_index == null) {
|
||||
return;
|
||||
@@ -95,27 +67,23 @@ class BookInfoController extends GetControllerEx<BookInfoModel> {
|
||||
updateAll();
|
||||
}
|
||||
|
||||
// submitData(id) {
|
||||
// String tel = userInfoController.model?.user?.tel ?? "";
|
||||
// if(tel.isEmpty) {
|
||||
// showToast("用户未存在手机号");
|
||||
// return;
|
||||
// }
|
||||
// return ApiService.reservation.post("/agent/userBook/submitBook", data: {
|
||||
// "extUserId": tel,
|
||||
// "storeId": id,
|
||||
// "realName": model.userName,
|
||||
// "userPhone": model.userPhone,
|
||||
// "bookDateId": model.time_period[model.select_time_index!]["id"]
|
||||
// });
|
||||
// }
|
||||
submitData(id) {
|
||||
String tel = userInfoController.model?.user?.tel ?? "";
|
||||
if (tel.isEmpty) {
|
||||
showToast("用户未存在手机号");
|
||||
return;
|
||||
}
|
||||
return ApiService.reservation.post("/agent/userBook/submitBook", data: {
|
||||
"extUserId": tel,
|
||||
"storeId": id,
|
||||
"realName": model.userName,
|
||||
"userPhone": model.userPhone,
|
||||
"bookDateId": model.time_period[model.select_time_index!]["id"]
|
||||
});
|
||||
}
|
||||
|
||||
// messageAdd(Map data) {
|
||||
// return ApiService.request.post("/api/message/info", data: {
|
||||
// "type": 0,
|
||||
// "status": 1,
|
||||
// "read": 1,
|
||||
// "data": jsonEncode(data)
|
||||
// });
|
||||
// }
|
||||
messageAdd(Map data) {
|
||||
return ApiService.request.post("/api/message/info",
|
||||
data: {"type": 0, "status": 1, "read": 1, "data": jsonEncode(data)});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,33 +36,6 @@ class DeviceListController extends GetControllerEx<DeviceListModel> {
|
||||
attr = GetModel(DeviceListModel()).obs;
|
||||
}
|
||||
|
||||
// @override
|
||||
// void onInit() {
|
||||
// super.onInit();
|
||||
// model.keyword = "";
|
||||
// getDeviceList(); // 正确的初始化数据调用
|
||||
// }
|
||||
|
||||
// getDeviceList({int time = 1}) async {
|
||||
// String search = (model.keyword != null && model.keyword!.isNotEmpty)
|
||||
// ? "?key=${model.keyword}"
|
||||
// : "";
|
||||
// var data = await ApiService.request.get("/api/device/info/list$search");
|
||||
// if (data.data["data"] != null) {
|
||||
// try {
|
||||
// List<dynamic> tmp = data.data["data"] as List<dynamic>;
|
||||
// model.deviceList = tmp.map((obj) => DeviceModel.fromJson(obj)).toList();
|
||||
// model.deviceListWyf = tmp;
|
||||
// } catch (e) {
|
||||
// print(e);
|
||||
// }
|
||||
// } else {
|
||||
// model.deviceList = [];
|
||||
// model.deviceListWyf = [];
|
||||
// }
|
||||
// updateAll();
|
||||
// }
|
||||
|
||||
getDeviceList() async {
|
||||
try {
|
||||
String search = (model.keyword != null && model.keyword!.isNotEmpty)
|
||||
@@ -82,8 +55,8 @@ class DeviceListController extends GetControllerEx<DeviceListModel> {
|
||||
MyUtils.formatResponse(res, "设备.设备列表请求成功".tr, "设备.设备列表请求失败".tr);
|
||||
if (res.code == HttpStatusCodes.ok) {
|
||||
// bindDeviceNum.value = res.total!;
|
||||
model.deviceList =res.data;
|
||||
|
||||
model.deviceList = res.data;
|
||||
|
||||
updateAll();
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:ef/ef.dart';
|
||||
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:vbvs_app/controller/weather/weather_controller.dart';
|
||||
import 'package:vbvs_app/common/util/Dio.dart';
|
||||
|
||||
part 'experience_store_list_page.g.dart';
|
||||
|
||||
@@ -27,99 +29,98 @@ class ExperienceStoreListController
|
||||
ExperienceStoreListController() {
|
||||
attr = GetModel(ExperienceStoreListModel()).obs;
|
||||
}
|
||||
WeatherModelController weatherModelController = Get.find();
|
||||
Position? position;
|
||||
double latitude = 31.8512;
|
||||
double longitude = 117.26061;
|
||||
|
||||
// Position? position;
|
||||
// double latitude = 31.8512;
|
||||
// double longitude = 117.26061;
|
||||
int total = 0;
|
||||
int page = 0;
|
||||
bool lock = false;
|
||||
|
||||
// int total = 0;
|
||||
// int page = 0;
|
||||
// bool lock = false;
|
||||
|
||||
|
||||
// resetParm() {
|
||||
// position = null;
|
||||
// total = 0;
|
||||
// page = 0;
|
||||
// lock = false;
|
||||
// model.experienceStoreModelList = [];
|
||||
// updateAll();
|
||||
// }
|
||||
|
||||
// getData({int count = 10}) async {
|
||||
// if (page != 0 && page * count > total) {
|
||||
// return;
|
||||
// }
|
||||
// if (lock) {
|
||||
// return;
|
||||
// }
|
||||
// if (page == 0) {
|
||||
// position = await locationCheck();
|
||||
// }
|
||||
// lock = true;
|
||||
// int page_ = page;
|
||||
// ApiService.reservation
|
||||
// .get(
|
||||
// "/agent/userBook/config/getBookStoreList?storeName=${"${model.keyword}".isNotEmpty ? model.keyword : ''}&latitude=${position == null ? latitude : position?.latitude}&longitude=${position == null ? longitude : position?.longitude}&page=$page&size=$count&sort=distance")
|
||||
// .then((d) {
|
||||
// lock = false;
|
||||
// if (page == 0) {
|
||||
// model.experienceStoreModelList = d.data["records"];
|
||||
// } else {
|
||||
// int index = 0;
|
||||
// d.data["records"]?.forEach((item) {
|
||||
// if (model.experienceStoreModelList
|
||||
// .indexWhere((item2) => item2["id"] == item["id"]) ==
|
||||
// -1) {
|
||||
// model.experienceStoreModelList.add(item);
|
||||
// } else {
|
||||
// model.experienceStoreModelList[index] = item;
|
||||
// }
|
||||
// index++;
|
||||
// });
|
||||
// }
|
||||
// page = page_ + 1;
|
||||
// total = d.data["total"];
|
||||
// updateAll();
|
||||
// }).catchError((d) {
|
||||
// lock = false;
|
||||
// });
|
||||
// }
|
||||
|
||||
determinePosition() async {
|
||||
// bool serviceEnabled;
|
||||
// LocationPermission permission;
|
||||
|
||||
// // Test if location services are enabled.
|
||||
// serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
||||
// if (!serviceEnabled) {
|
||||
// // Location services are not enabled don't continue
|
||||
// // accessing the position and request users of the
|
||||
// // App to enable the location services.
|
||||
// return Future.error('Location services are disabled.');
|
||||
// }
|
||||
|
||||
// permission = await Geolocator.checkPermission();
|
||||
// if (permission == LocationPermission.denied) {
|
||||
// permission = await Geolocator.requestPermission();
|
||||
// if (permission == LocationPermission.denied) {
|
||||
// // Permissions are denied, next time you could try
|
||||
// // requesting permissions again (this is also where
|
||||
// // Android's shouldShowRequestPermissionRationale
|
||||
// // returned true. According to Android guidelines
|
||||
// // your App should show an explanatory UI now.
|
||||
// return Future.error('Location permissions are denied');
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (permission == LocationPermission.deniedForever) {
|
||||
// // Permissions are denied forever, handle appropriately.
|
||||
// return Future.error(
|
||||
// 'Location permissions are permanently denied, we cannot request permissions.');
|
||||
// }
|
||||
|
||||
// // When we reach here, permissions are granted and we can
|
||||
// // continue accessing the position of the device.
|
||||
// position = await Geolocator.getCurrentPosition();
|
||||
resetParm() {
|
||||
position = null;
|
||||
total = 0;
|
||||
page = 0;
|
||||
lock = false;
|
||||
model.experienceStoreModelList = [];
|
||||
updateAll();
|
||||
}
|
||||
|
||||
getData({int count = 10}) async {
|
||||
if (page != 0 && page * count > total) {
|
||||
return;
|
||||
}
|
||||
if (lock) {
|
||||
return;
|
||||
}
|
||||
if (page == 0) {
|
||||
position = await weatherModelController.determinePosition();
|
||||
}
|
||||
lock = true;
|
||||
int page_ = page;
|
||||
ApiService.reservation
|
||||
.get(
|
||||
"/agent/userBook/config/getBookStoreList?storeName=${"${model.keyword}".isNotEmpty ? model.keyword : ''}&latitude=${position == null ? latitude : position?.latitude}&longitude=${position == null ? longitude : position?.longitude}&page=$page&size=$count&sort=distance")
|
||||
.then((d) {
|
||||
lock = false;
|
||||
if (page == 0) {
|
||||
model.experienceStoreModelList = d.data["records"];
|
||||
} else {
|
||||
int index = 0;
|
||||
d.data["records"]?.forEach((item) {
|
||||
if (model.experienceStoreModelList
|
||||
.indexWhere((item2) => item2["id"] == item["id"]) ==
|
||||
-1) {
|
||||
model.experienceStoreModelList.add(item);
|
||||
} else {
|
||||
model.experienceStoreModelList[index] = item;
|
||||
}
|
||||
index++;
|
||||
});
|
||||
}
|
||||
page = page_ + 1;
|
||||
total = d.data["total"];
|
||||
updateAll();
|
||||
}).catchError((d) {
|
||||
lock = false;
|
||||
});
|
||||
}
|
||||
|
||||
//determinePosition() async {
|
||||
// bool serviceEnabled;
|
||||
// LocationPermission permission;
|
||||
|
||||
// // Test if location services are enabled.
|
||||
// serviceEnabled = await Geolocator.isLocationServiceEnabled();
|
||||
// if (!serviceEnabled) {
|
||||
// // Location services are not enabled don't continue
|
||||
// // accessing the position and request users of the
|
||||
// // App to enable the location services.
|
||||
// return Future.error('Location services are disabled.');
|
||||
// }
|
||||
|
||||
// permission = await Geolocator.checkPermission();
|
||||
// if (permission == LocationPermission.denied) {
|
||||
// permission = await Geolocator.requestPermission();
|
||||
// if (permission == LocationPermission.denied) {
|
||||
// // Permissions are denied, next time you could try
|
||||
// // requesting permissions again (this is also where
|
||||
// // Android's shouldShowRequestPermissionRationale
|
||||
// // returned true. According to Android guidelines
|
||||
// // your App should show an explanatory UI now.
|
||||
// return Future.error('Location permissions are denied');
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (permission == LocationPermission.deniedForever) {
|
||||
// // Permissions are denied forever, handle appropriately.
|
||||
// return Future.error(
|
||||
// 'Location permissions are permanently denied, we cannot request permissions.');
|
||||
// }
|
||||
|
||||
// // When we reach here, permissions are granted and we can
|
||||
// // continue accessing the position of the device.
|
||||
// position = await Geolocator.getCurrentPosition();
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:ef/ef.dart';
|
||||
|
||||
import 'package:vbvs_app/common/util/Dio.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
|
||||
class BookExperienceListModel {
|
||||
List bookInfoList = []; //预约列表
|
||||
@@ -14,102 +16,102 @@ class BookExperienceListController
|
||||
attr = GetModel(BookExperienceListModel()).obs;
|
||||
}
|
||||
|
||||
// resetParm() {
|
||||
// model.bookInfoList = [];
|
||||
// model.experienceStoreModelList = [];
|
||||
// total = 0;
|
||||
// page = 0;
|
||||
// lock = false;
|
||||
// updateAll();
|
||||
// }
|
||||
resetParm() {
|
||||
model.bookInfoList = [];
|
||||
model.experienceStoreModelList = [];
|
||||
total = 0;
|
||||
page = 0;
|
||||
lock = false;
|
||||
updateAll();
|
||||
}
|
||||
|
||||
// getAllBook() {
|
||||
// ApiService.reservation
|
||||
// .get(
|
||||
// "/agent/userBook/config/getBookStoreList?storeName=&latitude=31.8512&longitude=117.26061&page=0&size=20000&sort=distance")
|
||||
// .then((d) {
|
||||
// model.experienceStoreModelList = d.data["records"];
|
||||
// updateAll();
|
||||
// });
|
||||
// }
|
||||
getAllBook() {
|
||||
ApiService.reservation
|
||||
.get(
|
||||
"/agent/userBook/config/getBookStoreList?storeName=&latitude=31.8512&longitude=117.26061&page=0&size=20000&sort=distance")
|
||||
.then((d) {
|
||||
model.experienceStoreModelList = d.data["records"];
|
||||
updateAll();
|
||||
});
|
||||
}
|
||||
|
||||
// int total = 0;
|
||||
// int page = 0;
|
||||
// bool lock = false;
|
||||
int total = 0;
|
||||
int page = 0;
|
||||
bool lock = false;
|
||||
|
||||
// getData({int count = 10, Function? finished}) {
|
||||
// if (page != 0 && page * count > total) {
|
||||
// finished?.call();
|
||||
// return;
|
||||
// }
|
||||
// if (lock) {
|
||||
// finished?.call();
|
||||
// return;
|
||||
// }
|
||||
// lock = true;
|
||||
// int page_ = page;
|
||||
// String tel = Get.find<UserInfoController>().model.user?.tel ?? "";
|
||||
// if (tel.isEmpty) {
|
||||
// showToast("用户未存在手机号");
|
||||
// finished?.call();
|
||||
// return;
|
||||
// }
|
||||
// ApiService.reservation
|
||||
// .get(
|
||||
// "/agent/userBook/list?extUserId=$tel&page=$page_&size=$count&sort=create_time,desc")
|
||||
// .then((d) {
|
||||
// lock = false;
|
||||
// finished?.call();
|
||||
// if (page == 0) {
|
||||
// model.bookInfoList = d.data["records"];
|
||||
// } else {
|
||||
// int index = 0;
|
||||
// d.data["records"]?.forEach((item) {
|
||||
// if (model.bookInfoList
|
||||
// .indexWhere((item2) => item2["id"] == item["id"]) ==
|
||||
// -1) {
|
||||
// model.bookInfoList.add(item);
|
||||
// } else {
|
||||
// model.bookInfoList[index] = item;
|
||||
// }
|
||||
// index++;
|
||||
// });
|
||||
// }
|
||||
// page = page_ + 1;
|
||||
// total = d.data["total"];
|
||||
// updateAll();
|
||||
// }).catchError((d) {
|
||||
// lock = false;
|
||||
// finished?.call();
|
||||
// });
|
||||
// }
|
||||
getData({int count = 10, Function? finished}) {
|
||||
if (page != 0 && page * count > total) {
|
||||
finished?.call();
|
||||
return;
|
||||
}
|
||||
if (lock) {
|
||||
finished?.call();
|
||||
return;
|
||||
}
|
||||
lock = true;
|
||||
int page_ = page;
|
||||
String tel = Get.find<UserInfoController>().model.user?.phone ?? "";
|
||||
if (tel.isEmpty) {
|
||||
showToast("用户未存在手机号");
|
||||
finished?.call();
|
||||
return;
|
||||
}
|
||||
ApiService.reservation
|
||||
.get(
|
||||
"/agent/userBook/list?extUserId=$tel&page=$page_&size=$count&sort=create_time,desc")
|
||||
.then((d) {
|
||||
lock = false;
|
||||
finished?.call();
|
||||
if (page == 0) {
|
||||
model.bookInfoList = d.data["records"];
|
||||
} else {
|
||||
int index = 0;
|
||||
d.data["records"]?.forEach((item) {
|
||||
if (model.bookInfoList
|
||||
.indexWhere((item2) => item2["id"] == item["id"]) ==
|
||||
-1) {
|
||||
model.bookInfoList.add(item);
|
||||
} else {
|
||||
model.bookInfoList[index] = item;
|
||||
}
|
||||
index++;
|
||||
});
|
||||
}
|
||||
page = page_ + 1;
|
||||
total = d.data["total"];
|
||||
updateAll();
|
||||
}).catchError((d) {
|
||||
lock = false;
|
||||
finished?.call();
|
||||
});
|
||||
}
|
||||
|
||||
// cancelBook(id, {Function? success}) {
|
||||
// String tel = Get.find<UserInfoController>().model.user?.tel ?? "";
|
||||
// if (tel.isEmpty) {
|
||||
// showToast("用户未存在手机号");
|
||||
// return;
|
||||
// }
|
||||
// LoadingDialog.show("提交中...");
|
||||
// ApiService.reservation
|
||||
// .post("/agent/userBook/cancel?extUserId=$tel&id=$id")
|
||||
// .then((d) {
|
||||
// page = 0;
|
||||
// getData(finished: () {
|
||||
// LoadingDialog.hide();
|
||||
// });
|
||||
// success?.call();
|
||||
// }).catchError((d) {
|
||||
// LoadingDialog.hide();
|
||||
// });
|
||||
// }
|
||||
cancelBook(id, {Function? success}) {
|
||||
String tel = Get.find<UserInfoController>().model.user?.phone ?? "";
|
||||
if (tel.isEmpty) {
|
||||
showToast("用户未存在手机号");
|
||||
return;
|
||||
}
|
||||
LoadingDialog.show("提交中...");
|
||||
ApiService.reservation
|
||||
.post("/agent/userBook/cancel?extUserId=$tel&id=$id")
|
||||
.then((d) {
|
||||
page = 0;
|
||||
getData(finished: () {
|
||||
LoadingDialog.hide();
|
||||
});
|
||||
success?.call();
|
||||
}).catchError((d) {
|
||||
LoadingDialog.hide();
|
||||
});
|
||||
}
|
||||
|
||||
// messageAdd(Map data) {
|
||||
// return ApiService.request.post("/api/message/info", data: {
|
||||
// "type": 0,
|
||||
// "status": 1,
|
||||
// "read": 1,
|
||||
// "data": jsonEncode(data)
|
||||
// });
|
||||
// }
|
||||
messageAdd(Map data) {
|
||||
return ApiService.request.post("/api/message/info", data: {
|
||||
"type": 0,
|
||||
"status": 1,
|
||||
"read": 1,
|
||||
"data": jsonEncode(data)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ class WeatherModelController extends GetControllerEx<WeatherModel> {
|
||||
// 获取当前位置并存储到 model
|
||||
Future<void> _getCurrentLocation() async {
|
||||
try {
|
||||
Position position = await _determinePosition();
|
||||
Position position = await determinePosition();
|
||||
if (position == null) {
|
||||
throw Exception("获取位置失败");
|
||||
}
|
||||
@@ -97,7 +97,7 @@ class WeatherModelController extends GetControllerEx<WeatherModel> {
|
||||
}
|
||||
|
||||
// 获取当前位置
|
||||
Future<Position> _determinePosition() async {
|
||||
Future<Position> determinePosition() async {
|
||||
bool serviceEnabled;
|
||||
LocationPermission permission;
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import 'package:vbvs_app/common/color/AppGlobal.dart';
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/util/CheckNetwork.dart';
|
||||
import 'package:vbvs_app/common/util/CommonVariables.dart';
|
||||
import 'package:vbvs_app/common/util/Dio.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
import 'package:vbvs_app/controller/date/CalendarController.dart';
|
||||
@@ -85,7 +86,7 @@ Future<void> main() async {
|
||||
await initLanguageSetting();
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
// ApiService.init();
|
||||
ApiService.init();
|
||||
await GetStorage.init();
|
||||
// 初始化登录
|
||||
await initLocalStorage();
|
||||
|
||||
@@ -875,7 +875,7 @@ Future showOneSelectionDialog(
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: themeController.currentColor.sc3,
|
||||
color: Colors.white,
|
||||
fontSize: 30.rpx,
|
||||
)),
|
||||
ClickableContainer(
|
||||
|
||||
@@ -45,6 +45,7 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
||||
),
|
||||
),
|
||||
child: Scaffold(
|
||||
resizeToAvoidBottomInset: true, // 自动调整页面避免被键盘遮挡
|
||||
backgroundColor: Colors.transparent,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.transparent,
|
||||
@@ -1779,8 +1780,8 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||
15, 15, 15, AppConstants.page_button_bottom_padding),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 30.rpx,
|
||||
30.rpx, AppConstants.page_button_bottom_padding),
|
||||
child: Container(
|
||||
width: bodysize!.maxWidth,
|
||||
height: bodysize!.maxHeight * 0.056,
|
||||
@@ -1836,61 +1837,7 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
// Container(
|
||||
// width: bodysize!.maxWidth,
|
||||
// height: bodysize!.maxHeight * 0.056,
|
||||
// decoration: BoxDecoration(
|
||||
// color: FlutterFlowTheme.of(context)
|
||||
// .secondaryBackground,
|
||||
// borderRadius: BorderRadius.circular(16.rpx),
|
||||
// ),
|
||||
// child: FFButtonWidget(
|
||||
// onPressed: () {
|
||||
// print('Button pressed ...');
|
||||
// controller.submitRepair(context).then((msg) {
|
||||
// if (msg.isEmpty) {
|
||||
// MessageListController messageListController =
|
||||
// Get.find();
|
||||
// messageListController.addMessage();
|
||||
// Get.to(() => ApplyRepairSuccessPage(),
|
||||
// arguments: {'model': controller.model});
|
||||
// controller.model =
|
||||
// ApplyRepairModel(); // 在 submitRepair 完成后执行
|
||||
// controller.updateAll();
|
||||
// }
|
||||
// }).catchError((error) {
|
||||
// // 错误处理
|
||||
// print('Error: $error');
|
||||
// });
|
||||
// },
|
||||
// text: '提交申请',
|
||||
// options: FFButtonOptions(
|
||||
// height: 40,
|
||||
// padding: const EdgeInsetsDirectional.fromSTEB(
|
||||
// 24, 0, 24, 0),
|
||||
// iconPadding: const EdgeInsetsDirectional.fromSTEB(
|
||||
// 0, 0, 0, 0),
|
||||
// color: const Color(0xFFD3B684),
|
||||
// textStyle: FlutterFlowTheme.of(context)
|
||||
// .titleSmall
|
||||
// .override(
|
||||
// fontFamily: 'Readex Pro',
|
||||
// color: Colors.white,
|
||||
// fontSize: AppFontsize.normal_text_size,
|
||||
// letterSpacing: 0,
|
||||
// ),
|
||||
// elevation: 0,
|
||||
// borderSide: const BorderSide(
|
||||
// color: Colors.transparent,
|
||||
// width: 1,
|
||||
// ),
|
||||
// borderRadius: BorderRadius.circular(8),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
),
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -144,7 +144,7 @@ class _BluetoothState extends State<BluetoothPage> {
|
||||
_buildMenuButton(
|
||||
context, '睡眠习惯', "/sleepHabitPage"),
|
||||
_buildMenuButton(
|
||||
context, '分享设备', "/devicePeopleInfo"),
|
||||
context, '分享设备', "/deviceSharePage"),
|
||||
_buildMenuButton(
|
||||
context, '解绑', "/devicePeopleInfo"),
|
||||
],
|
||||
|
||||
@@ -1,19 +1,11 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/book_info_controller.dart';
|
||||
|
||||
class BookDateWidget extends GetView<BookInfoController> {
|
||||
// final String week;
|
||||
// final String date;
|
||||
|
||||
// const BookDateWidget({
|
||||
// super.key,
|
||||
// String? week,
|
||||
// String? date,
|
||||
// }) : this.week = week ?? '周一',
|
||||
// this.date = date ?? '07/10';
|
||||
|
||||
int index;
|
||||
BookInfoController bookInfoController;
|
||||
|
||||
@@ -22,25 +14,25 @@ class BookDateWidget extends GetView<BookInfoController> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return InkWell(onTap: () {
|
||||
// if(index == controller.model.datetimes_index) {
|
||||
// return;
|
||||
// }
|
||||
// controller.model.datetimes_index = index;
|
||||
// controller.time_periodChange();
|
||||
// controller.updateAll();
|
||||
if (index == controller.model.datetimes_index) {
|
||||
return;
|
||||
}
|
||||
controller.model.datetimes_index = index;
|
||||
controller.time_periodChange();
|
||||
controller.updateAll();
|
||||
}, child: Obx(() {
|
||||
return Container(
|
||||
width: 71.5,
|
||||
height: 71.5,
|
||||
width: 144.rpx,
|
||||
height: 143.rpx,
|
||||
constraints: BoxConstraints(
|
||||
minHeight: 70,
|
||||
minHeight: 140.rpx,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
// color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
color: controller.model.datetimes_index == index
|
||||
? stringToColor('#D3B684')
|
||||
: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
? Color(0XFF84F5FF)
|
||||
: Color(0xFF003058),
|
||||
borderRadius: BorderRadius.circular(13.rpx),
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
@@ -50,32 +42,32 @@ class BookDateWidget extends GetView<BookInfoController> {
|
||||
child: Text(
|
||||
"${bookInfoController.model.datetimes![index]?['dayName']}",
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
color: controller.model.datetimes_index == index
|
||||
? stringToColor('#FFFFFF')
|
||||
: stringToColor('#333333'),
|
||||
),
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
color: controller.model.datetimes_index == index
|
||||
? Color(0XFF011D33)
|
||||
: Colors.white,
|
||||
fontSize: 26.rpx),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
child: Text(
|
||||
"${bookInfoController.model.datetimes![index]?['day']}",
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
color: controller.model.datetimes_index == index
|
||||
? stringToColor('#FFFFFF')
|
||||
: stringToColor('#333333'),
|
||||
),
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
color: controller.model.datetimes_index == index
|
||||
? Color(0XFF011D33)
|
||||
: Colors.white,
|
||||
fontSize: 19.rpx),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
child: Icon(
|
||||
Icons.keyboard_arrow_down_rounded,
|
||||
color: controller.model.datetimes_index == index
|
||||
? stringToColor('#FFFFFF')
|
||||
: stringToColor('#333333'),
|
||||
? Color(0XFF011D33)
|
||||
: Colors.white,
|
||||
size: 12,
|
||||
),
|
||||
),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -106,7 +106,7 @@ class DeviceInfoWidget extends GetView {
|
||||
text: '设备ID:' +
|
||||
(deviceListController.model
|
||||
.deviceList[
|
||||
index]['id'] ??
|
||||
index]['_id'] ??
|
||||
''),
|
||||
style: FlutterFlowTheme.of(
|
||||
context)
|
||||
@@ -232,13 +232,9 @@ class DeviceInfoWidget extends GetView {
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0, 36.rpx, 0, 0),
|
||||
child: Container(
|
||||
width: MediaQuery.sizeOf(context).width,
|
||||
height: 130,
|
||||
constraints: BoxConstraints(
|
||||
minHeight: 1,
|
||||
maxHeight: 1,
|
||||
),
|
||||
height: 0.5.rpx,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFB6BBC9),
|
||||
color: Color(0xFF929699),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -9,324 +9,330 @@ import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/color/appFontsize.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/experience_store_list_page.dart';
|
||||
import 'package:vbvs_app/controller/weather/weather_controller.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/Empty.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/experience_store_widget.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/searchWidget.dart';
|
||||
|
||||
class ExperienceStorePage extends GetView<ExperienceStoreListController> {
|
||||
class ExperienceStorePage extends StatefulWidget {
|
||||
ExperienceStorePage({super.key});
|
||||
@override
|
||||
State<ExperienceStorePage> createState() => _ExperienceStorePageState();
|
||||
}
|
||||
|
||||
// class _ExperienceStorePageState extends State<ExperienceStorePage> {
|
||||
// get controller => Get.find<ExperienceStoreListController>();
|
||||
// final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||
class _ExperienceStorePageState extends State<ExperienceStorePage> {
|
||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||
BoxConstraints? bodysize;
|
||||
|
||||
ScrollController scrollController = ScrollController();
|
||||
ExperienceStoreListController controller = Get.find();
|
||||
WeatherModelController weatherModelController = Get.find();
|
||||
int runTime = 0;
|
||||
|
||||
// @override
|
||||
// void initState() {
|
||||
// // TODO: implement initState
|
||||
// super.initState();
|
||||
// Timer(Duration(milliseconds: 100), () async {
|
||||
// controller.resetParm();
|
||||
// await controller.determinePosition();
|
||||
// controller.page = 0;
|
||||
// controller.getData();
|
||||
// scrollController.addListener(() {
|
||||
// int ctime = DateTime.now().millisecondsSinceEpoch;
|
||||
// if (ctime - runTime > 100 &&
|
||||
// scrollController.position.pixels + 80 >
|
||||
// scrollController.position.maxScrollExtent) {
|
||||
// runTime = ctime;
|
||||
// print(
|
||||
// "bottom get more data ${scrollController.position.pixels} ${scrollController.position.maxScrollExtent}");
|
||||
// controller.getData();
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
@override
|
||||
void initState() {
|
||||
// TODO: implement initState
|
||||
super.initState();
|
||||
Timer(Duration(milliseconds: 100), () async {
|
||||
controller.resetParm();
|
||||
await weatherModelController.determinePosition();
|
||||
controller.page = 0;
|
||||
controller.getData();
|
||||
scrollController.addListener(() {
|
||||
int ctime = DateTime.now().millisecondsSinceEpoch;
|
||||
if (ctime - runTime > 100 &&
|
||||
scrollController.position.pixels + 80 >
|
||||
scrollController.position.maxScrollExtent) {
|
||||
runTime = ctime;
|
||||
print(
|
||||
"bottom get more data ${scrollController.position.pixels} ${scrollController.position.maxScrollExtent}");
|
||||
controller.getData();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(builder: (context, cc) {
|
||||
controller.model.experienceStoreModelList = [
|
||||
{
|
||||
"id": "5b82d1d9c33c74647e7624ec1db7918f",
|
||||
"enabled": true,
|
||||
"code": "3401002",
|
||||
"name": "SWES眠花糖合肥省委大院体验店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "ed648f977422a9f32a05b4892a3cb529",
|
||||
"salePerson": null,
|
||||
"deptId": 3,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "18156022846",
|
||||
"hotline": "0551-64464894",
|
||||
"city": "合肥市",
|
||||
"district": "庐阳区",
|
||||
"addressDetail": "合肥市庐阳区逍遥津街道南含山路与红星路交汇处",
|
||||
"image": "",
|
||||
"latitude": "31.858934",
|
||||
"longitude": "117.282166",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701133326000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1709193588000,
|
||||
"updateAdminId": null,
|
||||
"distance": 2.2
|
||||
},
|
||||
{
|
||||
"id": "97603deebb83f610f73acf5d0def2bce",
|
||||
"enabled": true,
|
||||
"code": "3401003",
|
||||
"name": "SWES眠花糖合肥安粮国贸体验店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "69297c65588adde4ee5de3c43a2c4033",
|
||||
"salePerson": null,
|
||||
"deptId": 3,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "18655643429",
|
||||
"hotline": "0551-65156985",
|
||||
"city": "合肥市",
|
||||
"district": "政务新区",
|
||||
"addressDetail": "安徽省合肥市蜀山区合作化南路16号",
|
||||
"image": "",
|
||||
"latitude": "31.82018",
|
||||
"longitude": "117.25367",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701133473000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1709193752000,
|
||||
"updateAdminId": null,
|
||||
"distance": 3.5
|
||||
},
|
||||
{
|
||||
"id": "b6b588d7ff6b248115ee3e5951cf39a1",
|
||||
"enabled": true,
|
||||
"code": "3301001",
|
||||
"name": "SWES眠花糖杭州南星桥旗舰店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "f3a5e7935f65e94bc5aa6b2d63211e61",
|
||||
"salePerson": null,
|
||||
"deptId": 33,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "15222919097",
|
||||
"hotline": "0571-86718606",
|
||||
"city": "杭州市",
|
||||
"district": "上城区",
|
||||
"addressDetail": "浙江省杭州市上城区飞云江路45号一层102室",
|
||||
"image": "",
|
||||
"latitude": "30.21667",
|
||||
"longitude": "120.17757",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701135379000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1709194185000,
|
||||
"updateAdminId": null,
|
||||
"distance": 332.1
|
||||
},
|
||||
{
|
||||
"id": "38fdbb715dc7bfddae3e32685c288e49",
|
||||
"enabled": true,
|
||||
"code": "3102001",
|
||||
"name": "SWES眠花糖上海复兴荟旗舰店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "4ae944badb423197bc54c0a6ec252944",
|
||||
"salePerson": null,
|
||||
"deptId": 32,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "13053037959",
|
||||
"hotline": "021-63391962",
|
||||
"city": "上海市",
|
||||
"district": "黄浦区",
|
||||
"addressDetail": "上海市黄浦区复兴东路1108号1层-1室",
|
||||
"image": "",
|
||||
"latitude": "31.22209",
|
||||
"longitude": "121.494667",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701135192000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1709194151000,
|
||||
"updateAdminId": null,
|
||||
"distance": 407.3
|
||||
},
|
||||
{
|
||||
"id": "af908e6c5d1a2c8113b1c73117e15064",
|
||||
"enabled": true,
|
||||
"code": "3101001",
|
||||
"name": "SWES眠花糖上海外滩九里体验店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "1794f729f27ad4a44afad10061446dd5",
|
||||
"salePerson": null,
|
||||
"deptId": 31,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "13856414205",
|
||||
"hotline": "021-63391208",
|
||||
"city": "上海市",
|
||||
"district": "黄浦区",
|
||||
"addressDetail": "上海市黄浦区紫霞路103-107号1层103-12室",
|
||||
"image": "",
|
||||
"latitude": "31.218434",
|
||||
"longitude": "121.502098",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701134886000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1709194053000,
|
||||
"updateAdminId": null,
|
||||
"distance": 408.1
|
||||
},
|
||||
{
|
||||
"id": "a5f1fc9a03ba827841c473e28a3fcdb2",
|
||||
"enabled": true,
|
||||
"code": "3101002",
|
||||
"name": "SWES眠花糖上海尚悦湾旗舰店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "d97ec48ee3b1060eb7ff5c81f0ffa37f",
|
||||
"salePerson": null,
|
||||
"deptId": 31,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "19523660595",
|
||||
"hotline": "021-63336707",
|
||||
"city": "上海市",
|
||||
"district": "浦东新区",
|
||||
"addressDetail": "上海市浦东新区银城路66号",
|
||||
"image": "",
|
||||
"latitude": "31.24103",
|
||||
"longitude": "121.51045",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701135694000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1709194087000,
|
||||
"updateAdminId": null,
|
||||
"distance": 408.4
|
||||
},
|
||||
{
|
||||
"id": "21ddfb547060e930f841605dc4469bec",
|
||||
"enabled": true,
|
||||
"code": "1101001",
|
||||
"name": "SWES眠花糖北京富力城旗舰店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "b66028a628ce0fcb871ab7db5c17128e",
|
||||
"salePerson": null,
|
||||
"deptId": 11,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "15556119960",
|
||||
"hotline": "010-58766288",
|
||||
"city": "北京市",
|
||||
"district": "朝阳区",
|
||||
"addressDetail": "北京市朝阳区天力街3号楼1至2层商业12号",
|
||||
"image": "",
|
||||
"latitude": "39.89862",
|
||||
"longitude": "116.45851",
|
||||
"isDel": false,
|
||||
"isAppShow": false,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701134049000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1733193484000,
|
||||
"updateAdminId": null,
|
||||
"distance": 897.7
|
||||
},
|
||||
{
|
||||
"id": "432bfdf508115827c5dca474b72dea68",
|
||||
"enabled": true,
|
||||
"code": "1102001",
|
||||
"name": "SWES眠花糖北京英皇中心旗舰店",
|
||||
"customerId": null,
|
||||
"setNetCustomerKid": null,
|
||||
"customer": null,
|
||||
"kingdeeId": "",
|
||||
"channel": null,
|
||||
"salePersonId": "155848302d5b6f2768111574f0161816",
|
||||
"salePerson": null,
|
||||
"deptId": 12,
|
||||
"deptName": null,
|
||||
"dept": null,
|
||||
"introduction": "",
|
||||
"mobile": "18225602774",
|
||||
"hotline": "010-53269059",
|
||||
"city": "北京市",
|
||||
"district": "朝阳区",
|
||||
"addressDetail": "北京市朝阳区建国门外大街丁12号",
|
||||
"image": "",
|
||||
"latitude": "39.907911",
|
||||
"longitude": "116.444584",
|
||||
"isDel": false,
|
||||
"isAppShow": true,
|
||||
"business": true,
|
||||
"authEndTime": null,
|
||||
"createTime": 1701134158000,
|
||||
"createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
"updateTime": 1710490644000,
|
||||
"updateAdminId": null,
|
||||
"distance": 898.9
|
||||
}
|
||||
];
|
||||
// controller.model.experienceStoreModelList = [
|
||||
// {
|
||||
// "id": "5b82d1d9c33c74647e7624ec1db7918f",
|
||||
// "enabled": true,
|
||||
// "code": "3401002",
|
||||
// "name": "SWES眠花糖合肥省委大院体验店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "ed648f977422a9f32a05b4892a3cb529",
|
||||
// "salePerson": null,
|
||||
// "deptId": 3,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "18156022846",
|
||||
// "hotline": "0551-64464894",
|
||||
// "city": "合肥市",
|
||||
// "district": "庐阳区",
|
||||
// "addressDetail": "合肥市庐阳区逍遥津街道南含山路与红星路交汇处",
|
||||
// "image": "",
|
||||
// "latitude": "31.858934",
|
||||
// "longitude": "117.282166",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701133326000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1709193588000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 2.2
|
||||
// },
|
||||
// {
|
||||
// "id": "97603deebb83f610f73acf5d0def2bce",
|
||||
// "enabled": true,
|
||||
// "code": "3401003",
|
||||
// "name": "SWES眠花糖合肥安粮国贸体验店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "69297c65588adde4ee5de3c43a2c4033",
|
||||
// "salePerson": null,
|
||||
// "deptId": 3,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "18655643429",
|
||||
// "hotline": "0551-65156985",
|
||||
// "city": "合肥市",
|
||||
// "district": "政务新区",
|
||||
// "addressDetail": "安徽省合肥市蜀山区合作化南路16号",
|
||||
// "image": "",
|
||||
// "latitude": "31.82018",
|
||||
// "longitude": "117.25367",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701133473000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1709193752000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 3.5
|
||||
// },
|
||||
// {
|
||||
// "id": "b6b588d7ff6b248115ee3e5951cf39a1",
|
||||
// "enabled": true,
|
||||
// "code": "3301001",
|
||||
// "name": "SWES眠花糖杭州南星桥旗舰店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "f3a5e7935f65e94bc5aa6b2d63211e61",
|
||||
// "salePerson": null,
|
||||
// "deptId": 33,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "15222919097",
|
||||
// "hotline": "0571-86718606",
|
||||
// "city": "杭州市",
|
||||
// "district": "上城区",
|
||||
// "addressDetail": "浙江省杭州市上城区飞云江路45号一层102室",
|
||||
// "image": "",
|
||||
// "latitude": "30.21667",
|
||||
// "longitude": "120.17757",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701135379000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1709194185000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 332.1
|
||||
// },
|
||||
// {
|
||||
// "id": "38fdbb715dc7bfddae3e32685c288e49",
|
||||
// "enabled": true,
|
||||
// "code": "3102001",
|
||||
// "name": "SWES眠花糖上海复兴荟旗舰店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "4ae944badb423197bc54c0a6ec252944",
|
||||
// "salePerson": null,
|
||||
// "deptId": 32,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "13053037959",
|
||||
// "hotline": "021-63391962",
|
||||
// "city": "上海市",
|
||||
// "district": "黄浦区",
|
||||
// "addressDetail": "上海市黄浦区复兴东路1108号1层-1室",
|
||||
// "image": "",
|
||||
// "latitude": "31.22209",
|
||||
// "longitude": "121.494667",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701135192000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1709194151000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 407.3
|
||||
// },
|
||||
// {
|
||||
// "id": "af908e6c5d1a2c8113b1c73117e15064",
|
||||
// "enabled": true,
|
||||
// "code": "3101001",
|
||||
// "name": "SWES眠花糖上海外滩九里体验店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "1794f729f27ad4a44afad10061446dd5",
|
||||
// "salePerson": null,
|
||||
// "deptId": 31,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "13856414205",
|
||||
// "hotline": "021-63391208",
|
||||
// "city": "上海市",
|
||||
// "district": "黄浦区",
|
||||
// "addressDetail": "上海市黄浦区紫霞路103-107号1层103-12室",
|
||||
// "image": "",
|
||||
// "latitude": "31.218434",
|
||||
// "longitude": "121.502098",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701134886000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1709194053000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 408.1
|
||||
// },
|
||||
// {
|
||||
// "id": "a5f1fc9a03ba827841c473e28a3fcdb2",
|
||||
// "enabled": true,
|
||||
// "code": "3101002",
|
||||
// "name": "SWES眠花糖上海尚悦湾旗舰店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "d97ec48ee3b1060eb7ff5c81f0ffa37f",
|
||||
// "salePerson": null,
|
||||
// "deptId": 31,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "19523660595",
|
||||
// "hotline": "021-63336707",
|
||||
// "city": "上海市",
|
||||
// "district": "浦东新区",
|
||||
// "addressDetail": "上海市浦东新区银城路66号",
|
||||
// "image": "",
|
||||
// "latitude": "31.24103",
|
||||
// "longitude": "121.51045",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701135694000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1709194087000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 408.4
|
||||
// },
|
||||
// {
|
||||
// "id": "21ddfb547060e930f841605dc4469bec",
|
||||
// "enabled": true,
|
||||
// "code": "1101001",
|
||||
// "name": "SWES眠花糖北京富力城旗舰店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "b66028a628ce0fcb871ab7db5c17128e",
|
||||
// "salePerson": null,
|
||||
// "deptId": 11,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "15556119960",
|
||||
// "hotline": "010-58766288",
|
||||
// "city": "北京市",
|
||||
// "district": "朝阳区",
|
||||
// "addressDetail": "北京市朝阳区天力街3号楼1至2层商业12号",
|
||||
// "image": "",
|
||||
// "latitude": "39.89862",
|
||||
// "longitude": "116.45851",
|
||||
// "isDel": false,
|
||||
// "isAppShow": false,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701134049000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1733193484000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 897.7
|
||||
// },
|
||||
// {
|
||||
// "id": "432bfdf508115827c5dca474b72dea68",
|
||||
// "enabled": true,
|
||||
// "code": "1102001",
|
||||
// "name": "SWES眠花糖北京英皇中心旗舰店",
|
||||
// "customerId": null,
|
||||
// "setNetCustomerKid": null,
|
||||
// "customer": null,
|
||||
// "kingdeeId": "",
|
||||
// "channel": null,
|
||||
// "salePersonId": "155848302d5b6f2768111574f0161816",
|
||||
// "salePerson": null,
|
||||
// "deptId": 12,
|
||||
// "deptName": null,
|
||||
// "dept": null,
|
||||
// "introduction": "",
|
||||
// "mobile": "18225602774",
|
||||
// "hotline": "010-53269059",
|
||||
// "city": "北京市",
|
||||
// "district": "朝阳区",
|
||||
// "addressDetail": "北京市朝阳区建国门外大街丁12号",
|
||||
// "image": "",
|
||||
// "latitude": "39.907911",
|
||||
// "longitude": "116.444584",
|
||||
// "isDel": false,
|
||||
// "isAppShow": true,
|
||||
// "business": true,
|
||||
// "authEndTime": null,
|
||||
// "createTime": 1701134158000,
|
||||
// "createAdminId": "f6da6faa2d50e7eff7b54bcdd55b0283",
|
||||
// "updateTime": 1710490644000,
|
||||
// "updateAdminId": null,
|
||||
// "distance": 898.9
|
||||
// }
|
||||
// ];
|
||||
|
||||
bodysize = cc;
|
||||
|
||||
return GestureDetector(
|
||||
@@ -411,6 +417,7 @@ class ExperienceStorePage extends GetView<ExperienceStoreListController> {
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
Obx(() {
|
||||
if (controller
|
||||
.model.experienceStoreModelList.length ==
|
||||
@@ -420,6 +427,7 @@ class ExperienceStorePage extends GetView<ExperienceStoreListController> {
|
||||
return Container();
|
||||
}
|
||||
}),
|
||||
|
||||
Expanded(
|
||||
child: Obx(() => ListView(
|
||||
controller: scrollController,
|
||||
|
||||
@@ -188,27 +188,23 @@ class ExperienceStoreWidget extends GetView {
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
//"latitude" -> "31.858934" "longitude" -> "117.282166"
|
||||
// AppMapLocation.checkInstalledApps()
|
||||
// .then((d) {
|
||||
// if (AppMapLocation
|
||||
// .availableMapsToNames.isEmpty) {
|
||||
// showToast("未检测到导航软件");
|
||||
// } else {
|
||||
// showOneSelectionDialog(context,
|
||||
// title: "选择地图",
|
||||
// arr: AppMapLocation
|
||||
// .availableMapsToNames,
|
||||
// checkChange: (index) {
|
||||
// AppMapLocation.launchMap(
|
||||
// index,
|
||||
// data["name"],
|
||||
// double.parse(
|
||||
// "${data["latitude"]}"),
|
||||
// double.parse(
|
||||
// "${data["longitude"]}"));
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
AppMapLocation.checkInstalledApps().then((d) {
|
||||
if (AppMapLocation
|
||||
.availableMapsToNames.isEmpty) {
|
||||
showToast("未检测到导航软件");
|
||||
} else {
|
||||
showOneSelectionDialog(context,
|
||||
title: "选择地图",
|
||||
arr: AppMapLocation.availableMapsToNames,
|
||||
checkChange: (index) {
|
||||
AppMapLocation.launchMap(
|
||||
index,
|
||||
data["name"],
|
||||
double.parse("${data["latitude"]}"),
|
||||
double.parse("${data["longitude"]}"));
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
width: MediaQuery.sizeOf(context).width * 0.105,
|
||||
|
||||
@@ -281,7 +281,7 @@ class _MinePageState extends State<NewMinePage> {
|
||||
children: [
|
||||
_buildListTile('assets/img/icon/order.svg',
|
||||
'我的订单', '快捷查看我在网上的订单记录',
|
||||
showTopLine: true, path: "/issueListpage"),
|
||||
showTopLine: true, path: ""),
|
||||
_buildListTile('assets/img/icon/store.svg',
|
||||
'门店体验', '如果想免费体验智能设备,可在此进行提前预约',
|
||||
path: "/experienceStorePage"),
|
||||
@@ -293,7 +293,7 @@ class _MinePageState extends State<NewMinePage> {
|
||||
),
|
||||
_buildListTile('assets/img/icon/mall.svg', '网上商城',
|
||||
'最新的智能产品线上购买服务',
|
||||
path: "/issueListpage"),
|
||||
path: ""),
|
||||
_buildListTile('assets/img/icon/address.svg',
|
||||
'地址管理', '用于收货和报修时联系您',
|
||||
path: "/addressListPage"),
|
||||
@@ -304,7 +304,7 @@ class _MinePageState extends State<NewMinePage> {
|
||||
'assets/img/icon/customer_service.svg',
|
||||
'在线客服',
|
||||
'购买和使用智能床过程中,如果遇到疑问可与客服进行联系',
|
||||
path: "/issueListpage"),
|
||||
path: ""),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -345,15 +345,19 @@ class _MinePageState extends State<NewMinePage> {
|
||||
highlightColor: Colors.white,
|
||||
padding: EdgeInsets.all(0.rpx),
|
||||
onTap: () {
|
||||
Get.toNamed(path!);
|
||||
if (path == null || path.isEmpty) {
|
||||
TopSlideNotification.show(context, text: "待开发功能".tr);
|
||||
} else {
|
||||
Get.toNamed(path);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
top: showTopLine
|
||||
? BorderSide(color: Color(0xFF929699), width: 2.rpx)
|
||||
? BorderSide(color: Color(0xFF929699), width: 0.5.rpx)
|
||||
: BorderSide.none,
|
||||
bottom: BorderSide(color: Color(0xFF929699), width: 2.rpx),
|
||||
bottom: BorderSide(color: Color(0xFF929699), width: 0.5.rpx),
|
||||
),
|
||||
),
|
||||
height: 116.rpx,
|
||||
|
||||
@@ -35,7 +35,7 @@ class _PeopleInfoState extends State<PeopleInfoPage> {
|
||||
// }
|
||||
|
||||
getLine() {
|
||||
return Container(height: 0.5.rpx, color: Color(0xFFD8D8D8));
|
||||
return Container(height: 0.5.rpx, color: Color(0xFF929699));
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -158,10 +158,10 @@ class RepairHistoryWidget extends GetView<RepairInfoController> {
|
||||
// color: const Color(0xFF06486F),
|
||||
border: Border(
|
||||
top: index == 0
|
||||
? BorderSide(color: const Color(0xFF929699), width: 1.rpx)
|
||||
? BorderSide(color: const Color(0xFF929699), width: 0.5.rpx)
|
||||
: BorderSide.none,
|
||||
bottom:
|
||||
BorderSide(color: const Color(0xFF929699), width: 1.rpx),
|
||||
BorderSide(color: const Color(0xFF929699), width: 0.5.rpx),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
|
||||
@@ -13,13 +13,6 @@ class Smys extends GetView<SleepingHabitController> {
|
||||
|
||||
// get glController => Get.find<GlobalController>();
|
||||
|
||||
getLine() {
|
||||
return Container(
|
||||
height: 1,
|
||||
color: stringToColor("#152676"),
|
||||
);
|
||||
}
|
||||
|
||||
// updateParm(
|
||||
// {int time = 2, bool isShowToast = true, Function? errorccCallback = null}) {
|
||||
// ApiService.request
|
||||
@@ -87,7 +80,7 @@ class Smys extends GetView<SleepingHabitController> {
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
actions: [],
|
||||
centerTitle: false,
|
||||
),
|
||||
|
||||
@@ -59,7 +59,7 @@ var mhroutes = {
|
||||
"/roomPickerPage": (context) => RoomPickerPage(),
|
||||
"/editBedPage": (context) => EditBedPage(),
|
||||
"/experienceStorePage": (context) => ExperienceStorePage(),
|
||||
"/bookInfoPage": (context, {arguments}) => BookInfoPage(data: arguments),
|
||||
"/bookInfoPage": (context, {arguments}) => BookInfoPage(data: arguments["data"]),
|
||||
"/bookSuccessPage": (contxt, {arguments}) =>
|
||||
BookSuccessPage(data: arguments["data"]),
|
||||
"/myExperiencePage": (context) => MyExperiencePage(),
|
||||
|
||||
56
pubspec.lock
56
pubspec.lock
@@ -498,7 +498,7 @@ packages:
|
||||
easydevice:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "C:\\Users\\wyf\\Desktop\\blue\\easydevice"
|
||||
path: "C:\\Users\\a\\Desktop\\blue\\easydevice"
|
||||
relative: false
|
||||
source: path
|
||||
version: "0.0.1"
|
||||
@@ -652,6 +652,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "6.1.0"
|
||||
flutter_city_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_city_picker
|
||||
sha256: "393f138d90012ed8bbab0d98e1cd97e3c7577f079b43a9d288cdec7f440b6a7e"
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
flutter_credit_card:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -769,6 +777,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.1.3"
|
||||
flutter_slidable:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_slidable
|
||||
sha256: a857de7ea701f276fd6a6c4c67ae885b60729a3449e42766bb0e655171042801
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
flutter_staggered_grid_view:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -785,6 +801,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
flutter_switch:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_switch
|
||||
sha256: b91477f926bba135d2d203d7b24367492662d8d9c3aa6adb960b14c1087d3c41
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.3.2"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -901,13 +925,13 @@ packages:
|
||||
source: hosted
|
||||
version: "13.0.3"
|
||||
geolocator_android:
|
||||
dependency: transitive
|
||||
dependency: "direct overridden"
|
||||
description:
|
||||
name: geolocator_android
|
||||
sha256: fcb1760a50d7500deca37c9a666785c047139b5f9ee15aa5469fae7dbbe3170d
|
||||
sha256: "06e37fa32392f69f133e166ef6b358a8b6afddbf4c418fc236988184cc115a49"
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "4.6.2"
|
||||
version: "4.4.1"
|
||||
geolocator_apple:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -956,6 +980,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
gif:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: gif
|
||||
sha256: ade95694f1471da737922806818ffade2814d1d7f8d10af38ebcf36ace012bc0
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.3.0"
|
||||
glob:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1276,6 +1308,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.1.2-main.4"
|
||||
map_launcher:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: map_launcher
|
||||
sha256: "7436d6ef9ae57ff15beafcedafe0a8f0604006cbecd2d26024c4cfb0158c2b9a"
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "3.5.0"
|
||||
mapbox_search:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -2098,6 +2138,14 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "3.7.1"
|
||||
timeline_tile:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: timeline_tile
|
||||
sha256: "85ec2023c67137397c2812e3e848b2fb20b410b67cd9aff304bb5480c376fc0c"
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
timing:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
Reference in New Issue
Block a user