Commit 90a08f67 by 朱建香

2018/01/02

下拉更新组件优化
parent 6803065e
......@@ -190,8 +190,8 @@
"wifiAdd": {
"unbindWifiTip": "当前无Wi-Fi",
"wifiBinding": "配网中",
"wifiBindSuccess": "配网成功,请激活设备",
"deviceActivating": "设备激活中",
"wifiBindSuccess": "Wi-Fi连接成功,正在激活设备",
"deviceActivating": "Wi-Fi连接成功,正在激活设备",
"deviceActivateSuccess":"激活成功",
"deviceActivateFailure":"激活失败",
"bindTimeout":"连接超时",
......@@ -271,10 +271,10 @@
},
"inviteBind":{
"qrcodeExpireTip": "二维码已过期,请重新生成",
"title": "注意事项:",
"cont1": "1.被邀请的用户选择添加设备页面中的扫二维码方式进行添加门锁",
"cont2": "2.长按二维码保存为图片,发送给被邀请用户,用户通过长按识别二维码",
"cont3": "3.有效时间10分钟,失效后请点击“重新生成二维码"
"title": "绑定方法:",
"cont1": "1.受邀用户登录“U智锁”APP",
"cont2": "2.选择“扫描绑定设备”",
"cont3": "3.扫描上方二维码完成绑定"
},
"unlockInfo":{
"bindUnlockInfo": "已关联的开锁信息",
......
......@@ -13,7 +13,7 @@ iot.ready(init);
function init() {
//通用 dialog、loading组件
uPublic.componentsInit(['u-dialog','u-loading']);
uPublic.closeSlideBack();
// uPublic.closeSlideBack();
const app = new Vue({
data:{
//配置组件
......
......@@ -14,7 +14,7 @@ function init() {
console.log("init" + new Date().getTime());
//通用 dialog、loading组件
uPublic.componentsInit(['u-dialog','u-loading']);
uPublic.closeSlideBack();
// uPublic.closeSlideBack();
const app = new Vue({
data:{
//配置组件
......@@ -145,7 +145,9 @@ function deviceBind(self, lockId, relId){
if(data.success){
uComponents.openAlert(self, Vue.t('addDevice.bindSuccess'), {
text: Vue.t('dialog.confirm'), callback: function () {
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{});
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
needClose: true
});
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device'
......
......@@ -354,7 +354,9 @@ function commLoadingButtonTap(self) {
if(self.getStatus() == 1){
//绑定成功
uComponents.hideCommLoading(self);
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{});
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
needClose: true
});
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device'
......
......@@ -13,7 +13,7 @@ iot.ready(init);
function init() {
//通用 按钮、dialog、loading组件
uPublic.componentsInit(['u-button','u-dialog','u-loading']);
uPublic.closeSlideBack();
// uPublic.closeSlideBack();
const app = new Vue({
data:{
//配置组件
......
......@@ -14,7 +14,7 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 list、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']);
uPublic.componentsInit(['u-list','u-dialog','u-loading','u-refresh']);
uPublic.closeSlideBack();
const app = new Vue({
data:{
......@@ -23,10 +23,27 @@ function init() {
list:[],
startId: 0,
deviceId: null,
flag: true
flag: true,
refreshDisabled: true
},
mounted(){
resolve(this);
let ulistDom = this.$refs.ulist.$el;
console.log(ulistDom);
let self = this;
ulistDom.onscroll = function () {
console.log(ulistDom.offsetHeight+' '+ulistDom.offsetTop);
console.log(ulistDom.scrollTop);
console.log(ulistDom.scrollHeight);
let sum = ulistDom.offsetHeight+ulistDom.scrollTop;
console.log(sum);
//滑到底了
if(sum == ulistDom.scrollHeight){
self.refreshDisabled = false;
ulistDom.style.overflow = 'hidden';
}
}
},
methods:{
getList(){
......@@ -51,6 +68,9 @@ function init() {
onListLoadTap(){
listLoadTap(this);
},
onRefreshFresh(){
refreshFresh(this);
},
//tap <
onBackTap(){
backTap();
......@@ -67,7 +87,7 @@ function initComponentsConfig() {
class: 'custom-list',
list: [],
tip: Vue.t('alarmInfo.noInfoTip'),
pagesize: PAGE_SIZE
// pagesize: PAGE_SIZE
}
},
dialog: {
......@@ -79,6 +99,13 @@ function initComponentsConfig() {
initParam: {
class: 'custom-loading'
}
},
refresh: {
initParam: {
text: ['下拉刷新','松开加载','正在刷新','刷新成功'],
class: 'custom-refersh',
pullUp: false
}
}
}
}
......@@ -121,6 +148,16 @@ function resolve(self) {
self.setStartId(record[record.length-1].id);
}
//更新列表数据
uComponents.hideRefresh(self);
let ulistDom = self.$refs.ulist.$el;
let sum = ulistDom.offsetHeight+ulistDom.scrollTop;
//滑到底了
ulistDom.style.overflow = 'auto';
self.refreshDisabled = true;
// if(sum != ulistDom.scrollHeight){
// ulistDom.style.overflow = 'auto';
// self.refreshDisabled = true;
// }
uComponents.changeList(self, self.getList());
}else{
}
......@@ -152,3 +189,7 @@ mui.back = function(){
function listLoadTap(self) {
resolve(self);
}
function refreshFresh(self){
resolve(self);
}
\ No newline at end of file
......@@ -15,7 +15,7 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 list、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']);
uPublic.componentsInit(['u-list','u-dialog','u-loading','u-refresh']);
uPublic.closeSlideBack();
const app = new Vue({
data:{
......@@ -25,10 +25,27 @@ function init() {
startId: 0,
deviceId: null,
userInfo: [],
flag: true
flag: true,
refreshDisabled: true
},
mounted(){
resolve(this);
let ulistDom = this.$refs.ulist.$el;
console.log(ulistDom);
let self = this;
ulistDom.onscroll = function () {
console.log(ulistDom.offsetHeight+' '+ulistDom.offsetTop);
console.log(ulistDom.scrollTop);
console.log(ulistDom.scrollHeight);
let sum = ulistDom.offsetHeight+ulistDom.scrollTop;
console.log(sum);
//滑到底了
if(sum == ulistDom.scrollHeight){
self.refreshDisabled = false;
ulistDom.style.overflow = 'hidden';
}
}
},
methods:{
getList(){
......@@ -58,6 +75,9 @@ function init() {
onListLoadTap(){
listLoadTap(this);
},
onRefreshFresh(){
refreshFresh(this);
},
//tap <
onBackTap(){
backTap();
......@@ -74,7 +94,7 @@ function initComponentsConfig() {
class: 'custom-list',
list: [],
tip: Vue.t('hijackRecord.noRecordTip'),
pagesize: PAGE_SIZE
// pagesize: PAGE_SIZE
}
},
dialog: {
......@@ -86,6 +106,13 @@ function initComponentsConfig() {
initParam: {
class: 'custom-loading'
}
},
refresh: {
initParam: {
text: ['下拉刷新','松开加载','正在刷新','刷新成功'],
class: 'custom-refersh',
pullUp: false
}
}
}
}
......@@ -140,6 +167,16 @@ function initComponentsConfig() {
self.setStartId(record[record.length-1].id);
}
//更新列表数据
uComponents.hideRefresh(self);
let ulistDom = self.$refs.ulist.$el;
let sum = ulistDom.offsetHeight+ulistDom.scrollTop;
//滑到底了
ulistDom.style.overflow = 'auto';
self.refreshDisabled = true;
// if(sum != ulistDom.scrollHeight){
// ulistDom.style.overflow = 'auto';
// self.refreshDisabled = true;
// }
uComponents.changeList(self, self.getList());
}else{
}
......@@ -171,3 +208,7 @@ mui.back = function(){
function listLoadTap(self) {
resolve(self);
}
function refreshFresh(self){
resolve(self);
}
\ No newline at end of file
......@@ -125,6 +125,9 @@ function init() {
getDevices(self);
//注册监听上报
registerPushListener(self);
if(event.detail.needClose){
iot.navigator.closeAllBesidesItself();
}
});
},
......@@ -635,6 +638,10 @@ async function updateHistoryMap(self, historyRecord){
}
}
console.log(oldHistory);
console.log(newHistory);
iot.storage.setMap('history', newHistory, (response) => {
console.log(res);
}, () => {
......
......@@ -14,7 +14,7 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 list、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']);
uPublic.componentsInit(['u-list','u-dialog','u-loading','u-refresh']);
uPublic.closeSlideBack();
const app = new Vue({
data:{
......@@ -24,10 +24,28 @@ function init() {
startId: 0,
deviceId: null,
userInfo: [],
flag: true
flag: true,
refreshDisabled: false
},
mounted(){
resolve(this);
let ulistDom = this.$refs.ulist.$el;
console.log(ulistDom);
let self = this;
// ulistDom.onscroll = function () {
//
// console.log(ulistDom.offsetHeight+' '+ulistDom.offsetTop);
// console.log(ulistDom.scrollTop);
// console.log(ulistDom.scrollHeight);
//
// let sum = ulistDom.offsetHeight+ulistDom.scrollTop;
// console.log(sum);
// //滑到底了
// if(sum == ulistDom.scrollHeight){
// self.refreshDisabled = false;
// ulistDom.style.overflow = 'hidden';
// }
// }
},
methods:{
getList(){
......@@ -55,7 +73,10 @@ function init() {
this.deviceId = id;
},
onListLoadTap(){
listLoadTap(this);
// listLoadTap(this);
},
onRefreshFresh(){
refreshFresh(this);
},
//tap <
onBackTap(){
......@@ -73,7 +94,7 @@ function initComponentsConfig() {
class: 'custom-list',
list: [],
tip: Vue.t('opendoorRecord.noRecordTip'),
pagesize: PAGE_SIZE
// pagesize: PAGE_SIZE
}
},
dialog: {
......@@ -85,6 +106,13 @@ function initComponentsConfig() {
initParam: {
class: 'custom-loading'
}
},
refresh: {
initParam: {
text: ['下拉刷新','松开加载','正在刷新','刷新成功'],
class: 'custom-refersh',
pullUp: false
}
}
}
}
......@@ -186,7 +214,7 @@ function setListData(self, response){
for(let i=0; i<record.length; i++){
list[i] = {
value: record[i].openId,
title: "ID:"+record[i].openId,
title: ((record[i].mode == 30 ) || (record[i].mode == 5 )) ? '':"ID:"+record[i].openId,
leftImage: '../../resources/image/green_opendoor'+record[i].mode+'_icon.png',
subtitle: Vue.t('opendoorRecord.'+config.openDoorMode[record[i].mode]+''),
rightText: moment(record[i].time).format("YYYY.MM.DD HH:mm:ss")
......@@ -204,8 +232,23 @@ function setListData(self, response){
self.setStartId(record[record.length-1].id);
}
//更新列表数据
uComponents.hideRefresh(self);
self.$refs.urefresh.refreshDisabled = true;
// let ulistDom = self.$refs.ulist.$el;
// let sum = ulistDom.offsetHeight+ulistDom.scrollTop;
//滑到底了
// ulistDom.style.overflow = 'auto';
// self.refreshDisabled = true;
// if(sum != ulistDom.scrollHeight){
// ulistDom.style.overflow = 'auto';
// self.refreshDisabled = true;
// }
uComponents.changeList(self, self.getList());
console.log("in");
}else{
}
}
function refreshFresh(self){
resolve(self);
}
\ No newline at end of file
......@@ -284,6 +284,12 @@ function unbind(self){
},
success: (response) => {
console.log(response);
iot.storage.delMaps(['historyId','history'], (response) => {
console.log("clearMap"+response);
}, (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
});
self.setStateShowFlag(true);
self.setShowMsg(Vue.t('doorlockManage.unbindSuccess'));
self.setUnbindSucceess(true);
......
......@@ -30,6 +30,8 @@ function init() {
userListData: [],
startId: 0,
role: null,
//当前用户id
currentId: null
},
mounted(){
this.extras = iot.navigator.getExtras();
......@@ -151,9 +153,8 @@ function getUserInfoMap() {
}
async function sortUsers(self, data){
let id = [];
try {
id = await getUserInfoMap();
self.currentId = await getUserInfoMap();
}
catch (err) {
console.log(err);
......@@ -161,7 +162,7 @@ async function sortUsers(self, data){
let users = [];
let manage = [];
for(let i=0;i<data.length;i++){
if(data[i].user_id == null ||data[i].role && data[i].user_id != id){
if(data[i].user_id == null ||data[i].role && data[i].user_id != self.currentId){
users.push(data[i]);
}else{
manage.push(data[i]);
......
......@@ -177,6 +177,9 @@ function cloudsLogin(self, id){
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
......
......@@ -13,7 +13,7 @@ iot.ready(init);
function init() {
//通用 dialog、loading组件
uPublic.componentsInit(['u-button','u-dialog','u-loading']);
uPublic.closeSlideBack();
// uPublic.closeSlideBack();
const app = new Vue({
data:{
//配置组件
......
/**
* 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';
import unotify from '../../public/unotify.js';
import uloop from '../../public/uloop.js';
iot.ready(init);
function init() {
const app = new Vue({
data:{
},
mounted(){
unotify.getCid((response) => {
console.log(response);
},(error) => {
console.log(error);
});
mui("#refreshContainer").pullRefresh({
up:{
contentrefresh : "正在加載...",//可選,正在加載狀態時,上拉加載控件上顯示的標題內容
contentnomore:'沒 有 更 多 數 據 了',//可選,請求完畢若沒有更多數據時顯示的提醒內容;
callback: beginLoopTap()
},
down : {
height:50,//可選,默認50.觸發下拉刷新拖動距離,
auto: true,//可選,默認false.首次加載自動下拉刷新一次
contentdown : "下拉可以刷新",//可選,在下拉可刷新狀態時,下拉刷新控件上顯示的標題內容
contentover : "釋放立即刷新",//可選,在釋放可刷新狀態時,下拉刷新控件上顯示的標題內容
contentrefresh : "正在刷新...",//可選,正在刷新狀態時,下拉刷新控件上顯示的標題內容
callback : beginLoopTap()
}
});
},
methods:{
// onBeginLoopTap(){
// beginLoopTap();
// }
}
}).$mount('#app');
}
function beginLoopTap(){
console.log("innnnn");
mui('#refreshContainer').pullRefresh().endPullupToRefresh(true);
}
......@@ -480,3 +480,100 @@
-webkit-animation: none;
animation: none;
}
.u-notification{
.mask(1051,@CUSTOM-BACKDROP-BG);
.u-notification-box{
width: 335px;
height: 300px;
.transform_center();
background-color: #242635;
color: #00ffff;
border: 1px solid;/*no*/
border-radius: 5px;
.u-notification-title{
position: relative;
padding-top: 10px;
font-size: 16px;
text-align: center;
}
.u-notification-close{
position: absolute;
top: 0;
right: 0;
width: 40px;
height: 100%;
padding-top: 10px;
.iconfont(25px);
}
.u-notification-content{
.bgImgSize(100%,147px,"noticeContBg.png",center,auto 100%);
padding-top: 61px;
}
.u-notification-switch{
width: 150px;
margin: 15px auto;
padding: 10px 0;
text-align: center;
font-size: 12px;
.u-notification-switch-handle{
display: inline-block;
vertical-align: middle;
position: relative;
margin-right: 10px;
width: 17px;
height: 17px;
&:before{
position: absolute;
top: 0;
left: 0;
.iconfont(17px);
}
}
&.u-notification-switch-on .u-notification-switch-handle:before{
content: '\e6aa';
}
&.u-notification-switch-off .u-notification-switch-handle:before{
content: '\e6a9';
}
}
.u-notification-button{
li{
.button(235px);
line-height: 1;
margin: 0 auto;
text-align: center;
padding: 10px 0;
}
}
.clearfix{
overflow: hidden;
padding: 0 54px;
}
.leftCont{
float: left;
}
.rightCont{
float: right;
}
.logo{
.bgImgSize(15px,15px,"logo1.png",center,cover);
display: inline-block;
vertical-align: middle;
margin: 0 -8px 0 8px;
}
.smallFont{
color: #00b2b2;
font-size: 16px;
.transform(scale(0.5));
display: inline-block;
vertical-align: middle;
}
.tip{
text-align: center;
font-size: 12px;
margin-top: 9px;
line-height: 16px;
}
}
}
\ No newline at end of file
......@@ -4,11 +4,11 @@
.u-list();
.custom-list{
position: absolute;
top: 44px;
bottom: 0;
left: 0;
height: auto;
// position: absolute;
// top: 44px;
// bottom: 0;
// left: 0;
// height: auto;
.u-list-scroll .u-list-row{
height: 75px;
padding: 0 38px 0 41px;
......@@ -38,3 +38,108 @@
.listNoCont();
}
}
.custom-refersh{
width: 100%;
height: 100%;
position: absolute;
// top: 1.173rem;
bottom: 0;
left: 0;
}
.custom-refersh .u-refresh-content{
width: 100%;
height: 100%;
/*-webkit-transform: translateY(-50px);
transform: translateY(-50px);*/
}
.custom-refersh .refreshContent{
width: 100%;
height: 100%;
background: lightblue;
}
.custom-refersh .u-refresh-pullUp-text{
width: 100%;
height: 50px;
text-align: center;
line-height: 50px;
display: inline-block;
}
.custom-refersh .u-refresh-dropDown-text{
width: 100%;
height: 50px;
text-align: center;
line-height: 50px;
display: inline-block;
}
.custom-refersh .u-refresh-icon{
/*width: 26px;
height: 26px;
display: inline-block;
-webkit-animation: uLoading 1s steps(12, end) infinite;
animation: refresh 1s steps(12, end) infinite;
background-image: url(../resources/image/loading.png);
background-size: cover;
vertical-align: middle;*/
display: none;
}
@-webkit-keyframes refresh {
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 refresh {
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-refresh-status-0 .u-refresh-icon{
width: 26px;
height: 26px;
display: inline-block;
/*background-image: url(../resources/image/arrow.png);*/
/*background-size: cover;
transition: transform 0.6s;*/
}
.u-refresh-status-1 .u-refresh-icon{
width: 26px;
height: 26px;
display: inline-block;
/*background-image: url(../resources/image/arrow.png);*/
/*background-size: cover;*/
/*transform: rotate(180deg);*/
/*transition: transform 0.6s;*/
}
.u-refresh-status-2 .u-refresh-icon{
width: 26px;
height: 26px;
display: inline-block;
-webkit-animation: uLoading 1s steps(12, end) infinite;
animation: refresh 1s steps(12, end) infinite;
background-image: url(../../resources/image/white_loading_icon.png);
background-size: cover;
vertical-align: middle;
}
.u-refresh-status-3 .u-refresh-icon{
display: none;
}
\ No newline at end of file
......@@ -134,3 +134,7 @@
}
.mediaPosition();
.currentUser{
color: @CUSTOM-SWIPELIST-COMPONENT-TITLE-COLOR;
}
@import "../public/public.less";
@import "../public/header.less";
.title{
span{
.iconfont(16px);
margin-right: 12px;
}
font-size: 16px;
text-align: center;
padding-top: 28px;
}
.helpCont{
margin: 28px 35px 0;
li{
margin-bottom: 17px;
color: #91929a;
font-size: 12px;
line-height: 15px;
text-align: justify;
.contSubtitle{
font-size: 14px;
}
p{
margin-bottom: 8px;
}
}
.white{
color: #fff;
}
.contTitle{
font-size: 16px;
margin-top: 28px;
margin-bottom: 20px;
}
}
.u-button();
.custom-button{
.button();
.buttonPosition();
}
.mediaPosition();
\ No newline at end of file
......@@ -254,6 +254,7 @@
@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;
@CUSTOM-SWIPELIST-COMPONENT-TITLE-COLOR: @C_BLUE_4;
//门锁用户列表
@USERLIST-ROW-BG: @BODY-BG-COLOR;
......
{"loading":"loading...","scroll":{"clickToLoadMore":"点击加载更多","loading":"loading..."},"btn":{"confirm":"确定","guideLogin":"账号/密码登录","login":"登录","getCode":"获取验证码","register":"注册","logout":"退出系统","save":"保存","qrcode":"生成二维码","wifiAdd":"开始配置Wi-Fi","connect":"连接","bindUser":"绑定姓名","bind":"我要绑定","reBound":"请重新绑定","saveQRcode":"保存二维码到相册","unbind":"解绑","deleteUser":"删除该用户","qrcodeReset":"重新生成二维码","add":"添加","next":"下一步","iSee":"我知道了","unbindDoorlock":"解绑门锁"},"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":"登陆失败","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":"绑定门锁"},"opendoorRecord":{"noRecordTip":"暂无记录","passwordOpenDoor":"密码开门","fingerprintOpenDoor":"指纹开门","ICcardOpenDoor":"IC卡开门","remoteOpenDoor":"遥控器开门","keyOpenDoor":"钥匙开门","hijackingAlarm":"劫持报警","appRemoteOpenDoor":"app远程开门"},"alarmInfo":{"noInfoTip":"暂无信息","tamperAlarm":"防撬报警","trialAlarm":"试错报警","powerAlarm":"欠电报警"},"remoteOpendoor":{"loading":"远程开门中","passwordInputTip":"请输入远程开门密码","openDoorSuccess":"远程开门成功","openDoorFailure":"远程开门失败","remoteTimeout":"远程开门超时","remoteOpendoorAgain":"请尝试重试","error":{"noPasswordTip":"远程密码不能为空"}},"hijackRecord":{"noRecordTip":"暂无记录","hijackingAlarm":"劫持指纹报警"},"doorlockManage":{"name":"名称","logoutDialogTip":"确定要退出系统吗?","defaultNickname":"门锁","isClearRecord":"清除所有信息","unbindSuccess":"解绑成功","doorbellMsgPush":"门铃消息推送","alarmMsgPush":"报警消息推送","opendoorMsgPush":"开门消息推送","unbindDialogTip":"确认解除绑定","unbindFailue":"解绑失败"},"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":"1.确认设备端进入配网模式(详情操作请见产品说明书)","helpCont2":"2.点击页面下方“开始配置Wi-Fi”按钮,进入WiFi配网页面","helpCont3":"3.输入Wi-Fi密码,点击“连接”,等待锁端响应,至配网成功。","helpCont4":"(提示:如果指纹锁已经绑定过用户,重新绑定成功后会清除之前所有绑定信息)"},"wifiAdd":{"unbindWifiTip":"当前无Wi-Fi","wifiBinding":"配网中","wifiBindSuccess":"配网成功,请激活设备","deviceActivating":"设备激活中","deviceActivateSuccess":"激活成功","deviceActivateFailure":"激活失败","bindTimeout":"连接超时","passwordInputTip":"请输入Wi-Fi密码","remindTitle":"配置Wi-Fi提醒:","remindCont1":"1. 请确保Wi-Fi信号良好","remindCont2":"2. 本产品暂不支持5GHz无线网络","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":"关联开锁信息","opendoorRecord":"历史开门记录","unbindDialogTip":"<span></span>解绑后,该用户不能对门锁下的信息进行查看","deleteUserDialogTip":"删除后,用户对应的开锁id取消关联,同时失去信息查看权限。","unbindSuccess":"解绑成功","unbindFailue":"解绑失败","guideStep1Tip1":"邀请绑定成功","guideStep1Tip2":"(可查看开门记录,报警记录等<br>相关门锁信息)","guideStep3Tip":"绑定后看可了解<br>该用户的开门情况","deleteSuccess":"删除成功","deleteFailure":"删除失败","defaultName":"管理员"},"inviteBind":{"qrcodeExpireTip":"二维码已过期,请重新生成","title":"注意事项:","cont1":"1.被邀请的用户选择添加设备页面中的扫二维码方式进行添加门锁","cont2":"2.长按二维码保存为图片,发送给被邀请用户,用户通过长按识别二维码","cont3":"3.有效时间10分钟,失效后请点击“重新生成二维码"},"unlockInfo":{"bindUnlockInfo":"已关联的开锁信息","noInfoTip":"当前无绑定开锁ID,请添加","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":"暂无产品型号"}}
\ No newline at end of file
{"loading":"loading...","scroll":{"clickToLoadMore":"点击加载更多","loading":"loading..."},"btn":{"confirm":"确定","guideLogin":"账号/密码登录","login":"登录","getCode":"获取验证码","register":"注册","logout":"退出系统","save":"保存","qrcode":"生成二维码","wifiAdd":"开始配置Wi-Fi","connect":"连接","bindUser":"绑定姓名","bind":"我要绑定","reBound":"请重新绑定","saveQRcode":"保存二维码到相册","unbind":"解绑","deleteUser":"删除该用户","qrcodeReset":"重新生成二维码","add":"添加","next":"下一步","iSee":"我知道了","unbindDoorlock":"解绑门锁"},"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":"登陆失败","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":"绑定门锁"},"opendoorRecord":{"noRecordTip":"暂无记录","passwordOpenDoor":"密码开门","fingerprintOpenDoor":"指纹开门","ICcardOpenDoor":"IC卡开门","remoteOpenDoor":"遥控器开门","keyOpenDoor":"钥匙开门","hijackingAlarm":"劫持报警","appRemoteOpenDoor":"app远程开门"},"alarmInfo":{"noInfoTip":"暂无信息","tamperAlarm":"防撬报警","trialAlarm":"试错报警","powerAlarm":"欠电报警"},"remoteOpendoor":{"loading":"远程开门中","passwordInputTip":"请输入远程开门密码","openDoorSuccess":"远程开门成功","openDoorFailure":"远程开门失败","remoteTimeout":"远程开门超时","remoteOpendoorAgain":"请尝试重试","error":{"noPasswordTip":"远程密码不能为空"}},"hijackRecord":{"noRecordTip":"暂无记录","hijackingAlarm":"劫持指纹报警"},"doorlockManage":{"name":"名称","logoutDialogTip":"确定要退出系统吗?","defaultNickname":"门锁","isClearRecord":"清除所有信息","unbindSuccess":"解绑成功","doorbellMsgPush":"门铃消息推送","alarmMsgPush":"报警消息推送","opendoorMsgPush":"开门消息推送","unbindDialogTip":"确认解除绑定","unbindFailue":"解绑失败"},"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":"1.确认设备端进入配网模式(详情操作请见产品说明书)","helpCont2":"2.点击页面下方“开始配置Wi-Fi”按钮,进入WiFi配网页面","helpCont3":"3.输入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无线网络","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":"关联开锁信息","opendoorRecord":"历史开门记录","unbindDialogTip":"<span></span>解绑后,该用户不能对门锁下的信息进行查看","deleteUserDialogTip":"删除后,用户对应的开锁id取消关联,同时失去信息查看权限。","unbindSuccess":"解绑成功","unbindFailue":"解绑失败","guideStep1Tip1":"邀请绑定成功","guideStep1Tip2":"(可查看开门记录,报警记录等<br>相关门锁信息)","guideStep3Tip":"绑定后看可了解<br>该用户的开门情况","deleteSuccess":"删除成功","deleteFailure":"删除失败","defaultName":"管理员"},"inviteBind":{"qrcodeExpireTip":"二维码已过期,请重新生成","title":"绑定方法:","cont1":"1.受邀用户登录“U智锁”APP","cont2":"2.选择“扫描绑定设备”","cont3":"3.扫描上方二维码完成绑定"},"unlockInfo":{"bindUnlockInfo":"已关联的开锁信息","noInfoTip":"当前无绑定开锁ID,请添加","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":"暂无产品型号"}}
\ No newline at end of file
......@@ -25,7 +25,10 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.alarmInfo') }}</p>
</div>
<u-refresh ref="urefresh" :disabled="refreshDisabled" :init-param="componentsConfig.refresh.initParam"
v-on:u-refresh-fresh = "onRefreshFresh">
<u-list ref="ulist" :init-param="componentsConfig.alarmInfoList.initParam" v-on:u-list-load-tap="onListLoadTap()"></u-list>
</u-refresh>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -1632,3 +1632,153 @@ p {
-webkit-animation: none;
animation: none;
}
.u-notification {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1051;
background-color: rgba(36, 38, 53, 0.9);
}
.u-notification .u-notification-box {
width: 8.933rem;
height: 8rem;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
background-color: #242635;
color: #00ffff;
border: 1px solid;
border-radius: 0.133rem;
}
.u-notification .u-notification-box .u-notification-title {
position: relative;
padding-top: 0.267rem;
font-size: 0.427rem;
text-align: center;
}
.u-notification .u-notification-box .u-notification-close {
position: absolute;
top: 0;
right: 0;
width: 1.067rem;
height: 100%;
padding-top: 0.267rem;
font-family: iconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.u-notification .u-notification-box .u-notification-content {
width: 100%;
height: 3.92rem;
background: url("../../resources/image/noticeContBg.png") no-repeat center;
-webkit-background-size: auto 100%;
background-size: auto 100%;
padding-top: 1.627rem;
}
.u-notification .u-notification-box .u-notification-switch {
width: 4rem;
margin: 0.4rem auto;
padding: 0.267rem 0;
text-align: center;
font-size: 0.32rem;
}
.u-notification .u-notification-box .u-notification-switch .u-notification-switch-handle {
display: inline-block;
vertical-align: middle;
position: relative;
margin-right: 0.267rem;
width: 0.453rem;
height: 0.453rem;
}
.u-notification .u-notification-box .u-notification-switch .u-notification-switch-handle:before {
position: absolute;
top: 0;
left: 0;
font-family: iconfont;
font-size: 0.453rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.u-notification .u-notification-box .u-notification-switch.u-notification-switch-on .u-notification-switch-handle:before {
content: '\e6aa';
}
.u-notification .u-notification-box .u-notification-switch.u-notification-switch-off .u-notification-switch-handle:before {
content: '\e6a9';
}
.u-notification .u-notification-box .u-notification-button li {
width: 6.267rem;
border-radius: 0.133rem;
background-color: transparent;
border: 1px solid;
color: #00ffff;
font-size: 0.427rem;
line-height: 1;
margin: 0 auto;
text-align: center;
padding: 0.267rem 0;
}
.u-notification .u-notification-box .u-notification-button li:active {
background-color: #153D4C;
}
.u-notification .u-notification-box .u-notification-button li.disabled {
background-color: transparent;
color: #999;
}
.u-notification .u-notification-box .clearfix {
overflow: hidden;
padding: 0 1.44rem;
}
.u-notification .u-notification-box .leftCont {
float: left;
}
.u-notification .u-notification-box .rightCont {
float: right;
}
.u-notification .u-notification-box .logo {
width: 0.4rem;
height: 0.4rem;
background: url("../../resources/image/logo1.png") no-repeat center;
-webkit-background-size: cover;
background-size: cover;
display: inline-block;
vertical-align: middle;
margin: 0 -0.213rem 0 0.213rem;
}
.u-notification .u-notification-box .smallFont {
color: #00b2b2;
font-size: 0.427rem;
-webkit-transform: scale(0.5);
transform: scale(0.5);
display: inline-block;
vertical-align: middle;
}
.u-notification .u-notification-box .tip {
text-align: center;
font-size: 0.32rem;
margin-top: 0.24rem;
line-height: 0.427rem;
}
\ No newline at end of file
......@@ -25,7 +25,10 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.hijackRecord') }}</p>
</div>
<u-refresh ref="urefresh" :disabled="refreshDisabled" :init-param="componentsConfig.refresh.initParam"
v-on:u-refresh-fresh = "onRefreshFresh">
<u-list ref="ulist" :init-param="componentsConfig.hijackRecordList.initParam" v-on:u-list-load-tap="onListLoadTap()"></u-list>
</u-refresh>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -22,7 +22,7 @@
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onMyInfoTap">&#xe69b;</v-touch>
<v-touch tag="span" class="header-left icon" v-on:tap="onMyInfoTap">&#xe6bf;</v-touch>
<p>{{ $t('title.device') }}</p>
</div>
<div class="content">
......
......@@ -25,7 +25,10 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.opendoorRecord') }}</p>
</div>
<u-refresh ref="urefresh" :disabled="refreshDisabled" :init-param="componentsConfig.refresh.initParam"
v-on:u-refresh-fresh = "onRefreshFresh">
<u-list ref="ulist" :init-param="componentsConfig.opendoorRecordList.initParam" v-on:u-list-load-tap="onListLoadTap()"></u-list>
</u-refresh>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -532,14 +532,6 @@ p {
text-align: center;
}
.custom-list {
position: absolute;
top: 1.173rem;
bottom: 0;
left: 0;
height: auto;
}
.custom-list .u-list-scroll .u-list-row {
height: 2rem;
padding: 0 1.013rem 0 1.093rem;
......@@ -587,3 +579,110 @@ p {
font-size: 0.427rem;
padding-top: 2.347rem;
}
.custom-refersh {
width: 100%;
height: 100%;
position: absolute;
bottom: 0;
left: 0;
}
.custom-refersh .u-refresh-content {
width: 100%;
height: 100%;
/*-webkit-transform: translateY(-50px);
transform: translateY(-50px);*/
}
.custom-refersh .refreshContent {
width: 100%;
height: 100%;
background: lightblue;
}
.custom-refersh .u-refresh-pullUp-text {
width: 100%;
height: 1.333rem;
text-align: center;
line-height: 1.333rem;
display: inline-block;
}
.custom-refersh .u-refresh-dropDown-text {
width: 100%;
height: 1.333rem;
text-align: center;
line-height: 1.333rem;
display: inline-block;
}
.custom-refersh .u-refresh-icon {
/*width: 26px;
height: 26px;
display: inline-block;
-webkit-animation: uLoading 1s steps(12, end) infinite;
animation: refresh 1s steps(12, end) infinite;
background-image: url(../resources/image/loading.png);
background-size: cover;
vertical-align: middle;*/
display: none;
}
@-webkit-keyframes refresh {
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 refresh {
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-refresh-status-0 .u-refresh-icon {
width: 0.693rem;
height: 0.693rem;
display: inline-block;
/*background-image: url(../resources/image/arrow.png);*/
/*background-size: cover;
transition: transform 0.6s;*/
}
.u-refresh-status-1 .u-refresh-icon {
width: 0.693rem;
height: 0.693rem;
display: inline-block;
/*background-image: url(../resources/image/arrow.png);*/
/*background-size: cover;*/
/*transform: rotate(180deg);*/
/*transition: transform 0.6s;*/
}
.u-refresh-status-2 .u-refresh-icon {
width: 0.693rem;
height: 0.693rem;
display: inline-block;
-webkit-animation: uLoading 1s steps(12, end) infinite;
animation: refresh 1s steps(12, end) infinite;
background-image: url(../../resources/image/white_loading_icon.png);
background-size: cover;
vertical-align: middle;
}
.u-refresh-status-3 .u-refresh-icon {
display: none;
}
\ No newline at end of file
......@@ -33,7 +33,7 @@
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 == (null || '')? $t('userList.defaultName'):item.title}}</p>
<p class="user-list-title" v-bind:class="{'currentUser': userListData[index].user_id == currentId }" >{{ item.title == (null || '')? $t('userList.defaultName'):item.title}}</p>
<p class="user-list-subtitle">
<img class="user-list-subimage" v-if="item.image && item.role != 0" v-bind:src="item.image">
<span v-if="item.subtitle">{{ item.subtitle }}</span>
......
......@@ -807,3 +807,7 @@ p {
bottom: 1.2rem;
}
}
.currentUser {
color: #00ffff;
}
\ 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('../../resources/font/iconfont.ttf') format('truetype');
}
@font-face {
font-family: 'tipFont';
src: url('../../resources/font/tipFont.ttf') format('truetype');
}
html,
body {
width: 100%;
height: 100%;
}
body {
-webkit-user-select: none;
user-select: none;
color: #fff;
font-size: 0.373rem;
background-color: #242635;
}
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: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
right: 0;
}
.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: loading 1s steps(12, end) infinite;
animation: loading 1s steps(12, end) infinite;
}
.u-loading .u-loading-box .u-loading-text {
color: #fff;
margin-top: 0.32rem;
text-align: center;
}
@-webkit-keyframes loading {
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 loading {
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);
}
}
.custom-loading {
background-color: rgba(36, 38, 53, 0.9);
}
.custom-loading .u-loading-box {
color: #00ffff;
}
.custom-loading .u-loading-box .u-loading-icon {
font-size: 0.427rem;
margin: 0 auto;
width: 3.750em;
height: 3.750em;
position: relative;
background: none;
-webkit-animation: none;
animation: none;
}
.custom-loading .u-loading-box .u-loading-icon:before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 0.5em;
height: 0.5em;
margin: auto;
border-radius: 50%;
-webkit-transform: translateZ(0) scale(0.55);
transform: translateZ(0) scale(0.55);
-webkit-animation: loading 1.3s infinite linear;
animation: loading 1.3s infinite linear;
}
.custom-loading .u-loading-box .u-loading-text {
color: inherit;
font-size: 0.427rem;
margin-top: 0.533rem;
}
@-webkit-keyframes loading {
0%, 100% {
-webkit-box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
}
12.5% {
-webkit-box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
}
25% {
-webkit-box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
}
37.5% {
-webkit-box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
}
50% {
-webkit-box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
}
62.5% {
-webkit-box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
}
75% {
-webkit-box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
}
87.5% {
-webkit-box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
}
}
@keyframes loading {
0%, 100% {
-webkit-box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
}
12.5% {
-webkit-box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
}
25% {
-webkit-box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
}
37.5% {
-webkit-box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
}
50% {
-webkit-box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
}
62.5% {
-webkit-box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
}
75% {
-webkit-box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
}
87.5% {
-webkit-box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
}
}
.u-dialog {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1051;
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 {
background-color: rgba(36, 38, 53, 0.9);
}
.custom-dialog .u-dialog-box {
width: 8.933rem;
border-radius: 0.133rem;
background-color: transparent;
border: 1px solid;
color: #00ffff;
padding-bottom: 0.4rem;
}
.custom-dialog .u-dialog-box .u-dialog-content {
width: 100%;
height: 4.213rem;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-orient: vertical;
-webkit-flex-direction: column;
flex-direction: column;
-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.427rem;
line-height: 0.64rem;
padding: 0 0.587rem;
}
.custom-dialog .u-dialog-box .u-dialog-content span {
width: 1.36rem;
height: 1.36rem;
background: url("../../resources/image/green_unbind_icon.png") no-repeat center;
-webkit-background-size: cover;
background-size: cover;
margin-bottom: 0.32rem;
display: block;
}
.custom-dialog .u-dialog-box .u-dialog-content:after {
display: none;
}
.custom-dialog .u-dialog-box .u-dialog-button {
border-spacing: 0.667rem 0;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel,
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm {
width: 3.467rem;
border-radius: 0.133rem;
background-color: transparent;
border: 1px solid;
color: #00ffff;
font-size: 0.427rem;
padding: 0.267rem 0;
}
.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: #153D4C;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel.disabled,
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-confirm.disabled {
background-color: transparent;
color: #999;
}
.custom-dialog .u-dialog-box .u-dialog-button .u-dialog-cancel:after {
display: none;
}
.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: #00ffff;
font-size: 0.427rem;
width: 1.467rem;
line-height: 1.173rem;
display: block;
}
.header span:active {
opacity: 0.5;
}
.header .header-left {
float: left;
padding-left: 0.213rem;
}
.header .header-right {
float: right;
padding-right: 0.213rem;
text-align: right;
}
.header .icon {
color: #fff;
font-family: iconfont;
font-size: 0.667rem;
-webkit-font-smoothing: antialiased;
line-height: 1.173rem;
}
.header .icon.header-left {
padding-left: 0.133rem;
}
.header .icon.header-right {
padding-right: 0.133rem;
}
.header ~ .content {
padding-top: 1.173rem;
}
.title {
font-size: 0.427rem;
text-align: center;
padding-top: 0.747rem;
}
.title span {
font-family: iconfont;
font-size: 0.427rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
margin-right: 0.32rem;
}
.helpCont {
margin: 0.747rem 0.933rem 0;
}
.helpCont li {
margin-bottom: 0.453rem;
color: #91929a;
font-size: 0.32rem;
line-height: 0.4rem;
text-align: justify;
}
.helpCont li .contSubtitle {
font-size: 0.373rem;
}
.helpCont li p {
margin-bottom: 0.213rem;
}
.helpCont .white {
color: #fff;
}
.helpCont .contTitle {
font-size: 0.427rem;
margin-top: 0.747rem;
margin-bottom: 0.533rem;
}
.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;
}
.custom-button {
width: 7.333rem;
border-radius: 0.133rem;
background-color: transparent;
border: 1px solid;
color: #00ffff;
font-size: 0.427rem;
position: absolute;
bottom: 1.733rem;
left: 0;
right: 0;
}
.custom-button:active {
background-color: #153D4C;
}
.custom-button.disabled {
background-color: transparent;
color: #999;
}
@media (min-width: 360px /*no*/) and (max-height: 570px /*no*/) {
.custom-button {
bottom: 1.2rem;
}
}
\ No newline at end of file
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