Commit e12bc37a by wjd

Merge branch 'jianxiang' into 'debug'

Jianxiang

See merge request iot-project-js/doorlock!27
parents b995f060 45cda6b5
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
"opendoorMsgPush": "开门消息推送", "opendoorMsgPush": "开门消息推送",
"unbindDialogTip": "确认解除绑定", "unbindDialogTip": "确认解除绑定",
"unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功", "unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功",
"unbindFailue": "<img src='../../resources/image/green_unbindFail_icon.png'>解绑失败" "unbindFailue": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑失败"
}, },
"editName":{ "editName":{
"nameInputTip": "请输入门锁名称", "nameInputTip": "请输入门锁名称",
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
"unbindDialogTip": "<img src='../../resources/image/green_unbind_icon.png'>解绑后,该用户不能对门锁下的信息进行查看", "unbindDialogTip": "<img src='../../resources/image/green_unbind_icon.png'>解绑后,该用户不能对门锁下的信息进行查看",
"deleteUserDialogTip": "删除后,用户对应的开锁id取消关联,同时失去信息查看权限。", "deleteUserDialogTip": "删除后,用户对应的开锁id取消关联,同时失去信息查看权限。",
"unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功", "unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功",
"unbindFailue": "<img src='../../resources/image/green_unbindFail_icon.png'>解绑失败", "unbindFailue": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑失败",
"guideStep1Tip1": "邀请绑定成功", "guideStep1Tip1": "邀请绑定成功",
"guideStep1Tip2": "(受邀用户可查看开门记录,报警记录等<br>相关门锁信息)", "guideStep1Tip2": "(受邀用户可查看开门记录,报警记录等<br>相关门锁信息)",
"guideStep3Tip": "关联后可了解<br>该用户的开门情况", "guideStep3Tip": "关联后可了解<br>该用户的开门情况",
...@@ -291,6 +291,7 @@ ...@@ -291,6 +291,7 @@
"unlockInfo":{ "unlockInfo":{
"bindUnlockInfo": "已关联的开锁信息", "bindUnlockInfo": "已关联的开锁信息",
"noInfoTip": "尚未关联开锁信息", "noInfoTip": "尚未关联开锁信息",
"bindSoon": "快速关联",
"passwordOpenDoor": "密码", "passwordOpenDoor": "密码",
"fingerprintOpenDoor": "指纹", "fingerprintOpenDoor": "指纹",
"ICcardOpenDoor": "IC卡", "ICcardOpenDoor": "IC卡",
...@@ -299,9 +300,9 @@ ...@@ -299,9 +300,9 @@
"appRemoteOpenDoor": "app远程", "appRemoteOpenDoor": "app远程",
"hijackingAlarm": "劫持指纹", "hijackingAlarm": "劫持指纹",
"setHijack": "设为劫持", "setHijack": "设为劫持",
"setHijackTip": "确认设为劫持指纹?", "setHijackTip": "确认设为劫持指纹?设定后使用该指纹开锁时,门锁用户将会收到劫持报警",
"cancelHijack": "取消劫持", "cancelHijack": "取消劫持",
"cancelHijackTip": "确认取消劫持指纹?", "cancelHijackTip": "确认取消劫持指纹?取消后,门锁用户不再收到劫持报警",
"cancelAssociated": "取消关联", "cancelAssociated": "取消关联",
"cancelAssociatedTip": "取消关联后,开门历史记录中将不再显示关联的用户信息。", "cancelAssociatedTip": "取消关联后,开门历史记录中将不再显示关联的用户信息。",
"cancelAssociatedSuccess": "取消关联成功", "cancelAssociatedSuccess": "取消关联成功",
...@@ -309,7 +310,9 @@ ...@@ -309,7 +310,9 @@
"setHijackSuccess": "设为劫持指纹成功", "setHijackSuccess": "设为劫持指纹成功",
"setHijackFailue": "设为劫持指纹失败", "setHijackFailue": "设为劫持指纹失败",
"cancelHijackSuccess": "取消劫持指纹成功", "cancelHijackSuccess": "取消劫持指纹成功",
"cancelHijackFailue": "取消劫持指纹失败" "cancelHijackFailue": "取消劫持指纹失败",
"unlockInfoListTip": "暂无关联信息",
"noHistoryTip": "今日尚无未关联的开门记录"
}, },
"addUnlockInfo":{ "addUnlockInfo":{
"opendoorMode": "选择要关联的开锁方式", "opendoorMode": "选择要关联的开锁方式",
...@@ -327,7 +330,9 @@ ...@@ -327,7 +330,9 @@
"setHijackSwitch": "设为劫持指纹", "setHijackSwitch": "设为劫持指纹",
"guideStep1Tip": "选择需要添加关联的开门方式", "guideStep1Tip": "选择需要添加关联的开门方式",
"guideStep3Tip": "根据开门记录中的开门时间,选择关联的<br>开门ID<span>(一个ID只能被一个用户绑定)</span>", "guideStep3Tip": "根据开门记录中的开门时间,选择关联的<br>开门ID<span>(一个ID只能被一个用户绑定)</span>",
"guideStep5Tip": "使用劫持指纹开门时,会以报警形式<br>通知到该门锁名下的其他绑定用户" "guideStep5Tip": "使用劫持指纹开门时,会以报警形式<br>通知到该门锁名下的其他绑定用户",
"bindedUnlockInfo": "查看已关联信息",
"stay": "留在此页"
}, },
"myInfo":{ "myInfo":{
"editNickname": "修改昵称", "editNickname": "修改昵称",
...@@ -335,7 +340,8 @@ ...@@ -335,7 +340,8 @@
"logoutDialogTip": "确定要退出系统吗?" "logoutDialogTip": "确定要退出系统吗?"
}, },
"editNickname": { "editNickname": {
"nickNameInputTip": "请输入昵称" "nickNameInputTip": "请输入昵称",
"nickNameTypeTip": "请输入中文、字母和数字"
}, },
"editPassword": { "editPassword": {
"newPasswordInputTip": "请输入新密码", "newPasswordInputTip": "请输入新密码",
...@@ -388,8 +394,5 @@ ...@@ -388,8 +394,5 @@
"tip": "版本更新", "tip": "版本更新",
"update":"更新", "update":"更新",
"miss": "暂不更新" "miss": "暂不更新"
},
"textTip":{
"textType": "请输入中文、字母和数字"
} }
} }
\ No newline at end of file
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
"opendoorMsgPush": "开门消息推送", "opendoorMsgPush": "开门消息推送",
"unbindDialogTip": "确认解除绑定", "unbindDialogTip": "确认解除绑定",
"unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功", "unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功",
"unbindFailue": "<img src='../../resources/image/green_unbindFail_icon.png'>解绑失败" "unbindFailue": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑失败"
}, },
"editName":{ "editName":{
"nameInputTip": "请输入门锁名称", "nameInputTip": "请输入门锁名称",
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
"unbindDialogTip": "<img src='../../resources/image/green_unbind_icon.png'>解绑后,该用户不能对门锁下的信息进行查看", "unbindDialogTip": "<img src='../../resources/image/green_unbind_icon.png'>解绑后,该用户不能对门锁下的信息进行查看",
"deleteUserDialogTip": "删除后,用户对应的开锁id取消关联,同时失去信息查看权限。", "deleteUserDialogTip": "删除后,用户对应的开锁id取消关联,同时失去信息查看权限。",
"unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功", "unbindSuccess": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功",
"unbindFailue": "<img src='../../resources/image/green_unbindFail_icon.png'>解绑失败", "unbindFailue": "<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑失败",
"guideStep1Tip1": "邀请绑定成功", "guideStep1Tip1": "邀请绑定成功",
"guideStep1Tip2": "(受邀用户可查看开门记录,报警记录等<br>相关门锁信息)", "guideStep1Tip2": "(受邀用户可查看开门记录,报警记录等<br>相关门锁信息)",
"guideStep3Tip": "关联后可了解<br>该用户的开门情况", "guideStep3Tip": "关联后可了解<br>该用户的开门情况",
...@@ -291,6 +291,7 @@ ...@@ -291,6 +291,7 @@
"unlockInfo":{ "unlockInfo":{
"bindUnlockInfo": "已关联的开锁信息", "bindUnlockInfo": "已关联的开锁信息",
"noInfoTip": "尚未关联开锁信息", "noInfoTip": "尚未关联开锁信息",
"bindSoon": "快速关联",
"passwordOpenDoor": "密码", "passwordOpenDoor": "密码",
"fingerprintOpenDoor": "指纹", "fingerprintOpenDoor": "指纹",
"ICcardOpenDoor": "IC卡", "ICcardOpenDoor": "IC卡",
...@@ -299,9 +300,9 @@ ...@@ -299,9 +300,9 @@
"appRemoteOpenDoor": "app远程", "appRemoteOpenDoor": "app远程",
"hijackingAlarm": "劫持指纹", "hijackingAlarm": "劫持指纹",
"setHijack": "设为劫持", "setHijack": "设为劫持",
"setHijackTip": "确认设为劫持指纹?", "setHijackTip": "确认设为劫持指纹?设定后使用该指纹开锁时,门锁用户将会收到劫持报警",
"cancelHijack": "取消劫持", "cancelHijack": "取消劫持",
"cancelHijackTip": "确认取消劫持指纹?", "cancelHijackTip": "确认取消劫持指纹?取消后,门锁用户不再收到劫持报警",
"cancelAssociated": "取消关联", "cancelAssociated": "取消关联",
"cancelAssociatedTip": "取消关联后,开门历史记录中将不再显示关联的用户信息。", "cancelAssociatedTip": "取消关联后,开门历史记录中将不再显示关联的用户信息。",
"cancelAssociatedSuccess": "取消关联成功", "cancelAssociatedSuccess": "取消关联成功",
...@@ -309,7 +310,9 @@ ...@@ -309,7 +310,9 @@
"setHijackSuccess": "设为劫持指纹成功", "setHijackSuccess": "设为劫持指纹成功",
"setHijackFailue": "设为劫持指纹失败", "setHijackFailue": "设为劫持指纹失败",
"cancelHijackSuccess": "取消劫持指纹成功", "cancelHijackSuccess": "取消劫持指纹成功",
"cancelHijackFailue": "取消劫持指纹失败" "cancelHijackFailue": "取消劫持指纹失败",
"unlockInfoListTip": "暂无关联信息",
"noHistoryTip": "今日尚无未关联的开门记录"
}, },
"addUnlockInfo":{ "addUnlockInfo":{
"opendoorMode": "选择要关联的开锁方式", "opendoorMode": "选择要关联的开锁方式",
...@@ -327,7 +330,9 @@ ...@@ -327,7 +330,9 @@
"setHijackSwitch": "设为劫持指纹", "setHijackSwitch": "设为劫持指纹",
"guideStep1Tip": "选择需要添加关联的开门方式", "guideStep1Tip": "选择需要添加关联的开门方式",
"guideStep3Tip": "根据开门记录中的开门时间,选择关联的<br>开门ID<span>(一个ID只能被一个用户绑定)</span>", "guideStep3Tip": "根据开门记录中的开门时间,选择关联的<br>开门ID<span>(一个ID只能被一个用户绑定)</span>",
"guideStep5Tip": "使用劫持指纹开门时,会以报警形式<br>通知到该门锁名下的其他绑定用户" "guideStep5Tip": "使用劫持指纹开门时,会以报警形式<br>通知到该门锁名下的其他绑定用户",
"bindedUnlockInfo": "查看已关联信息",
"stay": "留在此页"
}, },
"myInfo":{ "myInfo":{
"editNickname": "修改昵称", "editNickname": "修改昵称",
...@@ -335,7 +340,8 @@ ...@@ -335,7 +340,8 @@
"logoutDialogTip": "确定要退出系统吗?" "logoutDialogTip": "确定要退出系统吗?"
}, },
"editNickname": { "editNickname": {
"nickNameInputTip": "请输入昵称" "nickNameInputTip": "请输入昵称",
"nickNameTypeTip": "请输入中文、字母和数字"
}, },
"editPassword": { "editPassword": {
"newPasswordInputTip": "请输入新密码", "newPasswordInputTip": "请输入新密码",
...@@ -388,8 +394,5 @@ ...@@ -388,8 +394,5 @@
"tip": "版本更新", "tip": "版本更新",
"update":"更新", "update":"更新",
"miss": "暂不更新" "miss": "暂不更新"
},
"textTip":{
"textType": "请输入中文、字母和数字"
} }
} }
\ No newline at end of file
...@@ -165,8 +165,14 @@ function connectButtonTap(self){ ...@@ -165,8 +165,14 @@ function connectButtonTap(self){
} }
},1000); },1000);
uComponents.showProcess(self, 0, Vue.t('addDevice.loading'), [{ uComponents.showProcess(self, 0, Vue.t('addDevice.loading'), [{
"class": 'custom-process-button', 'text': Vue.t('btn.cancel'), 'callback': () => { "class": 'custom-process-button custom-process-cancelButton', 'text': Vue.t('btn.cancel'), 'callback': () => {
uComponents.hideProcess(self); uComponents.hideProcess(self);
window.clearInterval(self.timeout);
//停止配网
iot.business.sds.stopFindDevices({
success: (response) => {},
error: (error) => {}
});
} }
}]); }]);
iot.business.sds.findWifi({ iot.business.sds.findWifi({
...@@ -194,8 +200,14 @@ function connectButtonTap(self){ ...@@ -194,8 +200,14 @@ function connectButtonTap(self){
iotDebug.upload(iot,'配网中'); iotDebug.upload(iot,'配网中');
} }
uComponents.showProcess(self, 0, Vue.t('wifiAdd.wifiBinding'), [{ uComponents.showProcess(self, 0, Vue.t('wifiAdd.wifiBinding'), [{
"class": 'custom-process-button', 'text': Vue.t('btn.cancel'), 'callback': () => { "class": 'custom-process-button custom-process-cancelButton', 'text': Vue.t('btn.cancel'), 'callback': () => {
uComponents.hideProcess(self); uComponents.hideProcess(self);
window.clearInterval(self.timeout);
//停止配网
iot.business.sds.stopFindDevices({
success: (response) => {},
error: (error) => {}
});
} }
}]); }]);
}else if(response.data == 'provisioned success'){ }else if(response.data == 'provisioned success'){
...@@ -207,8 +219,14 @@ function connectButtonTap(self){ ...@@ -207,8 +219,14 @@ function connectButtonTap(self){
} }
//wifi连接成功,停止连接wifi //wifi连接成功,停止连接wifi
uComponents.showProcess(self, 0, Vue.t('wifiAdd.wifiBindSuccess'), [{ uComponents.showProcess(self, 0, Vue.t('wifiAdd.wifiBindSuccess'), [{
"class": 'custom-process-button', 'text': Vue.t('btn.cancel'), 'callback': () => { "class": 'custom-process-button custom-process-cancelButton', 'text': Vue.t('btn.cancel'), 'callback': () => {
uComponents.hideProcess(self); uComponents.hideProcess(self);
window.clearInterval(self.timeout);
//停止配网
iot.business.sds.stopFindDevices({
success: (response) => {},
error: (error) => {}
});
} }
}]); }]);
} }
...@@ -242,8 +260,14 @@ function connectButtonTap(self){ ...@@ -242,8 +260,14 @@ function connectButtonTap(self){
iotDebug.upload(iot,'激活中'); iotDebug.upload(iot,'激活中');
} }
uComponents.showProcess(self, 0, Vue.t('wifiAdd.deviceActivating'), [{ uComponents.showProcess(self, 0, Vue.t('wifiAdd.deviceActivating'), [{
"class": 'custom-process-button', 'text': Vue.t('btn.cancel'), 'callback': () => { "class": 'custom-process-button custom-process-cancelButton', 'text': Vue.t('btn.cancel'), 'callback': () => {
uComponents.hideProcess(self); uComponents.hideProcess(self);
window.clearInterval(self.timeout);
//停止配网
iot.business.sds.stopFindDevices({
success: (response) => {},
error: (error) => {}
});
} }
}]); }]);
}else if(response.data == "joined success"){ }else if(response.data == "joined success"){
......
...@@ -241,10 +241,10 @@ async function showGuide(self){ ...@@ -241,10 +241,10 @@ async function showGuide(self){
console.log(self.userInfo.role); console.log(self.userInfo.role);
if(self.userInfo.role == 0){ if(self.userInfo.role == 0){
try{ try{
time = await sleep(1000); time = await sleep(500);
self.setGuideStep3ShowFlag(true), self.setGuideStep3ShowFlag(true),
time = await sleep(1000); time = await sleep(500);
self.setGuideStep4ShowFlag(true); self.setGuideStep4ShowFlag(true);
} }
catch (err){ catch (err){
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved. * Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 绑定开锁信息页面 * 绑定开锁信息页面
*/ */
import moment from 'moment';
import config from '../../public/config.js' import config from '../../public/config.js'
import {iot, uPublic, uComponents} from '../../public/public.js'; import {iot, uPublic, uComponents} from '../../public/public.js';
...@@ -21,20 +23,42 @@ function init() { ...@@ -21,20 +23,42 @@ function init() {
unlockInfoList: [], unlockInfoList: [],
openLockInfoList: [], openLockInfoList: [],
extras: {}, extras: {},
role: null role: null,
lockItems: [],
selectItem: 0,
unlockInfoListTip: Vue.t('unlockInfo.unlockInfoListTip'),
noHistoryTip: Vue.t('unlockInfo.noHistoryTip'),
tipShowFlag: true,
infoList: [],
// list: [],
// pullup: false,
// loadText: Vue.t('scroll.clickToLoadMore'),
// // loading是否显示
// loadShowFlag: false,
// // 是否在loading
// loadFlag: false,
// tipShowFlag: false
}, },
mounted(){ mounted(){
this.extras = iot.navigator.getExtras(); this.extras = iot.navigator.getExtras();
this.role = this.extras.role; this.role = this.extras.role;
console.log(this.extras); console.log(this.extras);
//获取已绑定的开锁信息
getBindedLockInfo(this);
let self = this; let self = this;
window.addEventListener('returnPage',function(event){ this.lockItems = [{text: Vue.t('unlockInfo.bindSoon')},{text: Vue.t('unlockInfo.bindUnlockInfo')}];
console.log("returnPage"); itemChange(this, this.selectItem);
self.unlockInfoList = [];
getBindedLockInfo(self); // this.setLoadShowFlag(this.infoList.length);
}); // let ulistDom = this.$refs.infoList;
// ulistDom.onscroll = function () {
// //在一些特殊情况下ulistDom.scrollHeight和ulistDom.offsetHeight + ulistDom.scrollTop会相差1px,这里考虑1px的误差
// console.log(self.loadFlag+'+'+self.pullup+'+'+ulistDom.scrollHeight+'+'+ulistDom.scrollTop);
// if (!self.loadFlag && self.pullup && (ulistDom.scrollHeight - (ulistDom.offsetHeight + ulistDom.scrollTop)) <= 1) {
// self.loadText = Vue.t('scroll.loading');
// self.loadFlag = true;
// getBindedLockInfo(self);
// }
// }
}, },
methods:{ methods:{
getUnlockInfoList(){ getUnlockInfoList(){
...@@ -49,17 +73,40 @@ function init() { ...@@ -49,17 +73,40 @@ function init() {
setOpenLockInfoList(list){ setOpenLockInfoList(list){
this.openLockInfoList = list; this.openLockInfoList = list;
}, },
getSelectItem(){
return this.selectItem;
},
setSelectItem(index){
this.selectItem = index;
},
getInfoList(){
return this.infoList;
},
setInfoList(list){
this.infoList = list;
},
//tap < //tap <
onBackTap(){ onBackTap(){
backTap(); backTap();
}, },
onAddTap(){ // onAddTap(){
//tap 添加 // //tap 添加
addTap(this); // addTap(this);
// },
onItemChange(key){
itemChange(this, key);
},
onImgButtonTap(index, buttonIndex){
imgButtonTap(this, index, buttonIndex);
},
setLoadShowFlag(number) {
this.loadShowFlag = (number >= this.pagesize);
}, },
//tap list row btn onTapLoad() {
onUnlockInfoListButtonTap(value, buttonValue){ tapLoad(this);
unlockInfoListButtonTap(this, value, buttonValue); },
changeList(list) {
changeList(this, list);
} }
} }
}).$mount('#app'); }).$mount('#app');
...@@ -68,19 +115,6 @@ function init() { ...@@ -68,19 +115,6 @@ function init() {
//配置组件参数 //配置组件参数
function initComponentsConfig() { function initComponentsConfig() {
return { return {
unlockInfoList: {
initParam: {
// class: 'custom-unlockInfo-list',
list: [],
class: 'custom-swipe-list',
// list: [
// {title: '指纹1', subtitle: 'ID:123456', buttons: [{'text': Vue.t('unlockInfo.setHijack')},{'text': Vue.t('unlockInfo.cancelAssociated')}]},
// {title: '指纹2', subtitle: 'ID:123456', buttons: [{'text': Vue.t('unlockInfo.setHijack')},{'text': Vue.t('unlockInfo.cancelAssociated')}]},
// {title: '劫持指纹1', subtitle: 'ID:123456', buttons: [{'text': Vue.t('unlockInfo.cancelHijack')},{'text': Vue.t('unlockInfo.cancelAssociated')}]}
// ],
tip: Vue.t('unlockInfo.noInfoTip')
}
},
dialog: { dialog: {
initParam: { initParam: {
class: 'custom-dialog' class: 'custom-dialog'
...@@ -144,27 +178,22 @@ function getBindedLockInfo(self){ ...@@ -144,27 +178,22 @@ function getBindedLockInfo(self){
list[i] = { list[i] = {
title: Vue.t('unlockInfo.'+config.openDoorMode[data[i].mode]+'')+j+'', title: Vue.t('unlockInfo.'+config.openDoorMode[data[i].mode]+'')+j+'',
subtitle: 'ID:'+data[i].openId, subtitle: 'ID:'+data[i].openId,
buttons: self.extras.role ? [] : [{'text': data[i].mode == 20 ? Vue.t('unlockInfo.cancelHijack') : data[i].mode == 2 ? Vue.t('unlockInfo.setHijack') : ''},{'text': Vue.t('unlockInfo.cancelAssociated')}] // buttons: self.extras.role ? [] : [{'text': data[i].mode == 20 ? Vue.t('unlockInfo.cancelHijack') : data[i].mode == 2 ? Vue.t('unlockInfo.setHijack') : ''},{'text': Vue.t('unlockInfo.cancelAssociated')}]
buttons: self.extras.role ? [] : (data[i].mode == 20 || data[i].mode == 2) ? [{"imgSrc": data[i].mode == 20 ? "../../resources/image/green_deleteHijack_icon.png" : "../../resources/image/green_setHijack_icon.png"},{"imgSrc": "../../resources/image/green_deleteUnlockInfo_icon.png"}] : [{"imgSrc": null},{"imgSrc": "../../resources/image/green_deleteUnlockInfo_icon.png"}]
}; };
j++; j++;
lastMode = data[i].mode; lastMode = data[i].mode;
} }
self.setUnlockInfoList(self.getUnlockInfoList().concat(list)); //更新列表
console.log(self.getUnlockInfoList()); self.setInfoList(list);
//更新列表数据 // changeList(self, list);
uComponents.changeSwipeList(self, self.getUnlockInfoList());
}else{ }else{
uComponents.changeSwipeList(self, []); //当已绑定信息为空时,列表渲染为空
self.setInfoList([]);
} }
}, },
error: (error) => { error: (error) => {
console.log(error); console.log(error);
// if(window.iotDebug){
// iotDebug.push('end: 获取已绑定的开锁信息失败'+JSON.stringify(error));
// }
// if (window.iotDebug) {
// iotDebug.upload(iot,'获取已绑定的开锁信息失败');
// }
uPublic.openRequestErrorAlert(self); uPublic.openRequestErrorAlert(self);
}, },
complete: () => { complete: () => {
...@@ -191,7 +220,6 @@ function unlockInfoListButtonTap(self, value, buttonValue) { ...@@ -191,7 +220,6 @@ function unlockInfoListButtonTap(self, value, buttonValue) {
console.log(response); console.log(response);
uComponents.openAlert(self, Vue.t('unlockInfo.setHijackSuccess'), { uComponents.openAlert(self, Vue.t('unlockInfo.setHijackSuccess'), {
text: Vue.t('dialog.confirm'), callback: function () { text: Vue.t('dialog.confirm'), callback: function () {
self.unlockInfoList = [];
getBindedLockInfo(self); getBindedLockInfo(self);
} }
}); });
...@@ -230,7 +258,6 @@ function unlockInfoListButtonTap(self, value, buttonValue) { ...@@ -230,7 +258,6 @@ function unlockInfoListButtonTap(self, value, buttonValue) {
console.log(response); console.log(response);
uComponents.openAlert(self, Vue.t('unlockInfo.cancelHijackSuccess'), { uComponents.openAlert(self, Vue.t('unlockInfo.cancelHijackSuccess'), {
text: Vue.t('dialog.confirm'), callback: function () { text: Vue.t('dialog.confirm'), callback: function () {
self.unlockInfoList = [];
getBindedLockInfo(self); getBindedLockInfo(self);
} }
}); });
...@@ -273,19 +300,12 @@ function unlockInfoListButtonTap(self, value, buttonValue) { ...@@ -273,19 +300,12 @@ function unlockInfoListButtonTap(self, value, buttonValue) {
console.log(response); console.log(response);
uComponents.openAlert(self, Vue.t('unlockInfo.cancelAssociatedSuccess'), { uComponents.openAlert(self, Vue.t('unlockInfo.cancelAssociatedSuccess'), {
text: Vue.t('dialog.confirm'), callback: function () { text: Vue.t('dialog.confirm'), callback: function () {
self.unlockInfoList = [];
getBindedLockInfo(self); getBindedLockInfo(self);
} }
}); });
}, },
error: (error) => { error: (error) => {
console.log(error); console.log(error);
// if(window.iotDebug){
// iotDebug.push('end: 取消关联失败'+JSON.stringify(error));
// }
// if (window.iotDebug) {
// iotDebug.upload(iot,'取消关联失败');
// }
uComponents.openAlert(self, Vue.t('unlockInfo.cancelAssociatedFailue'), { uComponents.openAlert(self, Vue.t('unlockInfo.cancelAssociatedFailue'), {
text: Vue.t('dialog.confirm'), callback: function () { text: Vue.t('dialog.confirm'), callback: function () {
} }
...@@ -299,3 +319,112 @@ function unlockInfoListButtonTap(self, value, buttonValue) { ...@@ -299,3 +319,112 @@ function unlockInfoListButtonTap(self, value, buttonValue) {
); );
} }
} }
function itemChange(self, key){
self.setInfoList([]);
if(key == 0){
//获取未关联的开门记录
getTodayReccord(self);
}else if(key == 1){
//获取已关联的开门记录
getBindedLockInfo(self);
}
self.setSelectItem(key);
}
function imgButtonTap(self, index, buttonIndex){
if(self.getSelectItem() == 0){
addButtonTap(self, index);
}else if(self.getSelectItem() == 1){
unlockInfoListButtonTap(self, index, buttonIndex);
}
}
//获取当天未绑定的开门记录
function getTodayReccord(self){
uComponents.showLoading(self);
iot.business.api.sendCustom('lock/getUnbindOpen',{
data: {
device_id: self.extras.deviceId
},
success: (response) => {
console.log(response);
let data = response.data;
self.setUnlockInfoList(data);
let list = [];
for(let i = 0; i < data.length; i++){
list[i] = {
value: data[i].id,
title: 'ID:'+data[i].openId,
subtitle: moment(data[i].time).format("HH:mm")+' '+Vue.t('opendoorRecord.'+config.openDoorMode[data[i].mode]+''),
buttons: [{"imgSrc": "../../resources/image/green_addUnlckInfo_icon.png"}]
}
}
self.setInfoList(list);
},
error: (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
},
complete: () => {
uComponents.hideLoading(self);
}
});
}
//tap 添加
function addButtonTap(self, index){
uComponents.showLoading(self);
iot.business.api.sendCustom('lock/bindOpenLog',{
data: {
device_id: self.extras.deviceId,
mode: parseInt(self.getUnlockInfoList()[index].mode),
openId: parseInt(self.getUnlockInfoList()[index].openId),
rel_id: self.extras.id
},
success: (response) => {
console.log(response);
if(response.data.success){
uComponents.openConfirm(self, Vue.t('addUnlockInfo.addInfoSuccess'),
{text: Vue.t('addUnlockInfo.stay'), callback: function () {
getTodayReccord(self);
}},
{text: Vue.t('addUnlockInfo.bindedUnlockInfo'), callback: function () {
itemChange(self, 1);
}});
}else{}
},
error: (error) => {
console.log(error);
uComponents.openAlert(vmObj, Vue.t('addUnlockInfo.addInfoFailue'), {
text: Vue.t('dialog.confirm'), callback: function () {
}
});
},
complete: () => {
uComponents.hideLoading(self);
}
});
}
// // 通知点击加载更多事件
//function tapLoad(self) {
// // loading
// if (!self.loadFlag && !self.pullup) {
// getBindedLockInfo(self);
// self.loadText = Vue.t('scroll.loading');
// self.loadFlag = true;
// }
//}
//
//// 修改list组件列表
//function changeList(self, list) {
// let array = Array.isArray(list) ? list : [];
// self.tipShowFlag = (array.length === 0);
// self.setLoadShowFlag(array.length - self.list.length);
// self.list = array;
// self.$nextTick(function () {
// self.loadText = Vue.t('scroll.clickToLoadMore');
// self.loadFlag = false;
// });
//}
\ No newline at end of file
...@@ -50,52 +50,98 @@ ...@@ -50,52 +50,98 @@
.u-swipe-list(); .u-swipe-list();
.custom-swipe-list{ .tab{
.display-box();
position: relative;
border-bottom: 1px solid #575a6d;/*no*/
li{
.flex();
text-align: center;
height: 45px;
line-height: 45px;
position: relative;
color: #575a6d;
font-size: 16px;
&:after{
content: '';
position: absolute; position: absolute;
top: 44px;
bottom: 0; bottom: 0;
left: 0; left: 0;
height: auto; right: 0;
.u-swipe-list-scroll .u-swipe-list-row{ height: 2px /*except*/;
.u-swipe-list-handle{ background-color: transparent;
background-color: @CUSTOM-UNLOCKINFO-SWIPELIST-COMPONENT-ROW-BG; }
padding: 0 42px; }
.active{
color: #fff;
&:after{
background-color: #FFF;
}
}
}
.infoList-list{
width: 100%;
overflow: auto;
position: absolute;
top: 90px;
bottom: 0;
left: 0;
.infoList-list-scroll .infoList-list-row{
position: relative;
height: 55px; height: 55px;
font-size: @CUSTOM-UNLOCKINFO-SWIPELIST-COMPONENT-TEXT-FONTSIZE; padding: 0 42px;
.display-box();
.box-vertical-alignment();
.infoList-list-handle{
.u-swipe-list-title{ .u-swipe-list-title{
float: left; .text_oneRow_ellipsis();
font-size: 16px;
} }
.u-swipe-list-subtitle{ .u-swipe-list-subtitle{
float: right; .text_oneRow_ellipsis();
} }
} }
.u-swipe-list-button{ .infoList-list-button{
right: 32px; position: absolute;
div{ top: 0;
width: 85px; bottom: 0;
color: @CUSTOM-UNLOCKINFO-SWIPELIST-COMPONENT-BUTTON-COLOR; right: 25px;
font-size: @CUSTOM-UNLOCKINFO-SWIPELIST-COMPONENT-BUTTON-FONTSIZE; z-index: 1;
&:nth-last-of-type(1), .display-box();
&:nth-last-of-type(2){ .box-vertical-alignment();
background-color: @CUSTOM-UNLOCKINFO-SWIPELIST-COMPONENT-BUTTON-BG; .infoList-list-buttonCont{
float: left;
padding: 10px;
margin: 0 5px;
img{
width: 23px;
height: 23px;
} }
} }
} }
&:after{ &:after{
.defaultBorder();
.white_gradient_border(); .white_gradient_border();
} }
&.active .u-swipe-list-handle{
left: -202px;
}
} }
//上拉加载 //上拉加载
.u-swipe-list-load{ .infoList-list-load{
.listLoad(); text-align: center;
} }
//swipeList 无内容
.u-swipeList-tip{ //list 无内容
.infoList-list-tip{
.transformV_center(left,0);
width: 100%;
text-align: center;
.listNoCont("unlockNoCont.png",70px 70px); .listNoCont("unlockNoCont.png",70px 70px);
} }
//list 无历史记录
.noHistory-list-tip{
.listNoCont("noCont.png",70px 70px);
}
} }
//绑定开锁信息 //绑定开锁信息
......
web/resources/image/noCont.png

3.54 KB | W: | H:

web/resources/image/noCont.png

3.62 KB | W: | H:

web/resources/image/noCont.png
web/resources/image/noCont.png
web/resources/image/noCont.png
web/resources/image/noCont.png
  • 2-up
  • Swipe
  • Onion skin
web/resources/image/unlockNoCont.png

5.4 KB | W: | H:

web/resources/image/unlockNoCont.png

5.35 KB | W: | H:

web/resources/image/unlockNoCont.png
web/resources/image/unlockNoCont.png
web/resources/image/unlockNoCont.png
web/resources/image/unlockNoCont.png
  • 2-up
  • Swipe
  • Onion skin
{"loading":"loading...","scroll":{"clickToLoadMore":"上拉加载更多","loading":"loading"},"btn":{"confirm":"确定","guideLogin":"账号/密码登录","login":"登录","getCode":"获取验证码","register":"注册","logout":"退出系统","save":"保存","qrcode":"生成二维码","wifiAdd":"开始配置Wi-Fi","connect":"连接","bindUser":"绑定姓名","bind":"我要绑定","startNow":"立即体验","ignore":"暂不开启","openNotify":"开启推送通知","reBound":"重新绑定","saveQRcode":"保存二维码到相册","unbind":"解绑","deleteUser":"删除该用户","qrcodeReset":"重新生成二维码","add":"添加","next":"下一步","iSee":"我知道了","unbindDoorlock":"解绑门锁","finish":"完成","cancel":"取消"},"dialog":{"confirm":"确认","cancel":"取消","unbind":"解绑","delete":"删除"},"title":{"login":"登录","register":"注册","forgetPassword":"忘记密码","device":"U智锁","opendoorRecord":"开门记录","alarmInfo":"报警记录","remoteOpendoor":"远程开门","hijackRecord":"劫持记录","doorlockManage":"门锁管理","editName":"修改名称","qrcode":"生成绑定二维码","addDevice":"添加设备","scanCodeAdd":"扫描绑定设备","wifiAddHelp":"配置Wi-Fi","wifiAdd":"连接Wi-Fi","bindUserHelp":"ID-姓名绑定","bindUser":"绑定用户","userList":"用户列表","doorlockUser":"门锁用户","addUser":"添加用户","inviteBind":"邀请绑定","unlockInfo":"关联开锁信息","myInfo":"个人信息","editNickname":"修改昵称","editPassword":"修改密码","addUnlockInfo":"关联开锁ID","deviceList":"产品型号"},"guide":{"footer":"指纹改变生活"},"login":{"telInputTip":"请输入手机号","passwordInputTip":"请输入密码","register":"快速注册","forgetPassword":"忘记密码","failure":"登陆失败","defaultUser":"用户{0}","error":{"telNull":"请输入手机号","passWordNull":"请输入密码"}},"register":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"forgetPassword":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"device":{"opendoorRecord":"开门记录","securityAlarm":"安全报警","doorlockUser":"门锁用户","remoteOpendoor":"远程开门","hijackAlarm":"劫持报警","doorlockManage":"门锁管理","followTitle":"关注服务号","followCont1":"关注 “i智信” 微信服务号可随时随地掌握设备动态<br>再也不担心错过重要通知,赶紧按下方提示试试吧","followCont2":"1.保存二维码-2.用微信从<span>相册选取扫码</span>-3.关注","laterFollow":"稍后关注","newMsgDoorlock":"门锁最新消息","doorLockRinging":"门铃响了","defaultNewMsg":"您尚未绑定门锁","noNewMsg":"门锁休息中","bindDoorlock":"绑定门锁","use":"使用"},"opendoorRecord":{"noRecordTip":"暂无记录","passwordOpenDoor":"密码开门","fingerprintOpenDoor":"指纹开门","ICcardOpenDoor":"IC卡开门","remoteOpenDoor":"遥控器开门","keyOpenDoor":"钥匙开门","hijackingAlarm":"劫持报警","appRemoteOpenDoor":"app远程开门"},"alarmInfo":{"noInfoTip":"暂无信息","tamperAlarm":"防撬报警","trialAlarm":"试错报警","powerAlarm":"欠电报警"},"remoteOpendoor":{"loading":"远程开门中","passwordInputTip":"请输入远程开门密码","openDoorSuccess":"远程开门成功","openDoorFailure":"远程开门失败","remoteTimeout":"远程开门超时","remoteOpendoorAgain":"请尝试重试","offlineTip":"设备已离线,收到远程开门请求后,请尽快处理","textlengthTip":"密码长度为6~12位数字","error":{"noPasswordTip":"远程密码不能为空"}},"hijackRecord":{"noRecordTip":"暂无记录","hijackingAlarm":"劫持指纹报警"},"doorlockManage":{"name":"名称","logoutDialogTip":"确定要退出系统吗?","defaultNickname":"门锁","isClearRecord":"清除所有信息","doorbellMsgPush":"门铃消息推送","alarmMsgPush":"报警消息推送","opendoorMsgPush":"开门消息推送","unbindDialogTip":"确认解除绑定","unbindSuccess":"<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功","unbindFailue":"<img src='../../resources/image/green_unbindFail_icon.png'>解绑失败"},"editName":{"nameInputTip":"请输入设备名称","nickNameInputTip":"请输入用户名","editNameSuccess":"修改名称成功","editNameFailue":"修改名称失败","error":{"nameCanNotBeBlank":"设备名称不能为空","nicknameCanNotBeBlank":"用户名不能为空"}},"qrcode":{"helpTitle":"注意事项:","helpCont1":"1.仅超级管理员(通过Wi-Fi配网绑定的用户为超级管理员)可以生成绑定二维码","helpCont2":"2.二维码有效时间为10分钟且只能使用一次","helpCont3":"3.用户只需要扫描该二维码即可绑定指纹锁","helpCont4":"4.绑定失败则需要重新生成二维码进行绑定"},"addDevice":{"scanCodeAdd":"扫描绑定设备","wifiAdd":"配置Wi-Fi","loading":"loading","bindSuccess":"绑定成功","bindFailure":"绑定失败","reBindDevice":"请重新绑定"},"wifiAddHelp":{"helpTitle":"配置WIFI说明:","helpCont1":"确认设备端进入配网模式(详情操作请见产品说明书)","helpCont2":"点击页面下方“开始配置Wi-Fi”按钮,进入WiFi配网页面","helpCont3":"输入Wi-Fi密码,点击“连接”,等待锁端响应,至配网成功。","helpCont4":"(提示:如果指纹锁已经绑定过用户,重新绑定成功后会清除之前所有绑定信息)"},"wifiAdd":{"unbindWifiTip":"当前无Wi-Fi","wifiBinding":"正在连接网络...","wifiBindSuccess":"Wi-Fi连接成功,正在激活设备...","deviceActivating":"Wi-Fi连接成功,正在激活设备...","deviceActivateSuccess":"激活成功","deviceActivateFailure":"激活失败","bindTimeout":"连接超时","passwordInputTip":"请输入Wi-Fi密码","remindTitle":"配置Wi-Fi提醒:","remindCont1":"1. 请确保Wi-Fi信号良好","remindCont2":"2. 本产品暂不支持5GHz无线网络","noticeTip":"检测到您还未开启通知,将无法及时<br>接收安全推送","countDownText":"{0}s","error":{}},"bindUserHelp":{"helpTitle":"配对姓名说明:","helpCont1":"1.在指纹锁上录入指纹、密码、卡并获得相应ID","helpCont2":"2.通过姓名绑定将该ID绑定对应用户姓名","helpCont3":"3.绑定成功后,开门记录中将会显示已绑定的用户姓名","helpCont4":"4.用户姓名信息只保存在APP端,不影响锁端设置","boundUser":"查看已绑定ID姓名"},"bindUser":{"editHeadTip":"点击编辑用户头像","nameTitle":"姓名","fingerprintIDTitle":"指纹ID","passwordIDTitle":"密码ID","ICCardIDTitle":"IC卡ID","requiredInputTip":"(必填)","optionalInputTip":"(选填)","error":{}},"commstatusLoading":{"connectSuccess":"Wi-Fi连接成功,正在绑定...","bindSuccess":"绑定成功","bindFailed":"绑定失败"},"userList":{"name":"昵称:","noUserTip":"暂无用户","defaultName":"管理员","binded":"已绑定","unbind":"未绑定"},"addUser":{"nameInputTip":"请为门锁用户创建显示昵称","addUserSuccess":"添加用户成功","addUserFailure":"添加用户失败","error":{"nameCanNotEmpty":"用户名不能为空"}},"doorlockUser":{"name":"昵称:","inviteBind":"邀请绑定","bindUnlockInfo":"关联开锁信息","editUsername":"编辑用户昵称","opendoorRecord":"历史开门记录","unbindDialogTip":"<img src='../../resources/image/green_unbind_icon.png'>解绑后,该用户不能对门锁下的信息进行查看","deleteUserDialogTip":"删除后,用户对应的开锁id取消关联,同时失去信息查看权限。","unbindSuccess":"<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功","unbindFailue":"<img src='../../resources/image/green_unbindFail_icon.png'>解绑失败","guideStep1Tip1":"邀请绑定成功","guideStep1Tip2":"(受邀用户可查看开门记录,报警记录等<br>相关门锁信息)","guideStep3Tip":"关联后可了解<br>该用户的开门情况","deleteSuccess":"删除成功","deleteFailure":"删除失败","defaultName":"管理员"},"inviteBind":{"qrcodeExpireTip":"二维码已过期,请重新生成","title":"绑定方法:","cont1":"受邀用户登录“U智锁”APP","cont2":"选择“扫描绑定设备”","cont3":"扫描上方二维码完成绑定","tip":"注: 二维码有效时间为10分钟,过期请重新生成"},"unlockInfo":{"bindUnlockInfo":"已关联的开锁信息","noInfoTip":"尚未关联开锁信息","passwordOpenDoor":"密码","fingerprintOpenDoor":"指纹","ICcardOpenDoor":"IC卡","remoteOpenDoor":"遥控器","keyOpenDoor":"钥匙","appRemoteOpenDoor":"app远程","hijackingAlarm":"劫持指纹","setHijack":"设为劫持","setHijackTip":"确认设为劫持指纹?","cancelHijack":"取消劫持","cancelHijackTip":"确认取消劫持指纹?","cancelAssociated":"取消关联","cancelAssociatedTip":"取消关联后,开门历史记录中将不再显示关联的用户信息。","cancelAssociatedSuccess":"取消关联成功","cancelAssociatedFailue":"取消关联失败","setHijackSuccess":"设为劫持指纹成功","setHijackFailue":"设为劫持指纹失败","cancelHijackSuccess":"取消劫持指纹成功","cancelHijackFailue":"取消劫持指纹失败"},"addUnlockInfo":{"opendoorMode":"选择要关联的开锁方式","fingerprint":"指纹","password":"密码","icCard":"IC卡","key":"钥匙","remote":"遥控器","hijackFingerprint":"劫持指纹","opendoorRecord":"选择要关联的开锁ID","tip":"仅显示未绑定开门记录","addInfoSuccess":"添加绑定开锁信息成功","addInfoFailue":"添加绑定开锁信息失败","noRecordTip":"暂无记录","setHijackSwitch":"设为劫持指纹","guideStep1Tip":"选择需要添加关联的开门方式","guideStep3Tip":"根据开门记录中的开门时间,选择关联的<br>开门ID<span>(一个ID只能被一个用户绑定)</span>","guideStep5Tip":"使用劫持指纹开门时,会以报警形式<br>通知到该门锁名下的其他绑定用户"},"myInfo":{"editNickname":"修改昵称","editPassword":"修改密码","logoutDialogTip":"确定要退出系统吗?"},"editNickname":{"nickNameInputTip":"请输入昵称"},"editPassword":{"newPasswordInputTip":"请输入新密码","oldPasswordInputTip":"请输入旧密码","oldPasswordInputTipAgain":"请再次输入旧密码"},"request":{"error":"请求发送失败","initError":"初始化失败,请关闭APP重试"},"deviceList":{"model":"型号:","noDeviceTip":"暂无产品型号"},"notice":{"tip":"您还未开启通知,将无法及时接受安全推送!","button":"去开启"},"help":{"title":"如何解决安卓手机收不到消息提醒?","contTip":"因部分安卓系统会在锁屏时自动清理后台运行的应用导致无法及时通知,需根据引导进行以下设置后即可随时随地收到消息推送。","contTitle":"如何设置:","contSubtitle1":"1.设置自启动","contText1-1":"安卓5.0以上系统需要设置应用自启动,未加入自启动的应用在杀进程或重新开机后无法推送通知。","contText1-2":"在软件授权管理或启动管理中(通常在手机管家或设置菜单中)找到本app并开启自启动。","step":"操作步骤:","contSubtitle2":"2.设置后台保活","contText2-1":"安卓7.0以上系统需要设置受保护的后台应用,未设置的应用在设备进入睡眠后会自动杀掉,只有手动开启应用才能恢复消息推送。","contText2-2":"在设置中找到电量与性能,点击受保护的后台应用,找到本app并开启保护。","contText3-1":"安卓手机须将应用加入白名单中,否则清理后台杀掉应用进程后,只有手动开启应用才能恢复消息推送。","contText3-2":"启动本app后打开多任务页面(清理后台应用的页面),将本app加入白名单。"},"androidNotify":{"toSettingTitle":"开启系统通知","toSettingsub":"去开启","checkSetting":"检查Android系统设置","IKonw":"我已阅读","checkSettingsubTitle":"部分安卓系统的手机在开启通知后仍无法收到推送信息,您可以依次检查以下几项设置","step1Title":"1. 应用是否设置为自启动状态","step1content":"操作步骤:在软件授权管理或启动管理中(通常在手机管家或设置菜单中)找到本APP并开启自启动。","step2Title":"2. 应用是否已开启后台保护","step2content":"操作步骤:在设置中找到电量与性能,点击受保护的后台应用,找到本APP并开启保护。","step3Title":"3. 是否已将应用加入系统白名单","step3content":"操作步骤:启动本APP后打开多任务页面(清理后台应用的页面),将本APP加入白名单。","endSetting":"保存设置并开启应用","toIndex":"进入首页"},"newFeature":{"newVersion":"您有新的版本更新","tip":"版本更新","update":"更新","miss":"暂不更新"},"textTip":{"textType":"请输入中文、字母和数字"}} {"loading":"loading...","scroll":{"clickToLoadMore":"上拉加载更多","loading":"loading"},"btn":{"confirm":"确定","guideLogin":"账号/密码登录","login":"登录","getCode":"获取验证码","register":"注册","logout":"退出系统","save":"保存","qrcode":"生成二维码","wifiAdd":"开始配置Wi-Fi","connect":"连接","bindUser":"绑定姓名","bind":"我要绑定","startNow":"立即体验","ignore":"暂不开启","openNotify":"开启推送通知","reBound":"重新绑定","saveQRcode":"保存二维码到相册","unbind":"解绑","deleteUser":"删除该用户","qrcodeReset":"重新生成二维码","add":"添加","next":"下一步","iSee":"我知道了","unbindDoorlock":"解绑门锁","finish":"完成","cancel":"取消"},"dialog":{"confirm":"确认","cancel":"取消","unbind":"解绑","delete":"删除"},"title":{"login":"登录","register":"注册","forgetPassword":"忘记密码","device":"U智锁","opendoorRecord":"开门记录","alarmInfo":"报警记录","remoteOpendoor":"远程开门","hijackRecord":"劫持记录","doorlockManage":"门锁管理","editName":"修改名称","qrcode":"生成绑定二维码","addDevice":"添加设备","scanCodeAdd":"扫描绑定设备","wifiAddHelp":"配置Wi-Fi","wifiAdd":"连接Wi-Fi","bindUserHelp":"ID-姓名绑定","bindUser":"绑定用户","userList":"用户列表","doorlockUser":"门锁用户","addUser":"添加用户","inviteBind":"邀请绑定","unlockInfo":"关联开锁信息","myInfo":"个人信息","editNickname":"修改昵称","editPassword":"修改密码","addUnlockInfo":"关联开锁ID","deviceList":"产品型号"},"guide":{"footer":"指纹改变生活"},"login":{"telInputTip":"请输入手机号","passwordInputTip":"请输入密码","register":"快速注册","forgetPassword":"忘记密码","failure":"登陆失败","defaultUser":"用户{0}","error":{"telNull":"请输入手机号","passWordNull":"请输入密码"}},"register":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"forgetPassword":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"device":{"opendoorRecord":"开门记录","securityAlarm":"安全报警","doorlockUser":"门锁用户","remoteOpendoor":"远程开门","hijackAlarm":"劫持报警","doorlockManage":"门锁管理","followTitle":"关注服务号","followCont1":"关注 “i智信” 微信服务号可随时随地掌握设备动态<br>再也不担心错过重要通知,赶紧按下方提示试试吧","followCont2":"1.保存二维码-2.用微信从<span>相册选取扫码</span>-3.关注","laterFollow":"稍后关注","newMsgDoorlock":"门锁最新消息","doorLockRinging":"门铃响了","defaultNewMsg":"您尚未绑定门锁","noNewMsg":"门锁休息中","bindDoorlock":"绑定门锁","use":"使用"},"opendoorRecord":{"noRecordTip":"暂无记录","passwordOpenDoor":"密码开门","fingerprintOpenDoor":"指纹开门","ICcardOpenDoor":"IC卡开门","remoteOpenDoor":"遥控器开门","keyOpenDoor":"钥匙开门","hijackingAlarm":"劫持报警","appRemoteOpenDoor":"app远程开门"},"alarmInfo":{"noInfoTip":"暂无信息","tamperAlarm":"防撬报警","trialAlarm":"试错报警","powerAlarm":"欠电报警"},"remoteOpendoor":{"loading":"远程开门中","passwordInputTip":"请输入远程开门密码","openDoorSuccess":"远程开门成功","openDoorFailure":"远程开门失败","remoteTimeout":"远程开门超时","remoteOpendoorAgain":"请尝试重试","offlineTip":"设备已离线,收到远程开门请求后,请尽快处理","textlengthTip":"密码长度为6~12位数字","error":{"noPasswordTip":"远程密码不能为空"}},"hijackRecord":{"noRecordTip":"暂无记录","hijackingAlarm":"劫持指纹报警"},"doorlockManage":{"name":"名称","logoutDialogTip":"确定要退出系统吗?","defaultNickname":"门锁","isClearRecord":"清除所有信息","doorbellMsgPush":"门铃消息推送","alarmMsgPush":"报警消息推送","opendoorMsgPush":"开门消息推送","unbindDialogTip":"确认解除绑定","unbindSuccess":"<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功","unbindFailue":"<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑失败"},"editName":{"nameInputTip":"请输入设备名称","nickNameInputTip":"请输入用户名","editNameSuccess":"修改名称成功","editNameFailue":"修改名称失败","error":{"nameCanNotBeBlank":"设备名称不能为空","nicknameCanNotBeBlank":"用户名不能为空"}},"qrcode":{"helpTitle":"注意事项:","helpCont1":"1.仅超级管理员(通过Wi-Fi配网绑定的用户为超级管理员)可以生成绑定二维码","helpCont2":"2.二维码有效时间为10分钟且只能使用一次","helpCont3":"3.用户只需要扫描该二维码即可绑定指纹锁","helpCont4":"4.绑定失败则需要重新生成二维码进行绑定"},"addDevice":{"scanCodeAdd":"扫描绑定设备","wifiAdd":"配置Wi-Fi","loading":"loading","bindSuccess":"绑定成功","bindFailure":"绑定失败","reBindDevice":"请重新绑定"},"wifiAddHelp":{"helpTitle":"配置WIFI说明:","helpCont1":"确认设备端进入配网模式(详情操作请见产品说明书)","helpCont2":"点击页面下方“开始配置Wi-Fi”按钮,进入WiFi配网页面","helpCont3":"输入Wi-Fi密码,点击“连接”,等待锁端响应,至配网成功。","helpCont4":"(提示:如果指纹锁已经绑定过用户,重新绑定成功后会清除之前所有绑定信息)"},"wifiAdd":{"unbindWifiTip":"当前无Wi-Fi","wifiBinding":"正在连接网络...","wifiBindSuccess":"Wi-Fi连接成功,正在激活设备...","deviceActivating":"Wi-Fi连接成功,正在激活设备...","deviceActivateSuccess":"激活成功","deviceActivateFailure":"激活失败","bindTimeout":"连接超时","passwordInputTip":"请输入Wi-Fi密码","remindTitle":"配置Wi-Fi提醒:","remindCont1":"1. 请确保Wi-Fi信号良好","remindCont2":"2. 本产品暂不支持5GHz无线网络","noticeTip":"检测到您还未开启通知,将无法及时<br>接收安全推送","countDownText":"{0}s","error":{}},"bindUserHelp":{"helpTitle":"配对姓名说明:","helpCont1":"1.在指纹锁上录入指纹、密码、卡并获得相应ID","helpCont2":"2.通过姓名绑定将该ID绑定对应用户姓名","helpCont3":"3.绑定成功后,开门记录中将会显示已绑定的用户姓名","helpCont4":"4.用户姓名信息只保存在APP端,不影响锁端设置","boundUser":"查看已绑定ID姓名"},"bindUser":{"editHeadTip":"点击编辑用户头像","nameTitle":"姓名","fingerprintIDTitle":"指纹ID","passwordIDTitle":"密码ID","ICCardIDTitle":"IC卡ID","requiredInputTip":"(必填)","optionalInputTip":"(选填)","error":{}},"commstatusLoading":{"connectSuccess":"Wi-Fi连接成功,正在绑定...","bindSuccess":"绑定成功","bindFailed":"绑定失败"},"userList":{"name":"昵称:","noUserTip":"暂无用户","defaultName":"管理员","binded":"已绑定","unbind":"未绑定"},"addUser":{"nameInputTip":"请为门锁用户创建显示昵称","addUserSuccess":"添加用户成功","addUserFailure":"添加用户失败","error":{"nameCanNotEmpty":"用户名不能为空"}},"doorlockUser":{"name":"昵称:","inviteBind":"邀请绑定","bindUnlockInfo":"关联开锁信息","editUsername":"编辑用户昵称","opendoorRecord":"历史开门记录","unbindDialogTip":"<img src='../../resources/image/green_unbind_icon.png'>解绑后,该用户不能对门锁下的信息进行查看","deleteUserDialogTip":"删除后,用户对应的开锁id取消关联,同时失去信息查看权限。","unbindSuccess":"<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑成功","unbindFailue":"<img src='../../resources/image/green_unbindSuccess_icon.png'>解绑失败","guideStep1Tip1":"邀请绑定成功","guideStep1Tip2":"(受邀用户可查看开门记录,报警记录等<br>相关门锁信息)","guideStep3Tip":"关联后可了解<br>该用户的开门情况","deleteSuccess":"删除成功","deleteFailure":"删除失败","defaultName":"管理员"},"inviteBind":{"qrcodeExpireTip":"二维码已过期,请重新生成","title":"绑定方法:","cont1":"受邀用户登录“U智锁”APP","cont2":"选择“扫描绑定设备”","cont3":"扫描上方二维码完成绑定","tip":"注: 二维码有效时间为10分钟,过期请重新生成"},"unlockInfo":{"bindUnlockInfo":"已关联的开锁信息","noInfoTip":"尚未关联开锁信息","bindSoon":"快速关联","passwordOpenDoor":"密码","fingerprintOpenDoor":"指纹","ICcardOpenDoor":"IC卡","remoteOpenDoor":"遥控器","keyOpenDoor":"钥匙","appRemoteOpenDoor":"app远程","hijackingAlarm":"劫持指纹","setHijack":"设为劫持","setHijackTip":"确认设为劫持指纹?","cancelHijack":"取消劫持","cancelHijackTip":"确认取消劫持指纹?","cancelAssociated":"取消关联","cancelAssociatedTip":"取消关联后,开门历史记录中将不再显示关联的用户信息。","cancelAssociatedSuccess":"取消关联成功","cancelAssociatedFailue":"取消关联失败","setHijackSuccess":"设为劫持指纹成功","setHijackFailue":"设为劫持指纹失败","cancelHijackSuccess":"取消劫持指纹成功","cancelHijackFailue":"取消劫持指纹失败"},"addUnlockInfo":{"opendoorMode":"选择要关联的开锁方式","fingerprint":"指纹","password":"密码","icCard":"IC卡","key":"钥匙","remote":"遥控器","hijackFingerprint":"劫持指纹","opendoorRecord":"选择要关联的开锁ID","tip":"仅显示未绑定开门记录","addInfoSuccess":"添加绑定开锁信息成功","addInfoFailue":"添加绑定开锁信息失败","noRecordTip":"暂无记录","setHijackSwitch":"设为劫持指纹","guideStep1Tip":"选择需要添加关联的开门方式","guideStep3Tip":"根据开门记录中的开门时间,选择关联的<br>开门ID<span>(一个ID只能被一个用户绑定)</span>","guideStep5Tip":"使用劫持指纹开门时,会以报警形式<br>通知到该门锁名下的其他绑定用户"},"myInfo":{"editNickname":"修改昵称","editPassword":"修改密码","logoutDialogTip":"确定要退出系统吗?"},"editNickname":{"nickNameInputTip":"请输入昵称","nickNameTypeTip":"请输入中文、字母和数字"},"editPassword":{"newPasswordInputTip":"请输入新密码","oldPasswordInputTip":"请输入旧密码","oldPasswordInputTipAgain":"请再次输入旧密码"},"request":{"error":"请求发送失败","initError":"初始化失败,请关闭APP重试"},"deviceList":{"model":"型号:","noDeviceTip":"暂无产品型号"},"notice":{"tip":"您还未开启通知,将无法及时接受安全推送!","button":"去开启"},"help":{"title":"如何解决安卓手机收不到消息提醒?","contTip":"因部分安卓系统会在锁屏时自动清理后台运行的应用导致无法及时通知,需根据引导进行以下设置后即可随时随地收到消息推送。","contTitle":"如何设置:","contSubtitle1":"1.设置自启动","contText1-1":"安卓5.0以上系统需要设置应用自启动,未加入自启动的应用在杀进程或重新开机后无法推送通知。","contText1-2":"在软件授权管理或启动管理中(通常在手机管家或设置菜单中)找到本app并开启自启动。","step":"操作步骤:","contSubtitle2":"2.设置后台保活","contText2-1":"安卓7.0以上系统需要设置受保护的后台应用,未设置的应用在设备进入睡眠后会自动杀掉,只有手动开启应用才能恢复消息推送。","contText2-2":"在设置中找到电量与性能,点击受保护的后台应用,找到本app并开启保护。","contText3-1":"安卓手机须将应用加入白名单中,否则清理后台杀掉应用进程后,只有手动开启应用才能恢复消息推送。","contText3-2":"启动本app后打开多任务页面(清理后台应用的页面),将本app加入白名单。"},"androidNotify":{"toSettingTitle":"开启系统通知","toSettingsub":"去开启","checkSetting":"检查Android系统设置","IKonw":"我已阅读","checkSettingsubTitle":"部分安卓系统的手机在开启通知后仍无法收到推送信息,您可以依次检查以下几项设置","step1Title":"1. 应用是否设置为自启动状态","step1content":"操作步骤:在软件授权管理或启动管理中(通常在手机管家或设置菜单中)找到本APP并开启自启动。","step2Title":"2. 应用是否已开启后台保护","step2content":"操作步骤:在设置中找到电量与性能,点击受保护的后台应用,找到本APP并开启保护。","step3Title":"3. 是否已将应用加入系统白名单","step3content":"操作步骤:启动本APP后打开多任务页面(清理后台应用的页面),将本APP加入白名单。","endSetting":"保存设置并开启应用","toIndex":"进入首页"},"newFeature":{"newVersion":"您有新的版本更新","tip":"版本更新","update":"更新","miss":"暂不更新"}}
\ No newline at end of file \ No newline at end of file
...@@ -615,64 +615,139 @@ p { ...@@ -615,64 +615,139 @@ p {
text-align: center; text-align: center;
} }
.custom-swipe-list { .tab {
display: -webkit-box;
display: -webkit-flex;
display: flex;
position: relative;
border-bottom: 1px solid #575a6d;
}
.tab li {
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
text-align: center;
height: 1.2rem;
line-height: 1.2rem;
position: relative;
color: #575a6d;
font-size: 0.427rem;
}
.tab li:after {
content: '';
position: absolute; position: absolute;
top: 1.173rem;
bottom: 0; bottom: 0;
left: 0; left: 0;
height: auto; right: 0;
height: 0.053rem ;
background-color: transparent;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle { .tab .active {
background-color: #242635; color: #fff;
padding: 0 1.12rem;
height: 1.467rem;
font-size: 0.427rem;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle .u-swipe-list-title { .tab .active:after {
float: left; background-color: #FFF;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle .u-swipe-list-subtitle { .infoList-list {
float: right; width: 100%;
overflow: auto;
position: absolute;
top: 2.4rem;
bottom: 0;
left: 0;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button { .infoList-list .infoList-list-scroll .infoList-list-row {
right: 0.853rem; position: relative;
height: 1.467rem;
padding: 0 1.12rem;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button div { .infoList-list .infoList-list-scroll .infoList-list-row .infoList-list-handle .u-swipe-list-title {
width: 2.267rem; overflow: hidden;
color: #00ffff; white-space: nowrap;
text-overflow: ellipsis;
font-size: 0.427rem; font-size: 0.427rem;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button div:nth-last-of-type(1), .infoList-list .infoList-list-scroll .infoList-list-row .infoList-list-handle .u-swipe-list-subtitle {
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button div:nth-last-of-type(2) { overflow: hidden;
background-color: transparent; white-space: nowrap;
text-overflow: ellipsis;
}
.infoList-list .infoList-list-scroll .infoList-list-row .infoList-list-button {
position: absolute;
top: 0;
bottom: 0;
right: 0.667rem;
z-index: 1;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.infoList-list .infoList-list-scroll .infoList-list-row .infoList-list-button .infoList-list-buttonCont {
float: left;
padding: 0.267rem;
margin: 0 0.133rem;
}
.infoList-list .infoList-list-scroll .infoList-list-row .infoList-list-button .infoList-list-buttonCont img {
width: 0.613rem;
height: 0.613rem;
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row:after { .infoList-list .infoList-list-scroll .infoList-list-row:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: #bbb;
background: -webkit-linear-gradient(left, #242635, #fff, #242635); background: -webkit-linear-gradient(left, #242635, #fff, #242635);
background: linear-gradient(to right, #242635, #fff, #242635); background: linear-gradient(to right, #242635, #fff, #242635);
} }
.custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row.active .u-swipe-list-handle { .infoList-list .infoList-list-load {
left: -5.387rem; text-align: center;
} }
.custom-swipe-list .u-swipe-list-load { .infoList-list .infoList-list-tip {
color: #00ffff; position: absolute;
top: 50%;
left: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 100%;
text-align: center;
background-image: url("../../resources/image/unlockNoCont.png");
background-position: top center;
background-repeat: no-repeat;
-webkit-background-size: 1.867rem 1.867rem;
background-size: 1.867rem 1.867rem;
color: #91929a;
font-size: 0.427rem; font-size: 0.427rem;
-webkit-transform: scale(0.7); padding-top: 2.347rem;
transform: scale(0.7);
height: 0.933rem;
line-height: 0.933rem;
} }
.custom-swipe-list .u-swipeList-tip { .infoList-list .noHistory-list-tip {
background-image: url("../../resources/image/unlockNoCont.png"); background-image: url("../../resources/image/noCont.png");
background-position: top center; background-position: top center;
background-repeat: no-repeat; background-repeat: no-repeat;
-webkit-background-size: 1.867rem 1.867rem; -webkit-background-size: 1.867rem 1.867rem;
......
...@@ -19,17 +19,41 @@ ...@@ -19,17 +19,41 @@
<script type="text/javascript" src="../../lib/js/UIOT.js"></script> <script type="text/javascript" src="../../lib/js/UIOT.js"></script>
</head> </head>
<body ontouchstart=""> <body ontouchstart="">
<div id="app" v-cloak> <div id="app" v-cloak>
<div class="header"> <div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch> <v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.unlockInfo') }}</p> <p>{{ $t('title.unlockInfo') }}</p>
<v-touch tag="span" class="header-right" v-on:tap="onAddTap" v-show="!role">{{ $t('btn.add') }}</v-touch> <!--<v-touch tag="span" class="header-right" v-on:tap="onAddTap" v-show="!role">{{ $t('btn.add') }}</v-touch>-->
</div> </div>
<div class="content"> <div class="content">
<p class="title">{{ $t('unlockInfo.bindUnlockInfo') }}</p> <!--<p class="title">{{ $t('unlockInfo.bindUnlockInfo') }}</p>-->
<u-swipe-list ref="uswipelist" :init-param="componentsConfig.unlockInfoList.initParam" <ul class="tab">
v-on:u-swipe-list-button-tap="onUnlockInfoListButtonTap(arguments[0],arguments[1])"></u-swipe-list> <v-touch tag="li" v-for="(item, key, index) in lockItems" v-text="lockItems[key].text"
:class="{active: (selectItem == key)}" v-on:tap="onItemChange(key)">
</v-touch>
</ul>
<!--<u-swipe-list ref="uswipelist" :init-param="componentsConfig.unlockInfoList.initParam"
v-on:u-swipe-list-button-tap="onUnlockInfoListButtonTap(arguments[0],arguments[1])"></u-swipe-list>-->
<div class="infoList-list" ref="infoList" >
<ul class="infoList-list-scroll" v-show="infoList.length">
<li class="infoList-list-row" v-for="(item, index) in infoList">
<div class="infoList-list-handle">
<p class="infoList-list-title">{{ item.title }}</p>
<p class="infoList-list-subtitle">{{ item.subtitle }}</p>
</div>
<div class="infoList-list-button">
<v-touch tag="div" class="infoList-list-buttonCont" v-for="(button, buttonIndex) in item.buttons" v-show="button.imgSrc" v-on:tap="onImgButtonTap(index, buttonIndex)">
<img :src="button.imgSrc">
</v-touch>
</div>
</li>
<!--<v-touch tag="li" class="infoList-list-load" v-on:tap="onTapLoad" v-show="loadShowFlag">
<span class="infoList-list-load-animation" v-show="loadFlag"></span>
{{ loadText }}
</v-touch>-->
</ul>
<p class="infoList-list-tip" v-bind:class="{'noHistory-list-tip':selectItem == 0}" v-show="tipShowFlag && (infoList.length == 0)">{{ selectItem == 0 ? noHistoryTip : unlockInfoListTip }}</p>
</div>
</div> </div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog> <u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading> <u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment