From 484416255f54a1a6a4ea193eab66f900da72bfce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDaisyWu=E2=80=9D?= <“18682150237@163.com”> Date: Mon, 3 Mar 2025 18:41:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=09=E4=BF=AE=E5=A4=8D=E5=BC=80=E9=94=81?= =?UTF-8?q?=E9=A1=B5-=E7=BB=99=E9=82=AE=E7=AE=B1=E5=8F=91=E7=94=B5?= =?UTF-8?q?=E5=AD=90=E9=92=A5=E5=8C=99=E3=80=81=E6=8E=88=E6=9D=83=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E3=80=81=E7=BE=A4=E5=8F=91=E9=92=A5=E5=8C=99?= =?UTF-8?q?-=E6=8E=A5=E6=94=B6=E8=80=85=E3=80=81=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E9=80=89=E5=85=B6=E4=BB=96=E5=9B=BD=E5=AE=B6?= =?UTF-8?q?=E9=83=BD=E8=83=BD=E5=8F=91=E9=80=81=E2=80=94=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=A4=9A=E4=B8=AAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authorizedAdmin_logic.dart | 10 +++ .../authorizedAdmin/authorizedAdmin_page.dart | 57 +++++++------ .../authorizedAdmin_state.dart | 1 + .../volumeAuthorizationLock_logic.dart | 10 ++- .../volumeAuthorizationLock_page.dart | 63 +++++++------- .../volumeAuthorizationLock_state.dart | 7 +- .../massSendElectronicKey_page.dart | 82 ++++++++++--------- .../view/sendElectronicKeyView_logic.dart | 23 ++++-- .../view/sendElectronicKeyView_page.dart | 54 ++++++------ .../view/sendElectronicKeyView_state.dart | 6 +- 10 files changed, 184 insertions(+), 129 deletions(-) diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart index 18537ef1..290d7dc9 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart @@ -333,6 +333,16 @@ class AuthorizedAdminLogic extends BaseGetXController { } } + @override + void onInit() { + super.onInit(); + + // 监听输入框变化 + state.emailOrPhoneController.addListener(() { + state.emailOrPhone.value = state.emailOrPhoneController.text; + }); + } + @override void onReady() { super.onReady(); diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart index c9e4ff0f..b908e07a 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart @@ -10,6 +10,7 @@ import 'package:star_lock/tools/dateTool.dart'; import 'package:star_lock/tools/pickers/pickers.dart'; import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart'; import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart'; +import 'package:star_lock/tools/regularExpression.dart'; import 'package:star_lock/tools/showTipView.dart'; import 'package:star_lock/tools/storage.dart'; @@ -114,29 +115,32 @@ class _AuthorizedAdminPageState extends State // isHaveRightWidget: true, // rightWidget: getTFWidget(true, '请输入手机号或者邮箱'.tr, 1)), perpetualKeyWidget('接收者'.tr, '请输入手机号或者邮箱'.tr), - CommonItem( - leftTitel: '国家/地区'.tr, - rightTitle: '', - isHaveLine: true, - isHaveRightWidget: true, - isHaveDirection: true, - rightWidget: Text( - '${state.countryName.value} +${state.countryCode.value}', - textAlign: TextAlign.end, - style: - TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor), - ), - action: () async { - final Object? result = await Navigator.pushNamed( - context, Routers.selectCountryRegionPage); - if (result != null) { - result as Map; - state.countryCode.value = result['code']; - state.countryName.value = result['countryName']; - setState(() {}); - } - }, - ), + Obx(() => Visibility( + visible: RegularExpression() + .isPhoneNumber(logic.state.emailOrPhone.value), + child: CommonItem( + leftTitel: '国家/地区'.tr, + rightTitle: '', + isHaveLine: true, + isHaveRightWidget: true, + isHaveDirection: true, + rightWidget: Text( + '${state.countryName.value} +${state.countryCode.value}', + textAlign: TextAlign.end, + style: TextStyle( + fontSize: 22.sp, color: AppColors.darkGrayTextColor), + ), + action: () async { + final Object? result = await Navigator.pushNamed( + context, Routers.selectCountryRegionPage); + if (result != null) { + result as Map; + state.countryCode.value = result['code']; + state.countryName.value = result['countryName']; + setState(() {}); + } + }, + ))), KeyNameItem( leftTitel: '姓名'.tr, rightTitle: '请输入'.tr, @@ -268,6 +272,10 @@ class _AuthorizedAdminPageState extends State ) ], ), + ), + Container( + color: AppColors.greyLineColor, // 设置边框颜色 + height: 2.0.h, // ) ], ); @@ -571,6 +579,9 @@ class _AuthorizedAdminPageState extends State BorderSide(width: 0, color: Colors.transparent)), contentPadding: const EdgeInsets.symmetric(vertical: 0), ), + onChanged: (value) { + logic.update(); + }, ), ), SizedBox( diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart index 3b092812..59bd84ae 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart @@ -6,6 +6,7 @@ import 'package:star_lock/tools/dateTool.dart'; class AuthorizedAdminState { final TextEditingController emailOrPhoneController = TextEditingController(); //邮箱/手机号输入框 + RxString emailOrPhone = ''.obs; // 在logic的state中添加一个Rx变量 final TextEditingController keyNameController = TextEditingController(); //钥匙名输入框 late TabController tabController; diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart index 4db8d338..27bde4bc 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart @@ -1,4 +1,3 @@ - import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/lockSet/basicInformation/basicInformation/KeyDetailEntity.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -57,4 +56,13 @@ class VolumeAuthorizationLockLogic extends BaseGetXController { } } + @override + void onInit() { + super.onInit(); + + // 监听输入框变化 + state.emailOrPhoneController.addListener(() { + state.emailOrPhone.value = state.emailOrPhoneController.text; + }); + } } diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart index 0f035940..e2cbf86f 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -11,6 +10,7 @@ import 'package:star_lock/main/lockDetail/authorizedAdmin/volumeAuthorizationLoc import 'package:star_lock/tools/pickers/pickers.dart'; import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart'; import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart'; +import 'package:star_lock/tools/regularExpression.dart'; import 'package:star_lock/tools/showTipView.dart'; import '../../../../appRouters.dart'; @@ -90,40 +90,38 @@ class _VolumeAuthorizationLockPageState isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget( - true, - '请输入手机号或者邮箱'.tr, - state.emailOrPhoneController)), - CommonItem( - leftTitel: '国家/地区'.tr, - rightTitle: '', - isHaveLine: true, - isHaveRightWidget: true, - isHaveDirection: true, - rightWidget: Text( - '${state.countryName.value} +${state.countryCode.value}', - textAlign: TextAlign.end, - style: - TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor), - ), - action: () async { - final Object? result = await Navigator.pushNamed( - context, Routers.selectCountryRegionPage); - if (result != null) { - result as Map; - state.countryCode.value = result['code']; - state.countryName.value = result['countryName']; - // setState(() {}); - } - }, - ), + true, '请输入手机号或者邮箱'.tr, state.emailOrPhoneController)), + Obx(() => Visibility( + visible: RegularExpression() + .isPhoneNumber(logic.state.emailOrPhone.value), + child: CommonItem( + leftTitel: '国家/地区'.tr, + rightTitle: '', + isHaveLine: true, + isHaveRightWidget: true, + isHaveDirection: true, + rightWidget: Text( + '${state.countryName.value} +${state.countryCode.value}', + textAlign: TextAlign.end, + style: TextStyle( + fontSize: 22.sp, color: AppColors.darkGrayTextColor), + ), + action: () async { + final Object? result = await Navigator.pushNamed( + context, Routers.selectCountryRegionPage); + if (result != null) { + result as Map; + state.countryCode.value = result['code']; + state.countryName.value = result['countryName']; + // setState(() {}); + } + }, + ))), CommonItem( leftTitel: '姓名'.tr, rightTitle: '', isHaveRightWidget: true, - rightWidget: getTFWidget( - false, - '请输入'.tr, - state.keyNameController)), + rightWidget: getTFWidget(false, '请输入'.tr, state.keyNameController)), Container(height: 10.h), ], ); @@ -186,7 +184,8 @@ class _VolumeAuthorizationLockPageState : state.lockIdList.length.toString(), isHaveDirection: true, action: () async { - final result = await Get.toNamed(Routers.massSendLockGroupListPage, + final result = await Get.toNamed( + Routers.massSendLockGroupListPage, arguments: { 'keyLimits': '1', 'lockIdList': state.lockIdList.value diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart index 84229d0c..ee85b37b 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart @@ -4,8 +4,11 @@ import 'package:get/get.dart'; class VolumeAuthorizationLockState { final FlutterContactPicker contactPicker = FlutterContactPicker(); - final TextEditingController emailOrPhoneController = TextEditingController(); //邮箱/手机号输入框 - final TextEditingController keyNameController = TextEditingController(); //钥匙名输入框 + final TextEditingController emailOrPhoneController = + TextEditingController(); //邮箱/手机号输入框 + RxString emailOrPhone = ''.obs; // 在logic的state中添加一个Rx变量 + final TextEditingController keyNameController = + TextEditingController(); //钥匙名输入框 late Contact contact; RxList lockIdList = [].obs; RxBool isSendSuccess = false.obs; diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart index d9722f2e..cf70635e 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -17,7 +16,8 @@ import 'massSendElectronicKey_logic.dart'; import 'massSendElectronicKey_state.dart'; class MassSendElectronicKeyPage extends StatefulWidget { - const MassSendElectronicKeyPage({required this.type, Key? key}) : super(key: key); + const MassSendElectronicKeyPage({required this.type, Key? key}) + : super(key: key); final String type; @override @@ -26,8 +26,10 @@ class MassSendElectronicKeyPage extends StatefulWidget { } class _MassSendElectronicKeyPageState extends State { - final MassSendElectronicKeyLogic logic = Get.put(MassSendElectronicKeyLogic()); - final MassSendElectronicKeyState state = Get.find().state; + final MassSendElectronicKeyLogic logic = + Get.put(MassSendElectronicKeyLogic()); + final MassSendElectronicKeyState state = + Get.find().state; @override initState() { @@ -47,9 +49,7 @@ class _MassSendElectronicKeyPageState extends State { state.type.value = widget.type; return SingleChildScrollView( - child: state.isDemoMode - ? indexChangeWidget() - : Obx(indexChangeWidget), + child: state.isDemoMode ? indexChangeWidget() : Obx(indexChangeWidget), ); } @@ -153,25 +153,25 @@ class _MassSendElectronicKeyPageState extends State { return Column( children: [ Obx(() => CommonItem( - leftTitel: '接收者'.tr, - rightTitle: state.receiverList.value.isEmpty - ? '请添加'.tr - : state.receiverList.value.length.toString(), - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.massSendReceiverPage, - arguments: { - 'lockUserList': state.receiverList.value, - }).then((Object? value) { - if (value != null) { - value as Map; - state.receiverList.value = value['lockUserList']; - // setState(() {}); - } - }); - }, - )), + leftTitel: '接收者'.tr, + rightTitle: state.receiverList.value.isEmpty + ? '请添加'.tr + : state.receiverList.value.length.toString(), + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.massSendReceiverPage, + arguments: { + 'lockUserList': state.receiverList.value, + }).then((Object? value) { + if (value != null) { + value as Map; + state.receiverList.value = value['lockUserList']; + // setState(() {}); + } + }); + }, + )), CommonItem( leftTitel: '国家/地区'.tr, rightTitle: '', @@ -202,7 +202,8 @@ class _MassSendElectronicKeyPageState extends State { : state.lockIdList.length.toString(), isHaveDirection: true, action: () async { - final result = await Get.toNamed(Routers.massSendLockGroupListPage, + final result = await Get.toNamed( + Routers.massSendLockGroupListPage, arguments: { 'keyLimits': '2', 'lockIdList': state.lockIdList @@ -235,7 +236,8 @@ class _MassSendElectronicKeyPageState extends State { PDuration selectDate = PDuration.parse(DateTime.tryParse(state.beginTime.value)); Pickers.showDatePicker(context, - selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (PDuration p) { + selectDate: selectDate, + mode: DateMode.YMDHM, onConfirm: (PDuration p) { state.beginTime.value = DateTool().getYMDHNDateString(p, 1); }); })), @@ -244,8 +246,11 @@ class _MassSendElectronicKeyPageState extends State { rightTitle: state.endTime.value, isHaveDirection: true, action: () { - PDuration selectDate = PDuration.parse(DateTime.tryParse(state.endTime.value)); - Pickers.showDatePicker(context, selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (PDuration p) { + PDuration selectDate = + PDuration.parse(DateTime.tryParse(state.endTime.value)); + Pickers.showDatePicker(context, + selectDate: selectDate, + mode: DateMode.YMDHM, onConfirm: (PDuration p) { state.endTime.value = DateTool().getYMDHNDateString(p, 1); }); })), @@ -279,14 +284,14 @@ class _MassSendElectronicKeyPageState extends State { isHaveDirection: true, isHaveLine: true, action: () async { - var result = - await Get.toNamed(Routers.seletKeyCyclicDatePage, arguments: { - 'validityValue': state.weekdaysList.value, - 'starDate': state.beginTime.value, - 'endDate': state.endTime.value, - 'starTime': state.effectiveDateTime.value, - 'endTime': state.failureDateTime.value - }); + var result = await Get.toNamed(Routers.seletKeyCyclicDatePage, + arguments: { + 'validityValue': state.weekdaysList.value, + 'starDate': state.beginTime.value, + 'endDate': state.endTime.value, + 'starTime': state.effectiveDateTime.value, + 'endTime': state.failureDateTime.value + }); if (result != null && result.isNotEmpty) { state.weekdaysList.value = result['validityValue']; state.beginTime.value = result['starDate']; @@ -376,5 +381,4 @@ class _MassSendElectronicKeyPageState extends State { }, ); } - } diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart index d885aafa..88f39d31 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart @@ -39,6 +39,11 @@ class SendElectronicKeyViewLogic extends BaseGetXController { void onInit() { super.onInit(); + // 监听输入框变化 + state.emailOrPhoneController.addListener(() { + state.emailOrPhone.value = state.emailOrPhoneController.text; + }); + Storage.getBool(ifIsDemoModeOrNot) .then((bool? value) => state.isDemoMode = value ?? false); } @@ -186,10 +191,11 @@ class SendElectronicKeyViewLogic extends BaseGetXController { final String getMobile = (await Storage.getMobile())!; if (entity.errorCode!.codeIsSuccessful) { ApmHelper.instance.trackEvent('add_electronic_key', { - 'lock_name':BlueManage().connectDeviceName, - 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, - 'date':DateTool().getNowDateWithType(1), - 'add_electronic_key_result':'成功', + 'lock_name': BlueManage().connectDeviceName, + 'account': + getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date': DateTool().getNowDateWithType(1), + 'add_electronic_key_result': '成功', }); emailOrPhone = state.emailOrPhoneController.text; @@ -202,10 +208,11 @@ class SendElectronicKeyViewLogic extends BaseGetXController { eventBus.fire(ElectronicKeyListRefreshUI()); } else { ApmHelper.instance.trackEvent('add_electronic_key', { - 'lock_name':BlueManage().connectDeviceName, - 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, - 'date':DateTool().getNowDateWithType(1), - 'add_electronic_key_result':'${entity.errorCode}--${entity.errorMsg}', + 'lock_name': BlueManage().connectDeviceName, + 'account': + getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date': DateTool().getNowDateWithType(1), + 'add_electronic_key_result': '${entity.errorCode}--${entity.errorMsg}', }); emailOrPhone = null; diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart index 9e2b8986..8fee41fd 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart @@ -17,6 +17,7 @@ import 'package:star_lock/tools/dateTool.dart'; import 'package:star_lock/tools/pickers/pickers.dart'; import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart'; import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart'; +import 'package:star_lock/tools/regularExpression.dart'; import 'package:star_lock/tools/showTipView.dart'; import 'package:star_lock/tools/submitBtn.dart'; @@ -114,29 +115,33 @@ class _SendElectronicKeyViewState extends State // 1, // logic)), perpetualKeyWidget(logic, '接收者'.tr, '请输入手机号或者邮箱'.tr), - CommonItem( - leftTitel: '国家/地区'.tr, - rightTitle: '', - isHaveLine: true, - isHaveRightWidget: true, - isHaveDirection: true, - rightWidget: Text( - '${logic.state.countryName} +${logic.state.countryCode}', - textAlign: TextAlign.end, - style: - TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor), - ), - action: () async { - final Object? result = await Navigator.pushNamed( - context, Routers.selectCountryRegionPage); - if (result != null) { - result as Map; - logic.state.countryCode = result['code']; - logic.state.countryName = result['countryName']; - logic.update(); - } - }, - ), + Obx(() => Visibility( + visible: RegularExpression() + .isPhoneNumber(logic.state.emailOrPhone.value), + child: CommonItem( + leftTitel: '国家/地区'.tr, + rightTitle: '', + isHaveLine: true, + isHaveRightWidget: true, + isHaveDirection: true, + rightWidget: Text( + '${logic.state.countryName} +${logic.state.countryCode}', + textAlign: TextAlign.end, + style: TextStyle( + fontSize: 22.sp, color: AppColors.darkGrayTextColor), + ), + action: () async { + final Object? result = await Navigator.pushNamed( + context, Routers.selectCountryRegionPage); + if (result != null) { + result as Map; + logic.state.countryCode = result['code']; + logic.state.countryName = result['countryName']; + logic.update(); + } + }, + ), + )), CommonItem( leftTitel: '姓名'.tr, rightTitle: '', @@ -589,6 +594,9 @@ class _SendElectronicKeyViewState extends State ), style: TextStyle( fontSize: 22.sp, textBaseline: TextBaseline.alphabetic), + onChanged: (String value) { + logic.update(); + }, ), ), SizedBox( diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart index 8f8244bc..353d884a 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_state.dart @@ -4,8 +4,12 @@ import 'package:get/get.dart'; import 'package:star_lock/tools/dateTool.dart'; class SendElectronicKeyViewState { + //循环 + TextEditingController emailOrPhoneController = TextEditingController(); //邮箱/手机号输入框 + // 监听输入框变化 + RxString emailOrPhone = ''.obs; // 在logic的state中添加一个Rx变量 TextEditingController keyNameController = TextEditingController(); //钥匙名输入框 TextEditingController realNameController = TextEditingController(); //真实姓名输入框 TextEditingController idCardController = TextEditingController(); //身份证号输入框 @@ -37,5 +41,5 @@ class SendElectronicKeyViewState { final String timeLimitTips = '接收者在有效期内可以不限次数使用'.tr; //限时 final String permanentTips = '接收者可以使用此App开关锁'.tr; //永久 final String onceLimitTips = '单次钥匙有效期为1小时,只能使用一次'.tr; //单次 - final String cycleLimitTips = '接收者可以在有效期内的固定时间段里,不限次数使用'.tr; //循环 + final String cycleLimitTips = '接收者可以在有效期内的固定时间段里,不限次数使用'.tr; }