fix:修复部分国际化bug、增加切换系统语言时更换到对应语言应用昵称
This commit is contained in:
parent
99f56e95fd
commit
4d1fd4416a
4
android/app/src/dev/res/values-en-rUS/string.xml
Normal file
4
android/app/src/dev/res/values-en-rUS/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Star Lock</string>
|
||||
</resources>
|
||||
4
android/app/src/dev/res/values-zh-rCN/string.xml
Normal file
4
android/app/src/dev/res/values-zh-rCN/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星锁</string>
|
||||
</resources>
|
||||
4
android/app/src/local/res/values-en-rUS/string.xml
Normal file
4
android/app/src/local/res/values-en-rUS/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Star Lock</string>
|
||||
</resources>
|
||||
4
android/app/src/local/res/values-zh-rCN/string.xml
Normal file
4
android/app/src/local/res/values-zh-rCN/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星锁</string>
|
||||
</resources>
|
||||
4
android/app/src/main/res/values/values-en-rUS/string.xml
Normal file
4
android/app/src/main/res/values/values-en-rUS/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Star Lock</string>
|
||||
</resources>
|
||||
4
android/app/src/main/res/values/values-zh-rCN/string.xml
Normal file
4
android/app/src/main/res/values/values-zh-rCN/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星锁</string>
|
||||
</resources>
|
||||
4
android/app/src/pre/res/values-en-rUS/string.xml
Normal file
4
android/app/src/pre/res/values-en-rUS/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Star Lock</string>
|
||||
</resources>
|
||||
4
android/app/src/pre/res/values-zh-rCN/string.xml
Normal file
4
android/app/src/pre/res/values-zh-rCN/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星锁</string>
|
||||
</resources>
|
||||
4
android/app/src/sky/res/values-en-rUS/string.xml
Normal file
4
android/app/src/sky/res/values-en-rUS/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Star Lock</string>
|
||||
</resources>
|
||||
4
android/app/src/sky/res/values-zh-rCN/string.xml
Normal file
4
android/app/src/sky/res/values-zh-rCN/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星锁</string>
|
||||
</resources>
|
||||
4
android/app/src/xhj/res/values-en-rUS/string.xml
Normal file
4
android/app/src/xhj/res/values-en-rUS/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Star Lock</string>
|
||||
</resources>
|
||||
4
android/app/src/xhj/res/values-zh-rCN/string.xml
Normal file
4
android/app/src/xhj/res/values-zh-rCN/string.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星锁</string>
|
||||
</resources>
|
||||
23
ios/Runner/InfoPlist.xcstrings
Normal file
23
ios/Runner/InfoPlist.xcstrings
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"sourceLanguage" : "zh-Hans",
|
||||
"strings" : {
|
||||
"CFBundleDisplayName" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Star Lock"
|
||||
}
|
||||
},
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "星锁"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
}
|
||||
8
ios/Runner/en.lproj/InfoPlist.strings
Normal file
8
ios/Runner/en.lproj/InfoPlist.strings
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
InfoPlist.strings
|
||||
Runner
|
||||
|
||||
Created by mac on 2024/11/21.
|
||||
|
||||
*/
|
||||
"AppName"="Star Lock";
|
||||
8
ios/Runner/zh-Hans.lproj/InfoPlist.strings
Normal file
8
ios/Runner/zh-Hans.lproj/InfoPlist.strings
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
InfoPlist.strings
|
||||
Runner
|
||||
|
||||
Created by mac on 2024/11/21.
|
||||
|
||||
*/
|
||||
"AppName"="星锁";
|
||||
@ -1,22 +1,22 @@
|
||||
{
|
||||
"星锁":"星锁",
|
||||
"锁通通":"锁通通",
|
||||
"点击开锁,长按闭锁":"点击开锁,长按闭锁",
|
||||
"考勤":"考勤",
|
||||
"星锁": "星锁",
|
||||
"锁通通": "锁通通",
|
||||
"点击开锁,长按闭锁": "点击开锁,长按闭锁",
|
||||
"考勤": "考勤",
|
||||
"考勤设置": "考勤设置",
|
||||
"电子钥匙":"电子钥匙",
|
||||
"电子钥匙": "电子钥匙",
|
||||
"添加卡": "添加卡",
|
||||
"卡号": "卡号",
|
||||
"添加指纹": "添加指纹",
|
||||
"指纹号": "指纹号",
|
||||
"遥控": "遥控",
|
||||
"添加人脸": "添加人脸",
|
||||
"门锁日志":"门锁日志",
|
||||
"门锁日志": "门锁日志",
|
||||
"密码号": "密码号",
|
||||
"添加者":"添加者",
|
||||
"添加时间":"添加时间",
|
||||
"重置":"重置",
|
||||
"请输入手机号或者邮箱":"请输入手机号或者邮箱",
|
||||
"添加者": "添加者",
|
||||
"添加时间": "添加时间",
|
||||
"重置": "重置",
|
||||
"请输入手机号或者邮箱": "请输入手机号或者邮箱",
|
||||
"工作时间": "工作时间",
|
||||
"工作日设置": "工作日设置",
|
||||
"星期一": "星期一",
|
||||
@ -40,17 +40,17 @@
|
||||
"周五": "周五",
|
||||
"周六": "周六",
|
||||
"周日": "周日",
|
||||
"群发钥匙":"群发钥匙",
|
||||
"群发钥匙": "群发钥匙",
|
||||
"锁": "锁",
|
||||
"请添加":"请添加",
|
||||
"允许远程开锁":"允许远程开锁",
|
||||
"请添加": "请添加",
|
||||
"允许远程开锁": "允许远程开锁",
|
||||
"请输入验证码": "请输入验证码",
|
||||
"获取密码": "获取密码",
|
||||
"请给密码命名":"请给密码命名",
|
||||
"密码有限期为6个小时,只能使用一次":"密码有限期为6个小时,只能使用一次",
|
||||
"手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加,也可以通过网关远程添加":"手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加,也可以通过网关远程添加",
|
||||
"请给密码命名": "请给密码命名",
|
||||
"密码有限期为6个小时,只能使用一次": "密码有限期为6个小时,只能使用一次",
|
||||
"手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加,也可以通过网关远程添加": "手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加,也可以通过网关远程添加",
|
||||
"获取": "获取",
|
||||
"添加":"添加",
|
||||
"添加": "添加",
|
||||
"删除公司": "删除公司",
|
||||
"密码详情": "密码详情",
|
||||
"修改密码": "修改密码",
|
||||
@ -60,155 +60,155 @@
|
||||
"添加手掌": "添加手掌",
|
||||
"请输入员工账号": "请输入员工账号",
|
||||
"批量授权锁": "批量授权锁",
|
||||
"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人":"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人",
|
||||
"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。":"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。",
|
||||
"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人": "授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人",
|
||||
"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。": "功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。",
|
||||
"排列方式": "排列方式",
|
||||
"早到榜": "早到榜",
|
||||
"迟到榜": "迟到榜",
|
||||
"当前模式": "当前模式",
|
||||
"勤奋榜":"勤奋榜",
|
||||
"勤奋榜": "勤奋榜",
|
||||
"延迟时间": "延迟时间",
|
||||
"经过以上设定的时间,锁会自动关闭。开启或修改设置后,请先开一次锁,使时间生效。": "经过以上设定的时间,锁会自动关闭。开启或修改设置后,请先开一次锁,使时间生效。",
|
||||
"时间": "时间",
|
||||
"开始时间": "开始时间",
|
||||
"结束时间": "结束时间",
|
||||
"工作时间设置": "工作时间设置",
|
||||
"常开模式":"常开模式",
|
||||
"常开模式": "常开模式",
|
||||
"常开时间": "常开时间",
|
||||
"常开日期": "常开日期",
|
||||
"添加员工": "添加员工",
|
||||
"编辑员工": "编辑员工",
|
||||
"节假日":"节假日",
|
||||
"打卡方式":"打卡方式",
|
||||
"员工是否有钥匙":"员工是否有钥匙",
|
||||
"上班时间":"上班时间",
|
||||
"下班时间":"下班时间",
|
||||
"节假日": "节假日",
|
||||
"打卡方式": "打卡方式",
|
||||
"员工是否有钥匙": "员工是否有钥匙",
|
||||
"上班时间": "上班时间",
|
||||
"下班时间": "下班时间",
|
||||
"本周": "本周",
|
||||
"单休":"单休",
|
||||
"双休":"双休",
|
||||
"单双休":"单双休",
|
||||
"年":"年",
|
||||
"月":"月",
|
||||
"放假日期":"放假日期",
|
||||
"补班日期":"补班日期",
|
||||
"添加假日":"添加假日",
|
||||
"开始日期":"开始日期",
|
||||
"必填":"必填",
|
||||
"结束日期":"结束日期",
|
||||
"日榜":"日榜",
|
||||
"月榜":"月榜",
|
||||
"考勤记录":"考勤记录",
|
||||
"假日信息":"假日信息",
|
||||
"基本信息":"基本信息",
|
||||
"无线键盘":"无线键盘",
|
||||
"单休": "单休",
|
||||
"双休": "双休",
|
||||
"单双休": "单双休",
|
||||
"年": "年",
|
||||
"月": "月",
|
||||
"放假日期": "放假日期",
|
||||
"补班日期": "补班日期",
|
||||
"添加假日": "添加假日",
|
||||
"开始日期": "开始日期",
|
||||
"必填": "必填",
|
||||
"结束日期": "结束日期",
|
||||
"日榜": "日榜",
|
||||
"月榜": "月榜",
|
||||
"考勤记录": "考勤记录",
|
||||
"假日信息": "假日信息",
|
||||
"基本信息": "基本信息",
|
||||
"无线键盘": "无线键盘",
|
||||
"选择无线键盘": "选择无线键盘",
|
||||
"门磁":"门磁",
|
||||
"自动闭锁":"自动闭锁",
|
||||
"锁声音":"锁声音",
|
||||
"防撬报警":"防撬报警",
|
||||
"重置键":"重置键",
|
||||
"锁时间":"锁时间",
|
||||
"诊断":"诊断",
|
||||
"上传数据":"上传数据",
|
||||
"导入其他锁数据":"导入其他锁数据",
|
||||
"锁升级":"锁升级",
|
||||
"标记房态":"标记房态",
|
||||
"开锁提醒":"开锁提醒",
|
||||
"微信二维码":"微信二维码",
|
||||
"门磁": "门磁",
|
||||
"自动闭锁": "自动闭锁",
|
||||
"锁声音": "锁声音",
|
||||
"防撬报警": "防撬报警",
|
||||
"重置键": "重置键",
|
||||
"锁时间": "锁时间",
|
||||
"诊断": "诊断",
|
||||
"上传数据": "上传数据",
|
||||
"导入其他锁数据": "导入其他锁数据",
|
||||
"锁升级": "锁升级",
|
||||
"标记房态": "标记房态",
|
||||
"开锁提醒": "开锁提醒",
|
||||
"微信二维码": "微信二维码",
|
||||
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边",
|
||||
"锁编号":"锁编号",
|
||||
"电量":"电量",
|
||||
"锁分组":"锁分组",
|
||||
"选择分组":"选择分组",
|
||||
"创建新分组":"创建新分组",
|
||||
"管理员开锁密码":"管理员开锁密码",
|
||||
"更新":"更新",
|
||||
"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新":"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新",
|
||||
"当屏幕闪烁时,点击下一步":"当屏幕闪烁时,点击下一步",
|
||||
"输入*529#或按设置键":"输入*529#或按设置键",
|
||||
"长按重置键2秒":"长按重置键2秒",
|
||||
"附近的设备":"附近的设备",
|
||||
"暂无数据":"暂无数据",
|
||||
"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁":"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁",
|
||||
"开始":"开始",
|
||||
"全天":"全天",
|
||||
"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。":"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。",
|
||||
"请选择锁音量":"请选择锁音量",
|
||||
"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。":"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。",
|
||||
"低":"低",
|
||||
"较低":"较低",
|
||||
"中":"中",
|
||||
"较高":"较高",
|
||||
"高":"高",
|
||||
"开启后,锁被撬动时,会发出报警声":"开启后,锁被撬动时,会发出报警声",
|
||||
"关闭后,重置键无效,锁要通过app删除后才能重新添加":"关闭后,重置键无效,锁要通过app删除后才能重新添加",
|
||||
"校准时间":"校准时间",
|
||||
"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因":"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因",
|
||||
"上传":"上传",
|
||||
"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待":"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待",
|
||||
"请选择要从哪把锁导入":"请选择要从哪把锁导入",
|
||||
"有新版本":"有新版本",
|
||||
"当前版本":"当前版本",
|
||||
"升级":"升级",
|
||||
"空闲":"空闲",
|
||||
"已入住":"已入住",
|
||||
"英文":"英文",
|
||||
"简体中文":"简体中文",
|
||||
"多语言":"多语言",
|
||||
"添加锁":"添加锁",
|
||||
"锁地址":"锁地址",
|
||||
"选择锁类型":"选择锁类型",
|
||||
"NFC无源锁":"NFC无源锁",
|
||||
"添加设备":"添加设备",
|
||||
"网关":"网关",
|
||||
"客服":"客服",
|
||||
"设置":"设置",
|
||||
"更多设置":"更多设置",
|
||||
"消息推送":"消息推送",
|
||||
"锁用户管理":"锁用户管理",
|
||||
"拥有的钥匙":"拥有的钥匙",
|
||||
"批量授权":"批量授权",
|
||||
"关联设备":"关联设备",
|
||||
"关联姓名":"关联姓名",
|
||||
"转移智能锁":"转移智能锁",
|
||||
"选择锁":"选择锁",
|
||||
"接收人信息":"接收人信息",
|
||||
"转移网关":"转移网关",
|
||||
"锁屏":"锁屏",
|
||||
"已关闭":"已关闭",
|
||||
"已开启":"已开启",
|
||||
"开启":"开启",
|
||||
"锁编号": "锁编号",
|
||||
"电量": "电量",
|
||||
"锁分组": "锁分组",
|
||||
"选择分组": "选择分组",
|
||||
"创建新分组": "创建新分组",
|
||||
"管理员开锁密码": "管理员开锁密码",
|
||||
"更新": "更新",
|
||||
"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新": "电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新",
|
||||
"当屏幕闪烁时,点击下一步": "当屏幕闪烁时,点击下一步",
|
||||
"输入*529#或按设置键": "输入*529#或按设置键",
|
||||
"长按重置键2秒": "长按重置键2秒",
|
||||
"附近的设备": "附近的设备",
|
||||
"暂无数据": "暂无数据",
|
||||
"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁": "通过门磁可查询门的开、关状态。每把锁咳添加一个门磁",
|
||||
"开始": "开始",
|
||||
"全天": "全天",
|
||||
"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。": "你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。",
|
||||
"请选择锁音量": "请选择锁音量",
|
||||
"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。": "功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。",
|
||||
"低": "低",
|
||||
"较低": "较低",
|
||||
"中": "中",
|
||||
"较高": "较高",
|
||||
"高": "高",
|
||||
"开启后,锁被撬动时,会发出报警声": "开启后,锁被撬动时,会发出报警声",
|
||||
"关闭后,重置键无效,锁要通过app删除后才能重新添加": "关闭后,重置键无效,锁要通过app删除后才能重新添加",
|
||||
"校准时间": "校准时间",
|
||||
"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因": "诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因",
|
||||
"上传": "上传",
|
||||
"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待": "本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待",
|
||||
"请选择要从哪把锁导入": "请选择要从哪把锁导入",
|
||||
"有新版本": "有新版本",
|
||||
"当前版本": "当前版本",
|
||||
"升级": "升级",
|
||||
"空闲": "空闲",
|
||||
"已入住": "已入住",
|
||||
"英文": "英文",
|
||||
"简体中文": "简体中文",
|
||||
"多语言": "多语言",
|
||||
"添加锁": "添加锁",
|
||||
"锁地址": "锁地址",
|
||||
"选择锁类型": "选择锁类型",
|
||||
"NFC无源锁": "NFC无源锁",
|
||||
"添加设备": "添加设备",
|
||||
"网关": "网关",
|
||||
"客服": "客服",
|
||||
"设置": "设置",
|
||||
"更多设置": "更多设置",
|
||||
"消息推送": "消息推送",
|
||||
"锁用户管理": "锁用户管理",
|
||||
"拥有的钥匙": "拥有的钥匙",
|
||||
"批量授权": "批量授权",
|
||||
"关联设备": "关联设备",
|
||||
"关联姓名": "关联姓名",
|
||||
"转移智能锁": "转移智能锁",
|
||||
"选择锁": "选择锁",
|
||||
"接收人信息": "接收人信息",
|
||||
"转移网关": "转移网关",
|
||||
"锁屏": "锁屏",
|
||||
"已关闭": "已关闭",
|
||||
"已开启": "已开启",
|
||||
"开启": "开启",
|
||||
"确定要开启重置键?": "确定要开启重置键?",
|
||||
"确定要关闭重置键?": "确定要关闭重置键?",
|
||||
"隐藏无效开锁权限":"隐藏无效开锁权限",
|
||||
"APP开锁时需手机连网的锁":"APP开锁时需手机连网的锁",
|
||||
"增值服务":"增值服务",
|
||||
"关于":"关于",
|
||||
"退出":"退出",
|
||||
"删除账号":"删除账号",
|
||||
"个人信息":"个人信息",
|
||||
"头像":"头像",
|
||||
"昵称":"昵称",
|
||||
"隐藏无效开锁权限": "隐藏无效开锁权限",
|
||||
"APP开锁时需手机连网的锁": "APP开锁时需手机连网的锁",
|
||||
"增值服务": "增值服务",
|
||||
"关于": "关于",
|
||||
"退出": "退出",
|
||||
"删除账号": "删除账号",
|
||||
"个人信息": "个人信息",
|
||||
"头像": "头像",
|
||||
"昵称": "昵称",
|
||||
"请输入昵称": "请输入昵称",
|
||||
"修改昵称":"修改昵称",
|
||||
"修改账号":"修改账号",
|
||||
"重置密码":"重置密码",
|
||||
"安全问题":"安全问题",
|
||||
"为了你的账号安全,修改账号前请先使用验证码验证":"为了你的账号安全,修改账号前请先使用验证码验证",
|
||||
"请输入新账号":"请输入新账号",
|
||||
"找回密码和登录新设备时,可通过绑定的手机验证":"找回密码和登录新设备时,可通过绑定的手机验证",
|
||||
"找回密码和登录新设备时,可通过绑定的邮箱验证":"找回密码和登录新设备时,可通过绑定的邮箱验证",
|
||||
"原密码":"原密码",
|
||||
"新密码":"新密码",
|
||||
"确认密码":"确认密码",
|
||||
"当你手机丢了,可以通过回答设置的安全问题来登录新设备":"当你手机丢了,可以通过回答设置的安全问题来登录新设备",
|
||||
"问题一":"问题一",
|
||||
"问题二":"问题二",
|
||||
"问题三":"问题三",
|
||||
"请输入你的答案":"请输入你的答案",
|
||||
"即将到期":"即将到期",
|
||||
"去授权":"去授权",
|
||||
"修改名称":"修改名称",
|
||||
"修改昵称": "修改昵称",
|
||||
"修改账号": "修改账号",
|
||||
"重置密码": "重置密码",
|
||||
"安全问题": "安全问题",
|
||||
"为了你的账号安全,修改账号前请先使用验证码验证": "为了你的账号安全,修改账号前请先使用验证码验证",
|
||||
"请输入新账号": "请输入新账号",
|
||||
"找回密码和登录新设备时,可通过绑定的手机验证": "找回密码和登录新设备时,可通过绑定的手机验证",
|
||||
"找回密码和登录新设备时,可通过绑定的邮箱验证": "找回密码和登录新设备时,可通过绑定的邮箱验证",
|
||||
"原密码": "原密码",
|
||||
"新密码": "新密码",
|
||||
"确认密码": "确认密码",
|
||||
"当你手机丢了,可以通过回答设置的安全问题来登录新设备": "当你手机丢了,可以通过回答设置的安全问题来登录新设备",
|
||||
"问题一": "问题一",
|
||||
"问题二": "问题二",
|
||||
"问题三": "问题三",
|
||||
"请输入你的答案": "请输入你的答案",
|
||||
"即将到期": "即将到期",
|
||||
"去授权": "去授权",
|
||||
"修改名称": "修改名称",
|
||||
"状态": "状态",
|
||||
"WiFi名称": "WiFi名称",
|
||||
"网络MAC": "网络MAC",
|
||||
@ -237,101 +237,101 @@
|
||||
"请输入IP地址": "请输入IP地址",
|
||||
"请输入子网掩码": "请输入子网掩码",
|
||||
"请输入默认网关": "请输入默认网关",
|
||||
"所有锁":"所有锁",
|
||||
"搜索所有类型的锁":"搜索所有类型的锁",
|
||||
"门锁":"门锁",
|
||||
"挂锁":"挂锁",
|
||||
"保险箱锁":"保险箱锁",
|
||||
"智能门禁":"智能门禁",
|
||||
"车位锁":"车位锁",
|
||||
"摸亮触摸屏":"摸亮触摸屏",
|
||||
"摸亮触摸屏,锁进入可添加状态,点击下一步":"摸亮触摸屏,锁进入可添加状态,点击下一步",
|
||||
"附近的锁":"附近的锁",
|
||||
"如需修改名字请重新命名,点击确定添加锁":"如需修改名字请重新命名,点击确定添加锁",
|
||||
"添加锁时,手机必须在锁旁边":"添加锁时,手机必须在锁旁边",
|
||||
"登录":"登录",
|
||||
"注册":"注册",
|
||||
"我已阅读并同意":"我已阅读并同意",
|
||||
"验证码":"验证码",
|
||||
"密码必须是8-20位,至少包括数字/字母/符号中的2种":"密码必须是8-20位,至少包括数字/字母/符号中的2种",
|
||||
"手机":"手机",
|
||||
"邮箱":"邮箱",
|
||||
"所有锁": "所有锁",
|
||||
"搜索所有类型的锁": "搜索所有类型的锁",
|
||||
"门锁": "门锁",
|
||||
"挂锁": "挂锁",
|
||||
"保险箱锁": "保险箱锁",
|
||||
"智能门禁": "智能门禁",
|
||||
"车位锁": "车位锁",
|
||||
"摸亮触摸屏": "摸亮触摸屏",
|
||||
"摸亮触摸屏,锁进入可添加状态,点击下一步": "摸亮触摸屏,锁进入可添加状态,点击下一步",
|
||||
"附近的锁": "附近的锁",
|
||||
"如需修改名字请重新命名,点击确定添加锁": "如需修改名字请重新命名,点击确定添加锁",
|
||||
"添加锁时,手机必须在锁旁边": "添加锁时,手机必须在锁旁边",
|
||||
"登录": "登录",
|
||||
"注册": "注册",
|
||||
"我已阅读并同意": "我已阅读并同意",
|
||||
"验证码": "验证码",
|
||||
"密码必须是8-20位,至少包括数字/字母/符号中的2种": "密码必须是8-20位,至少包括数字/字母/符号中的2种",
|
||||
"手机": "手机",
|
||||
"邮箱": "邮箱",
|
||||
"请输入邮箱": "请输入邮箱",
|
||||
"国家/地区":"国家/地区",
|
||||
"国家/地区": "国家/地区",
|
||||
"你所在的国家/地区": "你所在的国家/地区",
|
||||
"选择国家/地区": "你所在的国家/地区",
|
||||
"获取验证码":"获取验证码",
|
||||
"商务合作":"商务合作",
|
||||
"电脑网页版":"电脑网页版",
|
||||
"酒店系统":"酒店系统",
|
||||
"说明书网页版":"说明书网页版",
|
||||
"高级功能":"高级功能",
|
||||
"记录保存":"记录保存",
|
||||
"您可通过短信将密码、电子钥匙信息发给接收人。":"您可通过短信将密码、电子钥匙信息发给接收人。",
|
||||
"您可通过邮件将密码、电子钥匙信息发给接收人。":"您可通过邮件将密码、电子钥匙信息发给接收人。",
|
||||
"购买实名认证提示":"购买实名认证提示",
|
||||
"请选择你希望的实名认证频次":"请选择你希望的实名认证频次",
|
||||
"仅首次":"仅首次",
|
||||
"每日一次":"每日一次",
|
||||
"每周一次":"每周一次",
|
||||
"每月一次":"每月一次",
|
||||
"当前状态":"当前状态",
|
||||
"试用中":"试用中",
|
||||
"高级功能权益内容":"高级功能权益内容",
|
||||
"短信模板":"短信模板",
|
||||
"邮件模板":"邮件模板",
|
||||
"发卡工具":"发卡工具",
|
||||
"购买高级功能须知":"购买高级功能须知",
|
||||
"购买高级功能提示":"购买高级功能提示",
|
||||
"免费体验":"免费体验",
|
||||
"立即开通":"立即开通",
|
||||
"购买短信":"购买短信",
|
||||
"购买邮件":"购买邮件",
|
||||
"购买实名认证次数":"购买实名认证次数",
|
||||
"开通高级功能":"开通高级功能",
|
||||
"选择套餐":"选择套餐",
|
||||
"支付方式":"支付方式",
|
||||
"支付宝":"支付宝",
|
||||
"去支付":"去支付",
|
||||
"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人":"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人",
|
||||
"高级功能仅能用于你自己的锁":"高级功能仅能用于你自己的锁",
|
||||
"新建模板":"新建模板",
|
||||
"类型":"类型",
|
||||
"模版内容":"模版内容",
|
||||
"预览":"预览",
|
||||
"房间名":"房间名",
|
||||
"预计产生短信条数":"预计产生短信条数",
|
||||
"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。":"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。",
|
||||
"对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁":"对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁",
|
||||
"配置WiFi":"配置WiFi",
|
||||
"请输入WiFi名字":"请输入WiFi名字",
|
||||
"WiFi配网":"WiFi配网",
|
||||
"胁迫卡":"胁迫卡",
|
||||
"员工是否有密码":"员工是否有密码",
|
||||
"员工是否有卡":"员工是否有卡",
|
||||
"员工是否有指纹":"员工是否有指纹",
|
||||
"获取钥匙":"获取钥匙",
|
||||
"获取卡":"获取卡",
|
||||
"获取指纹":"获取指纹",
|
||||
"安全验证":"安全验证",
|
||||
"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?":"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?",
|
||||
"监控":"监控",
|
||||
"视频日志":"视频日志",
|
||||
"网关设备":"网关设备",
|
||||
"开门器":"开门器",
|
||||
"面容开锁":"面容开锁",
|
||||
"开门方向设置":"开门方向设置",
|
||||
"电机功率设置":"电机功率设置",
|
||||
"开锁时是否需联网":"开锁时是否需联网",
|
||||
"选择要加入分组的锁":"选择要加入分组的锁",
|
||||
"锁数量":"锁数量",
|
||||
"小米IOT平台":"小米IOT平台",
|
||||
"获取验证码": "获取验证码",
|
||||
"商务合作": "商务合作",
|
||||
"电脑网页版": "电脑网页版",
|
||||
"酒店系统": "酒店系统",
|
||||
"说明书网页版": "说明书网页版",
|
||||
"高级功能": "高级功能",
|
||||
"记录保存": "记录保存",
|
||||
"您可通过短信将密码、电子钥匙信息发给接收人。": "您可通过短信将密码、电子钥匙信息发给接收人。",
|
||||
"您可通过邮件将密码、电子钥匙信息发给接收人。": "您可通过邮件将密码、电子钥匙信息发给接收人。",
|
||||
"购买实名认证提示": "购买实名认证提示",
|
||||
"请选择你希望的实名认证频次": "请选择你希望的实名认证频次",
|
||||
"仅首次": "仅首次",
|
||||
"每日一次": "每日一次",
|
||||
"每周一次": "每周一次",
|
||||
"每月一次": "每月一次",
|
||||
"当前状态": "当前状态",
|
||||
"试用中": "试用中",
|
||||
"高级功能权益内容": "高级功能权益内容",
|
||||
"短信模板": "短信模板",
|
||||
"邮件模板": "邮件模板",
|
||||
"发卡工具": "发卡工具",
|
||||
"购买高级功能须知": "购买高级功能须知",
|
||||
"购买高级功能提示": "购买高级功能提示",
|
||||
"免费体验": "免费体验",
|
||||
"立即开通": "立即开通",
|
||||
"购买短信": "购买短信",
|
||||
"购买邮件": "购买邮件",
|
||||
"购买实名认证次数": "购买实名认证次数",
|
||||
"开通高级功能": "开通高级功能",
|
||||
"选择套餐": "选择套餐",
|
||||
"支付方式": "支付方式",
|
||||
"支付宝": "支付宝",
|
||||
"去支付": "去支付",
|
||||
"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人": "你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人",
|
||||
"高级功能仅能用于你自己的锁": "高级功能仅能用于你自己的锁",
|
||||
"新建模板": "新建模板",
|
||||
"类型": "类型",
|
||||
"模版内容": "模版内容",
|
||||
"预览": "预览",
|
||||
"房间名": "房间名",
|
||||
"预计产生短信条数": "预计产生短信条数",
|
||||
"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。": "功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。",
|
||||
"对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁": "对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁",
|
||||
"配置WiFi": "配置WiFi",
|
||||
"请输入WiFi名字": "请输入WiFi名字",
|
||||
"WiFi配网": "WiFi配网",
|
||||
"胁迫卡": "胁迫卡",
|
||||
"员工是否有密码": "员工是否有密码",
|
||||
"员工是否有卡": "员工是否有卡",
|
||||
"员工是否有指纹": "员工是否有指纹",
|
||||
"获取钥匙": "获取钥匙",
|
||||
"获取卡": "获取卡",
|
||||
"获取指纹": "获取指纹",
|
||||
"安全验证": "安全验证",
|
||||
"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?": "删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?",
|
||||
"监控": "监控",
|
||||
"视频日志": "视频日志",
|
||||
"网关设备": "网关设备",
|
||||
"开门器": "开门器",
|
||||
"面容开锁": "面容开锁",
|
||||
"开门方向设置": "开门方向设置",
|
||||
"电机功率设置": "电机功率设置",
|
||||
"开锁时是否需联网": "开锁时是否需联网",
|
||||
"选择要加入分组的锁": "选择要加入分组的锁",
|
||||
"锁数量": "锁数量",
|
||||
"小米IOT平台": "小米IOT平台",
|
||||
"面容开锁设置": "面容开锁设置",
|
||||
"感应距离": "感应距离",
|
||||
"防误开": "防误开",
|
||||
"防误开已关闭,关门后仍可使用面容开锁": "防误开已关闭,关门后仍可使用面容开锁",
|
||||
"添加和使用面容开锁时": "添加和使用面容开锁时",
|
||||
"添加和使用面容开锁时提示":"添加和使用面容开锁时提示",
|
||||
"添加和使用面容开锁时提示": "添加和使用面容开锁时提示",
|
||||
"秒": "秒",
|
||||
"请根据门锁实际情况,请谨慎选择电机功率:": "请根据门锁实际情况,请谨慎选择电机功率:",
|
||||
"小功率:": "小功率:",
|
||||
@ -344,43 +344,43 @@
|
||||
"判断方法:": "判断方法:",
|
||||
"判断方法内容": "判断方法内容",
|
||||
"录像时段": "录像时段",
|
||||
"密码":"密码",
|
||||
"卡":"卡",
|
||||
"指纹":"指纹",
|
||||
"人脸":"人脸",
|
||||
"配件商城":"配件商城",
|
||||
"公司名称":"公司名称",
|
||||
"请输入公司名字":"请输入公司名字",
|
||||
"提示":"提示",
|
||||
"是否删除?":"是否删除?",
|
||||
"员工信息":"员工信息",
|
||||
"员工":"员工",
|
||||
"打卡方式无效":"打卡方式无效",
|
||||
"中国":"中国",
|
||||
"选择钥匙":"选择钥匙",
|
||||
"编辑":"编辑",
|
||||
"无":"无",
|
||||
"有":"有",
|
||||
"请输入姓名":"请输入姓名",
|
||||
"获取人脸":"获取人脸",
|
||||
"选择密码":"选择密码",
|
||||
"选择卡":"选择卡",
|
||||
"选择指纹":"选择指纹",
|
||||
"选择人脸":"选择人脸",
|
||||
"员工是否有人脸":"员工是否有人脸",
|
||||
"同时删除员工钥匙":"同时删除员工钥匙",
|
||||
"删除":"删除",
|
||||
"确定要删除员工吗?":"确定要删除员工吗?",
|
||||
"月统计":"月统计",
|
||||
"迟到":"迟到",
|
||||
"早退":"早退",
|
||||
"未打卡":"未打卡",
|
||||
"钥匙将在":"钥匙将在",
|
||||
"天后失效":"天后失效",
|
||||
"电量更新时间:":"电量更新时间:",
|
||||
"新增配件":"新增配件",
|
||||
"钥匙不可用":"钥匙不可用",
|
||||
"正在开锁中...":"正在开锁中...",
|
||||
"密码": "密码",
|
||||
"卡": "卡",
|
||||
"指纹": "指纹",
|
||||
"人脸": "人脸",
|
||||
"配件商城": "配件商城",
|
||||
"公司名称": "公司名称",
|
||||
"请输入公司名字": "请输入公司名字",
|
||||
"提示": "提示",
|
||||
"是否删除?": "是否删除?",
|
||||
"员工信息": "员工信息",
|
||||
"员工": "员工",
|
||||
"打卡方式无效": "打卡方式无效",
|
||||
"中国": "中国",
|
||||
"选择钥匙": "选择钥匙",
|
||||
"编辑": "编辑",
|
||||
"无": "无",
|
||||
"有": "有",
|
||||
"请输入姓名": "请输入姓名",
|
||||
"获取人脸": "获取人脸",
|
||||
"选择密码": "选择密码",
|
||||
"选择卡": "选择卡",
|
||||
"选择指纹": "选择指纹",
|
||||
"选择人脸": "选择人脸",
|
||||
"员工是否有人脸": "员工是否有人脸",
|
||||
"同时删除员工钥匙": "同时删除员工钥匙",
|
||||
"删除": "删除",
|
||||
"确定要删除员工吗?": "确定要删除员工吗?",
|
||||
"月统计": "月统计",
|
||||
"迟到": "迟到",
|
||||
"早退": "早退",
|
||||
"未打卡": "未打卡",
|
||||
"钥匙将在": "钥匙将在",
|
||||
"天后失效": "天后失效",
|
||||
"电量更新时间:": "电量更新时间:",
|
||||
"新增配件": "新增配件",
|
||||
"钥匙不可用": "钥匙不可用",
|
||||
"正在开锁中...": "正在开锁中...",
|
||||
"你的钥匙": "你的钥匙",
|
||||
"常开模式启动!长按闭锁": "常开模式启动!长按闭锁",
|
||||
"演示模式": "演示模式",
|
||||
@ -563,10 +563,10 @@
|
||||
"厂商": "厂商",
|
||||
"型号": "型号",
|
||||
"密码生成后,请在当日23:59前使用一次进行激活,否则过0点后未激活则失效。密码激活后,有效期内不限次数使用。": "密码生成后,请在当日23:59前使用一次进行激活,否则过0点后未激活则失效。密码激活后,有效期内不限次数使用。",
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。":"密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。",
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。": "密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。",
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。": "密码生成后,请在当日23:59前使用,否则过0点后失效。",
|
||||
"清空密码底部提示": "清空密码底部提示",
|
||||
"密码不一致哦":"密码不一致哦",
|
||||
"密码不一致哦": "密码不一致哦",
|
||||
"相机": "相机",
|
||||
"相册": "相册",
|
||||
"读写": "读写",
|
||||
@ -583,137 +583,137 @@
|
||||
"请手动在系统设置中开启": "请手动在系统设置中开启",
|
||||
"权限以继续使用应用": "权限以继续使用应用。",
|
||||
"去设置": "去设置",
|
||||
"虹膜":"虹膜",
|
||||
"手掌":"手掌",
|
||||
"商城":"mall",
|
||||
"我的":"my",
|
||||
"微信公众号推送":"微信公众号推送",
|
||||
"开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置":"开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置",
|
||||
"蓝牙":"蓝牙",
|
||||
"需要访问蓝牙权限才能使用添加钥匙功能的位置信息":"需要访问蓝牙权限才能使用添加钥匙功能的位置信息",
|
||||
"请输入Email":"请输入Email",
|
||||
"请输入手机号":"请输入手机号",
|
||||
"家人到家":"家人到家",
|
||||
"添加家人":"添加家人",
|
||||
"若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。":"若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。",
|
||||
"消息提醒":"消息提醒",
|
||||
"开门通知":"开门通知",
|
||||
"N天未开门":"N天未开门",
|
||||
"门未关好":"门未关好",
|
||||
"防拆报警":"防拆报警",
|
||||
"低电量提醒":"低电量提醒",
|
||||
"胁迫开门":"胁迫开门",
|
||||
"有人按门铃":"有人按门铃",
|
||||
"有人出现在门口":"有人出现在门口",
|
||||
"提醒方式":"提醒方式",
|
||||
"开门方式":"开门方式",
|
||||
"请选择":"请选择",
|
||||
"家人":"家人",
|
||||
"保存":"保存",
|
||||
"APP推送":"APP推送",
|
||||
"管理员":"管理员",
|
||||
"未启用":"未启用",
|
||||
"已启用":"已启用",
|
||||
"省电模式":"省电模式",
|
||||
"逗留抓拍模式":"逗留抓拍模式",
|
||||
"实时监控模式":"实时监控模式",
|
||||
"自定义模式":"自定义模式",
|
||||
"猫眼设置":"猫眼设置",
|
||||
"猫眼工作模式":"猫眼工作模式",
|
||||
"自动亮屏":"自动亮屏",
|
||||
"亮屏持续时间":"亮屏持续时间",
|
||||
"逗留警告":"逗留警告",
|
||||
"异常警告":"异常警告",
|
||||
"短信提醒":"短信提醒",
|
||||
"邮件提醒":"邮件提醒",
|
||||
"关锁":"Close Lock",
|
||||
"功能":"Function",
|
||||
"配件":"Parts",
|
||||
"N天未开门提醒":"N天未开门提醒",
|
||||
"当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网":"当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网",
|
||||
"胁迫指纹":"胁迫指纹",
|
||||
"指纹列表":"指纹列表",
|
||||
"经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网":"经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网",
|
||||
"打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。":"打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。",
|
||||
"未开门时间":"未开门时间",
|
||||
"添加和使用面容开锁时:":"添加和使用面容开锁时:",
|
||||
"云存":"云存",
|
||||
"本地":"本地",
|
||||
"3天滚动储存":"3天滚动储存",
|
||||
"去升级":"去升级",
|
||||
"下载列表":"下载列表",
|
||||
"已下载":"已下载",
|
||||
"全部视频":"全部视频",
|
||||
"已为本设备免费提供3大滚动视频储存服务":"已为本设备免费提供3大滚动视频储存服务",
|
||||
"视频播放":"视频播放",
|
||||
"全选":"全选",
|
||||
"请选择要删除的视频":"请选择要删除的视频",
|
||||
"请选择要下载的视频":"请选择要下载的视频",
|
||||
"欢迎使用":"欢迎使用",
|
||||
"虹膜": "虹膜",
|
||||
"手掌": "手掌",
|
||||
"商城": "mall",
|
||||
"我的": "my",
|
||||
"微信公众号推送": "微信公众号推送",
|
||||
"开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置": "开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置",
|
||||
"蓝牙": "蓝牙",
|
||||
"需要访问蓝牙权限才能使用添加钥匙功能的位置信息": "需要访问蓝牙权限才能使用添加钥匙功能的位置信息",
|
||||
"请输入Email": "请输入Email",
|
||||
"请输入手机号": "请输入手机号",
|
||||
"家人到家": "家人到家",
|
||||
"添加家人": "添加家人",
|
||||
"若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。": "若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。",
|
||||
"消息提醒": "消息提醒",
|
||||
"开门通知": "开门通知",
|
||||
"N天未开门": "N天未开门",
|
||||
"门未关好": "门未关好",
|
||||
"防拆报警": "防拆报警",
|
||||
"低电量提醒": "低电量提醒",
|
||||
"胁迫开门": "胁迫开门",
|
||||
"有人按门铃": "有人按门铃",
|
||||
"有人出现在门口": "有人出现在门口",
|
||||
"提醒方式": "提醒方式",
|
||||
"开门方式": "开门方式",
|
||||
"请选择": "请选择",
|
||||
"家人": "家人",
|
||||
"保存": "保存",
|
||||
"APP推送": "APP推送",
|
||||
"管理员": "管理员",
|
||||
"未启用": "未启用",
|
||||
"已启用": "已启用",
|
||||
"省电模式": "省电模式",
|
||||
"逗留抓拍模式": "逗留抓拍模式",
|
||||
"实时监控模式": "实时监控模式",
|
||||
"自定义模式": "自定义模式",
|
||||
"猫眼设置": "猫眼设置",
|
||||
"猫眼工作模式": "猫眼工作模式",
|
||||
"自动亮屏": "自动亮屏",
|
||||
"亮屏持续时间": "亮屏持续时间",
|
||||
"逗留警告": "逗留警告",
|
||||
"异常警告": "异常警告",
|
||||
"短信提醒": "短信提醒",
|
||||
"邮件提醒": "邮件提醒",
|
||||
"关锁": "Close Lock",
|
||||
"功能": "Function",
|
||||
"配件": "Parts",
|
||||
"N天未开门提醒": "N天未开门提醒",
|
||||
"当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网": "当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网",
|
||||
"胁迫指纹": "胁迫指纹",
|
||||
"指纹列表": "指纹列表",
|
||||
"经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网": "经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网",
|
||||
"打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。": "打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。",
|
||||
"未开门时间": "未开门时间",
|
||||
"添加和使用面容开锁时:": "添加和使用面容开锁时:",
|
||||
"云存": "云存",
|
||||
"本地": "本地",
|
||||
"3天滚动储存": "3天滚动储存",
|
||||
"去升级": "去升级",
|
||||
"下载列表": "下载列表",
|
||||
"已下载": "已下载",
|
||||
"全部视频": "全部视频",
|
||||
"已为本设备免费提供3大滚动视频储存服务": "已为本设备免费提供3大滚动视频储存服务",
|
||||
"视频播放": "视频播放",
|
||||
"全选": "全选",
|
||||
"请选择要删除的视频": "请选择要删除的视频",
|
||||
"请选择要下载的视频": "请选择要下载的视频",
|
||||
"欢迎使用": "欢迎使用",
|
||||
"用户协议和隐私政策概要": "用户协议和隐私政策概要",
|
||||
"协议概要": "协议概要",
|
||||
"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读":"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读",
|
||||
"《用户协议》":"《用户协议》",
|
||||
"和":"和",
|
||||
"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读": "感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读",
|
||||
"《用户协议》": "《用户协议》",
|
||||
"和": "和",
|
||||
"《隐私政策》": "《隐私政策》",
|
||||
"的全部内容。点击“同意”即表示您同意并接受全部条款。若选择不同意,将无法使用我们的产品和服务,并会退出应用。": "的全部内容。点击“同意”即表示您同意并接受全部条款。若选择不同意,将无法使用我们的产品和服务,并会退出应用。",
|
||||
"不同意":"不同意",
|
||||
"同意":"同意",
|
||||
"该功能是高级功能,请开通后再使用":"该功能是高级功能,请开通后再使用",
|
||||
"常用程序":"常用程序",
|
||||
"该锁已被重置":"该锁已被重置",
|
||||
"需要访问读写权限才能使用手动升级固件":"需要访问读写权限才能使用手动升级固件",
|
||||
"错误D固件,请选择正确的文件":"错误固件,请选择正确的文件",
|
||||
"非SYD固件,请选择正确的文件":"非SYD固件,请选择正确的文件",
|
||||
"文件校验失败 0x01":"文件校验失败 0x01",
|
||||
"解析元数据失败,请选择正确的文件":"解析元数据失败,请选择正确的文件",
|
||||
"文件校验失败 0x02":"文件校验失败 0x02",
|
||||
"文件校验失败 0x03":"文件校验失败 0x03",
|
||||
"固件升级完成":"固件升级完成",
|
||||
"记录":"记录",
|
||||
"开通高级功能后才可以对锁进行管理":"开通高级功能后才可以对锁进行管理",
|
||||
"去开通":"去开通",
|
||||
"实名认证":"实名认证",
|
||||
"当前剩余数量":"当前剩余数量",
|
||||
"购买":"购买",
|
||||
"实名认证为付费功能,请购买后再使用":"实名认证为付费功能,请购买后再使用",
|
||||
"退出添加":"退出添加",
|
||||
"管理员已满":"管理员已满",
|
||||
"不同意": "不同意",
|
||||
"同意": "同意",
|
||||
"该功能是高级功能,请开通后再使用": "该功能是高级功能,请开通后再使用",
|
||||
"常用程序": "常用程序",
|
||||
"该锁已被重置": "该锁已被重置",
|
||||
"需要访问读写权限才能使用手动升级固件": "需要访问读写权限才能使用手动升级固件",
|
||||
"错误D固件,请选择正确的文件": "错误固件,请选择正确的文件",
|
||||
"非SYD固件,请选择正确的文件": "非SYD固件,请选择正确的文件",
|
||||
"文件校验失败 0x01": "文件校验失败 0x01",
|
||||
"解析元数据失败,请选择正确的文件": "解析元数据失败,请选择正确的文件",
|
||||
"文件校验失败 0x02": "文件校验失败 0x02",
|
||||
"文件校验失败 0x03": "文件校验失败 0x03",
|
||||
"固件升级完成": "固件升级完成",
|
||||
"记录": "记录",
|
||||
"开通高级功能后才可以对锁进行管理": "开通高级功能后才可以对锁进行管理",
|
||||
"去开通": "去开通",
|
||||
"实名认证": "实名认证",
|
||||
"当前剩余数量": "当前剩余数量",
|
||||
"购买": "购买",
|
||||
"实名认证为付费功能,请购买后再使用": "实名认证为付费功能,请购买后再使用",
|
||||
"退出添加": "退出添加",
|
||||
"管理员已满": "管理员已满",
|
||||
"用户已满": "用户已满",
|
||||
"锁上面添加指纹已满": "锁上面添加指纹已满",
|
||||
"指纹已存在": "指纹已存在",
|
||||
"锁上面添加人脸已满": "锁上面添加人脸已满",
|
||||
"人脸已存在": "人脸已存在",
|
||||
"锁上面添加卡已满":"锁上面添加卡已满",
|
||||
"锁上面添加卡已满": "锁上面添加卡已满",
|
||||
"卡已存在": "卡已存在",
|
||||
"锁上面添加密码已满": "锁上面添加密码已满",
|
||||
"密码已存在": "密码已存在",
|
||||
"请输入密码": "请输入密码",
|
||||
"暂无密码,无需重置": "暂无密码,无需重置",
|
||||
"真实姓名":"真实姓名",
|
||||
"身份证号":"身份证号",
|
||||
"请输入真实姓名":"请输入真实姓名",
|
||||
"请输入身份证号":"请输入身份证号",
|
||||
"请输入身份证号和真实姓名":"请输入身份证号和真实姓名",
|
||||
"点击返回设备配对":"点击返回设备配对",
|
||||
"无法连接?尝试升级":"无法连接?尝试升级",
|
||||
"固件升级提示":"固件升级提示",
|
||||
"请先获取固件文件到手机本地,再选择升级":"请先获取固件文件到手机本地,再选择升级",
|
||||
"固件升级中":"固件升级中",
|
||||
"取消升级":"取消升级",
|
||||
"固件传输中":"固件传输中",
|
||||
"关闭":"关闭",
|
||||
"传输中'":"传输中",
|
||||
"操作记录":"操作记录",
|
||||
"修改姓名":"修改姓名",
|
||||
"传输中":"传输中",
|
||||
"发送人":"发送人",
|
||||
"发送时间":"发送时间",
|
||||
"钥匙详情":"钥匙详情",
|
||||
"姓名":"姓名",
|
||||
"发送":"发送",
|
||||
"请确认姓名全名和身份证号码是否正确":"请确认姓名全名和身份证号码是否正确",
|
||||
"传输期间请勿离开当前页面":"传输期间请勿离开当前页面",
|
||||
"真实姓名": "真实姓名",
|
||||
"身份证号": "身份证号",
|
||||
"请输入真实姓名": "请输入真实姓名",
|
||||
"请输入身份证号": "请输入身份证号",
|
||||
"请输入身份证号和真实姓名": "请输入身份证号和真实姓名",
|
||||
"点击返回设备配对": "点击返回设备配对",
|
||||
"无法连接?尝试升级": "无法连接?尝试升级",
|
||||
"固件升级提示": "固件升级提示",
|
||||
"请先获取固件文件到手机本地,再选择升级": "请先获取固件文件到手机本地,再选择升级",
|
||||
"固件升级中": "固件升级中",
|
||||
"取消升级": "取消升级",
|
||||
"固件传输中": "固件传输中",
|
||||
"关闭": "关闭",
|
||||
"传输中'": "传输中",
|
||||
"操作记录": "操作记录",
|
||||
"修改姓名": "修改姓名",
|
||||
"传输中": "传输中",
|
||||
"发送人": "发送人",
|
||||
"发送时间": "发送时间",
|
||||
"钥匙详情": "钥匙详情",
|
||||
"姓名": "姓名",
|
||||
"发送": "发送",
|
||||
"请确认姓名全名和身份证号码是否正确": "请确认姓名全名和身份证号码是否正确",
|
||||
"传输期间请勿离开当前页面": "传输期间请勿离开当前页面",
|
||||
"机型": "机型",
|
||||
"硬件版本": "硬件版本",
|
||||
"固件版本": "固件版本",
|
||||
@ -724,30 +724,30 @@
|
||||
"操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。": "操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。",
|
||||
"如果是全自动锁,请使屏幕变亮": "如果是全自动锁,请使屏幕变亮",
|
||||
"正在尝试闭锁……": "正在尝试闭锁……",
|
||||
"清空记录":"清空记录",
|
||||
"是否要删除操作记录?":"是否要删除操作记录?",
|
||||
"被删除的记录不能恢复":"被删除的记录不能恢复",
|
||||
"全部事件":"全部事件",
|
||||
"开锁事件":"开锁事件",
|
||||
"异常事件":"异常事件",
|
||||
"门铃事件":"门铃事件",
|
||||
"视频事件":"视频事件",
|
||||
"请开启蓝牙":"请开启蓝牙",
|
||||
"请选择有效日":"请选择有效日",
|
||||
"清空记录": "清空记录",
|
||||
"是否要删除操作记录?": "是否要删除操作记录?",
|
||||
"被删除的记录不能恢复": "被删除的记录不能恢复",
|
||||
"全部事件": "全部事件",
|
||||
"开锁事件": "开锁事件",
|
||||
"异常事件": "异常事件",
|
||||
"门铃事件": "门铃事件",
|
||||
"视频事件": "视频事件",
|
||||
"请开启蓝牙": "请开启蓝牙",
|
||||
"请选择有效日": "请选择有效日",
|
||||
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
|
||||
"已是最新版本": "已是最新版本",
|
||||
"一":"一",
|
||||
"二":"二",
|
||||
"三":"三",
|
||||
"四":"四",
|
||||
"五":"五",
|
||||
"六":"六",
|
||||
"日":"日",
|
||||
"新建短信模版":"新建短信模版",
|
||||
"新建邮件模版":"新建邮件模版",
|
||||
"自定义短信模版":"自定义短信模版",
|
||||
"自定义邮件模版":"自定义邮件模版",
|
||||
"名称":"名称",
|
||||
"一": "一",
|
||||
"二": "二",
|
||||
"三": "三",
|
||||
"四": "四",
|
||||
"五": "五",
|
||||
"六": "六",
|
||||
"日": "日",
|
||||
"新建短信模版": "新建短信模版",
|
||||
"新建邮件模版": "新建邮件模版",
|
||||
"自定义短信模版": "自定义短信模版",
|
||||
"自定义邮件模版": "自定义邮件模版",
|
||||
"名称": "名称",
|
||||
"星星锁": "星星锁",
|
||||
"无考勤记录": "无考勤记录",
|
||||
"大家干劲十足": "大家干劲十足",
|
||||
@ -756,7 +756,7 @@
|
||||
"确认国家或地区": "确认国家或地区",
|
||||
"我知道了": "我知道了",
|
||||
"为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。",
|
||||
"开启后,可通过长按锁上的设置键重新上电,用APP重新添加":"开启后,可通过长按锁上的设置键重新上电,用APP重新添加",
|
||||
"开启后,可通过长按锁上的设置键重新上电,用APP重新添加": "开启后,可通过长按锁上的设置键重新上电,用APP重新添加",
|
||||
"已有": "已有",
|
||||
"新增": "新增",
|
||||
"账号格式错误": "账号格式错误",
|
||||
@ -784,21 +784,21 @@
|
||||
"该已锁被删除": "该已锁被删除",
|
||||
"授权管理员只能查看和管理自己下发的钥匙、密码等权限": "授权管理员只能查看和管理自己下发的钥匙、密码等权限",
|
||||
"添加授权管理员": "添加授权管理员",
|
||||
"导出记录":"导出记录",
|
||||
"选择时间段":"选择时间段",
|
||||
"导出":"导出",
|
||||
"批量导出":"批量导出",
|
||||
"读取记录":"读取记录",
|
||||
"手机需联网":"手机需联网",
|
||||
"设备":"设备",
|
||||
"消息":"消息",
|
||||
"智能分析":"智能分析",
|
||||
"精准识别设备事件,过滤无效信息":"精准识别设备事件,过滤无效信息",
|
||||
"系统设置":"系统设置",
|
||||
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
|
||||
"导出操作记录":"导出操作记录",
|
||||
"立即查看":"立即查看",
|
||||
"导出成功":"导出成功",
|
||||
"导出记录": "导出记录",
|
||||
"选择时间段": "选择时间段",
|
||||
"导出": "导出",
|
||||
"批量导出": "批量导出",
|
||||
"读取记录": "读取记录",
|
||||
"手机需联网": "手机需联网",
|
||||
"设备": "设备",
|
||||
"消息": "消息",
|
||||
"智能分析": "智能分析",
|
||||
"精准识别设备事件,过滤无效信息": "精准识别设备事件,过滤无效信息",
|
||||
"系统设置": "系统设置",
|
||||
"系统的全局配置在此项内进行设置": "系统的全局配置在此项内进行设置",
|
||||
"导出操作记录": "导出操作记录",
|
||||
"立即查看": "立即查看",
|
||||
"导出成功": "导出成功",
|
||||
"发送钥匙": "发送钥匙",
|
||||
"进度": "进度",
|
||||
"失败": "失败",
|
||||
@ -931,7 +931,7 @@
|
||||
"或发生异常事件时": "或发生异常事件时",
|
||||
"逗留达到10秒": "逗留达到10秒",
|
||||
"约1.5米": "约1.5米",
|
||||
"随时":"随时",
|
||||
"随时": "随时",
|
||||
"立即录像": "立即录像",
|
||||
"录像时机": "录像时机",
|
||||
"有人出现时录像": "有人出现时录像",
|
||||
@ -1087,7 +1087,8 @@
|
||||
"离线": "离线",
|
||||
"购买记录": "购买记录",
|
||||
"使用记录": "使用记录",
|
||||
|
||||
"失效时间要大于当前时间": "失效时间要大于当前时间",
|
||||
"修改名字": "修改名字"
|
||||
"修改名字": "修改名字",
|
||||
"时": "时",
|
||||
"分": "分"
|
||||
}
|
||||
|
||||
@ -734,13 +734,13 @@
|
||||
"请选择有效日": "请选择有效日",
|
||||
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
|
||||
"已是最新版本": "已是最新版本",
|
||||
"一":"一",
|
||||
"二":"二",
|
||||
"三":"三",
|
||||
"四":"四",
|
||||
"五":"五",
|
||||
"六":"六",
|
||||
"日":"日",
|
||||
"一": "一",
|
||||
"二": "二",
|
||||
"三": "三",
|
||||
"四": "四",
|
||||
"五": "五",
|
||||
"六": "六",
|
||||
"日": "日",
|
||||
"新建短信模版": "新建短信模版",
|
||||
"新建邮件模版": "新建邮件模版",
|
||||
"自定义短信模版": "自定义短信模版",
|
||||
@ -782,21 +782,21 @@
|
||||
"该已锁被删除": "该已锁被删除",
|
||||
"授权管理员只能查看和管理自己下发的钥匙、密码等权限": "授权管理员只能查看和管理自己下发的钥匙、密码等权限",
|
||||
"添加授权管理员": "添加授权管理员",
|
||||
"导出记录":"导出记录",
|
||||
"选择时间段":"选择时间段",
|
||||
"导出":"导出",
|
||||
"批量导出":"批量导出",
|
||||
"读取记录":"读取记录",
|
||||
"手机需联网":"手机需联网",
|
||||
"设备":"设备",
|
||||
"消息":"消息",
|
||||
"智能分析":"智能分析",
|
||||
"精准识别设备事件,过滤无效信息":"精准识别设备事件,过滤无效信息",
|
||||
"系统设置":"系统设置",
|
||||
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
|
||||
"导出操作记录":"导出操作记录",
|
||||
"立即查看":"立即查看",
|
||||
"导出成功":"导出成功",
|
||||
"导出记录": "导出记录",
|
||||
"选择时间段": "选择时间段",
|
||||
"导出": "导出",
|
||||
"批量导出": "批量导出",
|
||||
"读取记录": "读取记录",
|
||||
"手机需联网": "手机需联网",
|
||||
"设备": "设备",
|
||||
"消息": "消息",
|
||||
"智能分析": "智能分析",
|
||||
"精准识别设备事件,过滤无效信息": "精准识别设备事件,过滤无效信息",
|
||||
"系统设置": "系统设置",
|
||||
"系统的全局配置在此项内进行设置": "系统的全局配置在此项内进行设置",
|
||||
"导出操作记录": "导出操作记录",
|
||||
"立即查看": "立即查看",
|
||||
"导出成功": "导出成功",
|
||||
"发送钥匙": "发送钥匙",
|
||||
"进度": "进度",
|
||||
"失败": "失败",
|
||||
@ -929,7 +929,7 @@
|
||||
"或发生异常事件时": "或发生异常事件时",
|
||||
"逗留达到10秒": "逗留达到10秒",
|
||||
"约1.5米": "约1.5米",
|
||||
"随时":"随时",
|
||||
"随时": "随时",
|
||||
"立即录像": "立即录像",
|
||||
"录像时机": "录像时机",
|
||||
"有人出现时录像": "有人出现时录像",
|
||||
@ -1087,7 +1087,8 @@
|
||||
"离线": "离线",
|
||||
"购买记录": "购买记录",
|
||||
"使用记录": "使用记录",
|
||||
|
||||
"失效时间要大于当前时间": "失效时间要大于当前时间",
|
||||
"修改名字": "修改名字"
|
||||
"修改名字": "修改名字",
|
||||
"时": "时",
|
||||
"分": "分"
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
|
||||
import 'package:date_format/date_format.dart';
|
||||
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/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_state.dart';
|
||||
import 'package:star_lock/tools/pickers/pickers.dart';
|
||||
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
|
||||
import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart';
|
||||
|
||||
import '../../../../../app_settings/app_colors.dart';
|
||||
import '../../../../../tools/commonItem.dart';
|
||||
@ -43,9 +45,7 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
||||
isHaveLine: true,
|
||||
isHaveRightWidget: true,
|
||||
setHeight: false,
|
||||
rightWidget: getTFWidget(
|
||||
'(${"必填".tr})',
|
||||
maxSize: 50)),
|
||||
rightWidget: getTFWidget('(${"必填".tr})', maxSize: 50)),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: '开始日期'.tr,
|
||||
rightTitle: state.beginDate.value.isEmpty
|
||||
@ -54,19 +54,11 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
||||
isHaveLine: true,
|
||||
isHaveDirection: false,
|
||||
action: () async {
|
||||
await showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return ShowCalendar(
|
||||
datePickerMode: DatePickerMode.day,
|
||||
selectAction: (DateTime dateTime) {
|
||||
final String beginDate = formatDate(
|
||||
dateTime, <String>[yyyy, '-', mm, '-', dd]);
|
||||
state.beginDate.value = beginDate;
|
||||
Get.back();
|
||||
// Navigator.of(context).pop(true);
|
||||
});
|
||||
});
|
||||
Pickers.showDatePicker(context,
|
||||
selectDate: PDuration.now(),
|
||||
mode: DateMode.YMD, onConfirm: (PDuration p) {
|
||||
state.beginDate.value = formatDate(p);
|
||||
});
|
||||
})),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: '结束日期'.tr,
|
||||
@ -76,18 +68,11 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
||||
isHaveLine: true,
|
||||
isHaveDirection: false,
|
||||
action: () async {
|
||||
await showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return ShowCalendar(
|
||||
datePickerMode: DatePickerMode.day,
|
||||
selectAction: (DateTime dateTime) {
|
||||
final String endDate = formatDate(
|
||||
dateTime, <String>[yyyy, '-', mm, '-', dd]);
|
||||
state.endDate.value = endDate;
|
||||
Get.back();
|
||||
});
|
||||
});
|
||||
Pickers.showDatePicker(context,
|
||||
selectDate: PDuration.now(),
|
||||
mode: DateMode.YMD, onConfirm: (PDuration p) {
|
||||
state.endDate.value = formatDate(p);
|
||||
});
|
||||
})),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: '补班日期'.tr,
|
||||
@ -95,18 +80,11 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
||||
isHaveLine: false,
|
||||
isHaveDirection: false,
|
||||
action: () async {
|
||||
await showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return ShowCalendar(
|
||||
datePickerMode: DatePickerMode.day,
|
||||
selectAction: (DateTime dateTime) {
|
||||
final String makeUpWorkDate = formatDate(
|
||||
dateTime, <String>[yyyy, '-', mm, '-', dd]);
|
||||
state.makeUpWorkDate.value = makeUpWorkDate;
|
||||
Get.back();
|
||||
});
|
||||
});
|
||||
Pickers.showDatePicker(context,
|
||||
selectDate: PDuration.now(),
|
||||
mode: DateMode.YMD, onConfirm: (PDuration p) {
|
||||
state.makeUpWorkDate.value = formatDate(p);
|
||||
});
|
||||
})),
|
||||
SizedBox(
|
||||
height: 50.w,
|
||||
@ -168,4 +146,21 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
String formatDate(PDuration p) {
|
||||
if (p == null) {
|
||||
throw ArgumentError('Input must be a valid DateTime object');
|
||||
}
|
||||
|
||||
String formatPart(int part) {
|
||||
return part.toString().padLeft(2, '0');
|
||||
}
|
||||
|
||||
String monthFormatted = formatPart(p.month!);
|
||||
String dayFormatted = formatPart(p.day!);
|
||||
String hourFormatted = formatPart(p.hour!);
|
||||
String minuteFormatted = formatPart(p.minute!);
|
||||
|
||||
return '${p.year}-${monthFormatted}-${dayFormatted}';
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
@ -219,8 +218,6 @@ class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
||||
context,
|
||||
// 模式,详见下方
|
||||
mode: DateMode.Y,
|
||||
// 后缀 默认Suffix.normal(),为空的话Suffix()
|
||||
suffix: Suffix(years: ' 年'.tr),
|
||||
// 样式 详见下方样式
|
||||
pickerStyle: PickerStyle(
|
||||
cancelButton: GestureDetector(
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:date_format/date_format.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
@ -101,106 +102,108 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
// SizedBox(width: 30.w,),
|
||||
Row(
|
||||
children: <Widget>[
|
||||
SizedBox(
|
||||
width: 20.w,
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
final bool? isDemoMode =
|
||||
await Storage.getBool(ifIsDemoModeOrNot);
|
||||
if (isDemoMode == false) {
|
||||
setState(() {
|
||||
state.isDay.value = true;
|
||||
final DateTime dateTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(
|
||||
state.checkListDateTimestamp.value);
|
||||
final String beginDate =
|
||||
formatDate(dateTime, <String>[mm, '-', dd]);
|
||||
state.checkListDate.value = beginDate;
|
||||
logic.loadDataByType();
|
||||
});
|
||||
} else {
|
||||
// Get.toNamed(Routers.selectLockTypePage);
|
||||
logic.showToast('演示模式'.tr);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
width: 90.w,
|
||||
// height: 100.h,
|
||||
color: Colors.white,
|
||||
child: Obx(() => Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('日榜'.tr,
|
||||
style: TextStyle(
|
||||
color: state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black,
|
||||
fontSize: 22.sp)),
|
||||
SizedBox(height: 10.h),
|
||||
Visibility(
|
||||
visible: state.isDay.value,
|
||||
child: Container(
|
||||
width: 20.w,
|
||||
height: 2.h,
|
||||
color: state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black),
|
||||
)
|
||||
],
|
||||
)),
|
||||
Expanded(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
SizedBox(
|
||||
width: 20.w,
|
||||
),
|
||||
),
|
||||
// SizedBox(width: 20.w,),
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
final bool? isDemoMode =
|
||||
await Storage.getBool(ifIsDemoModeOrNot);
|
||||
if (isDemoMode == false) {
|
||||
setState(() {
|
||||
state.isDay.value = false;
|
||||
final DateTime dateTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(
|
||||
state.checkListDateTimestamp.value);
|
||||
final String beginDate =
|
||||
formatDate(dateTime, <String>[mm]);
|
||||
state.checkListDate.value = beginDate;
|
||||
logic.loadDataByType();
|
||||
});
|
||||
} else {
|
||||
// Get.toNamed(Routers.selectLockTypePage);
|
||||
logic.showToast('演示模式'.tr);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
width: 90.w,
|
||||
// height: 100.h,
|
||||
color: Colors.white,
|
||||
child: Obx(() => Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('月榜'.tr,
|
||||
style: TextStyle(
|
||||
color: !state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black,
|
||||
fontSize: 22.sp)),
|
||||
SizedBox(height: 10.h),
|
||||
Visibility(
|
||||
visible: !state.isDay.value,
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
final bool? isDemoMode =
|
||||
await Storage.getBool(ifIsDemoModeOrNot);
|
||||
if (isDemoMode == false) {
|
||||
setState(() {
|
||||
state.isDay.value = true;
|
||||
final DateTime dateTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(
|
||||
state.checkListDateTimestamp.value);
|
||||
final String beginDate =
|
||||
formatDate(dateTime, <String>[mm, '-', dd]);
|
||||
state.checkListDate.value = beginDate;
|
||||
logic.loadDataByType();
|
||||
});
|
||||
} else {
|
||||
// Get.toNamed(Routers.selectLockTypePage);
|
||||
logic.showToast('演示模式'.tr);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
|
||||
// height: 100.h,
|
||||
color: Colors.white,
|
||||
child: Obx(() => Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('日榜'.tr,
|
||||
style: TextStyle(
|
||||
color: state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black,
|
||||
fontSize: 22.sp)),
|
||||
SizedBox(height: 10.h),
|
||||
Visibility(
|
||||
visible: state.isDay.value,
|
||||
child: Container(
|
||||
width: 20.w,
|
||||
height: 2.h,
|
||||
color: !state.isDay.value
|
||||
color: state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black))
|
||||
],
|
||||
)),
|
||||
: Colors.black),
|
||||
)
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
SizedBox(width: 20.w,),
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
final bool? isDemoMode =
|
||||
await Storage.getBool(ifIsDemoModeOrNot);
|
||||
if (isDemoMode == false) {
|
||||
setState(() {
|
||||
state.isDay.value = false;
|
||||
final DateTime dateTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(
|
||||
state.checkListDateTimestamp.value);
|
||||
final String beginDate =
|
||||
formatDate(dateTime, <String>[mm]);
|
||||
state.checkListDate.value = beginDate;
|
||||
logic.loadDataByType();
|
||||
});
|
||||
} else {
|
||||
// Get.toNamed(Routers.selectLockTypePage);
|
||||
logic.showToast('演示模式'.tr);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
|
||||
// height: 100.h,
|
||||
color: Colors.white,
|
||||
child: Obx(() => Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('月榜'.tr,
|
||||
style: TextStyle(
|
||||
color: !state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black,
|
||||
fontSize: 22.sp)),
|
||||
SizedBox(height: 10.h),
|
||||
Visibility(
|
||||
visible: !state.isDay.value,
|
||||
child: Container(
|
||||
width: 20.w,
|
||||
height: 2.h,
|
||||
color: !state.isDay.value
|
||||
? AppColors.mainColor
|
||||
: Colors.black))
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
@ -19,8 +18,10 @@ class CheckingInSetWorkdaySet extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||
final CheckingInSetWorkdaySetLogic logic = Get.put(CheckingInSetWorkdaySetLogic());
|
||||
final CheckingInSetWorkdaySetState state = Get.find<CheckingInSetWorkdaySetLogic>().state;
|
||||
final CheckingInSetWorkdaySetLogic logic =
|
||||
Get.put(CheckingInSetWorkdaySetLogic());
|
||||
final CheckingInSetWorkdaySetState state =
|
||||
Get.find<CheckingInSetWorkdaySetLogic>().state;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -33,22 +34,28 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||
body: ListView(
|
||||
children: <Widget>[
|
||||
topBtnWidget(),
|
||||
Obx(() => Visibility(visible: state.isCustom.value, child: bottomCustomSelectBtn())),
|
||||
Obx(() => Visibility(visible: !state.isCustom.value, child: bottomOddOrEvenDaysOffSelectBtn())),
|
||||
SizedBox(height: 50.h,),
|
||||
Obx(() => Visibility(
|
||||
visible: state.isCustom.value, child: bottomCustomSelectBtn())),
|
||||
Obx(() => Visibility(
|
||||
visible: !state.isCustom.value,
|
||||
child: bottomOddOrEvenDaysOffSelectBtn())),
|
||||
SizedBox(
|
||||
height: 50.h,
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||
child: SubmitBtn(btnName: '确定'.tr, onClick: () {
|
||||
if(state.pushType.value == '2'){
|
||||
logic.editCheckInSetInfoData();
|
||||
}else{
|
||||
Get.back(result: <String, Object>{
|
||||
'attendanceType':state.isCustom.value,
|
||||
'weekDays':state.weekDays.value,
|
||||
});
|
||||
}
|
||||
|
||||
}),
|
||||
child: SubmitBtn(
|
||||
btnName: '确定'.tr,
|
||||
onClick: () {
|
||||
if (state.pushType.value == '2') {
|
||||
logic.editCheckInSetInfoData();
|
||||
} else {
|
||||
Get.back(result: <String, Object>{
|
||||
'attendanceType': state.isCustom.value,
|
||||
'weekDays': state.weekDays.value,
|
||||
});
|
||||
}
|
||||
}),
|
||||
),
|
||||
],
|
||||
),
|
||||
@ -58,58 +65,64 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||
Widget topBtnWidget() {
|
||||
return Container(
|
||||
width: 1.sw,
|
||||
height: 100.h,
|
||||
constraints: BoxConstraints(minHeight: 100.h),
|
||||
// color: Colors.red,
|
||||
padding: EdgeInsets.all(10.w),
|
||||
child: Obx(() => Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
GestureDetector(
|
||||
onTap: (){
|
||||
setState(() {
|
||||
state.isCustom.value = true;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
width: (1.sw - 5.w * 2) / 2,
|
||||
height: 100.h,
|
||||
color: state.isCustom.value ? AppColors.mainColor : AppColors.btnDisableColor,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Center(child: Text('自定义'.tr, style: TextStyle(fontSize: 26.sp, color: Colors.white))),
|
||||
],
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
state.isCustom.value = true;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
width: (1.sw - 5.w * 2) / 2,
|
||||
height: 100.h,
|
||||
color: state.isCustom.value
|
||||
? AppColors.mainColor
|
||||
: AppColors.btnDisableColor,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Center(
|
||||
child: Text('自定义'.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 26.sp, color: Colors.white))),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
// SizedBox(width: 10.w,),
|
||||
GestureDetector(
|
||||
onTap: (){
|
||||
setState(() {
|
||||
state.isCustom.value = false;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
width: (1.sw - 10 * 3) / 2,
|
||||
height: 100.h,
|
||||
color: state.isCustom.value ? AppColors.btnDisableColor : AppColors.mainColor,
|
||||
padding: EdgeInsets.all(10.w),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(
|
||||
'单双休'.tr,
|
||||
style: TextStyle(fontSize: 26.sp, color: Colors.white),
|
||||
textAlign: TextAlign.center,
|
||||
))),
|
||||
],
|
||||
// SizedBox(width: 10.w,),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
state.isCustom.value = false;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
width: (1.sw - 10 * 3) / 2,
|
||||
color: state.isCustom.value
|
||||
? AppColors.btnDisableColor
|
||||
: AppColors.mainColor,
|
||||
padding: EdgeInsets.all(10.w),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(
|
||||
'单双休'.tr,
|
||||
style: TextStyle(fontSize: 26.sp, color: Colors.white),
|
||||
textAlign: TextAlign.center,
|
||||
))),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
],
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
@ -129,36 +142,46 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||
allHeight: 60.h,
|
||||
isHaveLine: true,
|
||||
isHaveRightWidget: true,
|
||||
action: (){
|
||||
action: () {
|
||||
setState(() {
|
||||
state.isSingledayWeekend.value = 0;
|
||||
state.weekDays.value = <int>[1, 2 , 3, 4, 5, 6];
|
||||
state.weekDays.value = <int>[1, 2, 3, 4, 5, 6];
|
||||
});
|
||||
},
|
||||
rightWidget: Row(
|
||||
children: <Widget>[
|
||||
Image.asset(state.isSingledayWeekend.value == 0 ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w,),
|
||||
Image.asset(
|
||||
state.isSingledayWeekend.value == 0
|
||||
? 'images/icon_round_select.png'
|
||||
: 'images/icon_round_unSelect.png',
|
||||
width: 30.w,
|
||||
height: 30.w,
|
||||
),
|
||||
],
|
||||
)
|
||||
)),
|
||||
))),
|
||||
Obx(() => CommonItem(
|
||||
leftTitel: '双休'.tr,
|
||||
rightTitle: '',
|
||||
allHeight: 60.h,
|
||||
isHaveLine: false,
|
||||
isHaveRightWidget: true,
|
||||
action: (){
|
||||
action: () {
|
||||
setState(() {
|
||||
state.isSingledayWeekend.value = 1;
|
||||
state.weekDays.value = <int>[1, 2 , 3, 4, 5];
|
||||
state.weekDays.value = <int>[1, 2, 3, 4, 5];
|
||||
});
|
||||
},
|
||||
rightWidget: Row(
|
||||
children: <Widget>[
|
||||
Image.asset(state.isSingledayWeekend.value == 1 ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w,),
|
||||
Image.asset(
|
||||
state.isSingledayWeekend.value == 1
|
||||
? 'images/icon_round_select.png'
|
||||
: 'images/icon_round_unSelect.png',
|
||||
width: 30.w,
|
||||
height: 30.w,
|
||||
),
|
||||
],
|
||||
)
|
||||
)),
|
||||
))),
|
||||
],
|
||||
),
|
||||
);
|
||||
@ -206,12 +229,12 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||
allHeight: 60.h,
|
||||
isHaveLine: true,
|
||||
isHaveRightWidget: true,
|
||||
action: (){
|
||||
action: () {
|
||||
setState(() {
|
||||
state.isSingledayWeekend.value = 2;
|
||||
if(state.weekDays.value.contains(index)){
|
||||
if (state.weekDays.value.contains(index)) {
|
||||
state.weekDays.value.remove(index);
|
||||
}else{
|
||||
} else {
|
||||
state.weekDays.value.add(index);
|
||||
}
|
||||
state.weekDays.value.sort();
|
||||
@ -219,13 +242,16 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||
},
|
||||
rightWidget: Row(
|
||||
children: <Widget>[
|
||||
Image.asset(state.weekDays.value.contains(index) ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w,),
|
||||
Image.asset(
|
||||
state.weekDays.value.contains(index)
|
||||
? 'images/icon_round_select.png'
|
||||
: 'images/icon_round_unSelect.png',
|
||||
width: 30.w,
|
||||
height: 30.w,
|
||||
),
|
||||
],
|
||||
)
|
||||
));
|
||||
}
|
||||
),
|
||||
)));
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
@ -32,7 +31,7 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
barTitle: '面容开锁设置'.tr,
|
||||
haveBack: true,
|
||||
backgroundColor: AppColors.mainColor),
|
||||
body: Obx(() => Column(
|
||||
body: Obx(() => ListView(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 20.w),
|
||||
@ -58,11 +57,15 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
'防误开'.tr,
|
||||
state.antiMisoperation.value == 0
|
||||
? '防误开已关闭,关门后仍可使用面容开锁'.tr
|
||||
:'防误开已打开,开锁后'.tr + state.antiMisoperation.value.toString() + '秒内不可使用面容开锁'.tr,
|
||||
: '防误开已打开,开锁后'.tr +
|
||||
state.antiMisoperation.value.toString() +
|
||||
'秒内不可使用面容开锁'.tr,
|
||||
// state.antiMisoperation.value == 0 ? '关闭' :
|
||||
'${state.antiMisoperation.value}' + '秒'.tr,
|
||||
state.faceOn.value, () {
|
||||
Pickers.showSinglePicker(Get.context!, data: state.antiMisoperationStrList.value, onConfirm: (var data, int position) {
|
||||
Pickers.showSinglePicker(Get.context!,
|
||||
data: state.antiMisoperationStrList.value,
|
||||
onConfirm: (var data, int position) {
|
||||
AppLog.log('data = $data, position = $position');
|
||||
state.antiMisoperation.value = position;
|
||||
state.setType.value = 2;
|
||||
@ -79,7 +82,8 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
)));
|
||||
}
|
||||
|
||||
Widget _buildSubTitleItem(String leftStr, String subTitle, String rightStr, bool isAble, Function()? action) {
|
||||
Widget _buildSubTitleItem(String leftStr, String subTitle, String rightStr,
|
||||
bool isAble, Function()? action) {
|
||||
return GestureDetector(
|
||||
onTap: isAble ? action : null,
|
||||
child: Container(
|
||||
@ -99,7 +103,11 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text(
|
||||
leftStr,
|
||||
style: TextStyle(fontSize: 24.sp, color: isAble ? Colors.black : AppColors.placeholderTextColor),
|
||||
style: TextStyle(
|
||||
fontSize: 24.sp,
|
||||
color: isAble
|
||||
? Colors.black
|
||||
: AppColors.placeholderTextColor),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
@ -109,8 +117,6 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text(
|
||||
subTitle,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
fontSize: 20.sp, color: AppColors.btnDisableColor),
|
||||
),
|
||||
@ -123,7 +129,9 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
Text(
|
||||
rightStr,
|
||||
style: TextStyle(
|
||||
fontSize: 22.sp, color: isAble ? Colors.black : AppColors.placeholderTextColor),
|
||||
fontSize: 22.sp,
|
||||
color:
|
||||
isAble ? Colors.black : AppColors.placeholderTextColor),
|
||||
),
|
||||
SizedBox(
|
||||
width: 10.w,
|
||||
@ -159,7 +167,8 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
activeColor: CupertinoColors.activeBlue,
|
||||
trackColor: CupertinoColors.systemGrey5,
|
||||
thumbColor: CupertinoColors.white,
|
||||
value: state.faceOn.value, // getIndex == 1 ? state.faceOn.value : state.autoBright.value,
|
||||
value: state.faceOn.value,
|
||||
// getIndex == 1 ? state.faceOn.value : state.autoBright.value,
|
||||
onChanged: (bool value) {
|
||||
if (getIndex == 1) {
|
||||
//设置面容开锁开关
|
||||
@ -181,8 +190,7 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
|
||||
topTitle: '',
|
||||
items: bottomItemList,
|
||||
chooseCallback: (int value) {
|
||||
state.senseDistance.value =
|
||||
state.senseDistanceList.value[value];
|
||||
state.senseDistance.value = state.senseDistanceList.value[value];
|
||||
state.setType.value = 1;
|
||||
logic.sendFaceUnlock();
|
||||
},
|
||||
|
||||
@ -532,7 +532,7 @@ class LockSetLogic extends BaseGetXController {
|
||||
/// 以下为删除逻辑
|
||||
void deleyLockLogicOfRoles() {
|
||||
if (state.lockBasicInfo.value.isLockOwner == 1) {
|
||||
// 超级管理员必须通过连接蓝牙删除
|
||||
// 超级管理员必须通过连接蓝牙删除q
|
||||
state.showTipView.showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr, () {
|
||||
// 删除锁
|
||||
state.showTipView.resetGetController();
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@ -10,6 +11,7 @@ import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:star_lock/flavors.dart';
|
||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_logic.dart';
|
||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
|
||||
import 'package:star_lock/tools/langue/langue_tool.dart';
|
||||
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||
import '../../../appRouters.dart';
|
||||
import '../../../app_settings/app_colors.dart';
|
||||
@ -149,6 +151,8 @@ class _MineSetPageState extends State<MineSetPage>
|
||||
}
|
||||
|
||||
Widget getListDataView() {
|
||||
// 检测系统语言是否为中文
|
||||
bool isChinese = LanguageTool.instance.isChinese;
|
||||
return Column(
|
||||
children: <Widget>[
|
||||
/* 2024-01-12 会议确定去掉“提示音、触摸开锁” by DaisyWu
|
||||
@ -192,17 +196,20 @@ class _MineSetPageState extends State<MineSetPage>
|
||||
height: 50.h,
|
||||
child: Obx(_isPushNotificationSwitch))),
|
||||
// if (F.appFlavor == Flavor.sky)
|
||||
CommonItem(
|
||||
if (isChinese)
|
||||
CommonItem(
|
||||
leftTitel: '微信公众号推送'.tr,
|
||||
rightTitle: '',
|
||||
isHaveLine: true,
|
||||
isHaveRightWidget: true,
|
||||
rightWidget: SizedBox(
|
||||
width: 60.w,
|
||||
height: 50.h,
|
||||
child: Obx(_isWechatPublicAccountPushSwitch))),
|
||||
// else
|
||||
// Container(),
|
||||
width: 60.w,
|
||||
height: 50.h,
|
||||
child: Obx(_isWechatPublicAccountPushSwitch),
|
||||
),
|
||||
)
|
||||
else
|
||||
Container(),
|
||||
SizedBox(height: 10.h),
|
||||
CommonItem(
|
||||
leftTitel: '锁用户管理'.tr,
|
||||
|
||||
13
lib/tools/langue/langue_tool.dart
Normal file
13
lib/tools/langue/langue_tool.dart
Normal file
@ -0,0 +1,13 @@
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class LanguageTool {
|
||||
LanguageTool._();
|
||||
|
||||
static LanguageTool? _instance;
|
||||
|
||||
static LanguageTool get instance => _instance ??= LanguageTool._();
|
||||
|
||||
String get currentLanguage => Get.locale?.languageCode ?? 'zh';
|
||||
|
||||
bool get isChinese => currentLanguage == 'zh';
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user