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 da455907..c6fc5cbe 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart @@ -163,8 +163,8 @@ class _SendElectronicKeyViewState extends State color: Colors.white, border: Border( bottom: BorderSide( - color: AppColors.greyLineColor, // 设置边框颜色 - width: 2.0.h, // 设置边框宽度 + color: AppColors.greyLineColor, + width: 2.0.h, ), )), child: Row( @@ -174,17 +174,14 @@ class _SendElectronicKeyViewState extends State Expanded( child: TextField( controller: logic.getCurrentController(1), - //输入框一行 maxLines: 1, inputFormatters: [ FilteringTextInputFormatter.deny('\n'), LengthLimitingTextInputFormatter(30), ], - // controller: _controller, autofocus: false, textAlign: TextAlign.end, decoration: InputDecoration( - //输入里面输入文字内边距设置 hintText: rightTitle, hintStyle: TextStyle(fontSize: 22.sp), focusedBorder: const OutlineInputBorder( @@ -205,9 +202,7 @@ class _SendElectronicKeyViewState extends State fontSize: 22.sp, textBaseline: TextBaseline.alphabetic), ), ), - SizedBox( - width: 10.w, - ), + SizedBox(width: 10.w), Container( width: 32.w, height: 32.w, @@ -222,22 +217,48 @@ class _SendElectronicKeyViewState extends State onTap: () async { final Contact? currentContact = await logic.state.contactPicker.selectContact(); - logic.state.contact = currentContact!; - if (currentContact.phoneNumbers!.isNotEmpty) { - logic.state.emailOrPhoneController.text = currentContact - .phoneNumbers![0] - .replaceAll(RegExp(r'\s+\b|\b\s'), ''); - } - if (currentContact.fullName!.isNotEmpty) { - logic.state.keyNameController.text = - currentContact.fullName!; + if (currentContact != null) { + logic.state.contact = currentContact; + + // 处理手机号 + if (currentContact.phoneNumbers != null && + currentContact.phoneNumbers!.isNotEmpty) { + // 获取第一个手机号并清理格式 + String phoneNumber = currentContact.phoneNumbers![0]; + // 移除所有空格、括号、连字符等特殊字符 + phoneNumber = + phoneNumber.replaceAll(RegExp(r'[\s\(\)\-]'), ''); + // 如果号码以+开头,保留+号 + if (phoneNumber.startsWith('+')) { + phoneNumber = '+' + + phoneNumber + .substring(1) + .replaceAll(RegExp(r'[^\d]'), ''); + } else { + phoneNumber = + phoneNumber.replaceAll(RegExp(r'[^\d]'), ''); + } + logic.state.emailOrPhoneController.text = phoneNumber; + } else { + logic.state.emailOrPhoneController.text = ''; + } + + // 处理姓名 + if (currentContact.fullName != null && + currentContact.fullName!.isNotEmpty) { + logic.state.keyNameController.text = + currentContact.fullName!; + } + + // 更新UI + logic.update(); } }, ), ), Container( - color: AppColors.greyLineColor, // 设置边框颜色 - height: 2.0.h, // + color: AppColors.greyLineColor, + height: 2.0.h, ) ], ),