更新绑定时候选择房间和设置房间名称
This commit is contained in:
@@ -241,6 +241,7 @@ class MHTBlueToothController extends GetControllerEx<MHTBlueToothModel> {
|
||||
if (currentFullDevice != null) {
|
||||
currentFullDevice!.macAID = res.data['macA'];
|
||||
currentFullDevice!.macBID = res.data['macB'];
|
||||
currentFullDevice!.deviceID = res.data['id'];
|
||||
}
|
||||
}
|
||||
return res;
|
||||
|
||||
@@ -195,7 +195,12 @@ class _MHTPeopleInfoPageState extends State<MHTPeopleInfoPage> {
|
||||
TopSlideNotification.show(context, text: "保存成功");
|
||||
MHTHomeController mhtHomeController = Get.find();
|
||||
mhtHomeController.getPersonList();
|
||||
Get.offNamed("/bindDeviceSuccess");
|
||||
// Get.offNamed("/bindDeviceSuccess");
|
||||
Map data = {};
|
||||
final device = bluetoothController.currentFullDevice;
|
||||
data['_id'] = device!.deviceID;
|
||||
data['isNextStep'] = true;
|
||||
Get.toNamed("/editBedPage", arguments: data);
|
||||
},
|
||||
colors: const [
|
||||
Color(0xFFFCFCFC),
|
||||
|
||||
@@ -10,7 +10,8 @@ class BlueToothDataModel {
|
||||
int type;
|
||||
String? macAID;
|
||||
String? macBID;
|
||||
DateTime lastSeen; // 添加的最后可见时间字段
|
||||
DateTime lastSeen; // 最后可见时间
|
||||
String? deviceID; // 设备ID
|
||||
|
||||
BlueToothDataModel({
|
||||
this.name = '',
|
||||
@@ -20,12 +21,18 @@ class BlueToothDataModel {
|
||||
required this.type,
|
||||
this.macA = '',
|
||||
this.macB = '',
|
||||
required this.lastSeen, // 添加到构造函数参数
|
||||
required this.lastSeen,
|
||||
this.deviceID, // ✅ 加入构造函数参数
|
||||
});
|
||||
|
||||
factory BlueToothDataModel.fromScanResult(ScanResult result, int type,
|
||||
{bool bind = false, String name = '', String mac = ''}) {
|
||||
// 如果外部没有传入 name,则取 localName
|
||||
factory BlueToothDataModel.fromScanResult(
|
||||
ScanResult result,
|
||||
int type, {
|
||||
bool bind = false,
|
||||
String name = '',
|
||||
String mac = '',
|
||||
String? deviceID, // ✅ 工厂方法接收 deviceID
|
||||
}) {
|
||||
String finalName =
|
||||
name.isNotEmpty ? name : (result.advertisementData.localName ?? '');
|
||||
|
||||
@@ -35,9 +42,10 @@ class BlueToothDataModel {
|
||||
mac: mac,
|
||||
scanResult: result,
|
||||
type: type,
|
||||
macA: '', // 保持原有默认值
|
||||
macB: '', // 保持原有默认值
|
||||
lastSeen: DateTime.now(), // 设置为当前时间
|
||||
macA: '',
|
||||
macB: '',
|
||||
lastSeen: DateTime.now(),
|
||||
deviceID: deviceID, // ✅ 赋值
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -9,11 +9,17 @@ import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/device_list_controller.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/bluetooth.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/device/controller/mht_bluetooth_controller.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
|
||||
|
||||
class EditBedPage extends StatefulWidget {
|
||||
final Map data;
|
||||
EditBedPage({Key? key, required this.data});
|
||||
|
||||
EditBedPage({
|
||||
Key? key,
|
||||
required this.data,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
_EditBedPageState createState() => _EditBedPageState();
|
||||
}
|
||||
@@ -79,6 +85,70 @@ class _EditBedPageState extends State<EditBedPage> {
|
||||
left: 0.rpx,
|
||||
child: returnIconButtomNew,
|
||||
),
|
||||
if (widget.data != null &&
|
||||
(widget.data['isNextStep'] != null &&
|
||||
widget.data['isNextStep'] == true))
|
||||
Positioned(
|
||||
right: 30.rpx,
|
||||
child: CustomCard(
|
||||
borderRadius: 16.rpx,
|
||||
gradientDirection: GradientDirection.vertical,
|
||||
onTap: () async {
|
||||
String serviceAddress =
|
||||
ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.device_show;
|
||||
String queryUrl =
|
||||
"$serviceAddress$serviceName$serviceApi";
|
||||
await requestWithLog(
|
||||
logTitle: "更新设备信息",
|
||||
method: MyHttpMethod.put,
|
||||
queryUrl: queryUrl,
|
||||
data: {
|
||||
"id": editedData["_id"],
|
||||
"name": editedData["name"],
|
||||
},
|
||||
onSuccess: (res) {
|
||||
TopSlideNotification.show(context,
|
||||
text: "修改名称成功".tr);
|
||||
deviceListController.getDeviceList();
|
||||
|
||||
Map data = {};
|
||||
final MHTBlueToothController
|
||||
bluetoothController = Get.find();
|
||||
final device =
|
||||
bluetoothController.currentFullDevice;
|
||||
data['_id'] = device!.deviceID;
|
||||
data['isNextStep'] = true;
|
||||
Get.toNamed("/roomPickerPage",
|
||||
arguments: data);
|
||||
},
|
||||
);
|
||||
},
|
||||
colors: const [
|
||||
Color(0xFFFCFCFC),
|
||||
Color(0xFFF8FAF9),
|
||||
Color(0XFFECF6F3),
|
||||
Color(0XFFD9F0E9),
|
||||
Color(0xFFCEECE3)
|
||||
],
|
||||
child: Container(
|
||||
width: 120.rpx,
|
||||
height: 60.rpx,
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
"下一步",
|
||||
style: TextStyle(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: Color(0XFF011D33),
|
||||
letterSpacing: 0,
|
||||
fontSize: 30.rpx,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -186,6 +256,8 @@ class _EditBedPageState extends State<EditBedPage> {
|
||||
],
|
||||
),
|
||||
),
|
||||
if (widget.data['isNextStep'] == null ||
|
||||
widget.data['isNextStep'] == false)
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 30.rpx, right: 30.rpx, bottom: 85.rpx),
|
||||
@@ -197,7 +269,8 @@ class _EditBedPageState extends State<EditBedPage> {
|
||||
ServiceConstant.service_address;
|
||||
String serviceName =
|
||||
ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.device_show;
|
||||
String serviceApi =
|
||||
ServiceConstant.device_show;
|
||||
String queryUrl =
|
||||
"$serviceAddress$serviceName$serviceApi";
|
||||
await requestWithLog(
|
||||
|
||||
@@ -85,6 +85,75 @@ class _RoomPickerPageState extends State<RoomPickerPage> {
|
||||
left: 0.rpx,
|
||||
child: returnIconButtomNew,
|
||||
),
|
||||
if (widget.data != null &&
|
||||
(widget.data['isNextStep'] != null &&
|
||||
widget.data['isNextStep'] == true))
|
||||
Positioned(
|
||||
right: 30.rpx,
|
||||
child: CustomCard(
|
||||
borderRadius: 16.rpx,
|
||||
gradientDirection: GradientDirection.vertical,
|
||||
onTap: () async {
|
||||
// Get.toNamed("/applyRepairPage");
|
||||
try {
|
||||
String serviceAddress =
|
||||
ServiceConstant.service_address;
|
||||
String serviceName =
|
||||
ServiceConstant.server_service;
|
||||
String serviceApi =
|
||||
ServiceConstant.device_show;
|
||||
String queryUrl =
|
||||
"$serviceAddress$serviceName$serviceApi";
|
||||
await requestWithLog(
|
||||
logTitle: "更新设备信息",
|
||||
method: MyHttpMethod.put,
|
||||
queryUrl: queryUrl,
|
||||
data: {
|
||||
"id": editedData["_id"],
|
||||
"roomId": rooms[selectedIndex]['_id'],
|
||||
},
|
||||
onSuccess: (res) {
|
||||
editedData['roomName'] =
|
||||
rooms[selectedIndex]['name'];
|
||||
TopSlideNotification.show(context,
|
||||
text: "更新成功".tr,
|
||||
textColor: Color(0XFF00C1AA));
|
||||
deviceListController.getDeviceList();
|
||||
Get.offNamed("/bindDeviceSuccess");
|
||||
},
|
||||
onFailure: (res) {
|
||||
TopSlideNotification.show(context,
|
||||
text: "更新失败".tr,
|
||||
textColor: Color(0xFFFF7159));
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
print(e);
|
||||
}
|
||||
},
|
||||
colors: const [
|
||||
Color(0xFFFCFCFC),
|
||||
Color(0xFFF8FAF9),
|
||||
Color(0XFFECF6F3),
|
||||
Color(0XFFD9F0E9),
|
||||
Color(0xFFCEECE3)
|
||||
],
|
||||
child: Container(
|
||||
width: 120.rpx,
|
||||
height: 60.rpx,
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
"下一步",
|
||||
style: TextStyle(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: Color(0XFF011D33),
|
||||
letterSpacing: 0,
|
||||
fontSize: 30.rpx,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -157,6 +226,8 @@ class _RoomPickerPageState extends State<RoomPickerPage> {
|
||||
),
|
||||
const Spacer(),
|
||||
// 完成按钮
|
||||
if (widget.data['isNextStep'] == null ||
|
||||
widget.data['isNextStep'] == false)
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 30.rpx,
|
||||
@@ -197,8 +268,10 @@ class _RoomPickerPageState extends State<RoomPickerPage> {
|
||||
deviceListController.getDeviceList();
|
||||
try {
|
||||
WebviewTestController
|
||||
webviewTestController = Get.find();
|
||||
webviewTestController.web.jsbridge?.dart
|
||||
webviewTestController =
|
||||
Get.find();
|
||||
webviewTestController
|
||||
.web.jsbridge?.dart
|
||||
.alterDevice();
|
||||
} catch (e) {
|
||||
ef.log("[h5]通知列表更新错误:$e");
|
||||
|
||||
Reference in New Issue
Block a user