Commit 1c44f093 by wangying

项目版本重新上传

parent b1348d9c
1.0.0 / 2017-09-13 1.0.4 / 2017-09-20
================== ==================
* 1.上传项目开发环境 * 1.修改生成绑定二维码页面样式
\ No newline at end of file
1.0.3 / 2017-09-18
==================
* 1.上传用户列表、绑定用户、loading+成功/失败页面样式
1.0.2 / 2017-09-15
==================
* 1.上传设备控制、记录列表、门锁管理、修改名称页面样式
1.0.1 / 2017-09-15
==================
* 1.上传项目页面样式
1.0.0 / 2017-09-13
==================
* 1.上传项目开发环
\ No newline at end of file
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
"hammerjs": "2.0.8", "hammerjs": "2.0.8",
"iscroll": "5.2.0", "iscroll": "5.2.0",
"moment": "^2.18.1", "moment": "^2.18.1",
"qrcode": "^0.9.0",
"ugen-components": "^0.1.0", "ugen-components": "^0.1.0",
"underscore": "1.8.3", "underscore": "1.8.3",
"vue": "2.2.6", "vue": "2.2.6",
......
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
"remoteOpendoor":{ "remoteOpendoor":{
"passwordInputTip": "请输入远程开门密码", "passwordInputTip": "请输入远程开门密码",
"error": { "error": {
"noPasswordTip": "远程密码不能为空"
} }
}, },
"hijackRecord":{ "hijackRecord":{
...@@ -104,16 +104,12 @@ ...@@ -104,16 +104,12 @@
"doorlockManage":{ "doorlockManage":{
"noDeviceTip": "暂无设备", "noDeviceTip": "暂无设备",
"deleteDialogTip": "<span>{0}</span>将被删除", "deleteDialogTip": "<span>{0}</span>将被删除",
"logoutDialogTip": "确定要退出系统吗?", "logoutDialogTip": "确定要退出系统吗?"
"deleteSuccess": "删除成功",
"deleteFailue": "删除失败",
"defaultNickname": "门锁"
}, },
"editName":{ "editName":{
"nameInputTip": "请输入门锁名称", "nameInputTip": "请输入门锁名称",
"editNameSuccess": "名字修改成功",
"editNameFailue": "名字修改失败",
"error": { "error": {
} }
}, },
"qrcode":{ "qrcode":{
...@@ -125,9 +121,7 @@ ...@@ -125,9 +121,7 @@
}, },
"addDevice": { "addDevice": {
"scanCodeAdd": "扫描绑定设备", "scanCodeAdd": "扫描绑定设备",
"wifiAdd": "配置Wi-Fi", "wifiAdd": "配置Wi-Fi"
"scanCodeSuccess": "扫描成功",
"scanCodeFailue": "扫描失败"
}, },
"wifiAddHelp": { "wifiAddHelp": {
"helpTitle": "配置Wi-Fi说明:", "helpTitle": "配置Wi-Fi说明:",
......
...@@ -16,7 +16,7 @@ const iot = new UIOT({ ...@@ -16,7 +16,7 @@ const iot = new UIOT({
appId: '' appId: ''
}, },
cloud: { cloud: {
url: 'http://192.168.2.96:20000' url: 'http://192.168.2.97:20007'
}, },
plugin: { plugin: {
log: { log: {
......
...@@ -18,15 +18,7 @@ function init() { ...@@ -18,15 +18,7 @@ function init() {
//配置组件 //配置组件
componentsConfig: initComponentsConfig() componentsConfig: initComponentsConfig()
}, },
mounted(){ mounted(){
openScanCode();
iot.utils.scanBarcode({
data: {
id: 'bcid'
},
success: (response) => {},
error: (error) => {}
});
}, },
methods:{ methods:{
//tap < //tap <
...@@ -56,28 +48,4 @@ function initComponentsConfig() { ...@@ -56,28 +48,4 @@ function initComponentsConfig() {
//tap < //tap <
function backTap(){ function backTap(){
iot.navigator.back(); iot.navigator.back();
} }
\ No newline at end of file
function openScanCode(){
iot.utils.scanBarcode({
data: {
id: 'scanId'
},
success: (response) => {
console.log(response);
//扫描成功
uComponents.openAlert(self, Vue.t('addDevice.scanCodeSuccess'), {
text: Vue.t('btn.confirm'), callback: function () {
}
});
},
error: (error) => {
console.log(error);
//扫描失败
uComponents.openAlert(self, Vue.t('addDevice.scanCodeFailue'), {
text: Vue.t('btn.confirm'), callback: function () {
}
});
}
});
}
...@@ -15,7 +15,6 @@ function init() { ...@@ -15,7 +15,6 @@ function init() {
uPublic.componentsInit(['u-text','u-button','u-commstatus-loading','u-dialog','u-loading']); uPublic.componentsInit(['u-text','u-button','u-commstatus-loading','u-dialog','u-loading']);
const app = new Vue({ const app = new Vue({
data:{ data:{
textWiFiName: null,
textPassword: null, textPassword: null,
textErrorTip: null, textErrorTip: null,
textLoading: 'loading...', textLoading: 'loading...',
...@@ -23,29 +22,9 @@ function init() { ...@@ -23,29 +22,9 @@ function init() {
//配置组件 //配置组件
componentsConfig: initComponentsConfig() componentsConfig: initComponentsConfig()
}, },
mounted(){ mounted(){
iot.business.sds.findWifi({
data: {
// model: 'model',
// ssid: 'ssid',
wifiPwd: 'wifiPwd',
timeout: 20000
},
success: (response) => {
console.log(response);
},
error: (error) => {
console.log(error);
}
});
}, },
methods:{ methods:{
getTextPassword(){
return this.textPassword;
},
setTextPassword(pwd){
this.textPassword = pwd;
},
getTextLoading(){ getTextLoading(){
return this.textLoading; return this.textLoading;
}, },
......
...@@ -63,18 +63,8 @@ function backTap(){ ...@@ -63,18 +63,8 @@ function backTap(){
//tap 开始配置Wi-Fi //tap 开始配置Wi-Fi
function wifiAddButtonTap(){ function wifiAddButtonTap(){
// iot.navigator.openWindow({ iot.navigator.openWindow({
// url: './wifiAdd.html', url: './wifiAdd.html',
// id: 'wifiAdd' id: 'wifiAdd'
// }); });
iot.business.sds.wifiDeviceConfig({
success: function (response) {
console.log('wifiDeviceConfig success');
console.log(response);
},
error: function (error) {
console.log('wifiDeviceConfig error');
console.log(error);
}
});
} }
\ No newline at end of file
...@@ -81,7 +81,6 @@ ...@@ -81,7 +81,6 @@
} }
function changeList(self, list) { function changeList(self, list) {
console.log(list);
self.list = list; self.list = list;
self.setLoadShowFlag(list.length - self.list.length); self.setLoadShowFlag(list.length - self.list.length);
self.$nextTick(function () { self.$nextTick(function () {
......
/**
* v_hijackRecord.js
* Version: 0.1
* User: wy
* Date: 2017-09-06
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 劫持记录页面
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 list、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']);
const app = new Vue({
data:{
//配置组件
componentsConfig: initComponentsConfig()
},
mounted(){
},
methods:{
//tap <
onBackTap(){
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
hijackRecordList:{
initParam: {
class: 'custom-list',
list: [
{value: 1, leftImage: '../../resources/image/green_opendoor2_icon.png', title:'测试用户02', subtitle: '劫持指纹开门', rightText: '2017.07.1306:10:10'},
{value: 2, leftImage: '../../resources/image/green_opendoor2_icon.png', title:'ID:117', subtitle: '劫持指纹开门', rightText: '2017.07.0322:57:44'}
],
tip: Vue.t('hijackRecord.noRecordTip')
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
}
}
//tap <
function backTap(){
iot.navigator.back();
}
\ No newline at end of file
/**
* v_opendoorRecord.js
* Version: 0.1
* User: wy
* Date: 2017-09-06
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 开门记录页面
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 list、dialog、loading组件
uPublic.componentsInit(['u-list','u-dialog','u-loading']);
const app = new Vue({
data:{
//配置组件
componentsConfig: initComponentsConfig()
},
mounted(){
},
methods:{
//tap <
onBackTap(){
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
opendoorRecordList:{
initParam: {
class: 'custom-list',
list: [
{value: 1, leftImage: '../../resources/image/green_opendoor0_icon.png', title:'', subtitle: '手机远程开门', rightText: '2017.08.0310:29:53'},
{value: 2, leftImage: '../../resources/image/green_opendoor0_icon.png', title:'', subtitle: '手机远程开门', rightText: '2017.08.0310:27:56'},
{value: 3, leftImage: '../../resources/image/green_opendoor1_icon.png', title:'ID:6', subtitle: '指纹开门', rightText: '2017.08.0310:25:47'},
{value: 4, leftImage: '../../resources/image/green_opendoor0_icon.png', title:'', subtitle: '手机远程开门', rightText: '2017.07.3117:13:03',},
{value: 5, leftImage: '../../resources/image/green_opendoor2_icon.png', title:'测试用户02', subtitle: '劫持指纹开门', rightText: '2017.07.3117:10:10'},
{value: 6, leftImage: '../../resources/image/green_opendoor3_icon.png', title:'测试用户', subtitle: '密码开门', rightText: '2017.07.3117:09:59'},
{value: 7, leftImage: '../../resources/image/green_opendoor2_icon.png', title:'ID:117', subtitle: '劫持指纹开门', rightText: '2017.07.3117:05:19'},
{value: 8, leftImage: '../../resources/image/green_opendoor3_icon.png', title:'测试用户', subtitle: '密码开门', rightText: '2017.07.3117:03:50',}
],
tip: Vue.t('opendoorRecord.noRecordTip')
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
}
}
//tap <
function backTap(){
iot.navigator.back();
}
\ No newline at end of file
...@@ -15,22 +15,14 @@ function init() { ...@@ -15,22 +15,14 @@ function init() {
uPublic.componentsInit(['u-text','u-button','u-dialog','u-loading']); uPublic.componentsInit(['u-text','u-button','u-dialog','u-loading']);
const app = new Vue({ const app = new Vue({
data:{ data:{
textName: iot.navigator.getExtras().nickName, textName: '门锁-001',
textErrorTip: null, textErrorTip: null,
//配置组件 //配置组件
componentsConfig: initComponentsConfig(), componentsConfig: initComponentsConfig()
extras: {}
}, },
mounted(){ mounted(){
this.extras = iot.navigator.getExtras();
}, },
methods:{ methods:{
getTextName(){
return this.textName;
},
setTextName(text){
this.textName = text;
},
onNameChange(text){ onNameChange(text){
nameChange(this,text); nameChange(this,text);
}, },
...@@ -40,7 +32,7 @@ function init() { ...@@ -40,7 +32,7 @@ function init() {
}, },
//tap 保存 //tap 保存
onSaveButtonTap(){ onSaveButtonTap(){
saveButtonTap(this); saveButtonTap();
} }
} }
}).$mount('#app'); }).$mount('#app');
...@@ -86,34 +78,6 @@ function backTap(){ ...@@ -86,34 +78,6 @@ function backTap(){
} }
//tap 保存 //tap 保存
function saveButtonTap(self){ function saveButtonTap(){
uComponents.showLoading(self); iot.navigator.back();
iot.business.device.setNickname({
data: {
sds: true,
uuid: self.extras.uuid,
model: self.extras.model,
nickname: self.textName
},
success: (response) => {
console.log("inn");
uComponents.hideLoading(self);
uComponents.openAlert(self, Vue.t('editName.editNameSuccess'), {
text: Vue.t('btn.confirm'), callback: function () {
iot.navigator.back();
}
});
},
error: (error) => {
uComponents.hideLoading(self);
uComponents.openAlert(self, Vue.t('editName.editNameFailue'), {
text: Vue.t('btn.confirm'), callback: function () {
iot.navigator.back();
}
});
},
complete: () => {
uComponents.hideLoading(self);
}
});
} }
\ No newline at end of file
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
*/ */
import {iot, uPublic, uComponents} from '../../public/public.js'; import {iot, uPublic, uComponents} from '../../public/public.js';
import {projectMethods} from '../../public/components.js';
iot.ready(init); iot.ready(init);
function init() { function init() {
...@@ -19,71 +18,11 @@ function init() { ...@@ -19,71 +18,11 @@ function init() {
const app = new Vue({ const app = new Vue({
data:{ data:{
//配置组件 //配置组件
componentsConfig: initComponentsConfig(), componentsConfig: initComponentsConfig()
//设备列表 },
deviceList: [], mounted(){
showDeviceList: []
},
mounted(){
// iot.business.user.reg({
// data:{
// username: '18679022601',
// pwd: '123',
// vcode: '666666'
// },
// success: (response) => {
// console.log('注册成功');
// console.log(response);
// },
// error: (err) => {
// console.log(err);
// },
// complete: () => {
//
// }
// });
uComponents.showLoading(this);
iot.business.user.login({
data: {
// sds: true,
username: '18679022601',
pwd: '123'
// userinfo: {
// username: '"18679022601"',
//// pwd: '123'
// nickname: 'zhu',
// head: 'head',
// utoken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjEwMCwiaWF0IjoxNTA1ODE4NDI5LCJleHAiOjE1MDY2ODI0Mjl9.Bhl9TTcT1PUZZdmcPobE3f4OA2IgSURmtHyT2yluBFA'
// }
},
success: (response) => {
console.log(response);
getDeviceList(this);
},
error: (error) => {
console.log(error);
},
complete: () => {}
});
// getDeviceList(this);
// window.addEventListener('returnPage',function(event){
// alert("returnPage");
// });
}, },
methods:{ methods:{
getDeviceList(){
return this.deviceList;
},
setDeviceList(list){
this.deviceList = list;
},
getShowDeviceList(){
return this.showDeviceList;
},
setShowDeviceList(list){
this.showDeviceList = list;
},
//tap < //tap <
onBackTap(){ onBackTap(){
backTap(); backTap();
...@@ -114,8 +53,12 @@ function initComponentsConfig() { ...@@ -114,8 +53,12 @@ function initComponentsConfig() {
doorlockList: { doorlockList: {
initParam: { initParam: {
class: '', class: '',
list: [], list: [{value: 1,'leftImage': '../../resources/image/device.png','title': '门锁-001','buttons': [{'icon': '&#xe728;'},{'icon': '&#xe61b;'},{'icon': '&#xe63e;'},{'icon': '&#xe742;'}]},
tip: Vue.t('doorlockManage.noDeviceTip') {value: 2,'leftImage': '../../resources/image/device.png','title': '门锁-002','buttons': [{'icon': '&#xe728;'},{'icon': '&#xe61b;'},{'icon': '&#xe63e;'},{'icon': '&#xe742;'}]},
{value: 3,'leftImage': '../../resources/image/device.png','title': '门锁-003','buttons': [{'icon': '&#xe728;'},{'icon': '&#xe61b;'},{'icon': '&#xe63e;'},{'icon': '&#xe742;'}]},
{value: 4,'leftImage': '../../resources/image/device.png','title': '门锁-004','buttons': [{'icon': '&#xe728;'},{'icon': '&#xe61b;'},{'icon': '&#xe63e;'},{'icon': '&#xe742;'}]},
{value: 5,'leftImage': '../../resources/image/device.png','title': '门锁-005','buttons': [{'icon': '&#xe728;'},{'icon': '&#xe61b;'},{'icon': '&#xe63e;'},{'icon': '&#xe742;'}]}],
tip: Vue.t('doorlockManage.noDeviceTip')
} }
}, },
//退出系统 button 参数 //退出系统 button 参数
...@@ -138,45 +81,6 @@ function initComponentsConfig() { ...@@ -138,45 +81,6 @@ function initComponentsConfig() {
} }
} }
//获取所有的设备
function getDeviceList(self){
console.log("innn");
iot.business.device.getList({
data: {
sds: true,
// product_id: 'product_id',
// parent_id: 0,
// start_id: 0,
// number: 10
},
success: (response) => {
console.log(response);
let data = response.data;
if(data.length == 0 || data.hasOwnProperty('msg')){
return false;
}else{
self.setDeviceList(data);
for(let i=0; i<data.length; i++){
self.getShowDeviceList().push({
value: data[i].uuid,
leftImage: '../../resources/image/device.png',
title: (data[i].nickName && data[i].nickName != 'null') ? data[i].nickName : Vue.t('doorlockManage.defaultNickname'),
buttons: [{'icon': '&#xe728;'},{'icon': '&#xe61b;'},{'icon': '&#xe63e;'},{'icon': '&#xe742;'}]
});
}
projectMethods.changeGridList(self, self.getShowDeviceList());
uComponents.hideLoading(self);
}
},
error: (error) => {
console.log(error);
},
complete: () => {
uComponents.hideLoading(self);
}
});
}
//tap < //tap <
function backTap(){ function backTap(){
iot.navigator.back(); iot.navigator.back();
...@@ -204,22 +108,14 @@ function doorlockListButtonTap(self, value, buttonValue) { ...@@ -204,22 +108,14 @@ function doorlockListButtonTap(self, value, buttonValue) {
if(buttonValue == '0'){ if(buttonValue == '0'){
iot.navigator.openWindow({ iot.navigator.openWindow({
url: './editName.html', url: './editName.html',
id: 'editName', id: 'editName'
extras: {
uuid: self.getDeviceList()[value].uuid,
model: self.getDeviceList()[value].model,
nickName: self.getDeviceList()[value].nickName
}
}); });
} }
//tap 生成绑定二维码 //tap 生成绑定二维码
else if(buttonValue == '1'){ else if(buttonValue == '1'){
iot.navigator.openWindow({ iot.navigator.openWindow({
url: './qrcode.html', url: './qrcode.html',
id: 'qrcode', id: 'qrcode'
extras: {
uuid: self.getDeviceList()[value].uuid
}
}); });
} }
//tap ID-姓名绑定 //tap ID-姓名绑定
...@@ -232,12 +128,8 @@ function doorlockListButtonTap(self, value, buttonValue) { ...@@ -232,12 +128,8 @@ function doorlockListButtonTap(self, value, buttonValue) {
//tap 删除门锁 //tap 删除门锁
else if(buttonValue == '3'){ else if(buttonValue == '3'){
uComponents.openConfirm(self, Vue.t('doorlockManage.deleteDialogTip', ['门锁-001']), uComponents.openConfirm(self, Vue.t('doorlockManage.deleteDialogTip', ['门锁-001']),
{text: Vue.t('dialog.cancel'), callback: function () { {text: Vue.t('dialog.cancel'), callback: function () {}},
{text: Vue.t('dialog.confirm'), callback: function () {}}
}},
{text: Vue.t('dialog.confirm'), callback: function () {
deleteDoorlook(self, value);
}}
); );
} }
} }
...@@ -245,58 +137,12 @@ function doorlockListButtonTap(self, value, buttonValue) { ...@@ -245,58 +137,12 @@ function doorlockListButtonTap(self, value, buttonValue) {
//tap 退出系统 //tap 退出系统
function logoutButtonTap(self){ function logoutButtonTap(self){
uComponents.openConfirm(self, Vue.t('doorlockManage.logoutDialogTip'), uComponents.openConfirm(self, Vue.t('doorlockManage.logoutDialogTip'),
{text: Vue.t('dialog.cancel'), callback: function () {}}, {text: Vue.t('dialog.cancel'), callback: function () {}},
{text: Vue.t('dialog.confirm'), callback: function () { {text: Vue.t('dialog.confirm'), callback: function () {
iot.business.user.logout({ iot.navigator.openWindow({
data: { url: '../login/login.html',
sds: true id: 'login'
}, });
success: (response) => { }}
// iot.navigator.openWindow({
// url: '../login/login.html',
// id: 'login'
// });
},
error: (error) => {},
complete: () => {
console.log("complete");
}
});
}}
); );
} }
\ No newline at end of file
function deleteDoorlook(self, index){
// 显示loading
let uuId = self.getDeviceList()[index].id;
uComponents.showLoading(self);
iot.business.device.unbind({
data: {
sds: true,
uuid: self.getDeviceList()[index].uuid
},
success: function (response){
console.log(response);
self.getDeviceList().splice(index, 1);
self.getShowDeviceList().splice(index, 1);
rojectMethods.changeGridList(self, self.getDeviceList());
uComponents.openAlert(self, Vue.t('doorlockManage.deleteSuccess'), {
text: Vue.t('btn.confirm'), callback: function () {
projectMethods.changeGridList(self, self.getShowDeviceList());
}
});
},
error: function (err){
console.log(err);
uComponents.openAlert(self, Vue.t('doorlockManage.editNameFailue'), {
text: Vue.t('btn.confirm'), callback: function () {
uComponents.hideLoading(self);
}
});
},
complete: function (){
console.log("complete");
uComponents.hideLoading(self);
}
});
}
...@@ -7,9 +7,8 @@ ...@@ -7,9 +7,8 @@
* 生成绑定二维码页面 * 生成绑定二维码页面
*/ */
var QRCode = require('qrcode');
console.log(QRCode);
import {iot, uPublic, uComponents} from '../../public/public.js'; import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init); iot.ready(init);
function init() { function init() {
//通用 按钮、dialog、loading组件 //通用 按钮、dialog、loading组件
...@@ -17,34 +16,18 @@ function init() { ...@@ -17,34 +16,18 @@ function init() {
const app = new Vue({ const app = new Vue({
data:{ data:{
//配置组件 //配置组件
componentsConfig: initComponentsConfig(), componentsConfig: initComponentsConfig()
//页面传递参数
extras: [],
uuid: null,
qrCodeDisabled: false
}, },
mounted(){ mounted(){
this.extras = iot.navigator.getExtras();
console.log(this.extras);
this.setUuid(this.extras.uuid);
}, },
methods:{ methods:{
getUuid(){
return this.uuid;
},
setUuid(id){
this.uuid = id;
},
setQrCodeDisabled(boolean){
this.qrCodeDisabled = boolean;
},
//tap < //tap <
onBackTap(){ onBackTap(){
backTap(); backTap();
}, },
//tap 生成二维码 //tap 生成二维码
onQRcodeButtonTap(){ onQRcodeButtonTap(){
qrcodeButtonTap(this); qrcodeButtonTap();
} }
} }
}).$mount('#app'); }).$mount('#app');
...@@ -79,28 +62,6 @@ function backTap(){ ...@@ -79,28 +62,6 @@ function backTap(){
} }
//tap 生成二维码 //tap 生成二维码
function qrcodeButtonTap(self){ function qrcodeButtonTap(){
iot.business.sds.saveqr({ alert("生成二维码");
data: {
uuid: self.getUuid()
},
success: (response) => {
console.log(response);
let qrKey = response.data.qrKey;
var qr = self.$refs.qrcode;
QRCode.toCanvas(qr, qrKey, (error) => {
if (error) {
console.log(error)
} else {
console.log('success')
setTimeout(() => {
self.setQrCodeDisabled(true);
},1000*60*10);
}
});
},
error: (error) => {
console.log(error);
}
});
} }
\ No newline at end of file
@import "../public/public.less"; @import "../public/public.less";
@import "../public/header.less"; @import "../public/header.less";
.u-text(); //添加设备
.noBottomGradient();
.u-button();
.addDevice li{
.u-commstatus-loading { margin: 10px;
height: 100%; border: 1px solid;/*no*/
background: rgba(0,0,0,0.7); border-radius: 5px;
} color: @ADDDEVICE-TEXT-COLOR;
font-size: @ADDDEVICE-TEXT-FONTSIZE;
.u-commstatus-loading-content { height: 214px;
position: absolute; line-height: 214px;
top: 50%; padding-left: 58px;
left: 50%; &:nth-child(1) img{
transform: translate(-50%,-50%); width: 90px;
text-align: center; height: 90px;
margin-right: 40px;
}
&:nth-child(2) img{
width: 135px;
height: 64px;
margin-right: 25px;
}
.tap_row(@ADDDEVICE-ROW-ACTIVE-BG);
} }
.u-commstatus-loading-button { //配置Wi-Fi
height: 44px; .wifiAddHelp{
width: 80%; .help();
line-height: 44px;
background: #e0dfdf;
text-align: center;
position: absolute;
bottom: 44px;
left: 50%;
transform: translateX(-50%);
} }
.u-button();
.u-commstatus-loading-status-0 .u-commstatus-loading-button { .custom-help-button,
display: none; .custom-button{
.button();
} }
.u-commstatus-loading-status-0 .u-commstatus-loading-content div ul li{ //连接Wi-Fi
opacity: 0.2; .inputBox(184px,22px,auto,"connectWifi.png",40px,77px 122px);
-webkit-animation: stretchdelay 1.5s infinite;
animation: stretchdelay 1.5s infinite; .wifi{
width: 100%;
display: table;
position: relative;
margin-top: 17px;
span{
.iconfont(@WIFI-ICON-FONTSIZE);
width: 48px;
padding-left: 9px;
display: table-cell;
vertical-align: text-bottom;
}
p{
padding: 8px 0;
display: table-cell;
color: @WIFI-TEXT-COLOR;
}
&:after{
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.white_gradient_border();
}
} }
.u-commstatus-loading-status-0 .u-commstatus-loading-content{ .u-text();
color: #00ffff;
}
.u-commstatus-loading-status-0 .u-commstatus-loading-content .loader { .custom-password-text{
font-size: 10px; margin-top: 17px;
margin: 5em auto; input{
width: 1em; padding-top: 8px;
height: 1em; padding-bottom: 8px;
border-radius: 50%; padding-right: 70px;
position: relative; &[type = text] ~ .u-text-see:before{
text-indent: -9999em; content: '\e60e';
-webkit-animation: load4 1.3s infinite linear; }
animation: load4 1.3s infinite linear; &::-webkit-input-placeholder{
color: @CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR;
}
}
.u-text-icon{
font-size: @CUSTOM-TEXT-COMPONENT-ICON-FONTSIZE;
width: 48px;
padding-left: 9px;
vertical-align: text-bottom;
}
.u-text-clear,
.u-text-see{
&:before{
font-family: iconfont;
color: @CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR;
font-size: @CUSTOM-TEXT-COMPONENT-DEFAULTICON-FONTSIZE;
}
}
//x icon
.u-text-clear{
right: 37px;
&:before{
content: '\e601';
}
}
//眼睛 icon
.u-text-see{
right: 7px;
&:before{
content: '\e6b2';
}
}
&:after{
.white_gradient_border();
}
} }
@-webkit-keyframes load4 {
0%,
100% {
box-shadow: 0em -3em 0em 0.2em #00ffff, 2em -2em 0 0em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 0em #00ffff;
}
12.5% {
box-shadow: 0em -3em 0em 0em #00ffff, 2em -2em 0 0.2em #00ffff, 3em 0em 0 0em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
25% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 0em #00ffff, 3em 0em 0 0.2em #00ffff, 2em 2em 0 0em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
37.5% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 0em #00ffff, 2em 2em 0 0.2em #00ffff, 0em 3em 0 0em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
50% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 0em #00ffff, 0em 3em 0 0.2em #00ffff, -2em 2em 0 0em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
62.5% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 0em #00ffff, -2em 2em 0 0.2em #00ffff, -3em 0em 0 0em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
75% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 0em #00ffff, -3em 0em 0 0.2em #00ffff, -2em -2em 0 0em #00ffff;
}
87.5% {
box-shadow: 0em -3em 0em 0em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 0em #00ffff, -3em 0em 0 0em #00ffff, -2em -2em 0 0.2em #00ffff;
}
}
@keyframes load4 { .errorTip{
0%, position: absolute;
100% { left: 0;
box-shadow: 0em -3em 0em 0.2em #00ffff, 2em -2em 0 0em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 0em #00ffff; right: 0;
} .errorTip(22px);
12.5% {
box-shadow: 0em -3em 0em 0em #00ffff, 2em -2em 0 0.2em #00ffff, 3em 0em 0 0em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
25% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 0em #00ffff, 3em 0em 0 0.2em #00ffff, 2em 2em 0 0em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
37.5% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 0em #00ffff, 2em 2em 0 0.2em #00ffff, 0em 3em 0 0em #00ffff, -2em 2em 0 -0.5em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
50% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 0em #00ffff, 0em 3em 0 0.2em #00ffff, -2em 2em 0 0em #00ffff, -3em 0em 0 -0.5em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
62.5% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 0em #00ffff, -2em 2em 0 0.2em #00ffff, -3em 0em 0 0em #00ffff, -2em -2em 0 -0.5em #00ffff;
}
75% {
box-shadow: 0em -3em 0em -0.5em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 0em #00ffff, -3em 0em 0 0.2em #00ffff, -2em -2em 0 0em #00ffff;
}
87.5% {
box-shadow: 0em -3em 0em 0em #00ffff, 2em -2em 0 -0.5em #00ffff, 3em 0em 0 -0.5em #00ffff, 2em 2em 0 -0.5em #00ffff, 0em 3em 0 -0.5em #00ffff, -2em 2em 0 0em #00ffff, -3em 0em 0 0em #00ffff, -2em -2em 0 0.2em #00ffff;
}
} }
.u-commstatus-loading-status-0 .u-commstatus-loading-content .icon{ //配置Wi-Fi提醒
display: none; .remind{
width: 312px;
margin: 0 auto;
li{
color: @REMIND-TEXT-COLOR;
font-size: @REMIND-TEXT-FONTSIZE;
.transform(scale(0.7));
padding-left: 46px;
margin-bottom: 10px;
line-height: 1;
&:first-child{
padding-left: 0;
}
}
} }
.u-commstatus-loading-status-0 .u-commstatus-loading-button{ .custom-button{
display: none; .buttonPosition();
} }
.u-commstatus-loading-status-1 .u-commstatus-loading-content{ .u-commstatus-loading();
color: #00ffff;
}
.u-commstatus-loading-status-1 .u-commstatus-loading-content .icon{ .custom-commstatus-loading();
font-family: SDSIconfont; \ No newline at end of file
font-size: 5em;
}
\ No newline at end of file
@import "../public/public.less"; @import "../public/public.less";
@import "../public/header.less"; @import "../public/header.less";
.u-text(); //ID-姓名绑定
.bindUserHelp{
.help();
}
.u-button(); .u-button();
.u-swipe-list(); .custom-help-button,
\ No newline at end of file .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/public.less";
@import "../public/header.less"; @import "../public/header.less";
.u-switch(); //远程开门
.inputBox{
width: 250px;
margin: 145px auto 50px;
padding-bottom: 40px;
}
.u-text(); .u-text();
.custom-text{
.textInput();
}
.errorTip{
position: absolute;
left: 0;
right: 0;
.errorTip();
}
.u-button(); .u-button();
.custom-marquee-top{ .custom-button{
width: 100%; .button();
height: 25px;
overflow: hidden;
text-align: center;
} }
.custom-marquee-top .u-marquee-text{ .u-commstatus-loading();
display: inline-block;
.custom-commstatus-loading();
line-height: 25px;
//智能指纹锁
.u-carousel();
.custom-carousel{
.u-carousel-indicators{
text-align: left;
padding-left: 18px;
bottom: 16px;
li{
width: 8px;
height: 8px;
margin: 0 3px;
&.active{
opacity: 1;
background-color: @CUSTOM-CAROUSEL-COMPONENT-INDICATORS-ACTIVE-BG;
}
}
}
}
.u-marquee();
.custom-marquee{
height: 20px;
text-align: center; text-align: center;
position: relative;
.u-marquee-text{
line-height: 20px;
}
&:before{
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.white_gradient_border();
}
&:after{
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.white_gradient_border();
}
} }
.marquee(5s,~"0,20px",~"0,-100%");
.deviceHandle{
position: absolute;
top: 294px;
bottom: 0;
left: 0;
width: 100%;
}
.switchGroup{
position: absolute;
top: 20px;
bottom: 0;
left: 0;
width: 100%;
.col-xs-6{
height: 50%;
padding: 0;
.display-box();
.box-horizontal-alignment();
.box-vertical-alignment();
}
&:before{
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
margin: auto;
height: 1px;/*no*/
.blue_gradient_border();
}
&:after{
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
margin: auto;
width: 1px;/*no*/
.linear-gradient(@BLUE-GRADIENTBORDER-STARTCOLOR,@BLUE-GRADIENTBORDER-CENTERCOLOR,@BLUE-GRADIENTBORDER-ENDCOLOR);
background: linear-gradient(@BLUE-GRADIENTBORDER-STARTCOLOR,@BLUE-GRADIENTBORDER-CENTERCOLOR,@BLUE-GRADIENTBORDER-ENDCOLOR);
}
}
.u-switch();
//开门记录
.opendoorRecord .custom-switch .u-switch-handle:before{
.bgImg("opendoorRecord.png");
}
//安全报警
.securityAlarm .custom-switch .u-switch-handle:before{
.bgImg("securityAlarm.png");
}
//远程开门
.remoteOpendoor .custom-switch{
.u-switch-handle:before{
.bgImg("remoteOpendoor.png");
}
&.u-switch-on .u-switch-handle{
.animation(aperture 2s linear infinite);
&:after{
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 50%;
.animation(aperture 2s linear -1s infinite);
}
}
}
.keyframes(aperture,{
0%{
.box-shadow(0 0 0 0 rgba(0,255,255,1));
}
100%{
.box-shadow(0 0 0 10px rgba(0,255,255,0));
}
});
//劫持报警
.hijackAlarm .custom-switch .u-switch-handle:before{
.bgImg("hijackAlarm.png");
}
.active .u-marquee-text{ .custom-switch{
animation: marqueeTop 5s linear infinite; width: 100%;
height: auto;
.u-switch-handle{
position: relative;
top: 0;
left: 0;
.transform(none);
width: 55px;
height: 55px;
border-width: 1px;/*no*/
border-radius: 50%;
margin: 0 auto;
&:before{
top: 0;
bottom: 0;
right: 0;
margin: auto;
width: 27px;
height: 27px;
border-radius: 0;
background-color: @OPACITY;
.box-shadow(none);
background-repeat: no-repeat;
.background-size(54px 27px);
}
}
.u-switch-text{
font-size: @CUSTOM-SWITCH-COMPONENT-TEXT-FONTSIZE;
margin-top: 15px;
text-align: center;
}
&.u-switch-on,
&.u-switch-off{
.u-switch-handle{
border-color: inherit;
.box-shadow(none);
background-color: @CUSTOM-SWITCH-COMPONENT-HANDLE-BG;
&:before{
left: 0;
}
}
}
&.u-switch-on{
color: @CUSTOM-SWITCH-COMPONENT-ONSTATE-COLOR;
.u-switch-handle:before{
background-position: 0 0;
}
}
&.u-switch-off,
&.disabled{
opacity: 1;
color: @CUSTOM-SWITCH-COMPONENT-OFFSTATE-COLOR;
.u-switch-handle:before{
background-position: -27px 0;
}
}
} }
@keyframes marqueeTop{ .newMsg .custom-switch:before{
from{ transform: translateY(25px);} content: '\e681';
to{ transform: translateY(-100%);} position: absolute;
top: 0;
right: 52px;
.iconfont(@NEWMSG-ICON-FONTSIZE);
color: @NEWMSG-ICON-COLOR;
z-index: 3;
} }
.u-carousel(); .followServiceNumber-dialog{
\ No newline at end of file .mask(1051,rgba(0, 0, 0, 0.9));
.followServiceNumber-dialog-box{
ul{
margin: 35px 0 -15px;
li{
font-size: 15px;
text-align: center;
line-height: 18px;
margin-bottom: 40px;
&:first-child{
font-size: 19px;
margin-bottom: 60px;
}
&:nth-child(3){
color: #00ffff;
margin-bottom: 20px;
}
p{
width: 200px;
height: 200px;
border: 1px solid #91929a;/*no*/
margin: 0 auto;
}
span{
color: #FFF54E;
}
}
}
.linkText();
}
}
\ No newline at end of file
@import "../public/public.less"; @import "../public/public.less";
@import "../public/header.less"; @import "../public/header.less";
\ No newline at end of file
.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/public.less";
@import "../public/header.less"; @import "../public/header.less";
//生成绑定二维码
.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;
}
canvas{
margin: 0 auto;
display: block;
}
}
}
.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(); .u-text();
.u-button(); .custom-editName-text{
\ No newline at end of file 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
...@@ -21,19 +21,82 @@ ...@@ -21,19 +21,82 @@
} }
} }
//login //登录、注册、忘记密码
.inputBox(); .inputBox(184px,40px,380px,"logo.png",75px,64px 64px);
.u-text(); .u-text();
.custom-text, .custom-text,
.custom-password-text, .custom-password-text,
.custom-code-text{ .custom-code-text{
.custom-text(); .textInput();
} }
.u-button(); .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{
.custom-button(); .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 "./variables.less"; @import "./variables.less";
@import "./mixins.less"; @import "./mixins.less";
\ No newline at end of file
.marquee(@time,@fromValue,@toValue){
.active .u-marquee-text{
.animation(marquee @time linear infinite);
}
.keyframes(marquee,{
from{
.transform(translate(@fromValue));
}
to{
.transform(translate(@toValue));
}
});
}
\ No newline at end of file
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
//loading //loading
.u-loading{ .u-loading{
.mask(); .mask(1050);
.u-loading-box{ .u-loading-box{
.transform_center(); .transformV_center(left,0);
right: 0;
.u-loading-icon{ .u-loading-icon{
width: 30px;/*no*/ width: 30px;/*no*/
height: 30px;/*no*/ height: 30px;/*no*/
...@@ -16,7 +17,7 @@ ...@@ -16,7 +17,7 @@
.bgImg("white_loading_icon.png"); .bgImg("white_loading_icon.png");
.background-size(cover); .background-size(cover);
margin: 0 auto; margin: 0 auto;
.animation(uLoading 1s steps(12, end) infinite); .animation(loading 1s steps(12, end) infinite);
} }
.u-loading-text{ .u-loading-text{
color: @LOADING-COMPONENT-TEXT-COLOR; color: @LOADING-COMPONENT-TEXT-COLOR;
...@@ -26,7 +27,7 @@ ...@@ -26,7 +27,7 @@
} }
} }
.keyframes(uLoading,{ .keyframes(loading,{
0%{ 0%{
.transform(rotate3d(0,0,1,0deg)); .transform(rotate3d(0,0,1,0deg));
} }
...@@ -35,7 +36,7 @@ ...@@ -35,7 +36,7 @@
} }
}); });
//.custom-loading(); .custom-loading();
//弹出框 //弹出框
.u-dialog{ .u-dialog{
...@@ -235,7 +236,7 @@ ...@@ -235,7 +236,7 @@
} }
.u-text-icon{ .u-text-icon{
.iconfont(@TEXT-COMPONENT-ICON-FONTSIZE); .iconfont(@TEXT-COMPONENT-ICON-FONTSIZE);
width: 44px; width: 42px;
padding-left: 17px; padding-left: 17px;
display: table-cell; display: table-cell;
vertical-align: middle; vertical-align: middle;
...@@ -696,51 +697,199 @@ ...@@ -696,51 +697,199 @@
//图片轮播 //图片轮播
.u-carousel(){ .u-carousel(){
.u-carousel{ .u-carousel{
width: 250px; width: 100%;
height: 166px; height: 250px;
overflow: hidden; overflow: hidden;
margin: 0 auto;
position: relative; position: relative;
} .u-carousel-inner{
width: 100%;
.u-carousel .u-carousel-inner{
width: 100%;
height: 100%;
white-space: nowrap; white-space: nowrap;
font-size: 0; font-size: 0;
.u-carousel-item{
display: inline-block;
width: 100%;
.u-carousel-image{
width: 100%;
}
}
}
.u-carousel-indicators{
position: absolute;
bottom: 10px;
left: 0;
width: 100%;
text-align: center;
font-size: 0;
li{
width: 10px;
height: 10px;
background-color: @CAROUSEL-COMPONENT-INDICATORS-BG;
border-radius: 50%;
margin: 0 5px;
display: inline-block;
&.active{
opacity: 0.6;
}
}
}
} }
}
.u-carousel .u-carousel-inner .u-carousel-item{ //走马灯
display: inline-block; .u-marquee(){
} .u-marquee{
.u-carousel .u-carousel-inner .u-carousel-item .u-carousel-image{
width: 100%; width: 100%;
height: 25px;
overflow: hidden;
.u-marquee-text{
display: inline-block;
line-height: 25px;
}
} }
}
.u-carousel-indicators{ .u-commstatus-loading(){
position: absolute; .u-commstatus-loading{
bottom: 10px; .mask(1050);
left: 0; .u-commstatus-loading-content{
width: 100%; .transformV_center(left,0);
text-align: center; right: 0;
font-size: 0; .loader{
} font-size: 16px;
margin: 0 auto;
.u-carousel-indicators li{ width: 3.750em;
width: 10px; height: 3.750em;
height: 10px; position: relative;
background-color: #fff; &:before{
border-radius: 50%; content: '';
opacity: 0.6; .margin_center(0.500em,0.500em);
margin: 0 5px; border-radius: 50%;
display: inline-block; .transform(translateZ(0) scale(0.55));
} }
}
.u-carousel-indicators li.active{ .icon{
opacity: 1; font-size: 16px;
margin: 0 auto;
width: 3.750em;
height: 3.750em;
position: relative;
&:before{
.transform_center();
.iconfont(4.125em);
}
}
.u-commstatus-loading-text{
font-size: 16px;
margin-top: 20px;
text-align: center;
}
}
.u-commstatus-loading-button{
position: absolute;
bottom: 65px;
left: 0;
right: 0;
width: 240px;
color: @BUTTON-COMPONENT-COLOR;
font-size: inherit;
background-color: @BUTTON-COMPONENT-BG;
border-radius: 20px;
text-align: center;
line-height: 1;
margin: 0 auto;
padding: 10px 0;
.transition(all 0.2s linear);
background-clip: padding-box;
//按钮 active
.tap_row(@BUTTON-COMPONENT-ACTIVE-BG);
//按钮 不可控
&.disabled{
background-color: @BUTTON-COMPONENT-DISABLED-BG;
}
}
//loading
&.u-commstatus-loading-status-0{
.u-commstatus-loading-content{
color: #00ffff;
.loader{
display: block;
&:before{
.animation(commstatusLoading 1.3s infinite linear);
}
}
.icon{
display: none;
}
}
.u-commstatus-loading-button{
display: none;
}
}
//绑定成功
&.u-commstatus-loading-status-1{
.u-commstatus-loading-content{
color: #00ffff;
.loader{
display: none;
}
.icon{
display: block;
&:before{
content: '\e800';
}
}
}
.u-commstatus-loading-button{
display: block;
}
}
//绑定失败
&.u-commstatus-loading-status-2{
.u-commstatus-loading-content{
color: #fff;
.loader{
display: none;
}
.icon{
display: block;
&:before{
content: '\e646';
}
}
}
.u-commstatus-loading-button{
display: block;
}
}
} }
.keyframes(commstatusLoading,{
0%,
100% {
.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% {
.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% {
.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% {
.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% {
.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% {
.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% {
.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% {
.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);
}
});
} }
.edit-name(){ .edit-name(){
......
...@@ -15,8 +15,7 @@ ...@@ -15,8 +15,7 @@
//项目iconfont //项目iconfont
@font-face{ @font-face{
font-family: 'iconfont'; font-family: 'iconfont';
//src: url('@{ICONFONT_PATH}/iconfont.ttf') format('truetype'); src: url('@{ICONFONT_PATH}/iconfont.ttf') format('truetype');
src: url('//at.alicdn.com/t/font_372681_ifeqlzhn1k9e8kt9.ttf') format('truetype');
} }
@BODY-TEXT-FONTFAMILY: Helvetica,'Helvetica Neue',sans-serif; @BODY-TEXT-FONTFAMILY: Helvetica,'Helvetica Neue',sans-serif;
...@@ -34,16 +33,22 @@ ...@@ -34,16 +33,22 @@
@C_BLUE_5: #153D4C; @C_BLUE_5: #153D4C;
@C_GREEN: #4cd964; @C_GREEN: #4cd964;
@C_RED: #ff0000; @C_RED: #ff0000;
@C_RED_1: #fc2168;
@C_GRAY: #bbb; @C_GRAY: #bbb;
@C_GRAY_1: #ddd; @C_GRAY_1: #ddd;
@C_GRAY_2: #999; @C_GRAY_2: #999;
@C_GRAY_3: #91929a;
@C_GRAY_4: #959595;
@C_GRAY_5: #898989;
@OPACITY: transparent; @OPACITY: transparent;
@BLACK_OPACITY: fade(@C_BLACK,80%); @BLACK_OPACITY: fade(@C_BLACK,80%);
@BLACK_OPACITY_1: fade(@C_BLACK,40%); @BLACK_OPACITY_1: fade(@C_BLACK,40%);
@WHITE_OPACITY: fade(@C_WHITE,0); @WHITE_OPACITY: fade(@C_WHITE,0);
@BLUE_OPACITY: fade(@C_BLUE_2,90%);
//font-sizes //font-sizes
@DEFAULT_F_SIZE: 14px; @DEFAULT_F_SIZE: 14px;
@F_SIZE_12: @DEFAULT_F_SIZE - 2; //12px
@F_SIZE_13: @DEFAULT_F_SIZE - 1; //13px @F_SIZE_13: @DEFAULT_F_SIZE - 1; //13px
@F_SIZE_15: @DEFAULT_F_SIZE + 1; //15px @F_SIZE_15: @DEFAULT_F_SIZE + 1; //15px
@F_SIZE_16: @DEFAULT_F_SIZE + 2; //16px @F_SIZE_16: @DEFAULT_F_SIZE + 2; //16px
...@@ -68,8 +73,13 @@ ...@@ -68,8 +73,13 @@
@WHITE-GRADIENTBORDER-CENTERCOLOR: @C_WHITE; @WHITE-GRADIENTBORDER-CENTERCOLOR: @C_WHITE;
@WHITE-GRADIENTBORDER-ENDCOLOR: @C_BLUE_2; @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; @BACKDROP-BG-COLOR: @BLACK_OPACITY;
@CUSTOM-BACKDROP-BG: @BLUE_OPACITY;
//通用组件 //通用组件
@LOADING-COMPONENT-TEXT-COLOR: @C_WHITE; //loading @LOADING-COMPONENT-TEXT-COLOR: @C_WHITE; //loading
...@@ -120,6 +130,7 @@ ...@@ -120,6 +130,7 @@
@SLIDE-COMPONENT-MINMAXVALUE-FONTSIZE: @F_SIZE_13; @SLIDE-COMPONENT-MINMAXVALUE-FONTSIZE: @F_SIZE_13;
@SLIDE-COMPONENT-DISABLED-COLOR: @C_GRAY; @SLIDE-COMPONENT-DISABLED-COLOR: @C_GRAY;
@SLIDE-COMPONENT-DISABLED-BG: @C_GRAY; @SLIDE-COMPONENT-DISABLED-BG: @C_GRAY;
@CAROUSEL-COMPONENT-INDICATORS-BG: @C_WHITE;
@EDITNAME-COMPONENT-INPUT-BG: @OPACITY; //修改名称 @EDITNAME-COMPONENT-INPUT-BG: @OPACITY; //修改名称
@EDITNAME-COMPONENT-ICON-FONTSIZE: @F_SIZE_20; @EDITNAME-COMPONENT-ICON-FONTSIZE: @F_SIZE_20;
@EDITNAME-COMPONENT-DEFAULTICON-FONTSIZE: @F_SIZE_25; @EDITNAME-COMPONENT-DEFAULTICON-FONTSIZE: @F_SIZE_25;
...@@ -138,16 +149,15 @@ ...@@ -138,16 +149,15 @@
@CUSTOM-BUTTON-COMPONENT-DISABLED-COLOR: @C_GRAY_2; @CUSTOM-BUTTON-COMPONENT-DISABLED-COLOR: @C_GRAY_2;
//自定义输入框组件 //自定义输入框组件
@CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR: ; @CUSTOM-TEXT-COMPONENT-INPUT-PLACEHOLDER-COLOR: @C_GRAY_3;
@CUSTOM-TEXT-COMPONENT-DEFAULTICON-COLOR: ; @CUSTOM-TEXT-COMPONENT-ICON-FONTSIZE: @DEFAULT_F_SIZE + 10;
@CUSTOM-TEXT-COMPONENT-DEFAULTICON-FONTSIZE: @DEFAULT_F_SIZE + 8; @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-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
@HEADER-BG-COLOR: @C_BLUE_3; @HEADER-BG-COLOR: @C_BLUE_3;
...@@ -157,12 +167,76 @@ ...@@ -157,12 +167,76 @@
@HEADER-ICON-FONTSIZE: @F_SIZE_25; @HEADER-ICON-FONTSIZE: @F_SIZE_25;
//errorTip //errorTip
@ERRORTIP-TEXT-COLOR: ; @ERRORTIP-TEXT-COLOR: @C_RED_1;
@ERRORTIP-TEXT-FONTSIZE: @F_SIZE_13; @ERRORTIP-TEXT-FONTSIZE: @F_SIZE_16;
@LINKTEXT-TEXT-COLOR: @C_BLUE_4;
@LINKTEXT-TEXT-FONTSIZE: @F_SIZE_12;
//list //list
@LIST-LOAD-FONTSIZE: @F_SIZE_13; //上拉加载 @LIST-LOAD-COLOR: @C_BLUE_4; //上拉加载
@LIST-NOCONTTIP-COLOR: ; //list 无内容 @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; @GUIDE-FOOTER-FONTSIZE: @F_SIZE_16;
\ No newline at end of file
//登录
@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
{"loading":"请耐心等待...","scroll":{"clickToLoadMore":"点击加载更多","loading":"loading..."},"btn":{"confirm":"确定","login":"登录","getCode":"获取验证码","register":"注册","logout":"退出系统","save":"保存","qrcode":"生成二维码","wifiAdd":"开始配置Wi-Fi","connect":"连接","bindUser":"绑定姓名","bind":"我要绑定","reBound":"请重新绑定","saveQRcode":"保存二维码到相册"},"dialog":{"confirm":"确认","cancel":"取消"},"title":{"login":"登录","register":"注册","forgetPassword":"忘记密码","device":"智能指纹锁","opendoorRecord":"开门记录","alarmInfo":"报警信息","remoteOpendoor":"远程开门","hijackRecord":"劫持记录","doorlockManage":"门锁管理","editName":"修改名称","qrcode":"生成绑定二维码","addDevice":"添加设备","scanCodeAdd":"扫描绑定设备","wifiAddHelp":"配置Wi-Fi","wifiAdd":"连接Wi-Fi","bindUserHelp":"ID-姓名绑定","bindUser":"绑定用户","userList":"用户列表"},"footer":{"guide":"指纹改变生活","recordList":"记录时间以锁为准"},"login":{"telInputTip":"请输入手机号","passwordInputTip":"请输入密码","register":"快速注册","forgetPassword":"忘记密码","error":{"telNull":"请输入手机号","passWordNull":"请输入密码"}},"register":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"forgetPassword":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"device":{"opendoorRecord":"开门记录","securityAlarm":"安全报警","remoteOpendoor":"远程开门","hijackAlarm":"劫持报警","followTitle":"关注服务号","followCont1":"关注“i智信”微信服务号可随时随地掌握设备动态<br>再也不担心错过重要通知,赶紧按下方提示试试吧","followCont2":"1.保存二维码-2.用微信从<span>相册选取扫码</span>-3.关注","laterFollow":"稍后关注"},"opendoorRecord":{"noRecordTip":"暂无记录"},"alarmInfo":{"noInfoTip":"暂无信息"},"remoteOpendoor":{"passwordInputTip":"请输入远程开门密码","error":{}},"hijackRecord":{"noRecordTip":"暂无记录"},"doorlockManage":{"noDeviceTip":"暂无设备","deleteDialogTip":"<span>{0}</span>将被删除","logoutDialogTip":"确定要退出系统吗?"},"editName":{"nameInputTip":"请输入门锁名称","error":{}},"qrcode":{"helpTitle":"注意事项:","helpCont1":"1.仅超级管理员(通过Wi-Fi配网绑定的用户为超级管理员)可以生成绑定二维码","helpCont2":"2.二维码有效时间为10分钟且只能使用一次","helpCont3":"3.用户只需要扫描该二维码即可绑定指纹锁","helpCont4":"4.绑定失败则需要重新生成二维码进行绑定"},"addDevice":{"scanCodeAdd":"扫描绑定设备","wifiAdd":"配置Wi-Fi"},"wifiAddHelp":{"helpTitle":"配置Wi-Fi说明:","helpCont1":"1.按下指纹锁背面的按钮,进入主菜单,选择Wi-Fi设置→配置Wi-Fi,门锁进入等待配网状态","helpCont2":"2.点击页面“开始配置Wi-Fi”按钮,进入Wi-Fi配网画面","helpCont3":"3.输入Wi-Fi密码,点击“l连接”按钮,等待锁端相应,直至配网成功","helpCont4":"(提示:如果指纹锁已经绑定过用户,重新绑定成功后会清除之前所有绑定信息)"},"wifiAdd":{"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":{}},"userList":{"name":"姓名:{0}","id":"指纹ID:<span>{0}</span>密码ID:<span>{1}</span>IC卡ID:<span>{2}</span>","noUserTip":"暂无用户"},"commstatusLoading":{"connectSuccess":"Wi-Fi连接成功,正在绑定...","bindSuccess":"绑定成功","bindFailed":"绑定失败"}} {"loading":"loading...","scroll":{"clickToLoadMore":"点击加载更多","loading":"loading..."},"btn":{"confirm":"确定","login":"登录","getCode":"获取验证码","register":"注册","logout":"退出系统","save":"保存","qrcode":"生成二维码","wifiAdd":"开始配置Wi-Fi","connect":"连接","bindUser":"绑定姓名","bind":"我要绑定","reBound":"请重新绑定","saveQRcode":"保存二维码到相册"},"dialog":{"confirm":"确认","cancel":"取消"},"title":{"login":"登录","register":"注册","forgetPassword":"忘记密码","device":"智能指纹锁","opendoorRecord":"开门记录","alarmInfo":"报警信息","remoteOpendoor":"远程开门","hijackRecord":"劫持记录","doorlockManage":"门锁管理","editName":"修改名称","qrcode":"生成绑定二维码","addDevice":"添加设备","scanCodeAdd":"扫描绑定设备","wifiAddHelp":"配置Wi-Fi","wifiAdd":"连接Wi-Fi","bindUserHelp":"ID-姓名绑定","bindUser":"绑定用户","userList":"用户列表"},"guide":{"footer":"指纹改变生活"},"login":{"telInputTip":"请输入手机号","passwordInputTip":"请输入密码","register":"快速注册","forgetPassword":"忘记密码","error":{"telNull":"请输入手机号","passWordNull":"请输入密码"}},"register":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"forgetPassword":{"telInputTip":"请输入手机号","codeInputTip":"请输入验证码","passwordInputTip":"请输入6位登录密码","error":{"telNull":"请输入手机号","codeNull":"请输入验证码","passWordNull":"请输入密码"}},"device":{"opendoorRecord":"开门记录","securityAlarm":"安全报警","remoteOpendoor":"远程开门","hijackAlarm":"劫持报警","followTitle":"关注服务号","followCont1":"关注 “i智信” 微信服务号可随时随地掌握设备动态<br>再也不担心错过重要通知,赶紧按下方提示试试吧","followCont2":"1.保存二维码-2.用微信从<span>相册选取扫码</span>-3.关注","laterFollow":"稍后关注"},"opendoorRecord":{"noRecordTip":"暂无记录"},"alarmInfo":{"noInfoTip":"暂无信息"},"remoteOpendoor":{"passwordInputTip":"请输入远程开门密码","error":{}},"hijackRecord":{"noRecordTip":"暂无记录"},"doorlockManage":{"noDeviceTip":"暂无设备","deleteDialogTip":"<span>{0}</span>将被删除","logoutDialogTip":"确定要退出系统吗?"},"editName":{"nameInputTip":"请输入门锁名称","error":{}},"qrcode":{"helpTitle":"注意事项:","helpCont1":"1.仅超级管理员(通过Wi-Fi配网绑定的用户为超级管理员)可以生成绑定二维码","helpCont2":"2.二维码有效时间为10分钟且只能使用一次","helpCont3":"3.用户只需要扫描该二维码即可绑定指纹锁","helpCont4":"4.绑定失败则需要重新生成二维码进行绑定"},"addDevice":{"scanCodeAdd":"扫描绑定设备","wifiAdd":"配置Wi-Fi"},"wifiAddHelp":{"helpTitle":"配置Wi-Fi说明:","helpCont1":"1.按下指纹锁背面的按钮,进入主菜单,选择Wi-Fi设置→配置Wi-Fi,门锁进入等待配网状态","helpCont2":"2.点击页面 “开始配置Wi-Fi” 按钮,进入Wi-Fi配网画面","helpCont3":"3.输入Wi-Fi密码,点击 “l连接” 按钮,等待锁端相应,直至配网成功","helpCont4":"(提示:如果指纹锁已经绑定过用户,重新绑定成功后会清除之前所有绑定信息)"},"wifiAdd":{"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":{}},"userList":{"name":"姓名:{0}","id":"指纹ID:<span>{0}</span>密码ID:<span>{1}</span>IC卡ID:<span>{2}</span>","noUserTip":"暂无用户"},"commstatusLoading":{"connectSuccess":"Wi-Fi连接成功,正在绑定...","bindSuccess":"绑定成功","bindFailed":"绑定失败"}}
\ No newline at end of file \ No newline at end of file
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<script type="text/javascript" src="../../lib/js/p.js"></script> <script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../lib/js/UIOT.js"></script> <script type="text/javascript" src="../../lib/js/UIOT.js"></script>
</head> </head>
<body ontouchstart=""> <body ontouchstart="" class="noBottomGradient">
<div id="app" v-cloak> <div id="app" v-cloak>
<div class="header"> <div class="header">
......
...@@ -25,9 +25,6 @@ ...@@ -25,9 +25,6 @@
<p>{{ $t('title.wifiAdd') }}</p> <p>{{ $t('title.wifiAdd') }}</p>
</div> </div>
<div class="content"> <div class="content">
<p class="wifiImg">
<img src="../../resources/image/connectWifi.png">
</p>
<div class="inputBox"> <div class="inputBox">
<div class="wifi"> <div class="wifi">
<span>&#xe62c;</span> <span>&#xe62c;</span>
......
...@@ -24,8 +24,7 @@ ...@@ -24,8 +24,7 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch> <v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.alarmInfo') }}</p> <p>{{ $t('title.alarmInfo') }}</p>
</div> </div>
<timeline :init-param="componentsConfig.alarmInfoList.initParam"></timeline> <u-list :init-param="componentsConfig.alarmInfoList.initParam"></u-list>
<div class="footer">{{ $t('footer.recordList') }}</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog> <u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading> <u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div> </div>
......
...@@ -24,8 +24,7 @@ ...@@ -24,8 +24,7 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch> <v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.hijackRecord') }}</p> <p>{{ $t('title.hijackRecord') }}</p>
</div> </div>
<timeline :init-param="componentsConfig.hijackRecordList.initParam"></timeline> <u-list :init-param="componentsConfig.hijackRecordList.initParam"></u-list>
<div class="footer">{{ $t('footer.recordList') }}</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog> <u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading> <u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div> </div>
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</li> </li>
</ul> </ul>
<u-button :init-param="componentsConfig.saveQRcodeButton.initParam" v-on:u-button-tap="onSaveQRcodeButtonTap"></u-button> <u-button :init-param="componentsConfig.saveQRcodeButton.initParam" v-on:u-button-tap="onSaveQRcodeButtonTap"></u-button>
<v-touch tag="p" v-on:tap="onLaterFollowTap">{{ $t('device.laterFollow') }}</v-touch> <p class="linkText"><v-touch tag="span" v-on:tap="onLaterFollowTap">{{ $t('device.laterFollow') }}</v-touch></p>
</div> </div>
</div> </div>
</transition> </transition>
......
...@@ -24,8 +24,7 @@ ...@@ -24,8 +24,7 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch> <v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.opendoorRecord') }}</p> <p>{{ $t('title.opendoorRecord') }}</p>
</div> </div>
<timeline :init-param="componentsConfig.opendoorRecordList.initParam"></timeline> <u-list :init-param="componentsConfig.opendoorRecordList.initParam"></u-list>
<div class="footer">{{ $t('footer.recordList') }}</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog> <u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading> <u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div> </div>
......
...@@ -32,6 +32,11 @@ ...@@ -32,6 +32,11 @@
</div> </div>
<u-button :init-param="componentsConfig.confirmButton.initParam" v-on:u-button-tap="onConfirmButtonTap"></u-button> <u-button :init-param="componentsConfig.confirmButton.initParam" v-on:u-button-tap="onConfirmButtonTap"></u-button>
</div> </div>
<u-commstatus-loading ref="ucommstatusloading" :text="textLoading" :status="status"
:init-param="componentsConfig.ucommstatusloading.initParam" v-on:u-commstatus-loading-tap="onCommstatusLoadingButtonTap()">
<p class="loader"></p>
<p class="icon"></p>
</u-commstatus-loading>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog> <u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading> <u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div> </div>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<li>{{ $t('qrcode.helpCont3') }}</li> <li>{{ $t('qrcode.helpCont3') }}</li>
<li>{{ $t('qrcode.helpCont4') }}</li> <li>{{ $t('qrcode.helpCont4') }}</li>
<li> <li>
<p></p> <canvas></canvas>
</li> </li>
</ul> </ul>
<u-button :init-param="componentsConfig.qrcodeButton.initParam" v-on:u-button-tap="onQRcodeButtonTap"></u-button> <u-button :init-param="componentsConfig.qrcodeButton.initParam" v-on:u-button-tap="onQRcodeButtonTap"></u-button>
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
</div> </div>
<div class="content"> <div class="content">
<div class="inputBox"> <div class="inputBox">
<p class="logo"></p>
<u-text :init-param="componentsConfig.telInput.initParam" :text="numberTel" <u-text :init-param="componentsConfig.telInput.initParam" :text="numberTel"
v-on:u-text-change="onTelChange(arguments[0])"></u-text> v-on:u-text-change="onTelChange(arguments[0])"></u-text>
<div class="code"> <div class="code">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<div id="app" v-cloak> <div id="app" v-cloak>
<div class="guideBg"> <div class="guideBg">
<p>{{ $t('footer.guide') }}</p> <p>{{ $t('guide.footer') }}</p>
</div> </div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog> <u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading> <u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
</div> </div>
<div class="content"> <div class="content">
<div class="inputBox"> <div class="inputBox">
<p class="logo"></p>
<u-text :init-param="componentsConfig.telInput.initParam" :text="numberTel" <u-text :init-param="componentsConfig.telInput.initParam" :text="numberTel"
v-on:u-text-change="onTelChange(arguments[0])"></u-text> v-on:u-text-change="onTelChange(arguments[0])"></u-text>
<u-text :init-param="componentsConfig.passwordInput.initParam" :text="textPassword" <u-text :init-param="componentsConfig.passwordInput.initParam" :text="textPassword"
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
</div> </div>
<div class="content"> <div class="content">
<div class="inputBox"> <div class="inputBox">
<p class="logo"></p>
<u-text :init-param="componentsConfig.telInput.initParam" :text="numberTel" <u-text :init-param="componentsConfig.telInput.initParam" :text="numberTel"
v-on:u-text-change="onTelChange(arguments[0])"></u-text> v-on:u-text-change="onTelChange(arguments[0])"></u-text>
<div class="code"> <div class="code">
......
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