From 8800f4bebf64b21c9714e2f9043a34097eb6a4fd Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Mon, 24 Jun 2024 09:22:31 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=AE=89=E5=8D=93=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E8=AE=B0=E5=BD=95=E5=8F=8A=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=96=B0=E5=A2=9E=EF=BC=88=E6=9C=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E9=9C=80=E9=BB=84=E6=80=BB=E5=8D=8F=E5=8A=A9?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/src/main/AndroidManifest.xml | 11 ++++ .../kotlin/com/skychip/lock/MainActivity.kt | 50 ++++++++++++++++--- android/app/src/main/res/xml/file_paths.xml | 4 ++ .../exportRecordDialog_logic.dart | 1 - .../exportRecordDialog_state.dart | 1 - .../exportSuccess/exportSuccess_page.dart | 23 --------- 6 files changed, 58 insertions(+), 32 deletions(-) create mode 100644 android/app/src/main/res/xml/file_paths.xml delete mode 100644 lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_logic.dart delete mode 100644 lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_state.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 93cfda8c..5ec69bdd 100755 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -60,7 +60,18 @@ android:name="android.app.Application" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:requestLegacyExternalStorage="true" android:usesCleartextTraffic="true"> + + + + diff --git a/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt b/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt index a4f10348..0c14a684 100755 --- a/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt +++ b/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt @@ -9,6 +9,8 @@ import io.flutter.plugin.common.MethodChannel import io.flutter.embedding.engine.FlutterEngine; import io.flutter.plugins.GeneratedPluginRegistrant import android.bluetooth.BluetoothAdapter; +import androidx.core.content.FileProvider +import java.io.File class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -16,9 +18,15 @@ class MainActivity : FlutterActivity() { GeneratedPluginRegistrant.registerWith(flutterEngine!!) MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result -> if (call.method == "loadNativeShare") { - var map = call.arguments as Map - shareText(map["shareText"] , "分享") - } else if (call.method == "sendGetBlueStatus") { + val map = call.arguments as Map + val shareText = map["shareText"] + val urlToShare = map["urlToShare"] + if (urlToShare == "fileShare") { + shareFile(shareText) + } else { + shareText(shareText, "分享") + } + } else if (call.method == "sendGetBlueStatus") { // 蓝牙是否开启 // println("收到原生的信息了 methodmethodmethod: ${call.method}") val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() @@ -56,13 +64,41 @@ class MainActivity : FlutterActivity() { startActivity(Intent.createChooser(shareIntent, null)) } + fun shareFile(filePath: String?) { + if (filePath == null) { + return + } + + val file = File(filePath) + val uri: Uri = FileProvider.getUriForFile( + this, + "${applicationContext.packageName}.fileprovider", + file + ) + + val shareIntent = Intent().apply { + action = Intent.ACTION_SEND + putExtra(Intent.EXTRA_STREAM, uri) + type = "application/octet-stream" + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + } + + startActivity(Intent.createChooser(shareIntent, null)) + } + + override fun configureFlutterEngine(flutterEngine: FlutterEngine) { - GeneratedPluginRegistrant.registerWith(flutterEngine); + GeneratedPluginRegistrant.registerWith(flutterEngine) MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result -> - println("methodmethodmethod: ${call.method}") - // 在这里处理从 Flutter 发送过来的方法调用 if (call.method == "loadNativeShare") { - println("methodmethodmethod: ${call.method}") + val map = call.arguments as Map + val shareText = map["shareText"] + val urlToShare = map["urlToShare"] + if (urlToShare == "fileShare") { + shareFile(shareText) + } else { + shareText(shareText, "分享") + } } else { result.notImplemented() } diff --git a/android/app/src/main/res/xml/file_paths.xml b/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 00000000..7fe5a78c --- /dev/null +++ b/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,4 @@ + + + + diff --git a/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_logic.dart b/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_logic.dart deleted file mode 100644 index 8b137891..00000000 --- a/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_logic.dart +++ /dev/null @@ -1 +0,0 @@ - diff --git a/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_state.dart b/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_state.dart deleted file mode 100644 index 8b137891..00000000 --- a/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_state.dart +++ /dev/null @@ -1 +0,0 @@ - diff --git a/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart b/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart index e36c6f27..f66c2238 100644 --- a/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart +++ b/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart @@ -1,17 +1,13 @@ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:open_file/open_file.dart'; -import 'package:path_provider/path_provider.dart'; import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_logic.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_state.dart'; import 'package:star_lock/tools/NativeInteractionTool.dart'; import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/tools/titleAppBar.dart'; -import 'package:url_launcher/url_launcher.dart'; class ExportSuccessPage extends StatefulWidget { const ExportSuccessPage({Key? key}) : super(key: key); @@ -94,23 +90,4 @@ class _ExportSuccessPageState extends State with RouteAware { ], ); } - - Future previewFile() async { - // 获取本地文件路径 - final Directory appDocDir = await getApplicationDocumentsDirectory(); - final String appDocPath = appDocDir.path; - final String filePath = '$appDocPath/record.xlsx'; - - // 检查文件是否存在 - final File file = File(filePath); - if (await file.exists()) { - // 使用url_launcher打开文件 - final bool launched = await launchUrl(Uri.parse(filePath)); - if (!launched) { - throw 'Could not launch $filePath'; - } - } else { - print('File does not exist'); - } - } } From 5b09b91c84db765235cae8d8d8cdfcd0b6520b3b Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 11:53:36 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat:=E5=AE=8C=E5=96=84=E5=8A=A0=E5=BC=BA?= =?UTF-8?q?=20=E5=BA=9F=E5=BC=83=20APi=20=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pre_build.sh | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/pre_build.sh b/pre_build.sh index 8bdf7f47..dd78490c 100644 --- a/pre_build.sh +++ b/pre_build.sh @@ -4,22 +4,54 @@ # 首次使用记得安装jq: brew install jq # +############################################################### +############## 正常情况下只需要修改配置,不需要修改代码 ############### +############################################################### # 设置 environment="xhj" main_file="lib/main_xhj_full.dart" -version_string="1.0.51" +version_string="1.0.52" file_path="lib/network/api.dart" -urls=$(curl -s -X POST -d "version=$version_string" 'https://lock.xhjcn.ltd/api/app/getDeprecatedApiList' | jq -r '.data[].url') +############################################################### +############################################################### + +# 判断执行环境 +case $environment in + dev) + api_prefix='https://dev.lock.star-lock.cn' + ;; + pre) + api_prefix='https://pre.lock.star-lock.cn' + ;; + sky) + api_prefix='https://lock.skychip.top' + ;; + xhj) + api_prefix='https://lock.xhjcn.ltd' + ;; + *) + echo "错误: flavor[$environment] apiPrefix not found" + exit 1 + ;; +esac + +echo "API 前缀为: $api_prefix" + +urls=$(curl -s -X POST -d "version=$version_string" "$environment/api/app/getDeprecatedApiList" | jq -r '.data[].url') echo "* 成功获取废弃 api 数据" +# 解析 api 文件数据 string_array=() -# 使用egrep搜索被单引号包裹的字符串 while IFS= read -r line; do string_array+=("$line") done < <(egrep -o "'[^']*'" "$file_path") echo "* 解析 api 文件数据,开始对比" +# 进度条初始化 +total_urls=$(echo "$urls" | wc -l | tr -d ' ') +current_url=0 + # 比较urls和string_array中的元素 for url in $urls; do for string in "${string_array[@]}"; do @@ -30,10 +62,16 @@ for url in $urls; do exit 1 fi done + # 更新进度条 + let current_url++ + let progress=(current_url*100/total_urls) + printf "\r进度: [%-50s] %d%%" $(printf '%*s' $((progress/2)) | tr ' ' '#') $progress done -echo "* 没有发现 废弃 api,开始编译" +# 新的输出从新行开始 +echo -e "\n* 没有发现废弃 API,开始编译" + +# 编译命令 flutter clean && flutter pub get flutter build apk --flavor $environment -t $main_file flutter build ios --flavor $environment -t $main_file - From 8a6bcd0871ecff4ca19c47780d9d6f725da5bfda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E4=BA=9A=E8=8C=9C?= <7635395+wuyaqian@user.noreply.gitee.com> Date: Mon, 24 Jun 2024 13:41:01 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dxhj=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E6=9E=81=E5=85=89=E6=8E=A8=E9=80=81=E5=8D=B8=E8=BD=BD=EF=BC=8C?= =?UTF-8?q?=E9=A6=96=E6=AC=A1=E7=99=BB=E5=BD=95=E6=9C=AA=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=EF=BC=8C=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E6=8E=A8=E9=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/login/login/starLock_login_logic.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/login/login/starLock_login_logic.dart b/lib/login/login/starLock_login_logic.dart index 6a82a6c9..c943d7e8 100755 --- a/lib/login/login/starLock_login_logic.dart +++ b/lib/login/login/starLock_login_logic.dart @@ -53,7 +53,8 @@ class StarLockLoginLogic extends BaseGetXController { Storage.saveLoginData(entity.data); Storage.setBool(saveIsVip, entity.data!.isVip == 1); eventBus.fire(MineInfoChangeRefreshUI()); - XSJPushProvider().bindDeviceID(); + await XSJPushProvider().initJPushService(); + await XSJPushProvider().bindDeviceID(); XSJPushProvider().initLocalNotification(isCancelLocalPush: false); Get.offNamedUntil(Routers.starLockMain, (Route route) => false); BlueManage().scanDevices.clear(); //清除设备缓存 From 3ae670fbeeb72913036b4897eaab589dc6a17031 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 14:28:15 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20android=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=86=E4=BA=AB=E6=96=87=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/src/main/AndroidManifest.xml | 3 ++- .../app/src/main/kotlin/com/skychip/lock/MainActivity.kt | 9 +++++---- android/app/src/main/res/xml/file_paths.xml | 7 +++++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 5ec69bdd..07c09ea3 100755 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -62,9 +62,10 @@ android:label="@string/app_name" android:requestLegacyExternalStorage="true" android:usesCleartextTraffic="true"> + - - + + + + + From d6c7115418ecc1271d28682b830dbe001c489141 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 14:51:13 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20=E8=BF=9B=E5=85=A5?= =?UTF-8?q?=20App=20=E4=BC=9A=E6=98=BE=E7=A4=BA=E5=8A=A0=E8=BD=BD=E6=A1=86?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main/lockMian/lockList/lockList_page.dart | 1 - lib/main/lockMian/lockMain/lockMain_page.dart | 6 +++--- .../lockMian/lockMain/xhj/lockMain_xhj_page.dart | 10 +--------- lib/network/api_provider.dart | 13 ++++++------- 4 files changed, 10 insertions(+), 20 deletions(-) diff --git a/lib/main/lockMian/lockList/lockList_page.dart b/lib/main/lockMian/lockList/lockList_page.dart index 53717840..ccfc714d 100755 --- a/lib/main/lockMian/lockList/lockList_page.dart +++ b/lib/main/lockMian/lockList/lockList_page.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:get/get.dart'; -import 'package:star_lock/flavors.dart'; import 'package:star_lock/main/lockMian/lockList/lockList_state.dart'; import '../../../appRouters.dart'; diff --git a/lib/main/lockMian/lockMain/lockMain_page.dart b/lib/main/lockMian/lockMain/lockMain_page.dart index 3be70607..0171aedb 100755 --- a/lib/main/lockMian/lockMain/lockMain_page.dart +++ b/lib/main/lockMian/lockMain/lockMain_page.dart @@ -44,13 +44,13 @@ class _StarLockMainPageState extends State LockListInfoGroupEntity? lockListInfoGroupEntity = await Storage.getLockMainListData(); if (lockListInfoGroupEntity != null) { - logic.loadMainDataLogic(lockListInfoGroupEntity); + await logic.loadMainDataLogic(lockListInfoGroupEntity); setState(() {}); } lockListInfoGroupEntity = (await logic.getStarLockInfo(isUnShowLoading: isUnShowLoading)).data; if (lockListInfoGroupEntity != null) { - logic.loadMainDataLogic(lockListInfoGroupEntity); + await logic.loadMainDataLogic(lockListInfoGroupEntity); setState(() {}); } if (clearScanDevices) { @@ -62,7 +62,7 @@ class _StarLockMainPageState extends State void initState() { super.initState(); logic.pageNo = 1; - getHttpData(); + getHttpData(isUnShowLoading:true,); _initLoadDataAction(); } diff --git a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart index 55aefff1..87232bd4 100755 --- a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart +++ b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart @@ -1,7 +1,4 @@ -import 'dart:async'; -import 'dart:ui'; import 'package:flutter/material.dart'; -import 'package:flutter/scheduler.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/app_settings/app_colors.dart'; @@ -9,13 +6,8 @@ import 'package:star_lock/baseWidget.dart'; import 'package:star_lock/main/lockMian/lockMain/lockMain_page.dart'; import 'package:star_lock/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart'; import 'package:star_lock/mine/mall/lockMall_page.dart'; -import 'package:star_lock/mine/message/messageList/messageList_page.dart'; import 'package:star_lock/mine/message/messageList/messageList_xhj_page.dart'; -import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart'; import 'package:star_lock/mine/mineSet/mineSet/mineSet_page.dart'; -import 'package:star_lock/tools/noData.dart'; -import 'package:star_lock/tools/submitBtn.dart'; -import 'package:star_lock/translations/trans_lib.dart'; class StarLockMainXHJPage extends StatefulWidget { const StarLockMainXHJPage({Key? key}) : super(key: key); @@ -26,7 +18,7 @@ class StarLockMainXHJPage extends StatefulWidget { class _StarLockMainXHJPageState extends State with BaseWidget { - PageController _pageController = PageController(); + final PageController _pageController = PageController(); @override void initState() { diff --git a/lib/network/api_provider.dart b/lib/network/api_provider.dart index 12eff33d..2f4688d9 100755 --- a/lib/network/api_provider.dart +++ b/lib/network/api_provider.dart @@ -446,7 +446,7 @@ class ApiProvider extends BaseProvider { // 获取Wifi锁服务器 Future getWifiLockServiceIpAndPort() => - post(getWifiServiceIpURL.toUrl, jsonEncode({})); + post(getWifiServiceIpURL.toUrl, jsonEncode({}), isUnShowLoading: true); Future passwordKeyList(String keyStatus, String lockId, String pageNo, String pageSize, String searchStr) => @@ -1605,8 +1605,7 @@ class ApiProvider extends BaseProvider { int endTime, int remoteUnlockSwitch, int keyRight, - bool isShowNetworkErrorMsg - ) => + bool isShowNetworkErrorMsg) => post( batchSendKeyURL.toUrl, jsonEncode({ @@ -1624,8 +1623,7 @@ class ApiProvider extends BaseProvider { 'remoteUnlockSwitch': remoteUnlockSwitch, 'keyRight': keyRight, }), - isShowNetworkErrorMsg: isShowNetworkErrorMsg - ); + isShowNetworkErrorMsg: isShowNetworkErrorMsg); Future addAuthorizedAdmin( String createUser, @@ -1669,7 +1667,8 @@ class ApiProvider extends BaseProvider { // 获取个人信息 Future getUserInfo(String operatorUid) => - post(getUserInfoURL.toUrl, jsonEncode({'operatorUid': operatorUid})); + post(getUserInfoURL.toUrl, jsonEncode({'operatorUid': operatorUid}), + isUnShowLoading: true); // 重置密码钥匙 Future keyboardPwdReset(String lockId, List passwordKey) => post( @@ -2178,7 +2177,7 @@ class ApiProvider extends BaseProvider { // 获取App基本信息 Future> getAppInfo() => post(appGetAppInfoURL.toUrl, jsonEncode({}), - isShowErrMsg: false); + isShowErrMsg: false, isUnShowLoading: true); // 获取App固件信息 Future> getFwVersion(String model, String currentVersion) => From 103570a97bc1d5b08d660d63c53b3ef341140ee7 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 16:37:33 +0800 Subject: [PATCH 6/9] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20=E9=94=81=E5=88=86?= =?UTF-8?q?=E7=BB=84=E4=BF=AE=E6=94=B9=E5=90=8D=E5=AD=97=E5=90=8E=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BE=A7=E6=BB=91=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../card/cardDetail/cardDetail_page.dart | 3 +- .../face/faceList/faceList_page.dart | 36 ++--- .../iris/irisList/irisList_page.dart | 11 +- .../palm/palmList/palmList_page.dart | 3 +- .../lockGroupList/lockGroupList_page.dart | 72 +++++----- lib/tools/left_slide/left_slide_actions.dart | 101 ++++++++++++++ lib/tools/left_slide/left_slide_logic.dart | 62 +++++++++ lib/tools/left_slide_actions.dart | 124 ------------------ 8 files changed, 230 insertions(+), 182 deletions(-) create mode 100755 lib/tools/left_slide/left_slide_actions.dart create mode 100644 lib/tools/left_slide/left_slide_logic.dart delete mode 100755 lib/tools/left_slide_actions.dart diff --git a/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart b/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart index d6126b9d..de804c88 100755 --- a/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart +++ b/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart @@ -46,7 +46,7 @@ class _CardDetailPageState extends State with RouteAware { rightTitle: state.typeNumber.value, isHaveDirection: false, isHaveLine: true)), - Obx(() => lockDataListItem(TranslationLoader.lanKeys!.name!.tr,state.typeName.value, () { + Obx(() => lockDataListItem(TranslationLoader.lanKeys!.name!.tr,state.typeName.value, () { ShowTipView().showTFViewAlertDialog( state.changeNameController, '${TranslationLoader.lanKeys!.amend!.tr}${TranslationLoader.lanKeys!.name!.tr}', @@ -62,6 +62,7 @@ class _CardDetailPageState extends State with RouteAware { FilteringTextInputFormatter.deny('\n'), LengthLimitingTextInputFormatter(50), ]); + })), Obx(() => Visibility( visible: state.keyType.value == 4 || diff --git a/lib/main/lockDetail/face/faceList/faceList_page.dart b/lib/main/lockDetail/face/faceList/faceList_page.dart index e1a5c2ae..947627e9 100755 --- a/lib/main/lockDetail/face/faceList/faceList_page.dart +++ b/lib/main/lockDetail/face/faceList/faceList_page.dart @@ -1,11 +1,10 @@ - import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; -import 'package:star_lock/tools/left_slide_actions.dart'; +import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import 'package:star_lock/tools/showTipView.dart'; import '../../../../appRouters.dart'; @@ -26,15 +25,15 @@ class FaceListPage extends StatefulWidget { State createState() => _FaceListPageState(); } -class _FaceListPageState extends State with RouteAware { +class _FaceListPageState extends State with RouteAware { final logic = Get.put(FaceListLogic()); final state = Get.find().state; Future getHttpData() async { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { - logic.getFaceListData().then((FingerprintListDataEntity value){ - if(mounted) setState(() {}); + logic.getFaceListData().then((FingerprintListDataEntity value) { + if (mounted) setState(() {}); }); } } @@ -46,7 +45,6 @@ class _FaceListPageState extends State with RouteAware { getHttpData(); } - @override Widget build(BuildContext context) { return Scaffold( @@ -66,7 +64,8 @@ class _FaceListPageState extends State with RouteAware { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { // showDeletAlertDialog(context); - ShowTipView().showIosTipWithContentDialog("重置后,该锁的人脸都将被删除哦,确认要重置吗?", () async { + ShowTipView().showIosTipWithContentDialog( + "重置后,该锁的人脸都将被删除哦,确认要重置吗?", () async { state.isDeletAll = true; state.deletKeyID = "1"; state.deletFaceNo = 0; @@ -82,11 +81,11 @@ class _FaceListPageState extends State with RouteAware { ], ), body: EasyRefreshTool( - onRefresh: (){ + onRefresh: () { logic.pageNo = 1; getHttpData(); }, - onLoad: (){ + onLoad: () { getHttpData(); }, child: Column( @@ -130,10 +129,12 @@ class _FaceListPageState extends State with RouteAware { ? ListView.separated( itemCount: state.faceItemListData.value.length, itemBuilder: (c, index) { - FingerprintItemData getFaceItemData = state.faceItemListData.value[index]; + FingerprintItemData getFaceItemData = + state.faceItemListData.value[index]; // 人脸 if (index < state.faceItemListData.value.length) { return LeftSlideActions( + tag: getFaceItemData.faceName!, key: Key(getFaceItemData.faceName!), actionsWidth: 60, actions: [ @@ -146,9 +147,9 @@ class _FaceListPageState extends State with RouteAware { 'images/icon_face.png', getFaceItemData.faceName!, logic.getKeyType(getFaceItemData), - logic.getKeyDateType(getFaceItemData), - () async { - var data = await Get.toNamed(Routers.faceDetailPage, arguments: { + logic.getKeyDateType(getFaceItemData), () async { + var data = + await Get.toNamed(Routers.faceDetailPage, arguments: { "faceItemData": getFaceItemData, }); if (data != null) { @@ -252,14 +253,13 @@ class _FaceListPageState extends State with RouteAware { child: Row( children: [ Flexible( - child: Text( - lockTypeTitle, + child: Text(lockTypeTitle, maxLines: 1, overflow: TextOverflow.ellipsis, - style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor) - ), + style: TextStyle( + fontSize: 24.sp, + color: AppColors.blackColor)), ), - ], ), ), diff --git a/lib/main/lockDetail/iris/irisList/irisList_page.dart b/lib/main/lockDetail/iris/irisList/irisList_page.dart index 94ee0f97..6a12c535 100755 --- a/lib/main/lockDetail/iris/irisList/irisList_page.dart +++ b/lib/main/lockDetail/iris/irisList/irisList_page.dart @@ -5,7 +5,7 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/iris/irisList/irisList_logic.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; -import 'package:star_lock/tools/left_slide_actions.dart'; +import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -42,7 +42,7 @@ class _IrisListPageState extends State { style: TextStyle(color: Colors.white, fontSize: 24.sp), ), onPressed: () async { - var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); + final isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { showDeletAlertDialog(context); } else { @@ -73,7 +73,7 @@ class _IrisListPageState extends State { // "lockId": state.lockId.value, // "fromType": 1 // 1从添加钥匙列表进入 2从考勤添加员工入口进入 // }); - var data = + final data = await Get.toNamed(Routers.addIrisTypeManagePage, arguments: { "lockId": state.lockId.value, "fromType": 1 // 1从添加钥匙列表进入 2从考勤添加员工入口进入 @@ -95,11 +95,12 @@ class _IrisListPageState extends State { ? ListView.separated( itemCount: state.faceItemListData.value.length, itemBuilder: (c, index) { - FingerprintItemData getFaceItemData = + final FingerprintItemData getFaceItemData = state.faceItemListData.value[index]; // 人脸 if (index < state.faceItemListData.value.length) { return LeftSlideActions( + tag: getFaceItemData.faceName!, key: Key(getFaceItemData.faceName!), actionsWidth: 60, actions: [ @@ -122,7 +123,7 @@ class _IrisListPageState extends State { // ? "永久" // : "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}", () async { - var data = + final data = await Get.toNamed(Routers.faceDetailPage, arguments: { "faceItemData": getFaceItemData, }); diff --git a/lib/main/lockDetail/palm/palmList/palmList_page.dart b/lib/main/lockDetail/palm/palmList/palmList_page.dart index 065889b8..38d70903 100755 --- a/lib/main/lockDetail/palm/palmList/palmList_page.dart +++ b/lib/main/lockDetail/palm/palmList/palmList_page.dart @@ -5,7 +5,7 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/palm/palmList/palmList_logic.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; -import 'package:star_lock/tools/left_slide_actions.dart'; +import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -100,6 +100,7 @@ class _PalmListPageState extends State { // 人脸 if (index < state.faceItemListData.value.length) { return LeftSlideActions( + tag:getFaceItemData.faceName!, key: Key(getFaceItemData.faceName!), actionsWidth: 60, actions: [ diff --git a/lib/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart b/lib/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart index 26d9d9d1..458acf3b 100755 --- a/lib/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart +++ b/lib/mine/mineSet/lockGroup/lockGroupList/lockGroupList_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart'; import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList/lockGroupList_state.dart'; +import 'package:star_lock/tools/left_slide/left_slide_logic.dart'; import 'package:star_lock/tools/showTipView.dart'; import '../../../../../../appRouters.dart'; @@ -11,7 +12,7 @@ import '../../../../../../app_settings/app_colors.dart'; import '../../../../../../tools/commonItem.dart'; import '../../../../../../tools/titleAppBar.dart'; import '../../../../../../translations/trans_lib.dart'; -import '../../../../tools/left_slide_actions.dart'; +import '../../../../tools/left_slide/left_slide_actions.dart'; import '../../../../tools/noData.dart'; import 'lockGroupList_logic.dart'; @@ -56,9 +57,11 @@ class _LockGroupListPageState extends State { logic.showToast( TranslationLoader.lanKeys!.pleaseEnterAGroupName!.tr); } - }, isShowSuffixIcon:true, inputFormatters: [ - LengthLimitingTextInputFormatter(50), - ]); + }, + isShowSuffixIcon: true, + inputFormatters: [ + LengthLimitingTextInputFormatter(50), + ]); }, ), ], @@ -66,23 +69,22 @@ class _LockGroupListPageState extends State { body: Column( children: [ Expanded( - child: Obx(() => state.itemDataList.value.isEmpty - ? NoData() - : _buildMainUI())), + child: Obx(() => + state.itemDataList.isEmpty ? NoData() : _buildMainUI())), ], ), ); } Widget _buildMainUI() { - for (int i = 0; i < state.itemDataList.value.length; i++) { - final GroupListItem itemData = state.itemDataList.value[i]; + for (int i = 0; i < state.itemDataList.length; i++) { + final GroupListItem itemData = state.itemDataList[i]; state.lockNum += itemData.lockList!.length; } return ListView.separated( - itemCount: state.itemDataList.value.length + 1, + itemCount: state.itemDataList.length + 1, itemBuilder: (BuildContext c, int index) { - if (index == state.itemDataList.value.length) { + if (index == state.itemDataList.length) { return Center( child: Column( children: [ @@ -101,12 +103,13 @@ class _LockGroupListPageState extends State { ), ); } else { - final GroupListItem itemData = state.itemDataList.value[index]; + final GroupListItem itemData = state.itemDataList[index]; if (itemData.groupType == 0) { state.ungrouped = itemData; } - if (index < state.itemDataList.value.length) { + if (index < state.itemDataList.length) { return LeftSlideActions( + tag: itemData.keyGroupId!.toString(), key: Key(itemData.keyGroupId!.toString()), actionsWidth: itemData.groupType != 0 ? 200.w : 0, actions: itemData.groupType != 0 @@ -118,12 +121,15 @@ class _LockGroupListPageState extends State { decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(1)), ), - child: lockDataListItem('${itemData.keyGroupName}(${itemData.lockList?.length})', () { - Get.toNamed(Routers.lockItemListPage, arguments: { + child: lockDataListItem( + '${itemData.keyGroupName}(${itemData.lockList?.length})', + () { + Get.toNamed(Routers.lockItemListPage, + arguments: { 'groupListItem': itemData, 'ungrouped': state.ungrouped }); - }), + }), ); } return const SizedBox.shrink(); @@ -170,13 +176,15 @@ class _LockGroupListPageState extends State { state.changeNameController.text = groupListItem.keyGroupName!; // showCupertinoAlertDialog(context, false, groupListItem.keyGroupId!); - ShowTipView().showTFViewAlertDialog( - state.changeNameController, - '修改名称'.tr, - TranslationLoader.lanKeys!.pleaseEnter!.tr, () { + ShowTipView().showTFViewAlertDialog(state.changeNameController, + '修改名称'.tr, TranslationLoader.lanKeys!.pleaseEnter!.tr, () { if (state.changeNameController.text.isNotEmpty) { Get.back(); logic.editLockGroupRequest(groupListItem.keyGroupId!); + final String keyGroupId = groupListItem.keyGroupId!.toString(); + if (Get.isRegistered(tag: keyGroupId)) { + Get.find(tag: keyGroupId).hide(); + } } else { logic.showToast( TranslationLoader.lanKeys!.pleaseEnterAGroupName!.tr); @@ -200,26 +208,24 @@ class _LockGroupListPageState extends State { ); } - Widget lockDataListItem(String title, Function()? action){ + Widget lockDataListItem(String title, Function()? action) { return GestureDetector( onTap: action, child: Container( // height: 70.h, - padding: EdgeInsets.only(left: 20.w, right: 10.w, top: 15.h, bottom: 15.h), + padding: + EdgeInsets.only(left: 20.w, right: 10.w, top: 15.h, bottom: 15.h), decoration: BoxDecoration( - color: Colors.white, - border: Border( - bottom: BorderSide( - color: AppColors.greyLineColor, // 设置边框颜色 - width: 2.0.h, // 设置边框宽度 - ), - ) - ), + color: Colors.white, + border: Border( + bottom: BorderSide( + color: AppColors.greyLineColor, // 设置边框颜色 + width: 2.0.h, // 设置边框宽度 + ), + )), child: Row( children: [ - Expanded(child: - Text(title, style: TextStyle(fontSize: 22.sp)) - ), + Expanded(child: Text(title, style: TextStyle(fontSize: 22.sp))), // Text(title, style: TextStyle(fontSize: 22.sp)), ], ), diff --git a/lib/tools/left_slide/left_slide_actions.dart b/lib/tools/left_slide/left_slide_actions.dart new file mode 100755 index 00000000..8863baad --- /dev/null +++ b/lib/tools/left_slide/left_slide_actions.dart @@ -0,0 +1,101 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/tools/left_slide/left_slide_logic.dart'; + +typedef BaseFunction = void Function(T o); + +/// 来源: https://blog.csdn.net/zhuowalun8427/article/details/121285947 。 +class LeftSlideActions extends StatefulWidget { + const LeftSlideActions({ + required this.tag, + required this.actionsWidth, + required this.actions, + required this.child, + Key? key, + this.decoration, + this.actionsWillShow, + this.exportHideActions, + }) : super(key: key); + final String tag; + final double actionsWidth; + final List actions; + final Widget child; + final Decoration? decoration; + final VoidCallback? actionsWillShow; + final BaseFunction? exportHideActions; + + @override + _LeftSlideActionsState createState() => _LeftSlideActionsState(); +} + +class _LeftSlideActionsState extends State + with TickerProviderStateMixin { + late AnimationController _controller; + late LeftSlideLogic logic; + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + void initState() { + super.initState(); + _controller = AnimationController( + lowerBound: -widget.actionsWidth, + upperBound: 0, + vsync: this, + duration: const Duration(milliseconds: 300), + )..addListener(() { + logic.translateX = _controller.value; + setState(() {}); + }); + if (widget.exportHideActions != null) { + widget.exportHideActions!(logic.hide); + } + logic = LeftSlideLogic( + controller: _controller, + actionsWidth: widget.actionsWidth, + actions: widget.actions, + decoration: widget.decoration, + actionsWillShow: widget.actionsWillShow, + exportHideActions: widget.exportHideActions, + ); + Get.put(logic, tag: widget.tag); + } + + @override + Widget build(BuildContext context) { + return GetBuilder( + tag: widget.tag, + builder: (LeftSlideLogic logic) { + return Container( + decoration: widget.decoration, + clipBehavior: Clip.hardEdge, + child: Stack( + children: [ + Positioned.fill( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: widget.actions, + ), + ), + GestureDetector( + onHorizontalDragUpdate: logic.onHorizontalDragUpdate, + onHorizontalDragEnd: logic.onHorizontalDragEnd, + child: Transform.translate( + offset: Offset(logic.translateX, 0), + child: Row( + children: [ + Expanded(flex: 1, child: widget.child), + ], + ), + ), + ), + ], + ), + ); + }); + } +} diff --git a/lib/tools/left_slide/left_slide_logic.dart b/lib/tools/left_slide/left_slide_logic.dart new file mode 100644 index 00000000..a20f6bf5 --- /dev/null +++ b/lib/tools/left_slide/left_slide_logic.dart @@ -0,0 +1,62 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; + +class LeftSlideLogic extends GetxController { + LeftSlideLogic({ + required this.controller, + required this.actionsWidth, + required this.actions, + required this.decoration, + required this.actionsWillShow, + required this.exportHideActions, + }); + + late AnimationController controller; + final double actionsWidth; + final List actions; + final Decoration? decoration; + final VoidCallback? actionsWillShow; + final BaseFunction? exportHideActions; + double translateX = 0; + + @override + void onInit() { + super.onInit(); + } + + void onHorizontalDragUpdate(DragUpdateDetails details) { + translateX = (translateX + details.delta.dx).clamp(-actionsWidth, 0.0); + update(); + } + + void onHorizontalDragEnd(DragEndDetails details) { + controller.value = translateX; + if (details.velocity.pixelsPerSecond.dx > 200) { + hide(); + } else if (details.velocity.pixelsPerSecond.dx < -200) { + show(); + } else { + if (translateX.abs() > actionsWidth / 2) { + show(); + } else { + hide(); + } + } + } + + void show() { + if (actionsWillShow != null) { + actionsWillShow!(); + } + if (translateX != -actionsWidth) { + controller.animateTo(-actionsWidth); + } + } + + void hide() { + if (translateX != 0) { + controller.animateTo(0); + } + } +} diff --git a/lib/tools/left_slide_actions.dart b/lib/tools/left_slide_actions.dart deleted file mode 100755 index 90762da5..00000000 --- a/lib/tools/left_slide_actions.dart +++ /dev/null @@ -1,124 +0,0 @@ -import 'package:flutter/material.dart'; - -typedef _BaseFunction = void Function(T o); - -/// 来源: https://blog.csdn.net/zhuowalun8427/article/details/121285947 。 -class LeftSlideActions extends StatefulWidget { - final double actionsWidth; - final List actions; - final Widget child; - final Decoration? decoration; - final VoidCallback? actionsWillShow; - final _BaseFunction? exportHideActions; - - const LeftSlideActions({ - Key? key, - required this.actionsWidth, - required this.actions, - required this.child, - this.decoration, - this.actionsWillShow, - this.exportHideActions, - }) : super(key: key); - - @override - _LeftSlideActionsState createState() => _LeftSlideActionsState(); -} - -class _LeftSlideActionsState extends State - with TickerProviderStateMixin { - double _translateX = 0; - late AnimationController _controller; - - @override - void dispose() { - _controller.dispose(); - super.dispose(); - } - - @override - void initState() { - super.initState(); - _controller = AnimationController( - lowerBound: -widget.actionsWidth, - upperBound: 0, - vsync: this, - duration: const Duration(milliseconds: 300), - )..addListener(() { - _translateX = _controller.value; - setState(() {}); - }); - if (widget.exportHideActions != null) { - widget.exportHideActions!(_hide); - } - } - - @override - Widget build(BuildContext context) { - return Container( - decoration: widget.decoration, - clipBehavior: Clip.hardEdge, - child: Stack( - children: [ - Positioned.fill( - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: widget.actions, - ), - ), - GestureDetector( - onHorizontalDragUpdate: (v) { - _onHorizontalDragUpdate(v); - }, - onHorizontalDragEnd: (v) { - _onHorizontalDragEnd(v); - }, - child: Transform.translate( - offset: Offset(_translateX, 0), - child: Row( - children: [ - Expanded(flex: 1, child: widget.child), - ], - ), - ), - ), - ], - ), - ); - } - - void _onHorizontalDragUpdate(DragUpdateDetails details) { - _translateX = (_translateX + details.delta.dx).clamp(-widget.actionsWidth, 0.0); - setState(() {}); - } - - void _onHorizontalDragEnd(DragEndDetails details) { - _controller.value = _translateX; - if (details.velocity.pixelsPerSecond.dx > 200) { - _hide(); - } else if (details.velocity.pixelsPerSecond.dx < -200) { - _show(); - } else { - if (_translateX.abs() > widget.actionsWidth / 2) { - _show(); - } else { - _hide(); - } - } - } - - void _show() { - if (widget.actionsWillShow != null) { - widget.actionsWillShow!(); - } - if (_translateX != -widget.actionsWidth) { - _controller.animateTo(-widget.actionsWidth); - } - } - - void _hide() { - if (_translateX != 0) { - _controller.animateTo(0); - } - } -} From 3de600acda96c868ca22b87feabe50699d7d862a Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 17:38:34 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20=E6=97=A0=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E7=8A=B6=E6=80=81=E5=8F=AF=E4=BB=A5=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=88=A0=E9=99=A4=EF=BC=8C=E5=8D=A1/?= =?UTF-8?q?=E5=AF=86=E7=A0=81/=E6=8C=87=E7=BA=B9=E7=AD=89=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starLock_forgetPassword_page.dart | 40 +- .../starLock_forgetPassword_xhj_page.dart | 25 +- lib/main.dart | 6 +- .../card/cardList/cardList_page.dart | 6 + .../electronicKeyList_page.dart | 6 + .../face/faceList/faceList_page.dart | 6 + .../fingerprintList/fingerprintList_page.dart | 6 + .../iris/irisList/irisList_page.dart | 6 + .../lockSet/lockSet/lockSet_page.dart | 408 +++++++++--------- .../wirelessKeyboard_page.dart | 7 + .../palm/palmList/palmList_page.dart | 6 + .../passwordKeyList/passwordKeyList_page.dart | 11 +- .../remoteControlList_page.dart | 6 + .../lockMian/lockMain/lockMain_logic.dart | 19 +- 14 files changed, 318 insertions(+), 240 deletions(-) diff --git a/lib/login/forgetPassword/starLock_forgetPassword_page.dart b/lib/login/forgetPassword/starLock_forgetPassword_page.dart index 3569619a..27e22275 100755 --- a/lib/login/forgetPassword/starLock_forgetPassword_page.dart +++ b/lib/login/forgetPassword/starLock_forgetPassword_page.dart @@ -7,6 +7,7 @@ import 'package:get/get.dart'; import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_logic.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import '../../appRouters.dart'; import '../../app_settings/app_colors.dart'; @@ -23,9 +24,12 @@ class StarLockForgetPasswordPage extends StatefulWidget { _StarLockForgetPasswordPageState(); } -class _StarLockForgetPasswordPageState extends State { - final StarLockForgetPasswordLogic logic = Get.put(StarLockForgetPasswordLogic()); - final StarLockForgetPasswordState state = Get.find().state; +class _StarLockForgetPasswordPageState + extends State { + final StarLockForgetPasswordLogic logic = + Get.put(StarLockForgetPasswordLogic()); + final StarLockForgetPasswordState state = + Get.find().state; @override Widget build(BuildContext context) { @@ -57,7 +61,8 @@ class _StarLockForgetPasswordPageState extends State children: [ SizedBox(width: 5.w), Expanded( - child: Text(TranslationLoader.lanKeys!.countryAndRegion!.tr, + child: Text( + TranslationLoader.lanKeys!.countryAndRegion!.tr, style: TextStyle( fontSize: 26.sp, color: AppColors.blackColor))), SizedBox(width: 20.w), @@ -65,14 +70,14 @@ class _StarLockForgetPasswordPageState extends State mainAxisAlignment: MainAxisAlignment.end, children: [ Obx(() => Text( - '${state.countryName} +${state.countryCode}', - // state.isIphoneType.value - // ? '${state.countryName} +${state.countryCode}' - // : "${state.countryName}", - textAlign: TextAlign.end, - style: TextStyle( - fontSize: 26.sp, color: AppColors.blackColor), - )) + '${state.countryName} +${state.countryCode}', + // state.isIphoneType.value + // ? '${state.countryName} +${state.countryCode}' + // : "${state.countryName}", + textAlign: TextAlign.end, + style: TextStyle( + fontSize: 26.sp, color: AppColors.blackColor), + )) ], ), SizedBox(width: 5.w), @@ -95,14 +100,16 @@ class _StarLockForgetPasswordPageState extends State logic.checkNext(state.phoneController); }, leftWidget: Padding( - padding: EdgeInsets.only(top: 30.w, bottom: 20.w, right: 5.w, left: 5.w), + padding: EdgeInsets.only( + top: 30.w, bottom: 20.w, right: 5.w, left: 5.w), child: Image.asset( 'images/icon_login_account.png', width: 36.w, height: 36.w, ), ), - hintText:TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, + hintText: + TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, keyboardType: TextInputType.number, inputFormatters: [ LengthLimitingTextInputFormatter(30), @@ -232,6 +239,11 @@ class _StarLockForgetPasswordPageState extends State isDisabled: state.canSub.value, onClick: state.canSub.value ? () { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } logic.resetPassword(); } : null); diff --git a/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart b/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart index 0fe04748..ae08975b 100755 --- a/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart +++ b/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -7,6 +6,7 @@ import 'package:star_lock/appRouters.dart'; import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_logic.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/submitBtn.dart'; import 'package:star_lock/tools/tf_loginInput.dart'; import 'package:star_lock/tools/titleAppBar.dart'; @@ -22,8 +22,10 @@ class StarLockForgetPasswordXHJPage extends StatefulWidget { class _StarLockForgetPasswordPageState extends State { - final StarLockForgetPasswordLogic logic = Get.put(StarLockForgetPasswordLogic()); - final StarLockForgetPasswordState state = Get.find().state; + final StarLockForgetPasswordLogic logic = + Get.put(StarLockForgetPasswordLogic()); + final StarLockForgetPasswordState state = + Get.find().state; @override Widget build(BuildContext context) { @@ -102,7 +104,7 @@ class _StarLockForgetPasswordPageState padding: EdgeInsets.only(top: 30.w, bottom: 20.w, left: 5.w), ), label: - '${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.password!.tr}', + '${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.password!.tr}', inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), @@ -122,7 +124,7 @@ class _StarLockForgetPasswordPageState padding: EdgeInsets.only(top: 30.w, bottom: 20.w, left: 5.w), ), label: - '${TranslationLoader.lanKeys!.sure!.tr}${TranslationLoader.lanKeys!.password!.tr}', + '${TranslationLoader.lanKeys!.sure!.tr}${TranslationLoader.lanKeys!.password!.tr}', inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), @@ -136,7 +138,7 @@ class _StarLockForgetPasswordPageState }, leftWidget: SizedBox(), hintText: - '${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.verificationCode!.tr}', + '${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.verificationCode!.tr}', inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), @@ -179,14 +181,21 @@ class _StarLockForgetPasswordPageState Obx(() { return SubmitBtn( btnName: - '${TranslationLoader.lanKeys!.reset!.tr}${TranslationLoader.lanKeys!.password!.tr}', + '${TranslationLoader.lanKeys!.reset!.tr}${TranslationLoader.lanKeys!.password!.tr}', // backgroundColorList: state.canSub.value ? [AppColors.mainColor] :[Colors.grey], fontSize: 30.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), isDisabled: state.canSub.value, onClick: state.canSub.value - ? logic.resetPassword + ? () { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } + logic.resetPassword(); + } : null); }), ], diff --git a/lib/main.dart b/lib/main.dart index d68c857f..38ebdf90 100755 --- a/lib/main.dart +++ b/lib/main.dart @@ -33,10 +33,12 @@ FutureOr main() async { final bool isLogin = await getLoginStatus(); if (isLogin) { await privacySDKInitialization(); - Future.delayed(const Duration(milliseconds: 500), () async{ + Future.delayed(const Duration(milliseconds: 500), () async { final GetAppInfo entity = await ApiRepository.to.getAppInfo(); CustomerTool.init(entity.data?.wechatServiceUrl ?? ''); - WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!); + if (entity.data?.appSiteUrl != null) { + WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!); + } }); } diff --git a/lib/main/lockDetail/card/cardList/cardList_page.dart b/lib/main/lockDetail/card/cardList/cardList_page.dart index e7e7a4c2..7e201210 100755 --- a/lib/main/lockDetail/card/cardList/cardList_page.dart +++ b/lib/main/lockDetail/card/cardList/cardList_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/card/cardList/cardList_state.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -68,6 +69,11 @@ class _CardListPageState extends State with RouteAware { onPressed: () async { final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } ShowTipView().showIosTipWithContentDialog( '重置后,该锁的卡都将被删除哦,确认要重置吗?'.tr, () async { state.isDeletAll = true; diff --git a/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart b/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart index be44eeee..df183855 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart @@ -6,6 +6,7 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_state.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/storage.dart'; @@ -67,6 +68,11 @@ class _ElectronicKeyListPageState extends State { final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } ShowTipView().showIosTipWithContentDialog( '该锁的电子钥匙都将被删除'.tr, logic.resetElectronicKeyListRequest); } else { diff --git a/lib/main/lockDetail/face/faceList/faceList_page.dart b/lib/main/lockDetail/face/faceList/faceList_page.dart index 947627e9..6b1ec731 100755 --- a/lib/main/lockDetail/face/faceList/faceList_page.dart +++ b/lib/main/lockDetail/face/faceList/faceList_page.dart @@ -3,6 +3,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; import 'package:star_lock/tools/showTipView.dart'; @@ -63,6 +64,11 @@ class _FaceListPageState extends State with RouteAware { onPressed: () async { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } // showDeletAlertDialog(context); ShowTipView().showIosTipWithContentDialog( "重置后,该锁的人脸都将被删除哦,确认要重置吗?", () async { diff --git a/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart b/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart index 09c5759e..c654e693 100755 --- a/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart +++ b/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -69,6 +70,11 @@ class _FingerprintListPageState extends State onPressed: () async { final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } ShowTipView().showIosTipWithContentDialog( '重置后,该锁的指纹都将被删除哦,确认要重置吗?'.tr, () async { state.isDeletAll = true; diff --git a/lib/main/lockDetail/iris/irisList/irisList_page.dart b/lib/main/lockDetail/iris/irisList/irisList_page.dart index 6a12c535..bc4f4fe8 100755 --- a/lib/main/lockDetail/iris/irisList/irisList_page.dart +++ b/lib/main/lockDetail/iris/irisList/irisList_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/iris/irisList/irisList_logic.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; @@ -44,6 +45,11 @@ class _IrisListPageState extends State { onPressed: () async { final isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } showDeletAlertDialog(context); } else { // Get.toNamed(Routers.selectLockTypePage); diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart index c15dfa29..411ce532 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart @@ -5,6 +5,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/checkingInInfoData_entity.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSet_state.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -28,9 +29,7 @@ class LockSetPage extends StatefulWidget { class _LockSetPageState extends State with RouteAware { final LockSetLogic logic = Get.put(LockSetLogic()); - final LockSetState state = Get - .find() - .state; + final LockSetState state = Get.find().state; Future getHttpData() async { logic.getLockSettingInfoData().then((LockSetInfoEntity value) { @@ -65,8 +64,7 @@ class _LockSetPageState extends State with RouteAware { child: Column( children: [ Expanded( - child: Obx(() => - ListView( + child: Obx(() => ListView( children: getListWidget(), )), ), @@ -104,47 +102,43 @@ class _LockSetPageState extends State with RouteAware { }), SizedBox(height: 10.h), // 自动闭锁 - Obx(() => - Visibility( - visible: state.lockFeature.value.autoLock == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, - rightTitle: (state.lockSettingInfo.value.autoLock ?? 0) > 0 - ? '${state.lockSetInfoData.value.lockSettingInfo! - .autoLockSecond ?? 0}s' - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - // isHaveRightWidget: true, - // rightWidget: rightText((state.lockSetInfoData.value.lockSetting!.autoLock ?? 0) > 0 - // ? "${state.lockSetInfoData.value.lockSetting!.autoLockSecond ?? 0}s" - // : TranslationLoader.lanKeys!.closed!.tr), - action: () { - Get.toNamed(Routers.automaticBlockingPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value, - // 'lockBasicInfo': state.lockBasicInfo.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.autoLock == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, + rightTitle: (state.lockSettingInfo.value.autoLock ?? 0) > 0 + ? '${state.lockSetInfoData.value.lockSettingInfo!.autoLockSecond ?? 0}s' + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + // isHaveRightWidget: true, + // rightWidget: rightText((state.lockSetInfoData.value.lockSetting!.autoLock ?? 0) > 0 + // ? "${state.lockSetInfoData.value.lockSetting!.autoLockSecond ?? 0}s" + // : TranslationLoader.lanKeys!.closed!.tr), + action: () { + Get.toNamed(Routers.automaticBlockingPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value, + // 'lockBasicInfo': state.lockBasicInfo.value + }); + }))), // 常开模式 - Obx(() => - Visibility( - visible: state.lockFeature.value.passageMode == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, - rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == - 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.normallyOpenModePage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value, - 'lockBasicInfo': state.lockBasicInfo.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.passageMode == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, + rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.normallyOpenModePage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value, + 'lockBasicInfo': state.lockBasicInfo.value + }); + }))), Visibility( visible: true, child: CommonItem( @@ -153,10 +147,10 @@ class _LockSetPageState extends State with RouteAware { isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed( - Routers.lockTimePage, arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); + Get.toNamed(Routers.lockTimePage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); })), SizedBox(height: 30.h), Container( @@ -166,10 +160,14 @@ class _LockSetPageState extends State with RouteAware { isDelete: true, onClick: () { // logic.deletUserAction(); - // logic.deletLockInfoData(); // showDeletAlertDialog(context); // showDeletPasswordAlertDialog(context); + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } logic.deleyLockLogicOfRoles(); }), ), @@ -242,27 +240,25 @@ class _LockSetPageState extends State with RouteAware { // })), // SizedBox(height: 10.h), // 自动闭锁 - Obx(() => - Visibility( - visible: state.lockFeature.value.autoLock == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, - rightTitle: state.lockSettingInfo.value.autoLock! > 0 - ? '${state.lockSetInfoData.value.lockSettingInfo! - .autoLockSecond}s' - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - // isHaveRightWidget: true, - // rightWidget: rightText((state.lockSetInfoData.value.lockSetting!.autoLock ?? 0) > 0 - // ? "${state.lockSetInfoData.value.lockSetting!.autoLockSecond ?? 0}s" - // : TranslationLoader.lanKeys!.closed!.tr), - action: () { - Get.toNamed(Routers.automaticBlockingPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.autoLock == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr, + rightTitle: state.lockSettingInfo.value.autoLock! > 0 + ? '${state.lockSetInfoData.value.lockSettingInfo!.autoLockSecond}s' + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + // isHaveRightWidget: true, + // rightWidget: rightText((state.lockSetInfoData.value.lockSetting!.autoLock ?? 0) > 0 + // ? "${state.lockSetInfoData.value.lockSetting!.autoLockSecond ?? 0}s" + // : TranslationLoader.lanKeys!.closed!.tr), + action: () { + Get.toNamed(Routers.automaticBlockingPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + }))), // 锁声音 Obx(() { String titleStr = ''; @@ -302,80 +298,72 @@ class _LockSetPageState extends State with RouteAware { })); }), // 防撬报警 - Obx(() => - Visibility( - visible: state.lockFeature.value.antiPrySwitch == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr, - rightTitle: (state.lockSettingInfo.value.antiPrySwitch ?? - 0) == 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.burglarAlarmPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.antiPrySwitch == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr, + rightTitle: (state.lockSettingInfo.value.antiPrySwitch ?? 0) == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.burglarAlarmPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + }))), SizedBox(height: 10.h), // 常开模式 - Obx(() => - Visibility( - visible: state.lockFeature.value.passageMode == 1, - // visible: true, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, - rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == - 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.normallyOpenModePage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.passageMode == 1, + // visible: true, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr, + rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.normallyOpenModePage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + }))), // 远程开锁 - Obx(() => - Visibility( - visible: state.lockFeature.value.remoteUnlock == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr, - rightTitle: (state.lockSettingInfo.value.remoteUnlock ?? 0) == - 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.remoteUnlockingPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.remoteUnlock == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr, + rightTitle: (state.lockSettingInfo.value.remoteUnlock ?? 0) == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.remoteUnlockingPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + }))), // 重置键 - Obx(() => - Visibility( - visible: state.lockBasicInfo.value.isLockOwner == 1 && - state.lockFeature.value.resetSwitch == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.resetButton!.tr, - rightTitle: (state.lockSettingInfo.value.resetSwitch ?? 0) == - 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.resetButtonPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - }))), + Obx(() => Visibility( + visible: state.lockBasicInfo.value.isLockOwner == 1 && + state.lockFeature.value.resetSwitch == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.resetButton!.tr, + rightTitle: (state.lockSettingInfo.value.resetSwitch ?? 0) == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.resetButtonPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + }))), SizedBox(height: 10.h), //---田总新增展示 // Obx(() => @@ -409,20 +397,19 @@ class _LockSetPageState extends State with RouteAware { }); })), //猫眼设置 - Obx(() => - Visibility( - visible: state.lockFeature.value.isSupportCatEye == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.catEyeSet!.tr, - rightTitle: '', - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.catEyeSetPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - }))), + Obx(() => Visibility( + visible: state.lockFeature.value.isSupportCatEye == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.catEyeSet!.tr, + rightTitle: '', + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.catEyeSetPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + }))), // Obx(() => //自动亮屏已包括至面容开锁模块 // Visibility( @@ -477,7 +464,7 @@ class _LockSetPageState extends State with RouteAware { // 蓝牙广播(关闭则不能使用蓝牙主动开锁) /* 2024-01-12 会议确定去掉“蓝牙广播” by DaisyWu Obx(() => Visibility( - visible: true, + visible: true, child: CommonItem( leftTitel: TranslationLoader.lanKeys!.bluetoothBroadcast!.tr, rightTitle: "", @@ -511,66 +498,62 @@ class _LockSetPageState extends State with RouteAware { // }), // 考勤 Obx( - () => - Visibility( - visible: state.lockBasicInfo.value.isLockOwner == 1 && - state.lockFeature.value.attendance == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.checkingIn!.tr, - rightTitle: '', - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: _openCheckInSwitch())), + () => Visibility( + visible: state.lockBasicInfo.value.isLockOwner == 1 && + state.lockFeature.value.attendance == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.checkingIn!.tr, + rightTitle: '', + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: _openCheckInSwitch())), ), // 开锁提醒 Obx( - () => - Visibility( - visible: state.lockBasicInfo.value.isLockOwner == 1 && - state.lockFeature.value.unlockReminder == 1, - child: CommonItem( - leftTitel: TranslationLoader.lanKeys!.unlockReminder!.tr, - rightTitle: '', - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: _lockRemindSwitch())), + () => Visibility( + visible: state.lockBasicInfo.value.isLockOwner == 1 && + state.lockFeature.value.unlockReminder == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.unlockReminder!.tr, + rightTitle: '', + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: _lockRemindSwitch())), ), // APP开锁时是否需联网 Obx( - () => - Visibility( - visible: state.lockBasicInfo.value.isLockOwner == 1 && - state.lockFeature.value.appUnlockOnline == 1, - child: CommonItem( - leftTitel: TranslationLoader - .lanKeys!.whetherInternetRequiredWhenUnlocking!.tr, - rightTitle: '', - isHaveLine: false, - isHaveRightWidget: true, - rightWidget: _openLockNeedOnlineSwitch()), - ), + () => Visibility( + visible: state.lockBasicInfo.value.isLockOwner == 1 && + state.lockFeature.value.appUnlockOnline == 1, + child: CommonItem( + leftTitel: TranslationLoader + .lanKeys!.whetherInternetRequiredWhenUnlocking!.tr, + rightTitle: '', + isHaveLine: false, + isHaveRightWidget: true, + rightWidget: _openLockNeedOnlineSwitch()), + ), ), SizedBox(height: 10.h), // wifi配网 Obx( - () => - Visibility( - visible: state.lockFeature.value.wifi == 1, - child: CommonItem( - leftTitel: + () => Visibility( + visible: state.lockFeature.value.wifi == 1, + child: CommonItem( + leftTitel: TranslationLoader.lanKeys!.wifiDistributionNetwork!.tr, - rightTitle: '', - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.wifiListPage, - arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); - // Get.toNamed(Routers.configuringWifiPage, arguments: { - // 'lockSetInfoData': state.lockSetInfoData.value - // }); - })), + rightTitle: '', + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.wifiListPage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); + // Get.toNamed(Routers.configuringWifiPage, arguments: { + // 'lockSetInfoData': state.lockSetInfoData.value + // }); + })), ), // Obx(() => // 锁时间 @@ -582,10 +565,10 @@ class _LockSetPageState extends State with RouteAware { isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed( - Routers.lockTimePage, arguments: { - 'lockSetInfoData': state.lockSetInfoData.value - }); + Get.toNamed(Routers.lockTimePage, + arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); })), // ), // Obx(() => @@ -676,12 +659,11 @@ class _LockSetPageState extends State with RouteAware { thumbColor: CupertinoColors.white, value: state.isAttendance.value == 1, onChanged: (bool value) { - logic.openCheckingInData(( - CheckingInInfoDataEntity checkingInInfoDataEntity) { + logic.openCheckingInData( + (CheckingInInfoDataEntity checkingInInfoDataEntity) { if (checkingInInfoDataEntity.data!.companyId == 0) { // logic.showCupertinoAlertDialog(context); - ShowTipView().showIosTipWithContentDialog( - '创建公司后,考勤功能才能使用'.tr, () { + ShowTipView().showIosTipWithContentDialog('创建公司后,考勤功能才能使用'.tr, () { // 删除锁 Get.toNamed(Routers.checkInCreatCompanyPage, arguments: { diff --git a/lib/main/lockDetail/lockSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart b/lib/main/lockDetail/lockSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart index b04eca44..ca725531 100755 --- a/lib/main/lockDetail/lockSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart +++ b/lib/main/lockDetail/lockSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/noData.dart'; import '../../../../../appRouters.dart'; @@ -19,6 +20,7 @@ class WirelessKeyboardPage extends StatefulWidget { class _WirelessKeyboardPageState extends State { List dataList = []; + @override Widget build(BuildContext context) { return Scaffold( @@ -34,6 +36,11 @@ class _WirelessKeyboardPageState extends State { style: TextStyle(color: Colors.white, fontSize: 24.sp), ), onPressed: () { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } _showDialog(context); }, ), diff --git a/lib/main/lockDetail/palm/palmList/palmList_page.dart b/lib/main/lockDetail/palm/palmList/palmList_page.dart index 38d70903..18e153a0 100755 --- a/lib/main/lockDetail/palm/palmList/palmList_page.dart +++ b/lib/main/lockDetail/palm/palmList/palmList_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; import 'package:star_lock/main/lockDetail/palm/palmList/palmList_logic.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/left_slide/left_slide_actions.dart'; @@ -44,6 +45,11 @@ class _PalmListPageState extends State { onPressed: () async { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } showDeletAlertDialog(context); } else { // Get.toNamed(Routers.selectLockTypePage); diff --git a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart index 2f206d13..7403cf35 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart @@ -6,6 +6,7 @@ import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKe import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart'; import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/storage.dart'; import '../../../../appRouters.dart'; @@ -67,6 +68,11 @@ class _PasswordKeyListPageState extends State final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } if (state.itemDataList.isEmpty) { logic.showToast('暂无密码,无需重置'.tr); return; @@ -227,7 +233,8 @@ class _PasswordKeyListPageState extends State Row( children: [ SizedBox( - width: passwordKeyListItem.keyboardPwdStatus == 2 || passwordKeyListItem.keyboardPwdStatus == 3 + width: passwordKeyListItem.keyboardPwdStatus == 2 || + passwordKeyListItem.keyboardPwdStatus == 3 ? 1.sw - 110.w - 100.w : 1.sw - 110.w - 50.w, child: Row(children: [ @@ -247,7 +254,7 @@ class _PasswordKeyListPageState extends State '已过期'.tr, style: TextStyle(color: Colors.red, fontSize: 20.sp), ) - else if (passwordKeyListItem.keyboardPwdStatus == 3) + else if (passwordKeyListItem.keyboardPwdStatus == 3) Text( '未生效'.tr, style: TextStyle(color: Colors.red, fontSize: 20.sp), diff --git a/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart b/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart index b5527846..5f193cd1 100755 --- a/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart +++ b/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart @@ -3,6 +3,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; @@ -44,6 +45,11 @@ class _RemoteControlListPageState extends State { onPressed: () async { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { + final bool isNetWork = + LockMainLogic.to()?.judgeTheNetwork() ?? false; + if (!isNetWork) { + return; + } showDeletAlertDialog(context); } else { // Get.toNamed(Routers.selectLockTypePage); diff --git a/lib/main/lockMian/lockMain/lockMain_logic.dart b/lib/main/lockMian/lockMain/lockMain_logic.dart index 2fa7974c..ae2daf05 100755 --- a/lib/main/lockMian/lockMain/lockMain_logic.dart +++ b/lib/main/lockMian/lockMain/lockMain_logic.dart @@ -109,11 +109,20 @@ class LockMainLogic extends BaseGetXController { result != ConnectivityResult.none) { // 从无网络到有网络 state.networkConnectionStatus.value = 1; - getStarLockInfo(); + getStarLockInfo(isUnShowLoading: true); } }); } + /// 判断是否有网络 + bool judgeTheNetwork() { + final bool isNetwork = state.networkConnectionStatus.value == 1; + if (!isNetwork) { + EasyLoading.showToast('网络访问失败,请检查网络是否正常'.tr); + } + return isNetwork; + } + /// 检测推送是否开启 Future checkWhetherPushIsEnabled() async { bool notificationEnabled = false; @@ -261,6 +270,7 @@ class LockMainLogic extends BaseGetXController { super.onInit(); checkWhetherPushIsEnabled(); _initSubscription(); + connectListener(); } @override @@ -270,4 +280,11 @@ class LockMainLogic extends BaseGetXController { }); super.onClose(); } + + static LockMainLogic? to() { + if (Get.isRegistered()) { + return Get.find(); + } + return null; + } } From e56685be9cb50ce3241cb17c9f2291c5b733139c Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 18:02:56 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20=E4=BA=BA=E8=84=B8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A7=93=E5=90=8D=E5=90=8E=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=88=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/lan/lan_en.json | 3 +- images/lan/lan_keys.json | 3 +- images/lan/lan_zh.json | 3 +- .../face/faceDetail/faceDetail_logic.dart | 2 + .../face/faceDetail/faceDetail_page.dart | 38 +++++++------ ...eleteAdministratorIsHaveAllDataWidget.dart | 54 +++++++++++-------- 6 files changed, 63 insertions(+), 40 deletions(-) diff --git a/images/lan/lan_en.json b/images/lan/lan_en.json index 5f66a7a8..d0c782b8 100755 --- a/images/lan/lan_en.json +++ b/images/lan/lan_en.json @@ -924,5 +924,6 @@ "导出成功":"Export success", "发送钥匙": "Send key", "进度": "Progress", - "失败": "Failure" + "失败": "Failure", + "人脸详情": "Face details" } diff --git a/images/lan/lan_keys.json b/images/lan/lan_keys.json index c60eaf12..2d798848 100755 --- a/images/lan/lan_keys.json +++ b/images/lan/lan_keys.json @@ -956,5 +956,6 @@ "导出成功":"导出成功", "发送钥匙": "发送钥匙", "进度": "进度", - "失败": "失败" + "失败": "失败", + "人脸详情": "人脸详情" } diff --git a/images/lan/lan_zh.json b/images/lan/lan_zh.json index 59861ed2..b788524f 100755 --- a/images/lan/lan_zh.json +++ b/images/lan/lan_zh.json @@ -921,6 +921,7 @@ "导出成功":"导出成功", "发送钥匙": "发送钥匙", "进度": "进度", - "失败": "失败" + "失败": "失败", + "人脸详情": "人脸详情" } diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart index 5ac27227..b4f75049 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart @@ -174,6 +174,8 @@ class FaceDetailLogic extends BaseGetXController { showToast('修改成功', something: () { Get.back(result: 'addScuess'); }); + }else{ + Get.back(); } } diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart index b32f3225..54bf087f 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart @@ -33,7 +33,7 @@ class _FaceDetailPageState extends State with RouteAware { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '人脸详情', + barTitle: '人脸详情'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), @@ -44,7 +44,9 @@ class _FaceDetailPageState extends State with RouteAware { rightTitle: state.typeNumber.value, isHaveDirection: false, isHaveLine: true)), - Obx(() => lockDataListItem(TranslationLoader.lanKeys!.name!.tr, state.typeName.value, () { + Obx(() => lockDataListItem( + TranslationLoader.lanKeys!.name!.tr, state.typeName.value, + () { // showCupertinoAlertDialog(context); ShowTipView().showTFViewAlertDialog( state.changeNameController, @@ -54,7 +56,6 @@ class _FaceDetailPageState extends State with RouteAware { logic.showToast('请输入姓名'.tr); return; } - Get.back(); state.typeName.value = state.changeNameController.text; logic.updateFaceNameData(); }, inputFormatters: [ @@ -64,8 +65,8 @@ class _FaceDetailPageState extends State with RouteAware { })), Obx(() => Visibility( visible: state.keyType.value == 4 || - state.keyType.value == 2 || - state.keyType.value == 1, + state.keyType.value == 2 || + state.keyType.value == 1, child: CommonItem( leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr, allHeight: 70.h, @@ -187,11 +188,12 @@ class _FaceDetailPageState extends State with RouteAware { rightTitle: '', isHaveDirection: true, action: () { - Get.toNamed(Routers.lockOperatingRecordPage, arguments: { - 'type': 4, - 'id': state.faceItemData.value.faceId.toString(), - 'recordName': state.faceItemData.value.faceName - }); + Get.toNamed(Routers.lockOperatingRecordPage, + arguments: { + 'type': 4, + 'id': state.faceItemData.value.faceId.toString(), + 'recordName': state.faceItemData.value.faceName + }); }), // SizedBox(height: 40.h), // addControlsBtn(type), @@ -215,12 +217,14 @@ class _FaceDetailPageState extends State with RouteAware { ); } - Widget lockDataListItem(String leftTitle, String conentStr, Function()? action){ + Widget lockDataListItem( + String leftTitle, String conentStr, Function()? action) { return GestureDetector( onTap: action, child: Container( // height: 70.h, - padding: EdgeInsets.only(left: 20.w, right: 10.w, top: 15.h, bottom: 15.h), + padding: + EdgeInsets.only(left: 20.w, right: 10.w, top: 15.h, bottom: 15.h), decoration: BoxDecoration( color: Colors.white, border: Border( @@ -228,15 +232,17 @@ class _FaceDetailPageState extends State with RouteAware { color: AppColors.greyLineColor, // 设置边框颜色 width: 2.0.h, // 设置边框宽度 ), - ) - ), + )), child: Row( children: [ Text(leftTitle, style: TextStyle(fontSize: 22.sp)), SizedBox(width: 10.w), Expanded( - child: Text(conentStr, textAlign:TextAlign.end, style: TextStyle(fontSize: 22.sp, )) - ), + child: Text(conentStr, + textAlign: TextAlign.end, + style: TextStyle( + fontSize: 22.sp, + ))), SizedBox(width: 10.w), Image.asset( 'images/icon_right_grey.png', diff --git a/lib/tools/showDeleteAdministratorIsHaveAllDataWidget.dart b/lib/tools/showDeleteAdministratorIsHaveAllDataWidget.dart index b5cda199..cdf0dec0 100755 --- a/lib/tools/showDeleteAdministratorIsHaveAllDataWidget.dart +++ b/lib/tools/showDeleteAdministratorIsHaveAllDataWidget.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -8,34 +7,47 @@ class ShowDeleteAdministratorIsHaveAllDataWidget extends StatefulWidget { BlockIsHaveAllDataCallback? blockIsHaveAllDataCallback; String? contentStr; - ShowDeleteAdministratorIsHaveAllDataWidget({Key? key, this.contentStr, this.blockIsHaveAllDataCallback}) : super(key: key); + ShowDeleteAdministratorIsHaveAllDataWidget( + {Key? key, this.contentStr, this.blockIsHaveAllDataCallback}) + : super(key: key); @override - State createState() => _ShowDeleteAdministratorIsHaveAllDataWidgetState(); + State createState() => + _ShowDeleteAdministratorIsHaveAllDataWidgetState(); } -class _ShowDeleteAdministratorIsHaveAllDataWidgetState extends State { +class _ShowDeleteAdministratorIsHaveAllDataWidgetState + extends State { bool selet = false; @override Widget build(BuildContext context) { - return Row( - children: [ - GestureDetector( - onTap: () { - setState(() { - selet = !selet; - widget.blockIsHaveAllDataCallback!(selet); - }); - }, - child: Image.asset( - selet ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', - width: 30.w, - height: 30.w, - )), - SizedBox(width: 15.w,), - Expanded(child: Text(widget.contentStr!, maxLines: 2, textAlign: TextAlign.start, style: TextStyle(fontSize: 24.sp))), - ], + return GestureDetector( + onTap: () { + setState(() { + selet = !selet; + widget.blockIsHaveAllDataCallback!(selet); + }); + }, + child: Row( + children: [ + Image.asset( + selet + ? 'images/icon_round_select.png' + : 'images/icon_round_unSelect.png', + width: 30.w, + height: 30.w, + ), + SizedBox( + width: 15.w, + ), + Expanded( + child: Text(widget.contentStr!, + maxLines: 2, + textAlign: TextAlign.start, + style: TextStyle(fontSize: 24.sp))), + ], + ), ); } } From 90e7742c2e2d4f4dc7ac0da59c4688f1029413e9 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 24 Jun 2024 18:31:37 +0800 Subject: [PATCH 9/9] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E6=A3=80=E6=B5=8B=E8=84=9A=E6=9C=AC=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=89=88=E6=9C=AC=E5=8F=B7=E6=8E=A7=E5=88=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/network/api.dart | 2 +- pre_build.sh | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/network/api.dart b/lib/network/api.dart index da15ded9..0d7f2d05 100755 --- a/lib/network/api.dart +++ b/lib/network/api.dart @@ -75,7 +75,7 @@ abstract class Api { final String openCheckingInURL = '/attendanceCompany/isExistenceCompany'; // 开启考勤获取是否有公司 final String setCheckInCreateCompanyURL = - '/attendanceCompany/add'; // 设置考勤时创建公司 + '/v2/attendanceCompany/add'; // 设置考勤时创建公司 final String deleteCompanyURL = '/attendanceCompany/delete'; // 删除公司 final String getAttendanceRecordListByDateURL = diff --git a/pre_build.sh b/pre_build.sh index dd78490c..5f7ccc57 100644 --- a/pre_build.sh +++ b/pre_build.sh @@ -10,7 +10,7 @@ # 设置 environment="xhj" main_file="lib/main_xhj_full.dart" -version_string="1.0.52" +version_string="1.0.66" file_path="lib/network/api.dart" ############################################################### @@ -38,7 +38,17 @@ esac echo "API 前缀为: $api_prefix" -urls=$(curl -s -X POST -d "version=$version_string" "$environment/api/app/getDeprecatedApiList" | jq -r '.data[].url') +response=$(curl -s -X POST -d "version=$version_string" "$api_prefix/api/app/checkAppBuildVersion") +error_code=$(echo $response | jq '.errorCode') + +# 判断是否成功 +if [ "$error_code" != "0" ]; then + error_msg=$(echo $response | jq -r '.errorMsg') + echo "失败:$error_msg" + exit 1 +fi + +urls=$(curl -s -X POST -d "version=$version_string" "$api_prefix/api/app/getDeprecatedApiList" | jq -r '.data[].url') echo "* 成功获取废弃 api 数据" # 解析 api 文件数据