Commit 72c6d16d by 朱建香

0929

parent d09f4a01
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>doorlock</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.aptana.ide.core.unifiedBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.aptana.projects.webnature</nature>
</natures>
</projectDescription>
......@@ -34,6 +34,7 @@
"remoteOpendoor": "远程开门",
"hijackRecord": "劫持记录",
"doorlockManage": "门锁管理",
"doorlockUsers": "门锁用户",
"editName": "修改名称",
"qrcode": "生成绑定二维码",
"addDevice": "添加设备",
......@@ -191,6 +192,18 @@
"id": "指纹ID:<span>{0}</span>密码ID:<span>{1}</span>IC卡ID:<span>{2}</span>",
"noUserTip": "暂无用户"
},
"myInfo":{
"editNickname": "修改昵称",
"editPassword": "修改密码"
},
"editNickname": {
"nickNameInputTip": "请输入昵称"
},
"editPassword": {
"newPasswordInputTip": "请输入新密码",
"oldPasswordInputTip": "请输入旧密码",
"oldPasswordInputTipAgain": "请再次输入旧密码"
},
"commstatusLoading":{
"connectSuccess": "Wi-Fi连接成功,正在绑定...",
"bindSuccess": "绑定成功",
......
......@@ -187,6 +187,10 @@ function init() {
setUuid(){
this.uuid = id;
},
//tap 个人信息
onMyInfoTap(){
myInfoTap();
},
//tap 门锁管理
onDoorlockManageTap(){
doorlockManageTap();
......@@ -342,6 +346,14 @@ function getNewOpenDoorRecord(self){
});
}
//tap 个人信息
function myInfoTap(){
iot.navigator.openWindow({
url: '../myInfo/',
id: 'myInfo'
});
}
//tap 门锁管理
function doorlockManageTap(){
iot.navigator.openWindow({
......@@ -374,6 +386,10 @@ function securityAlarmTap(self){
//tap 门锁用户
function doorlockUserTap(){
iot.navigator.openWindow({
url: '../doorlockUsers/',
id: 'doorlockUsers',
});
}
//tap 远程开门
......
/**
* v_index.js
* Version: 0.1
* User: zjx
* Date: 2017-09-29
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 门锁用户
*/
import config from '../../public/config.js';
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 图片轮播、跑马灯、开关、按钮、dialog、loading组件
uPublic.componentsInit(['u-swipe-list','u-dialog','u-loading']);
const app = new Vue({
data:{
//用户列表
userList: [],
userListIndex: null,
loadShowFlag: false,
loadFlag: false,
loadText: 'loading',
pagesize: 10,
tip: '无数据'
},
mounted(){
this.userList = [{value: 1, role: 0, image: '../../resources/image/green_head_icon.png', title: '我是用户', subtitle: "昵称: MM"},
{value: 1, role: 1, image: '../../resources/image/green_head_icon.png', title: '我是用户', subtitle: "昵称: MM"}]
},
methods:{
onBackTap(){
backTap();
},
onUserTap(){
addUser();
},
setLoadShowFlag(number){
this.loadShowFlag = (number >= this.pagesize);
},
onSwipeLeftRow(index){
swipeLeftRow(this, index);
},
onSwipeRightRow(){
swipeRightRow(this);
},
onTapLoad(){
tapLoad();
},
onTapUserList(index){
onTapUserList(this, index);
},
onTapButton(buttonIndex){
tapButton(buttonIndex);
},
changeUserList(list){
changeUserList(this, list);
}
}
}).$mount('#app');
}
//返回上一页
function backTap(){
iot.navigator.back();
}
//添加用户
function addUser(){
// iot.navigator.openWindow({
// url: '../doorlockUsers/addUser',
// id: 'addUser',
// });
}
// 向左滑动用户列表,修改用户列表下标
function swipeLeftRow(self, index) {
self.userListIndex = index;
}
// 向右滑动用户列表,修改用户列表下标
function swipeRightRow(self) {
self.userListIndex = null;
}
// 点击组件列表 通知事件和当前点击列表下标
function onTapUserList(self, listIndex) {
if (self.userListIndex != null) {
self.userListIndex = null;
}
}
//点击加载更多
function tapLoad(){
if (!self.loadFlag) {
self.loadText = 'loading';
self.loadFlag = true;
//再次发送获取用户列表请求
}
}
//点击按钮
function tapButton(buttonIndex){
console.log(buttonIndex);
}
// 修改userList列表
function changeUserList(self, list) {
self.setLoadShowFlag(list.length - self.swipeList.length);
self.userList = list;
self.$nextTick(function () {
self.loadText = '点击加载更多';
self.loadFlag = false;
});
}
\ No newline at end of file
/**
* v_editNickname.js
* Version: 0.1
* User: zjx
* Date: 2017-09-29
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 引导页面
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 dialog、loading组件
uPublic.componentsInit(['u-dialog','u-loading','u-text']);
const app = new Vue({
data:{
//配置组件
textNickName: null,
textErrorTip: '请输入昵称',
componentsConfig: initComponentsConfig()
},
mounted(){
},
methods:{
onSaveTap(){
saveTap();
},
onBackTap(){
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
nameInput: {
initParam: {
class: 'custom-editNickname-text',
placeholder: Vue.t('editNickname.nickNameInputTip')
}
},
//保存 button 参数
saveButton: {
initParam: {
class: 'custom-button',
text: Vue.t('btn.save')
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
}
}
//保存昵称
function saveTap(){
}
//返回上一页
function backTap(){
iot.navigator.back();
}
/**
* v_editPassword.js
* Version: 0.1
* User: zjx
* Date: 2017-09-29
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 引导页面
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 dialog、loading组件
uPublic.componentsInit(['u-dialog','u-loading','u-text']);
const app = new Vue({
data:{
//配置组件
textNewPassword: null,
textOldPassword: null,
textOldPasswordAgain: null,
textErrorTip: '密码不能为空',
componentsConfig: initComponentsConfig()
},
mounted(){
},
methods:{
onSaveTap(){
saveTap();
},
onBackTap(){
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
newPassword: {
initParam: {
class: 'custom-editPassword-text',
placeholder: Vue.t('editPassword.newPasswordInputTip')
}
},
oldPassword: {
initParam: {
class: 'custom-editPassword-text',
placeholder: Vue.t('editPassword.oldPasswordInputTip')
}
},
oldPasswordAgain: {
initParam: {
class: 'custom-editPassword-text',
placeholder: Vue.t('editPassword.oldPasswordInputTipAgain')
}
},
//保存 button 参数
saveButton: {
initParam: {
class: 'custom-button',
text: Vue.t('btn.save')
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
}
}
//保存昵称
function saveTap(){
}
//返回上一页
function backTap(){
iot.navigator.back();
}
/**
* v_index.js
* Version: 0.1
* User: zjx
* Date: 2017-09-26
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 引导页面
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 dialog、loading组件
uPublic.componentsInit(['u-dialog','u-loading']);
const app = new Vue({
data:{
//配置组件
nickName: 'bank',
componentsConfig: initComponentsConfig()
},
mounted(){
},
methods:{
//tap 修改昵称
onEditNicknameTap(){
editNicknameTap();
},
//tap 修改密码
onEditPasswordTap(){
editPasswordTap();
},
onBackTap(){
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
loading: {
initParam: {
class: 'custom-loading'
}
}
}
}
//tap 修改昵称
function editNicknameTap(){
iot.navigator.openWindow({
url: '../myInfo/editNickname.html',
id: 'editNickname'
});
}
//tap 修改密码
function editPasswordTap(){
iot.navigator.openWindow({
url: '../myInfo/editPassword.html',
id: 'editPassword'
});
}
function backTap(){
iot.navigator.back();
}
@import "../public/public.less";
@import "../public/header.less";
.u-text();
//ID-姓名绑定
.bindUserHelp{
.help();
}
.u-button();
.custom-help-button,
.custom-button{
.button();
}
.linkText();
//绑定用户
.editHead{
width: 200px;
margin: 70px auto 26px;
li{
color: @EDITHEAD-TEXT-COLOR;
font-size: @EDITHEAD-TEXT-FONTSIZE;
text-align: center;
margin-bottom: 12px;
img{
width: 80px;
height: 80px;
border-radius: 50%;
}
}
}
.inputBox{
width: 250px;
margin: 0 auto;
padding-bottom: 40px;
}
.u-text();
.custom-bindUser-text{
margin-top: 17px;
input{
padding-top: 8px;
padding-bottom: 8px;
padding-right: 38px;
text-align: center;
&::-webkit-input-placeholder{
color: @CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR;
}
}
.u-text-title{
width: 120px;
padding-left: 42px;
}
//x icon
.u-text-clear{
right: 7px;
&:before{
content: '\e601';
font-family: iconfont;
color: @CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR;
font-size: @CUSTOM-TEXT-COMPONENT-DEFAULTICON-FONTSIZE;
}
}
&:after{
.white_gradient_border();
}
}
.errorTip{
position: absolute;
left: 0;
right: 0;
.errorTip();
}
.custom-button{
.buttonPosition();
}
//用户列表
.u-swipe-list();
.custom-swipe-list{
position: absolute;
top: 44px;
bottom: 0;
left: 0;
height: auto;
.u-swipe-list-scroll .u-swipe-list-row{
.u-swipe-list-handle{
background-color: @CUSTOM-SWIPELIST-COMPONENT-ROW-BG;
height: 75px;
padding: 0 40px;
.u-swipe-list-image{
width: 30px;
height: 30px;
margin-right: 45px;
border-radius: 50%;
}
.u-swipe-list-title{
font-size: @CUSTOM-SWIPELIST-COMPONENT-TITLE-FONTSIZE;
line-height: 20px;
}
span{
margin-right: 18px;
}
&.u-swipe-list-selected{
left: -70px;
}
}
.u-swipe-list-button{
div{
width: 70px;
padding-left: 10px;
.box-horizontal-alignment(start,flex-start);
color: @CUSTOM-SWIPELIST-COMPONENT-BUTTON-COLOR;
&:before{
content: '\e66d';
.iconfont(@CUSTOM-SWIPELIST-COMPONENT-BUTTON-ICON-FONTSIZE);
}
&:nth-last-of-type(1){
background-color: @CUSTOM-SWIPELIST-COMPONENT-DELETEBUTTON-BG;
}
}
}
&:after{
.white_gradient_border();
}
}
.u-swipe-list-load{
.listLoad();
}
.u-swipeList-tip{
.listNoCont();
}
}
\ No newline at end of file
@import "../public/public.less";
@import "../public/header.less";
.u-list();
.custom-list{
position: absolute;
top: 44px;
bottom: 0;
left: 0;
height: auto;
.u-list-scroll .u-list-row{
height: 75px;
padding: 0 45px 0 48px;
.u-list-left-image{
width: 30px;
height: 30px;
margin-right: 38px;
}
.u-list-title{
font-size: @CUSTOM-LIST-COMPONENT-TITLE-FONTSIZE;
line-height: 20px;
}
.u-list-right-text{
font-size: @CUSTOM-LIST-COMPONENT-RIGHTTEXT-FONTSIZE;
word-wrap: break-word;
width: 65px;
line-height: 14px;
}
&:after{
.white_gradient_border();
}
}
.u-list-load{
.listLoad();
}
.u-list-tip{
.listNoCont();
}
}
\ No newline at end of file
@import "../public/public.less";
@import "../public/header.less";
.u-text();
//生成绑定二维码
.qrcodeHelp{
margin: 30px 30px 0;
li{
color: @QRCODEHELP-TEXT-COLOR;
font-size: @QRCODEHELP-TEXT-FONTSIZE;
padding-left: 12px;
text-indent: -12px;
line-height: 18px;
margin-bottom: 28px;
&:first-child{
color: inherit;
font-size: @QRCODEHELP-TITLE-FONTSIZE;
margin-bottom: 18px;
}
&:last-child{
padding-left: 0;
text-indent: 0;
}
p{
width: 200px;
height: 200px;
margin: 0 auto;
border: 1px solid;/*no*/
}
}
}
.u-button();
.custom-button{
.button();
.buttonPosition();
}
//门锁管理
.grid-list{
position: absolute;
top: 44px;
bottom: 138px;
left: 0;
width: 100%;
overflow: auto;
}
.grid-list-scroll{
.grid-list-row{
margin: 10px;
border: 1px solid @GRIDLIST-COMPONENT-ROW-BORDER;/*no*/
border-radius: 5px;
.grid-list-handle{
height: 56px;
position: relative;
.display-box();
.box-vertical-alignment();
padding: 0 12px;
.grid-list-left-image{
width: 26px;
height: 26px;
margin-right: 5px;
}
div{
.flex();
min-width: 0;
}
.grid-list-title{
font-size: @GRIDLIST-COMPONENT-TITLE-FONTSIZE;
.text_oneRow_ellipsis();
}
.grid-list-right-icon{
.iconfont(@GRIDLIST-COMPONENT-DEFAULTICON-FONTSIZE);
.transform(rotate(180deg));
}
&:after{
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.white_gradient_border();
}
}
.grid-list-content{
height: 42px;
display: table;
width: 100%;
table-layout: fixed;
.grid-list-button{
display: table-cell;
vertical-align: middle;
.grid-list-button-bg{
width: 30px;
height: 30px;
text-align: center;
color: @GRIDLIST-COMPONENT-BUTTON-ICON-COLOR;
border: 1px solid;/*no*/
border-radius: 50%;
.iconfont(@GRIDLIST-COMPONENT-BUTTON-ICON-FONTSIZE,30px);
display: inline-block;
}
&:nth-child(1){
padding-left: 16px;
}
&:nth-child(2){
padding-left: 25px;
}
&:nth-child(3){
padding-left: 34px;
}
&:nth-child(4){
text-align: right;
padding-right: 16px;
}
}
}
}
}
.grid-list-load{
.listLoad();
text-align: center;
}
.grid-list-tip{
.transformV_center(left,0);
width: 100%;
text-align: center;
.listNoCont();
}
//修改名称
.u-text();
.custom-editName-text{
input{
font-size: @CUSTOM-EDITNAMETEXT-COMPONENT-INPUT-FONTSIZE;
padding-left: 46px;
&::-webkit-input-placeholder{
color: @CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR;
}
}
//x icon
.u-text-clear{
right: 41px;
&:before{
content: '\e601';
font-family: iconfont;
color: @CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR;
font-size: @CUSTOM-EDITNAMETEXT-COMPONENT-DEFAULTICON-FONTSIZE;
}
}
&:after{
.white_gradient_border();
}
}
.errorTip{
.errorTip();
}
\ No newline at end of file
@import "../public/public.less";
@import "../public/header.less";
//侧滑列表
.user-list{
width: 100%;
height: 100%;
overflow: auto;
position: absolute;
top: 44px;
bottom: 0;
left: 0;
height: auto;
}
.user-list-scroll .user-list-row{
position: relative;
overflow: hidden;
.user-list-handle{
position: relative;
.transition(left 0.4s ease);
left: 0;
background-color: @BODY-BG-COLOR;
padding: 15px 20px;
.display-box();
.box-vertical-alignment();
z-index: 2;
.user-list-image{
width: 50px;
height: 50px;
margin-right: 10px;
}
.user-list-icon{
margin-right: 10px;
.iconfont(@SWIPELIST-COMPONENT-ICON-FONTSIZE);
}
div{
.flex();
min-width: 0;
}
.user-list-title{
.text_oneRow_ellipsis();
}
.user-sub-image{
width: 17px;
height: 17px;
}
.user-list-subtitle{
.text_oneRow_ellipsis();
display: inline-block;
}
&.user-list-selected{
left: -120px;
}
&:after{
content: "\e611";
display: block;
.iconfont(@TEXT-COMPONENT-ICON-FONTSIZE);
.transform(rotate(180deg));
}
}
.user-list-button{
position: absolute;
top: 0;
bottom: 0;
right: 0;
z-index: 1;
div{
width: 60px;
height: 100%;
.display-box();
.box-horizontal-alignment();
.box-vertical-alignment();
color: @SWIPELIST-COMPONENT-BUTTON-COLOR;
float: left;
&:nth-last-of-type(1){
background-color: transparent;
.iconfont(@TEXT-COMPONENT-ICON-FONTSIZE);
color: #00FFFF;
}
}
}
&:after{
.defaultBorder();
z-index: 2;
.white_gradient_border();
}
}
......@@ -21,19 +21,87 @@
}
}
//login
.inputBox();
//登录、注册、忘记密码
.inputBox(184px,40px,380px,"logo.png",75px,64px 64px);
.u-text();
.custom-text,
.custom-password-text,
.custom-code-text{
.custom-text();
.textInput();
}
.u-button();
//验证码
.code{
margin-top: 17px;
position: relative;
&:after{
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.white_gradient_border();
}
}
.custom-code-text{
width: 170px;
margin-top: 0;
&:after{
display: none;
}
}
//验证码 button
.custom-code-button{
position: absolute;
top: 5px;
right: 0;
.button(93px);
padding: 4px 0;
.transform(scale(0.7));
}
//密码
.passwordInput();
.errorTip{
position: absolute;
left: 0;
right: 0;
.errorTip();
}
.custom-button{
.custom-button();
.button();
}
.custom-guide-button{
.buttonPosition();
.button();
}
.link{
width: 275px;
margin: 5px auto;
overflow: hidden;
span{
color: @LINK-TEXT-COLOR;
font-size: @LINK-TEXT-FONTSIZE;
.transform(scale(0.7));
padding: 15px;
&:nth-child(1){
float: left;
margin-left: -25px;
}
&:nth-child(2){
float: right;
margin-right: -25px;
}
}
}
\ No newline at end of file
@import "../public/public.less";
@import "../public/header.less";
.u-text();
.custom-editNickname-text,.custom-editPassword-text{
input{
font-size: @CUSTOM-EDITNAMETEXT-COMPONENT-INPUT-FONTSIZE;
padding-left: 46px;
&::-webkit-input-placeholder{
color: @CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR;
}
}
//x icon
.u-text-clear{
right: 41px;
&:before{
content: '\e601';
font-family: iconfont;
color: @CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR;
font-size: @CUSTOM-EDITNAMETEXT-COMPONENT-DEFAULTICON-FONTSIZE;
}
}
&:after{
.white_gradient_border();
}
}
.editMyInfo{
position: absolute;
top: 44px;
bottom: 0;
left: 0;
height: auto;
width: 100%;
li{
width: 100%;
height: 55px;
position: relative;
line-height: 55px;
padding: 0 43px;
&:after{
//
.defaultBorder();
.white_gradient_border();
}
span{
//去掉span
&:first-child{
font-size: 16px;
line-height: 1;
.flex();
}
&:nth-child(2){
font-size: 12px;
line-height: 1;
float: right;
}
&:last-child{
display: block;
//
.iconfont(@TEXT-COMPONENT-ICON-FONTSIZE);
.transform(rotate(180deg));
}
}
}
.editPassword{
span{
&:nth-child(2){
display: block;
//
.iconfont(@TEXT-COMPONENT-ICON-FONTSIZE);
}
}
}
}
.errorTip{
.errorTip();
}
\ No newline at end of file
......@@ -15,8 +15,7 @@
//项目iconfont
@font-face{
font-family: 'iconfont';
//src: url('@{ICONFONT_PATH}/iconfont.ttf') format('truetype');
src: url('//at.alicdn.com/t/font_372681_ifeqlzhn1k9e8kt9.ttf') format('truetype');
src: url('@{ICONFONT_PATH}/iconfont.ttf') format('truetype');
}
@BODY-TEXT-FONTFAMILY: Helvetica,'Helvetica Neue',sans-serif;
......@@ -34,16 +33,22 @@
@C_BLUE_5: #153D4C;
@C_GREEN: #4cd964;
@C_RED: #ff0000;
@C_RED_1: #fc2168;
@C_GRAY: #bbb;
@C_GRAY_1: #ddd;
@C_GRAY_2: #999;
@C_GRAY_3: #91929a;
@C_GRAY_4: #959595;
@C_GRAY_5: #898989;
@OPACITY: transparent;
@BLACK_OPACITY: fade(@C_BLACK,80%);
@BLACK_OPACITY_1: fade(@C_BLACK,40%);
@WHITE_OPACITY: fade(@C_WHITE,0);
@BLUE_OPACITY: fade(@C_BLUE_2,90%);
//font-sizes
@DEFAULT_F_SIZE: 14px;
@F_SIZE_12: @DEFAULT_F_SIZE - 2; //12px
@F_SIZE_13: @DEFAULT_F_SIZE - 1; //13px
@F_SIZE_15: @DEFAULT_F_SIZE + 1; //15px
@F_SIZE_16: @DEFAULT_F_SIZE + 2; //16px
......@@ -68,8 +73,13 @@
@WHITE-GRADIENTBORDER-CENTERCOLOR: @C_WHITE;
@WHITE-GRADIENTBORDER-ENDCOLOR: @C_BLUE_2;
@BLUE-GRADIENTBORDER-STARTCOLOR: @C_BLUE_2;
@BLUE-GRADIENTBORDER-CENTERCOLOR: @C_BLUE_4;
@BLUE-GRADIENTBORDER-ENDCOLOR: @C_BLUE_2;
//遮罩蒙版
@BACKDROP-BG-COLOR: @BLACK_OPACITY;
@CUSTOM-BACKDROP-BG: @BLUE_OPACITY;
//通用组件
@LOADING-COMPONENT-TEXT-COLOR: @C_WHITE; //loading
......@@ -120,6 +130,7 @@
@SLIDE-COMPONENT-MINMAXVALUE-FONTSIZE: @F_SIZE_13;
@SLIDE-COMPONENT-DISABLED-COLOR: @C_GRAY;
@SLIDE-COMPONENT-DISABLED-BG: @C_GRAY;
@CAROUSEL-COMPONENT-INDICATORS-BG: @C_WHITE;
@EDITNAME-COMPONENT-INPUT-BG: @OPACITY; //修改名称
@EDITNAME-COMPONENT-ICON-FONTSIZE: @F_SIZE_20;
@EDITNAME-COMPONENT-DEFAULTICON-FONTSIZE: @F_SIZE_25;
......@@ -138,16 +149,15 @@
@CUSTOM-BUTTON-COMPONENT-DISABLED-COLOR: @C_GRAY_2;
//自定义输入框组件
@CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR: ;
@CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR: ;
@CUSTOM-TEXT-COMPONENT-DEFAULTICON-FONTSIZE: @DEFAULT_F_SIZE + 8;
@CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR: @C_GRAY_3;
@CUSTOM-TEXT-COMPONENT-ICON-FONTSIZE: @DEFAULT_F_SIZE + 10;
@CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR: @C_BLUE_4;
@CUSTOM-TEXT-COMPONENT-DEFAULTICON-FONTSIZE: @F_SIZE_13;
//自定义弹出框组件
@CUSTOM-DIALOG-COMPONENT-BOX-BG: @OPACITY;
@CUSTOM-DIALOG-COMPONENT-COLOR: @C_BLUE_4;
@CUSTOM-DIALOG-COMPONENT-CONTENT-FONTSIZE: @F_SIZE_18;
@CUSTOM-DIALOG-COMPONENT-BUTTON-BG: ;
@CUSTOM-DIALOG-COMPONENT-BUTTON-ACTIVE-BG: ;
@CUSTOM-DIALOG-COMPONENT-CANCELBUTTON-COLOR: ;
@CUSTOM-DIALOG-COMPONENT-CONFIRMBUTTON-COLOR: @C_WHITE;
//header
@HEADER-BG-COLOR: @C_BLUE_3;
......@@ -157,12 +167,76 @@
@HEADER-ICON-FONTSIZE: @F_SIZE_25;
//errorTip
@ERRORTIP-TEXT-COLOR: ;
@ERRORTIP-TEXT-FONTSIZE: @F_SIZE_13;
@ERRORTIP-TEXT-COLOR: @C_RED_1;
@ERRORTIP-TEXT-FONTSIZE: @F_SIZE_16;
@LINKTEXT-TEXT-COLOR: @C_BLUE_4;
@LINKTEXT-TEXT-FONTSIZE: @F_SIZE_12;
//list
@LIST-LOAD-FONTSIZE: @F_SIZE_13; //上拉加载
@LIST-NOCONTTIP-COLOR: ; //list 无内容
@LIST-LOAD-COLOR: @C_BLUE_4; //上拉加载
@LIST-LOAD-FONTSIZE: @F_SIZE_16;
@LIST-NOCONTTIP-COLOR: @C_BLUE_4; //list 无内容
@LIST-NOCONTTIP-FONTSIZE: @F_SIZE_18;
//引导
@GUIDE-FOOTER-FONTSIZE: @F_SIZE_16;
//登录
@LINK-TEXT-COLOR: @C_BLUE_4;
@LINK-TEXT-FONTSIZE: @F_SIZE_16;
//添加设备
@ADDDEVICE-TEXT-COLOR: @C_BLUE_4;
@ADDDEVICE-TEXT-FONTSIZE: @F_SIZE_18;
@ADDDEVICE-ROW-ACTIVE-BG: @C_BLUE_5;
//配置Wi-Fi/ID-姓名绑定
@HELP-TEXT-COLOR: @C_GRAY_3;
@HELP-TITLE-FONTSIZE: @F_SIZE_18;
//连接Wi-Fi
@WIFI-ICON-FONTSIZE: @DEFAULT_F_SIZE + 10;
@WIFI-TEXT-COLOR: @C_BLUE_4;
@REMIND-TEXT-COLOR: @C_GRAY_3; //配置Wi-Fi提醒
@REMIND-TEXT-FONTSIZE: @F_SIZE_16;
//开门记录/报警信息/劫持记录
@CUSTOM-LIST-COMPONENT-TITLE-FONTSIZE: @F_SIZE_16;
@CUSTOM-LIST-COMPONENT-RIGHTTEXT-FONTSIZE: @F_SIZE_12;
//生成绑定二维码
@QRCODEHELP-TEXT-COLOR: @C_GRAY_3;
@QRCODEHELP-TEXT-FONTSIZE: @F_SIZE_16;
@QRCODEHELP-TITLE-FONTSIZE: @F_SIZE_18;
//智能指纹锁
@CUSTOM-CAROUSEL-COMPONENT-INDICATORS-ACTIVE-BG: @C_GRAY_5;
@CUSTOM-SWITCH-COMPONENT-TEXT-FONTSIZE: @F_SIZE_18;
@CUSTOM-SWITCH-COMPONENT-HANDLE-BG: @BODY-BG-COLOR;
@CUSTOM-SWITCH-COMPONENT-ONSTATE-COLOR: @C_BLUE_4;
@CUSTOM-SWITCH-COMPONENT-OFFSTATE-COLOR: @C_GRAY_5;
@NEWMSG-ICON-FONTSIZE: @F_SIZE_16;
@NEWMSG-ICON-COLOR: @C_RED_1;
//门锁管理
@GRIDLIST-COMPONENT-ROW-BORDER: @C_BLUE_4;
@GRIDLIST-COMPONENT-TITLE-FONTSIZE: @F_SIZE_18;
@GRIDLIST-COMPONENT-DEFAULTICON-FONTSIZE: @DEFAULT_F_SIZE + 8;
@GRIDLIST-COMPONENT-BUTTON-ICON-COLOR: @C_BLUE_4;
@GRIDLIST-COMPONENT-BUTTON-ICON-FONTSIZE: @F_SIZE_16;
//修改名称
@CUSTOM-EDITNAMETEXT-COMPONENT-INPUT-FONTSIZE: @F_SIZE_18;
@CUSTOM-EDITNAMETEXT-COMPONENT-DEFAULTICON-FONTSIZE: @F_SIZE_20;
//绑定用户
@EDITHEAD-TEXT-COLOR: @C_BLUE_4;
@EDITHEAD-TEXT-FONTSIZE: @F_SIZE_12;
//用户列表
@CUSTOM-SWIPELIST-COMPONENT-ROW-BG: @BODY-BG-COLOR;
@CUSTOM-SWIPELIST-COMPONENT-TITLE-FONTSIZE: @F_SIZE_16;
@CUSTOM-SWIPELIST-COMPONENT-BUTTON-COLOR: @C_BLUE_4;
@CUSTOM-SWIPELIST-COMPONENT-BUTTON-ICON-FONTSIZE: @F_SIZE_16;
@CUSTOM-SWIPELIST-COMPONENT-DELETEBUTTON-BG: @BODY-BG-COLOR;
\ No newline at end of file
......@@ -20,7 +20,7 @@
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onDoorlockManageTap">&#xe66f;</v-touch>
<v-touch tag="span" class="header-left icon" v-on:tap="onMyInfoTap()">&#xe66f;</v-touch>
<p>{{ $t('title.device') }}</p>
</div>
<div class="content">
......
@font-face {
font-family: 'defaultIconfont';
src: url('../../resources/font/defaultIconfont.ttf') format('truetype');
}
@font-face {
font-family: 'iconfont';
src: url('//at.alicdn.com/t/font_372681_ifeqlzhn1k9e8kt9.ttf') format('truetype');
}
html,
body {
width: 100%;
height: 100%;
}
body {
-webkit-user-select: none;
user-select: none;
color: #fff;
font-size: 0.373rem;
background: -webkit-linear-gradient(left, #242635, #fff, #242635);
background: linear-gradient(to right, #242635, #fff, #242635);
background-color: #242635;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: bottom center;
}
ul {
padding-left: 0;
list-style: none;
margin-bottom: 0;
}
p {
margin-bottom: 0;
}
.u-loading {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1050;
background-color: rgba(0, 0, 0, 0.8);
}
.u-loading .u-loading-box {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.u-loading .u-loading-box .u-loading-icon {
width: 30px;
height: 30px;
background-position: center;
background-repeat: no-repeat;
background-image: url("../../resources/image/white_loading_icon.png");
-webkit-background-size: cover;
background-size: cover;
margin: 0 auto;
-webkit-animation: uLoading 1s steps(12, end) infinite;
animation: uLoading 1s steps(12, end) infinite;
}
.u-loading .u-loading-box .u-loading-text {
color: #fff;
margin-top: 0.32rem;
text-align: center;
}
@-webkit-keyframes uLoading {
0% {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
transform: rotate3d(0, 0, 1, 0deg);
}
100% {
-webkit-transform: rotate3d(0, 0, 1, 360deg);
transform: rotate3d(0, 0, 1, 360deg);
}
}
@keyframes uLoading {
0% {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
transform: rotate3d(0, 0, 1, 0deg);
}
100% {
-webkit-transform: rotate3d(0, 0, 1, 360deg);
transform: rotate3d(0, 0, 1, 360deg);
}
}
.u-dialog {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1050;
background-color: rgba(0, 0, 0, 0.8);
}
.u-dialog .u-dialog-box {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 6.667rem;
background-color: #fff;
border-radius: 0.32rem;
}
.u-dialog .u-dialog-box .u-dialog-content {
padding: 0.4rem;
text-align: center;
position: relative;
}
.u-dialog .u-dialog-box .u-dialog-content:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: #bbb;
}
.u-dialog .u-dialog-box .u-dialog-button {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.u-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel,
.u-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm {
display: table-cell;
color: #007aff;
text-align: center;
padding: 0.4rem 0;
line-height: 1;
position: relative;
}
.u-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 1px;
-webkit-transform: scaleX(0.5);
transform: scaleX(0.5);
background-color: #bbb;
}
.fade-enter-active,
.fade-leave-active {
-webkit-transition: opacity 0.5s linear;
transition: opacity 0.5s linear;
}
.fade-enter,
.fade-leave-active {
opacity: 0;
}
.custom-dialog .u-dialog-box {
width: 7.2rem;
height: 4rem;
border-radius: 0.133rem;
}
.custom-dialog .u-dialog-box .u-dialog-content {
width: 100%;
height: 2.667rem;
display: -webkit-box;
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;
font-size: 0.48rem;
line-height: 0.587rem;
padding: 0 0.4rem;
}
.custom-dialog .u-dialog-box .u-dialog-content:after {
height: 0;
}
.custom-dialog .u-dialog-box .u-dialog-button {
border-spacing: 0.613rem 0;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel,
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm {
background-color: ;
padding: 0.213rem 0;
border-radius: 0.8rem;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:active,
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm:active {
background-color: ;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel {
color: ;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:after {
width: 0;
}
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 1.173rem;
z-index: 1030;
background-color: #010d19;
}
.header p {
position: absolute;
top: 0;
left: 1.467rem;
right: 1.467rem;
line-height: 1.173rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: #fff;
font-size: 0.507rem;
text-align: center;
}
.header span {
color: #fff;
width: 1.467rem;
line-height: 1.173rem;
display: block;
}
.header span:active {
opacity: 0.5;
}
.header .header-left {
float: left;
padding-left: 0.133rem;
}
.header .header-right {
float: right;
padding-right: 0.133rem;
text-align: right;
}
.header .icon {
font-family: iconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1.173rem;
}
.header ~ .content {
padding-top: 1.173rem;
}
.u-text {
width: 100%;
display: table;
position: relative;
}
.u-text input {
display: table-cell;
width: 100%;
border: 0;
outline: 0;
-webkit-appearance: none;
padding: 0.533rem 1.867rem 0.533rem 0.533rem;
background-color: transparent;
}
.u-text input[type=text] ~ .u-text-see {
color: #007aff;
}
.u-text .u-text-icon {
font-family: iconfont;
font-size: 0.533rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
width: 1.173rem;
padding-left: 0.453rem;
display: table-cell;
vertical-align: middle;
}
.u-text .u-text-icon ~ input {
padding-left: 0;
}
.u-text .u-text-title {
width: 1.92rem;
padding-left: 0.533rem;
display: table-cell;
vertical-align: middle;
}
.u-text .u-text-title ~ input {
padding-left: 0;
}
.u-text .u-text-clear,
.u-text .u-text-see {
position: absolute;
top: 0;
width: 0.8rem;
height: 100%;
}
.u-text .u-text-clear:before,
.u-text .u-text-see:before {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-family: defaultIconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.u-text .u-text-clear {
right: 0.8rem;
}
.u-text .u-text-clear:before {
content: '\e724';
}
.u-text .u-text-see {
right: 0;
}
.u-text .u-text-see:before {
content: '\e73c';
}
.u-text:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: #bbb;
}
@media (max-height: 400px /*no*/) {
#app {
height: 17.253rem;
position: relative;
}
}
.u-button {
width: 6.4rem;
color: #fff;
font-size: inherit;
background-color: #007aff;
border-radius: 0.533rem;
text-align: center;
line-height: 1;
margin: 0 auto;
padding: 0.267rem 0;
-webkit-transition: all 0.2s linear;
transition: all 0.2s linear;
background-clip: padding-box;
}
.u-button:active {
background-color: #0065ff;
}
.u-button.disabled {
background-color: #bbb;
}
\ No newline at end of file
@font-face {
font-family: 'defaultIconfont';
src: url('../../resources/font/defaultIconfont.ttf') format('truetype');
}
@font-face {
font-family: 'iconfont';
src: url('//at.alicdn.com/t/font_372681_ifeqlzhn1k9e8kt9.ttf') format('truetype');
}
html,
body {
width: 100%;
height: 100%;
}
body {
-webkit-user-select: none;
user-select: none;
color: #fff;
font-size: 0.373rem;
background: -webkit-linear-gradient(left, #242635, #fff, #242635);
background: linear-gradient(to right, #242635, #fff, #242635);
background-color: #242635;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: bottom center;
}
ul {
padding-left: 0;
list-style: none;
margin-bottom: 0;
}
p {
margin-bottom: 0;
}
.u-loading {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1050;
background-color: rgba(0, 0, 0, 0.8);
}
.u-loading .u-loading-box {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.u-loading .u-loading-box .u-loading-icon {
width: 30px;
height: 30px;
background-position: center;
background-repeat: no-repeat;
background-image: url("../../resources/image/white_loading_icon.png");
-webkit-background-size: cover;
background-size: cover;
margin: 0 auto;
-webkit-animation: uLoading 1s steps(12, end) infinite;
animation: uLoading 1s steps(12, end) infinite;
}
.u-loading .u-loading-box .u-loading-text {
color: #fff;
margin-top: 0.32rem;
text-align: center;
}
@-webkit-keyframes uLoading {
0% {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
transform: rotate3d(0, 0, 1, 0deg);
}
100% {
-webkit-transform: rotate3d(0, 0, 1, 360deg);
transform: rotate3d(0, 0, 1, 360deg);
}
}
@keyframes uLoading {
0% {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
transform: rotate3d(0, 0, 1, 0deg);
}
100% {
-webkit-transform: rotate3d(0, 0, 1, 360deg);
transform: rotate3d(0, 0, 1, 360deg);
}
}
.u-dialog {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1050;
background-color: rgba(0, 0, 0, 0.8);
}
.u-dialog .u-dialog-box {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 6.667rem;
background-color: #fff;
border-radius: 0.32rem;
}
.u-dialog .u-dialog-box .u-dialog-content {
padding: 0.4rem;
text-align: center;
position: relative;
}
.u-dialog .u-dialog-box .u-dialog-content:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: #bbb;
}
.u-dialog .u-dialog-box .u-dialog-button {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.u-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel,
.u-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm {
display: table-cell;
color: #007aff;
text-align: center;
padding: 0.4rem 0;
line-height: 1;
position: relative;
}
.u-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 1px;
-webkit-transform: scaleX(0.5);
transform: scaleX(0.5);
background-color: #bbb;
}
.fade-enter-active,
.fade-leave-active {
-webkit-transition: opacity 0.5s linear;
transition: opacity 0.5s linear;
}
.fade-enter,
.fade-leave-active {
opacity: 0;
}
.custom-dialog .u-dialog-box {
width: 7.2rem;
height: 4rem;
border-radius: 0.133rem;
}
.custom-dialog .u-dialog-box .u-dialog-content {
width: 100%;
height: 2.667rem;
display: -webkit-box;
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;
font-size: 0.48rem;
line-height: 0.587rem;
padding: 0 0.4rem;
}
.custom-dialog .u-dialog-box .u-dialog-content:after {
height: 0;
}
.custom-dialog .u-dialog-box .u-dialog-button {
border-spacing: 0.613rem 0;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel,
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm {
background-color: ;
padding: 0.213rem 0;
border-radius: 0.8rem;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:active,
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm:active {
background-color: ;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel {
color: ;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:after {
width: 0;
}
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 1.173rem;
z-index: 1030;
background-color: #010d19;
}
.header p {
position: absolute;
top: 0;
left: 1.467rem;
right: 1.467rem;
line-height: 1.173rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: #fff;
font-size: 0.507rem;
text-align: center;
}
.header span {
color: #fff;
width: 1.467rem;
line-height: 1.173rem;
display: block;
}
.header span:active {
opacity: 0.5;
}
.header .header-left {
float: left;
padding-left: 0.133rem;
}
.header .header-right {
float: right;
padding-right: 0.133rem;
text-align: right;
}
.header .icon {
font-family: iconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1.173rem;
}
.header ~ .content {
padding-top: 1.173rem;
}
.u-text {
width: 100%;
display: table;
position: relative;
}
.u-text input {
display: table-cell;
width: 100%;
border: 0;
outline: 0;
-webkit-appearance: none;
padding: 0.533rem 1.867rem 0.533rem 0.533rem;
background-color: transparent;
}
.u-text input[type=text] ~ .u-text-see {
color: #007aff;
}
.u-text .u-text-icon {
font-family: iconfont;
font-size: 0.533rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
width: 1.173rem;
padding-left: 0.453rem;
display: table-cell;
vertical-align: middle;
}
.u-text .u-text-icon ~ input {
padding-left: 0;
}
.u-text .u-text-title {
width: 1.92rem;
padding-left: 0.533rem;
display: table-cell;
vertical-align: middle;
}
.u-text .u-text-title ~ input {
padding-left: 0;
}
.u-text .u-text-clear,
.u-text .u-text-see {
position: absolute;
top: 0;
width: 0.8rem;
height: 100%;
}
.u-text .u-text-clear:before,
.u-text .u-text-see:before {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-family: defaultIconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.u-text .u-text-clear {
right: 0.8rem;
}
.u-text .u-text-clear:before {
content: '\e724';
}
.u-text .u-text-see {
right: 0;
}
.u-text .u-text-see:before {
content: '\e73c';
}
.u-text:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: #bbb;
}
@media (max-height: 400px /*no*/) {
#app {
height: 17.253rem;
position: relative;
}
}
.u-button {
width: 6.4rem;
color: #fff;
font-size: inherit;
background-color: #007aff;
border-radius: 0.533rem;
text-align: center;
line-height: 1;
margin: 0 auto;
padding: 0.267rem 0;
-webkit-transition: all 0.2s linear;
transition: all 0.2s linear;
background-clip: padding-box;
}
.u-button:active {
background-color: #0065ff;
}
.u-button.disabled {
background-color: #bbb;
}
\ No newline at end of file
<!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="./doorlockUsers.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.doorlockUsers') }}</p>
<v-touch tag="span" class="header-right icon" v-on:tap="onUserTap">&#xe600;</v-touch>
</div>
<div class="user-list">
<ul class="user-list-scroll" v-show="userList.length">
<v-touch tag="li" class="user-list-row" v-for="(item, index) in userList" :key="index"
v-on:swipeleft="onSwipeLeftRow(index)"
v-on:swiperight="onSwipeRightRow"
v-bind:swipe-options="{direction: 'horizontal'}">
<v-touch tag="div" class="user-list-handle"
v-bind:class="{'user-list-selected': (index == userListIndex)}"
v-on:tap="onTapUserList(index)">
<img class="user-list-image" v-if="item.image && item.role == 0" v-bind:src="item.image">
<div>
<p class="user-list-title">{{ item.title }}</p>
<p class="user-list-subtitle">
<img class="user-sub-image" v-if="item.image && item.role != 0" v-bind:src="item.image">
{{ item.subtitle }}
</p>
</div>
</v-touch>
<div class="user-list-button">
<v-touch tag="div" v-on:tap="onTapButton(index)">
&#xe66d;
</v-touch>
</div>
</v-touch>
<v-touch tag="li" class="user-list-load" v-on:tap="onTapLoad" v-show="loadShowFlag">{{ loadText }}
</ul>
<p class="user-list-tip" v-show="(userList.length == 0)">{{ tip }}</p>
</div>
</div>
<script type="text/javascript" src="./index.js" defer async></script>
</body>
</html>
<!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="./myInfo.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.doorlockUsers') }}</p>
<v-touch tag="span" class="header-right" v-on:tap="onSaveTap">{{ $t('btn.save') }}</v-touch>
</div>
<div class="content">
<u-text :init-param="componentsConfig.nameInput.initParam" :text="textNickName"
v-on:u-text-change="onNicknameChange(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
</div>
<script type="text/javascript" src="./editNickname.js" defer async></script>
</body>
</html>
<!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="./myInfo.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.doorlockUsers') }}</p>
<v-touch tag="span" class="header-right" v-on:tap="onSaveTap">{{ $t('btn.save') }}</v-touch>
</div>
<div class="content">
<u-text :init-param="componentsConfig.newPassword.initParam" :text="textNewPassword"
v-on:u-text-change="onNewPasswordChange(arguments[0])"></u-text>
<u-text :init-param="componentsConfig.oldPassword.initParam" :text="textOldPassword"
v-on:u-text-change="onOldPasswordChange(arguments[0])"></u-text>
<u-text :init-param="componentsConfig.oldPasswordAgain.initParam" :text="textOldPasswordAgain"
v-on:u-text-change="onOldPasswordAgainChange(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
</div>
<script type="text/javascript" src="./editPassword.js" defer async></script>
</body>
</html>
<!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="./myInfo.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.doorlockUsers') }}</p>
</div>
<ul class="editMyInfo">
<v-touch tag="li" class="editNickname" v-on:tap="onEditNicknameTap">
<span >{{ $t('myInfo.editNickname') }}</span>
<span>{{ nickName }}</span>
<span>&#xe611;</span>
</v-touch>
<v-touch tag="li" class="editPassword" v-on:tap="onEditPasswordTap">
<span>{{ $t('myInfo.editPassword') }}</span>
<span>&#xe655;</span>
<span>&#xe611;</span>
</v-touch>
</ul>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./index.js" defer async></script>
</body>
</html>
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