Commit 09a9dcd5 by wangying

1.1.2 / 2017-11-03

==================
 * 1.修改门锁管理、关联开锁信息、绑定开锁信息、邀请绑定页面样式
 * 2.添加产品型号页面
parent b61259fe
1.1.1 / 2017-10-18 1.1.2 / 2017-11-03
==================
* 1.修改门锁管理、关联开锁信息、绑定开锁信息、邀请绑定页面样式
* 2.添加产品型号页面
1.1.1 / 2017-10-18
================== ==================
* 1.修改列表为空样式 * 1.修改列表为空样式
......
...@@ -54,9 +54,13 @@ ...@@ -54,9 +54,13 @@
"userList": "用户列表", "userList": "用户列表",
"doorlockUser": "门锁用户", "doorlockUser": "门锁用户",
"addUser": "添加用户", "addUser": "添加用户",
"editName": "修改名称",
"inviteBind": "邀请绑定", "inviteBind": "邀请绑定",
"unlockInfo": "绑定开锁信息" "unlockInfo": "关联开锁信息",
"myInfo": "个人信息",
"editNickname": "修改昵称",
"editPassword": "修改密码",
"addUnlockInfo": "绑定开锁信息",
"deviceList": "产品型号"
}, },
"guide":{ "guide":{
"footer": "指纹改变生活" "footer": "指纹改变生活"
...@@ -66,6 +70,7 @@ ...@@ -66,6 +70,7 @@
"passwordInputTip": "请输入密码", "passwordInputTip": "请输入密码",
"register": "快速注册", "register": "快速注册",
"forgetPassword": "忘记密码", "forgetPassword": "忘记密码",
"failure": "登陆失败",
"error": { "error": {
"telNull": "请输入手机号", "telNull": "请输入手机号",
"passWordNull": "请输入密码" "passWordNull": "请输入密码"
...@@ -102,32 +107,62 @@ ...@@ -102,32 +107,62 @@
"followCont1": "关注 “i智信” 微信服务号可随时随地掌握设备动态<br>再也不担心错过重要通知,赶紧按下方提示试试吧", "followCont1": "关注 “i智信” 微信服务号可随时随地掌握设备动态<br>再也不担心错过重要通知,赶紧按下方提示试试吧",
"followCont2": "1.保存二维码-2.用微信从<span>相册选取扫码</span>-3.关注", "followCont2": "1.保存二维码-2.用微信从<span>相册选取扫码</span>-3.关注",
"laterFollow": "稍后关注", "laterFollow": "稍后关注",
"newMsgDoorlock": "门锁最新消息",
"doorLockRinging": "门铃响了",
"defaultNewMsg": "您尚未绑定门锁",
"noNewMsg": "门锁休息中",
"bindDoorlock": "绑定门锁" "bindDoorlock": "绑定门锁"
}, },
"opendoorRecord":{ "opendoorRecord":{
"noRecordTip": "暂无记录" "noRecordTip": "暂无记录",
"passwordOpenDoor": "密码开门",
"fingerprintOpenDoor": "指纹开门",
"ICcardOpenDoor": "IC卡开门",
"remoteOpenDoor": "遥控器开门",
"keyOpenDoor": "钥匙开门",
"hijackingAlarm": "劫持报警",
"appRemoteOpenDoor": "app远程开门"
}, },
"alarmInfo":{ "alarmInfo":{
"noInfoTip": "暂无信息" "noInfoTip": "暂无信息",
"tamperAlarm": "防撬报警",
"trialAlarm": "试错报警",
"powerAlarm": "欠电报警",
"fackLockAlram": "假锁报警"
}, },
"remoteOpendoor":{ "remoteOpendoor":{
"loading": "远程开门中",
"passwordInputTip": "请输入远程开门密码", "passwordInputTip": "请输入远程开门密码",
"openDoorSuccess": "远程开门成功",
"openDoorFailure": "远程开门失败",
"remoteOpendoorAgain": "请尝试重试",
"error": { "error": {
"noPasswordTip": "远程密码不能为空"
} }
}, },
"hijackRecord":{ "hijackRecord":{
"noRecordTip": "暂无记录" "noRecordTip": "暂无记录",
"hijackingAlarm": "劫持指纹报警"
}, },
"doorlockManage":{ "doorlockManage":{
"name": "名称", "name": "名称",
"deleteDialogTip": "<span>{0}</span>将被删除",
"logoutDialogTip": "确定要退出系统吗?",
"deleteSuccess": "删除成功",
"deleteFailue": "删除失败",
"defaultNickname": "门锁",
"unbindDialogTip": "<span></span>解锁门锁后,您将失去对该门锁<br>所有查看、管理等功能操作", "unbindDialogTip": "<span></span>解锁门锁后,您将失去对该门锁<br>所有查看、管理等功能操作",
"unbindSuccess": "解绑成功" "unbindSuccess": "解绑成功",
"doorbellMsgPush": "门铃消息推送",
"alarmMsgPush": "报警消息推送",
"opendoorMsgPush": "开门消息推送"
}, },
"editName":{ "editName":{
"nameInputTip": "请输入门锁名称", "nameInputTip": "请输入门锁名称",
"editNameSuccess": "名字修改成功",
"editNameFailue": "名字修改失败",
"error": { "error": {
"nameCanNotBeBlank": "昵称不能为空"
} }
}, },
"qrcode":{ "qrcode":{
...@@ -139,7 +174,11 @@ ...@@ -139,7 +174,11 @@
}, },
"addDevice": { "addDevice": {
"scanCodeAdd": "扫描绑定设备", "scanCodeAdd": "扫描绑定设备",
"wifiAdd": "配置Wi-Fi" "wifiAdd": "配置Wi-Fi",
"loading": "loading",
"bindSuccess": "绑定成功",
"bindFailure": "绑定失败",
"reBindDevice": "请重新绑定"
}, },
"wifiAddHelp": { "wifiAddHelp": {
"helpTitle": "配置Wi-Fi说明:", "helpTitle": "配置Wi-Fi说明:",
...@@ -193,46 +232,93 @@ ...@@ -193,46 +232,93 @@
}, },
"addUser":{ "addUser":{
"nameInputTip": "请输入您想添加的用户名", "nameInputTip": "请输入您想添加的用户名",
"addUserSuccess": "添加用户成功",
"addUserFailure": "添加用户失败",
"error": { "error": {
"nameCanNotEmpty": "用户名不能为空"
} }
}, },
"doorlockUser":{ "doorlockUser":{
"name": "昵称:", "name": "昵称:",
"inviteBind": "邀请绑定", "inviteBind": "邀请绑定",
"bindUnlockInfo": "绑定开锁信息", "bindUnlockInfo": "关联开锁信息",
"opendoorRecord": "历史开门记录", "opendoorRecord": "历史开门记录",
"unbindDialogTip": "<span></span>解绑后,您将失去对门锁所有查看功能该用户仍在用户列表中", "unbindDialogTip": "<span></span>解绑后,您将失去对门锁所有查看功能该用户仍在用户列表中",
"deleteUserDialogTip": "删除后,二者不再为绑定关系,用户无法查看该门锁下的任何信息,该用户名下绑定的所有ID号仍可以显示在开门记录中", "deleteUserDialogTip": "删除后,二者不再为绑定关系,用户无法查看该门锁下的任何信息,该用户名下绑定的所有ID号仍可以显示在开门记录中",
"unbindSuccess": "解绑成功", "unbindSuccess": "解绑成功",
"unbindFailue": "解绑失败",
"guideStep1Tip1": "邀请绑定成功", "guideStep1Tip1": "邀请绑定成功",
"guideStep1Tip2": "(可查看开门记录,报警记录等<br>相关门锁信息)", "guideStep1Tip2": "(可查看开门记录,报警记录等<br>相关门锁信息)",
"guideStep3Tip": "绑定后看可了解<br>该用户的开门情况" "guideStep3Tip": "绑定后看可了解<br>该用户的开门情况",
"deleteSuccess": "删除成功",
"deleteFailure": "删除失败"
}, },
"editName":{ "editName":{
"nameInputTip": "请输入用户名", "nameInputTip": "请输入设备名称",
"nickNameInputTip": "请输入用户名",
"editNameSuccess": "修改名称成功",
"editNameFailue": "修改名称失败",
"error": { "error": {
"nameCanNotBeBlank": "设备名称不能为空",
"nicknameCanNotBeBlank": "用户名不能为空"
} }
}, },
"inviteBind":{ "inviteBind":{
"qrcodeExpireTip": "二维码已过期,请重新生成",
"title": "注意事项:", "title": "注意事项:",
"cont1": "1.直接通过微信扫一扫添加门锁", "cont1": "1.直接通过微信扫一扫添加门锁",
"cont2": "2.将此二维码保存为图片,发送给好友,好友通过长按识别二维码" "cont2": "2.将此二维码保存为图片,发送给好友,好友通过长按识别二维码"
}, },
"unlockInfo":{ "unlockInfo":{
"bindUnlockInfo": "已绑定的开锁信息", "bindUnlockInfo": "已关联的开锁信息",
"noInfoTip": "目前无绑定任何信息,请添加" "noInfoTip": "目前无绑定任何信息,请添加",
"passwordOpenDoor": "密码",
"fingerprintOpenDoor": "指纹",
"ICcardOpenDoor": "IC卡",
"remoteOpenDoor": "遥控器",
"keyOpenDoor": "钥匙",
"appRemoteOpenDoor": "app远程",
"setHijack": "设为劫持",
"setHijackTip": "确认设为劫持指纹吗?",
"cancelHijack": "取消劫持",
"cancelHijackTip": "确认取消劫持指纹吗?",
"cancelAssociated": "取消关联",
"cancelAssociatedTip": "取消关联后,开门历史记录中将不再显示关联的用户信息"
}, },
"addUnlockInfo":{ "addUnlockInfo":{
"opendoorMode": "开门方式", "opendoorMode": "选择要关联的开锁方式",
"fingerprint": "指纹", "fingerprint": "指纹",
"password": "密码", "password": "密码",
"icCard": "IC卡", "icCard": "IC卡",
"key": "钥匙", "key": "钥匙",
"hijackFingerprint": "劫持指纹", "hijackFingerprint": "劫持指纹",
"opendoorRecord": "今日开门记录", "opendoorRecord": "选择要关联的开锁ID",
"tip": "仅显示未绑定开门记录", "tip": "仅显示未绑定开门记录",
"noRecordTip": "暂无记录" "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": "请求发送失败"
},
"deviceList":{
"model": "型号:"
} }
} }
\ No newline at end of file
/**
* v_deviceList.js
* Version: 0.1
* User: wy
* Date: 2017-11-03
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 产品型号页面
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 list、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']);
const app = new Vue({
data:{
//配置组件
componentsConfig: initComponentsConfig()
},
mounted(){
},
methods:{
//tap <
onBackTap(){
backTap();
},
onDeviceListRowTap(){
deviceListRowTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
let model = Vue.t('deviceList.model');
return {
deviceList:{
initParam: {
class: 'custom-device-list',
list: [
{leftImage: '../../resources/image/deviceImg.png', title:'智能门锁', subtitle: model + 'ABCDEFG',rightIcon: '&#xe6a7;'},
{leftImage: '../../resources/image/deviceImg.png', title:'智能门锁', subtitle: model + 'ABCDEFG',rightIcon: '&#xe6a7;'},
{leftImage: '../../resources/image/deviceImg.png', title:'智能门锁', subtitle: model + 'ABCDEFG',rightIcon: '&#xe6a7;'},
{leftImage: '../../resources/image/deviceImg.png', title:'智能门锁', subtitle: model + 'ABCDEFG',rightIcon: '&#xe6a7;'}
],
tip: ''
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
}
}
//tap <
function backTap(){
iot.navigator.back();
}
function deviceListRowTap(){
iot.navigator.openWindow({
url: './wifiAddHelp.html',
id: 'wifiAddHelp'
});
}
\ No newline at end of file
...@@ -69,7 +69,7 @@ function scanAddTap(){ ...@@ -69,7 +69,7 @@ function scanAddTap(){
//tap 配置Wi-Fi //tap 配置Wi-Fi
function wifiAddTap(){ function wifiAddTap(){
iot.navigator.openWindow({ iot.navigator.openWindow({
url: './wifiAddHelp.html', url: './deviceList.html',
id: 'wifiAddHelp' id: 'deviceList'
}); });
} }
\ No newline at end of file
...@@ -12,31 +12,17 @@ import {iot, uPublic, uComponents} from '../../public/public.js'; ...@@ -12,31 +12,17 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init); iot.ready(init);
function init() { function init() {
//通用 input、按钮、dialog、loading组件 //通用 input、按钮、dialog、loading组件
uPublic.componentsInit(['u-text','u-button','u-commstatus-loading','u-dialog','u-loading']); uPublic.componentsInit(['u-text','u-button','u-comm-loading','u-dialog','u-loading']);
const app = new Vue({ const app = new Vue({
data:{ data:{
textPassword: null, textPassword: null,
textErrorTip: null, textErrorTip: null,
textLoading: 'loading...',
status: 0,
//配置组件 //配置组件
componentsConfig: initComponentsConfig() componentsConfig: initComponentsConfig()
}, },
mounted(){ mounted(){
}, },
methods:{ methods:{
getTextLoading(){
return this.textLoading;
},
setTextLoading(text){
this.textLoading = text;
},
getStatus(){
return this.status;
},
setStatus(value){
this.status = value;
},
onPasswordChange(text){ onPasswordChange(text){
passwordChange(this,text); passwordChange(this,text);
}, },
...@@ -49,8 +35,8 @@ function init() { ...@@ -49,8 +35,8 @@ function init() {
connectButtonTap(this); connectButtonTap(this);
}, },
//tap loading button //tap loading button
onCommstatusLoadingButtonTap(){ onCommLoadingButtonTap(){
commstatusLoadingButtonTap(this); commLoadingButtonTap(this);
} }
} }
}).$mount('#app'); }).$mount('#app');
...@@ -84,10 +70,12 @@ function initComponentsConfig() { ...@@ -84,10 +70,12 @@ function initComponentsConfig() {
class: 'custom-loading' class: 'custom-loading'
} }
}, },
ucommstatusloading: { ucommloading: {
initParam: { initParam: {
class: 'custom-commstatus-loading', class: 'custom-comm-loading',
buttonText: Vue.t('btn.confirm') buttonText: Vue.t('btn.confirm'),
text: '密码确认中...',
status: 0,
} }
} }
} }
...@@ -105,29 +93,25 @@ function backTap(){ ...@@ -105,29 +93,25 @@ function backTap(){
//tap 连接 //tap 连接
function connectButtonTap(self){ function connectButtonTap(self){
uComponents.showCommstatusloading(self); uComponents.showCommLoading(self);
setTimeout(function(){ setTimeout(function(){
self.setTextLoading(Vue.t('commstatusLoading.connectSuccess')); uComponents.changeCommLoadingStatusAndText(self,0,'门锁响应中...');
setTimeout(function(){ setTimeout(function(){
//绑定成功 //绑定成功
self.setStatus(1); uComponents.changeCommLoadingStatusAndText(self,1,'远程开门成功');
self.setTextLoading(Vue.t('commstatusLoading.bindSuccess'));
//绑定失败 //绑定失败
//self.setStatus(2); //uComponents.changeCommLoadingStatusAndText(self,1,'远程开门失败');
//self.setTextLoading(Vue.t('commstatusLoading.bindFailed')); //uComponents.changeCommButtonText(self,'请尝试重试');
//uComponents.changeCommstatusButtonText(self,Vue.t('btn.reBound'));
},3000); },3000);
},3000); },3000);
} }
//tap loading button //tap loading button
function commstatusLoadingButtonTap(self) { function commLoadingButtonTap(self) {
//绑定成功 //绑定成功
uComponents.hideCommstatusloading(self); uComponents.hideCommLoading(self);
iot.navigator.openWindow({ iot.navigator.openWindow({
url: '../device/', url: '../device/',
id: 'device' id: 'device'
}); });
//绑定失败
//uComponents.hideCommstatusloading(self);
} }
\ No newline at end of file
...@@ -11,14 +11,20 @@ import {iot, uPublic, uComponents} from '../../public/public.js'; ...@@ -11,14 +11,20 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init); iot.ready(init);
function init() { function init() {
//通用 按钮、dialog、loading组件 //通用 开关、按钮、dialog、loading组件
uPublic.componentsInit(['u-button','u-dialog','u-loading']); uPublic.componentsInit(['u-switch','u-button','u-dialog','u-loading']);
//项目 list组件 //项目 list组件
uPublic.componentsExtend(['grid-list']); uPublic.componentsExtend(['grid-list']);
const app = new Vue({ const app = new Vue({
data:{ data:{
textDoorlock: '智能指纹锁1', textDoorlock: '智能指纹锁1',
stateShowFlag: false, stateShowFlag: false,
//门铃消息推送 switch
valueDoorbell: 1,
//报警消息推送 switch
valueAlarm: 0,
//开门消息推送 switch
valueOpendoor: 1,
//配置组件 //配置组件
componentsConfig: initComponentsConfig() componentsConfig: initComponentsConfig()
}, },
...@@ -52,6 +58,24 @@ function init() { ...@@ -52,6 +58,24 @@ function init() {
//配置组件参数 //配置组件参数
function initComponentsConfig() { function initComponentsConfig() {
return { return {
//门铃消息推送 switch 参数
doorbellSwitch: {
initParam: {
class: 'custom-switch'
}
},
//报警消息推送 switch 参数
alarmSwitch: {
initParam: {
class: 'custom-switch'
}
},
//开门消息推送 switch 参数
opendoorSwitch: {
initParam: {
class: 'custom-switch'
}
},
//解绑门锁 button 参数 //解绑门锁 button 参数
unbindDoorlockButton: { unbindDoorlockButton: {
initParam: { initParam: {
......
...@@ -11,18 +11,68 @@ import {iot, uPublic, uComponents} from '../../public/public.js'; ...@@ -11,18 +11,68 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init); iot.ready(init);
function init() { function init() {
//通用 select、按钮、dialog、loading组件 //通用 select、开关、按钮、dialog、loading组件
uPublic.componentsInit(['u-select','u-button','u-dialog','u-loading']); uPublic.componentsInit(['u-select','u-switch','u-button','u-dialog','u-loading']);
const app = new Vue({ const app = new Vue({
data:{ data:{
recordSelectIndex: 0, recordSelectIndex: 0,
recordSelectList: [], recordSelectList: [],
valueSetHijack: 1,
guideShowFlag: false,
guideStep1ShowFlag: false,
guideStep2ShowFlag: false,
guideStep3ShowFlag: false,
guideStep4ShowFlag: false,
guideStep5ShowFlag: false,
guideStep6ShowFlag: false,
//配置组件 //配置组件
componentsConfig: initComponentsConfig() componentsConfig: initComponentsConfig()
}, },
mounted(){ mounted(){
}, },
methods:{ methods:{
getGuideShowFlag(){
return this.guideShowFlag;
},
setGuideShowFlag(boolean){
this.guideShowFlag = boolean;
},
getGuideStep1ShowFlag(){
return this.guideStep1ShowFlag;
},
setGuideStep1ShowFlag(boolean){
this.guideStep1ShowFlag = boolean;
},
getGuideStep2ShowFlag(){
return this.guideStep2ShowFlag;
},
setGuideStep2ShowFlag(boolean){
this.guideStep2ShowFlag = boolean;
},
getGuideStep3ShowFlag(){
return this.guideStep3ShowFlag;
},
setGuideStep3ShowFlag(boolean){
this.guideStep3ShowFlag = boolean;
},
getGuideStep4ShowFlag(){
return this.guideStep4ShowFlag;
},
setGuideStep4ShowFlag(boolean){
this.guideStep4ShowFlag = boolean;
},
getGuideStep5ShowFlag(){
return this.guideStep5ShowFlag;
},
setGuideStep5ShowFlag(boolean){
this.guideStep5ShowFlag = boolean;
},
getGuideStep6ShowFlag(){
return this.guideStep6ShowFlag;
},
setGuideStep6ShowFlag(boolean){
this.guideStep6ShowFlag = boolean;
},
//tap < //tap <
onBackTap(){ onBackTap(){
backTap(); backTap();
...@@ -33,6 +83,17 @@ function init() { ...@@ -33,6 +83,17 @@ function init() {
//tap 添加 //tap 添加
onAddButtonTap(){ onAddButtonTap(){
addButtonTap(); addButtonTap();
},
//tap 下一步
onNextButtonTap(){
nextButtonTap(this);
},
onNextStepButtonTap(){
nextStepButtonTap(this);
},
//tap 我知道了
onISeeButtonTap(){
iSeeButtonTap(this);
} }
} }
}).$mount('#app'); }).$mount('#app');
...@@ -53,6 +114,13 @@ function initComponentsConfig() { ...@@ -53,6 +114,13 @@ function initComponentsConfig() {
tip: Vue.t('addUnlockInfo.noRecordTip') tip: Vue.t('addUnlockInfo.noRecordTip')
} }
}, },
//设为劫持指纹
setHijackSwitch: {
initParam: {
class: 'custom-setHijack-switch',
text: Vue.t('addUnlockInfo.setHijackSwitch')
}
},
//添加 button 参数 //添加 button 参数
addButton: { addButton: {
initParam: { initParam: {
...@@ -60,6 +128,20 @@ function initComponentsConfig() { ...@@ -60,6 +128,20 @@ function initComponentsConfig() {
text: Vue.t('btn.add') text: Vue.t('btn.add')
} }
}, },
//下一步 button 参数
nextButton: {
initParam: {
class: 'custom-dialog-button',
text: Vue.t('btn.next')
}
},
//我知道了 button 参数
iSeeButton: {
initParam: {
class: 'custom-dialog-button',
text: Vue.t('btn.iSee')
}
},
dialog: { dialog: {
initParam: { initParam: {
class: 'custom-dialog' class: 'custom-dialog'
...@@ -87,3 +169,23 @@ function recordSelectChange(self, value) { ...@@ -87,3 +169,23 @@ function recordSelectChange(self, value) {
function addButtonTap(){ function addButtonTap(){
iot.navigator.back(); iot.navigator.back();
} }
//tap 下一步
function nextButtonTap(self){
self.setGuideStep1ShowFlag(false);
self.setGuideStep2ShowFlag(false);
self.setGuideStep3ShowFlag(true);
self.setGuideStep4ShowFlag(true);
}
function nextStepButtonTap(self){
self.setGuideStep3ShowFlag(false);
self.setGuideStep4ShowFlag(false);
self.setGuideStep5ShowFlag(true);
self.setGuideStep6ShowFlag(true);
}
//tap 我知道了
function iSeeButtonTap(self){
self.setGuideShowFlag(false);
}
\ No newline at end of file
...@@ -11,8 +11,8 @@ import {iot, uPublic, uComponents} from '../../public/public.js'; ...@@ -11,8 +11,8 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init); iot.ready(init);
function init() { function init() {
//通用 list、dialog、loading组件 //通用 侧滑列表、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']); uPublic.componentsInit(['u-swipe-list','u-dialog','u-loading']);
const app = new Vue({ const app = new Vue({
data:{ data:{
//配置组件 //配置组件
...@@ -28,6 +28,10 @@ function init() { ...@@ -28,6 +28,10 @@ function init() {
//tap 添加 //tap 添加
onAddTap(){ onAddTap(){
addTap(); addTap();
},
//tap list row btn
onUnlockInfoListButtonTap(value, buttonValue){
unlockInfoListButtonTap(this, value, buttonValue);
} }
} }
}).$mount('#app'); }).$mount('#app');
...@@ -36,12 +40,13 @@ function init() { ...@@ -36,12 +40,13 @@ function init() {
//配置组件参数 //配置组件参数
function initComponentsConfig() { function initComponentsConfig() {
return { return {
unlockInfoList:{ unlockInfoList: {
initParam: { initParam: {
class: 'custom-unlockInfo-list', class: 'custom-swipe-list',
list: [ list: [
{title: '指纹1', rightText: 'ID:123456'}, {title: '指纹1', subtitle: 'ID:123456', buttons: [{'text': Vue.t('unlockInfo.setHijack')},{'text': Vue.t('unlockInfo.cancelAssociated')}]},
{title: '指纹2', rightText: 'ID:123456'} {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') tip: Vue.t('unlockInfo.noInfoTip')
} }
...@@ -71,3 +76,20 @@ function addTap(){ ...@@ -71,3 +76,20 @@ function addTap(){
id: 'addUnlockInfo' id: 'addUnlockInfo'
}); });
} }
function unlockInfoListButtonTap(self, value, buttonValue) {
//设为劫持&取消劫持
if(buttonValue == '0'){
uComponents.openConfirm(self, Vue.t('unlockInfo.setHijackTip'),
{text: Vue.t('dialog.cancel'), callback: function () {}},
{text: Vue.t('dialog.confirm'), callback: function () {}}
);
}
//取消关联
else if(buttonValue == '1'){
uComponents.openConfirm(self, Vue.t('unlockInfo.cancelAssociatedTip'),
{text: Vue.t('dialog.cancel'), callback: function () {}},
{text: Vue.t('dialog.confirm'), callback: function () {}}
);
}
}
\ No newline at end of file
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
.tap_row(@ADDDEVICE-ROW-ACTIVE-BG); .tap_row(@ADDDEVICE-ROW-ACTIVE-BG);
} }
//产品型号
.u-list();
//配置Wi-Fi //配置Wi-Fi
.wifiAddHelp{ .wifiAddHelp{
.help(); .help();
......
...@@ -152,9 +152,9 @@ ...@@ -152,9 +152,9 @@
} }
//门锁管理 //门锁管理
.doorlockManage{ .doorlockManage li{
font-size: 16px; font-size: 16px;
padding: 17px 72px 17px 42px; padding: 17px 42px;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
p{ p{
...@@ -164,11 +164,14 @@ ...@@ -164,11 +164,14 @@
margin-top: 3px; margin-top: 3px;
} }
// > icon // > icon
&.name{
padding-right: 72px;
&:before{ &:before{
content: '\e6a7'; content: '\e6a7';
.transformV_center(right,35px); .transformV_center(right,35px);
.iconfont(@USERINFOLINK-ICON-FONTSIZE); .iconfont(@USERINFOLINK-ICON-FONTSIZE);
} }
}
&:after{ &:after{
content: ''; content: '';
position: absolute; position: absolute;
...@@ -180,4 +183,6 @@ ...@@ -180,4 +183,6 @@
} }
} }
.u-switch();
.unbindState-dialog(); .unbindState-dialog();
\ No newline at end of file
...@@ -145,10 +145,11 @@ ...@@ -145,10 +145,11 @@
.inviteBind{ .inviteBind{
margin: 40px 38px 0; margin: 40px 38px 0;
li{ li{
p{ &:first-child{
width: 200px; width: 200px;
height: 200px; height: 200px;
margin: 0 auto; margin: 0 auto;
position: relative;
} }
&:not(:first-child){ &:not(:first-child){
color: @INVITEBIND-TEXT-COLOR; color: @INVITEBIND-TEXT-COLOR;
...@@ -164,6 +165,19 @@ ...@@ -164,6 +165,19 @@
margin-top: 33px; margin-top: 33px;
} }
} }
p{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
text-align: center;
background-color: rgba(255, 255, 255, 0.1);
span{
.transformV_center(left,0);
width: 100%;
}
}
} }
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
//开锁信息列表 //开锁信息列表
.title{ .title{
height: 48px; height: 48px;
line-height: 48px; line-height: 46px;
position: relative; position: relative;
font-size: @UNLOCKINFO-TITLE-FONTSIZE; font-size: @UNLOCKINFO-TITLE-FONTSIZE;
padding-left: 42px; padding-left: 42px;
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
} }
} }
/*
.u-list(); .u-list();
.custom-unlockInfo-list{ .custom-unlockInfo-list{
...@@ -45,13 +46,24 @@ ...@@ -45,13 +46,24 @@
font-size: @LIST-NOCONTTIP-FONTSIZE; font-size: @LIST-NOCONTTIP-FONTSIZE;
} }
} }
*/
//绑定开锁信 .u-swipe-list();
.custom-swipe-list{
.u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle{
background-color: #242635;
}
}
//绑定开锁信息
.opendoorMode{ .opendoorMode{
border: solid #50515d; border: solid #50515d;
border-width: 2px 0;/*no*/ border-width: 2px 0;/*no*/
overflow: hidden; overflow: hidden;
ul{ }
.modeSelect{
padding: 11px 42px; padding: 11px 42px;
font-size: 0; font-size: 0;
margin: 0 -5px; margin: 0 -5px;
...@@ -82,7 +94,6 @@ ...@@ -82,7 +94,6 @@
} }
} }
} }
}
} }
.u-select(); .u-select();
...@@ -129,9 +140,15 @@ ...@@ -129,9 +140,15 @@
margin-top: 4px; margin-top: 4px;
} }
.u-switch();
.u-button(); .u-button();
.custom-button{ .custom-button{
.button(); .button();
.buttonPosition(); .buttonPosition();
} }
.guide-dialog{
.mask(1051,@CUSTOM-BACKDROP-BG);
}
\ No newline at end of file
...@@ -355,8 +355,8 @@ ...@@ -355,8 +355,8 @@
.u-swipe-list{ .u-swipe-list{
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: auto;
position: relative; position: relative;
overflow: auto;
} }
.u-swipe-list-scroll .u-swipe-list-row{ .u-swipe-list-scroll .u-swipe-list-row{
position: relative; position: relative;
...@@ -389,9 +389,6 @@ ...@@ -389,9 +389,6 @@
.u-swipe-list-subtitle{ .u-swipe-list-subtitle{
.text_oneRow_ellipsis(); .text_oneRow_ellipsis();
} }
&.u-swipe-list-selected{
left: -120px;
}
} }
.u-swipe-list-button{ .u-swipe-list-button{
position: absolute; position: absolute;
...@@ -419,12 +416,15 @@ ...@@ -419,12 +416,15 @@
.defaultBorder(); .defaultBorder();
z-index: 2; z-index: 2;
} }
&.active .u-swipe-list-handle{
left: -120px;
}
} }
//上拉加载 //上拉加载
.u-swipe-list-load{ .u-swipe-list-load{
text-align: center; text-align: center;
} }
//list 无内容 //swipeList 无内容
.u-swipeList-tip{ .u-swipeList-tip{
.transformV_center(left,0); .transformV_center(left,0);
width: 100%; width: 100%;
......
web/resources/image/scanCodeAdd.png

3.26 KB | W: | H:

web/resources/image/scanCodeAdd.png

3.07 KB | W: | H:

web/resources/image/scanCodeAdd.png
web/resources/image/scanCodeAdd.png
web/resources/image/scanCodeAdd.png
web/resources/image/scanCodeAdd.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -483,6 +483,92 @@ p { ...@@ -483,6 +483,92 @@ p {
background-color: #153D4C; background-color: #153D4C;
} }
.u-list {
width: 100%;
height: 100%;
overflow: auto;
position: relative;
}
.u-list-scroll .u-list-row {
padding: 0.4rem 0.4rem 0.4rem 0.533rem;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.u-list-scroll .u-list-row .u-list-left-image {
width: 1.333rem;
height: 1.333rem;
margin-right: 0.267rem;
}
.u-list-scroll .u-list-row .u-list-left-icon {
margin-right: 0.267rem;
font-family: iconfont;
font-size: 0.533rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.u-list-scroll .u-list-row div {
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
min-width: 0;
}
.u-list-scroll .u-list-row .u-list-title {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.u-list-scroll .u-list-row .u-list-subtitle {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.u-list-scroll .u-list-row .u-list-right-text {
margin-left: 0.107rem;
}
.u-list-scroll .u-list-row .u-list-right-icon {
font-family: defaultIconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.u-list-scroll .u-list-row:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: #bbb;
}
.u-list-load {
text-align: center;
}
.u-list-tip {
position: absolute;
top: 50%;
left: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 100%;
text-align: center;
}
.wifiAddHelp { .wifiAddHelp {
margin: 0.8rem 1.013rem 1.547rem; margin: 0.8rem 1.013rem 1.547rem;
} }
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="./addDevice.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.deviceList') }}</p>
</div>
<u-list :init-param="componentsConfig.deviceList.initParam" v-on:u-list-tap="onDeviceListRowTap"></u-list>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./deviceList.js" defer async></script>
</body>
</html>
\ No newline at end of file
...@@ -41,11 +41,11 @@ ...@@ -41,11 +41,11 @@
</ul> </ul>
<u-button :init-param="componentsConfig.connectButton.initParam" v-on:u-button-tap="onConnectButtonTap"></u-button> <u-button :init-param="componentsConfig.connectButton.initParam" v-on:u-button-tap="onConnectButtonTap"></u-button>
</div> </div>
<u-commstatus-loading ref="ucommstatusloading" :text="textLoading" :status="status" <u-comm-loading ref="ucommloading"
:init-param="componentsConfig.ucommstatusloading.initParam" v-on:u-commstatus-loading-tap="onCommstatusLoadingButtonTap()"> :init-param="componentsConfig.ucommloading.initParam" v-on:u-comm-loading-tap="onCommLoadingButtonTap()">
<p class="loader"></p> <p class="loader"></p>
<p class="icon"></p> <p class="icon"></p>
</u-commstatus-loading> </u-comm-loading>
<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>
</div> </div>
......
...@@ -715,8 +715,8 @@ p { ...@@ -715,8 +715,8 @@ p {
.u-swipe-list { .u-swipe-list {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: auto;
position: relative; position: relative;
overflow: auto;
} }
.u-swipe-list-scroll .u-swipe-list-row { .u-swipe-list-scroll .u-swipe-list-row {
...@@ -773,10 +773,6 @@ p { ...@@ -773,10 +773,6 @@ p {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle.u-swipe-list-selected {
left: -3.2rem;
}
.u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button {
position: absolute; position: absolute;
top: 0; top: 0;
...@@ -820,6 +816,10 @@ p { ...@@ -820,6 +816,10 @@ p {
z-index: 2; z-index: 2;
} }
.u-swipe-list-scroll .u-swipe-list-row.active .u-swipe-list-handle {
left: -3.2rem;
}
.u-swipe-list-load { .u-swipe-list-load {
text-align: center; text-align: center;
} }
......
...@@ -818,21 +818,25 @@ p { ...@@ -818,21 +818,25 @@ p {
line-height: 1.067rem; line-height: 1.067rem;
} }
.doorlockManage { .doorlockManage li {
font-size: 0.427rem; font-size: 0.427rem;
padding: 0.453rem 1.92rem 0.453rem 1.12rem; padding: 0.453rem 1.12rem;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.doorlockManage p { .doorlockManage li p {
float: right; float: right;
color: #A0A0A7; color: #A0A0A7;
font-size: 0.32rem; font-size: 0.32rem;
margin-top: 0.08rem; margin-top: 0.08rem;
} }
.doorlockManage:before { .doorlockManage li.name {
padding-right: 1.92rem;
}
.doorlockManage li.name:before {
content: '\e6a7'; content: '\e6a7';
position: absolute; position: absolute;
top: 50%; top: 50%;
...@@ -845,7 +849,7 @@ p { ...@@ -845,7 +849,7 @@ p {
line-height: 1; line-height: 1;
} }
.doorlockManage:after { .doorlockManage li:after {
content: ''; content: '';
position: absolute; position: absolute;
bottom: 0; bottom: 0;
...@@ -856,6 +860,71 @@ p { ...@@ -856,6 +860,71 @@ p {
background: linear-gradient(to right, #242635, #fff, #242635); background: linear-gradient(to right, #242635, #fff, #242635);
} }
.u-switch {
position: relative;
width: 2.667rem;
height: 1.333rem;
}
.u-switch .u-switch-handle {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 1.333rem;
height: 0.8rem;
border: 2px solid;
border-radius: 0.533rem;
background-clip: padding-box;
}
.u-switch .u-switch-handle:before {
content: '';
position: absolute;
z-index: 1;
top: -1px;
width: 0.747rem;
height: 0.747rem;
-webkit-transition: left 0.2s ease-in-out;
transition: left 0.2s ease-in-out;
border-radius: 0.427rem;
background-color: #fff;
background-clip: padding-box;
-webkit-box-shadow: 0 0.053rem 0.133rem rgba(0, 0, 0, 0.4);
box-shadow: 0 0.053rem 0.133rem rgba(0, 0, 0, 0.4);
}
.u-switch.u-switch-on .u-switch-handle {
border-color: #4cd964;
-webkit-box-shadow: inset 0 0 0 0.427rem #4cd964;
box-shadow: inset 0 0 0 0.427rem #4cd964;
background-color: #4cd964;
-webkit-transition: border ease 0.4s, -webkit-box-shadow ease 0.4s, background-color ease 1.2s;
transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s;
}
.u-switch.u-switch-on .u-switch-handle:before {
left: 0.48rem;
}
.u-switch.u-switch-off .u-switch-handle {
border-color: #bbb;
-webkit-box-shadow: inset 0 0 0 0 #bbb;
box-shadow: inset 0 0 0 0 #bbb;
background-color: #bbb;
-webkit-transition: border cubic-bezier(0, 0, 0, 1) 0.4s, -webkit-box-shadow cubic-bezier(0, 0, 0, 1) 0.4s;
transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s;
}
.u-switch.u-switch-off .u-switch-handle:before {
left: -1px;
}
.u-switch.disabled {
opacity: 0.3;
}
.unbindState-dialog { .unbindState-dialog {
position: fixed; position: fixed;
top: 0; top: 0;
......
...@@ -25,10 +25,24 @@ ...@@ -25,10 +25,24 @@
<p>{{ $t('title.doorlockManage') }}</p> <p>{{ $t('title.doorlockManage') }}</p>
</div> </div>
<div class="content"> <div class="content">
<v-touch tag="div" class="doorlockManage" v-on:tap="onEditNameTap"> <ul class="doorlockManage">
<v-touch tag="li" class="name" v-on:tap="onEditNameTap">
{{ $t('doorlockManage.name') }} {{ $t('doorlockManage.name') }}
<p>{{ textDoorlock }}</p> <p>{{ textDoorlock }}</p>
</v-touch> </v-touch>
<li>
{{ $t('doorlockManage.doorbellMsgPush') }}
<u-switch :value="valueDoorbell" :init-param="componentsConfig.doorbellSwitch.initParam"></u-switch>
</li>
<li>
{{ $t('doorlockManage.alarmMsgPush') }}
<u-switch :value="valueAlarm" :init-param="componentsConfig.alarmSwitch.initParam"></u-switch>
</li>
<li>
{{ $t('doorlockManage.opendoorMsgPush') }}
<u-switch :value="valueOpendoor" :init-param="componentsConfig.opendoorSwitch.initParam"></u-switch>
</li>
</ul>
<u-button :init-param="componentsConfig.unbindDoorlockButton.initParam" v-on:u-button-tap="onUnbindDoorlockButtonTap"></u-button> <u-button :init-param="componentsConfig.unbindDoorlockButton.initParam" v-on:u-button-tap="onUnbindDoorlockButtonTap"></u-button>
</div> </div>
<transition name="fade"> <transition name="fade">
......
...@@ -22,17 +22,16 @@ ...@@ -22,17 +22,16 @@
<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.addUnlockInfo') }}</p>
</div> </div>
<div class="content"> <div class="content">
<div class="opendoorMode"> <div class="opendoorMode">
<p class="title">{{ $t('addUnlockInfo.opendoorMode') }}</p> <p class="title">{{ $t('addUnlockInfo.opendoorMode') }}</p>
<ul> <ul class="modeSelect">
<li class="active">{{ $t('addUnlockInfo.fingerprint') }}</li> <li class="active">{{ $t('addUnlockInfo.fingerprint') }}</li>
<li>{{ $t('addUnlockInfo.password') }}</li> <li>{{ $t('addUnlockInfo.password') }}</li>
<li>{{ $t('addUnlockInfo.icCard') }}</li> <li>{{ $t('addUnlockInfo.icCard') }}</li>
<li>{{ $t('addUnlockInfo.key') }}</li> <li>遥控器</li>
<li>{{ $t('addUnlockInfo.hijackFingerprint') }}</li>
</ul> </ul>
</div> </div>
<div class="opendoorRecord"> <div class="opendoorRecord">
...@@ -40,9 +39,70 @@ ...@@ -40,9 +39,70 @@
<u-select ref="uselect" :value="recordSelectIndex" :init-param="componentsConfig.recordSelect.initParam" <u-select ref="uselect" :value="recordSelectIndex" :init-param="componentsConfig.recordSelect.initParam"
v-on:u-select-change="onRecordSelectChange(arguments[0])"></u-select> v-on:u-select-change="onRecordSelectChange(arguments[0])"></u-select>
<p class="tip">{{ $t('addUnlockInfo.tip') }}</p> <p class="tip">{{ $t('addUnlockInfo.tip') }}</p>
<u-switch :value="valueSetHijack" :init-param="componentsConfig.setHijackSwitch.initParam"></u-switch>
</div> </div>
<u-button :init-param="componentsConfig.addButton.initParam" v-on:u-button-tap="onAddButtonTap"></u-button> <u-button :init-param="componentsConfig.addButton.initParam" v-on:u-button-tap="onAddButtonTap"></u-button>
</div> </div>
<transition name="fade">
<div class="guide-dialog" v-show="guideShowFlag">
<transition name="fade">
<div class="guideStep1" v-show="guideStep1ShowFlag">
<div class="guideStep1Cont">
<p class="title">{{ $t('addUnlockInfo.opendoorMode') }}</p>
<ul class="modeSelect">
<li class="active">{{ $t('addUnlockInfo.fingerprint') }}</li>
<li>{{ $t('addUnlockInfo.password') }}</li>
<li>{{ $t('addUnlockInfo.icCard') }}</li>
<li>遥控器</li>
</ul>
</div>
<div class="guideStep1Tip">
{{ $t('addUnlockInfo.guideStep1Tip') }}
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep2" v-show="guideStep2ShowFlag">
<u-button :init-param="componentsConfig.nextButton.initParam" v-on:u-button-tap="onNextButtonTap"></u-button>
</div>
</transition>
<transition name="fade">
<div class="guideStep3" v-show="guideStep3ShowFlag">
<div class="guideStep3Tip" v-html="$t('addUnlockInfo.guideStep3Tip')"></div>
<div class="guideStep3Cont">
<ul>
<li class="active">
<p>16:35</p>
<p>ID:001</p>
</li>
<li>
<p>15:33</p>
<p>ID:002</p>
</li>
</ul>
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep4" v-show="guideStep4ShowFlag">
<u-button :init-param="componentsConfig.nextButton.initParam" v-on:u-button-tap="onNextStepButtonTap"></u-button>
</div>
</transition>
<transition name="fade">
<div class="guideStep5" v-show="guideStep5ShowFlag">
<div class="guideStep5Tip" v-html="$t('addUnlockInfo.guideStep5Tip')"></div>
<div class="guideStep3Cont">
<p>{{ $t('addUnlockInfo.setHijackSwitch') }}</p>
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep6" v-show="guideStep6ShowFlag">
<u-button :init-param="componentsConfig.iSeeButton.initParam" v-on:u-button-tap="onISeeButtonTap"></u-button>
</div>
</transition>
</div>
</transition>
<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>
</div> </div>
......
...@@ -814,10 +814,11 @@ p { ...@@ -814,10 +814,11 @@ p {
margin: 1.067rem 1.013rem 0; margin: 1.067rem 1.013rem 0;
} }
.inviteBind li p { .inviteBind li:first-child {
width: 5.333rem; width: 5.333rem;
height: 5.333rem; height: 5.333rem;
margin: 0 auto; margin: 0 auto;
position: relative;
} }
.inviteBind li:not(:first-child) { .inviteBind li:not(:first-child) {
...@@ -835,6 +836,25 @@ p { ...@@ -835,6 +836,25 @@ p {
margin-top: 0.88rem; margin-top: 0.88rem;
} }
.inviteBind li p {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
text-align: center;
background-color: rgba(255, 255, 255, 0.1);
}
.inviteBind li p span {
position: absolute;
top: 50%;
left: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 100%;
}
.unbindState-dialog { .unbindState-dialog {
position: fixed; position: fixed;
top: 0; top: 0;
......
...@@ -27,7 +27,9 @@ ...@@ -27,7 +27,9 @@
<div class="content"> <div class="content">
<ul class="inviteBind"> <ul class="inviteBind">
<li> <li>
<p></p> <p>
<span>{{ $t('inviteBind.qrcodeExpireTip') }}</span>
</p>
</li> </li>
<li>{{ $t('inviteBind.title') }}</li> <li>{{ $t('inviteBind.title') }}</li>
<li>{{ $t('inviteBind.cont1') }}</li> <li>{{ $t('inviteBind.cont1') }}</li>
......
...@@ -454,7 +454,7 @@ p { ...@@ -454,7 +454,7 @@ p {
.title { .title {
height: 1.28rem; height: 1.28rem;
line-height: 1.28rem; line-height: 1.227rem;
position: relative; position: relative;
font-size: 0.427rem; font-size: 0.427rem;
padding-left: 1.12rem; padding-left: 1.12rem;
...@@ -465,31 +465,75 @@ p { ...@@ -465,31 +465,75 @@ p {
top: 2.453rem; top: 2.453rem;
} }
.u-list { /*
.u-list();
.custom-unlockInfo-list{
position: absolute;
top: 44px;
bottom: 0;
left: 0;
height: auto;
.u-list-scroll .u-list-row{
color: @UNLOCKINFOLIST-TEXT-COLOR;
font-size: @UNLOCKINFOLIST-TEXT-FONTSIZE;
padding: 18px 42px 8px;
&:after{
.white_gradient_border();
}
}
//上拉加载
.u-list-load{
.listLoad();
}
//list 无内容
.u-list-tip{
.bgImg("unlockNoCont.png");
background-position: top center;
background-repeat: no-repeat;
.background-size(70px 70px);
padding-top: 88px;
color: @LIST-NOCONTTIP-COLOR;
font-size: @LIST-NOCONTTIP-FONTSIZE;
}
}
*/
.u-swipe-list {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative;
overflow: auto; overflow: auto;
}
.u-swipe-list-scroll .u-swipe-list-row {
position: relative; position: relative;
overflow: hidden;
} }
.u-list-scroll .u-list-row { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle {
padding: 0.4rem 0.4rem 0.4rem 0.533rem;
position: relative; position: relative;
-webkit-transition: left 0.4s ease;
transition: left 0.4s ease;
left: 0;
background-color: #fff;
padding: 0.4rem 0.533rem;
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
display: flex; display: flex;
-webkit-box-align: center; -webkit-box-align: center;
-webkit-align-items: center; -webkit-align-items: center;
align-items: center; align-items: center;
z-index: 2;
} }
.u-list-scroll .u-list-row .u-list-left-image { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle .u-swipe-list-image {
width: 1.333rem; width: 1.333rem;
height: 1.333rem; height: 1.333rem;
margin-right: 0.267rem; margin-right: 0.267rem;
} }
.u-list-scroll .u-list-row .u-list-left-icon { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle .u-swipe-list-icon {
margin-right: 0.267rem; margin-right: 0.267rem;
font-family: iconfont; font-family: iconfont;
font-size: 0.533rem; font-size: 0.533rem;
...@@ -497,37 +541,58 @@ p { ...@@ -497,37 +541,58 @@ p {
line-height: 1; line-height: 1;
} }
.u-list-scroll .u-list-row div { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle div {
-webkit-box-flex: 1; -webkit-box-flex: 1;
-webkit-flex: 1; -webkit-flex: 1;
flex: 1; flex: 1;
min-width: 0; min-width: 0;
} }
.u-list-scroll .u-list-row .u-list-title { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle .u-swipe-list-title {
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.u-list-scroll .u-list-row .u-list-subtitle { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle .u-swipe-list-subtitle {
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.u-list-scroll .u-list-row .u-list-right-text { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button {
margin-left: 0.107rem; position: absolute;
top: 0;
bottom: 0;
right: 0;
z-index: 1;
} }
.u-list-scroll .u-list-row .u-list-right-icon { .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button div {
font-family: defaultIconfont; width: 1.6rem;
font-size: 0.667rem; height: 100%;
-webkit-font-smoothing: antialiased; display: -webkit-box;
line-height: 1; display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
color: #fff;
float: left;
}
.u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button div:nth-last-of-type(1) {
background-color: #ff0000;
}
.u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-button div:nth-last-of-type(2) {
background-color: #bbb;
} }
.u-list-scroll .u-list-row:after { .u-swipe-list-scroll .u-swipe-list-row:after {
content: ''; content: '';
position: absolute; position: absolute;
bottom: 0; bottom: 0;
...@@ -535,13 +600,18 @@ p { ...@@ -535,13 +600,18 @@ p {
right: 0; right: 0;
height: 1px; height: 1px;
background: #bbb; background: #bbb;
z-index: 2;
}
.u-swipe-list-scroll .u-swipe-list-row.active .u-swipe-list-handle {
left: -3.2rem;
} }
.u-list-load { .u-swipe-list-load {
text-align: center; text-align: center;
} }
.u-list-tip { .u-swipeList-tip {
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 0; left: 0;
...@@ -551,43 +621,8 @@ p { ...@@ -551,43 +621,8 @@ p {
text-align: center; text-align: center;
} }
.custom-unlockInfo-list { .custom-swipe-list .u-swipe-list-scroll .u-swipe-list-row .u-swipe-list-handle {
position: absolute; background-color: #242635;
top: 1.173rem;
bottom: 0;
left: 0;
height: auto;
}
.custom-unlockInfo-list .u-list-scroll .u-list-row {
color: #91929a;
font-size: 0.427rem;
padding: 0.48rem 1.12rem 0.213rem;
}
.custom-unlockInfo-list .u-list-scroll .u-list-row:after {
background: -webkit-linear-gradient(left, #242635, #fff, #242635);
background: linear-gradient(to right, #242635, #fff, #242635);
}
.custom-unlockInfo-list .u-list-load {
color: #00ffff;
font-size: 0.427rem;
-webkit-transform: scale(0.7);
transform: scale(0.7);
height: 0.933rem;
line-height: 0.933rem;
}
.custom-unlockInfo-list .u-list-tip {
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;
padding-top: 2.347rem;
color: #91929a;
font-size: 0.427rem;
} }
.opendoorMode { .opendoorMode {
...@@ -596,13 +631,13 @@ p { ...@@ -596,13 +631,13 @@ p {
overflow: hidden; overflow: hidden;
} }
.opendoorMode ul { .modeSelect {
padding: 0.293rem 1.12rem; padding: 0.293rem 1.12rem;
font-size: 0; font-size: 0;
margin: 0 -0.133rem; margin: 0 -0.133rem;
} }
.opendoorMode ul li { .modeSelect li {
color: #00ffff; color: #00ffff;
font-size: 0.347rem; font-size: 0.347rem;
border: 1px solid; border: 1px solid;
...@@ -616,7 +651,7 @@ p { ...@@ -616,7 +651,7 @@ p {
margin: 0.267rem 0.133rem; margin: 0.267rem 0.133rem;
} }
.opendoorMode ul li:before { .modeSelect li:before {
content: '\e631'; content: '\e631';
position: absolute; position: absolute;
top: 50%; top: 50%;
...@@ -629,11 +664,11 @@ p { ...@@ -629,11 +664,11 @@ p {
display: none; display: none;
} }
.opendoorMode ul li.active { .modeSelect li.active {
background-color: #153D4C; background-color: #153D4C;
} }
.opendoorMode ul li.active:before { .modeSelect li.active:before {
display: inline-block; display: inline-block;
} }
...@@ -791,6 +826,71 @@ p { ...@@ -791,6 +826,71 @@ p {
margin-top: 0.107rem; margin-top: 0.107rem;
} }
.u-switch {
position: relative;
width: 2.667rem;
height: 1.333rem;
}
.u-switch .u-switch-handle {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 1.333rem;
height: 0.8rem;
border: 2px solid;
border-radius: 0.533rem;
background-clip: padding-box;
}
.u-switch .u-switch-handle:before {
content: '';
position: absolute;
z-index: 1;
top: -1px;
width: 0.747rem;
height: 0.747rem;
-webkit-transition: left 0.2s ease-in-out;
transition: left 0.2s ease-in-out;
border-radius: 0.427rem;
background-color: #fff;
background-clip: padding-box;
-webkit-box-shadow: 0 0.053rem 0.133rem rgba(0, 0, 0, 0.4);
box-shadow: 0 0.053rem 0.133rem rgba(0, 0, 0, 0.4);
}
.u-switch.u-switch-on .u-switch-handle {
border-color: #4cd964;
-webkit-box-shadow: inset 0 0 0 0.427rem #4cd964;
box-shadow: inset 0 0 0 0.427rem #4cd964;
background-color: #4cd964;
-webkit-transition: border ease 0.4s, -webkit-box-shadow ease 0.4s, background-color ease 1.2s;
transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s;
}
.u-switch.u-switch-on .u-switch-handle:before {
left: 0.48rem;
}
.u-switch.u-switch-off .u-switch-handle {
border-color: #bbb;
-webkit-box-shadow: inset 0 0 0 0 #bbb;
box-shadow: inset 0 0 0 0 #bbb;
background-color: #bbb;
-webkit-transition: border cubic-bezier(0, 0, 0, 1) 0.4s, -webkit-box-shadow cubic-bezier(0, 0, 0, 1) 0.4s;
transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s;
}
.u-switch.u-switch-off .u-switch-handle:before {
left: -1px;
}
.u-switch.disabled {
opacity: 0.3;
}
.u-button { .u-button {
width: 6.4rem; width: 6.4rem;
color: #fff; color: #fff;
...@@ -835,3 +935,13 @@ p { ...@@ -835,3 +935,13 @@ p {
background-color: transparent; background-color: transparent;
color: #999; color: #999;
} }
.guide-dialog {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1051;
background-color: rgba(36, 38, 53, 0.9);
}
\ No newline at end of file
...@@ -27,17 +27,8 @@ ...@@ -27,17 +27,8 @@
</div> </div>
<div class="content"> <div class="content">
<p class="title">{{ $t('unlockInfo.bindUnlockInfo') }}</p> <p class="title">{{ $t('unlockInfo.bindUnlockInfo') }}</p>
<u-list :init-param="componentsConfig.unlockInfoList.initParam"></u-list> <u-swipe-list ref="uswipelist" :init-param="componentsConfig.unlockInfoList.initParam"
<!-- <div class="unlockInfo-list"> v-on:u-swipe-list-button-tap="onUnlockInfoListButtonTap(arguments[0],arguments[1])"></u-swipe-list>
<ul class="unlockInfo-list-scroll" v-show="unlockInfoList.length">
<li class="unlockInfo-list-row" v-for="item in unlockInfoList">
{{ item.title }}
<p>ID:{{ item.rightText }}</p>
</li>
<v-touch tag="li" class="unlockInfo-list-load" v-on:tap="onTapLoad" v-show="loadShowFlag">{{ loadText }}</v-touch>
</ul>
<p class="unlockInfo-list-tip" v-show="(unlockInfoList.length == 0)">{{ tip }}</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