From 75c38697b567ca48d93a7d5d63069827e0e4cdd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Wed, 21 Aug 2024 18:31:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=9F=E9=94=81=E9=A1=B9=E7=9B=AE=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=9B=BD=E9=99=85=E5=8C=96=E5=AD=97=E6=AE=B5=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E5=85=A8=E9=83=A8=E5=AF=BB=E6=89=BE=E5=AE=8C=E6=AF=95?= =?UTF-8?q?=20=E5=85=B11024=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lan/lan_en.json | 72 ++++++++- lan/lan_keys.json | 72 ++++++++- lan/lan_zh.json | 72 ++++++++- .../starLock_forgetPassword_page.dart | 2 +- .../starLock_forgetPassword_xhj_page.dart | 3 +- lib/login/login/starLock_login_logic.dart | 2 - lib/login/login/starLock_login_page.dart | 2 +- lib/login/login/starLock_login_state.dart | 24 +-- lib/login/login/starLock_login_xhj_page.dart | 2 +- .../register/starLock_register_logic.dart | 1 + .../register/starLock_register_page.dart | 3 +- .../register/starLock_register_xhj_page.dart | 2 +- .../selectCountryRegion_page.dart | 4 +- .../accessoriesList/accessoriesList_page.dart | 23 +-- .../accessoriesList_state.dart | 4 +- .../authorizedAdmin_logic.dart | 15 +- .../authorizedAdmin/authorizedAdmin_page.dart | 14 +- .../authorizedAdmin_state.dart | 4 +- .../authorizedAdminList_logic.dart | 3 +- .../authorizedAdminList_page.dart | 4 +- .../volumeAuthorizationLockManage_page.dart | 2 +- .../volumeAuthorizationLockManage_tabbar.dart | 2 +- .../volumeAuthorizationLock_logic.dart | 2 +- .../volumeAuthorizationLock_page.dart | 8 +- .../volumeAuthorizationLock_state.dart | 2 +- .../checkingInDetail_logic.dart | 3 +- .../checkingInAddHolidays_logic.dart | 7 +- .../checkingInAddHolidays_page.dart | 2 +- .../checkingInDeletHolidays_logic.dart | 5 +- .../checkingInDeletHolidays_page.dart | 1 - .../checkingInSetHolidays_logic.dart | 3 +- .../checkingInSetHolidays_page.dart | 2 +- .../checkingInListSeletMonth_page.dart | 4 +- .../checkingInList/checkingInList_page.dart | 7 +- .../checkingInSet/checkingInSet_logic.dart | 2 +- .../checkingInSet/checkingInSet_page.dart | 2 +- .../checkingInSetWorkTime_logic.dart | 5 +- .../checkingInSetWorkTime_page.dart | 8 +- .../checkingInSetWorkdaySet_logic.dart | 2 +- .../checkingInSetWorkdaySet_page.dart | 2 +- .../checkingInAddStaff_page.dart | 3 +- .../batchExportLog/batchExportLog_page.dart | 2 +- .../doorLockLogDetail_page.dart | 4 +- .../doorLockLog/doorLockLog_logic.dart | 7 +- .../doorLockLog/doorLockLog_page.dart | 85 ++++++---- .../doorLockLog/doorLockLog_state.dart | 1 + .../exportRecordDialog_page.dart | 1 + .../exportSuccess/exportSuccess_page.dart | 1 + .../viewExportRecord_page.dart | 1 + .../electronicKeyDetail_logic.dart | 18 +-- .../electronicKeyDetail_state.dart | 74 +++++---- .../electronicKeyDetailChangeDate_logic.dart | 17 +- .../electronicKeyDetailChangeDate_page.dart | 2 +- .../electronicKeyDetailChangeDate_state.dart | 36 ++--- .../KeyPeriodValidityModel.dart | 10 +- .../electronicKeyPeriodValidity_logic.dart | 29 ++-- .../electronicKeyPeriodValidity_page.dart | 2 +- .../electronicKeyPeriodValidity_state.dart | 46 +++--- .../electronicKeyList_logic.dart | 1 + .../electronicKeyList_page.dart | 2 +- .../massSendReceiverCell.dart | 1 + .../sendElectronicKey_page.dart | 2 +- .../sendElectronicKey_state.dart | 10 +- .../view/sendElectronicKeyView_logic.dart | 16 +- .../view/sendElectronicKeyView_page.dart | 6 +- .../sendEmailNotification_logic.dart | 6 +- .../sendEmailNotification_page.dart | 9 +- .../sendEmailNotification_state.dart | 8 +- .../face/addFace/addFace_logic.dart | 10 +- .../lockDetail/face/addFace/addFace_page.dart | 6 +- .../face/faceDetail/faceDetail_logic.dart | 5 +- .../face/faceDetail/faceDetail_page.dart | 6 +- .../face/faceDetail/faceDetail_state.dart | 58 ++++--- .../face/faceList/faceList_page.dart | 12 +- .../iris/addIris/addIris_logic.dart | 3 - .../lockDetail/iris/addIris/addIris_page.dart | 9 +- .../iris/addIris/addIris_state.dart | 60 +++---- .../addIrisTypeManage_page.dart | 3 +- .../iris/addIrisType/addIrisType_logic.dart | 73 ++++----- .../iris/addIrisType/addIrisType_page.dart | 4 +- .../iris/addIrisType/addIrisType_state.dart | 28 ++-- .../iris/irisDetail/irisDetail_logic.dart | 64 ++++---- .../iris/irisDetail/irisDetail_page.dart | 10 +- .../iris/irisDetail/irisDetail_state.dart | 51 +++--- .../iris/irisList/irisList_logic.dart | 3 +- .../iris/irisList/irisList_page.dart | 76 ++++----- .../iris/irisList/irisList_state.dart | 18 +-- .../lockDetail/lockDetail_logic.dart | 16 +- .../lockDetail/lockDetail_main_page.dart | 10 +- .../lockDetail/lockDetail_page.dart | 14 +- .../lockOperatingRecord_logic.dart | 8 +- .../lockOperatingRecord_page.dart | 81 +++++----- .../addFamily/addFamily_logic.dart | 10 +- .../messageWarn/addFamily/addFamily_page.dart | 2 +- .../messageWarn/lockUser/lockUser_entity.dart | 148 +++++++++--------- .../messageWarn/lockUser/lockUser_logic.dart | 26 +-- .../messageWarn/lockUser/lockUser_page.dart | 1 + .../coerceFingerprint_logic.dart | 29 ++-- .../coerceFingerprint_page.dart | 25 +-- .../coerceFingerprint_state.dart | 22 +-- .../coerceFingerprintList_state.dart | 14 +- .../coerceOpenDoor/coerceOpenDoor_logic.dart | 11 +- .../coerceOpenDoor/coerceOpenDoor_page.dart | 21 +-- .../coerceOpenDoor/coerceOpenDoor_state.dart | 8 +- .../lowBatteryReminder_logic.dart | 39 ++--- .../lowBatteryReminder_page.dart | 30 ++-- .../lowBatteryReminder_state.dart | 28 ++-- .../msgNotification_logic.dart | 59 ++++--- .../msgNotification/msgNotification_page.dart | 48 +++--- .../msgNotification_state.dart | 29 ++-- .../nDaysUnopened/nDaysUnopened_page.dart | 4 +- .../nDaysUnopened/nDaysUnopened_state.dart | 65 ++++---- .../openDoorNotify/openDoorNotify_logic.dart | 17 +- .../openDoorNotify/openDoorNotify_page.dart | 21 +-- .../openDoorNotify/openDoorNotify_state.dart | 6 +- .../notificationMode_page.dart | 2 +- .../notificationMode_state.dart | 36 ++--- .../monitoring/lockMonitoring_logic.dart | 75 +++++---- .../monitoring/lockMonitoring_page.dart | 106 ++++++------- .../monitoring/lockMonitoring_state.dart | 36 ++--- .../monitoringRealTimeScreen_page.dart | 33 ++-- .../palm/addPalm/addPalm_logic.dart | 1 - .../lockDetail/palm/addPalm/addPalm_page.dart | 2 +- .../palm/addPalmType/addPalmType_page.dart | 1 + .../palm/palmDetail/palmDetail_page.dart | 2 +- .../passwordKeyDetail_logic.dart | 50 +++--- .../passwordKeyDetail_page.dart | 16 +- .../passwordKeyDetailChangeDate_logic.dart | 8 +- .../passwordKeyList_logic.dart | 30 ++-- .../passwordKeyList/passwordKeyList_page.dart | 2 +- .../passwordKeyList_state.dart | 24 +-- .../passwordKey_perpetual_logic.dart | 41 ++--- .../passwordKey_perpetual_page.dart | 35 ++--- .../passwordKey_perpetual_state.dart | 2 +- .../realTimePicture_logic.dart | 80 +++++----- .../realTimePicture/realTimePicture_page.dart | 77 +++++---- .../realTimePicture_state.dart | 31 ++-- .../addRemoteControl_logic.dart | 1 - .../addRemoteControl_page.dart | 2 +- .../addRemoteControlType_page.dart | 2 +- .../remoteControlDetail_page.dart | 2 +- .../remoteControlList_logic.dart | 6 +- .../remoteControlList_page.dart | 5 +- .../demoModeLockDetail_page.dart | 19 ++- .../demoModeLockSet/demoModeLockSet_page.dart | 28 ++-- .../lockMian/entity/lockListInfo_entity.dart | 148 +++++++++--------- .../lockMian/lockList/lockList_logic.dart | 7 +- lib/main/lockMian/lockList/lockList_page.dart | 3 +- .../lockMian/lockList/lockList_xhj_page.dart | 2 +- .../lockMian/lockMain/lockMain_logic.dart | 1 + lib/main/lockMian/lockMain/lockMain_page.dart | 4 +- .../lockMian/lockMain/lockMain_state.dart | 6 +- .../lockMain/xhj/lockMain_xhj_page.dart | 2 +- lib/talk/call/callTalk.dart | 28 ++-- lib/talk/call/g711.dart | 8 +- lib/talk/udp/io_protocol/udp_heart.dart | 17 +- lib/talk/udp/udp_help.dart | 29 ++-- lib/talk/udp/udp_reciverData.dart | 54 +++---- lib/talk/udp/udp_senderManage.dart | 4 +- lib/talk/udp/udp_talkClass.dart | 35 +++-- 160 files changed, 1730 insertions(+), 1463 deletions(-) diff --git a/lan/lan_en.json b/lan/lan_en.json index 3190325e..9c3e88fb 100755 --- a/lan/lan_en.json +++ b/lan/lan_en.json @@ -968,5 +968,75 @@ "快进至": "Fast forward to", "快退至": "Rewind to", "暂无视频信息": "No video information", - "加载出错": "Loading error" + "加载出错": "Loading error", + "距离一个成年人手臂长度": "An adult arm's length away", + "(约0.6米)。": "(about 0.6 meters).", + "保持脸部无遮挡,露出五官。": "Keep your face unobstructed and show your facial features.", + "准备好了,开始添加": "Ready, start adding", + "正在录入中...": "Recording...", + "添加人脸失败": "Failed to add face", + "重置后,该锁的人脸都将被删除哦,确认要重置吗?": "After resetting, the faces of the lock will be deleted. Are you sure you want to reset?", + "人脸号": "Face number", + "虹膜详情": "Iris details", + "虹膜号": "Iris number", + "选择设备类型": "Select device type", + "照明灯具": "Lighting fixtures", + "电动窗帘": "Electric curtains", + "门窗传感器": "Door and window sensor", + "传感器": "Sensor", + "清除数据成功": "Data cleared successfully", + "1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。": "1. If the lock is not connected to the Internet, the door opening records of passwords, IC cards, fingerprints, etc. cannot be uploaded in real time. You can click the button in the upper right corner and then read the records.", + "2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录": "2. If you need to keep the history, you can click the button in the upper right corner and then export the records", + "看不到操作记录,可能原因有": "If you can't see the operation record, the possible reasons are", + "操作记录详情": "Operation record details", + "操作时间": "Operation time", + "此模块功能需要锁联网后设置方可生效": "This module function needs to be set after the lock is connected to the Internet to take effect", + "用户已存在": "User already exists", + "钥匙数量已到上限": "The number of keys has reached the upper limit", + "附近没有可用网关": "There is no available gateway nearby", + "正在创建安全连接...": "Creating a secure connection...", + "监视状态下不能发送录音": "Cannot send recordings in monitoring mode", + "挂断": "Hang up", + "监视中暂不能开锁": "Unlocking is not available during monitoring", + "长按说话": "Press and hold to speak", + "松开发送": "Release to send", + "请输入6位数字开锁密码": "Please enter a 6-digit unlock password", + "请输入开锁密码": "Please enter the unlock password", + "接收者在有效期内可以不限次数使用": "The recipient can use it an unlimited number of times within the validity period", + "接收者可以使用此App开关锁": "The recipient can use this App to unlock", + "单次钥匙有效期为1小时,只能使用一次": "The validity period of a single key is 1 hour, and it can only be used once", + "接收者可以在有效期内的固定时间段里,不限次数使用": "The recipient can use it an unlimited number of times within a fixed time period during the validity period", + "获取模板失败": "Failed to get the template", + "微信通知": "WeChat notification", + "系统短信": "System SMS", + "系统邮件": "System email", + "模板": "Template", + "新建模版": "New template", + "您好,您的密码是": "Hello, your password is", + "密码名字": "Password name", + "请输入6-9位密码": "Please enter a 6-9 digit password", + "设置密码": "Set password", + "操作成功,密码为": "Operation successful, password is", + "类型:自定义-永久": "Type: Custom-Permanent", + "实时播放": "Real-time playback", + "点击对讲": "Click to intercom", + "长按开锁": "Long press to unlock", + "接听失败": "Failed to answer", + "请在锁设置中开启远程开锁": "Please enable remote unlocking in the lock settings", + "接听": "Answer", + "截图已保存到相册": "Screenshot saved to album", + "添加遥控": "Add remote control", + "已连接到锁,请按遥控": "Connected to the lock, please press the remote control", + "遥控号": "Remote control number", + "遥控详情": "Remote control details", + "照明": "Lighting", + "退出演示模式": "Exit demo mode", + "提示:当前界面为展示界面,添加设备后才能继续使用": "Tip: The current interface is a display interface. After adding the device, you can continue to use it", + "门已上锁": "The door is locked", + "您已在其他设备登录": "You are logged in on another device", + "开门成功": "Open the door successfully", + "开门失败": "Failed to open the door", + "呼叫提醒": "Call reminder", + "收到来自": "Received from", + "锁的呼叫": "Lock call" } diff --git a/lan/lan_keys.json b/lan/lan_keys.json index 3d202a74..4408b2aa 100755 --- a/lan/lan_keys.json +++ b/lan/lan_keys.json @@ -1000,5 +1000,75 @@ "快进至": "快进至", "快退至": "快退至", "暂无视频信息": "暂无视频信息", - "加载出错": "加载出错" + "加载出错": "加载出错", + "距离一个成年人手臂长度": "距离一个成年人手臂长度", + "(约0.6米)。": "(约0.6米)。", + "保持脸部无遮挡,露出五官。": "保持脸部无遮挡,露出五官。", + "准备好了,开始添加": "准备好了,开始添加", + "正在录入中...": "正在录入中...", + "添加人脸失败": "添加人脸失败", + "重置后,该锁的人脸都将被删除哦,确认要重置吗?": "重置后,该锁的人脸都将被删除哦,确认要重置吗?", + "人脸号": "人脸号", + "虹膜详情": "虹膜详情", + "虹膜号": "虹膜号", + "选择设备类型": "选择设备类型", + "照明灯具": "照明灯具", + "电动窗帘": "电动窗帘", + "门窗传感器": "门窗传感器", + "传感器": "传感器", + "清除数据成功": "清除数据成功", + "1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。": "1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。", + "2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录": "2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录", + "看不到操作记录,可能原因有": "看不到操作记录,可能原因有", + "操作记录详情": "操作记录详情", + "操作时间": "操作时间", + "此模块功能需要锁联网后设置方可生效": "此模块功能需要锁联网后设置方可生效", + "用户已存在": "用户已存在", + "钥匙数量已到上限": "钥匙数量已到上限", + "附近没有可用网关": "附近没有可用网关", + "正在创建安全连接...": "正在创建安全连接...", + "监视状态下不能发送录音": "监视状态下不能发送录音", + "挂断": "挂断", + "监视中暂不能开锁": "监视中暂不能开锁", + "长按说话": "长按说话", + "松开发送": "松开发送", + "请输入6位数字开锁密码": "请输入6位数字开锁密码", + "请输入开锁密码": "请输入开锁密码", + "接收者在有效期内可以不限次数使用": "接收者在有效期内可以不限次数使用", + "接收者可以使用此App开关锁": "接收者可以使用此App开关锁", + "单次钥匙有效期为1小时,只能使用一次": "单次钥匙有效期为1小时,只能使用一次", + "接收者可以在有效期内的固定时间段里,不限次数使用": "接收者可以在有效期内的固定时间段里,不限次数使用", + "获取模板失败": "获取模板失败", + "微信通知": "微信通知", + "系统短信": "系统短信", + "系统邮件": "系统邮件", + "模板": "模板", + "新建模版": "新建模版", + "您好,您的密码是": "您好,您的密码是", + "密码名字": "密码名字", + "请输入6-9位密码": "请输入6-9位密码", + "设置密码": "设置密码", + "操作成功,密码为": "操作成功,密码为", + "类型:自定义-永久": "类型:自定义-永久", + "实时播放": "实时播放", + "点击对讲": "点击对讲", + "长按开锁": "长按开锁", + "接听失败": "接听失败", + "请在锁设置中开启远程开锁": "请在锁设置中开启远程开锁", + "接听": "接听", + "截图已保存到相册": "截图已保存到相册", + "添加遥控": "添加遥控", + "已连接到锁,请按遥控": "已连接到锁,请按遥控", + "遥控号": "遥控号", + "遥控详情": "遥控详情", + "照明": "照明", + "退出演示模式": "退出演示模式", + "提示:当前界面为展示界面,添加设备后才能继续使用": "提示:当前界面为展示界面,添加设备后才能继续使用", + "门已上锁": "门已上锁", + "您已在其他设备登录": "您已在其他设备登录", + "开门成功": "开门成功", + "开门失败": "开门失败", + "呼叫提醒": "呼叫提醒", + "收到来自": "收到来自", + "锁的呼叫": "锁的呼叫" } diff --git a/lan/lan_zh.json b/lan/lan_zh.json index bfc2e394..239100d8 100755 --- a/lan/lan_zh.json +++ b/lan/lan_zh.json @@ -966,5 +966,75 @@ "快进至": "快进至", "快退至": "快退至", "暂无视频信息": "暂无视频信息", - "加载出错": "加载出错" + "加载出错": "加载出错", + "距离一个成年人手臂长度": "距离一个成年人手臂长度", + "(约0.6米)。": "(约0.6米)。", + "保持脸部无遮挡,露出五官。": "保持脸部无遮挡,露出五官。", + "准备好了,开始添加": "准备好了,开始添加", + "正在录入中...": "正在录入中...", + "添加人脸失败": "添加人脸失败", + "重置后,该锁的人脸都将被删除哦,确认要重置吗?": "重置后,该锁的人脸都将被删除哦,确认要重置吗?", + "人脸号": "人脸号", + "虹膜详情": "虹膜详情", + "虹膜号": "虹膜号", + "选择设备类型": "选择设备类型", + "照明灯具": "照明灯具", + "电动窗帘": "电动窗帘", + "门窗传感器": "门窗传感器", + "传感器": "传感器", + "清除数据成功": "清除数据成功", + "1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。": "1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。", + "2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录": "2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录", + "看不到操作记录,可能原因有": "看不到操作记录,可能原因有", + "操作记录详情": "操作记录详情", + "操作时间": "操作时间", + "此模块功能需要锁联网后设置方可生效": "此模块功能需要锁联网后设置方可生效", + "用户已存在": "用户已存在", + "钥匙数量已到上限": "钥匙数量已到上限", + "附近没有可用网关": "附近没有可用网关", + "正在创建安全连接...": "正在创建安全连接...", + "监视状态下不能发送录音": "监视状态下不能发送录音", + "挂断": "挂断", + "监视中暂不能开锁": "监视中暂不能开锁", + "长按说话": "长按说话", + "松开发送": "松开发送", + "请输入6位数字开锁密码": "请输入6位数字开锁密码", + "请输入开锁密码": "请输入开锁密码", + "接收者在有效期内可以不限次数使用": "接收者在有效期内可以不限次数使用", + "接收者可以使用此App开关锁": "接收者可以使用此App开关锁", + "单次钥匙有效期为1小时,只能使用一次": "单次钥匙有效期为1小时,只能使用一次", + "接收者可以在有效期内的固定时间段里,不限次数使用": "接收者可以在有效期内的固定时间段里,不限次数使用", + "获取模板失败": "获取模板失败", + "微信通知": "微信通知", + "系统短信": "系统短信", + "系统邮件": "系统邮件", + "模板": "模板", + "新建模版": "新建模版", + "您好,您的密码是": "您好,您的密码是", + "密码名字": "密码名字", + "请输入6-9位密码": "请输入6-9位密码", + "设置密码": "设置密码", + "操作成功,密码为": "操作成功,密码为", + "类型:自定义-永久": "类型:自定义-永久", + "实时播放": "实时播放", + "点击对讲": "点击对讲", + "长按开锁": "长按开锁", + "接听失败": "接听失败", + "请在锁设置中开启远程开锁": "请在锁设置中开启远程开锁", + "接听": "接听", + "截图已保存到相册": "截图已保存到相册", + "添加遥控": "添加遥控", + "已连接到锁,请按遥控": "已连接到锁,请按遥控", + "遥控号": "遥控号", + "遥控详情": "遥控详情", + "照明": "照明", + "退出演示模式": "退出演示模式", + "提示:当前界面为展示界面,添加设备后才能继续使用": "提示:当前界面为展示界面,添加设备后才能继续使用", + "门已上锁": "门已上锁", + "您已在其他设备登录": "您已在其他设备登录", + "开门成功": "开门成功", + "开门失败": "开门失败", + "呼叫提醒": "呼叫提醒", + "收到来自": "收到来自", + "锁的呼叫": "锁的呼叫" } diff --git a/lib/login/forgetPassword/starLock_forgetPassword_page.dart b/lib/login/forgetPassword/starLock_forgetPassword_page.dart index fc0a1eda..88af0188 100755 --- a/lib/login/forgetPassword/starLock_forgetPassword_page.dart +++ b/lib/login/forgetPassword/starLock_forgetPassword_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -11,7 +12,6 @@ import '../../app_settings/app_colors.dart'; import '../../tools/submitBtn.dart'; import '../../tools/tf_loginInput.dart'; import '../../tools/titleAppBar.dart'; -import '../../translations/trans_lib.dart'; class StarLockForgetPasswordPage extends StatefulWidget { const StarLockForgetPasswordPage({Key? key}) : super(key: key); diff --git a/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart b/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart index f5f8eb64..8d4c4872 100755 --- a/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart +++ b/lib/login/forgetPassword/starLock_forgetPassword_xhj_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -6,11 +7,9 @@ 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'; -import 'package:star_lock/translations/trans_lib.dart'; class StarLockForgetPasswordXHJPage extends StatefulWidget { const StarLockForgetPasswordXHJPage({Key? key}) : super(key: key); diff --git a/lib/login/login/starLock_login_logic.dart b/lib/login/login/starLock_login_logic.dart index a5e2fa90..ae3a46e1 100755 --- a/lib/login/login/starLock_login_logic.dart +++ b/lib/login/login/starLock_login_logic.dart @@ -1,4 +1,3 @@ -import 'dart:io'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -9,7 +8,6 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/mine/mine/starLockMine_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; -import 'package:star_lock/tools/push/xs_jPhush.dart'; import '../../main/lockMian/lockMain/lockMain_logic.dart'; import '../../mine/mine/starLockMine_logic.dart'; diff --git a/lib/login/login/starLock_login_page.dart b/lib/login/login/starLock_login_page.dart index 6ce4cad3..f820cf49 100755 --- a/lib/login/login/starLock_login_page.dart +++ b/lib/login/login/starLock_login_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -15,7 +16,6 @@ import '../../tools/commonItem.dart'; import '../../tools/submitBtn.dart'; import '../../tools/tf_loginInput.dart'; import '../../tools/titleAppBar.dart'; -import '../../translations/trans_lib.dart'; import 'starLock_login_logic.dart'; class StarLockLoginPage extends StatefulWidget { diff --git a/lib/login/login/starLock_login_state.dart b/lib/login/login/starLock_login_state.dart index 9521398c..f199f15c 100755 --- a/lib/login/login/starLock_login_state.dart +++ b/lib/login/login/starLock_login_state.dart @@ -2,15 +2,20 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; class StarLockLoginState { - var passwordShow = true.obs; - var agree = false.obs; - var countryCode = '86'.obs; - var countryName = '中国'.obs; + StarLockLoginState() { + // emailOrPhone.value = StoreService.to.getLastUserAccount() as String; + emailOrPhoneController.text = emailOrPhone.value; + } + RxBool passwordShow = true.obs; + RxBool agree = false.obs; - var emailOrPhone = ''.obs; - var pwd = ''.obs; - var canNext = false.obs; + RxString countryCode = '86'.obs; + RxString countryName = '中国'.obs; + + RxString emailOrPhone = ''.obs; + RxString pwd = ''.obs; + RxBool canNext = false.obs; bool get isEmailOrPhone => emailOrPhone.value.isNotEmpty; bool get pwdIsOK => pwd.value.isNotEmpty; @@ -21,11 +26,6 @@ class StarLockLoginState { FocusNode pwdFocusNode = FocusNode(); RxMap deviceInfoMap = {}.obs; - StarLockLoginState() { - // emailOrPhone.value = StoreService.to.getLastUserAccount() as String; - emailOrPhoneController.text = emailOrPhone.value; - } - void onClose() { // emailOrPhoneController.dispose(); // pwdController.dispose(); diff --git a/lib/login/login/starLock_login_xhj_page.dart b/lib/login/login/starLock_login_xhj_page.dart index 5b1e1344..6f19f769 100755 --- a/lib/login/login/starLock_login_xhj_page.dart +++ b/lib/login/login/starLock_login_xhj_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -13,7 +14,6 @@ import '../../app_settings/app_colors.dart'; import '../../common/XSConstantMacro/XSConstantMacro.dart'; import '../../tools/submitBtn.dart'; import '../../tools/tf_loginInput.dart'; -import '../../translations/trans_lib.dart'; import 'starLock_login_logic.dart'; class StarLockLoginXHJPage extends StatefulWidget { diff --git a/lib/login/register/starLock_register_logic.dart b/lib/login/register/starLock_register_logic.dart index 5119acc4..ff58ad85 100755 --- a/lib/login/register/starLock_register_logic.dart +++ b/lib/login/register/starLock_register_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; diff --git a/lib/login/register/starLock_register_page.dart b/lib/login/register/starLock_register_page.dart index 99a0da5e..8537b6d4 100755 --- a/lib/login/register/starLock_register_page.dart +++ b/lib/login/register/starLock_register_page.dart @@ -150,8 +150,7 @@ class _StarLockRegisterPageState extends State { state.countryName.value = result['countryName']; logic.checkIpAction(); } - AppLog.log( - '路由返回值: $result, countryCode:${logic.state.countryCode}'); + // AppLog.log('路由返回值: $result, countryCode:${logic.state.countryCode}'); }, child: Obx(() => SizedBox( height: 70.h, diff --git a/lib/login/register/starLock_register_xhj_page.dart b/lib/login/register/starLock_register_xhj_page.dart index b675797c..983a5b20 100755 --- a/lib/login/register/starLock_register_xhj_page.dart +++ b/lib/login/register/starLock_register_xhj_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -10,7 +11,6 @@ import '../../common/XSConstantMacro/XSConstantMacro.dart'; import '../../tools/submitBtn.dart'; import '../../tools/tf_loginInput.dart'; import '../../tools/titleAppBar.dart'; -import '../../translations/trans_lib.dart'; import 'starLock_register_logic.dart'; class StarLockRegisterXHJPage extends StatefulWidget { diff --git a/lib/login/selectCountryRegion/selectCountryRegion_page.dart b/lib/login/selectCountryRegion/selectCountryRegion_page.dart index 1a195cd9..bd0a0762 100755 --- a/lib/login/selectCountryRegion/selectCountryRegion_page.dart +++ b/lib/login/selectCountryRegion/selectCountryRegion_page.dart @@ -1,3 +1,4 @@ + import 'package:azlistview/azlistview.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -10,7 +11,6 @@ import 'package:star_lock/tools/baseGetXController.dart'; import '../../app_settings/app_colors.dart'; import '../../tools/keySearchWidget.dart'; import '../../tools/titleAppBar.dart'; -import '../../translations/trans_lib.dart'; import 'common/index.dart'; class SelectCountryRegionPage extends StatefulWidget { @@ -40,7 +40,7 @@ class _SelectCountryRegionPageState extends State { if (entity.errorCode!.codeIsSuccessful) { countriesList.addAll(entity.dataList!); for(final CountryRegionModel model in countriesList){ - if(model.name! == '中国'){ + if(model.name! == '中国'.tr){ topCountriesList.add(model); break; } diff --git a/lib/main/lockDetail/accessoriesList/accessoriesList_page.dart b/lib/main/lockDetail/accessoriesList/accessoriesList_page.dart index bfde46dd..1c7f1ae9 100755 --- a/lib/main/lockDetail/accessoriesList/accessoriesList_page.dart +++ b/lib/main/lockDetail/accessoriesList/accessoriesList_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/accessoriesList/accessoriesList_logic.dart'; +import 'package:star_lock/main/lockDetail/accessoriesList/accessoriesList_state.dart'; import '../../../app_settings/app_colors.dart'; import '../../../baseWidget.dart'; @@ -16,31 +17,31 @@ class AccessoriesListPage extends StatefulWidget { class _AccessoriesListPageState extends State with BaseWidget { - final logic = Get.put(AccessoriesListLogic()); - final state = Get.find().state; + final AccessoriesListLogic logic = Get.put(AccessoriesListLogic()); + final AccessoriesListState state = Get.find().state; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: TitleAppBar( - barTitle: '选择设备类型', + barTitle: '选择设备类型'.tr, haveBack: true, backgroundColor: AppColors.mainColor), body: ListView( - children: [ + children: [ _accessoriesItem( - 'images/main/icon_main_attachment_lighting.png', "照明灯具", true), + 'images/main/icon_main_attachment_lighting.png', '照明灯具'.tr, true), _accessoriesItem( - 'images/main/icon_main_attachment_doorOpener.png', "开门器", false), + 'images/main/icon_main_attachment_doorOpener.png', '开门器'.tr, false), _accessoriesItem( 'images/main/icon_main_attachment_ElectricCurtain.png', - "电动窗帘", + '电动窗帘'.tr, true), _accessoriesItem('images/main/icon_main_attachment_doorSensor.png', - "门窗传感器", false), + '门窗传感器'.tr, false), _accessoriesItem( - 'images/main/icon_main_attachment_sensor.png', "传感器", true), + 'images/main/icon_main_attachment_sensor.png', '传感器'.tr, true), ], ), ); @@ -50,7 +51,7 @@ class _AccessoriesListPageState extends State Widget _accessoriesItem(String iconStr, String gatewayType, bool isWhite) { return GestureDetector( onTap: () { - logic.showToast("该功能暂未开放"); + logic.showToast('功能暂未开放'.tr); }, child: Container( color: isWhite == true ? Colors.white : AppColors.mainBackgroundColor, @@ -59,7 +60,7 @@ class _AccessoriesListPageState extends State padding: EdgeInsets.all(30.w), child: Row( mainAxisAlignment: MainAxisAlignment.start, - children: [ + children: [ SizedBox( width: 30.w, ), diff --git a/lib/main/lockDetail/accessoriesList/accessoriesList_state.dart b/lib/main/lockDetail/accessoriesList/accessoriesList_state.dart index b737db94..df20216d 100755 --- a/lib/main/lockDetail/accessoriesList/accessoriesList_state.dart +++ b/lib/main/lockDetail/accessoriesList/accessoriesList_state.dart @@ -1,6 +1,6 @@ import 'package:get/get.dart'; class AccessoriesListState { - var getLockType = 1.obs; //0-所有锁;1-门锁;2-NFC无源锁;3-挂锁;4-保险箱锁;5-车位锁;6-智能门禁;7-网关 - var lockTypeImg = 'images/lockType/addLock_touchScreen.png'.obs; //不同类型锁图片更换 + RxInt getLockType = 1.obs; //0-所有锁;1-门锁;2-NFC无源锁;3-挂锁;4-保险箱锁;5-车位锁;6-智能门禁;7-网关 + RxString lockTypeImg = 'images/lockType/addLock_touchScreen.png'.obs; //不同类型锁图片更换 } diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart index 1719a67f..dc20b218 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/material.dart'; @@ -117,7 +118,7 @@ class AuthorizedAdminLogic extends BaseGetXController { //发送授权管理员列表请求 Future sendElectronicKeyRequest() async { if (state.emailOrPhoneController.text.isEmpty) { - showToast('请输入接收者账号'); + showToast('请输入接收者账号'.tr); return; } // if (state.keyNameController.text.isEmpty) { @@ -141,16 +142,16 @@ class AuthorizedAdminLogic extends BaseGetXController { endTime = '0'; if (startDate.isEmpty) { - showToast('请选择开始时间'); + showToast('请选择开始时间'.tr); return; } if (endDate.isEmpty) { - showToast('请选择结束时间'); + showToast('请选择结束时间'.tr); return; } if (int.parse(startDate) >= int.parse(endDate)) { - showToast('失效时间要大于生效时间'); + showToast('失效时间要大于生效时间'.tr); return; } } @@ -274,7 +275,7 @@ class AuthorizedAdminLogic extends BaseGetXController { roomStatus: 1, ); if (entity.errorCode!.codeIsSuccessful) { - showToast('标记成功'); + showToast('标记成功'.tr); } } @@ -316,10 +317,10 @@ class AuthorizedAdminLogic extends BaseGetXController { final String template = item.template ?? ''; NativeInteractionTool().loadNativeShare(shareText: template); } else { - showToast('获取模板失败 0x02'); + showToast('获取模板失败'.tr); } } else { - showToast('获取模板失败 0x01'); + showToast('获取模板失败'.tr); } } diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart index 536dbdf0..06cb6c8f 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -20,7 +21,6 @@ import '../../../../tools/NativeInteractionTool.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import 'authorizedAdmin_logic.dart'; class AuthorizedAdminPage extends StatefulWidget { @@ -197,7 +197,7 @@ class _AuthorizedAdminPageState extends State isHaveRightWidget: true, isTipsImg: true, tipsImgAction: () { - ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'); + ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'.tr); }, rightWidget: SizedBox( width: 60.w, @@ -238,7 +238,7 @@ class _AuthorizedAdminPageState extends State //发送钥匙请求 logic.sendElectronicKeyRequest(); } else { - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }), Container( @@ -253,7 +253,7 @@ class _AuthorizedAdminPageState extends State if (isDemoMode == false) { Get.toNamed(Routers.volumeAuthorizationLockManagePage); } else { - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }, child: Text( @@ -328,7 +328,7 @@ class _AuthorizedAdminPageState extends State mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '发送成功', + '发送成功'.tr, style: TextStyle( fontSize: 26.sp, color: Colors.black, @@ -353,7 +353,7 @@ class _AuthorizedAdminPageState extends State ), OutLineBtn( btnName: - state.emailOrPhoneController.text.contains('@') ? '邮件通知' : '短信通知', + state.emailOrPhoneController.text.contains('@') ? '邮件通知'.tr : '短信通知'.tr, onClick: () { Get.toNamed(Routers.sendEmailNotificationPage, arguments: { @@ -369,7 +369,7 @@ class _AuthorizedAdminPageState extends State height: 10.h, ), OutLineBtn( - btnName: '微信通知', + btnName: '微信通知'.tr, onClick: () { logic.sendMsg( isPhone: state.emailOrPhoneController.text.contains('@')); diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart index 2d6591d5..3b092812 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_state.dart @@ -26,13 +26,13 @@ class AuthorizedAdminState { .obs; //默认为当前时间 结束时间 RxBool isSendSuccess = false.obs; - RxString countryName = '中国'.obs; + RxString countryName = '中国'.tr.obs; RxString countryCode = '86'.obs; RxList weekdaysList = [].obs; RxInt createUser = 0.obs; //用户未注册时传1 已注册传0 RxInt seletType = 0.obs; - String pwdShareStr = '您好,您的授权管理员生成成功'; + String pwdShareStr = '您好,您的授权管理员生成成功'.tr; RxString addUserId = ''.obs; RxBool isRequireAuth = false.obs; //是否需要实名认证的必填项 diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_logic.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_logic.dart index e1da3b71..4cd5df65 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_logic.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_logic.dart @@ -1,6 +1,7 @@ import 'dart:async'; +import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_state.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyEntity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart'; @@ -44,7 +45,7 @@ class AuthorizedAdminListLogic extends BaseGetXController { final ElectronicKeyListEntity entity = await ApiRepository.to.deleteElectronicKey( keyId: keyId, includeUnderlings: includeUnderlings); if (entity.errorCode!.codeIsSuccessful) { - showToast('删除成功'); + showToast('删除成功'.tr); pageNo = 1; mockNetworkDataRequest(); } diff --git a/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart b/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart index 88a08dd9..2619314a 100755 --- a/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart +++ b/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart @@ -129,14 +129,14 @@ class _AuthorizedAdminListPageState extends State { onPressed: (BuildContext context) { ShowTipView() .showDeleteAdministratorIsHaveAllDataDialog( - '同时删除其发送的所有钥匙,钥匙删除后不能恢复', (bool isAllData) { + '同时删除其发送的所有钥匙,钥匙删除后不能恢复'.tr, (bool isAllData) { logic.deleteKeyRequest(indexEntity.keyId.toString(), isAllData ? 1 : 0); }); }, backgroundColor: Colors.red, foregroundColor: Colors.white, - label: '删除', + label: '删除'.tr, padding: EdgeInsets.only(left: 5.w, right: 5.w), ), ], diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart index 60eb53ce..56e25421 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart @@ -1,10 +1,10 @@ + import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; class VolumeAuthorizationLockManagePage extends StatefulWidget { const VolumeAuthorizationLockManagePage({Key? key}) : super(key: key); diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart index d62562af..d31d0096 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart @@ -1,10 +1,10 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/CustomUnderlineTabIndicator.dart'; -import '../../../../../translations/trans_lib.dart'; import '../volumeAuthorizationLock_page.dart'; class VolumeAuthorizationLockManageTabbar extends StatefulWidget { diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart index c1aa86c4..4db8d338 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_logic.dart @@ -13,7 +13,7 @@ class VolumeAuthorizationLockLogic extends BaseGetXController { //发送批量授权管理员 Future addAuthorizedAdminRequest() async { if (state.keyNameController.text.isEmpty) { - showToast('请输入接收者姓名'); + showToast('请输入接收者姓名'.tr); return; } diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart index 3c2d3263..0f035940 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -15,7 +16,6 @@ import 'package:star_lock/tools/showTipView.dart'; import '../../../../appRouters.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/submitBtn.dart'; -import '../../../../translations/trans_lib.dart'; import 'volumeAuthorizationLock_logic.dart'; class VolumeAuthorizationLockPage extends StatefulWidget { @@ -203,12 +203,12 @@ class _VolumeAuthorizationLockPageState }), Container(height: 10.h), CommonItem( - leftTitel: '仅管理自己创建的用户', + leftTitel: '仅管理自己创建的用户'.tr, rightTitle: '', isHaveRightWidget: true, isTipsImg: true, tipsImgAction: () { - ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'); + ShowTipView().showSureAlertDialog('授权管理员只能查看和管理自己下发的钥匙、密码等权限'.tr); }, rightWidget: SizedBox( width: 60.w, @@ -335,7 +335,7 @@ class _VolumeAuthorizationLockPageState mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '发送成功', + '发送成功'.tr, style: TextStyle( fontSize: 26.sp, color: Colors.black, diff --git a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart index 8e1a79a3..84229d0c 100755 --- a/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart +++ b/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_state.dart @@ -18,7 +18,7 @@ class VolumeAuthorizationLockState { RxString selectFailureDate = ''.obs; //失效时间 Rx effectiveDateTime = DateTime.now().obs; Rx failureDateTime = DateTime.now().obs; - RxString countryName = '中国'.obs; + RxString countryName = '中国'.tr.obs; RxString countryCode = '86'.obs; RxString selectWidgetType = '0'.obs; } diff --git a/lib/main/lockDetail/checkingIn/checkingInDetail/checkingInDetail_logic.dart b/lib/main/lockDetail/checkingIn/checkingInDetail/checkingInDetail_logic.dart index 346d6767..c8802569 100755 --- a/lib/main/lockDetail/checkingIn/checkingInDetail/checkingInDetail_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInDetail/checkingInDetail_logic.dart @@ -1,4 +1,5 @@ +import 'package:star_lock/main/lockDetail/checkingIn/checkingInDetail/checkingInDetail_entity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../../network/api_repository.dart'; @@ -10,7 +11,7 @@ class CheckingInDetailLogic extends BaseGetXController{ // 获取考勤详情 Future getCheckInDetailData(BlockLoadSuccssCallback loadSuccssCallback) async{ - var entity = await ApiRepository.to.getCheckInDetailData( + final CheckingInDetailEntity entity = await ApiRepository.to.getCheckInDetailData( companyId: state.companyId.value, attendanceDate:state.checkDate.value.toString(), staffId: state.staffId.value.toString(), diff --git a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_logic.dart b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_logic.dart index b15a857f..145f92d9 100755 --- a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_logic.dart @@ -15,7 +15,7 @@ class CheckingInAddHolidaysLogic extends BaseGetXController{ return; } - LoginEntity entity = await ApiRepository.to.addHolidaysData( + final LoginEntity entity = await ApiRepository.to.addHolidaysData( companyId: state.companyId.value, fillClassDate: state.makeUpWorkDate.value.isNotEmpty ? DateTime.parse(state.makeUpWorkDate.value).millisecondsSinceEpoch.toString() : '', vacationEndDate: DateTime.parse(state.endDate.value).millisecondsSinceEpoch.toString(), @@ -23,8 +23,9 @@ class CheckingInAddHolidaysLogic extends BaseGetXController{ vacationStartDate: DateTime.parse(state.beginDate.value).millisecondsSinceEpoch.toString() ); if(entity.errorCode!.codeIsSuccessful){ - showToast('添加成功'); - Get.back(result: 'addScuess'); + showToast('添加成功'.tr, something: (){ + Get.back(result: 'addScuess'); + }); } } diff --git a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_page.dart b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_page.dart index eeda6c22..21415c8e 100755 --- a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_page.dart @@ -1,3 +1,4 @@ + import 'package:date_format/date_format.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -10,7 +11,6 @@ import '../../../../../tools/commonItem.dart'; import '../../../../../tools/showCalendar.dart'; import '../../../../../tools/submitBtn.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; import 'checkingInAddHolidays_logic.dart'; class CheckingInAddHolidaysPage extends StatefulWidget { diff --git a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_logic.dart b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_logic.dart index cff44450..8becd761 100755 --- a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_logic.dart @@ -1,5 +1,6 @@ import 'package:get/get.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../../../network/api_repository.dart'; import 'checkingInDeletHolidays_state.dart'; @@ -9,11 +10,11 @@ class CheckingInDeletHolidaysLogic extends BaseGetXController{ // 删除假期 Future deletStaffLoadData() async{ - var entity = await ApiRepository.to.deletHolidaysData( + final LoginEntity entity = await ApiRepository.to.deletHolidaysData( vacationId: state.listItem.value.vacationId.toString() ); if(entity.errorCode!.codeIsSuccessful){ - showToast('删除成功'); + showToast('删除成功'.tr); Get.back(result: 'deletScuess'); } } diff --git a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_page.dart b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_page.dart index dedf00ee..6fd5222b 100755 --- a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInDeletHolidays/checkingInDeletHolidays_page.dart @@ -8,7 +8,6 @@ import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/commonItem.dart'; import '../../../../../tools/dateTool.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; import 'checkingInDeletHolidays_logic.dart'; class CheckingInDeletHolidaysPage extends StatefulWidget { diff --git a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_logic.dart b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_logic.dart index d5142cb3..ffaa2649 100755 --- a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_logic.dart @@ -1,5 +1,6 @@ +import 'package:star_lock/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_entity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../../../network/api_repository.dart'; @@ -10,7 +11,7 @@ class CheckingInSetHolidaysLogic extends BaseGetXController{ // 获取员工列表 Future editStaffLoadData() async{ - var entity = await ApiRepository.to.holidaysListData( + final CheckingInSetHolidaysInfoDataEntity entity = await ApiRepository.to.holidaysListData( companyId: state.companyId.value, vacationYear: state.selectYear.value.toString(), ); diff --git a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_page.dart b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_page.dart index f96604e0..5fc4bc29 100755 --- a/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInHolidays/checkingInSetHolidays/checkingInSetHolidays_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -13,7 +14,6 @@ import '../../../../../appRouters.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/dateTool.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; import 'checkingInSetHolidays_entity.dart'; import 'checkingInSetHolidays_logic.dart'; diff --git a/lib/main/lockDetail/checkingIn/checkingInList/checkingInListSeletMonth_page.dart b/lib/main/lockDetail/checkingIn/checkingInList/checkingInListSeletMonth_page.dart index 0931ead4..45806889 100644 --- a/lib/main/lockDetail/checkingIn/checkingInList/checkingInListSeletMonth_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInList/checkingInListSeletMonth_page.dart @@ -19,7 +19,7 @@ class _CheckingInListSeletMonthPageState extends State { }); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }, child: Container( @@ -237,7 +236,7 @@ class _CheckingInListPageState extends State { }); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }, child: Row( diff --git a/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart b/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart index 6d61b06d..e3b49ce6 100755 --- a/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart @@ -66,7 +66,7 @@ class CheckingInSetLogic extends BaseGetXController { ); if (entity.errorCode!.codeIsSuccessful) { state.companyName.value = state.changeNameController.text; - showToast('修改成功'); + showToast('修改成功'.tr); } } diff --git a/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart b/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart index a792b799..b4a46207 100755 --- a/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -12,7 +13,6 @@ import '../../../../tools/showTFView.dart'; import '../../../../tools/showTipView.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import 'checkingInSet_logic.dart'; class CheckingInSetPage extends StatefulWidget { diff --git a/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_logic.dart b/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_logic.dart index 8a4a2cdd..1eca168f 100755 --- a/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_logic.dart @@ -1,5 +1,6 @@ import 'package:get/get.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../../network/api_repository.dart'; @@ -10,7 +11,7 @@ class CheckingInSetWorkTimeLogic extends BaseGetXController{ // 编辑考勤设置信息 Future editCheckInSetInfoData() async{ - var entity = await ApiRepository.to.editCheckInSetInfoData( + final LoginEntity entity = await ApiRepository.to.editCheckInSetInfoData( attendanceType: state.checkingInSetInfo.value.attendanceType.toString(), companyId: state.checkingInSetInfo.value.companyId.toString(), type: '2', @@ -20,7 +21,7 @@ class CheckingInSetWorkTimeLogic extends BaseGetXController{ workDay:state.checkingInSetInfo.value.workDay!, ); if(entity.errorCode!.codeIsSuccessful){ - showToast('修改成功', something: (){ + showToast('修改成功'.tr, something: (){ Get.back(result: 'scuess'); }); } diff --git a/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_page.dart b/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_page.dart index 3411a201..63208ef0 100755 --- a/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInSetWorkTime/checkingInSetWorkTime_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -11,7 +12,6 @@ import '../../../../app_settings/app_colors.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import 'checkingInSetWorkTime_logic.dart'; class CheckingInSetWorkTimePage extends StatefulWidget { @@ -85,18 +85,18 @@ class _CheckingInSetWorkTimePageState extends State { padding: EdgeInsets.only(top: 20.w, bottom: 20.w), onClick: () { if (state.beginTimeTimestamp.value.isEmpty) { - logic.showToast('请选择开始时间'); + logic.showToast('请选择开始时间'.tr); return; } if (state.endTimeTimestamp.value.isEmpty) { - logic.showToast('请选择结束时间'); + logic.showToast('请选择结束时间'.tr); return; } if (int.parse(state.beginTimeTimestamp.value) >= int.parse(state.endTimeTimestamp.value)) { - logic.showToast('结束时间必须要比开始时间晚,请重新选择'); + logic.showToast('结束时间不能小于开始时间哦'.tr); return; } if (state.pushType.value == '2') { diff --git a/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_logic.dart b/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_logic.dart index f1581530..323e0a7d 100755 --- a/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_logic.dart +++ b/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_logic.dart @@ -21,7 +21,7 @@ class CheckingInSetWorkdaySetLogic extends BaseGetXController{ workDay:state.weekDays.value, ); if(entity.errorCode!.codeIsSuccessful){ - showToast('修改成功', something: (){ + showToast('修改成功'.tr, something: (){ eventBus.fire(RefreshCheckInSetDataEvent()); Get.back(result: { 'attendanceType':state.isCustom.value, diff --git a/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_page.dart b/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_page.dart index 698f779d..305280cf 100755 --- a/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInSetWorkdaySet/checkingInSetWorkdaySet_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -7,7 +8,6 @@ import '../../../../app_settings/app_colors.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import 'checkingInSetWorkdaySet_logic.dart'; class CheckingInSetWorkdaySet extends StatefulWidget { diff --git a/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart b/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart index 0433ba24..8f026170 100755 --- a/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart +++ b/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart @@ -170,8 +170,7 @@ class _CheckingInAddStaffPageState extends State { final dynamic data = await Get.toNamed( Routers.addCardPage, arguments: { - 'lockId': - state.getKeyInfosData.value.lockId, + 'lockId': state.getKeyInfosData.value.lockId, 'fromType': 2, // 1从添加钥匙列表进入 2从考勤添加员工入口进入 'fromTypeTwoStaffName': state.staffNameController.text diff --git a/lib/main/lockDetail/doorLockLog/batchExportLog/batchExportLog_page.dart b/lib/main/lockDetail/doorLockLog/batchExportLog/batchExportLog_page.dart index 659dd965..d86056c2 100644 --- a/lib/main/lockDetail/doorLockLog/batchExportLog/batchExportLog_page.dart +++ b/lib/main/lockDetail/doorLockLog/batchExportLog/batchExportLog_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -12,7 +13,6 @@ 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/submitBtn.dart'; import 'package:star_lock/tools/titleAppBar.dart'; -import 'package:star_lock/translations/trans_lib.dart'; class BatchExportLogPage extends StatefulWidget { const BatchExportLogPage({Key? key}) : super(key: key); diff --git a/lib/main/lockDetail/doorLockLog/doorLockLogDetail/doorLockLogDetail_page.dart b/lib/main/lockDetail/doorLockLog/doorLockLogDetail/doorLockLogDetail_page.dart index 574c760e..6bae44f5 100644 --- a/lib/main/lockDetail/doorLockLog/doorLockLogDetail/doorLockLogDetail_page.dart +++ b/lib/main/lockDetail/doorLockLog/doorLockLogDetail/doorLockLogDetail_page.dart @@ -25,7 +25,7 @@ class _DoorLockLogDetailPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '操作记录详情', + barTitle: '操作记录详情'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), @@ -36,7 +36,7 @@ class _DoorLockLogDetailPageState extends State { children: [ Container( padding: EdgeInsets.all(20.w), - child: Text('操作时间:${DateTool().dateIntToYMDHNString(state.timelineDataItem.value.operateDate)}', style: TextStyle(fontSize: 23.sp)), + child: Text('操作时间'.tr +':${DateTool().dateIntToYMDHNString(state.timelineDataItem.value.operateDate)}', style: TextStyle(fontSize: 23.sp)), ), Container( width: 1.sw, diff --git a/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart b/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart index ed3e6cdd..49c8729d 100755 --- a/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart +++ b/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart @@ -1,7 +1,8 @@ + import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; -import 'package:star_lock/app_settings/app_settings.dart'; +import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_entity.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_state.dart'; @@ -195,7 +196,7 @@ class DoorLockLogLogic extends BaseGetXController { if (entity.errorCode!.codeIsSuccessful) { state.operateDate = entity.data!.operateDate! ~/ 1000; state.currentDate = entity.data!.currentDate! ~/ 1000; - AppLog.log('entity.data!.currentDate!:${entity.data!.currentDate!} currentDate:${state.currentDate}'); + // AppLog.log('entity.data!.currentDate!:${entity.data!.currentDate!} currentDate:${state.currentDate}'); senderReferEventRecordTime(); } } @@ -220,7 +221,7 @@ class DoorLockLogLogic extends BaseGetXController { .clearOperationRecord( CommonDataManage().currentKeyInfo.lockId.toString()); if (entity.errorCode!.codeIsSuccessful) { - showToast('清除数据成功', something: () { + showToast('清除数据成功'.tr, something: () { pageNo = 1; mockNetworkDataRequest(isRefresh: true); }); diff --git a/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart b/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart index 3221ec45..36c55388 100755 --- a/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart +++ b/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -19,7 +20,6 @@ import 'package:timelines/timelines.dart'; import '../../../app_settings/app_colors.dart'; import '../../../tools/appRouteObserver.dart'; import '../../../tools/titleAppBar.dart'; -import '../../../translations/trans_lib.dart'; class DoorLockLogPage extends StatefulWidget { const DoorLockLogPage({Key? key}) : super(key: key); @@ -53,8 +53,8 @@ class _DoorLockLogPageState extends State with RouteAware { ), onTap: () { ShowTipView().showSureAlertDialog( - '1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。\n2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录', - tipTitle: '看不到操作记录,可能原因有', + '1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。'.tr +'\n' + '2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录'.tr, + tipTitle: '看不到操作记录,可能原因有'.tr, sureStr: '我知道了'.tr); }, )), @@ -66,13 +66,13 @@ class _DoorLockLogPageState extends State with RouteAware { color: Colors.black, itemBuilder: (BuildContext context) { return >[ - _buildCustomPopupMenuItem('读取记录'), + _buildCustomPopupMenuItem('读取记录'.tr), if (CommonDataManage().currentKeyInfo.isLockOwner == 1) const PopupMenuDivider(), if (CommonDataManage().currentKeyInfo.isLockOwner == 1) - _buildCustomPopupMenuItem('清空记录'), + _buildCustomPopupMenuItem('清空记录'.tr), const PopupMenuDivider(), - _buildCustomPopupMenuItem('导出记录'), + _buildCustomPopupMenuItem('导出记录'.tr), ]; }, icon: Image.asset( @@ -121,36 +121,57 @@ class _DoorLockLogPageState extends State with RouteAware { } void _onMenuItemSelected(String value) { - switch (value) { - case '读取记录': - { - logic.mockNetworkDataRequest(isRefresh: true); - } - break; - case '清空记录': - { - ShowCupertinoAlertView().showClearOperationRecordAlert( - clearClick: () { + if(value == '读取记录'.tr){ + logic.mockNetworkDataRequest(isRefresh: true); + }else if(value == '清空记录'.tr){ + ShowCupertinoAlertView().showClearOperationRecordAlert( + clearClick: () { logic.clearOperationRecordRequest(); }); - } - break; - case '导出记录': - { - showDialog( - context: context, - builder: (BuildContext context) { - return ExportRecordDialog( - onExport: (String filePath) { - Get.toNamed(Routers.exportSuccessPage, - arguments: {'filePath': filePath}); - }, - ); + }else if(value == '导出记录'.tr){ + showDialog( + context: context, + builder: (BuildContext context) { + return ExportRecordDialog( + onExport: (String filePath) { + Get.toNamed(Routers.exportSuccessPage, + arguments: {'filePath': filePath}); }, ); - } - break; + }, + ); } + + // switch (value) { + // case "读取记录".tr: + // { + // logic.mockNetworkDataRequest(isRefresh: true); + // } + // break; + // case '清空记录'.tr: + // { + // ShowCupertinoAlertView().showClearOperationRecordAlert( + // clearClick: () { + // logic.clearOperationRecordRequest(); + // }); + // } + // break; + // case '导出记录': + // { + // showDialog( + // context: context, + // builder: (BuildContext context) { + // return ExportRecordDialog( + // onExport: (String filePath) { + // Get.toNamed(Routers.exportSuccessPage, + // arguments: {'filePath': filePath}); + // }, + // ); + // }, + // ); + // } + // break; + // } } //顶部日历小部件 @@ -338,7 +359,6 @@ class _DoorLockLogPageState extends State with RouteAware { @override void didChangeDependencies() { - // TODO: implement didChangeDependencies super.didChangeDependencies(); /// 路由订阅 @@ -347,7 +367,6 @@ class _DoorLockLogPageState extends State with RouteAware { @override void dispose() { - // TODO: implement dispose /// 取消路由订阅 AppRouteObserver().routeObserver.unsubscribe(this); super.dispose(); diff --git a/lib/main/lockDetail/doorLockLog/doorLockLog_state.dart b/lib/main/lockDetail/doorLockLog/doorLockLog_state.dart index e4ff3970..20c2f98c 100755 --- a/lib/main/lockDetail/doorLockLog/doorLockLog_state.dart +++ b/lib/main/lockDetail/doorLockLog/doorLockLog_state.dart @@ -1,3 +1,4 @@ + import 'package:get/get.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_entity.dart'; diff --git a/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_page.dart b/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_page.dart index 015ac1f5..0126280b 100644 --- a/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_page.dart +++ b/lib/main/lockDetail/doorLockLog/exportRecordDialog/exportRecordDialog_page.dart @@ -1,3 +1,4 @@ + import 'dart:io'; import 'package:flutter/material.dart'; diff --git a/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart b/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart index 9a249136..9c5840b7 100644 --- a/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart +++ b/lib/main/lockDetail/doorLockLog/exportSuccess/exportSuccess_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; diff --git a/lib/main/lockDetail/doorLockLog/viewExportRecord/viewExportRecord_page.dart b/lib/main/lockDetail/doorLockLog/viewExportRecord/viewExportRecord_page.dart index 8d2ff415..465ff109 100644 --- a/lib/main/lockDetail/doorLockLog/viewExportRecord/viewExportRecord_page.dart +++ b/lib/main/lockDetail/doorLockLog/viewExportRecord/viewExportRecord_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/app_settings/app_colors.dart'; diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart index 5394afba..8fa66557 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_logic.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; @@ -425,21 +426,4 @@ class ElectronicKeyDetailLogic extends BaseGetXController { } } - @override - void onReady() { - // TODO: implement onReady - super.onReady(); - } - - @override - void onInit() { - // TODO: implement onInit - super.onInit(); - } - - @override - void onClose() { - // TODO: implement onClose - super.onClose(); - } } diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_state.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_state.dart index 63ae8a72..7f1a8dc6 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_state.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_state.dart @@ -2,50 +2,40 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart'; -class ElectronicKeyDetailState { - final itemData = ElectronicKeyListItem().obs; - // final keyInfo = LockListInfoItemEntity().obs; - - final keyName = "".obs; - final TextEditingController changeNameController = TextEditingController(); - final TextEditingController changeRealNameController = - TextEditingController(); - final TextEditingController changeIDCardController = TextEditingController(); - - var starDate = "".obs; // 开始时间 - var endDate = "".obs; // 结束时间 - var starTime = "".obs; // 生效时间 - var endTime = "".obs; // 失效时间 - final keyType = 0.obs; // 永久:1;限时2,单次3,循环:4 - var weekDay = [].obs; // 有效日 - - var onlyManageYouCreatesUser = false.obs; // 0:可以管理所有用户 1:只能管理自己创建的用户 - var isRemoteUnlock = false.obs; //是否允许远程开锁 0:不允许 1:允许 - var isRealNameAuth = false.obs; //是否实名认证 0:不需要 1:需要 - var getRealName = ''.obs; //真实姓名 - var getIDCardNumber = ''.obs; //身份证号 - var isRequireAuth = false.obs; //是否必须输入身份信息 +class ElectronicKeyDetailState { //是否必须输入身份信息 ElectronicKeyDetailState() { Map map = Get.arguments; - itemData.value = map["itemData"]; + itemData.value = map['itemData']; // if(map["keyInfo"]!=null){ // keyInfo.value = map["keyInfo"]; // } changeNameController.text = itemData.value.keyName!; keyName.value = itemData.value.keyName!; if (itemData.value.userIdCard != null) { - getRealName.value = itemData.value.userIdCard!.realName ?? ""; + getRealName.value = itemData.value.userIdCard!.realName ?? ''; changeRealNameController.text = getRealName.value; - getIDCardNumber.value = itemData.value.userIdCard!.idCardNumber ?? ""; + getIDCardNumber.value = itemData.value.userIdCard!.idCardNumber ?? ''; changeIDCardController.text = getIDCardNumber.value; } - isRemoteUnlock.value = itemData.value.remoteEnable! == 1 ? true : false; - isRealNameAuth.value = - itemData.value.faceAuthentication == 1 ? true : false; - onlyManageYouCreatesUser.value = - itemData.value.isOnlyManageSelf! == 0 ? false : true; + if (itemData.value.remoteEnable! == 1) { + isRemoteUnlock.value = true; + } else { + isRemoteUnlock.value = false; + } + + if (itemData.value.faceAuthentication == 1) { + isRealNameAuth.value = true; + } else { + isRealNameAuth.value = false; + } + + if (itemData.value.isOnlyManageSelf! == 0) { + onlyManageYouCreatesUser.value = false; + } else { + onlyManageYouCreatesUser.value = true; + } starDate.value = itemData.value.startDate!.toString(); endDate.value = itemData.value.endDate!.toString(); @@ -54,4 +44,26 @@ class ElectronicKeyDetailState { weekDay.value = itemData.value.weekDays!; keyType.value = itemData.value.keyType!; } + final Rx itemData = ElectronicKeyListItem().obs; + // final keyInfo = LockListInfoItemEntity().obs; + + final RxString keyName = ''.obs; + final TextEditingController changeNameController = TextEditingController(); + final TextEditingController changeRealNameController = + TextEditingController(); + final TextEditingController changeIDCardController = TextEditingController(); + + RxString starDate = ''.obs; // 开始时间 + RxString endDate = ''.obs; // 结束时间 + RxString starTime = ''.obs; // 生效时间 + RxString endTime = ''.obs; // 失效时间 + final RxInt keyType = 0.obs; // 永久:1;限时2,单次3,循环:4 + RxList weekDay = [].obs; // 有效日 + + RxBool onlyManageYouCreatesUser = false.obs; // 0:可以管理所有用户 1:只能管理自己创建的用户 + RxBool isRemoteUnlock = false.obs; //是否允许远程开锁 0:不允许 1:允许 + RxBool isRealNameAuth = false.obs; //是否实名认证 0:不需要 1:需要 + RxString getRealName = ''.obs; //真实姓名 + RxString getIDCardNumber = ''.obs; //身份证号 + RxBool isRequireAuth = false.obs; } diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_logic.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_logic.dart index bb13f8f7..c8e1f6d0 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_logic.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_logic.dart @@ -1,3 +1,4 @@ + import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_state.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -14,18 +15,18 @@ class ElectronicKeyDetailChangeDateLogic extends BaseGetXController { //编辑电子钥匙有效期请求 Future updateKeyDateRequest() async { - var beginTimeTimestamp = DateTool().dateToTimestamp(state.beginTime.value, 1); - var endTimeTimestamp = DateTool().dateToTimestamp(state.endTime.value, 1); + final int beginTimeTimestamp = DateTool().dateToTimestamp(state.beginTime.value, 1); + final int endTimeTimestamp = DateTool().dateToTimestamp(state.endTime.value, 1); if (beginTimeTimestamp > endTimeTimestamp || beginTimeTimestamp == endTimeTimestamp) { - showToast("失效时间需大于生效时间".tr); + showToast('失效时间需大于生效时间'.tr); return; } if (endTimeTimestamp < DateTime.now().millisecondsSinceEpoch) { - showToast("生效时间需大于当前时间".tr); + showToast('生效时间需大于当前时间'.tr); return; } - KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate( + final KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate( keyId:state.keyId.value.toString(), lockId:state.lockId.value.toString(), endDate:endTimeTimestamp.toString(), @@ -38,12 +39,12 @@ class ElectronicKeyDetailChangeDateLogic extends BaseGetXController { remoteEnable: state.remoteEnable!.value ); if (entity.errorCode!.codeIsSuccessful) { - showToast("修改成功".tr, something: () { + showToast('修改成功'.tr, something: () { eventBus.fire(ElectronicKeyListRefreshUI()); eventBus.fire(AuthorizedAdminPageRefreshUI()); Get.back(result: { - "beginTimeTimestamp": beginTimeTimestamp, - "endTimeTimestamp": endTimeTimestamp, + 'beginTimeTimestamp': beginTimeTimestamp, + 'endTimeTimestamp': endTimeTimestamp, }); }); } diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart index ce9dd77c..07dacaa4 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -11,7 +12,6 @@ import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/commonItem.dart'; import '../../../../../tools/dateTool.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; class ElectronicKeyDetailChangeDate extends StatefulWidget { const ElectronicKeyDetailChangeDate({Key? key}) : super(key: key); diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_state.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_state.dart index 5d215e3d..4d787076 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_state.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_state.dart @@ -6,25 +6,13 @@ import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireElect import '../../../../../tools/dateTool.dart'; class ElectronicKeyDetailChangeDateState { - final itemData = ElectronicKeyListItem().obs; - final expireLockItem = ExpireLockItem().obs; - - var beginTime = "".obs;// 开始时间 - var endTime = "".obs;// 结束时间 - - var pushType = 0.obs;// 0电子钥匙 1授权管理员 - - var keyId = 0.obs; - var lockId = 0.obs; - var isOnlyManageSelf = 0.obs; - var remoteEnable = 0.obs; ElectronicKeyDetailChangeDateState() { Map map = Get.arguments; - if ((map["itemData"] != null)) { - itemData.value = map["itemData"]; - if(map["pushType"] != null){ - pushType.value = map["pushType"]; + if (map['itemData'] != null) { + itemData.value = map['itemData']; + if(map['pushType'] != null){ + pushType.value = map['pushType']; } keyId.value = itemData.value.keyId!; @@ -41,8 +29,8 @@ class ElectronicKeyDetailChangeDateState { } } - if ((map["expireLockItem"] != null)) { - expireLockItem.value = map["expireLockItem"]; + if (map['expireLockItem'] != null) { + expireLockItem.value = map['expireLockItem']; keyId.value = expireLockItem.value.keyId!; lockId.value = expireLockItem.value.lockId!; @@ -59,4 +47,16 @@ class ElectronicKeyDetailChangeDateState { } } + final Rx itemData = ElectronicKeyListItem().obs; + final Rx expireLockItem = ExpireLockItem().obs; + + RxString beginTime = ''.obs;// 开始时间 + RxString endTime = ''.obs;// 结束时间 + + RxInt pushType = 0.obs;// 0电子钥匙 1授权管理员 + + RxInt keyId = 0.obs; + RxInt lockId = 0.obs; + RxInt isOnlyManageSelf = 0.obs; + RxInt remoteEnable = 0.obs; } diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/KeyPeriodValidityModel.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/KeyPeriodValidityModel.dart index d26c8b17..18178891 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/KeyPeriodValidityModel.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/KeyPeriodValidityModel.dart @@ -1,8 +1,4 @@ -class KeyPeriodValidityModel { - late String validityText; //有效期时间 - late int validityIndex; //有效期的index - late bool isValidity; //是否选中为有效 - late int validityValue; //有效期值 +class KeyPeriodValidityModel { //有效期值 KeyPeriodValidityModel(this.validityText, this.validityIndex, this.isValidity, this.validityValue); @@ -13,6 +9,10 @@ class KeyPeriodValidityModel { isValidity = json['isValidity']; validityValue = json['validityValue']; } + late String validityText; //有效期时间 + late int validityIndex; //有效期的index + late bool isValidity; //是否选中为有效 + late int validityValue; Map toJson() { final Map data = {}; diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_logic.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_logic.dart index ec6d0330..26c96b65 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_logic.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_logic.dart @@ -1,3 +1,4 @@ + import 'package:get/get.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -13,21 +14,21 @@ class ElectronicKeyPeriodValidityLogic extends BaseGetXController { //编辑电子钥匙有效期请求 Future updateKeyDateRequest() async { - var starDateTimestamp = DateTool().dateToTimestamp(state.starDate.value, 1); - var endDateTimestamp = DateTool().dateToTimestamp(state.endDate.value, 1); - var starTimeTimestamp = DateTool().dateToTimestamp(state.starTime.value, 0); - var endTimeTimestamp = DateTool().dateToTimestamp(state.endTime.value, 0); + final int starDateTimestamp = DateTool().dateToTimestamp(state.starDate.value, 1); + final int endDateTimestamp = DateTool().dateToTimestamp(state.endDate.value, 1); + final int starTimeTimestamp = DateTool().dateToTimestamp(state.starTime.value, 0); + final int endTimeTimestamp = DateTool().dateToTimestamp(state.endTime.value, 0); if (starDateTimestamp >= endDateTimestamp) { - showToast("失效日期要大于生效日期".tr); + showToast('失效日期要大于生效日期'.tr); return; } if (starTimeTimestamp >= endTimeTimestamp) { - showToast("失效时间要大于生效时间".tr); + showToast('失效时间要大于生效时间'.tr); return; } - KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate( + final KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate( keyId:state.keyId.value.toString(), lockId:state.lockId.value.toString(), endDate:endDateTimestamp.toString(), @@ -39,15 +40,15 @@ class ElectronicKeyPeriodValidityLogic extends BaseGetXController { isOnlyManageSelf: state.isOnlyManageSelf.value!, remoteEnable: state.remoteEnable.value!); if (entity.errorCode!.codeIsSuccessful) { - showToast("修改成功".tr, something: () { + showToast('修改成功'.tr, something: () { eventBus.fire(ElectronicKeyListRefreshUI()); eventBus.fire(AuthorizedAdminPageRefreshUI()); - Get.back(result: { - "starDate":starDateTimestamp.toString(), - "endDate":endDateTimestamp.toString(), - "starTime":starTimeTimestamp.toString(), - "endTime":endTimeTimestamp.toString(), - "validityValue":state.weekDay.value, + Get.back(result: { + 'starDate':starDateTimestamp.toString(), + 'endDate':endDateTimestamp.toString(), + 'starTime':starTimeTimestamp.toString(), + 'endTime':endTimeTimestamp.toString(), + 'validityValue':state.weekDay.value, }); }); } diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart index a201e4e5..174abe66 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -11,7 +12,6 @@ import '../../../../../tools/commonItem.dart'; import '../../../../../tools/dateTool.dart'; import '../../../../../tools/submitBtn.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; import 'electronicKeyPeriodValidity_logic.dart'; class ElectronicKeyPeriodValidityPage extends StatefulWidget { diff --git a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_state.dart b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_state.dart index 372d381f..f7c10b48 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_state.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyPeriodValidity/electronicKeyPeriodValidity_state.dart @@ -6,30 +6,13 @@ import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireElect import '../../../../../tools/dateTool.dart'; class ElectronicKeyPeriodValidityState { - TextEditingController searchController = TextEditingController(); //邮箱/手机号输入框 - final itemData = ElectronicKeyListItem().obs; - final expireLockItem = ExpireLockItem().obs; - - var starDate = "".obs;// 开始时间 - var endDate = "".obs;// 结束时间 - var starTime = "".obs;// 生效时间 - var endTime = "".obs;// 失效时间 - - var pushType = 0.obs;// 0电子钥匙 1授权管理员 - var weekDay = [].obs; - - var keyId = 0.obs; - var lockId = 0.obs; - var isOnlyManageSelf = 0.obs; - var remoteEnable = 0.obs; - var keyType = 0.obs; ElectronicKeyPeriodValidityState() { Map map = Get.arguments; - if ((map["itemData"] != null)) { - itemData.value = map["itemData"]; + if (map['itemData'] != null) { + itemData.value = map['itemData']; - if(map["pushType"] != null){ - pushType.value = map["pushType"]; + if(map['pushType'] != null){ + pushType.value = map['pushType']; } keyId.value = itemData.value.keyId!; @@ -45,8 +28,8 @@ class ElectronicKeyPeriodValidityState { weekDay.value = itemData.value.weekDays!; } - if ((map["expireLockItem"] != null)) { - expireLockItem.value = map["expireLockItem"]; + if (map['expireLockItem'] != null) { + expireLockItem.value = map['expireLockItem']; keyId.value = expireLockItem.value.keyId!; lockId.value = expireLockItem.value.lockId!; @@ -62,4 +45,21 @@ class ElectronicKeyPeriodValidityState { } } + TextEditingController searchController = TextEditingController(); //邮箱/手机号输入框 + final Rx itemData = ElectronicKeyListItem().obs; + final Rx expireLockItem = ExpireLockItem().obs; + + RxString starDate = ''.obs;// 开始时间 + RxString endDate = ''.obs;// 结束时间 + RxString starTime = ''.obs;// 生效时间 + RxString endTime = ''.obs;// 失效时间 + + RxInt pushType = 0.obs;// 0电子钥匙 1授权管理员 + RxList weekDay = [].obs; + + RxInt keyId = 0.obs; + RxInt lockId = 0.obs; + RxInt isOnlyManageSelf = 0.obs; + RxInt remoteEnable = 0.obs; + RxInt keyType = 0.obs; } diff --git a/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart b/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart index d5ee3643..9444de80 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:get/get.dart'; diff --git a/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart b/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart index ceb90990..09cca420 100755 --- a/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart +++ b/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; @@ -18,7 +19,6 @@ import '../../../../tools/keySearchWidget.dart'; import '../../../../tools/showTipView.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; class ElectronicKeyListPage extends StatefulWidget { const ElectronicKeyListPage({Key? key}) : super(key: key); diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart index 69fb9260..540d4a3e 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendReceiver/massSendReceiverCell.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart index 44c5368c..882fb2df 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -8,7 +9,6 @@ import 'package:star_lock/main/lockDetail/electronicKey/sendElectronicKey/sendEl import '../../../../../tools/CustomUnderlineTabIndicator.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; class SendElectronicKeyPage extends StatefulWidget { const SendElectronicKeyPage({Key? key}) : super(key: key); diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_state.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_state.dart index 95940e3c..17ecf89e 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_state.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_state.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; +import 'package:get/get.dart'; class SendElectronicKeyState { late TabController tabController; @@ -7,10 +8,9 @@ class SendElectronicKeyState { final FlutterContactPicker contactPicker = FlutterContactPicker(); late Contact contact; - final timeLimitTips = '接收者在有效期内可以不限次数使用'; //限时 - final permanentTips = '接收者可以使用此App开关锁'; //永久 - final onceLimitTips = '单次钥匙有效期为1小时,只能使用一次'; //单次 - final cycleLimitTips = '接收者可以在有效期内的固定时间段里,不限次数使用'; //循环 + final String timeLimitTips = '接收者在有效期内可以不限次数使用'.tr; //限时 + final String permanentTips = '接收者可以使用此App开关锁'.tr; //永久 + final String onceLimitTips = '单次钥匙有效期为1小时,只能使用一次'.tr; //单次 + final String cycleLimitTips = '接收者可以在有效期内的固定时间段里,不限次数使用'.tr; //循环 - SendElectronicKeyState() {} } 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 0f5ef873..69966787 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart @@ -28,7 +28,7 @@ class SendElectronicKeyViewLogic extends BaseGetXController { List get weekDayStr { return state.weekdaysList - .map((e) => TimeUtils.translateWeekday(e)) + .map((int e) => TimeUtils.translateWeekday(e)) .toList(); } @@ -47,10 +47,10 @@ class SendElectronicKeyViewLogic extends BaseGetXController { return; } - var startDate = '0'; - var endDate = '0'; - var startTime = '0'; - var endTime = '0'; + String startDate = '0'; + String endDate = '0'; + String startTime = '0'; + String endTime = '0'; int typeValue; switch (type) { case '0': @@ -267,10 +267,10 @@ class SendElectronicKeyViewLogic extends BaseGetXController { final String template = item.template ?? ''; NativeInteractionTool().loadNativeShare(shareText: template); } else { - showToast('获取模板失败 0x02'); + showToast('获取模板失败'.tr); } } else { - showToast('获取模板失败 0x01'); + showToast('获取模板失败'.tr); } } @@ -287,7 +287,7 @@ class SendElectronicKeyViewLogic extends BaseGetXController { state.cycleEndTime = ''; // 循环结束时间 state.effectiveDateTime = ''; // 生效时间 state.failureDateTime = ''; // 失效时间 - state.weekdaysList = []; + state.weekdaysList = []; state.createUser.value = 0; update(); } 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 9f1312d1..2b188f40 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -19,7 +20,6 @@ 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/showTipView.dart'; import 'package:star_lock/tools/submitBtn.dart'; -import 'package:star_lock/translations/trans_lib.dart'; class SendElectronicKeyView extends StatefulWidget { @@ -418,7 +418,7 @@ class _SendElectronicKeyViewState extends State ), if (logic.emailOrPhone != null) OutLineBtn( - btnName: logic.state.userNameType.value == 1 ? '短信通知' : '邮件通知', + btnName: logic.state.userNameType.value == 1 ? '短信通知'.tr : '邮件通知'.tr, onClick: () { Get.toNamed(Routers.sendEmailNotificationPage, arguments: { @@ -434,7 +434,7 @@ class _SendElectronicKeyViewState extends State ), if (logic.emailOrPhone != null) OutLineBtn( - btnName: '微信通知', + btnName: '微信通知'.tr, onClick: () { logic.sendMsg(isPhone: logic.emailOrPhone!.contains('@')); }, diff --git a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart index 2fdfe8d9..74cb3546 100644 --- a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart +++ b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart @@ -40,7 +40,7 @@ class SendEmailNotificationLogic extends BaseGetXController { Future keyNoticeSubmitRequest() async { if (state.receiverController.text.isEmpty && state.getReceiver.value.isEmpty) { - showToast('请输入接收者'); + showToast('请输入接收者'.tr); return; } final SendEmailNotificationEntity entity; @@ -70,7 +70,7 @@ class SendEmailNotificationLogic extends BaseGetXController { ); } if (entity.errorCode!.codeIsSuccessful) { - showToast('发送成功'); + showToast('发送成功'.tr); Get.back(); } } @@ -79,7 +79,7 @@ class SendEmailNotificationLogic extends BaseGetXController { Future sendPersonalSMSOrEmail() async { if (state.receiverController.text.isEmpty && state.getReceiver.value.isEmpty) { - showToast('请输入接收者'); + showToast('请输入接收者账号'.tr); return; } diff --git a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart index efd97a26..a398986a 100755 --- a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart +++ b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; @@ -43,7 +44,7 @@ class _SendEmailNotificationPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: state.channelType.value == 1 ? '短信通知' : '邮件通知', + barTitle: state.channelType.value == 1 ? '短信通知'.tr : '邮件通知'.tr, haveBack: true, backgroundColor: AppColors.mainColor), body: SingleChildScrollView( @@ -61,7 +62,7 @@ class _SendEmailNotificationPageState extends State { isHaveRightWidget: true, rightWidget: _buildReceiverItemWidget())), Obx(() => CommonItem( - leftTitel: '类型', + leftTitel: '类型'.tr, rightTitle: state.getNotifyTypeText.value, isHaveDirection: true, action: () { @@ -75,7 +76,7 @@ class _SendEmailNotificationPageState extends State { )), Container(height: 10.h), Obx(() => CommonItem( - leftTitel: '模板', + leftTitel: '模板'.tr, rightTitle: state.currentNotifyItem.value.name ?? '', isHaveDirection: true, isHaveLine: true, @@ -193,7 +194,7 @@ class _SendEmailNotificationPageState extends State { width: 6.w, ), Text( - '新建模版', + '新建模版'.tr, style: TextStyle( color: AppColors.mainColor, fontSize: 24.sp, diff --git a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart index f253f513..83103dd0 100644 --- a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart +++ b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart @@ -43,15 +43,15 @@ class SendEmailNotificationState { Future updateNotifyTypeText() async { if (channelType.value == 1) { if (notifyTypeSelect.value == 1) { - getNotifyTypeText.value = '系统短信'; + getNotifyTypeText.value = '系统短信'.tr; } else { - getNotifyTypeText.value = '个人短信'; + getNotifyTypeText.value = '个人短信'.tr; } } else { if (notifyTypeSelect.value == 1) { - getNotifyTypeText.value = '系统邮件'; + getNotifyTypeText.value = '系统邮件'.tr; } else { - getNotifyTypeText.value = '个人邮件'; + getNotifyTypeText.value = '个人邮件'.tr; } } } diff --git a/lib/main/lockDetail/face/addFace/addFace_logic.dart b/lib/main/lockDetail/face/addFace/addFace_logic.dart index 2a5c17d9..d7fe6bd3 100755 --- a/lib/main/lockDetail/face/addFace/addFace_logic.dart +++ b/lib/main/lockDetail/face/addFace/addFace_logic.dart @@ -54,7 +54,7 @@ class AddFaceLogic extends BaseGetXController { // 最大图片数 state.maxRegCount.value = reply.data[11]; - AppLog.log('人脸开始state.maxRegCount.value:${state.maxRegCount.value}'); + // AppLog.log('人脸开始state.maxRegCount.value:${state.maxRegCount.value}'); break; case 0x06: //无权限 @@ -92,7 +92,7 @@ class AddFaceLogic extends BaseGetXController { default: //失败 state.ifAddState.value = false; - showToast('添加人脸失败', something: (){ + showToast('添加人脸失败'.tr, something: (){ Get.back(); }); break; @@ -138,7 +138,7 @@ class AddFaceLogic extends BaseGetXController { // 添加人脸中 // 当前注册数 state.regIndex.value = reply.data[6]; - AppLog.log('注册人脸过程state.regIndex.value:${state.regIndex.value}'); + // AppLog.log('注册人脸过程state.regIndex.value:${state.regIndex.value}'); break; } @@ -296,7 +296,7 @@ class AddFaceLogic extends BaseGetXController { faceUserNo: state.faceNumber.value, ); if (entity.errorCode!.codeIsSuccessful) { - showToast('添加成功'); + showToast('添加成功'.tr); if (state.fromType.value == 2) { // 回调人脸号 eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent( @@ -318,7 +318,7 @@ class AddFaceLogic extends BaseGetXController { @override void onInit() { super.onInit(); -//开始添加后发送指令 + //开始添加后发送指令 // senderAddFace(); } diff --git a/lib/main/lockDetail/face/addFace/addFace_page.dart b/lib/main/lockDetail/face/addFace/addFace_page.dart index 92c51fa6..ddd78515 100755 --- a/lib/main/lockDetail/face/addFace/addFace_page.dart +++ b/lib/main/lockDetail/face/addFace/addFace_page.dart @@ -53,7 +53,7 @@ class _AddFacePageState extends State with RouteAware { children: [ Expanded( child: Text( - '请单人正对门锁,距离一个成年人手臂长度\n(约0.6米)。\n保持脸部无遮挡,露出五官。', + '请单人正对门锁,距离一个成年人手臂长度'.tr + '\n' + '(约0.6米)。'.tr + '\n' + '保持脸部无遮挡,露出五官。'.tr, textAlign: TextAlign.left, maxLines: null, style: @@ -71,7 +71,7 @@ class _AddFacePageState extends State with RouteAware { ? Container( padding: EdgeInsets.only(left: 20.w, right: 20.w), child: SubmitBtn( - btnName: '准备好了,开始添加', + btnName: '准备好了,开始添加'.tr, borderRadius: 20.w, onClick: () { state.isClickAddFace.value = true; @@ -84,7 +84,7 @@ class _AddFacePageState extends State with RouteAware { Column( children: [ Text( - '正在录入中...', + '正在录入中...'.tr, style: TextStyle( color: AppColors.darkGrayTextColor, fontSize: 22.sp), diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart index 83e31b1e..388c6588 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -163,7 +164,7 @@ class FaceDetailLogic extends BaseGetXController { lockId: state.faceItemData.value.lockId!, ); if (entity.errorCode!.codeIsSuccessful) { - showToast('删除成功', something: () { + showToast('删除成功'.tr, something: () { Get.back(result: 'addScuess'); }); } @@ -178,7 +179,7 @@ class FaceDetailLogic extends BaseGetXController { ); if (entity.errorCode!.codeIsSuccessful) { state.faceItemData.value.faceName = state.changeNameController.text; - showToast('修改成功', something: () { + showToast('修改成功'.tr, something: () { Get.back(result: 'addScuess'); }); } else { diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart index 7080f0ea..9d8040aa 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -15,7 +16,6 @@ import '../../../../tools/dateTool.dart'; import '../../../../tools/showTipView.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import '../../../lockMian/lockMain/lockMain_logic.dart'; class FaceDetailPage extends StatefulWidget { @@ -41,7 +41,7 @@ class _FaceDetailPageState extends State with RouteAware { body: ListView( children: [ Obx(() => CommonItem( - leftTitel: '人脸号', + leftTitel: '人脸号'.tr, rightTitle: state.typeNumber.value, isHaveDirection: false, isHaveLine: true)), @@ -135,7 +135,7 @@ class _FaceDetailPageState extends State with RouteAware { Obx(() => Visibility( visible: state.keyType.value == 4, child: Obx(() => CommonItem( - leftTitel: '有效时间', + leftTitel: '有效时间'.tr, rightTitle: '${DateTool().dateToHNString(state.startTime.value)}-${DateTool().dateToHNString(state.endTime.value)}', isHaveDirection: true, diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_state.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_state.dart index 75af93b1..b53bed1b 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_state.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_state.dart @@ -2,32 +2,11 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart'; -class FaceDetailState { - final faceItemData = FingerprintItemData().obs; - - final TextEditingController changeNameController = TextEditingController(); - - final typeNumber = "".obs; // 人脸号 - final typeName = "".obs; // 人脸名字 - var startDate = "".obs; // 开始时间 - var endDate = "".obs; // 结束时间 - var startTime = "".obs; // 生效时间 - var endTime = "".obs; // 失效时间 - final keyType = 0.obs; // 永久:1;限时2,单次3,循环:4 - var weekDay = [].obs; // 有效日 - var adder = "".obs; // 添加者 - var addTime = 0.obs; // 添加时间 - var keyId = 0.obs; - - var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 - var sureBtnState = 0.obs; // 0普通状态(可用) 1连接中(不可用) - var isDeletFace = true.obs; // 是否删除卡 - var isStressFace = false.obs; // 是否胁迫 - var isAdministrator = false.obs; // 是否为管理员 +class FaceDetailState { // 是否为管理员 FaceDetailState() { Map map = Get.arguments; - faceItemData.value = map["faceItemData"]; + faceItemData.value = map['faceItemData']; keyId.value = faceItemData.value.faceId!; typeNumber.value = faceItemData.value.faceNumber!; typeName.value = faceItemData.value.faceName!; @@ -40,7 +19,36 @@ class FaceDetailState { adder.value = faceItemData.value.senderUsername!; addTime.value = faceItemData.value.createDate!; weekDay.value = faceItemData.value.weekDay!; - isStressFace.value = faceItemData.value.isCoerced! == 2 ? true : false; - isAdministrator.value = faceItemData.value.faceRight! == 1 ? true : false; + if (faceItemData.value.isCoerced! == 2) { + isStressFace.value = true; + } else { + isStressFace.value = false; + } + if (faceItemData.value.faceRight! == 1) { + isAdministrator.value = true; + } else { + isAdministrator.value = false; + } } + final Rx faceItemData = FingerprintItemData().obs; + + final TextEditingController changeNameController = TextEditingController(); + + final RxString typeNumber = ''.obs; // 人脸号 + final RxString typeName = ''.obs; // 人脸名字 + RxString startDate = ''.obs; // 开始时间 + RxString endDate = ''.obs; // 结束时间 + RxString startTime = ''.obs; // 生效时间 + RxString endTime = ''.obs; // 失效时间 + final RxInt keyType = 0.obs; // 永久:1;限时2,单次3,循环:4 + RxList weekDay = [].obs; // 有效日 + RxString adder = ''.obs; // 添加者 + RxInt addTime = 0.obs; // 添加时间 + RxInt keyId = 0.obs; + + RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 + RxInt sureBtnState = 0.obs; // 0普通状态(可用) 1连接中(不可用) + RxBool isDeletFace = true.obs; // 是否删除卡 + RxBool isStressFace = false.obs; // 是否胁迫 + RxBool isAdministrator = false.obs; } diff --git a/lib/main/lockDetail/face/faceList/faceList_page.dart b/lib/main/lockDetail/face/faceList/faceList_page.dart index 0303ea41..5758785b 100755 --- a/lib/main/lockDetail/face/faceList/faceList_page.dart +++ b/lib/main/lockDetail/face/faceList/faceList_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -16,7 +17,6 @@ import '../../../../tools/noData.dart'; import '../../../../tools/storage.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import '../../../lockMian/lockMain/lockMain_logic.dart'; import 'faceList_logic.dart'; @@ -75,7 +75,7 @@ class _FaceListPageState extends State with RouteAware { // showDeletAlertDialog(context); ShowTipView().showIosTipWithContentDialog( - '重置后,该锁的人脸都将被删除哦,确认要重置吗?', () async { + '重置后,该锁的人脸都将被删除哦,确认要重置吗?'.tr, () async { state.isDeletAll = true; state.deletKeyID = '1'; state.deletFaceNo = 0; @@ -84,7 +84,7 @@ class _FaceListPageState extends State with RouteAware { }); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }, ), @@ -196,9 +196,9 @@ class _FaceListPageState extends State with RouteAware { width: 60, color: const Color(0xFFF20101), alignment: Alignment.center, - child: const Text( - '删除', - style: TextStyle( + child: Text( + '删除'.tr, + style: const TextStyle( fontSize: 16, fontWeight: FontWeight.w500, color: Colors.white, diff --git a/lib/main/lockDetail/iris/addIris/addIris_logic.dart b/lib/main/lockDetail/iris/addIris/addIris_logic.dart index e2756289..06054378 100755 --- a/lib/main/lockDetail/iris/addIris/addIris_logic.dart +++ b/lib/main/lockDetail/iris/addIris/addIris_logic.dart @@ -7,7 +7,6 @@ class AddIrisLogic extends BaseGetXController { @override void onReady() { - // TODO: implement onReady super.onReady(); // _initReplySubscription(); @@ -15,7 +14,6 @@ class AddIrisLogic extends BaseGetXController { @override void onInit() { - // TODO: implement onInit super.onInit(); //开始添加后发送指令 // senderAddFace(); @@ -23,7 +21,6 @@ class AddIrisLogic extends BaseGetXController { @override void onClose() { - // TODO: implement onClose super.onClose(); // _replySubscription.cancel(); diff --git a/lib/main/lockDetail/iris/addIris/addIris_page.dart b/lib/main/lockDetail/iris/addIris/addIris_page.dart index 6dce7aae..adc75d76 100755 --- a/lib/main/lockDetail/iris/addIris/addIris_page.dart +++ b/lib/main/lockDetail/iris/addIris/addIris_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -7,7 +8,6 @@ import 'package:star_lock/main/lockDetail/iris/addIris/addIris_state.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/submitBtn.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; class AddIrisPage extends StatefulWidget { const AddIrisPage({Key? key}) : super(key: key); @@ -51,7 +51,8 @@ class _AddIrisPageState extends State { children: [ Expanded( child: Text( - '请单人正对门锁,距离一个成年人手臂长度\n(约0.6米)。\n保持脸部无遮挡,露出五官。', + // 虹膜提示需要国际化 + '', textAlign: TextAlign.left, maxLines: null, style: @@ -69,7 +70,7 @@ class _AddIrisPageState extends State { ? Container( padding: EdgeInsets.only(left: 20.w, right: 20.w), child: SubmitBtn( - btnName: '准备好了,开始添加', + btnName: '准备好了,开始添加'.tr, borderRadius: 20.w, onClick: () { state.isClickAddFace.value = true; @@ -79,7 +80,7 @@ class _AddIrisPageState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '正在录入中...', + '正在录入中...'.tr, style: TextStyle( color: AppColors.darkGrayTextColor, fontSize: 22.sp), diff --git a/lib/main/lockDetail/iris/addIris/addIris_state.dart b/lib/main/lockDetail/iris/addIris/addIris_state.dart index 6dbf77d0..d0711734 100755 --- a/lib/main/lockDetail/iris/addIris/addIris_state.dart +++ b/lib/main/lockDetail/iris/addIris/addIris_state.dart @@ -1,37 +1,37 @@ + import 'package:get/get.dart'; class AddIrisState { - var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 - - var ifConnectScuess = false.obs; - var maxRegCount = 0.obs; // 最大注册次数 - var regIndex = 0.obs; // 当前注册次数 - - var faceNumber = "".obs; - - final lockId = 0.obs; - final endDate = 0.obs; - final addType = "".obs; - final faceName = "".obs; - final faceType = 0.obs; - final startDate = 0.obs; - final cyclicConfig = [].obs; - final fromType = 1.obs; - final featureData = ''.obs; - final isClickAddFace = false.obs; - final isAdministrator = false.obs; - AddIrisState() { Map map = Get.arguments; - lockId.value = map["lockId"]; - endDate.value = map["endDate"]; - addType.value = map["addType"]; - faceName.value = map["faceName"]; - faceType.value = map["faceType"]; - startDate.value = map["startDate"]; - lockId.value = map["lockId"]; - cyclicConfig.value = map["cyclicConfig"]; - fromType.value = map["fromType"]; - isAdministrator.value = map["isAdministrator"]; + lockId.value = map['lockId']; + endDate.value = map['endDate']; + addType.value = map['addType']; + faceName.value = map['faceName']; + faceType.value = map['faceType']; + startDate.value = map['startDate']; + lockId.value = map['lockId']; + cyclicConfig.value = map['cyclicConfig']; + fromType.value = map['fromType']; + isAdministrator.value = map['isAdministrator']; } + RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 + + RxBool ifConnectScuess = false.obs; + RxInt maxRegCount = 0.obs; // 最大注册次数 + RxInt regIndex = 0.obs; // 当前注册次数 + + RxString faceNumber = ''.obs; + + final RxInt lockId = 0.obs; + final RxInt endDate = 0.obs; + final RxString addType = ''.obs; + final RxString faceName = ''.obs; + final RxInt faceType = 0.obs; + final RxInt startDate = 0.obs; + final RxList cyclicConfig = [].obs; + final RxInt fromType = 1.obs; + final RxString featureData = ''.obs; + final RxBool isClickAddFace = false.obs; + final RxBool isAdministrator = false.obs; } diff --git a/lib/main/lockDetail/iris/addIrisType/addIrisTypeManage/addIrisTypeManage_page.dart b/lib/main/lockDetail/iris/addIrisType/addIrisTypeManage/addIrisTypeManage_page.dart index 5805c261..6f7a816d 100755 --- a/lib/main/lockDetail/iris/addIrisType/addIrisTypeManage/addIrisTypeManage_page.dart +++ b/lib/main/lockDetail/iris/addIrisType/addIrisTypeManage/addIrisTypeManage_page.dart @@ -4,7 +4,6 @@ import 'package:star_lock/main/lockDetail/iris/addIrisType/addIrisTypeManage/add import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/titleAppBar.dart'; -import '../../../../../translations/trans_lib.dart'; class AddIrisTypeManagePage extends StatefulWidget { const AddIrisTypeManagePage({Key? key}) : super(key: key); @@ -28,7 +27,7 @@ class _AddIrisTypeManagePageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: "${"添加".tr}${'虹膜'.tr}", + barTitle: '${'添加'.tr}${'虹膜'.tr}', haveBack: true, backgroundColor: AppColors.mainColor), body: Column( diff --git a/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart b/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart index 2efdbdb7..059a1c6b 100755 --- a/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart +++ b/lib/main/lockDetail/iris/addIrisType/addIrisType_logic.dart @@ -1,4 +1,5 @@ import 'package:get/get.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockDetail/iris/addIrisType/addIrisType_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/dateTool.dart'; @@ -15,31 +16,31 @@ class AddIrisTypeLogic extends BaseGetXController { // 添加虹膜 void addIrisData() async { - var irisType = 0; // 永久:1;限时2,单次3,循环:4 - var startDate = ""; - var endDate = ""; - var startTime = ""; - var endTime = ""; - if (state.selectType.value == "0") { + int irisType = 0; // 永久:1;限时2,单次3,循环:4 + String startDate = ''; + String endDate = ''; + // String startTime = ''; + // String endTime = ''; + if (state.selectType.value == '0') { irisType = 1; - startDate = "0"; - endDate = "0"; - startTime = "0"; - endTime = "0"; - } else if (state.selectType.value == "1") { + startDate = '0'; + endDate = '0'; + // startTime = '0'; + // endTime = '0'; + } else if (state.selectType.value == '1') { irisType = 2; startDate = DateTool().dateToTimestamp(state.beginTime.value, 1).toString(); endDate = DateTool().dateToTimestamp(state.endTime.value, 1).toString(); - startTime = "0"; - endTime = "0"; + // startTime = '0'; + // endTime = '0'; if (startDate.isEmpty) { - showToast("请选择开始时间".tr); + showToast('请选择开始时间'.tr); return; } if (endDate.isEmpty) { - showToast("请选择结束时间".tr); + showToast('请选择结束时间'.tr); return; } @@ -49,42 +50,42 @@ class AddIrisTypeLogic extends BaseGetXController { // } if (int.parse(startDate) >= int.parse(endDate)) { - showToast("失效时间要大于生效时间".tr); + showToast('失效时间要大于生效时间'.tr); return; } - } else if (state.selectType.value == "2") { + } else if (state.selectType.value == '2') { if (state.beginTime.value.isEmpty) { - showToast("请选择有效期".tr); + showToast('请选择有效期'.tr); return; } startDate = DateTool().dateToTimestamp(state.beginTime.value, 1).toString(); endDate = DateTool().dateToTimestamp(state.endTime.value, 1).toString(); - startTime = DateTool() - .dateToTimestamp(state.effectiveDateTime.value, 0) - .toString(); - endTime = - DateTool().dateToTimestamp(state.failureDateTime.value, 0).toString(); + // startTime = DateTool() + // .dateToTimestamp(state.effectiveDateTime.value, 0) + // .toString(); + // endTime = + // DateTool().dateToTimestamp(state.failureDateTime.value, 0).toString(); irisType = 4; } // 虹膜 - Get.toNamed(Routers.addIrisPage, arguments: { - "lockId": state.lockId.value, - "endDate": int.parse(endDate), - "addType": "1", - "faceName": state.nameController.text, - "faceNumber": "123456", - "faceType": irisType, - "startDate": int.parse(startDate), - "cyclicConfig": state.weekdaysList.value, - "fromType": state.fromType.value, - "isAdministrator": state.isAdministrator.value, + Get.toNamed(Routers.addIrisPage, arguments: { + 'lockId': state.lockId.value, + 'endDate': int.parse(endDate), + 'addType': '1', + 'faceName': state.nameController.text, + 'faceNumber': '123456', + 'faceType': irisType, + 'startDate': int.parse(startDate), + 'cyclicConfig': state.weekdaysList.value, + 'fromType': state.fromType.value, + 'isAdministrator': state.isAdministrator.value, }); } // 校验指纹名字是否重复 - void checkIrisNameDuplicated(String irisName) async { - var entity = await ApiRepository.to.checkFaceNameDuplicatedData( + Future checkIrisNameDuplicated(String irisName) async { + final LoginEntity entity = await ApiRepository.to.checkFaceNameDuplicatedData( lockId: state.lockId.value.toString(), faceName: irisName, ); diff --git a/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart b/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart index b6fa3c80..3285b06b 100755 --- a/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart +++ b/lib/main/lockDetail/iris/addIrisType/addIrisType_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -16,7 +17,6 @@ import '../../../../app_settings/app_colors.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/storage.dart'; import '../../../../tools/submitBtn.dart'; -import '../../../../translations/trans_lib.dart'; class AddIrisTypePage extends StatefulWidget { // 从添加员工进入 传入员工名字 const AddIrisTypePage( @@ -267,7 +267,7 @@ class _AddIrisTypePageState extends State { logic.checkIrisNameDuplicated(state.nameController.text); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }), ], diff --git a/lib/main/lockDetail/iris/addIrisType/addIrisType_state.dart b/lib/main/lockDetail/iris/addIrisType/addIrisType_state.dart index a2fb8c31..e667913d 100755 --- a/lib/main/lockDetail/iris/addIrisType/addIrisType_state.dart +++ b/lib/main/lockDetail/iris/addIrisType/addIrisType_state.dart @@ -2,20 +2,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; class AddIrisTypeState { - final lockId = 0.obs; - final selectType = "0".obs; // 0永久 1显示 2循环 - final fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入 - var fromTypeTwoStaffName = "".obs; // 考勤添加人脸员工名字 - final isStressFingerprint = false.obs; - final isAdministrator = false.obs; // 是否为管理员 - - var beginTime = "".obs; // 开始时间 - var endTime = "".obs; // 结束时间 - var effectiveDateTime = "".obs; // 生效时间 - var failureDateTime = "".obs; // 失效时间 - var weekdaysList = [].obs; - - final TextEditingController nameController = TextEditingController(); AddIrisTypeState() { // Map map = Get.arguments; // lockId.value = map["lockId"]; @@ -25,4 +11,18 @@ class AddIrisTypeState { // // nameController.text = fromTypeTwoStaffName.value; // } } + final RxInt lockId = 0.obs; + final RxString selectType = '0'.obs; // 0永久 1显示 2循环 + final RxInt fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入 + RxString fromTypeTwoStaffName = ''.obs; // 考勤添加人脸员工名字 + final RxBool isStressFingerprint = false.obs; + final RxBool isAdministrator = false.obs; // 是否为管理员 + + RxString beginTime = ''.obs; // 开始时间 + RxString endTime = ''.obs; // 结束时间 + RxString effectiveDateTime = ''.obs; // 生效时间 + RxString failureDateTime = ''.obs; // 失效时间 + RxList weekdaysList = [].obs; + + final TextEditingController nameController = TextEditingController(); } diff --git a/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart b/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart index 2a31cd67..7814dadb 100755 --- a/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart +++ b/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart @@ -1,19 +1,18 @@ + import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; -import 'package:star_lock/blue/io_type.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockDetail/iris/irisDetail/irisDetail_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; import 'package:star_lock/tools/pickers/time_picker/time_utils.dart'; import '../../../../blue/blue_manage.dart'; -// import '../../../../blue/io_protocol/io_addICCard.dart'; import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; import '../../../../blue/io_tool/manager_event_bus.dart'; -import '../../../../blue/sender_manage.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/dateTool.dart'; import '../../../../tools/storage.dart'; @@ -29,7 +28,7 @@ class IrisDetailLogic extends BaseGetXController { late StreamSubscription _replySubscription; void _initReplySubscription() { _replySubscription = - EventBusManager().eventBus!.on().listen((reply) async { + EventBusManager().eventBus!.on().listen((Reply reply) async { // 添加卡片开始(重置锁里面所有卡) // if ((reply is SenderAddICCardReply)) { // _replyAddICCardBegin(reply); @@ -39,7 +38,7 @@ class IrisDetailLogic extends BaseGetXController { // 添加卡片开始(此处用作删除卡片) Future _replyAddICCardBegin(Reply reply) async { - int status = reply.data[2]; + final int status = reply.data[2]; switch (status) { case 0x00: @@ -50,19 +49,19 @@ class IrisDetailLogic extends BaseGetXController { break; case 0x06: //无权限 - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = changeStringListToIntList(privateKey!); - var signKey = await Storage.getStringList(saveBlueSignKey); - List signKeyDataList = changeStringListToIntList(signKey!); + final List? signKey = await Storage.getStringList(saveBlueSignKey); + final List signKeyDataList = changeStringListToIntList(signKey!); // var publicKey = await Storage.getStringList(saveBluePublicKey); // List publicKeyDataList = changeStringListToIntList(publicKey!); - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); + final List? token = await Storage.getStringList(saveBlueToken); + final List getTokenList = changeStringListToIntList(token!); - String? userID = await Storage.getUid(); + final String? userID = await Storage.getUid(); // IoSenderManage.senderAddICCardCommand( // keyID: state.keyId.value.toString(), // userID: userID, @@ -101,16 +100,16 @@ class IrisDetailLogic extends BaseGetXController { // var publicKey = await Storage.getStringList(saveBluePublicKey); // List publicKeyDataList = changeStringListToIntList(publicKey!); - var signKey = await Storage.getStringList(saveBlueSignKey); - List signKeyDataList = changeStringListToIntList(signKey!); + final List? signKey = await Storage.getStringList(saveBlueSignKey); + final List signKeyDataList = changeStringListToIntList(signKey!); - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = changeStringListToIntList(privateKey!); - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); + final List? token = await Storage.getStringList(saveBlueToken); + final List getTokenList = changeStringListToIntList(token!); - String? userID = await Storage.getUid(); + final String? userID = await Storage.getUid(); // IoSenderManage.senderAddICCardCommand( // keyID: state.keyId.value.toString(), // userID: userID, @@ -137,22 +136,22 @@ class IrisDetailLogic extends BaseGetXController { // 编辑iC卡 void editICCardData() async { - var entity = await ApiRepository.to.editICCardData( + final LoginEntity entity = await ApiRepository.to.editICCardData( cardId: state.keyId.value.toString(), lockId: state.fingerprintItemData.value.lockId.toString(), weekDay: state.weekDay.value, startDate: state.starDate.value * 1000, endDate: state.endDate.value * 1000, - isCoerced: state.isStressFingerprint.value ? "2" : "1", + isCoerced: state.isStressFingerprint.value ? '2' : '1', cardName: state.changeNameController.text, - changeType: "1", + changeType: '1', startTime: int.parse(state.starTime.value), endTime: int.parse(state.endTime.value), cardType: state.keyType.value, cardRight: 0, ); if (entity.errorCode!.codeIsSuccessful) { - showToast("修改成功", something: () { + showToast('修改成功'.tr, something: () { eventBus.fire(OtherTypeRefreshListEvent()); }); } @@ -160,14 +159,14 @@ class IrisDetailLogic extends BaseGetXController { // 删除IC卡 void deletICCardData() async { - var entity = await ApiRepository.to.deletIcCardData( + final LoginEntity entity = await ApiRepository.to.deletIcCardData( cardId: state.fingerprintItemData.value.cardId.toString(), lockId: state.fingerprintItemData.value.lockId.toString(), - type: "0", - deleteType: "1"); + type: '0', + deleteType: '1'); if (entity.errorCode!.codeIsSuccessful) { - showToast("删除成功", something: () { - Get.back(result: "addScuess"); + showToast('删除成功'.tr, something: () { + Get.back(result: 'addScuess'); }); } } @@ -175,20 +174,19 @@ class IrisDetailLogic extends BaseGetXController { String getKeyTypeShowDateTime() { String useDateStr = ''; if (state.keyType.value == 1) { - useDateStr = "永久"; + useDateStr = '永久'.tr; } else if (state.keyType.value == 2) { useDateStr = - "${DateTool().dateToYMDHNString(state.starDate.value)}\n${DateTool().dateToYMDHNString(state.endDate.value)}"; + '${DateTool().dateToYMDHNString(state.starDate.value)}\n${DateTool().dateToYMDHNString(state.endDate.value)}'; } else if (state.keyType.value == 4) { useDateStr = - "${DateTool().dateToYMDString(state.starDate.value)}\n${DateTool().dateToYMDString(state.endDate.value)}"; + '${DateTool().dateToYMDString(state.starDate.value)}\n${DateTool().dateToYMDString(state.endDate.value)}'; } return useDateStr; } @override void onReady() { - // TODO: implement onReady super.onReady(); _initReplySubscription(); @@ -196,13 +194,11 @@ class IrisDetailLogic extends BaseGetXController { @override void onInit() { - // TODO: implement onInit super.onInit(); } @override void onClose() { - // TODO: implement onClose super.onClose(); _replySubscription.cancel(); diff --git a/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart b/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart index ce0db182..43fc32cc 100755 --- a/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart +++ b/lib/main/lockDetail/iris/irisDetail/irisDetail_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; @@ -8,7 +9,6 @@ import 'package:star_lock/main/lockDetail/iris/irisDetail/irisDetail_state.dart' import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; -import '../../../../blue/blue_manage.dart'; import '../../../../tools/appRouteObserver.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/dateTool.dart'; @@ -17,7 +17,6 @@ import '../../../../tools/showTFView.dart'; import '../../../../tools/storage.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; class CardDetailPage extends StatefulWidget { const CardDetailPage({Key? key}) : super(key: key); @@ -35,15 +34,14 @@ class _CardDetailPageState extends State with RouteAware { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '虹膜详情', + barTitle: '虹膜详情'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), body: ListView( children: [ Obx(() => CommonItem( - leftTitel: - '虹膜', + leftTitel: '虹膜号'.tr, rightTitle: state.typeNumber.value, isHaveDirection: false, isHaveLine: true)), @@ -131,7 +129,7 @@ class _CardDetailPageState extends State with RouteAware { Obx(() => Visibility( visible: state.keyType.value == 4 ? true : false, child: Obx(() => CommonItem( - leftTitel: '有效时间', + leftTitel: '有效时间'.tr, rightTitle: '${DateTool().dateToHNString(state.starTime.value)}-${DateTool().dateToHNString(state.endTime.value)}', isHaveDirection: true, diff --git a/lib/main/lockDetail/iris/irisDetail/irisDetail_state.dart b/lib/main/lockDetail/iris/irisDetail/irisDetail_state.dart index 27b7d125..bcce6fc4 100755 --- a/lib/main/lockDetail/iris/irisDetail/irisDetail_state.dart +++ b/lib/main/lockDetail/iris/irisDetail/irisDetail_state.dart @@ -4,30 +4,10 @@ import 'package:get/get.dart'; import '../../fingerprint/fingerprintList/fingerprintListData_entity.dart'; class IrisDetailState { - final fingerprintItemData = FingerprintItemData().obs; - - final TextEditingController changeNameController = TextEditingController(); - - var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 - var sureBtnState = 0.obs; // 0普通状态(可用) 1连接中(不可用) - - final typeNumber = "".obs; // 指纹号 - final typeName = "".obs; // 指纹名字 - var starDate = "".obs; // 开始时间 - var endDate = "".obs; // 结束时间 - var starTime = "".obs; // 生效时间 - var endTime = "".obs; // 失效时间 - final keyType = 0.obs; // 永久:1;限时2,单次3,循环:4 - var weekDay = [].obs; // 有效日 - var adder = "".obs; // 添加者 - var addTime = 0.obs; // 添加时间 - var keyId = 0.obs; // 卡id - - final isStressFingerprint = false.obs; IrisDetailState() { Map map = Get.arguments; - if ((map["fingerprintItemData"] != null)) { - fingerprintItemData.value = map["fingerprintItemData"]; + if (map['fingerprintItemData'] != null) { + fingerprintItemData.value = map['fingerprintItemData']; keyId.value = fingerprintItemData.value.cardId!; typeNumber.value = fingerprintItemData.value.cardNumber!; typeName.value = fingerprintItemData.value.cardName!; @@ -39,9 +19,32 @@ class IrisDetailState { keyType.value = fingerprintItemData.value.cardType!; adder.value = fingerprintItemData.value.senderUsername!; addTime.value = fingerprintItemData.value.createDate!; - isStressFingerprint.value = - fingerprintItemData.value.isCoerced! == 2 ? true : false; + if (fingerprintItemData.value.isCoerced! == 2) { + isStressFingerprint.value = true; + } else { + isStressFingerprint.value = false; + } weekDay.value = fingerprintItemData.value.weekDay!; } } + final Rx fingerprintItemData = FingerprintItemData().obs; + + final TextEditingController changeNameController = TextEditingController(); + + RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 + RxInt sureBtnState = 0.obs; // 0普通状态(可用) 1连接中(不可用) + + final RxString typeNumber = ''.obs; // 指纹号 + final RxString typeName = ''.obs; // 指纹名字 + RxString starDate = ''.obs; // 开始时间 + RxString endDate = ''.obs; // 结束时间 + RxString starTime = ''.obs; // 生效时间 + RxString endTime = ''.obs; // 失效时间 + final RxInt keyType = 0.obs; // 永久:1;限时2,单次3,循环:4 + RxList weekDay = [].obs; // 有效日 + RxString adder = ''.obs; // 添加者 + RxInt addTime = 0.obs; // 添加时间 + RxInt keyId = 0.obs; // 卡id + + final RxBool isStressFingerprint = false.obs; } diff --git a/lib/main/lockDetail/iris/irisList/irisList_logic.dart b/lib/main/lockDetail/iris/irisList/irisList_logic.dart index f0b2f68c..bb2185d5 100755 --- a/lib/main/lockDetail/iris/irisList/irisList_logic.dart +++ b/lib/main/lockDetail/iris/irisList/irisList_logic.dart @@ -1,9 +1,9 @@ + import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:star_lock/blue/io_protocol/io_addFace.dart'; import 'package:star_lock/blue/io_protocol/io_queryingFaceStatus.dart'; -import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/main/lockDetail/iris/irisList/irisList_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../../blue/blue_manage.dart'; @@ -11,7 +11,6 @@ import '../../../../blue/io_protocol/io_checkingUserInfoCount.dart'; import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; import '../../../../blue/io_tool/manager_event_bus.dart'; -import '../../../../blue/sender_manage.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/eventBusEventManage.dart'; import '../../../../tools/storage.dart'; diff --git a/lib/main/lockDetail/iris/irisList/irisList_page.dart b/lib/main/lockDetail/iris/irisList/irisList_page.dart index c5c649fb..8b63e481 100755 --- a/lib/main/lockDetail/iris/irisList/irisList_page.dart +++ b/lib/main/lockDetail/iris/irisList/irisList_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -16,7 +17,6 @@ import '../../../../tools/showIosTipView.dart'; import '../../../../tools/storage.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; class IrisListPage extends StatefulWidget { const IrisListPage({Key? key}) : super(key: key); @@ -51,10 +51,10 @@ class _IrisListPageState extends State { if (!isNetWork) { return; } - showDeletAlertDialog(context); + // showDeletAlertDialog(context); } else { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }, ), @@ -122,7 +122,7 @@ class _IrisListPageState extends State { (getFaceItemData.faceType! != 1) ? (getFaceItemData.endDate! < DateTime.now().millisecondsSinceEpoch - ? '已失效' + ? '已失效'.tr : '') : '', getFaceItemData.validTimeStr!, @@ -165,9 +165,9 @@ class _IrisListPageState extends State { width: 60, color: const Color(0xFFF20101), alignment: Alignment.center, - child: const Text( - '删除', - style: TextStyle( + child: Text( + '删除'.tr, + style: const TextStyle( fontSize: 16, fontWeight: FontWeight.w500, color: Colors.white, @@ -254,35 +254,35 @@ class _IrisListPageState extends State { ); } - void showDeletAlertDialog(BuildContext context) { - showCupertinoDialog( - context: context, - builder: (BuildContext context) { - return CupertinoAlertDialog( - title: const Text('提示'), - content: const Text('重置后,该锁的人脸都将被删除哦,确认要重置吗?'), - actions: [ - CupertinoDialogAction( - child: Text('取消'.tr), - onPressed: () { - Navigator.pop(context); - }, - ), - CupertinoDialogAction( - child: Text('确定'.tr), - onPressed: () { - Navigator.pop(context); - state.isDeletFaceData = true; - state.isDeletAll = true; - state.deletKeyID = '1'; - state.deletUserID = 'DeleteAll!@#'; - state.deletFaceNo = 255; - // logic.senderAddFace(); - }, - ), - ], - ); - }, - ); - } + // void showDeletAlertDialog(BuildContext context) { + // showCupertinoDialog( + // context: context, + // builder: (BuildContext context) { + // return CupertinoAlertDialog( + // title: const Text('提示'), + // content: const Text('重置后,该锁的人脸都将被删除哦,确认要重置吗?'), + // actions: [ + // CupertinoDialogAction( + // child: Text('取消'.tr), + // onPressed: () { + // Navigator.pop(context); + // }, + // ), + // CupertinoDialogAction( + // child: Text('确定'.tr), + // onPressed: () { + // Navigator.pop(context); + // state.isDeletFaceData = true; + // state.isDeletAll = true; + // state.deletKeyID = '1'; + // state.deletUserID = 'DeleteAll!@#'; + // state.deletFaceNo = 255; + // // logic.senderAddFace(); + // }, + // ), + // ], + // ); + // }, + // ); + // } } diff --git a/lib/main/lockDetail/iris/irisList/irisList_state.dart b/lib/main/lockDetail/iris/irisList/irisList_state.dart index ac926272..4fbcf9a7 100755 --- a/lib/main/lockDetail/iris/irisList/irisList_state.dart +++ b/lib/main/lockDetail/iris/irisList/irisList_state.dart @@ -4,21 +4,21 @@ import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprin class IrisListState { final TextEditingController searchController = TextEditingController(); - final lockId = 0.obs; + final RxInt lockId = 0.obs; // 因为删除跟添加人脸用的同一个协议 所以这里用做判断 - var isDeletFaceData = false; - var isDeletAll = false; - var deletKeyID = ""; - var deletUserID = "DeleteAll!@#"; - var deletFaceNo = 0; + bool isDeletFaceData = false; + bool isDeletAll = false; + String deletKeyID = ''; + String deletUserID = 'DeleteAll!@#'; + int deletFaceNo = 0; - final faceItemListData = [].obs; + final RxList faceItemListData = [].obs; - var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 + RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 IrisListState() { Map map = Get.arguments; - lockId.value = map["lockId"]; + lockId.value = map['lockId']; } } diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index bf80cee6..ac4e64d9 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/scheduler.dart'; @@ -17,7 +18,6 @@ import 'package:star_lock/widget/permission/permission_dialog.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; import '../../../blue/io_protocol/io_openLock.dart'; -import '../../../blue/io_protocol/io_referEventRecordTime.dart'; import '../../../blue/io_reply.dart'; import '../../../blue/io_tool/io_tool.dart'; import '../../../blue/io_tool/manager_event_bus.dart'; @@ -27,9 +27,7 @@ import '../../../tools/baseGetXController.dart'; import '../../../tools/commonDataManage.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/storage.dart'; -import '../../../translations/trans_lib.dart'; import '../lockOperatingRecord/keyOperationRecord_entity.dart'; -import '../lockOperatingRecord/lockOperatingRecordGetLastRecordTime_entity.dart'; import '../lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_entity.dart'; import 'lockDetail_state.dart'; import 'lockNetToken_entity.dart'; @@ -152,27 +150,27 @@ class LockDetailLogic extends BaseGetXController { break; case 0x0a: // 钥匙不存在 - showToast('钥匙不存在'); + showToast('钥匙不存在'.tr); openDoorError(); break; case 0x0c: // 钥匙数量已到上限 - showToast('钥匙数量已到上限'); + showToast('钥匙数量已到上限'.tr); openDoorError(); break; case 0x0e: // 钥匙已存在 - showToast('钥匙已存在'); + showToast('钥匙已存在'.tr); openDoorError(); break; case 0x0f: // 用户已存在 - showToast('用户已存在'); + showToast('用户已存在'.tr); openDoorError(); break; default: //失败 - AppLog.log('开锁失败'); + // AppLog.log('开锁失败'); openDoorError(); break; } @@ -438,7 +436,7 @@ class LockDetailLogic extends BaseGetXController { .getLockNetToken(lockId: state.keyInfos.value.lockId.toString()); if (entity.errorCode!.codeIsSuccessful) { state.lockNetToken = entity.data!.token!.toString(); - AppLog.log('从服务器获取联网token:${state.lockNetToken}'); + // AppLog.log('从服务器获取联网token:${state.lockNetToken}'); openDoorAction(); } else { showToast('网络访问失败,请检查网络是否正常'.tr, something: () { diff --git a/lib/main/lockDetail/lockDetail/lockDetail_main_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_main_page.dart index a3f43790..ca53f640 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_main_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_main_page.dart @@ -1,10 +1,10 @@ + import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../../app_settings/app_colors.dart'; import '../../../flavors.dart'; import '../../../tools/titleAppBar.dart'; -import '../../../translations/trans_lib.dart'; import '../../lockMian/entity/lockListInfo_entity.dart'; import 'lockDetail_page.dart'; @@ -26,10 +26,10 @@ class _LockDetailMainPageState extends State { final bool isOnlyOneData; LockListInfoItemEntity keyInfos = LockListInfoItemEntity(); dynamic obj = ModalRoute.of(context)?.settings.arguments; - if (obj != null && (obj["keyInfo"] != null)) { - keyInfos = obj["keyInfo"]; + if (obj != null && (obj['keyInfo'] != null)) { + keyInfos = obj['keyInfo']; } - isOnlyOneData = obj["isOnlyOneData"]; + isOnlyOneData = obj['isOnlyOneData']; return F.sw( skyCall: () => Scaffold( @@ -47,7 +47,7 @@ class _LockDetailMainPageState extends State { backgroundColor: Colors.white, appBar: TitleAppBar( barTitle: F.sw( - xhjCall: () => '星星锁', skyCall: () => keyInfos.lockAlias), + xhjCall: () => '星星锁'.tr, skyCall: () => keyInfos.lockAlias), haveBack: true, backgroundColor: Colors.white, titleColor: AppColors.blackColor, diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 2ae4db30..c4125b58 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/material.dart'; @@ -21,7 +22,6 @@ import '../../../common/XSConstantMacro/XSConstantMacro.dart'; import '../../../tools/appRouteObserver.dart'; import '../../../tools/dateTool.dart'; import '../../../tools/eventBusEventManage.dart'; -import '../../../translations/trans_lib.dart'; import '../../lockMian/entity/lockListInfo_entity.dart'; import 'lockDetail_logic.dart'; @@ -704,7 +704,7 @@ class _LockDetailPageState extends State ShowCupertinoAlertView().isToRemoteUnLockAlert( remoteUnlockAction: () { if (state.keyInfos.value.hasGateway != 1) { - logic.showToast('附近没有可用网关'); + logic.showToast('附近没有可用网关'.tr); } }); }, @@ -1420,16 +1420,16 @@ class _LockDetailPageState extends State state.iSOpenLock.value = true; state.openLockBtnState.value = 1; state.animationController!.forward(); - AppLog.log('点击开锁'); + // AppLog.log('点击开锁'); if (isOpenLockNeedOnline) { // 不需要联网 state.openDoorModel = 0; - AppLog.log('点击开锁 state.openDoorModel = 0 不需要联网'); + // AppLog.log('点击开锁 state.openDoorModel = 0 不需要联网'); logic.openDoorAction(); } else { // 需要联网 state.openDoorModel = 2; - AppLog.log('点击开锁 state.openDoorModel = 2 需要联网'); + // AppLog.log('点击开锁 state.openDoorModel = 2 需要联网'); logic.getLockNetToken(); } } @@ -1445,12 +1445,12 @@ class _LockDetailPageState extends State AppLog.log('长按闭锁'); if (state.isOpenLockNeedOnline.value == 0) { // 不需要联网 - AppLog.log('长按闭锁 state.openDoorModel = 32 不需要联网'); + // AppLog.log('长按闭锁 state.openDoorModel = 32 不需要联网'); state.openDoorModel = 32; logic.openDoorAction(); } else { // 需要联网 - AppLog.log('长按闭锁 state.openDoorModel = 34 需要联网'); + // AppLog.log('长按闭锁 state.openDoorModel = 34 需要联网'); state.openDoorModel = 34; logic.getLockNetToken(); } diff --git a/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_logic.dart b/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_logic.dart index 12ac7f80..4402b89d 100755 --- a/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_logic.dart +++ b/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_logic.dart @@ -1,6 +1,8 @@ + import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; +import 'package:get/get.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; @@ -59,12 +61,12 @@ class LockOperatingRecordLogic extends BaseGetXController { final int userNo = (indexList[1] * 256) + indexList[2]; indexMap['user'] = userNo.toString(); - AppLog.log('userNouserNouserNouserNo:$userNo'); + // AppLog.log('userNouserNouserNouserNo:$userNo'); final List passwordData = indexList.sublist(7, 17); final String password = utf8String(passwordData); indexMap['password'] = password.toString(); - AppLog.log('passwordpasswordpassword:$password'); + // AppLog.log('passwordpasswordpassword:$password'); indexMap['success'] = '1'; @@ -194,7 +196,7 @@ class LockOperatingRecordLogic extends BaseGetXController { Future clearOperationRecordRequest() async { final KeyOperationRecordEntity entity = await ApiRepository.to.clearOperationRecord(CommonDataManage().currentKeyInfo.lockId.toString()); if (entity.errorCode!.codeIsSuccessful) { - showToast('清除数据成功', something: (){ + showToast('清除数据成功'.tr, something: (){ pageNo = 1; mockNetworkDataRequest(); }); diff --git a/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart b/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart index 46b02d8e..d653af5f 100755 --- a/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart +++ b/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart @@ -1,18 +1,17 @@ + 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/lockOperatingRecord/lockOperatingRecord_state.dart'; import '../../../app_settings/app_colors.dart'; import '../../../tools/EasyRefreshTool.dart'; import '../../../tools/appRouteObserver.dart'; -import '../../../tools/commonDataManage.dart'; import '../../../tools/custom_bottom_sheet.dart'; -import '../../../tools/keySearchWidget.dart'; import '../../../tools/noData.dart'; import '../../../tools/storage.dart'; import '../../../tools/titleAppBar.dart'; -import '../../../translations/trans_lib.dart'; import 'keyOperationRecord_entity.dart'; import 'lockOperatingRecord_logic.dart'; @@ -20,16 +19,15 @@ class LockOperatingRecordPage extends StatefulWidget { const LockOperatingRecordPage({Key? key}) : super(key: key); @override - State createState() => - _LockOperatingRecordPageState(); + State createState() => _LockOperatingRecordPageState(); } class _LockOperatingRecordPageState extends State with RouteAware{ - final logic = Get.put(LockOperatingRecordLogic()); - final state = Get.find().state; + final LockOperatingRecordLogic logic = Get.put(LockOperatingRecordLogic()); + final LockOperatingRecordState state = Get.find().state; Future getHttpData() async { - var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); + final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { logic.mockNetworkDataRequest().then((KeyOperationRecordEntity value){ if (mounted) { @@ -85,7 +83,7 @@ class _LockOperatingRecordPageState extends State with getHttpData(); }, child: Column( - children: [ + children: [ Expanded(child: _buildMainUI()), ], ), @@ -97,13 +95,13 @@ class _LockOperatingRecordPageState extends State with return Obx(() => state.lockOperatingRecordListData.value.isNotEmpty ? ListView.separated( itemCount: state.lockOperatingRecordListData.length, - itemBuilder: (c, index) { - KeyRecordDataItem dataItem = + itemBuilder: (BuildContext c, int index) { + final KeyRecordDataItem dataItem = state.lockOperatingRecordListData[index]; - int? operateDate = dataItem.operateDate; - DateTime dateStr = + final int? operateDate = dataItem.operateDate; + final DateTime dateStr = DateTime.fromMillisecondsSinceEpoch(operateDate!); - String operateDateStr = + final String operateDateStr = '${dateStr.toLocal().toString().substring(0, 16)} '; // return _operatingRecordItem(getTypeIcon(dataItem.recordType!), // dataItem.recordTypeName!, operateDateStr, () {}); @@ -158,7 +156,7 @@ class _LockOperatingRecordPageState extends State with ), child: Row( mainAxisAlignment: MainAxisAlignment.start, - children: [ + children: [ Icon(Icons.access_time, size: 35.w), SizedBox(width: 10.w,), Text( @@ -173,11 +171,10 @@ class _LockOperatingRecordPageState extends State with child:Container( margin: EdgeInsets.only(bottom: 3.w), child: Row( - children: [ + children: [ Flexible( child: Text( userNameStr, - // "发的发生大发手动阀手动阀三大发啥打法是打发三大发啥打法是打发", maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( @@ -250,34 +247,33 @@ class _LockOperatingRecordPageState extends State with // ); // } - Future _openModalBottomSheet() async { - showModalBottomSheet( - context: context, - shape: RoundedRectangleBorder( - borderRadius: BorderRadiusDirectional.circular(10)), - builder: (BuildContext context) { - return AlertBottomWidget( - topTitle: '', - // items: const ['读取记录', '清空记录', '导出记录'], - items: const ['清空记录'], - chooseCallback: (value) { - int getSelectIndex = value; - // if (getSelectIndex == 0) { - // logic.mockNetworkDataRequest(); - // } else if (getSelectIndex == 1) { - // logic.clearOperationRecordRequest(); - // } - if (getSelectIndex == 0) { - logic.clearOperationRecordRequest(); - } - }, - ); - }); - } + // Future _openModalBottomSheet() async { + // showModalBottomSheet( + // context: context, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadiusDirectional.circular(10)), + // builder: (BuildContext context) { + // return AlertBottomWidget( + // topTitle: '', + // // items: const ['读取记录', '清空记录', '导出记录'], + // items: ['清空记录'.tr], + // chooseCallback: (int value) { + // final int getSelectIndex = value; + // // if (getSelectIndex == 0) { + // // logic.mockNetworkDataRequest(); + // // } else if (getSelectIndex == 1) { + // // logic.clearOperationRecordRequest(); + // // } + // if (getSelectIndex == 0) { + // logic.clearOperationRecordRequest(); + // } + // }, + // ); + // }); + // } @override void didChangeDependencies() { - // TODO: implement didChangeDependencies super.didChangeDependencies(); /// 路由订阅 @@ -286,7 +282,6 @@ class _LockOperatingRecordPageState extends State with @override void dispose() { - // TODO: implement dispose /// 取消路由订阅 AppRouteObserver().routeObserver.unsubscribe(this); super.dispose(); diff --git a/lib/main/lockDetail/messageWarn/addFamily/addFamily_logic.dart b/lib/main/lockDetail/messageWarn/addFamily/addFamily_logic.dart index 988ef2a0..7b0a961a 100755 --- a/lib/main/lockDetail/messageWarn/addFamily/addFamily_logic.dart +++ b/lib/main/lockDetail/messageWarn/addFamily/addFamily_logic.dart @@ -157,15 +157,15 @@ class AddFamilyLogic extends BaseGetXController { final int keyType = state.familyData.value.settingValue!.openDoorType!; switch (keyType) { case 1: - return '电子钥匙'; + return '电子钥匙'.tr; case 2: - return '密码'; + return '密码'.tr; case 3: - return '指纹'; + return '指纹'.tr; case 4: - return '卡'; + return '卡'.tr; case 5: - return '人脸'; + return '人脸'.tr; default: return ''; } diff --git a/lib/main/lockDetail/messageWarn/addFamily/addFamily_page.dart b/lib/main/lockDetail/messageWarn/addFamily/addFamily_page.dart index b458cc18..aa28cff9 100755 --- a/lib/main/lockDetail/messageWarn/addFamily/addFamily_page.dart +++ b/lib/main/lockDetail/messageWarn/addFamily/addFamily_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -11,7 +12,6 @@ import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/showTFView.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/submitBtn.dart'; -import 'package:star_lock/translations/trans_lib.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/titleAppBar.dart'; diff --git a/lib/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart b/lib/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart index 39f29f61..e9d163d0 100755 --- a/lib/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart +++ b/lib/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart @@ -1,8 +1,4 @@ class LockUserEntity { - int? errorCode; - String? description; - String? errorMsg; - List? data; LockUserEntity({this.errorCode, this.description, this.errorMsg, this.data}); @@ -17,6 +13,10 @@ class LockUserEntity { }); } } + int? errorCode; + String? description; + String? errorMsg; + List? data; Map toJson() { final Map data = {}; @@ -31,9 +31,6 @@ class LockUserEntity { } class LockUserData { - int? openLockType; - String? openLockTypeName; - List? lockUserList; LockUserData({this.openLockType, this.openLockTypeName, this.lockUserList}); @@ -47,6 +44,9 @@ class LockUserData { }); } } + int? openLockType; + String? openLockTypeName; + List? lockUserList; Map toJson() { final Map data = {}; @@ -59,64 +59,7 @@ class LockUserData { } } -class LockUserListKeys { - int? id; - String? clientId; - int? lockOwnerId; - int? apiUserId; - int? lockId; - // int? senderUserId; - // int? receiverUsernameType; - String? keyName; - int? keyType; - int? startDate; - int? endDate; - List? weekDays; - String? remarks; - int? remoteEnable; - int? isCameraEnable; - int? faceAuthentication; - int? lastFaceValidateTime; - int? keyRight; - int? remoteUnlockSwitch; - int? userType; - int? keyStatus; - int? groupId; - int? lockUserNo; - int? businessId; - String? createdAt; - String? updatedAt; - int? isOnlyManageSelf; - UserInfo? userInfo; - UserInfo? userSender; - int? keyboardPwdType; - int? fingerprintType; - int? cardType; - int? faceType; - int? keyboardPwdStatus; - String? keyboardPwdName; - String? fingerprintName; - String? cardName; - String? faceName; - String? keyboardPwd; - String? keyboardPwdHash; - int? addType; - int? pwdRight; - int? isCustom; - int? isCoerced; - int? hoursStart; - int? hoursEnd; - int? pwdUserNo; - String? senderUsername; - int? keyboardPwdId; - int? sendDate; - int? currentKeyType; //当前钥匙类型 1:电子钥匙 2:密码钥匙 3:指纹钥匙 4:卡钥匙 5:人脸钥匙 - String? currentKeyTypeStr; //当前钥匙类型名称 - String? currentTypeImg; //当前钥匙类型图片 - String? currentKeyName; //当前钥匙名称 - bool? isCurrentSelect; //当前是否选中 - int? currentDateType; //钥匙日期类型 1:永久 2:限期 3:单次 4:循环 - int? currentOpenDoorID; //当前开门ID +class LockUserListKeys { //当前开门ID LockUserListKeys( {this.id, @@ -242,6 +185,63 @@ class LockUserListKeys { isCurrentSelect = json['isCurrentSelect']; currentDateType = json['currentDateType']; } + int? id; + String? clientId; + int? lockOwnerId; + int? apiUserId; + int? lockId; + // int? senderUserId; + // int? receiverUsernameType; + String? keyName; + int? keyType; + int? startDate; + int? endDate; + List? weekDays; + String? remarks; + int? remoteEnable; + int? isCameraEnable; + int? faceAuthentication; + int? lastFaceValidateTime; + int? keyRight; + int? remoteUnlockSwitch; + int? userType; + int? keyStatus; + int? groupId; + int? lockUserNo; + int? businessId; + String? createdAt; + String? updatedAt; + int? isOnlyManageSelf; + UserInfo? userInfo; + UserInfo? userSender; + int? keyboardPwdType; + int? fingerprintType; + int? cardType; + int? faceType; + int? keyboardPwdStatus; + String? keyboardPwdName; + String? fingerprintName; + String? cardName; + String? faceName; + String? keyboardPwd; + String? keyboardPwdHash; + int? addType; + int? pwdRight; + int? isCustom; + int? isCoerced; + int? hoursStart; + int? hoursEnd; + int? pwdUserNo; + String? senderUsername; + int? keyboardPwdId; + int? sendDate; + int? currentKeyType; //当前钥匙类型 1:电子钥匙 2:密码钥匙 3:指纹钥匙 4:卡钥匙 5:人脸钥匙 + String? currentKeyTypeStr; //当前钥匙类型名称 + String? currentTypeImg; //当前钥匙类型图片 + String? currentKeyName; //当前钥匙名称 + bool? isCurrentSelect; //当前是否选中 + int? currentDateType; //钥匙日期类型 1:永久 2:限期 3:单次 4:循环 + int? currentOpenDoorID; Map toJson() { final Map data = {}; @@ -314,15 +314,6 @@ class LockUserListKeys { } class UserInfo { - int? id; - String? clientId; - String? username; - String? accountName; - String? businessQueryStr; - String? password; - int? date; - String? createdAt; - String? updatedAt; UserInfo( {this.id, @@ -346,6 +337,15 @@ class UserInfo { createdAt = json['created_at']; updatedAt = json['updated_at']; } + int? id; + String? clientId; + String? username; + String? accountName; + String? businessQueryStr; + String? password; + int? date; + String? createdAt; + String? updatedAt; Map toJson() { final Map data = {}; diff --git a/lib/main/lockDetail/messageWarn/lockUser/lockUser_logic.dart b/lib/main/lockDetail/messageWarn/lockUser/lockUser_logic.dart index 54060f5d..5fd49b83 100755 --- a/lib/main/lockDetail/messageWarn/lockUser/lockUser_logic.dart +++ b/lib/main/lockDetail/messageWarn/lockUser/lockUser_logic.dart @@ -1,8 +1,8 @@ + import 'package:get/get.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_state.dart'; -import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/dateTool.dart'; @@ -160,62 +160,62 @@ class LockUserLogic extends BaseGetXController { case 3: //限期 3 在开始和结束时间内有效,必需在开始时间24小时内使用一次,否则将失效 useDateStr = - '${startDateStr.toLocal().toString().substring(0, 16)} - ${endDateStr.toLocal().toString().substring(0, 16)} ${"限时".tr} ${itemData.isCustom! == 1 ? "自定义".tr : ""}'; + '${startDateStr.toLocal().toString().substring(0, 16)} - ${endDateStr.toLocal().toString().substring(0, 16)} ${'限时'.tr} ${itemData.isCustom! == 1 ? "自定义".tr : ""}'; break; case 4: //删除 4 在锁上使用后会删除之前在锁上使用过的密码 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"清空码".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'清空码'.tr}'; break; case 5: //周未循环 5 在周未开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周末".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周末'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 6: //每日循环 6 每天开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"每日".tr}$starHour:00-$endHour:00 ${"循环"}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'每日'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 7: //工作日循环 7 工作日开始和结束时间指定的时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"工作日".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'工作日'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 8: //周一循环 8 每周一开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周一".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周一'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 9: //周二循环 9 每周二开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周二".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周二'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 10: //周三循环 10 每周三开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周三".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周三'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 11: //周四循环 11 每周四开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周四".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周四'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 12: //周五循环 12 每周五开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周五".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周五'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 13: //周六循环 13 每周六开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周六".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周六'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 14: //周天循环 14 每周日开始和结束时间指定时间段内有效 useDateStr = - '${endDateStr.toLocal().toString().substring(0, 16)} ${"周日".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + '${endDateStr.toLocal().toString().substring(0, 16)} ${'周日'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; default: diff --git a/lib/main/lockDetail/messageWarn/lockUser/lockUser_page.dart b/lib/main/lockDetail/messageWarn/lockUser/lockUser_page.dart index b86eaa89..285b6459 100755 --- a/lib/main/lockDetail/messageWarn/lockUser/lockUser_page.dart +++ b/lib/main/lockDetail/messageWarn/lockUser/lockUser_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_logic.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_logic.dart index a8060112..aa4c2c47 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_logic.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_logic.dart @@ -1,5 +1,6 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_state.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/notificationMode/notificationMode_data.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -10,7 +11,7 @@ class CoerceFingerprintLogic extends BaseGetXController { //添加胁迫开门通知 void addLockNoticeSetting() async { - var entity = await ApiRepository.to.addLockNoticeSetting( + final MsgNotificationEntity entity = await ApiRepository.to.addLockNoticeSetting( lockId: state.getLockId.value, noticeType: 20, settingValue: { @@ -30,8 +31,8 @@ class CoerceFingerprintLogic extends BaseGetXController { } //删除开门通知 - void deleteLockNoticeSetting() async { - var entity = await ApiRepository.to.deleteLockNoticeSettingAccount( + Future deleteLockNoticeSetting() async { + final entity = await ApiRepository.to.deleteLockNoticeSettingAccount( lockNoticeSettingAccountId: state.familyData.value.id!, ); if (entity.errorCode!.codeIsSuccessful) { @@ -42,14 +43,14 @@ class CoerceFingerprintLogic extends BaseGetXController { //获取到家人信息的请求数组 List getEmailAndSMSAccountList(bool isEmail) { - List list = []; + final List list = []; List accountList = []; isEmail ? accountList = state.emailReceiverList.value : accountList = state.phoneReceiverList.value; for (int i = 0; i < accountList.length; i++) { - MsgNoticeModeData item = accountList[i]; - Map map = {}; + final MsgNoticeModeData item = accountList[i]; + final Map map = {}; map['countryCode'] = isEmail ? 0 : item.countryCode; map['account'] = isEmail ? item.receiveEmail : item.receivePhone; list.add(map); @@ -61,9 +62,9 @@ class CoerceFingerprintLogic extends BaseGetXController { String emailListStr = ''; if (val['emailReceiverList'] != null) { state.emailReceiverList.value = val['emailReceiverList']; - List emailReceiverList = state.emailReceiverList.value; + final List emailReceiverList = state.emailReceiverList.value; for (int i = 0; i < emailReceiverList.length; i++) { - MsgNoticeModeData item = emailReceiverList[i]; + final MsgNoticeModeData item = emailReceiverList[i]; emailListStr += item.receiveEmail; // 检查是否为最后一个元素 if (i < emailReceiverList.length - 1) { @@ -79,9 +80,9 @@ class CoerceFingerprintLogic extends BaseGetXController { if (val['phoneReceiverList'] != null) { state.phoneReceiverList.value = val['phoneReceiverList']; - List phoneReceiverList = state.phoneReceiverList.value; + final List phoneReceiverList = state.phoneReceiverList.value; for (int i = 0; i < phoneReceiverList.length; i++) { - MsgNoticeModeData item = phoneReceiverList[i]; + final MsgNoticeModeData item = phoneReceiverList[i]; phoneListStr += item.receivePhone; // 检查是否为最后一个元素 if (i < phoneReceiverList.length - 1) { @@ -105,8 +106,8 @@ class CoerceFingerprintLogic extends BaseGetXController { //根据列表返回值得到邮箱、手机列表 Map> getAccountsMap() { - List mailAccounts = []; - List smsAccounts = []; + final List mailAccounts = []; + final List smsAccounts = []; if (state.familyData.value.settingValue != null) { for (NoticeWay item @@ -114,7 +115,7 @@ class CoerceFingerprintLogic extends BaseGetXController { if (item.type == 'mail' && item.accounts != null) { for (Accounts account in item.accounts!) { if (account.account != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receiveEmail = account.account!; mailAccounts.add(msgNoticeModeData); } @@ -122,7 +123,7 @@ class CoerceFingerprintLogic extends BaseGetXController { } else if (item.type == 'sms' && item.accounts != null) { for (Accounts account in item.accounts!) { if (account.account != null && account.countryCode != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receivePhone = account.account!; msgNoticeModeData.countryCode = account.countryCode!; smsAccounts.add(msgNoticeModeData); diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_page.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_page.dart index 7f2918c0..a720af2c 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_page.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_page.dart @@ -1,10 +1,13 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_logic.dart'; -import 'package:star_lock/tools/showCupertinoAlertView.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_state.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; import 'package:star_lock/tools/commonItem.dart'; +import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/submitBtn.dart'; @@ -19,8 +22,8 @@ class CoerceFingerprintPage extends StatefulWidget { } class _CoerceFingerprintPageState extends State { - final logic = Get.put(CoerceFingerprintLogic()); - final state = Get.find().state; + final CoerceFingerprintLogic logic = Get.put(CoerceFingerprintLogic()); + final CoerceFingerprintState state = Get.find().state; @override Widget build(BuildContext context) { @@ -33,7 +36,7 @@ class _CoerceFingerprintPageState extends State { body: Container( padding: EdgeInsets.all(30.w), child: Column( - children: [ + children: [ Obx(() => CommonItem( leftTitel: '胁迫指纹'.tr, rightTitle: state.isDetail.value == true @@ -44,7 +47,7 @@ class _CoerceFingerprintPageState extends State { action: () { //锁用户 Get.toNamed(Routers.coerceFingerprintListPage, - arguments: {'lockId': state.getLockId.value}) + arguments: {'lockId': state.getLockId.value}) ?.then((val) { if (val != null) { state.fingerprintData.value = val; @@ -59,11 +62,11 @@ class _CoerceFingerprintPageState extends State { color: Colors.white, margin: EdgeInsets.only(bottom: 10.h), child: Column( - children: [ + children: [ GestureDetector( onTap: () { Get.toNamed(Routers.notificationModePage, - arguments: {'familyData': state.familyData.value}) + arguments: {'familyData': state.familyData.value}) ?.then((val) { if (val != null) { state.emailListStr.value = logic.getEmailListStr(val); @@ -75,10 +78,10 @@ class _CoerceFingerprintPageState extends State { color: Colors.white, margin: EdgeInsets.only(bottom: 10.h), child: Column( - children: [ + children: [ CommonItem( leftTitel: '提醒方式'.tr, - rightTitle: "", + rightTitle: '', isHaveLine: false, isHaveRightWidget: false, isHaveDirection: true, @@ -110,7 +113,7 @@ class _CoerceFingerprintPageState extends State { : logic.checkBtnDisable(), isDelete: state.isDetail.value, onClick: () async { - var isVip = await Storage.getBool(saveIsVip); + bool? isVip = await Storage.getBool(saveIsVip); if (isVip == true) { if (state.isDetail.value) { logic.deleteLockNoticeSetting(); @@ -141,7 +144,7 @@ class _CoerceFingerprintPageState extends State { borderRadius: BorderRadius.circular(6.0.w), ), child: Row( - children: [ + children: [ Text( notifyTitle, style: TextStyle(color: Colors.black, fontSize: 20.sp), diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_state.dart index 97ca0573..eb468a02 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprint/coerceFingerprint_state.dart @@ -3,17 +3,6 @@ import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpen import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; class CoerceFingerprintState { - var pageNum = 1.obs; //请求页码 - final pageSize = 20.obs; //请求每页数据条数 - final itemDataList = [].obs; - var getLockId = 0.obs; - var fingerprintData = CoerceFingerprintItemData().obs; - var emailReceiverList = [].obs; - var phoneReceiverList = [].obs; - var emailListStr = ''.obs; - var phontListStr = ''.obs; - var isDetail = false.obs; - var familyData = DataList().obs; CoerceFingerprintState() { Map map = Get.arguments; @@ -29,4 +18,15 @@ class CoerceFingerprintState { familyData.value = map['itemData']; } } + RxInt pageNum = 1.obs; //请求页码 + final RxInt pageSize = 20.obs; //请求每页数据条数 + final RxList itemDataList = [].obs; + RxInt getLockId = 0.obs; + Rx fingerprintData = CoerceFingerprintItemData().obs; + RxList emailReceiverList = [].obs; + RxList phoneReceiverList = [].obs; + RxString emailListStr = ''.obs; + RxString phontListStr = ''.obs; + RxBool isDetail = false.obs; + Rx familyData = DataList().obs; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_state.dart index 97c6c736..d8bfa05a 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceFingerprintList/coerceFingerprintList_state.dart @@ -1,13 +1,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -class CoerceFingerprintListState { - TextEditingController searchController = TextEditingController(); //邮箱/手机号输入框 - var isSelectIndex = 0.obs; - var getLockId = 0.obs; - var fingerprintList = [].obs; //指纹列表 - var pageNum = 1.obs; //请求页码 - var pageSize = 20.obs; //请求每页数据条数 +class CoerceFingerprintListState { //请求每页数据条数 CoerceFingerprintListState() { Map map = Get.arguments; @@ -15,4 +9,10 @@ class CoerceFingerprintListState { getLockId.value = map['lockId']; } } + TextEditingController searchController = TextEditingController(); //邮箱/手机号输入框 + RxInt isSelectIndex = 0.obs; + RxInt getLockId = 0.obs; + RxList fingerprintList = [].obs; //指纹列表 + RxInt pageNum = 1.obs; //请求页码 + RxInt pageSize = 20.obs; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_logic.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_logic.dart index 9302a21a..e646ffb2 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_logic.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_logic.dart @@ -1,3 +1,4 @@ +import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -24,15 +25,15 @@ class CoerceOpenDoorLogic extends BaseGetXController { int keyType = itemData.settingValue!.openDoorType!; switch (keyType) { case 1: - return '电子钥匙'; + return '电子钥匙'.tr; case 2: - return '密码'; + return '密码'.tr; case 3: - return '指纹'; + return '指纹'.tr; case 4: - return '卡'; + return '卡'.tr; case 5: - return '人脸'; + return '人脸'.tr; default: return ''; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_page.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_page.dart index a7f88a61..33d0eeeb 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_page.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_state.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; import 'package:star_lock/tools/noData.dart'; @@ -18,8 +19,8 @@ class CoerceOpenDoorPage extends StatefulWidget { } class _CoerceOpenDoorPageState extends State { - final logic = Get.put(CoerceOpenDoorLogic()); - final state = Get.find().state; + final CoerceOpenDoorLogic logic = Get.put(CoerceOpenDoorLogic()); + final CoerceOpenDoorState state = Get.find().state; @override void initState() { @@ -38,7 +39,7 @@ class _CoerceOpenDoorPageState extends State { backgroundColor: AppColors.mainColor, ), body: Column( - children: [ + children: [ _topTipsWidget(), SizedBox( height: 20.h, @@ -50,7 +51,7 @@ class _CoerceOpenDoorPageState extends State { AddBottomWhiteBtn( btnName: '胁迫指纹'.tr, onClick: () { - Get.toNamed(Routers.coerceFingerprintPage, arguments: { + Get.toNamed(Routers.coerceFingerprintPage, arguments: { 'lockId': state.getLockId.value, 'isDetail': false, })?.then((value) { @@ -81,7 +82,7 @@ class _CoerceOpenDoorPageState extends State { return ListView.separated( shrinkWrap: true, itemCount: state.itemDataList.length, - itemBuilder: (c, index) { + itemBuilder: (BuildContext c, int index) { return _electronicKeyItem(state.itemDataList.value[index]); }, separatorBuilder: (BuildContext context, int index) { @@ -96,7 +97,7 @@ class _CoerceOpenDoorPageState extends State { Widget _electronicKeyItem(DataList itemData) { return GestureDetector( onTap: () { - Get.toNamed(Routers.coerceFingerprintPage, arguments: { + Get.toNamed(Routers.coerceFingerprintPage, arguments: { 'itemData': itemData, 'lockId': state.getLockId.value, 'isDetail': true @@ -110,7 +111,7 @@ class _CoerceOpenDoorPageState extends State { color: Colors.white, height: 90.h, child: Row( - children: [ + children: [ SizedBox( width: 30.w, ), @@ -125,9 +126,9 @@ class _CoerceOpenDoorPageState extends State { Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, - children: [ + children: [ Row( - children: [ + children: [ Text( itemData.settingValue!.remark ?? '', style: TextStyle( @@ -143,7 +144,7 @@ class _CoerceOpenDoorPageState extends State { SizedBox(height: 10.h), Row( mainAxisAlignment: MainAxisAlignment.start, - children: [ + children: [ Text( logic.getKeyTypeStr(itemData), style: TextStyle( diff --git a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_state.dart index 0f505db1..998f4f47 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/coerceOpenDoor/coerceOpenDoor/coerceOpenDoor_state.dart @@ -1,10 +1,6 @@ import 'package:get/get.dart'; class CoerceOpenDoorState { - var pageNum = 1.obs; //请求页码 - final pageSize = 20.obs; //请求每页数据条数 - final itemDataList = [].obs; - var getLockId = 0.obs; CoerceOpenDoorState() { Map map = Get.arguments; @@ -12,4 +8,8 @@ class CoerceOpenDoorState { getLockId.value = map['lockId']; } } + RxInt pageNum = 1.obs; //请求页码 + final RxInt pageSize = 20.obs; //请求每页数据条数 + final RxList itemDataList = [].obs; + RxInt getLockId = 0.obs; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_logic.dart b/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_logic.dart index aa76671c..6b872136 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_logic.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_logic.dart @@ -1,3 +1,4 @@ + import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/notificationMode/notificationMode_data.dart'; @@ -9,13 +10,13 @@ import 'lowBatteryReminder_state.dart'; class LowBatteryReminderLogic extends BaseGetXController { LowBatteryReminderState state = LowBatteryReminderState(); - void lockNoticeSettingAccountList() async { - var entity = await ApiRepository.to.updatelowElecNoticeStateSetting( + Future lockNoticeSettingAccountList() async { + final OpenDoorNotifyEntity entity = await ApiRepository.to.updatelowElecNoticeStateSetting( lockId: state.getLockId.value, lowElecNoticeState: state.isLowBatteryNotify.value == true ? 1 : 0, lowElecNoticeWayList: [ - {'type': 'mail', 'accounts': getEmailAndSMSAccountList(true)}, - {'type': 'sms', 'accounts': getEmailAndSMSAccountList(false)} + {'type': 'mail', 'accounts': getEmailAndSMSAccountList(true)}, + {'type': 'sms', 'accounts': getEmailAndSMSAccountList(false)} ]); if (entity.errorCode!.codeIsSuccessful) { showToast('设置成功'.tr); @@ -25,14 +26,14 @@ class LowBatteryReminderLogic extends BaseGetXController { //获取到家人信息的请求数组 List getEmailAndSMSAccountList(bool isEmail) { - List list = []; + final List list = []; List accountList = []; isEmail ? accountList = state.emailReceiverList.value : accountList = state.phoneReceiverList.value; for (int i = 0; i < accountList.length; i++) { - MsgNoticeModeData item = accountList[i]; - Map map = {}; + final MsgNoticeModeData item = accountList[i]; + final Map map = {}; map['countryCode'] = isEmail ? 0 : item.countryCode; map['account'] = isEmail ? item.receiveEmail : item.receivePhone; list.add(map); @@ -44,9 +45,9 @@ class LowBatteryReminderLogic extends BaseGetXController { String emailListStr = ''; if (val['emailReceiverList'] != null) { state.emailReceiverList.value = val['emailReceiverList']; - List emailReceiverList = state.emailReceiverList.value; + final List emailReceiverList = state.emailReceiverList.value; for (int i = 0; i < emailReceiverList.length; i++) { - MsgNoticeModeData item = emailReceiverList[i]; + final MsgNoticeModeData item = emailReceiverList[i]; emailListStr += item.receiveEmail; // 检查是否为最后一个元素 if (i < emailReceiverList.length - 1) { @@ -62,9 +63,9 @@ class LowBatteryReminderLogic extends BaseGetXController { if (val['phoneReceiverList'] != null) { state.phoneReceiverList.value = val['phoneReceiverList']; - List phoneReceiverList = state.phoneReceiverList.value; + final List phoneReceiverList = state.phoneReceiverList.value; for (int i = 0; i < phoneReceiverList.length; i++) { - MsgNoticeModeData item = phoneReceiverList[i]; + final MsgNoticeModeData item = phoneReceiverList[i]; phoneListStr += item.receivePhone; // 检查是否为最后一个元素 if (i < phoneReceiverList.length - 1) { @@ -77,23 +78,23 @@ class LowBatteryReminderLogic extends BaseGetXController { //根据列表返回值得到邮箱、手机列表 Map> getAccountsMap() { - List mailAccounts = []; - List smsAccounts = []; + final List mailAccounts = []; + final List smsAccounts = []; if (state.msgNoticeInfo.value.lowElecNoticeWayList != null) { - for (NoticeWay item in state.msgNoticeInfo.value.lowElecNoticeWayList!) { + for (final NoticeWay item in state.msgNoticeInfo.value.lowElecNoticeWayList!) { if (item.type == 'mail' && item.accounts != null) { - for (Accounts account in item.accounts!) { + for (final Accounts account in item.accounts!) { if (account.account != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receiveEmail = account.account!; mailAccounts.add(msgNoticeModeData); } } } else if (item.type == 'sms' && item.accounts != null) { - for (Accounts account in item.accounts!) { + for (final Accounts account in item.accounts!) { if (account.account != null && account.countryCode != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receivePhone = account.account!; msgNoticeModeData.countryCode = account.countryCode!; smsAccounts.add(msgNoticeModeData); @@ -103,7 +104,7 @@ class LowBatteryReminderLogic extends BaseGetXController { } } - return { + return >{ 'emailReceiverList': mailAccounts, 'phoneReceiverList': smsAccounts, }; diff --git a/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_page.dart b/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_page.dart index fad9a86d..49af205f 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_page.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_page.dart @@ -1,10 +1,13 @@ + 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/appRouters.dart'; -import 'package:star_lock/tools/showCupertinoAlertView.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_state.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; import 'package:star_lock/tools/commonItem.dart'; +import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/submitBtn.dart'; @@ -20,8 +23,8 @@ class LowBatteryReminderPage extends StatefulWidget { } class _LowBatteryReminderPageState extends State { - final logic = Get.put(LowBatteryReminderLogic()); - final state = Get.find().state; + final LowBatteryReminderLogic logic = Get.put(LowBatteryReminderLogic()); + final LowBatteryReminderState state = Get.find().state; @override Widget build(BuildContext context) { @@ -35,14 +38,13 @@ class _LowBatteryReminderPageState extends State { child: Padding( padding: EdgeInsets.all(30.w), child: Column( - children: [ + children: [ Row( mainAxisAlignment: MainAxisAlignment.start, - children: [ + children: [ Expanded( child: Text( - "打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。" - .tr, + '打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。'.tr, style: TextStyle( fontSize: 20.sp, color: AppColors.darkGrayTextColor, @@ -65,13 +67,13 @@ class _LowBatteryReminderPageState extends State { Visibility( visible: state.isLowBatteryNotify.value, child: Column( - children: [ + children: [ SizedBox( height: 20.h, ), GestureDetector( onTap: () { - Get.toNamed(Routers.notificationModePage, arguments: { + Get.toNamed(Routers.notificationModePage, arguments: { 'msgNoticeInfo': state.msgNoticeInfo.value, })?.then((val) { if (val != null) { @@ -86,10 +88,10 @@ class _LowBatteryReminderPageState extends State { color: Colors.white, margin: EdgeInsets.only(bottom: 10.h), child: Column( - children: [ + children: [ CommonItem( leftTitel: '提醒方式'.tr, - rightTitle: "", + rightTitle: '', isHaveLine: false, isHaveRightWidget: false, isHaveDirection: true, @@ -116,7 +118,7 @@ class _LowBatteryReminderPageState extends State { SubmitBtn( btnName: '保存'.tr, onClick: () async { - var isVip = await Storage.getBool(saveIsVip); + bool? isVip = await Storage.getBool(saveIsVip); if (isVip == false) { ShowCupertinoAlertView().advancedFeatureAlert(); } else { @@ -144,7 +146,7 @@ class _LowBatteryReminderPageState extends State { borderRadius: BorderRadius.circular(6.0.w), ), child: Row( - children: [ + children: [ Text( notifyTitle, style: TextStyle(color: Colors.black, fontSize: 20.sp), @@ -173,7 +175,7 @@ class _LowBatteryReminderPageState extends State { trackColor: CupertinoColors.systemGrey5, thumbColor: CupertinoColors.white, value: state.isLowBatteryNotify.value, - onChanged: (value) { + onChanged: (bool value) { setState(() { state.isLowBatteryNotify.value = value; }); diff --git a/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_state.dart index 6554ff81..ed6d3af5 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/lowBatteryReminder/lowBatteryReminder_state.dart @@ -1,18 +1,9 @@ + import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; class LowBatteryReminderState { - var isLowBatteryNotify = false.obs; // 是否低电量提醒 - - var getLockId = 0.obs; - var lockUserKeys = LockUserListKeys().obs; - var emailReceiverList = [].obs; - var phoneReceiverList = [].obs; - var emailListStr = ''.obs; - var phontListStr = ''.obs; - - var msgNoticeInfo = MsgNoticeData().obs; LowBatteryReminderState() { Map map = Get.arguments; @@ -22,8 +13,21 @@ class LowBatteryReminderState { if (map['lockSetInfoData'] != null) { msgNoticeInfo.value = map['lockSetInfoData']; - isLowBatteryNotify.value = - msgNoticeInfo.value.lowElecNoticeState == 1 ? true : false; + if (msgNoticeInfo.value.lowElecNoticeState == 1) { + isLowBatteryNotify.value = true; + } else { + isLowBatteryNotify.value = false; + } } } + RxBool isLowBatteryNotify = false.obs; // 是否低电量提醒 + + RxInt getLockId = 0.obs; + Rx lockUserKeys = LockUserListKeys().obs; + RxList emailReceiverList = [].obs; + RxList phoneReceiverList = [].obs; + RxString emailListStr = ''.obs; + RxString phontListStr = ''.obs; + + Rx msgNoticeInfo = MsgNoticeData().obs; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_logic.dart b/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_logic.dart index 96ad0e36..b849808e 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_logic.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_logic.dart @@ -7,32 +7,53 @@ class MsgNotificationLogic extends BaseGetXController { final MsgNotificationState state = MsgNotificationState(); // 获取锁消息设置 - void getLockNoticeSetting() async { - MsgNotificationEntity entity = await ApiRepository.to.getLockNoticeSetting( + Future getLockNoticeSetting() async { + final MsgNotificationEntity entity = await ApiRepository.to.getLockNoticeSetting( lockId: state.getLockId.value, ); if (entity.errorCode!.codeIsSuccessful) { state.msgNoticeInfo.value = entity.data!; state.nDaysNotOpenDoor.value = entity.data!.dayNotOpenDoorState! == 0 ? state.notifyDisable - : state.notifyEnable; //N天未开门 - state.isDoorNotShut.value = - entity.data!.doorNotCloseState! == 0 ? false : true; //门未关好 - state.isTamperAlarm.value = - entity.data!.tamperAlarmState! == 0 ? false : true; //防拆报警 + : state.notifyEnable; + + //N天未开门 + if (entity.data!.doorNotCloseState! == 0) { + state.isDoorNotShut.value = false; + } else { + state.isDoorNotShut.value = true; + } + + //门未关好 + if (entity.data!.tamperAlarmState! == 0) { + state.isTamperAlarm.value = false; + } else { + state.isTamperAlarm.value = true; + } + + //防拆报警 state.isLowBattery.value = entity.data!.lowElecNoticeState! == 0 ? state.notifyDisable : state.notifyEnable; //低电量提醒 - state.isSomeoneRing.value = - entity.data!.doorbellNoticeState! == 0 ? false : true; //有人按门铃 - state.isSomeoneAppeared.value = - entity.data!.someoneAtDoorNoticeState! == 0 ? false : true; //有人出现在门口 + + if (entity.data!.doorbellNoticeState! == 0) { + state.isSomeoneRing.value = false; + } else { + state.isSomeoneRing.value = true; + } + + //有人按门铃 + if (entity.data!.someoneAtDoorNoticeState! == 0) { + state.isSomeoneAppeared.value = false; + } else { + state.isSomeoneAppeared.value = true; + } //有人出现在门口 } } //设置门未关好 - void updateDoorNotCloseSetting() async { - MsgNotificationEntity entity = + Future updateDoorNotCloseSetting() async { + final MsgNotificationEntity entity = await ApiRepository.to.updateDoorNotCloseSetting( lockId: state.getLockId.value, doorNotCloseState: state.isDoorNotShut.value ? 1 : 0, @@ -43,8 +64,8 @@ class MsgNotificationLogic extends BaseGetXController { } //有人按门铃 - void updateDoorbellNoticeStateSetting() async { - MsgNotificationEntity entity = + Future updateDoorbellNoticeStateSetting() async { + final MsgNotificationEntity entity = await ApiRepository.to.updateDoorbellNoticeStateSetting( lockId: state.getLockId.value, doorbellNoticeState: state.isSomeoneRing.value ? 1 : 0, @@ -55,8 +76,8 @@ class MsgNotificationLogic extends BaseGetXController { } //有人出现在门口 - void updateSomeoneAtDoorNoticeStateSetting() async { - MsgNotificationEntity entity = + Future updateSomeoneAtDoorNoticeStateSetting() async { + final MsgNotificationEntity entity = await ApiRepository.to.updateSomeoneAtDoorNoticeStateSetting( lockId: state.getLockId.value, someoneAtDoorNoticeState: state.isSomeoneAppeared.value ? 1 : 0, @@ -67,8 +88,8 @@ class MsgNotificationLogic extends BaseGetXController { } //设置防拆报警通知 - void updateTamperAlarmStateSetting() async { - MsgNotificationEntity entity = + Future updateTamperAlarmStateSetting() async { + final MsgNotificationEntity entity = await ApiRepository.to.updateTamperAlarmStateSetting( lockId: state.getLockId.value, tamperAlarmState: state.isTamperAlarm.value ? 1 : 0, diff --git a/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_page.dart b/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_page.dart index d6251fa4..2fa56dd0 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_page.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_page.dart @@ -1,9 +1,11 @@ + 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/appRouters.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_logic.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_state.dart'; import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/commonItem.dart'; @@ -17,23 +19,21 @@ class MsgNotificationPage extends StatefulWidget { } class _MsgNotificationPageState extends State { - final logic = Get.put(MsgNotificationLogic()); - final state = Get.find().state; + final MsgNotificationLogic logic = Get.put(MsgNotificationLogic()); + final MsgNotificationState state = Get.find().state; //高亮样式 - final TextStyle titleStyle = TextStyle( - color: Colors.black, fontSize: 24.sp, fontWeight: FontWeight.w500); + final TextStyle titleStyle = TextStyle(color: Colors.black, fontSize: 24.sp, fontWeight: FontWeight.w500); //默认样式 - final TextStyle subTipsStyle = - TextStyle(color: AppColors.placeholderTextColor, fontSize: 22.sp); + final TextStyle subTipsStyle = TextStyle(color: AppColors.placeholderTextColor, fontSize: 22.sp); - late InlineSpan tipsPreviewSpan = TextSpan(children: [ - TextSpan(text: '${'添加和使用面容开锁时:'.tr}\n', style: titleStyle), - TextSpan( - text: - '\n1、请尽量保持单人在门前操作;\n2、请站立在门锁正前方约0.5~0.8米,面向门锁;\n3、请保持脸部无遮挡,露出五官;\n4、面容识别异常时,可触摸数字键盘任意按键,手动重启人脸识别。', - style: subTipsStyle), - ]); + // late InlineSpan tipsPreviewSpan = TextSpan(children: [ + // TextSpan(text: '${'添加和使用面容开锁时:'.tr}\n', style: titleStyle), + // TextSpan( + // text: + // '\n1、请尽量保持单人在门前操作;\n2、请站立在门锁正前方约0.5~0.8米,面向门锁;\n3、请保持脸部无遮挡,露出五官;\n4、面容识别异常时,可触摸数字键盘任意按键,手动重启人脸识别。', + // style: subTipsStyle), + // ]); @override initState() { @@ -56,14 +56,14 @@ class _MsgNotificationPageState extends State { Widget _buildMainItem() { return Column( - children: [ + children: [ CommonItem( leftTitel: '开门通知'.tr, - rightTitle: "", + rightTitle: '', isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed(Routers.openDoorNotifyPage, arguments: { + Get.toNamed(Routers.openDoorNotifyPage, arguments: { 'lockSetInfoData': state.msgNoticeInfo.value, 'lockId': state.getLockId.value }); @@ -75,7 +75,7 @@ class _MsgNotificationPageState extends State { isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed(Routers.nDaysUnopenedPage, arguments: { + Get.toNamed(Routers.nDaysUnopenedPage, arguments: { 'lockSetInfoData': state.msgNoticeInfo.value, 'lockId': state.getLockId.value })?.then((value) { @@ -87,7 +87,7 @@ class _MsgNotificationPageState extends State { )), Obx(() => CommonItem( leftTitel: '门未关好'.tr, - rightTitle: "", + rightTitle: '', isHaveLine: true, isHaveRightWidget: true, rightWidget: @@ -108,7 +108,7 @@ class _MsgNotificationPageState extends State { isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed(Routers.lowBatteryReminderPage, arguments: { + Get.toNamed(Routers.lowBatteryReminderPage, arguments: { 'lockSetInfoData': state.msgNoticeInfo.value, 'lockId': state.getLockId.value })?.then((value) { @@ -120,11 +120,11 @@ class _MsgNotificationPageState extends State { )), CommonItem( leftTitel: '胁迫开门'.tr, - rightTitle: "", + rightTitle: '', isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed(Routers.coerceOpenDoorPage, arguments: { + Get.toNamed(Routers.coerceOpenDoorPage, arguments: { 'lockSetInfoData': state.msgNoticeInfo.value, 'lockId': state.getLockId.value }); @@ -147,7 +147,7 @@ class _MsgNotificationPageState extends State { visible: state.isSupportCatEye.value, child: CommonItem( leftTitel: '有人出现在门口'.tr, - rightTitle: "", + rightTitle: '', isHaveLine: true, isHaveRightWidget: true, rightWidget: @@ -156,7 +156,7 @@ class _MsgNotificationPageState extends State { height: 60.h, ), Text( - '此模块功能需要锁联网后设置方可生效', + '此模块功能需要锁联网后设置方可生效'.tr, style: TextStyle(fontSize: 20.sp), ) ], @@ -195,7 +195,7 @@ class _MsgNotificationPageState extends State { trackColor: CupertinoColors.systemGrey5, thumbColor: CupertinoColors.white, value: isCheck, - onChanged: (value) { + onChanged: (bool value) { switch (getIndex) { //离家开门 case 1: diff --git a/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_state.dart index 1ba082ec..61b09b52 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_state.dart @@ -1,21 +1,8 @@ + import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; class MsgNotificationState { - var msgNoticeInfo = MsgNoticeData().obs; - var getLockId = 0.obs; - var isCheck = false.obs; - var nDaysNotOpenDoor = '已启用'.obs; //N天未开门 - var isTamperAlarm = false.obs; //防拆报警 - var isLowBattery = '已启用'.obs; //低电量提醒 - var isLeaveHomeOpenDoor = false.obs; //离家开门 - var isDoorNotShut = false.obs; //门未关好 - var isSomeoneRing = false.obs; //有人按门铃 - var isSomeoneAppeared = false.obs; //有人出现在门口 - final String notifyEnable = '已启用'.tr; - final String notifyDisable = '未启用'.tr; - final String settingSuccess = '设置成功'.tr; - var isSupportCatEye = false.obs; MsgNotificationState() { Map map = Get.arguments; @@ -29,4 +16,18 @@ class MsgNotificationState { nDaysNotOpenDoor.value = notifyEnable; isLowBattery.value = notifyEnable; } + Rx msgNoticeInfo = MsgNoticeData().obs; + RxInt getLockId = 0.obs; + RxBool isCheck = false.obs; + RxString nDaysNotOpenDoor = '已启用'.obs; //N天未开门 + RxBool isTamperAlarm = false.obs; //防拆报警 + RxString isLowBattery = '已启用'.obs; //低电量提醒 + RxBool isLeaveHomeOpenDoor = false.obs; //离家开门 + RxBool isDoorNotShut = false.obs; //门未关好 + RxBool isSomeoneRing = false.obs; //有人按门铃 + RxBool isSomeoneAppeared = false.obs; //有人出现在门口 + final String notifyEnable = '已启用'.tr; + final String notifyDisable = '未启用'.tr; + final String settingSuccess = '设置成功'.tr; + RxBool isSupportCatEye = false.obs; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_page.dart b/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_page.dart index 1aed9f7c..cd1314d3 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_page.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_page.dart @@ -1,9 +1,9 @@ + 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/appRouters.dart'; -import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_state.dart'; import 'package:star_lock/tools/commonItem.dart'; @@ -89,7 +89,7 @@ class _NDaysUnopenedPageState extends State { children: [ CommonItem( leftTitel: '门未开时间'.tr, - rightTitle: '${state.unOpenDoorTime.value}天', + rightTitle: '${state.unOpenDoorTime.value}' + '天'.tr, isHaveLine: true, isHaveRightWidget: false, isHaveDirection: true, diff --git a/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_state.dart index be246bdf..86fd425c 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/nDaysUnopened/nDaysUnopened_state.dart @@ -3,35 +3,6 @@ import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_entity.d import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/msgNotification/msgNotification_entity.dart'; class NDaysUnopenedState { - final List unopenDoorTimeList = [ - '1天', - '2天', - '3天', - '4天', - '5天', - '6天', - '7天', - '8天', - '9天', - '10天', - '11天', - '12天', - '13天', - '14天', - '15天', - ]; - - var isUnOpenNotice = false.obs; // 是否N天未开门提醒 - var unOpenDoorTime = 3.obs; // 未开门时间 - - var getLockId = 0.obs; - var lockUserKeys = LockUserListKeys().obs; - var emailReceiverList = [].obs; - var phoneReceiverList = [].obs; - var emailListStr = ''.obs; - var phontListStr = ''.obs; - - var msgNoticeInfo = MsgNoticeData().obs; NDaysUnopenedState() { Map map = Get.arguments; @@ -41,11 +12,43 @@ class NDaysUnopenedState { if (map['lockSetInfoData'] != null) { msgNoticeInfo.value = map['lockSetInfoData']; - isUnOpenNotice.value = - msgNoticeInfo.value.dayNotOpenDoorState == 1 ? true : false; + if (msgNoticeInfo.value.dayNotOpenDoorState == 1) { + isUnOpenNotice.value = true; + } else { + isUnOpenNotice.value = false; + } if (msgNoticeInfo.value.dayNotOpenDoorValue != 0) { unOpenDoorTime.value = msgNoticeInfo.value.dayNotOpenDoorValue!; } } } + final List unopenDoorTimeList = [ + '1' + '天'.tr, + '2' + '天'.tr, + '3' + '天'.tr, + '4' + '天'.tr, + '5' + '天'.tr, + '6' + '天'.tr, + '7' + '天'.tr, + '8' + '天'.tr, + '9' + '天'.tr, + '10' + '天'.tr, + '11' + '天'.tr, + '12' + '天'.tr, + '13' + '天'.tr, + '14' + '天'.tr, + '15' + '天'.tr, + ]; + + RxBool isUnOpenNotice = false.obs; // 是否N天未开门提醒 + RxInt unOpenDoorTime = 3.obs; // 未开门时间 + + RxInt getLockId = 0.obs; + Rx lockUserKeys = LockUserListKeys().obs; + RxList emailReceiverList = [].obs; + RxList phoneReceiverList = [].obs; + RxString emailListStr = ''.obs; + RxString phontListStr = ''.obs; + + Rx msgNoticeInfo = MsgNoticeData().obs; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_logic.dart b/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_logic.dart index 4e194d0b..fd7173ac 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_logic.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_logic.dart @@ -1,3 +1,4 @@ +import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -6,8 +7,8 @@ import 'openDoorNotify_state.dart'; class OpenDoorNotifyLogic extends BaseGetXController { final OpenDoorNotifyState state = OpenDoorNotifyState(); - void lockNoticeSettingAccountList() async { - OpenDoorNotifyEntity entity = + Future lockNoticeSettingAccountList() async { + final OpenDoorNotifyEntity entity = await ApiRepository.to.lockNoticeSettingAccountList( lockId: state.getLockId.value, noticeType: 10, @@ -19,18 +20,18 @@ class OpenDoorNotifyLogic extends BaseGetXController { //当前钥匙类型 1:电子钥匙 2:密码钥匙 3:指纹钥匙 4:卡钥匙 5:人脸钥匙 String getKeyTypeStr(DataList itemData) { - int keyType = itemData.settingValue!.openDoorType!; + final int keyType = itemData.settingValue!.openDoorType!; switch (keyType) { case 1: - return '电子钥匙'; + return '电子钥匙'.tr; case 2: - return '密码'; + return '密码'.tr; case 3: - return '指纹'; + return '指纹'.tr; case 4: - return '卡'; + return '卡'.tr; case 5: - return '人脸'; + return '人脸'.tr; default: return ''; } diff --git a/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_page.dart b/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_page.dart index 33c653c1..41d7c957 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_page.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_page.dart @@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_entity.dart'; +import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_state.dart'; import 'package:star_lock/tools/noData.dart'; import '../../../../../app_settings/app_colors.dart'; @@ -18,8 +19,8 @@ class OpenDoorNotifyPage extends StatefulWidget { } class _OpenDoorNotifyPageState extends State { - final logic = Get.put(OpenDoorNotifyLogic()); - final state = Get.find().state; + final OpenDoorNotifyLogic logic = Get.put(OpenDoorNotifyLogic()); + final OpenDoorNotifyState state = Get.find().state; @override void initState() { @@ -37,7 +38,7 @@ class _OpenDoorNotifyPageState extends State { backgroundColor: AppColors.mainColor, ), body: Column( - children: [ + children: [ _topTipsWidget(), SizedBox(height: 20.h), Expanded( @@ -50,7 +51,7 @@ class _OpenDoorNotifyPageState extends State { AddBottomWhiteBtn( btnName: '添加家人'.tr, onClick: () { - Get.toNamed(Routers.addFamilyPage, arguments: { + Get.toNamed(Routers.addFamilyPage, arguments: { 'lockId': state.getLockId.value, 'isDetail': false, })?.then((value) { @@ -84,7 +85,7 @@ class _OpenDoorNotifyPageState extends State { return ListView.separated( shrinkWrap: true, itemCount: state.openDoorNotifyList.length, - itemBuilder: (c, index) { + itemBuilder: (BuildContext c, int index) { return _electronicKeyItem(state.openDoorNotifyList.value[index]); }, separatorBuilder: (BuildContext context, int index) { @@ -99,7 +100,7 @@ class _OpenDoorNotifyPageState extends State { Widget _electronicKeyItem(DataList itemData) { return GestureDetector( onTap: () { - Get.toNamed(Routers.addFamilyPage, arguments: { + Get.toNamed(Routers.addFamilyPage, arguments: { 'itemData': itemData, 'lockId': state.getLockId.value, 'isDetail': true, @@ -111,7 +112,7 @@ class _OpenDoorNotifyPageState extends State { color: Colors.white, height: 90.h, child: Row( - children: [ + children: [ SizedBox(width: 30.w), Image.asset( 'images/controls_user.png', @@ -123,9 +124,9 @@ class _OpenDoorNotifyPageState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ Row( - children: [ + children: [ Expanded( child: Text( itemData.settingValue!.remark ?? '', @@ -141,7 +142,7 @@ class _OpenDoorNotifyPageState extends State { SizedBox(height: 10.h), Row( mainAxisAlignment: MainAxisAlignment.start, - children: [ + children: [ Text( logic.getKeyTypeStr(itemData), style: TextStyle( diff --git a/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_state.dart b/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_state.dart index 42e880c1..d873f95d 100755 --- a/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_state.dart +++ b/lib/main/lockDetail/messageWarn/msgNotification/openDoorNotify/openDoorNotify_state.dart @@ -1,8 +1,6 @@ import 'package:get/get.dart'; -class OpenDoorNotifyState { - var getLockId = 0.obs; - var openDoorNotifyList = [].obs; //开门通知列表 +class OpenDoorNotifyState { //开门通知列表 OpenDoorNotifyState() { Map map = Get.arguments; @@ -10,4 +8,6 @@ class OpenDoorNotifyState { getLockId.value = map['lockId']; } } + RxInt getLockId = 0.obs; + RxList openDoorNotifyList = [].obs; } diff --git a/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_page.dart b/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_page.dart index aa696fa5..f0dbefd1 100755 --- a/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_page.dart +++ b/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_page.dart @@ -39,7 +39,7 @@ class _NotificationModePageState extends State { haveBack: true, backgroundColor: AppColors.mainColor), body: SingleChildScrollView( - child: Obx(() => _buildMainView()), + child: Obx(_buildMainView), )); } diff --git a/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_state.dart b/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_state.dart index 57c33ebd..3299c2f6 100755 --- a/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_state.dart +++ b/lib/main/lockDetail/messageWarn/notificationMode/notificationMode_state.dart @@ -4,32 +4,25 @@ import 'package:star_lock/main/lockDetail/messageWarn/msgNotification/openDoorNo import 'package:star_lock/main/lockDetail/messageWarn/notificationMode/notificationMode_data.dart'; class NotificationModeState { - var emailReceiverList = [].obs; - var phoneReceiverList = [].obs; - - var countryName = '中国'.obs; - var countryCode = 86.obs; - var familyData = DataList().obs; - var msgNoticeInfo = MsgNoticeData().obs; NotificationModeState() { - Map map = Get.arguments; + final Map map = Get.arguments; if (map['familyData'] != null) { familyData.value = map['familyData']; if (familyData.value.settingValue != null) { - for (NoticeWay item in familyData.value.settingValue!.noticeWayList!) { + for (final NoticeWay item in familyData.value.settingValue!.noticeWayList!) { if (item.type == 'mail' && item.accounts != null) { - for (Accounts account in item.accounts!) { + for (final Accounts account in item.accounts!) { if (account.account != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receiveEmail = account.account!; emailReceiverList.value.add(msgNoticeModeData); } } } else if (item.type == 'sms' && item.accounts != null) { - for (Accounts account in item.accounts!) { + for (final Accounts account in item.accounts!) { if (account.account != null && account.countryCode != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receivePhone = account.account!; msgNoticeModeData.countryCode = account.countryCode!; phoneReceiverList.value.add(msgNoticeModeData); @@ -43,20 +36,20 @@ class NotificationModeState { if (map['msgNoticeInfo'] != null) { msgNoticeInfo.value = map['msgNoticeInfo']; if (msgNoticeInfo.value.dayNotOpenDoorNoticeWayList != null) { - for (NoticeWay item + for (final NoticeWay item in msgNoticeInfo.value.dayNotOpenDoorNoticeWayList!) { if (item.type == 'mail' && item.accounts != null) { - for (Accounts account in item.accounts!) { + for (final Accounts account in item.accounts!) { if (account.account != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receiveEmail = account.account!; emailReceiverList.value.add(msgNoticeModeData); } } } else if (item.type == 'sms' && item.accounts != null) { - for (Accounts account in item.accounts!) { + for (final Accounts account in item.accounts!) { if (account.account != null && account.countryCode != null) { - MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); + final MsgNoticeModeData msgNoticeModeData = MsgNoticeModeData(); msgNoticeModeData.receivePhone = account.account!; msgNoticeModeData.countryCode = account.countryCode!; phoneReceiverList.value.add(msgNoticeModeData); @@ -67,4 +60,11 @@ class NotificationModeState { } } } + RxList emailReceiverList = [].obs; + RxList phoneReceiverList = [].obs; + + RxString countryName = '中国'.tr.obs; + RxInt countryCode = 86.obs; + Rx familyData = DataList().obs; + Rx msgNoticeInfo = MsgNoticeData().obs; } diff --git a/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart index 83612b36..80247a61 100755 --- a/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart +++ b/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/services.dart'; @@ -69,7 +70,7 @@ class LockMonitoringLogic extends BaseGetXController { // 检查条件,如果达到6秒且未得到应答,则认为失败 if (state.answerSeconds >= 6) { state.answerTimer.cancel(); - showToast("接听失败"); + showToast('接听失败'.tr); // initiateUdpHangUpAction(2); UDPTalkClass().callNoAnswer(1); } @@ -159,13 +160,13 @@ class LockMonitoringLogic extends BaseGetXController { try { if (await state.voiceProcessor?.hasRecordAudioPermission() ?? false) { await state.voiceProcessor?.start(state.frameLength, state.sampleRate); - bool? isRecording = await state.voiceProcessor?.isRecording(); + final bool? isRecording = await state.voiceProcessor?.isRecording(); state.isProcessing.value = isRecording!; } else { - state.errorMessage.value = "Recording permission not granted"; + state.errorMessage.value = 'Recording permission not granted'; } } on PlatformException catch (ex) { - state.errorMessage.value = "Failed to start recorder: $ex"; + state.errorMessage.value = 'Failed to start recorder: $ex'; } finally { state.isButtonDisabled.value = false; } @@ -176,18 +177,18 @@ class LockMonitoringLogic extends BaseGetXController { // CallTalk().stopPlaySound(); // } state.allFrames.add(frame); // 将帧添加到状态变量中 - List concatenatedFrames = concatenateFrames(state.allFrames); // 连接所有帧 - AppLog.log("pcm数据:$concatenatedFrames"); + final List concatenatedFrames = concatenateFrames(state.allFrames); // 连接所有帧 + AppLog.log('pcm数据:$concatenatedFrames'); - List pcmBytes = listLinearToULaw(frame); + final List pcmBytes = listLinearToULaw(frame); // await Future.delayed(const Duration(milliseconds: 100)); sendRecordData({ - "bytes": pcmBytes, + 'bytes': pcmBytes, // "udpSendDataFrameNumber": 0, - "lockID": UDPManage().lockId, - "lockIP": UDPManage().host, - "userMobile": await state.userUid, - "userMobileIP": await state.userMobileIP, + 'lockID': UDPManage().lockId, + 'lockIP': UDPManage().host, + 'userMobile': await state.userUid, + 'userMobileIP': await state.userMobileIP, }); } @@ -197,8 +198,9 @@ class LockMonitoringLogic extends BaseGetXController { // 将所有帧连接起来 List concatenateFrames(List> frames) { - List concatenated = []; - for (List frame in frames) { + final List concatenated = []; + for (int i = 0; i < frames.length; i++) { + final List frame = frames[i]; concatenated.addAll(frame); } return concatenated; @@ -216,21 +218,21 @@ class LockMonitoringLogic extends BaseGetXController { state.voiceProcessor?.removeFrameListener(_onFrame); state.udpSendDataFrameNumber = 0; } on PlatformException catch (ex) { - state.errorMessage.value = "Failed to stop recorder: $ex"; + state.errorMessage.value = 'Failed to stop recorder: $ex'; } finally { - bool? isRecording = await state.voiceProcessor?.isRecording(); + final bool? isRecording = await state.voiceProcessor?.isRecording(); state.isProcessing.value = isRecording!; state.isButtonDisabled.value = false; } } sendRecordData(Map args) async { - List bytes = args["bytes"]; + final List bytes = args['bytes']; // int udpSendDataFrameNumber = args["udpSendDataFrameNumber"]; - String? lockID = args["lockID"]; - String? lockIP = args["lockIP"]; - String? userMobile = args["userMobile"]; - String? userMobileIP = args["userMobileIP"]; + final String? lockID = args['lockID']; + final String? lockIP = args['lockIP']; + final String? userMobile = args['userMobile']; + final String? userMobileIP = args['userMobileIP']; // int length = 320; // 每个子List的长度 // List list = state.listAudioData.value.sublist(0, 320); @@ -245,7 +247,7 @@ class LockMonitoringLogic extends BaseGetXController { state.udpSendDataFrameNumber++; if (state.udpSendDataFrameNumber >= 65536) state.udpSendDataFrameNumber = 1; // 57 - List topBytes = []; + final List topBytes = []; // var cID = "XXXCID"; // List cIDData = utf8.encode(cID!); @@ -303,11 +305,11 @@ class LockMonitoringLogic extends BaseGetXController { 176, 4, // 保留 ]); - topBytes[6] = (state.udpSendDataFrameNumber & 0x000000FF); - topBytes[7] = ((state.udpSendDataFrameNumber & 0x0000FF00) >> 8); + topBytes[6] = state.udpSendDataFrameNumber & 0x000000FF; + topBytes[7] = (state.udpSendDataFrameNumber & 0x0000FF00) >> 8; topBytes.addAll(bytes); - AppLog.log("G711编码后为:$topBytes"); + AppLog.log('G711编码后为:$topBytes'); UDPSenderManage.sendMainProtocol( command: 150, @@ -323,9 +325,9 @@ class LockMonitoringLogic extends BaseGetXController { } List listLinearToULaw(List pcmList) { - List uLawList = []; + final List uLawList = []; for (int pcmVal in pcmList) { - int uLawVal = linearToULaw(pcmVal); + final int uLawVal = linearToULaw(pcmVal); uLawList.add(uLawVal); } return uLawList; @@ -349,14 +351,14 @@ class LockMonitoringLogic extends BaseGetXController { if (seg >= 8) { return 0x7F ^ mask; } else { - uval = (seg << 4); - uval |= ((pcmVal >> (seg + 3)) & 0xF); + uval = seg << 4; + uval |= (pcmVal >> (seg + 3)) & 0xF; return uval ^ mask; } } int search(int val) { - List table = [ + final List table = [ 0xFF, 0x1FF, 0x3FF, @@ -366,7 +368,7 @@ class LockMonitoringLogic extends BaseGetXController { 0x3FFF, 0x7FFF ]; - int size = 8; + const int size = 8; for (int i = 0; i < size; i++) { if (val <= table[i]) { return i; @@ -376,9 +378,9 @@ class LockMonitoringLogic extends BaseGetXController { } Future getPermissionStatus() async { - Permission permission = Permission.microphone; + const Permission permission = Permission.microphone; //granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示 - PermissionStatus status = await permission.status; + final PermissionStatus status = await permission.status; if (status.isGranted) { return true; } else if (status.isDenied) { @@ -392,8 +394,8 @@ class LockMonitoringLogic extends BaseGetXController { } ///申请权限 - void requestPermission(Permission permission) async { - PermissionStatus status = await permission.request(); + Future requestPermission(Permission permission) async { + final PermissionStatus status = await permission.request(); if (status.isPermanentlyDenied) { openAppSettings(); } @@ -401,7 +403,6 @@ class LockMonitoringLogic extends BaseGetXController { @override void onReady() { - // TODO: implement onReady super.onReady(); _getUDPStatusRefreshUIAction(); @@ -411,13 +412,11 @@ class LockMonitoringLogic extends BaseGetXController { @override void onInit() { - // TODO: implement onInit super.onInit(); } @override void onClose() { - // TODO: implement onClose CallTalk().finishAVData(); stopProcessing(); _getUDPStatusRefreshUIEvent!.cancel(); diff --git a/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart index 2cd66610..4ddd8ba6 100755 --- a/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart +++ b/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'dart:io'; import 'dart:ui' as ui; @@ -10,6 +11,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:star_lock/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import 'package:star_lock/talk/udp/udp_manage.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; @@ -28,8 +30,8 @@ class LockMonitoringPage extends StatefulWidget { } class _LockMonitoringPageState extends State { - final logic = Get.put(LockMonitoringLogic()); - final state = Get.find().state; + final LockMonitoringLogic logic = Get.put(LockMonitoringLogic()); + final LockMonitoringState state = Get.find().state; @override void initState() { @@ -53,7 +55,7 @@ class _LockMonitoringPageState extends State { height: 1.sh, color: Colors.transparent, child: Stack( - children: [ + children: [ Image.memory( state.listPhotoData.value, gaplessPlayback: true, @@ -61,7 +63,7 @@ class _LockMonitoringPageState extends State { height: 1.sh, fit: BoxFit.cover, //contain-原比例 none-原始图片 filterQuality: FilterQuality.high, - errorBuilder: (context, error, stackTrace) { + errorBuilder: (BuildContext context, Object error, StackTrace? stackTrace) { return Container(color: Colors.transparent); }, ), @@ -69,16 +71,16 @@ class _LockMonitoringPageState extends State { top: ScreenUtil().statusBarHeight + 30.h, width: 1.sw, child: Obx(() { - var sec = (state.oneMinuteTime.value % 60) + final String sec = (state.oneMinuteTime.value % 60) .toString() .padLeft(2, '0'); - var min = (state.oneMinuteTime.value ~/ 60) + final String min = (state.oneMinuteTime.value ~/ 60) .toString() .padLeft(2, '0'); return Row( mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text("$min:$sec", + children: [ + Text('$min:$sec', style: TextStyle( fontSize: 26.sp, color: Colors.white)), ]); @@ -94,7 +96,7 @@ class _LockMonitoringPageState extends State { color: const Color(0xC83C3F41), borderRadius: BorderRadius.circular(20.h)), child: Column( - children: [ + children: [ SizedBox(height: 20.h), bottomTopBtnWidget(), SizedBox(height: 20.h), @@ -110,7 +112,7 @@ class _LockMonitoringPageState extends State { } Widget bottomTopBtnWidget() { - return Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + return Row(mainAxisAlignment: MainAxisAlignment.center, children: [ // 打开关闭声音 GestureDetector( onTap: () { @@ -125,18 +127,15 @@ class _LockMonitoringPageState extends State { height: 40.w, image: state.isOpenVoice.value ? const AssetImage( - "images/main/icon_lockDetail_monitoringCloseVoice.png") + 'images/main/icon_lockDetail_monitoringCloseVoice.png') : const AssetImage( - "images/main/icon_lockDetail_monitoringOpenVoice.png"))), + 'images/main/icon_lockDetail_monitoringOpenVoice.png'))), ), ), SizedBox(width: 60.w), // 截图 GestureDetector( - onTap: () { - captureAndSavePng(); - // Get.toNamed(Routers.monitoringRealTimeScreenPage); - }, + onTap: captureAndSavePng, child: Container( width: 50.w, height: 50.w, @@ -145,7 +144,7 @@ class _LockMonitoringPageState extends State { width: 40.w, height: 40.w, image: const AssetImage( - "images/main/icon_lockDetail_monitoringScreenshot.png")), + 'images/main/icon_lockDetail_monitoringScreenshot.png')), ), ), SizedBox(width: 60.w), @@ -162,20 +161,20 @@ class _LockMonitoringPageState extends State { width: 40.w, height: 40.w, image: const AssetImage( - "images/main/icon_lockDetail_monitoringScreenRecording.png")), + 'images/main/icon_lockDetail_monitoringScreenRecording.png')), ), ), ]); } Widget bottomBottomBtnWidget() { - return Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ + return Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ // 接听 Obx(() => bottomBtnItemWidget( state.isClickAnswer.value == true ? 'images/main/icon_lockDetail_monitoringUnTalkback.png' : getAnswerBtnImg(), - state.isClickAnswer.value == true ? '长按说话' : getAnswerBtnName(), + state.isClickAnswer.value == true ? '长按说话'.tr : getAnswerBtnName(), Colors.white, () async { if (state.isClickAnswer.value == false) { logic.initiateUdpAnswerAction(); @@ -183,7 +182,7 @@ class _LockMonitoringPageState extends State { } }, longPress: () { // 开始长按 - AppLog.log("onLongPress"); + AppLog.log('onLongPress'); state.listAudioData.value = []; if (state.udpStatus.value == 8) { state.udpStatus.value = 9; @@ -192,14 +191,14 @@ class _LockMonitoringPageState extends State { logic.startProcessing(); }, longPressUp: () async { // 长按结束 - AppLog.log("onLongPressUp"); + AppLog.log('onLongPressUp'); if (state.udpStatus.value == 9) { state.udpStatus.value = 8; } logic.stopProcessing(); })), bottomBtnItemWidget( - "images/main/icon_lockDetail_hangUp.png", "挂断", Colors.red, () async { + 'images/main/icon_lockDetail_hangUp.png', '挂断'.tr, Colors.red, () async { logic.stopProcessing(); CallTalk().finishAVData(); // 挂断 @@ -214,12 +213,12 @@ class _LockMonitoringPageState extends State { // logic.initiateUdpHangUpAction(4); // } }), - bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png", - "开锁", AppColors.mainColor, () { + bottomBtnItemWidget('images/main/icon_lockDetail_monitoringUnlock.png', + '开锁'.tr, AppColors.mainColor, () { if (UDPManage().remoteUnlock == 1) { showDeletPasswordAlertDialog(context); } else { - logic.showToast("请在锁设置中开启远程开锁"); + logic.showToast('请在锁设置中开启远程开锁'.tr); } }) ]); @@ -228,29 +227,29 @@ class _LockMonitoringPageState extends State { String getAnswerBtnImg() { switch (state.udpStatus.value) { case 8: - return "images/main/icon_lockDetail_monitoringUnTalkback.png"; + return 'images/main/icon_lockDetail_monitoringUnTalkback.png'; case 9: - return "images/main/icon_lockDetail_monitoringTalkback.png"; + return 'images/main/icon_lockDetail_monitoringTalkback.png'; default: - return "images/main/icon_lockDetail_monitoringAnswerCalls.png"; + return 'images/main/icon_lockDetail_monitoringAnswerCalls.png'; } } String getAnswerBtnName() { switch (state.udpStatus.value) { case 8: - return "长按说话"; + return '长按说话'.tr; case 9: - return "松开发送"; + return '松开发送'.tr; default: - return "接听"; + return '接听'.tr; } } Widget bottomBtnItemWidget( String iconUrl, String name, Color backgroundColor, Function() onClick, {Function()? longPress, Function()? longPressUp}) { - var wh = 80.w; + final double wh = 80.w; return GestureDetector( onTap: onClick, onLongPress: longPress, @@ -259,7 +258,7 @@ class _LockMonitoringPageState extends State { height: 140.h, child: Column( crossAxisAlignment: CrossAxisAlignment.center, - children: [ + children: [ Container( width: wh, height: wh, @@ -285,31 +284,30 @@ class _LockMonitoringPageState extends State { context: context, builder: (BuildContext context) { return ShowTFView( - title: "请输入六位数字开锁密码", - tipTitle: "", + title: '请输入6位数字开锁密码'.tr, + tipTitle: '', controller: state.passwordTF, - inputFormatters: [ + inputFormatters: [ LengthLimitingTextInputFormatter(6), //限制长度 - FilteringTextInputFormatter.allow(RegExp("[0-9]")), + FilteringTextInputFormatter.allow(RegExp('[0-9]')), ], sureClick: () async { //发送删除锁请求 if (state.passwordTF.text.isEmpty) { - logic.showToast("请输入开锁密码"); + logic.showToast('请输入开锁密码'.tr); return; } // List numbers = state.passwordTF.text.split('').map((char) => int.parse(char)).toList(); // 开锁 // lockID - List numbers = []; - List lockIDData = utf8.encode(state.passwordTF.text); + final List numbers = []; + final List lockIDData = utf8.encode(state.passwordTF.text); numbers.addAll(lockIDData); // topBytes = getFixedLengthList(lockIDData, 20 - lockIDData.length); for (int i = 0; i < 6 - lockIDData.length; i++) { numbers.add(0); } - // AppLog.log("numbersnumbersnumbers:$numbers"); logic.udpOpenDoorAction(numbers); }, cancelClick: () { @@ -322,7 +320,7 @@ class _LockMonitoringPageState extends State { //获取麦克风权限 Future requestMicrophonePermission() async { - await logic.getPermissionStatus().then((value) async { + await logic.getPermissionStatus().then((bool value) async { if (!value) { return; } @@ -339,30 +337,30 @@ class _LockMonitoringPageState extends State { AppLog.log('截图失败: 未找到当前上下文'); return; } - RenderRepaintBoundary boundary = state.globalKey.currentContext! - .findRenderObject() as RenderRepaintBoundary; - ui.Image image = await boundary.toImage(); - ByteData? byteData = + final RenderRepaintBoundary boundary = state.globalKey.currentContext! + .findRenderObject()! as RenderRepaintBoundary; + final ui.Image image = await boundary.toImage(); + final ByteData? byteData = await image.toByteData(format: ui.ImageByteFormat.png); if (byteData == null) { AppLog.log('截图失败: 图像数据为空'); return; } - Uint8List pngBytes = byteData.buffer.asUint8List(); + final Uint8List pngBytes = byteData.buffer.asUint8List(); // 获取应用程序的文档目录 - final directory = await getApplicationDocumentsDirectory(); - final imagePath = '${directory.path}/screenshot.png'; + final Directory directory = await getApplicationDocumentsDirectory(); + final String imagePath = '${directory.path}/screenshot.png'; // 将截图保存为文件 - File imgFile = File(imagePath); + final File imgFile = File(imagePath); await imgFile.writeAsBytes(pngBytes); // 将截图保存到相册 await ImageGallerySaver.saveFile(imagePath); AppLog.log('截图保存路径: $imagePath'); - logic.showToast('截图已保存到相册'); + logic.showToast('截图已保存到相册'.tr); } catch (e) { AppLog.log('截图失败: $e'); } @@ -372,10 +370,10 @@ class _LockMonitoringPageState extends State { void _getTVDataRefreshUIAction() { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus state.getTVDataRefreshUIEvent = - eventBus.on().listen((event) async { + eventBus.on().listen((GetTVDataRefreshUI event) async { if (event.tvList.isNotEmpty && event.tvList.length > 100) { // 比较新旧数据是否相同 - Uint8List imageData = Uint8List.fromList(event.tvList); + final Uint8List imageData = Uint8List.fromList(event.tvList); if (!listEquals(state.listPhotoData.value, imageData)) { // 更新状态 diff --git a/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart b/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart index 7b4fdfeb..c0f07e83 100755 --- a/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart +++ b/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart @@ -9,50 +9,50 @@ import 'package:network_info_plus/network_info_plus.dart'; import '../../../../tools/storage.dart'; class LockMonitoringState { - var isOpenVoice = false.obs; + RxBool isOpenVoice = false.obs; int udpSendDataFrameNumber = 0; // 帧序号 // var isSenderAudioData = false.obs;// 是否要发送音频数据 StreamSubscription? getTVDataRefreshUIEvent; //收到视频流数据 - var shouldUpdateUI = false.obs; //是否需要更新UI + RxBool shouldUpdateUI = false.obs; //是否需要更新UI - var userMobileIP = NetworkInfo().getWifiIP(); - var userUid = Storage.getUid(); + Future userMobileIP = NetworkInfo().getWifiIP(); + Future userUid = Storage.getUid(); - var udpStatus = + RxInt udpStatus = 0.obs; //0:初始状态 1:等待监视 2: 3:监视中 4:呼叫成功 5:主角通话中 6:被叫通话 8:被叫通话中 9:长按说话 - var passwordTF = TextEditingController(); + TextEditingController passwordTF = TextEditingController(); - var listPhotoData = Uint8List(0).obs; //得到的视频流字节数据 - var listAudioData = [].obs; //得到的音频流字节数据 + Rx listPhotoData = Uint8List(0).obs; //得到的视频流字节数据 + RxList listAudioData = [].obs; //得到的音频流字节数据 //录音相关 late VoiceProcessor? voiceProcessor; - var isProcessing = false.obs; //是否正在处理音频数据 - var isButtonDisabled = false.obs; //是否禁用按钮 + RxBool isProcessing = false.obs; //是否正在处理音频数据 + RxBool isButtonDisabled = false.obs; //是否禁用按钮 final int frameLength = 320; //音视频帧长度为320 final int sampleRate = 8000; //音频采样率为8000 // final int volumeHistoryCapacity = 5; //音量历史记录的容量 // final double dbOffset = 50.0; //用于音量计算的偏移量 // var volumeHistory = [].obs; //用于存储音量历史记录的列表 // var smoothedVolumeValue = 0.0.obs; //存储平滑后的音量值 - var errorMessage = ''.obs; - List> allFrames = []; + RxString errorMessage = ''.obs; + List> allFrames = >[]; GlobalKey globalKey = GlobalKey(); late Timer oneMinuteTimeTimer = Timer(const Duration(seconds: 1), () {}); // 定时器超过60秒关闭当前界面 - var oneMinuteTime = 0.obs; // 定时器秒数 + RxInt oneMinuteTime = 0.obs; // 定时器秒数 // 定时器如果发送了接听的命令 而没收到回复就每秒重复发送10次 late Timer answerTimer = Timer(const Duration(seconds: 1), () {}); //接听命令定时器 - var answerSeconds = 0.obs; - var isClickAnswer = false.obs; //是否点击了接听按钮 + RxInt answerSeconds = 0.obs; + RxBool isClickAnswer = false.obs; //是否点击了接听按钮 late Timer hangUpTimer = Timer(const Duration(seconds: 1), () {}); //挂断命令定时器 - var hangUpSeconds = 0.obs; - var isClickHangUp = false.obs; //是否点击了挂断按钮 + RxInt hangUpSeconds = 0.obs; + RxBool isClickHangUp = false.obs; //是否点击了挂断按钮 late Timer openDoorTimer = Timer(const Duration(seconds: 1), () {}); //开门命令定时器 - var openDoorSeconds = 0.obs; + RxInt openDoorSeconds = 0.obs; } diff --git a/lib/main/lockDetail/monitoring/monitoringRealTimeScreen/monitoringRealTimeScreen_page.dart b/lib/main/lockDetail/monitoring/monitoringRealTimeScreen/monitoringRealTimeScreen_page.dart index 5a27981c..ae4f0635 100755 --- a/lib/main/lockDetail/monitoring/monitoringRealTimeScreen/monitoringRealTimeScreen_page.dart +++ b/lib/main/lockDetail/monitoring/monitoringRealTimeScreen/monitoringRealTimeScreen_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/monitoring/monitoringRealTimeScreen/monitoringRealTimeScreen_state.dart'; import '../../../../app_settings/app_colors.dart'; import '../../../../tools/titleAppBar.dart'; @@ -15,24 +16,24 @@ class MonitoringRealTimeScreenPage extends StatefulWidget { } class _MonitoringRealTimeScreenPageState extends State { - final logic = Get.put(MonitoringRealTimeScreenLogic()); - final state = Get.find().state; + final MonitoringRealTimeScreenLogic logic = Get.put(MonitoringRealTimeScreenLogic()); + final MonitoringRealTimeScreenState state = Get.find().state; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: "实时播放", + barTitle: '实时播放'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), body: Stack( alignment: Alignment.bottomCenter, - children: [ + children: [ Column( - children: [ - Image.asset("images/icon_test20231113.png", width: 1.sw, height: 1.sw/5*4, fit: BoxFit.cover), + children: [ + Image.asset('images/icon_test20231113.png', width: 1.sw, height: 1.sw/5*4, fit: BoxFit.cover), middleWidget(), ], ), @@ -50,7 +51,7 @@ class _MonitoringRealTimeScreenPageState extends State[ // 打开关闭声音 GestureDetector( onTap: () { @@ -64,8 +65,8 @@ class _MonitoringRealTimeScreenPageState extends State[ + bottomBtnItemWidget('images/main/icon_lockDetail_monitoringTalkback.png', '点击对讲'.tr, Colors.white, (){ }), SizedBox(width: (1.sw - 80.w)/3), - bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png", "长按开锁", AppColors.mainColor, (){ + bottomBtnItemWidget('images/main/icon_lockDetail_monitoringUnlock.png', '长按开锁'.tr, AppColors.mainColor, (){ }) ]); } Widget bottomBtnItemWidget(String iconUrl, String name, Color backgroundColor, Function() onClick) { - var wh = 80.w; + double wh = 80.w; return GestureDetector( onTap: onClick, child: SizedBox( height: 140.h, child: Column( crossAxisAlignment: CrossAxisAlignment.center, - children: [ + children: [ Container( width: wh, height: wh, diff --git a/lib/main/lockDetail/palm/addPalm/addPalm_logic.dart b/lib/main/lockDetail/palm/addPalm/addPalm_logic.dart index 7e4910cb..19ca548d 100755 --- a/lib/main/lockDetail/palm/addPalm/addPalm_logic.dart +++ b/lib/main/lockDetail/palm/addPalm/addPalm_logic.dart @@ -68,7 +68,6 @@ class AddPalmLogic extends BaseGetXController { final List token = reply.data.sublist(5, 9); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); - AppLog.log('添加卡token:$token'); IoSenderManage.senderAddPalmWithTimeCycleCoercionCommand( keyID:'1', diff --git a/lib/main/lockDetail/palm/addPalm/addPalm_page.dart b/lib/main/lockDetail/palm/addPalm/addPalm_page.dart index 26c32ed4..58b9e68b 100755 --- a/lib/main/lockDetail/palm/addPalm/addPalm_page.dart +++ b/lib/main/lockDetail/palm/addPalm/addPalm_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -5,7 +6,6 @@ import 'package:star_lock/main/lockDetail/palm/addPalm/addPalm_logic.dart'; import 'package:star_lock/main/lockDetail/palm/addPalm/addPalm_state.dart'; import '../../../../../app_settings/app_colors.dart'; -import '../../../../../tools/submitBtn.dart'; import '../../../../../tools/titleAppBar.dart'; import '../../../../tools/appRouteObserver.dart'; diff --git a/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart b/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart index e8740f02..459b0eed 100755 --- a/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart +++ b/lib/main/lockDetail/palm/addPalmType/addPalmType_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart b/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart index 9887b28e..e8621160 100755 --- a/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart +++ b/lib/main/lockDetail/palm/palmDetail/palmDetail_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -15,7 +16,6 @@ import '../../../../tools/showIosTipView.dart'; import '../../../../tools/showTFView.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import 'palmDetail_state.dart'; class PalmDetailPage extends StatefulWidget { diff --git a/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart b/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart index f2c09851..e53bccf0 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart @@ -202,52 +202,52 @@ class PasswordKeyDetailLogic extends BaseGetXController { break; case 5: //周未循环 5 在周未开始和结束时间指定时间段内有效 - useDateStr = '周末 $starHour:00-$endHour:00'; + useDateStr = '周末'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 6: //每日循环 6 每天开始和结束时间指定时间段内有效 - useDateStr = '每日 $starHour:00-$endHour:00'; + useDateStr = '每日'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 7: //工作日循环 7 工作日开始和结束时间指定的时间段内有效 - useDateStr = '工作日 $starHour:00-$endHour:00'; + useDateStr = '工作日'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 8: //周一循环 8 每周一开始和结束时间指定时间段内有效 - useDateStr = '周一 $starHour:00-$endHour:00'; + useDateStr = '周一'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 9: //周二循环 9 每周二开始和结束时间指定时间段内有效 - useDateStr = '周二 $starHour:00-$endHour:00'; + useDateStr = '周二'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 10: //周三循环 10 每周三开始和结束时间指定时间段内有效 - useDateStr = '周三 $starHour:00-$endHour:00'; + useDateStr = '周三'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 11: //周四循环 11 每周四开始和结束时间指定时间段内有效 - useDateStr = '周四 $starHour:00-$endHour:00'; + useDateStr = '周四'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 12: //周五循环 12 每周五开始和结束时间指定时间段内有效 - useDateStr = '周五 $starHour:00-$endHour:00'; + useDateStr = '周五'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 13: //周六循环 13 每周六开始和结束时间指定时间段内有效 - useDateStr = '周六 $starHour:00-$endHour:00'; + useDateStr = '周六'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; case 14: //周日循环 14 每周日开始和结束时间指定时间段内有效 - useDateStr = '周日 $starHour:00-$endHour:00'; + useDateStr = '周日'.tr + '$starHour:00-$endHour:00'; state.isCirculation.value = true; break; default: @@ -269,64 +269,64 @@ class PasswordKeyDetailLogic extends BaseGetXController { case 1: //单次 1 只能在开始时间后6小时内使用一次 useDateStr = - '类型:永久\n有效期:${startDateStr.toLocal().toString().substring(0, 16)} -- ${endDateStr.toLocal().toString().substring(0, 16)}'; + '类型'.tr + ':' + '永久'.tr + '\n' + '有效期'.tr + ':${startDateStr.toLocal().toString().substring(0, 16)} -- ${endDateStr.toLocal().toString().substring(0, 16)}'; break; case 2: //永久 2 从开始时间开始永久有效,必需在开始时间24小时内使用一次,否则将失效 - useDateStr = '类型:永久'; + useDateStr = '类型'.tr + ':' + '永久'.tr; break; case 3: //限期 3 在开始和结束时间内有效,必需在开始时间24小时内使用一次,否则将失效 useDateStr = - '类型:限时\n有效期:${startDateStr.toLocal().toString().substring(0, 16)}-${endDateStr.toLocal().toString().substring(0, 16)}'; + '类型'.tr + ':' + '限时'.tr + '\n' + '有效期'.tr + ':${startDateStr.toLocal().toString().substring(0, 16)}-${endDateStr.toLocal().toString().substring(0, 16)}'; break; case 4: //删除 4 在锁上使用后会删除之前在锁上使用过的密码 - useDateStr = '类型:清空'; + useDateStr = '类型'.tr + ':' + '清空'.tr; break; case 5: //周未循环 5 在周未开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n 周末 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周末'.tr + ' $starHour:00-$endHour:00'; break; case 6: //每日循环 6 每天开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n每日 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '每日'.tr + ' $starHour:00-$endHour:00'; break; case 7: //工作日循环 7 工作日开始和结束时间指定的时间段内有效 - useDateStr = '类型:循环\n工作日 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '工作日'.tr + ' $starHour:00-$endHour:00'; break; case 8: //周一循环 8 每周一开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周一 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周一'.tr + ' $starHour:00-$endHour:00'; break; case 9: //周二循环 9 每周二开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周二 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周二'.tr + ' $starHour:00-$endHour:00'; break; case 10: //周三循环 10 每周三开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周三 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周三'.tr + ' $starHour:00-$endHour:00'; break; case 11: //周四循环 11 每周四开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周四 $starHour:00 -$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周四'.tr + ' $starHour:00 -$endHour:00'; break; case 12: //周五循环 12 每周五开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周五 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周五'.tr + ' $starHour:00-$endHour:00'; break; case 13: //周六循环 13 每周六开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周六 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周六'.tr + ' $starHour:00-$endHour:00'; break; case 14: //周日循环 14 每周日开始和结束时间指定时间段内有效 - useDateStr = '类型:循环\n周日 $starHour:00-$endHour:00'; + useDateStr = '类型'.tr + ':' + '循环'.tr + '\n' + '周日'.tr + ' $starHour:00-$endHour:00'; break; default: } - return '您好,您的密码是:${state.itemData.value.keyboardPwd}\n$useDateStr\n密码名字:${state.itemData.value.keyboardPwdName}'; + return '您好,您的密码是'.tr + ':${state.itemData.value.keyboardPwd}\n$useDateStr\n${'密码名字'.tr}:${state.itemData.value.keyboardPwdName}'; } @override diff --git a/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart b/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart index cd0c487c..49ab8803 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart @@ -90,7 +90,7 @@ class _PasswordKeyDetailPageState extends State context, state.inputNameController); })), Obx(() => CommonItem( - leftTitel: '有效期', + leftTitel: '有效期'.tr, rightTitle: logic.getUseDateStr(), isHaveLine: state.isCirculation.value, isHaveDirection: state.itemData.value.isCustom! == 1, @@ -291,7 +291,7 @@ class _PasswordKeyDetailPageState extends State : '修改密码'.tr, tipTitle: inputController.text.isNotEmpty ? inputController.text - : '请输入6-9位密码', + : '请输入6-9位密码'.tr, controller: inputController, keyboardType: inputController == state.inputNameController ? TextInputType.text @@ -307,7 +307,7 @@ class _PasswordKeyDetailPageState extends State if (inputController.text.isEmpty || inputController.text.length < 6 || inputController.text.length > 9) { - logic.showToast('请输入6-9位密码'); + logic.showToast('请输入6-9位密码'.tr); return; } } @@ -343,7 +343,7 @@ class _PasswordKeyDetailPageState extends State width: ScreenUtil().screenWidth, child: Center( child: Text( - '分享', + '分享'.tr, style: TextStyle( fontSize: 24.sp, color: AppColors.blackColor, @@ -393,10 +393,10 @@ class _PasswordKeyDetailPageState extends State List initBottomSheetList() { final List widgetList = []; - widgetList.add(buildCenter3('images/icon_wechat.png', '微信好友', 0)); - widgetList.add(buildCenter3('images/icon_message.png', '短信', 1)); - widgetList.add(buildCenter3('images/icon_email.png', '邮件', 2)); - widgetList.add(buildCenter3('images/icon_more.png', '更多', 3)); + widgetList.add(buildCenter3('images/icon_wechat.png', '微信好友'.tr, 0)); + widgetList.add(buildCenter3('images/icon_message.png', '短信'.tr, 1)); + widgetList.add(buildCenter3('images/icon_email.png', '邮件'.tr, 2)); + widgetList.add(buildCenter3('images/icon_more.png', '更多'.tr, 3)); return widgetList; } diff --git a/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart b/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart index 9f4185a0..18fff70d 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart @@ -80,12 +80,12 @@ class PasswordKeyDetailChangeDateLogic extends BaseGetXController { final int endTimeTimestamp = DateTool().dateToTimestamp(state.selectFailureDate.value, 1); if (beginTimeTimestamp > endTimeTimestamp || beginTimeTimestamp == endTimeTimestamp) { - showToast('失效时间需大于生效时间'); + showToast('失效时间需大于生效时间'.tr); return; } if (endTimeTimestamp < DateTime.now().millisecondsSinceEpoch) { - showToast('生效时间需大于当前时间'); + showToast('生效时间需大于当前时间'.tr); return; } @@ -103,9 +103,9 @@ class PasswordKeyDetailChangeDateLogic extends BaseGetXController { keyboardPwdType: 3, pwdRight: state.pwdRight); if (entity.errorCode!.codeIsSuccessful) { - showToast('修改成功', something: (){ + showToast('修改成功'.tr, something: (){ eventBus.fire(GetPasswordListRefreshUI()); - AppLog.log('beginTimeTimestamp:$beginTimeTimestamp endTimeTimestamp:$endTimeTimestamp'); + // AppLog.log('beginTimeTimestamp:$beginTimeTimestamp endTimeTimestamp:$endTimeTimestamp'); Get.back(result: { 'beginTimeTimestamp': beginTimeTimestamp.toString(), 'endTimeTimestamp': endTimeTimestamp.toString(), diff --git a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart index 07de005a..1b9ce0f4 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; -import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -15,7 +14,6 @@ import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; import '../../../../blue/io_tool/manager_event_bus.dart'; import '../../../../blue/sender_manage.dart'; -import '../../../../mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart'; import '../../../../tools/eventBusEventManage.dart'; import '../../../../tools/storage.dart'; import '../passwordKey_perpetual/passwordKeyEntity.dart'; @@ -332,62 +330,62 @@ class PasswordKeyListLogic extends BaseGetXController { case 1: //单次 1 只能在开始时间后6小时内使用一次 useDateStr = - '${startDateStr.toLocal().toString().substring(0, 16)} ${"单次".tr}'; + '${startDateStr.toLocal().toString().substring(0, 16)} ${'单次'.tr}'; break; case 2: //永久 2 从开始时间开始永久有效,必需在开始时间24小时内使用一次,否则将失效 useDateStr = - '${sendDateStr.toLocal().toString().substring(0, 16)} ${"永久".tr} ${indexEntity.isCustom! == 1 ? "自定义".tr : ""}'; + '${sendDateStr.toLocal().toString().substring(0, 16)} ${'永久'.tr} ${indexEntity.isCustom! == 1 ? '自定义'.tr : ''}'; break; case 3: //限期 3 在开始和结束时间内有效,必需在开始时间24小时内使用一次,否则将失效 useDateStr = - '${startDateStr.toLocal().toString().substring(0, 16)} - ${endDateStr.toLocal().toString().substring(0, 16)} ${"限时".tr} ${indexEntity.isCustom! == 1 ? "自定义".tr : ""}'; + '${startDateStr.toLocal().toString().substring(0, 16)} - ${endDateStr.toLocal().toString().substring(0, 16)} ${'限时'.tr} ${indexEntity.isCustom! == 1 ? '自定义'.tr : ''}'; break; case 4: //删除 4 在锁上使用后会删除之前在锁上使用过的密码 useDateStr = - '${startDateStr.toLocal().toString().substring(0, 16)} ${"清空码".tr}'; + '${startDateStr.toLocal().toString().substring(0, 16)} ${'清空码'.tr}'; break; case 5: //周未循环 5 在周未开始和结束时间指定时间段内有效 - useDateStr = '${"周末".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周末'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 6: //每日循环 6 每天开始和结束时间指定时间段内有效 - useDateStr = '${"每日".tr}$starHour:00-$endHour:00 ${"循环"}'; + useDateStr = '${'每日'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 7: //工作日循环 7 工作日开始和结束时间指定的时间段内有效 - useDateStr = '${"工作日".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'工作日'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 8: //周一循环 8 每周一开始和结束时间指定时间段内有效 - useDateStr = '${"周一".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周一'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 9: //周二循环 9 每周二开始和结束时间指定时间段内有效 - useDateStr = '${"周二".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周二'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 10: //周三循环 10 每周三开始和结束时间指定时间段内有效 - useDateStr = '${"周三".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周三'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 11: //周四循环 11 每周四开始和结束时间指定时间段内有效 - useDateStr = '${"周四".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周四'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 12: //周五循环 12 每周五开始和结束时间指定时间段内有效 - useDateStr = '${"周五".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周五'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 13: //周六循环 13 每周六开始和结束时间指定时间段内有效 - useDateStr = '${"周六".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周六'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; case 14: //周天循环 14 每周日开始和结束时间指定时间段内有效 - useDateStr = '${"周日".tr}$starHour:00-$endHour:00 ${"循环".tr}'; + useDateStr = '${'周日'.tr}$starHour:00-$endHour:00 ${'循环'.tr}'; break; default: diff --git a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart index 30d1cf37..1b585abc 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; @@ -17,7 +18,6 @@ import '../../../../tools/keySearchWidget.dart'; import '../../../../tools/showTipView.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; class PasswordKeyListPage extends StatefulWidget { const PasswordKeyListPage({Key? key}) : super(key: key); diff --git a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart index 0ba3e1c1..68f3851e 100755 --- a/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart +++ b/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart @@ -5,19 +5,19 @@ import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKe import '../../../lockMian/entity/lockListInfo_entity.dart'; class PasswordKeyListState { - final keyInfo = LockListInfoItemEntity().obs; - final itemDataList = [].obs; - var itemData = PasswordKeyListItem(); - final TextEditingController searchController = TextEditingController(); - - var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 - var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用) - - var pwdNo = 0; - var pwd = "0"; - var encrpyKey = []; PasswordKeyListState() { Map map = Get.arguments; - keyInfo.value = map["keyInfo"]; + keyInfo.value = map['keyInfo']; } + final Rx keyInfo = LockListInfoItemEntity().obs; + final RxList itemDataList = [].obs; + PasswordKeyListItem itemData = PasswordKeyListItem(); + final TextEditingController searchController = TextEditingController(); + + RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 + RxInt sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用) + + int pwdNo = 0; + String pwd = '0'; + List encrpyKey = []; } diff --git a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart index 4b1357b2..135d3926 100755 --- a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart +++ b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -104,25 +105,25 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { showToast('失效时间要大于生效时间'.tr); return; } - if (state.loopModeStr.value == '周末') { + if (state.loopModeStr.value == '周末'.tr) { getKeyType = '5'; - } else if (state.loopModeStr.value == '每日') { + } else if (state.loopModeStr.value == '每日'.tr) { getKeyType = '6'; - } else if (state.loopModeStr.value == '工作日') { + } else if (state.loopModeStr.value == '工作日'.tr) { getKeyType = '7'; - } else if (state.loopModeStr.value == '星期一') { + } else if (state.loopModeStr.value == '星期一'.tr) { getKeyType = '8'; - } else if (state.loopModeStr.value == '星期二') { + } else if (state.loopModeStr.value == '星期二'.tr) { getKeyType = '9'; - } else if (state.loopModeStr.value == '星期三') { + } else if (state.loopModeStr.value == '星期三'.tr) { getKeyType = '10'; - } else if (state.loopModeStr.value == '星期四') { + } else if (state.loopModeStr.value == '星期四'.tr) { getKeyType = '11'; - } else if (state.loopModeStr.value == '星期五') { + } else if (state.loopModeStr.value == '星期五'.tr) { getKeyType = '12'; - } else if (state.loopModeStr.value == '星期六') { + } else if (state.loopModeStr.value == '星期六'.tr) { getKeyType = '13'; - } else if (state.loopModeStr.value == '星期日') { + } else if (state.loopModeStr.value == '星期日'.tr) { getKeyType = '14'; } } else if (state.widgetType.value == 5) { @@ -345,12 +346,12 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { if (state.isPermanent.value == false) { if (startDate < DateTool().dateToTimestamp(DateTool().getNowDateWithType(2), 1)) { - showToast('生效时间要大于当前时间'); + showToast('生效时间需大于当前时间'.tr); return; } if (endDate <= startDate) { - showToast('失效时间需大于生效时间'); + showToast('失效时间需大于生效时间'.tr); return; } } else { @@ -360,7 +361,7 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { if (state.pwdController.text.length < 6 || state.pwdController.text.length > 9) { - showToast('请输入6-9位数字密码'); + showToast('请输入6-9位数字'.tr); return; } @@ -427,31 +428,31 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { switch (getPwdType) { case 0: // 永久 从开始时间开始永久有效,必需在开始时间24小时内使用一次,否则将失效 - useDateStr = '类型:永久'; + useDateStr = '类型'.tr + ':' + '永久'; break; case 1: //限时 在开始和结束时间内有效,必需在开始时间24小时内使用一次,否则将失效 useDateStr = - '类型:限时\n有效期:${state.beginTime.value} -- ${state.endTime.value}'; + '类型'.tr + ':' + '限时\n${'有效期'.tr}:${state.beginTime.value} -- ${state.endTime.value}'; break; case 2: //单次 只能在开始时间后6小时内使用一次 useDateStr = - '类型:单次\n有效期:${state.beginTime.value} -- ${state.endTime.value}'; + '类型'.tr + ':' + '单次\n${'有效期'.tr}:${state.beginTime.value} -- ${state.endTime.value}'; break; case 3: //自定义 if (state.isPermanent.value == false) { useDateStr = - '类型:自定义-限时\n有效期:${state.customBeginTime.value} -- ${state.customEndTime.value}'; + '类型'.tr + ':' + '自定义-限时\n${'有效期'.tr}:${state.customBeginTime.value} -- ${state.customEndTime.value}'; } else { - useDateStr = '类型:自定义-永久'; + useDateStr = '类型:自定义-永久'.tr; } break; case 4: //周未循环 在周未开始和结束时间指定时间段内有效 useDateStr = - '类型:循环\n${state.loopModeStr.value} ${state.loopEffectiveDate.value}:00-${state.loopFailureDate.value}'; + '类型'.tr + ':' + '循环\n${state.loopModeStr.value} ${state.loopEffectiveDate.value}:00-${state.loopFailureDate.value}'; break; case 5: //删除 4 在锁上使用后会删除之前在锁上使用过的密码 @@ -460,7 +461,7 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { default: } - return '您好,您的密码是:${state.getPwdStr.value}\n$useDateStr\n密码名字:${state.pwdNameStr}'; + return '${'您好,您的密码是'.tr}:${state.getPwdStr.value}\n$useDateStr\n${'密码名字'.tr}:${state.pwdNameStr}'; } String addSpaces(String input) { diff --git a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart index 13dab788..c0c6d8ec 100755 --- a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart +++ b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart @@ -1,7 +1,7 @@ + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -26,7 +26,6 @@ import '../../../../tools/dateTool.dart'; import '../../../../tools/pickers/time_picker/model/pduration.dart'; import '../../../../tools/submitBtn.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; class PasswordKeyPerpetualPage extends StatefulWidget { const PasswordKeyPerpetualPage({Key? key}) : super(key: key); @@ -155,7 +154,7 @@ class _PasswordKeyPerpetualPageState extends State perpetualKeyWidget( false, '密码'.tr, - '请输入6-9位数字', + '请输入6-9位数字'.tr, state.pwdController), keyIfAdministratorWidget(), keyBottomWidget( @@ -367,16 +366,16 @@ class _PasswordKeyPerpetualPageState extends State isHaveDirection: true, action: () { final List pickerDataList = [ - '周末', - '每日', - '工作日', - '星期一', - '星期二', - '星期三', - '星期四', - '星期五', - '星期六', - '星期日' + '周末'.tr, + '每日'.tr, + '工作日'.tr, + '星期一'.tr, + '星期二'.tr, + '星期三'.tr, + '星期四'.tr, + '星期五'.tr, + '星期六'.tr, + '星期日'.tr ]; showPickerView(context, pickerDataList); }), @@ -388,7 +387,7 @@ class _PasswordKeyPerpetualPageState extends State CommonDataManage().currentKeyInfo.model == IoModelVendor.model_XL_WIFI), child: CommonItem( - leftTitel: '结束日期', + leftTitel: '结束日期'.tr, rightTitle: state.endTime.value, isHaveLine: true, isHaveDirection: true, @@ -474,7 +473,7 @@ class _PasswordKeyPerpetualPageState extends State ), SubmitBtn( btnName: state.widgetType.value == 3 - ? '设置密码' + ? '设置密码'.tr : '获取密码'.tr, onClick: () async { final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); @@ -486,7 +485,7 @@ class _PasswordKeyPerpetualPageState extends State logic.getKeyboardPwdRequest(); } } else { - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } }), ], @@ -515,7 +514,7 @@ class _PasswordKeyPerpetualPageState extends State height: 20.h, ), Text( - '操作成功,密码为', + '操作成功,密码为'.tr, style: TextStyle(fontSize: 22.sp, color: Colors.black), ), SizedBox( @@ -673,7 +672,7 @@ class _PasswordKeyPerpetualPageState extends State width: ScreenUtil().screenWidth, child: Center( child: Text( - '分享', + '分享'.tr, style: TextStyle( fontSize: 24.sp, color: AppColors.blackColor, diff --git a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_state.dart b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_state.dart index 3e4d1162..3e872b82 100755 --- a/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_state.dart +++ b/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_state.dart @@ -27,7 +27,7 @@ class PasswordKeyPerpetualState { RxString loopFailureDate = DateTool().getNowDateWithType(7).obs; //失效时间 RxInt loopStartHours = DateTime.now().hour.obs; RxInt loopEndHours = DateTime.now().hour.obs; - RxString loopModeStr = '周末'.obs; //循环模式 + RxString loopModeStr = '周末'.tr.obs; //循环模式 RxString customBeginTime = DateTool().getNowDateWithType(2).obs; //默认为当前时间 开始时间 diff --git a/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart b/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart index 6e6eaa03..b4d746d0 100755 --- a/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart +++ b/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'dart:math'; @@ -31,7 +32,7 @@ class RealTimePictureLogic extends BaseGetXController { eventBus.on().listen((event) { if (event.tvList.isNotEmpty) { // 预加载图片数据 - Uint8List imageData = Uint8List.fromList(event.tvList); + final Uint8List imageData = Uint8List.fromList(event.tvList); // 更新状态 state.listData.value = imageData; } @@ -88,8 +89,8 @@ class RealTimePictureLogic extends BaseGetXController { } Future _readG711Data() async { - String filePath = 'assets/s10-g711.bin'; - List audioData = await G711().readAssetFile(filePath); + final String filePath = 'assets/s10-g711.bin'; + final List audioData = await G711().readAssetFile(filePath); // AppLog.log('发送读取711文件数据为:$audioData');// 数据为:$audioData // return; // AppLog.log('发送读取711文件数据长度为:${audioData.length}');// 数据为:$audioData @@ -99,21 +100,21 @@ class RealTimePictureLogic extends BaseGetXController { // AppLog.log('发送转换pcmBytes数据长度为:${pcmBytes.length}'); int start = 0; - int length = 320; + final int length = 320; while (start < audioData.length) { // await Future.delayed(const Duration(milliseconds: 50)); - int end = (start + length > audioData.length) + final int end = (start + length > audioData.length) ? audioData.length : start + length; - List sublist = audioData.sublist(start, end); + final List sublist = audioData.sublist(start, end); sendRecordData({ - "bytes": sublist, + 'bytes': sublist, // "udpSendDataFrameNumber": 0, - "lockID": UDPManage().lockId, - "lockIP": UDPManage().host, - "userMobile": await state.userUid, - "userMobileIP": await state.userMobileIP, + 'lockID': UDPManage().lockId, + 'lockIP': UDPManage().host, + 'userMobile': await state.userUid, + 'userMobileIP': await state.userMobileIP, }); AppLog.log(sublist.toString()); start += length; @@ -133,17 +134,17 @@ class RealTimePictureLogic extends BaseGetXController { // AppLog.log('change Get data.length:${frame.length} change Received data:$frame'); await Future.delayed(const Duration(milliseconds: 50)); sendRecordData({ - "bytes": frame, + 'bytes': frame, // "udpSendDataFrameNumber": 0, - "lockID": UDPManage().lockId, - "lockIP": UDPManage().host, - "userMobile": await state.userUid, - "userMobileIP": await state.userMobileIP, + 'lockID': UDPManage().lockId, + 'lockIP': UDPManage().host, + 'userMobile': await state.userUid, + 'userMobileIP': await state.userMobileIP, }); } errorListener(VoiceProcessorException error) { - AppLog.log("VoiceProcessorException: $error"); + AppLog.log('VoiceProcessorException: $error'); } state.voiceProcessor?.addFrameListener(frameListener); @@ -152,10 +153,10 @@ class RealTimePictureLogic extends BaseGetXController { try { if (await state.voiceProcessor?.hasRecordAudioPermission() ?? false) { await state.voiceProcessor?.start(320, 8000); - bool? isRecording = await state.voiceProcessor?.isRecording(); + final bool? isRecording = await state.voiceProcessor?.isRecording(); } else {} } on PlatformException catch (ex) { - AppLog.log("PlatformException: $ex"); + AppLog.log('PlatformException: $ex'); } finally {} } @@ -163,7 +164,7 @@ class RealTimePictureLogic extends BaseGetXController { try { await state.voiceProcessor?.stop(); } on PlatformException catch (ex) { - AppLog.log("PlatformException: $ex"); + AppLog.log('PlatformException: $ex'); } finally {} } @@ -172,16 +173,16 @@ class RealTimePictureLogic extends BaseGetXController { } sendRecordData(Map args) async { - List bytes = args["bytes"]; + final List bytes = args['bytes']; // int udpSendDataFrameNumber = args["udpSendDataFrameNumber"]; - String? lockID = args["lockID"]; - String? lockIP = args["lockIP"]; - String? userMobile = args["userMobile"]; - String? userMobileIP = args["userMobileIP"]; + final String? lockID = args['lockID']; + final String? lockIP = args['lockIP']; + final String? userMobile = args['userMobile']; + final String? userMobileIP = args['userMobileIP']; state.udpSendDataFrameNumber++; if (state.udpSendDataFrameNumber >= 65536) state.udpSendDataFrameNumber = 1; // 57 - List topBytes = []; + final List topBytes = []; topBytes.addAll([ 1, 1, 1, 1, // 时间戳 @@ -194,11 +195,11 @@ class RealTimePictureLogic extends BaseGetXController { 176, 4, // 保留 ]); - topBytes[6] = (state.udpSendDataFrameNumber & 0x000000FF); - topBytes[7] = ((state.udpSendDataFrameNumber & 0x0000FF00) >> 8); + topBytes[6] = state.udpSendDataFrameNumber & 0x000000FF; + topBytes[7] = (state.udpSendDataFrameNumber & 0x0000FF00) >> 8; topBytes.addAll(bytes); - AppLog.log("setVoiceBytes:$topBytes"); + AppLog.log('setVoiceBytes:$topBytes'); UDPSenderManage.sendMainProtocol( command: 152, @@ -231,14 +232,14 @@ class RealTimePictureLogic extends BaseGetXController { if (seg >= 8) { return 0x7F ^ mask; } else { - uval = (seg << 4); - uval |= ((pcmVal >> (seg + 3)) & 0xF); + uval = seg << 4; + uval |= (pcmVal >> (seg + 3)) & 0xF; return uval ^ mask; } } int search(int val) { - List table = [ + final List table = [ 0xFF, 0x1FF, 0x3FF, @@ -248,7 +249,7 @@ class RealTimePictureLogic extends BaseGetXController { 0x3FFF, 0x7FFF ]; - int size = 8; + final int size = 8; for (int i = 0; i < size; i++) { if (val <= table[i]) { return i; @@ -264,15 +265,15 @@ class RealTimePictureLogic extends BaseGetXController { } rms = sqrt(rms / frame.length); - double dbfs = 20 * log(rms / 32767.0) / log(10); - double normalizedValue = (dbfs + 50) / 50; + final double dbfs = 20 * log(rms / 32767.0) / log(10); + final double normalizedValue = (dbfs + 50) / 50; return normalizedValue.clamp(0.0, 1.0); } Future getPermissionStatus() async { - Permission permission = Permission.microphone; + final Permission permission = Permission.microphone; //granted 通过,denied 被拒绝,permanentlyDenied 拒绝且不在提示 - PermissionStatus status = await permission.status; + final PermissionStatus status = await permission.status; if (status.isGranted) { return true; } else if (status.isDenied) { @@ -287,7 +288,7 @@ class RealTimePictureLogic extends BaseGetXController { ///申请权限 void requestPermission(Permission permission) async { - PermissionStatus status = await permission.request(); + final PermissionStatus status = await permission.request(); if (status.isPermanentlyDenied) { openAppSettings(); } @@ -295,7 +296,6 @@ class RealTimePictureLogic extends BaseGetXController { @override void onReady() { - // TODO: implement onReady super.onReady(); _getTVDataRefreshUIAction(); @@ -306,13 +306,11 @@ class RealTimePictureLogic extends BaseGetXController { @override void onInit() { - // TODO: implement onInit super.onInit(); } @override void onClose() { - // TODO: implement onClose CallTalk().finishAVData(); _getTVDataRefreshUIEvent!.cancel(); _getUDPStatusRefreshUIEvent!.cancel(); diff --git a/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart b/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart index f6ae83fc..1c86b6d7 100755 --- a/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart +++ b/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'dart:convert'; @@ -5,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/realTimePicture/realTimePicture_state.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import '../../../../app_settings/app_colors.dart'; @@ -19,19 +21,16 @@ class RealTimePicturePage extends StatefulWidget { State createState() => _RealTimePicturePageState(); } -class _RealTimePicturePageState extends State - with TickerProviderStateMixin { - final logic = Get.put(RealTimePictureLogic()); - final state = Get.find().state; +class _RealTimePicturePageState extends State with TickerProviderStateMixin { + final RealTimePictureLogic logic = Get.put(RealTimePictureLogic()); + final RealTimePictureState state = Get.find().state; @override void initState() { super.initState(); //写一个定时器,三十秒后页面自动返回 - state.autoBackTimer = Timer(const Duration(seconds: 30), () { - Get.back(); - }); + state.autoBackTimer = Timer(const Duration(seconds: 30), Get.back); state.animationController = AnimationController( vsync: this, // 确保使用的TickerProvider是当前Widget @@ -40,7 +39,7 @@ class _RealTimePicturePageState extends State ; state.animationController.repeat(); //动画开始、结束、向前移动或向后移动时会调用StatusListener - state.animationController.addStatusListener((status) { + state.animationController.addStatusListener((AnimationStatus status) { // AppLog.log("AnimationStatus:$status"); if (status == AnimationStatus.completed) { state.animationController.reset(); @@ -58,7 +57,7 @@ class _RealTimePicturePageState extends State void initiateUdpMonitorAction() { // 每隔一秒调用一次 udpMonitorAction 方法 state.realTimePicTimer = - Timer.periodic(const Duration(seconds: 1), (timer) { + Timer.periodic(const Duration(seconds: 1), (Timer timer) { state.elapsedSeconds++; logic.udpMonitorAction(); @@ -78,7 +77,7 @@ class _RealTimePicturePageState extends State height: 1.sh, child: Stack( alignment: Alignment.center, - children: [ + children: [ Obx( () => state.listData.value.isEmpty || state.listData.value.isEmpty ? Image.asset( @@ -109,7 +108,7 @@ class _RealTimePicturePageState extends State ? Positioned( bottom: 300.h, child: Text( - '正在创建安全连接...', + '正在创建安全连接...'.tr, style: TextStyle(color: Colors.black, fontSize: 26.sp), )) : Container()), @@ -123,7 +122,7 @@ class _RealTimePicturePageState extends State color: Colors.black.withOpacity(0.2), borderRadius: BorderRadius.circular(20.h)), child: Column( - children: [ + children: [ SizedBox(height: 20.h), bottomTopBtnWidget(), SizedBox(height: 20.h), @@ -141,7 +140,7 @@ class _RealTimePicturePageState extends State } Widget bottomTopBtnWidget() { - return Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + return Row(mainAxisAlignment: MainAxisAlignment.center, children: [ // 打开关闭声音 GestureDetector( onTap: () { @@ -156,9 +155,9 @@ class _RealTimePicturePageState extends State height: 40.w, image: state.isOpenVoice.value ? const AssetImage( - "images/main/icon_lockDetail_monitoringCloseVoice.png") + 'images/main/icon_lockDetail_monitoringCloseVoice.png') : const AssetImage( - "images/main/icon_lockDetail_monitoringOpenVoice.png"))), + 'images/main/icon_lockDetail_monitoringOpenVoice.png'))), ), ), SizedBox(width: 50.w), @@ -175,7 +174,7 @@ class _RealTimePicturePageState extends State width: 40.w, height: 40.w, image: const AssetImage( - "images/main/icon_lockDetail_monitoringScreenshot.png")), + 'images/main/icon_lockDetail_monitoringScreenshot.png')), ), ), SizedBox(width: 50.w), @@ -193,20 +192,20 @@ class _RealTimePicturePageState extends State height: 40.w, fit: BoxFit.fill, image: const AssetImage( - "images/main/icon_lockDetail_monitoringScreenRecording.png")), + 'images/main/icon_lockDetail_monitoringScreenRecording.png')), ), ), SizedBox(width: 50.w), GestureDetector( onTap: () { - logic.showToast('该功能暂未开放'); + logic.showToast('功能暂未开放'.tr); }, child: Image( width: 28.w, height: 28.w, fit: BoxFit.fill, image: - const AssetImage("images/main/icon_lockDetail_rectangle.png")) + const AssetImage('images/main/icon_lockDetail_rectangle.png')) // child: Container( // width: 50.w, // height: 50.w, @@ -223,12 +222,12 @@ class _RealTimePicturePageState extends State } Widget bottomBottomBtnWidget() { - return Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ + return Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ // 接听 Obx(() => bottomBtnItemWidget( getAnswerBtnImg(), getAnswerBtnName(), Colors.white, () async { //监视状态下不能发送录音 - logic.showToast("监视状态下不能发送录音"); + logic.showToast('监视状态下不能发送录音'.tr); }, longPress: () async { /* // 开始长按 @@ -259,15 +258,15 @@ class _RealTimePicturePageState extends State */ })), bottomBtnItemWidget( - "images/main/icon_lockDetail_hangUp.png", "挂断", Colors.red, () async { + 'images/main/icon_lockDetail_hangUp.png', '挂断', Colors.red, () async { // 挂断 logic.udpHangUpAction(); CallTalk().finishAVData(); Get.back(); }), - bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png", - "开锁", AppColors.mainColor, () { - logic.showToast("监视中暂不能开锁"); + bottomBtnItemWidget('images/main/icon_lockDetail_monitoringUnlock.png', + '开锁', AppColors.mainColor, () { + logic.showToast('监视中暂不能开锁'.tr); /* showDeletPasswordAlertDialog(context); */ @@ -278,29 +277,29 @@ class _RealTimePicturePageState extends State String getAnswerBtnImg() { switch (state.udpStatus.value) { case 8: - return "images/main/icon_lockDetail_monitoringUnTalkback.png"; + return 'images/main/icon_lockDetail_monitoringUnTalkback.png'; case 9: - return "images/main/icon_lockDetail_monitoringTalkback.png"; + return 'images/main/icon_lockDetail_monitoringTalkback.png'; default: - return "images/main/icon_lockDetail_monitoringUnTalkback.png"; + return 'images/main/icon_lockDetail_monitoringUnTalkback.png'; } } String getAnswerBtnName() { switch (state.udpStatus.value) { case 8: - return "长按说话"; + return '长按说话'.tr; case 9: - return "松开发送"; + return '松开发送'.tr; default: - return "长按说话"; + return '长按说话'.tr; } } Widget bottomBtnItemWidget( String iconUrl, String name, Color backgroundColor, Function() onClick, {Function()? longPress, Function()? longPressUp}) { - var wh = 80.w; + double wh = 80.w; return GestureDetector( onTap: onClick, onLongPress: longPress, @@ -309,7 +308,7 @@ class _RealTimePicturePageState extends State height: 140.h, child: Column( crossAxisAlignment: CrossAxisAlignment.center, - children: [ + children: [ Container( width: wh, height: wh, @@ -335,24 +334,24 @@ class _RealTimePicturePageState extends State context: context, builder: (BuildContext context) { return ShowTFView( - title: "请输入六位数字开锁密码", - tipTitle: "", + title: '请输入六位数字开锁密码'.tr, + tipTitle: '', controller: state.passwordTF, - inputFormatters: [ + inputFormatters: [ LengthLimitingTextInputFormatter(6), //限制长度 - FilteringTextInputFormatter.allow(RegExp("[0-9]")), + FilteringTextInputFormatter.allow(RegExp('[0-9]')), ], sureClick: () async { //发送删除锁请求 if (state.passwordTF.text.isEmpty) { - logic.showToast("请输入开锁密码"); + logic.showToast('请输入开锁密码'.tr); return; } // List numbers = state.passwordTF.text.split('').map((char) => int.parse(char)).toList(); // 开锁 // lockID - List numbers = []; + List numbers = []; List lockIDData = utf8.encode(state.passwordTF.text); numbers.addAll(lockIDData); // topBytes = getFixedLengthList(lockIDData, 20 - lockIDData.length); diff --git a/lib/main/lockDetail/realTimePicture/realTimePicture_state.dart b/lib/main/lockDetail/realTimePicture/realTimePicture_state.dart index a3fb1356..2d526965 100755 --- a/lib/main/lockDetail/realTimePicture/realTimePicture_state.dart +++ b/lib/main/lockDetail/realTimePicture/realTimePicture_state.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'dart:typed_data'; @@ -9,27 +10,31 @@ import 'package:network_info_plus/network_info_plus.dart'; import '../../../../tools/storage.dart'; class RealTimePictureState { - var isOpenVoice = false.obs; - var udpSendDataFrameNumber = 0; // 帧序号 + + RealTimePictureState() { + getLockName.value = Get.arguments['lockName'].toString(); + } + RxBool isOpenVoice = false.obs; + int udpSendDataFrameNumber = 0; // 帧序号 // var isSenderAudioData = false.obs;// 是否要发送音频数据 - var userMobileIP = NetworkInfo().getWifiIP(); - var userUid = Storage.getUid(); + Future userMobileIP = NetworkInfo().getWifiIP(); + Future userUid = Storage.getUid(); - var udpStatus = + RxInt udpStatus = 0.obs; //0:初始状态 1:等待监视 2: 3:监视中 4:呼叫成功 5:主角通话中 6:被叫通话 8:被叫通话中 9:长按说话 - var passwordTF = TextEditingController(); + TextEditingController passwordTF = TextEditingController(); - var listData = Uint8List(0).obs; //得到的视频流字节数据 - var listAudioData = [].obs; //得到的音频流字节数据 + Rx listData = Uint8List(0).obs; //得到的视频流字节数据 + RxList listAudioData = [].obs; //得到的音频流字节数据 late final VoiceProcessor? voiceProcessor; late Timer oneMinuteTimeTimer = Timer(const Duration(seconds: 1), () {}); // 定时器超过60秒关闭当前界面 - var oneMinuteTime = 0.obs; // 定时器秒数 + RxInt oneMinuteTime = 0.obs; // 定时器秒数 - var getLockName = ''.obs; //lockName + RxString getLockName = ''.obs; //lockName // 定时器如果发送了接听的命令 而没收到回复就每秒重复发送10次 late Timer answerTimer; @@ -41,9 +46,5 @@ class RealTimePictureState { Timer(const Duration(seconds: 1), () {}); //发送30秒监视后自动返回 late Timer realTimePicTimer = Timer(const Duration(seconds: 1), () {}); //监视命令定时器 - var elapsedSeconds = 0.obs; - - RealTimePictureState() { - getLockName.value = Get.arguments["lockName"].toString(); - } + RxInt elapsedSeconds = 0.obs; } diff --git a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart index b280dca7..7916fd7e 100644 --- a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart +++ b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_logic.dart @@ -68,7 +68,6 @@ class AddRemoteControlLogic extends BaseGetXController{ final List token = reply.data.sublist(5, 9); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); - AppLog.log('添加卡token:$token'); IoSenderManage.senderAddRemoteControlWithTimeCycleCoercionCommand( keyID:'1', diff --git a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart index 2f959d73..1ac865d1 100644 --- a/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart +++ b/lib/main/lockDetail/remoteControl/addRemoteControl/addRemoteControl_page.dart @@ -26,7 +26,7 @@ class _AddRemoteControlPageState extends State with RouteA return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '添加遥控', + barTitle: '添加遥控'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), diff --git a/lib/main/lockDetail/remoteControl/addRemoteControlType/addRemoteControlType_page.dart b/lib/main/lockDetail/remoteControl/addRemoteControlType/addRemoteControlType_page.dart index e699e23b..95f5a932 100755 --- a/lib/main/lockDetail/remoteControl/addRemoteControlType/addRemoteControlType_page.dart +++ b/lib/main/lockDetail/remoteControl/addRemoteControlType/addRemoteControlType_page.dart @@ -56,7 +56,7 @@ class _AddRemoteControlTypePageState extends State wit backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( barTitle: - '添加遥控', + '添加遥控'.tr, haveBack: true, backgroundColor: AppColors.mainColor), body: Column( diff --git a/lib/main/lockDetail/remoteControl/remoteControlDetail/remoteControlDetail_page.dart b/lib/main/lockDetail/remoteControl/remoteControlDetail/remoteControlDetail_page.dart index 51527ad3..e1261144 100755 --- a/lib/main/lockDetail/remoteControl/remoteControlDetail/remoteControlDetail_page.dart +++ b/lib/main/lockDetail/remoteControl/remoteControlDetail/remoteControlDetail_page.dart @@ -41,7 +41,7 @@ class _RemoteControlDetailPageState extends State with body: ListView( children: [ Obx(() => CommonItem( - leftTitel: '遥控号', + leftTitel: '遥控号'.tr, rightTitle: state.typeNumber.value, isHaveDirection: false, isHaveLine: true)), diff --git a/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_logic.dart b/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_logic.dart index bf959e07..be605206 100755 --- a/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_logic.dart +++ b/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_logic.dart @@ -211,13 +211,13 @@ class RemoteControlListLogic extends BaseGetXController{ String keyDateTypeStr = ''; // 永久:1;限时2,单次3,循环:4 if (fingerprintItemData.remoteType! == 1) { keyDateTypeStr = - '${DateTool().dateToYMDHNString((fingerprintItemData.createDate ?? 0).toString())} 永久'; + '${DateTool().dateToYMDHNString((fingerprintItemData.createDate ?? 0).toString())} ${'永久'.tr}'; } else if (fingerprintItemData.remoteType! == 2) { keyDateTypeStr = - '${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时'; + '${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} ${'限时'.tr}'; } else if (fingerprintItemData.remoteType! == 4) { keyDateTypeStr = - '${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环'; + '${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} ${'循环'.tr}'; } return keyDateTypeStr; } diff --git a/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart b/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart index 65819360..0d57cd24 100755 --- a/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart +++ b/lib/main/lockDetail/remoteControl/remoteControlList/remoteControlList_page.dart @@ -56,7 +56,7 @@ class _RemoteControlListPageState extends State with Rout backgroundColor: AppColors.mainBackgroundColor, resizeToAvoidBottomInset: false, appBar: TitleAppBar( - barTitle: '遥控', + barTitle: '遥控'.tr, haveBack: true, backgroundColor: AppColors.mainColor, actionsList: [ @@ -107,8 +107,7 @@ class _RemoteControlListPageState extends State with Rout SizedBox(height: 20.h), Expanded(child: _buildMainUI()), AddBottomWhiteBtn( - btnName: - '添加遥控', + btnName: '添加遥控'.tr, onClick: () async { await Get.toNamed(Routers.addRemoteControlTypePage, arguments: { diff --git a/lib/main/lockMian/demoMode/demoModeLockDetail/demoModeLockDetail_page.dart b/lib/main/lockMian/demoMode/demoModeLockDetail/demoModeLockDetail_page.dart index e029afbc..b33c0663 100755 --- a/lib/main/lockMian/demoMode/demoModeLockDetail/demoModeLockDetail_page.dart +++ b/lib/main/lockMian/demoMode/demoModeLockDetail/demoModeLockDetail_page.dart @@ -5,7 +5,6 @@ import 'package:get/get.dart'; import '../../../../appRouters.dart'; import '../../../../app_settings/app_colors.dart'; import '../../../../tools/titleAppBar.dart'; -import '../../../../translations/trans_lib.dart'; import '../../entity/lockListInfo_entity.dart'; import 'demoModeLockDetail_logic.dart'; @@ -30,7 +29,7 @@ class _DemoModeLockDetailPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '演示模式', + barTitle: '演示模式'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), @@ -62,7 +61,7 @@ class _DemoModeLockDetailPageState extends State { Row( children: [ Expanded( - child: Text('提示:当前界面为展示界面,添加设备后才能继续使用', + child: Text('提示:当前界面为展示界面,添加设备后才能继续使用'.tr, style: TextStyle( fontSize: 24.sp, color: AppColors.mainColor))), ], @@ -128,7 +127,7 @@ class _DemoModeLockDetailPageState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '门已上锁', + '门已上锁'.tr, style: TextStyle( fontSize: 26.sp, color: Colors.black, @@ -166,7 +165,7 @@ class _DemoModeLockDetailPageState extends State { width: 6.w, ), Text( - '超级管理员', + '超级管理员'.tr, style: TextStyle(fontSize: 20.sp, color: AppColors.btnDisableColor), ), @@ -280,7 +279,7 @@ class _DemoModeLockDetailPageState extends State { //可视对讲门锁新增->人脸 showWidgetArr.add( - bottomItem('images/main/icon_face.png', '人脸', () { + bottomItem('images/main/icon_face.png', '人脸'.tr, () { // gotoLogin(); Get.toNamed(Routers.faceListPage, arguments: { @@ -291,7 +290,7 @@ class _DemoModeLockDetailPageState extends State { //可视对讲门锁新增->监控 showWidgetArr.add( - bottomItem('images/main/icon_catEyes.png', '监控', gotoLogin), + bottomItem('images/main/icon_catEyes.png', '监控'.tr, gotoLogin), ); final List endWiddget = [ @@ -310,12 +309,12 @@ class _DemoModeLockDetailPageState extends State { arguments: {'keyInfo': LockListInfoItemEntity()}); }), // 视频日志 - bottomItem('images/main/icon_lockDetail_videoLog.png', '视频日志', () { + bottomItem('images/main/icon_lockDetail_videoLog.png', '视频日志'.tr, () { //视频日志 Get.toNamed(Routers.videoLogPage); }), // 消息提醒 - bottomItem('images/main/icon_lockDetail_messageReminding.png', '消息提醒', + bottomItem('images/main/icon_lockDetail_messageReminding.png', '消息提醒'.tr, () { Get.toNamed(Routers.msgNotificationPage); }), @@ -360,6 +359,6 @@ class _DemoModeLockDetailPageState extends State { void gotoLogin() { // Get.toNamed(Routers.selectLockTypePage); - logic.showToast('演示模式'); + logic.showToast('演示模式'.tr); } } diff --git a/lib/main/lockMian/demoMode/demoModeLockSet/demoModeLockSet_page.dart b/lib/main/lockMian/demoMode/demoModeLockSet/demoModeLockSet_page.dart index e82b78d5..31fc06b7 100755 --- a/lib/main/lockMian/demoMode/demoModeLockSet/demoModeLockSet_page.dart +++ b/lib/main/lockMian/demoMode/demoModeLockSet/demoModeLockSet_page.dart @@ -75,7 +75,7 @@ class _DemoModeLockSetPageState extends State { }), // 照明 CommonItem( - leftTitel: '照明', + leftTitel: '照明'.tr, rightTitle: '', isHaveLine: true, isHaveDirection: true, @@ -160,7 +160,7 @@ class _DemoModeLockSetPageState extends State { SizedBox(height: 10.h), //---田总新增展示 CommonItem( - leftTitel: '面容开锁', + leftTitel: '面容开锁'.tr, rightTitle: '', isHaveLine: true, isHaveDirection: true, @@ -168,7 +168,7 @@ class _DemoModeLockSetPageState extends State { gotoAddLock(); }), CommonItem( - leftTitel: '消息提醒', + leftTitel: '消息提醒'.tr, rightTitle: '', isHaveLine: true, isHaveDirection: true, @@ -176,7 +176,7 @@ class _DemoModeLockSetPageState extends State { gotoAddLock(); }), CommonItem( - leftTitel: '猫眼设置', + leftTitel: '猫眼设置'.tr, rightTitle: '', isHaveLine: true, isHaveDirection: true, @@ -184,7 +184,7 @@ class _DemoModeLockSetPageState extends State { gotoAddLock(); }), CommonItem( - leftTitel: '开门方向设置', + leftTitel: '开门方向设置'.tr, rightTitle: '', isHaveDirection: true, isHaveLine: true, @@ -192,7 +192,7 @@ class _DemoModeLockSetPageState extends State { gotoAddLock(); }), CommonItem( - leftTitel: '电机功率设置', + leftTitel: '电机功率设置'.tr, rightTitle: '', isHaveLine: true, isHaveDirection: true, @@ -200,12 +200,12 @@ class _DemoModeLockSetPageState extends State { gotoAddLock(); }), // 支持蓝牙广播(关闭则不能使用蓝牙主动开锁) - CommonItem( - leftTitel: '蓝牙广播', - rightTitle: '', - isHaveLine: false, - isHaveRightWidget: true, - rightWidget: _lockRemindSwitch()), + // CommonItem( + // leftTitel: '蓝牙广播', + // rightTitle: '', + // isHaveLine: false, + // isHaveRightWidget: true, + // rightWidget: _lockRemindSwitch()), // ), SizedBox(height: 10.h), //-----新增至此 @@ -299,7 +299,7 @@ class _DemoModeLockSetPageState extends State { padding: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 30.h), child: SubmitBtn( - btnName: '退出演示模式', + btnName: '退出演示模式'.tr, isDelete: true, onClick: () { Get.close(2); @@ -338,6 +338,6 @@ class _DemoModeLockSetPageState extends State { void gotoAddLock() { // Get.toNamed(Routers.selectLockTypePage); - EasyLoading.showToast('演示模式', duration: 2000.milliseconds); + EasyLoading.showToast('演示模式'.tr, duration: 2000.milliseconds); } } diff --git a/lib/main/lockMian/entity/lockListInfo_entity.dart b/lib/main/lockMian/entity/lockListInfo_entity.dart index 839c8248..332f8dce 100755 --- a/lib/main/lockMian/entity/lockListInfo_entity.dart +++ b/lib/main/lockMian/entity/lockListInfo_entity.dart @@ -1,8 +1,4 @@ class LockListInfoEntity { - int? errorCode; - String? description; - String? errorMsg; - LockListInfoGroupEntity? data; LockListInfoEntity( {this.errorCode, this.description, this.errorMsg, this.data}); @@ -15,6 +11,10 @@ class LockListInfoEntity { ? LockListInfoGroupEntity.fromJson(json['data']) : null; } + int? errorCode; + String? description; + String? errorMsg; + LockListInfoGroupEntity? data; Map toJson() { final Map data = {}; @@ -29,11 +29,6 @@ class LockListInfoEntity { } class LockListInfoGroupEntity { - List? groupList; - int? pageNo; - int? pageSize; - int? pages; - int? total; LockListInfoGroupEntity( {this.groupList, this.pageNo, this.pageSize, this.pages, this.total}); @@ -50,6 +45,11 @@ class LockListInfoGroupEntity { pages = json['pages']; total = json['total']; } + List? groupList; + int? pageNo; + int? pageSize; + int? pages; + int? total; Map toJson() { final Map data = {}; @@ -65,15 +65,6 @@ class LockListInfoGroupEntity { } class GroupList { - String? groupName; - int? groupId; - List? lockList; - - bool _isChecked = false; - - bool get isChecked => _isChecked ?? false; - - set isChecked(bool value) => _isChecked = value; GroupList({this.groupName, this.groupId, this.lockList}); @@ -87,6 +78,15 @@ class GroupList { }); } } + String? groupName; + int? groupId; + List? lockList; + + bool _isChecked = false; + + bool get isChecked => _isChecked ?? false; + + set isChecked(bool value) => _isChecked = value; Map toJson() { final Map data = {}; @@ -108,43 +108,6 @@ class GroupList { } class LockListInfoItemEntity { - int? keyId; - int? lockId; - String? lockName; - String? lockAlias; - int? electricQuantity; - String? fwVersion; - String? hwVersion; - int? keyType; - int? passageMode; - int? userType; - int? startDate; - int? endDate; - List? weekDays; - int? remoteEnable; - int? faceAuthentication; //是否实名认证:0-未知,1-是,2-否 - int? lastFaceValidateTime; - int? nextFaceValidateTime; //下次人脸认证时间 - int? keyRight; - int? keyStatus; - int? isLockOwner; - int? sendDate; - int? lockUserNo; - int? senderUserId; - int? electricQuantityDate; - int? electricQuantityStandby; - int? isOnlyManageSelf; - int? restoreCount; - String? model; - String? vendor; - Bluetooth? bluetooth; - LockFeature? lockFeature; - LockSetting? lockSetting; - int? hasGateway; - int? appUnlockOnline; - String? mac; - int? initUserNo; - int? updateDate; LockListInfoItemEntity({ this.keyId, @@ -231,6 +194,43 @@ class LockListInfoItemEntity { initUserNo = json['initUserNo']; updateDate = json['updateDate']; } + int? keyId; + int? lockId; + String? lockName; + String? lockAlias; + int? electricQuantity; + String? fwVersion; + String? hwVersion; + int? keyType; + int? passageMode; + int? userType; + int? startDate; + int? endDate; + List? weekDays; + int? remoteEnable; + int? faceAuthentication; //是否实名认证:0-未知,1-是,2-否 + int? lastFaceValidateTime; + int? nextFaceValidateTime; //下次人脸认证时间 + int? keyRight; + int? keyStatus; + int? isLockOwner; + int? sendDate; + int? lockUserNo; + int? senderUserId; + int? electricQuantityDate; + int? electricQuantityStandby; + int? isOnlyManageSelf; + int? restoreCount; + String? model; + String? vendor; + Bluetooth? bluetooth; + LockFeature? lockFeature; + LockSetting? lockSetting; + int? hasGateway; + int? appUnlockOnline; + String? mac; + int? initUserNo; + int? updateDate; Map toJson() { final Map data = {}; @@ -291,11 +291,6 @@ class LockListInfoItemEntity { } class Bluetooth { - String? bluetoothDeviceId; - String? bluetoothDeviceName; - List? publicKey; - List? privateKey; - List? signKey; Bluetooth( {this.bluetoothDeviceId, @@ -311,6 +306,11 @@ class Bluetooth { privateKey = json['privateKey'].cast(); signKey = json['signKey'].cast(); } + String? bluetoothDeviceId; + String? bluetoothDeviceName; + List? publicKey; + List? privateKey; + List? signKey; Map toJson() { final Map data = {}; @@ -324,17 +324,6 @@ class Bluetooth { } class LockFeature { - int? password; - int? icCard; - int? fingerprint; - int? fingerVein; - int? palmVein; - int? isSupportIris; - int? d3Face; - int? bluetoothRemoteControl; - int? videoIntercom; - int? isSupportCatEye; - int? isSupportBackupBattery; LockFeature({ this.password, @@ -363,6 +352,17 @@ class LockFeature { isSupportCatEye = json['isSupportCatEye']; isSupportBackupBattery = json['isSupportBackupBattery']; } + int? password; + int? icCard; + int? fingerprint; + int? fingerVein; + int? palmVein; + int? isSupportIris; + int? d3Face; + int? bluetoothRemoteControl; + int? videoIntercom; + int? isSupportCatEye; + int? isSupportBackupBattery; Map toJson() { final Map data = {}; @@ -382,9 +382,6 @@ class LockFeature { } class LockSetting { - int? attendance; - int? appUnlockOnline; - int? remoteUnlock; LockSetting({ this.attendance, @@ -397,6 +394,9 @@ class LockSetting { appUnlockOnline = json['appUnlockOnline']; remoteUnlock = json['remoteUnlock']; } + int? attendance; + int? appUnlockOnline; + int? remoteUnlock; Map toJson() { final Map data = {}; diff --git a/lib/main/lockMian/lockList/lockList_logic.dart b/lib/main/lockMian/lockList/lockList_logic.dart index 3d3b5bc5..f8e324c9 100755 --- a/lib/main/lockMian/lockList/lockList_logic.dart +++ b/lib/main/lockMian/lockList/lockList_logic.dart @@ -1,6 +1,6 @@ + import 'dart:async'; -import 'package:common_utils/common_utils.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -20,7 +20,6 @@ import '../../../tools/dateTool.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/showTipView.dart'; import '../../../tools/storage.dart'; -import '../../../translations/trans_lib.dart'; import '../entity/lockListInfo_entity.dart'; import 'lockList_state.dart'; @@ -42,7 +41,6 @@ class LockListLogic extends BaseGetXController { !(element.lockAlias?.contains(state.searchStr.value) ?? true)); }); } - // AppLog.log('lockList!.length:${_groupDataList[0].lockList!.length}'); return list; } @@ -53,7 +51,6 @@ class LockListLogic extends BaseGetXController { _groupDataList = []; } _groupDataList.addAll(entity.groupList!); - // AppLog.log('_groupDataList[0].lockList!.length:${_groupDataList[0].lockList!.length}'); update(); } @@ -103,7 +100,7 @@ class LockListLogic extends BaseGetXController { case 0x07: //无权限 dismissEasyLoading(); - showToast('用户无权限'); + showToast('用户无权限'.tr); break; case 0x09: // 权限校验错误 diff --git a/lib/main/lockMian/lockList/lockList_page.dart b/lib/main/lockMian/lockList/lockList_page.dart index 6871b95e..793790d8 100755 --- a/lib/main/lockMian/lockList/lockList_page.dart +++ b/lib/main/lockMian/lockList/lockList_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; @@ -273,7 +274,6 @@ class _LockListPageState extends State with RouteAware { @override void didChangeDependencies() { - // TODO: implement didChangeDependencies super.didChangeDependencies(); /// 路由订阅 @@ -282,7 +282,6 @@ class _LockListPageState extends State with RouteAware { @override void dispose() { - // TODO: implement dispose /// 取消路由订阅 AppRouteObserver().routeObserver.unsubscribe(this); super.dispose(); diff --git a/lib/main/lockMian/lockList/lockList_xhj_page.dart b/lib/main/lockMian/lockList/lockList_xhj_page.dart index 8937b161..326d920a 100755 --- a/lib/main/lockMian/lockList/lockList_xhj_page.dart +++ b/lib/main/lockMian/lockList/lockList_xhj_page.dart @@ -1,8 +1,8 @@ + 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/app_settings/app_settings.dart'; import 'package:star_lock/main/lockMian/lockList/lockList_state.dart'; import '../../../appRouters.dart'; diff --git a/lib/main/lockMian/lockMain/lockMain_logic.dart b/lib/main/lockMian/lockMain/lockMain_logic.dart index 295f121d..fd1305c4 100755 --- a/lib/main/lockMian/lockMain/lockMain_logic.dart +++ b/lib/main/lockMian/lockMain/lockMain_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'dart:io'; import 'package:connectivity_plus/connectivity_plus.dart'; diff --git a/lib/main/lockMian/lockMain/lockMain_page.dart b/lib/main/lockMian/lockMain/lockMain_page.dart index a93b3a8e..6bf9e5ed 100755 --- a/lib/main/lockMian/lockMain/lockMain_page.dart +++ b/lib/main/lockMian/lockMain/lockMain_page.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; @@ -18,7 +19,6 @@ import '../../../tools/EasyRefreshTool.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/storage.dart'; import '../../../tools/titleAppBar.dart'; -import '../../../translations/trans_lib.dart'; import '../../lockDetail/lockDetail/lockDetail_page.dart'; import '../entity/lockListInfo_entity.dart'; import '../lockList/lockList_page.dart'; @@ -219,7 +219,7 @@ class _StarLockMainPageState extends State Container() else SubmitBtn( - btnName: '演示模式', + btnName: '演示模式'.tr, onClick: () { Get.toNamed(Routers.demoModeLockDetailPage); }, diff --git a/lib/main/lockMian/lockMain/lockMain_state.dart b/lib/main/lockMian/lockMain/lockMain_state.dart index f7cf04c4..cb50a8e2 100755 --- a/lib/main/lockMian/lockMain/lockMain_state.dart +++ b/lib/main/lockMian/lockMain/lockMain_state.dart @@ -7,11 +7,11 @@ import '../entity/lockListInfo_entity.dart'; class LockMainState { // 0是无数据 1是有一条数据 2是有很多条数据 - var dataLength = 100.obs; - var lockListInfoGroupEntity = LockListInfoGroupEntity().obs; + RxInt dataLength = 100.obs; + Rx lockListInfoGroupEntity = LockListInfoGroupEntity().obs; // 网络连接状态 0没有网络 1有网络 - var networkConnectionStatus = 0.obs; + RxInt networkConnectionStatus = 0.obs; // late Timer timer; } \ No newline at end of file diff --git a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart index 32aa6cf9..e34da23e 100755 --- a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart +++ b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -5,7 +6,6 @@ import 'package:star_lock/app_settings/app_colors.dart'; 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_xhj_page.dart'; import 'package:star_lock/mine/mineSet/mineSet/mineSet_page.dart'; diff --git a/lib/talk/call/callTalk.dart b/lib/talk/call/callTalk.dart index 8e1670db..1404c30f 100755 --- a/lib/talk/call/callTalk.dart +++ b/lib/talk/call/callTalk.dart @@ -1,11 +1,13 @@ + import 'dart:typed_data'; + import 'package:flutter/foundation.dart'; -import 'package:get/get.dart'; +import 'package:flutter_pcm_sound/flutter_pcm_sound.dart'; import 'package:star_lock/talk/call/g711.dart'; import 'package:star_lock/talk/call/iFrameInfo.dart'; + import '../../app_settings/app_settings.dart'; import '../../tools/eventBusEventManage.dart'; -import 'package:flutter_pcm_sound/flutter_pcm_sound.dart'; class CallTalk { static CallTalk? _manager; @@ -40,7 +42,7 @@ class CallTalk { // 音频数据 if (bb[61] == 1) { // AppLog.log('音频数据来了'); - Uint8List g711Data = bb.sublist(77, bb.length); + final Uint8List g711Data = bb.sublist(77, bb.length); List pcmBytes; try { @@ -63,26 +65,26 @@ class CallTalk { else { // AppLog.log('********视频数据来了'); // 音视频数据开始下标 - var bagLen = bb[POS_blen + 2] + bb[POS_blen + 3] * 256; + final int bagLen = bb[POS_blen + 2] + bb[POS_blen + 3] * 256; // AppLog.log('音视频数据开始下标 bagLen:$bagLen'); // 获取帧序号 63 - int getIframeIndex = + final int getIframeIndex = bb[POS_iframe_index] + bb[POS_iframe_index + 1] * 256; // AppLog.log('获取帧序号 getIframeIndex:$getIframeIndex'); // 获取帧长度 65 - int alen = bb[POS_alen] + bb[POS_alen + 1] * 256; + final int alen = bb[POS_alen] + bb[POS_alen + 1] * 256; // AppLog.log('获取帧长度 alen:$alen'); // 当前包号 71 - int getBagIndex = bb[POS_bag_index] & 0xff; + final int getBagIndex = bb[POS_bag_index] & 0xff; // AppLog.log('当前包号 getBagIndex:$getBagIndex'); // 总包数 69 - int getBagNum = bb[POS_bag_num] & 0xff; + final int getBagNum = bb[POS_bag_num] & 0xff; // AppLog.log('总包数 getBagNum:$getBagNum'); // 数据长度 73 - int blen = bb[POS_blen] + bb[POS_blen + 1] * 256; + final int blen = bb[POS_blen] + bb[POS_blen + 1] * 256; // AppLog.log('数据长度 blen:$blen'); // 这里判断是否是同一帧,如果不是同一帧就重新创建一个 IframeInfo @@ -91,7 +93,7 @@ class CallTalk { iframe!.iframeIndex = getIframeIndex; iframe!.bagNum = getBagNum; iframe!.cur_len = alen; - iframe!.bb = []; + iframe!.bb = []; // growableList = iframe!.bb!.toList(growable: true); } @@ -99,7 +101,7 @@ class CallTalk { // 如果是同一帧就添加起来 if (getIframeIndex == iframe!.iframeIndex) { - var getList = bb.sublist(POS_data, bb.length); + final Uint8List getList = bb.sublist(POS_data, bb.length); iframe!.bb!.addAll(getList); } // AppLog.log( @@ -124,7 +126,7 @@ class CallTalk { Future _initializeAudioPlayer(List audioData) async { // AppLog.log('_initializeAudioPlayer audioData:$audioData'); - PcmArrayInt16 fromList = PcmArrayInt16.fromList(audioData); + final PcmArrayInt16 fromList = PcmArrayInt16.fromList(audioData); await FlutterPcmSound.feed(fromList); FlutterPcmSound.play(); } @@ -151,6 +153,6 @@ class CallTalk { iframe!.iframeIndex = 0; iframe!.bagNum = 0; iframe!.bagReceive = 0; - iframe!.bb = []; + iframe!.bb = []; } } diff --git a/lib/talk/call/g711.dart b/lib/talk/call/g711.dart index aaf3afcc..d848bede 100755 --- a/lib/talk/call/g711.dart +++ b/lib/talk/call/g711.dart @@ -3,8 +3,8 @@ import 'package:flutter/services.dart'; class G711 { Future> readAssetFile(String assetPath) async { - ByteData data = await rootBundle.load(assetPath); - List bytes = data.buffer.asUint8List(); + final ByteData data = await rootBundle.load(assetPath); + final List bytes = data.buffer.asUint8List(); return bytes; } @@ -23,13 +23,13 @@ class G711 { //711解码为pcm数据 List convertList(List aLawList) { // 将 ALawToLinear 函数应用于 List - List linearList = aLawList.map(ALawToLinear).toList(); + final List linearList = aLawList.map(ALawToLinear).toList(); return linearList; } //List转为Uint8List Uint8List convertToInt8ListLittleEndian(List intList) { - List int8List = []; + final List int8List = []; for (int intValue in intList) { intValue = intValue * 2; diff --git a/lib/talk/udp/io_protocol/udp_heart.dart b/lib/talk/udp/io_protocol/udp_heart.dart index 3ed4e84c..763ff321 100755 --- a/lib/talk/udp/io_protocol/udp_heart.dart +++ b/lib/talk/udp/io_protocol/udp_heart.dart @@ -20,7 +20,7 @@ class UDPSendHeartCommand extends UDPSenderProtocol { @override List messageDetail() { - List data = []; + List data = []; // 命令 data.add(4); @@ -39,10 +39,10 @@ class UDPSendHeartCommand extends UDPSenderProtocol { // var macAddress = "02:00:00:00:00:00"; // data.addAll(utf8.encode(macAddress)); // data = getFixedLengthList(data, 6 - utf8.encode(macAddress).length); - data.addAll([0, 0, 0, 0, 0, 0]); + data.addAll([0, 0, 0, 0, 0, 0]); // 预留4个字节 - data.addAll([0, 0, 0, 0]); + data.addAll([0, 0, 0, 0]); // ip地址 // var ipStr = "192.168.9.7"; @@ -51,22 +51,21 @@ class UDPSendHeartCommand extends UDPSenderProtocol { data.addAll(ipList!); // 预留8个字节 - data.addAll([0, 0, 0, 0, 0, 0, 0, 0]); + data.addAll([0, 0, 0, 0, 0, 0, 0, 0]); // token - var token = "token"; + const String token = 'token'; data.addAll(gbk.encode(token)); data = getFixedLengthList(data, 10 - gbk.encode(token).length); // AppLog.log("gbk.encode(token):${gbk.encode(token)}"); - // tokenStr // var tokenStr = "b989fa15f75c2ac02718b7c9bb64f80e"; data.addAll(gbk.encode(tokenStr!)); // AppLog.log("gbk.encode(tokenStr):${gbk.encode(tokenStr!)}"); - var tokenStrLength = gbk.encode(tokenStr!).length; - List tokenStrLengthArr = []; - tokenStrLengthArr.add((tokenStrLength & 0xff)); + final int tokenStrLength = gbk.encode(tokenStr!).length; + final List tokenStrLengthArr = []; + tokenStrLengthArr.add(tokenStrLength & 0xff); tokenStrLengthArr.add((tokenStrLength & 0xff00) >> 8); tokenStrLengthArr.add((tokenStrLength & 0xff0000) >> 16); tokenStrLengthArr.add((tokenStrLength & 0xff000000) >> 24); diff --git a/lib/talk/udp/udp_help.dart b/lib/talk/udp/udp_help.dart index 35b000b4..b1a293d2 100755 --- a/lib/talk/udp/udp_help.dart +++ b/lib/talk/udp/udp_help.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:io'; import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifiEntity.dart'; import '../../network/api_repository.dart'; import '../../tools/storage.dart'; @@ -13,41 +14,41 @@ class UdpHelp { openUDP() async { // 从服务器获取ip跟端口 - var entity = await ApiRepository.to.getWifiLockServiceIpAndPort(); + final ConfiguringWifiEntity entity = await ApiRepository.to.getWifiLockServiceIpAndPort(); if (entity.errorCode! == 0) { UDPManage(); // UDPManage().initUdp(); UDPManage().port = int.parse(entity.data!.serviceList![0].port!); - var serversList = []; + final List serversList = []; for (int i = 0; i < entity.data!.serviceList!.length; i++) { - var item = entity.data!.serviceList![i]; - if (item.serviceIp!.contains("192")) { + final ServiceList item = entity.data!.serviceList![i]; + if (item.serviceIp!.contains('192')) { UDPManage().host = entity.data!.serviceList![0].serviceIp!; - var itemList = item.serviceIp!.split("."); - for (var element in itemList) { + final List itemList = item.serviceIp!.split('.'); + for (String element in itemList) { serversList.add(int.parse(element)); } } else { - List addresses = + final List addresses = await InternetAddress.lookup(item.serviceIp!); UDPManage().host = addresses.first.address; - var itemList = addresses.first.address.split("."); - for (var element in itemList) { + final List itemList = addresses.first.address.split('.'); + for (String element in itemList) { serversList.add(int.parse(element)); } // AppLog.log('Resolved google.com to address: ${addresses.first.address} serversList:$serversList'); } } - var uid = await Storage.getUid(); - udpHeartTimer = Timer.periodic(1.seconds, (timer) async { - getLoginStatus().then((value) { + final String? uid = await Storage.getUid(); + udpHeartTimer = Timer.periodic(1.seconds, (Timer timer) async { + getLoginStatus().then((bool value) { if (value) { UDPSenderManage.sendHeart( userName: uid, ipList: serversList, - tokenStr: "b989fa15f75c2ac02718b7c9bb64f80e", + tokenStr: 'b989fa15f75c2ac02718b7c9bb64f80e', ); // AppLog.log('发送心跳了'); } else { @@ -59,7 +60,7 @@ class UdpHelp { } Future getLoginStatus() async { - final data = await Storage.getString(saveUserLoginData); + final String? data = await Storage.getString(saveUserLoginData); if (data != null && data.isNotEmpty) { return true; } diff --git a/lib/talk/udp/udp_reciverData.dart b/lib/talk/udp/udp_reciverData.dart index c5f70481..ba2b0a8a 100755 --- a/lib/talk/udp/udp_reciverData.dart +++ b/lib/talk/udp/udp_reciverData.dart @@ -1,9 +1,9 @@ + import 'dart:typed_data'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; import 'package:star_lock/talk/udp/udp_manage.dart'; -import 'package:star_lock/tools/storage.dart'; import '../../app_settings/app_settings.dart'; import '../../blue/io_tool/io_tool.dart'; @@ -17,16 +17,16 @@ class CommandUDPReciverManager { if (data.isEmpty) { return; } - int dataSize = data.length; + final int dataSize = data.length; if (dataSize < 4) { return; } // AppLog.log("appReceiveUDPData:$data"); - Uint8List data1 = Uint8List.fromList(data); + final Uint8List data1 = Uint8List.fromList(data); if (data1.length == 1) { if (data[0] == 0x30 || data[0] == 0x31) { - AppLog.log("p2p打洞"); + AppLog.log('p2p打洞'); } } @@ -35,7 +35,7 @@ class CommandUDPReciverManager { // AppLog.log("心跳包反馈 在线状态"); } else if (data[7] == 3) { // [Toast.show(msg: "您已在其他设备登录")]; - EasyLoading.showToast("您已在其他设备登录", duration: 2000.milliseconds); + EasyLoading.showToast('您已在其他设备登录'.tr, duration: 2000.milliseconds); } } else if (data[6] == 150) { // if( [Pub getApp].isBack){ @@ -44,15 +44,15 @@ class CommandUDPReciverManager { // } // 对讲命令 - var beiCallType = data[8] & 0xff; + final beiCallType = data[8] & 0xff; // AppLog.log("被呼叫类型$beiCallType"); switch (beiCallType) { case 1: { //被叫 // lockId - var lockId = data.sublist(9, 29); - var lockIdStr = utf8String(lockId); + final lockId = data.sublist(9, 29); + final lockIdStr = utf8String(lockId); UDPManage().lockId = lockIdStr; UDPTalkClass().status = 0; UDPTalkClass().beCallW(data: data); @@ -63,7 +63,7 @@ class CommandUDPReciverManager { //接听 if ((data[7] & 0x3) == 2) { //被叫 接听反馈 - AppLog.log("接听反馈"); + AppLog.log('接听反馈'); UDPTalkClass().status = 8; // 停止声音 UDPTalkClass().stopLocalAudio(); @@ -77,7 +77,7 @@ class CommandUDPReciverManager { { //音视频数据 // AppLog.log("音视频数据"); - CallTalk cllTalk = CallTalk(); + final CallTalk cllTalk = CallTalk(); cllTalk.getAVData(data1, data1.length); } break; @@ -95,13 +95,13 @@ class CommandUDPReciverManager { case 10: { //开门反馈 - AppLog.log("appReceiveUDPData:$data"); + AppLog.log('appReceiveUDPData:$data'); if ((data[7] & 0x3) == 2) { - AppLog.log("开门成功"); - EasyLoading.showToast("开门成功", duration: 2000.milliseconds); + AppLog.log('开门成功'); + EasyLoading.showToast('开门成功'.tr, duration: 2000.milliseconds); } else { - AppLog.log("开门失败"); - EasyLoading.showToast("开门失败", duration: 2000.milliseconds); + AppLog.log('开门失败'); + EasyLoading.showToast('开门失败'.tr, duration: 2000.milliseconds); } } break; @@ -111,10 +111,10 @@ class CommandUDPReciverManager { // 挂断 if ((data[7] & 0x3) == 1) { // 对方结束对讲 - AppLog.log("对方结束对讲"); + AppLog.log('对方结束对讲'); } else { //结束对讲反馈 - AppLog.log("结束对讲反馈"); + AppLog.log('结束对讲反馈'); } // UDPTalkClass().status = 0; // UDPTalkClass().isBeCall = false; @@ -145,7 +145,7 @@ class CommandUDPReciverManager { case 143: { //p2p测试 NSAsk - AppLog.log("p2pNSAskNSAsk"); + AppLog.log('p2pNSAskNSAsk'); } break; default: @@ -157,13 +157,13 @@ class CommandUDPReciverManager { case 2: { //被叫 - AppLog.log("对方忙"); + AppLog.log('对方忙'); } break; case 4: { //监视成功 - AppLog.log("监视成功"); + AppLog.log('监视成功'); UDPTalkClass().status = 8; eventBus.fire(GetUDPStatusMonitorUI(UDPTalkClass().status)); } @@ -173,7 +173,7 @@ class CommandUDPReciverManager { { //音视频数据 // AppLog.log("音视频数据"); - CallTalk cllTalk = CallTalk(); + final CallTalk cllTalk = CallTalk(); cllTalk.getAVData(data1, data1.length); } break; @@ -193,12 +193,12 @@ class CommandUDPReciverManager { { //开门反馈 if ((data[7] & 0x3) == 2) { - AppLog.log("开门成功"); + AppLog.log('开门成功'); // Toast.show(msg: "开门成功"); - EasyLoading.showToast("开门成功", duration: 2000.milliseconds); + EasyLoading.showToast('开门成功'.tr, duration: 2000.milliseconds); } else { - AppLog.log("开门失败"); - EasyLoading.showToast("开门失败", duration: 2000.milliseconds); + AppLog.log('开门失败'); + EasyLoading.showToast('开门失败'.tr, duration: 2000.milliseconds); } } break; @@ -209,10 +209,10 @@ class CommandUDPReciverManager { // 监视结束 if ((data[7] & 0x3) == 1) { // 对方结束监视 - AppLog.log("对方结束监视"); + AppLog.log('对方结束监视'); } else { //结束监视反馈 - AppLog.log("结束监视反馈"); + AppLog.log('结束监视反馈'); } // Toast.show(msg: "对方已结束监视"); diff --git a/lib/talk/udp/udp_senderManage.dart b/lib/talk/udp/udp_senderManage.dart index 5899a888..d36d80eb 100755 --- a/lib/talk/udp/udp_senderManage.dart +++ b/lib/talk/udp/udp_senderManage.dart @@ -6,7 +6,7 @@ import 'udp_senderData.dart'; class UDPSenderManage { - //todo:UDP心跳 + // UDP心跳 static void sendHeart({String? userName, List? ipList, String? tokenStr, CommandUDPSendCallBack? callBack}) { CommandUDPSenderManager().managerSendData(command: UDPSendHeartCommand( userName: userName, @@ -15,7 +15,7 @@ class UDPSenderManage { ), callBack: callBack); } - //todo:主通讯协议 + // 主通讯协议 static void sendMainProtocol({ int? command, int? commandTypeIsCalling, diff --git a/lib/talk/udp/udp_talkClass.dart b/lib/talk/udp/udp_talkClass.dart index 4df516ee..e69476b2 100755 --- a/lib/talk/udp/udp_talkClass.dart +++ b/lib/talk/udp/udp_talkClass.dart @@ -4,6 +4,7 @@ import 'package:fast_gbk/fast_gbk.dart'; import 'package:flutter/services.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:get/get.dart'; +import 'package:star_lock/login/login/entity/LoginData.dart'; import 'package:star_lock/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; @@ -13,31 +14,31 @@ import '../../tools/storage.dart'; import 'udp_manage.dart'; class UDPTalkClass { + + factory UDPTalkClass() => _share(); + + UDPTalkClass._init(); static UDPTalkClass? _manager; static UDPTalkClass _share() { _manager ??= UDPTalkClass._init(); return _manager!; } - - factory UDPTalkClass() => _share(); UDPTalkClass get manager => _share(); - UDPTalkClass._init(); - // var status = 0; //0:初始状态 1:等待监视 2: 3:监视中 4:呼叫成功 5:主角通话中 6:被叫通话 8:被叫通话中 int status = 0; var remoteEquid; // 手机号 late Timer talkTimer; // 该字段是为了判断是否跳转到接听界面 挂断或者退出接听界面要记得变更状态 - var isBeCall = false; - var isEndCall = false; //是否已经调用结束对讲 - final audioPlayer = AudioPlayer(); - var playLocalAudioSecond = 0; + bool isBeCall = false; + bool isEndCall = false; //是否已经调用结束对讲 + final AudioPlayer audioPlayer = AudioPlayer(); + int playLocalAudioSecond = 0; late Timer playLocalAudioTimer; beCallW({List? data, String? ip, int? port}) async { - AppLog.log("beCall status:$status"); + AppLog.log('beCall status:$status'); // if (await isCallMe(data)) { // return; // } @@ -69,13 +70,13 @@ class UDPTalkClass { if (isBeCall == false) { isBeCall = true; // 保持连接 - talkTimer = Timer.periodic(1.seconds, (timer) { + talkTimer = Timer.periodic(1.seconds, (Timer timer) { data[7] = 1; data[8] = 9; UDPManage().sendData(data); }); - Get.toNamed(Routers.lockMonitoringPage, arguments: {"lockId": "111"}); + Get.toNamed(Routers.lockMonitoringPage, arguments: {'lockId': '111'}); } final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = @@ -87,7 +88,7 @@ class UDPTalkClass { AppLog.log('已经结束对讲1'); return; } - playLocalAudioTimer = Timer.periodic(const Duration(seconds: 1), (timer) { + playLocalAudioTimer = Timer.periodic(const Duration(seconds: 1), (Timer timer) { playLocalAudioSecond++; // AppLog.log('还在工作么这个定时器$playLocalAudioSecond'); // 检查条件,如果达到60秒且未得到应答,则认为失败 @@ -114,16 +115,16 @@ class UDPTalkClass { ticker: 'ticker'); const NotificationDetails platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics); - var getLockName = await Storage.getString(saveLockAlias); + String? getLockName = await Storage.getString(saveLockAlias); await flutterLocalNotificationsPlugin.show( - 0, '呼叫提醒', '收到来自($getLockName)锁的呼叫。', platformChannelSpecifics, + 0, '呼叫提醒'.tr, '${'收到来自'.tr}($getLockName)${'锁的呼叫'.tr}。', platformChannelSpecifics, payload: 'item x'); } // 判断是否是call的本人 Future isCallMe(List? data) async { - final loginData = await Storage.getLoginData(); - AppLog.log("getEquidFrombb(data, 1000):${getEquidFrombb(data, 12)}"); + final LoginData? loginData = await Storage.getLoginData(); + AppLog.log('getEquidFrombb(data, 1000):${getEquidFrombb(data, 12)}'); if (loginData!.mobile == getEquidFrombb(data, 12)) { return true; } @@ -131,7 +132,7 @@ class UDPTalkClass { } String getEquidFrombb(List? bb, int pos) { - var equid = ""; + String equid = ''; int equlen = 8; if (bb![pos] == 77) {