Commit 8637eb82 by 朱建香

2018/01/05 20:50

1.检验是否开启通知
parent a5c4372f
......@@ -24,5 +24,14 @@
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
<filter>
<id>1514974720847</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
{
"loading": "loading...",
"scroll": {
"clickToLoadMore": "点击加载更多",
"loading": "loading..."
"clickToLoadMore": "上拉加载更多",
"loading": "loading"
},
"btn": {
"confirm": "确定",
......@@ -25,7 +25,8 @@
"add": "添加",
"next": "下一步",
"iSee": "我知道了",
"unbindDoorlock": "解绑门锁"
"unbindDoorlock": "解绑门锁",
"finish": "完成"
},
"dialog":{
"confirm": "确认",
......@@ -190,8 +191,8 @@
"wifiAdd": {
"unbindWifiTip": "当前无Wi-Fi",
"wifiBinding": "配网中",
"wifiBindSuccess": "配网成功,请激活设备",
"deviceActivating": "设备激活中",
"wifiBindSuccess": "Wi-Fi连接成功,正在激活设备",
"deviceActivating": "Wi-Fi连接成功,正在激活设备",
"deviceActivateSuccess":"激活成功",
"deviceActivateFailure":"激活失败",
"bindTimeout":"连接超时",
......@@ -271,10 +272,10 @@
},
"inviteBind":{
"qrcodeExpireTip": "二维码已过期,请重新生成",
"title": "注意事项:",
"cont1": "1.被邀请的用户选择添加设备页面中的扫二维码方式进行添加门锁",
"cont2": "2.长按二维码保存为图片,发送给被邀请用户,用户通过长按识别二维码",
"cont3": "3.有效时间10分钟,失效后请点击“重新生成二维码"
"title": "绑定方法:",
"cont1": "1.受邀用户登录“U智锁”APP",
"cont2": "2.选择“扫描绑定设备”",
"cont3": "3.扫描上方二维码完成绑定"
},
"unlockInfo":{
"bindUnlockInfo": "已关联的开锁信息",
......@@ -337,5 +338,23 @@
"deviceList":{
"model": "型号:",
"noDeviceTip": "暂无产品型号"
},
"notice":{
"tip": "您还未开启通知,将无法及时接受安全推送!",
"button": "去开启"
},
"help": {
"title": "如何解决安卓手机收不到消息提醒?",
"contTip": "因部分安卓系统会在锁屏时自动清理后台运行的应用导致无法及时通知,需根据引导进行以下设置后即可随时随地收到消息推送。",
"contTitle": "如何设置:",
"contSubtitle1": "1.设置自启动",
"contText1-1": "安卓5.0以上系统需要设置应用自启动,未加入自启动的应用在杀进程或重新开机后无法推送通知。",
"contText1-2": "在软件授权管理或启动管理中(通常在手机管家或设置菜单中)找到本app并开启自启动。",
"step": "操作步骤:",
"contSubtitle2": "2.设置后台保活",
"contText2-1": "安卓7.0以上系统需要设置受保护的后台应用,未设置的应用在设备进入睡眠后会自动杀掉,只有手动开启应用才能恢复消息推送。",
"contText2-2": "在设置中找到电量与性能,点击受保护的后台应用,找到本app并开启保护。",
"contText3-1": "安卓手机须将应用加入白名单中,否则清理后台杀掉应用进程后,只有手动开启应用才能恢复消息推送。",
"contText3-2": "启动本app后打开多任务页面(清理后台应用的页面),将本app加入白名单。"
}
}
\ No newline at end of file
......@@ -17,7 +17,10 @@
"connect": "连接",
"bindUser": "绑定姓名",
"bind": "我要绑定",
"reBound": "请重新绑定",
"startNow": "立即体验",
"ignore": "暂不开启",
"openNotify": "开启推送通知",
"reBound": "重新绑定",
"saveQRcode": "保存二维码到相册",
"unbind": "解绑",
"deleteUser": "删除该用户",
......@@ -25,7 +28,8 @@
"add": "添加",
"next": "下一步",
"iSee": "我知道了",
"unbindDoorlock": "解绑门锁"
"unbindDoorlock": "解绑门锁",
"finish": "完成"
},
"dialog":{
"confirm": "确认",
......@@ -199,6 +203,7 @@
"remindTitle": "配置Wi-Fi提醒:",
"remindCont1": "1. 请确保Wi-Fi信号良好",
"remindCont2": "2. 本产品暂不支持5GHz无线网络",
"noticeTip": "检测到您还未开启通知,将无法及时<br>接受安全推送",
"error": {
}
......@@ -337,5 +342,23 @@
"deviceList":{
"model": "型号:",
"noDeviceTip": "暂无产品型号"
},
"notice":{
"tip": "您还未开启通知,将无法及时接受安全推送!",
"button": "去开启"
},
"help": {
"title": "如何解决安卓手机收不到消息提醒?",
"contTip": "因部分安卓系统会在锁屏时自动清理后台运行的应用导致无法及时通知,需根据引导进行以下设置后即可随时随地收到消息推送。",
"contTitle": "如何设置:",
"contSubtitle1": "1.设置自启动",
"contText1-1": "安卓5.0以上系统需要设置应用自启动,未加入自启动的应用在杀进程或重新开机后无法推送通知。",
"contText1-2": "在软件授权管理或启动管理中(通常在手机管家或设置菜单中)找到本app并开启自启动。",
"step": "操作步骤:",
"contSubtitle2": "2.设置后台保活",
"contText2-1": "安卓7.0以上系统需要设置受保护的后台应用,未设置的应用在设备进入睡眠后会自动杀掉,只有手动开启应用才能恢复消息推送。",
"contText2-2": "在设置中找到电量与性能,点击受保护的后台应用,找到本app并开启保护。",
"contText3-1": "安卓手机须将应用加入白名单中,否则清理后台杀掉应用进程后,只有手动开启应用才能恢复消息推送。",
"contText3-2": "启动本app后打开多任务页面(清理后台应用的页面),将本app加入白名单。"
}
}
\ No newline at end of file
export default {
"url": "https://cloud.iot.u-gen.net/"
"url": "http://192.168.2.96:20000"
}
\ No newline at end of file
......@@ -46,7 +46,7 @@ uPublic.recalc = function () {
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
docEl.style.fontSize = clientWidth / 10 + 'px';
docEl.style.fontSize = parseInt(clientWidth / 10, 10) + 'px';
};
window.addEventListener(resizeEvt, recalc, false);
recalc();
......
......@@ -13,7 +13,7 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 input、按钮、dialog、loading组件
uPublic.componentsInit(['u-text','u-button','u-comm-loading','u-dialog','u-loading']);
uPublic.componentsInit(['u-text','u-button','u-process','u-dialog','u-loading']);
uPublic.closeSlideBack();
const app = new Vue({
data:{
......@@ -22,7 +22,8 @@ function init() {
textErrorTip: null,
//配置组件
componentsConfig: initComponentsConfig(),
status: 0
status: 0,
noticeTipShowFlag: false
},
mounted(){
resolve(this);
......@@ -64,9 +65,9 @@ function init() {
connectButtonTap(this);
},
//tap loading button
onCommLoadingButtonTap(){
commLoadingButtonTap(this);
}
// onCommLoadingButtonTap(){
// commLoadingButtonTap(this);
// }
}
}).$mount('#app');
}
......@@ -99,11 +100,9 @@ function initComponentsConfig() {
class: 'custom-loading'
}
},
ucommloading: {
processLoading: {
initParam: {
class: 'custom-comm-loading',
buttonText: Vue.t('btn.confirm'),
text: Vue.t('addDevice.loading'),
class: 'custom-process',
status: 0
}
}
......@@ -154,7 +153,8 @@ function connectButtonTap(self){
}else if(self.getTextPassword() == null || self.getTextPassword().trim() == ''){
self.setTextErrorTip(Vue.t('wifiAdd.passwordInputTip'));
}else{
uComponents.showCommLoading(self);
// uComponents.showCommLoading(self);
uComponents.showProcess(self, 0, Vue.t('addDevice.loading'));
iot.business.sds.findWifi({
data: {
model: config.model,
......@@ -179,7 +179,8 @@ function connectButtonTap(self){
if (window.iotDebug) {
iotDebug.upload(iot,'配网中');
}
uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBinding'));
// uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBinding'));
uComponents.showProcess(self, 0, Vue.t('wifiAdd.wifiBinding'));
}else if(response.data == 'provisioned success'){
if(window.iotDebug){
iotDebug.push('end: 配网成功'+JSON.stringify(response));
......@@ -188,7 +189,8 @@ function connectButtonTap(self){
iotDebug.upload(iot,'配网成功');
}
//wifi连接成功,停止连接wifi
uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBindSuccess'));
// uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBindSuccess'));
uComponents.showProcess(self, 0, Vue.t('wifiAdd.wifiBindSuccess'));
}
},
error: (error) => {
......@@ -219,7 +221,8 @@ function connectButtonTap(self){
if (window.iotDebug) {
iotDebug.upload(iot,'激活中');
}
uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.deviceActivating'));
// uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.deviceActivating'));
uComponents.showProcess(self, 0, Vue.t('wifiAdd.deviceActivating'));
}else if(response.data == "joined success"){
if(window.iotDebug){
iotDebug.push('end: 激活成功'+JSON.stringify(response));
......@@ -237,9 +240,10 @@ function connectButtonTap(self){
if (window.iotDebug) {
iotDebug.upload(iot,'激活失败');
}
uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
// uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
addFailue(self);
self.setStatus(2);
uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
// uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
//停止查找设备
iot.business.sds.stopFindDevices({
success: (response) => {},
......@@ -263,9 +267,10 @@ function connectButtonTap(self){
if(self.getStatus() == 0){
console.log("timeout");
//连接失败
uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.bindTimeout'));
// uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.bindTimeout'));
self.setStatus(2);
uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
// uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
addFailue(self);
//停止查找设备
iot.business.sds.stopFindDevices({
success: (response) => {},
......@@ -300,8 +305,9 @@ function unbind(self, deviceId, productId){
if (window.iotDebug) {
iotDebug.upload(iot,'解绑失败');
}
uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
// uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
// uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
addFailue(self);
self.setStatus(2);
},
complete: () => {
......@@ -322,9 +328,10 @@ function bind(self, deviceId, productId){
console.log(response);
let data = response.data;
if(data.success){
uComponents.changeCommLoadingStatusAndText(self, 1, Vue.t('wifiAdd.deviceActivateSuccess'));
uComponents.changeCommButtonText(self, Vue.t('btn.confirm'));
// uComponents.changeCommLoadingStatusAndText(self, 1, Vue.t('wifiAdd.deviceActivateSuccess'));
// uComponents.changeCommButtonText(self, Vue.t('btn.confirm'));
self.setStatus(1);
addSuccess(self);
}
if(window.iotDebug){
iotDebug.push('end: 绑定成功'+JSON.stringify(response));
......@@ -341,19 +348,49 @@ function bind(self, deviceId, productId){
if (window.iotDebug) {
iotDebug.upload(iot,'绑定失败');
}
uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
// uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
// uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));、
addFailue(self);
self.setStatus(2);
},
complete: () => {}
});
}
//tap loading button
function commLoadingButtonTap(self) {
if(self.getStatus() == 1){
//绑定成功
uComponents.hideCommLoading(self);
function addFailue(self){
uComponents.showProcess(self, 2, Vue.t('wifiAdd.deviceActivateFailure'), [{
"class": 'custom-process-button', 'text': Vue.t('addDevice.reBindDevice'), 'callback': () => {
//激活失败
uComponents.hideProcess(self);
self.setStatus(0);
uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('addDevice.loading'));
}
}]);
}
function addSuccess(self){
if(!iot.native.isNotifycationOpen()){
self.noticeTipShowFlag = true;
uComponents.showProcess(self, 1, Vue.t('wifiAdd.deviceActivateSuccess'), [{
"class": 'custom-process-button', 'text': Vue.t('btn.openNotify'), 'callback': () => {
//开启推送通知
if(plus.os.name == 'Android'){
alert("打开通知页面");
// iot.navigator.openWindow({
// url: './notify.html',
// id: 'notify',
// styles: {
// popGesture: 'none'
// }
// });
}else{
iot.native.toNotifycationSetting();
}
}
},{
"class": 'custom-process-button custom-process-cancelButton', 'text': Vue.t('btn.ignore'), 'callback': () => {
//暂不开启
uComponents.hideProcess(self);
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
needClose: true
});
......@@ -361,10 +398,41 @@ function commLoadingButtonTap(self) {
url: '../device/index.html',
id: 'device'
});
}else if(self.getStatus() == 2){
//绑定失败
uComponents.hideCommLoading(self);
self.setStatus(0);
uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('addDevice.loading'));
}
}]);
}else{
uComponents.showProcess(self, 1, Vue.t('wifiAdd.deviceActivateSuccess'), [{
"class": 'custom-process-button', 'text': Vue.t('btn.startNow'), 'callback': () => {
//立即体验
uComponents.hideProcess(self);
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
needClose: true
});
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device'
});
}
}]);
}
}
//tap loading button
//function commLoadingButtonTap(self) {
// if(self.getStatus() == 1){
// //绑定成功
// uComponents.hideCommLoading(self);
// iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
// needClose: true
// });
// iot.navigator.openWindow({
// url: '../device/index.html',
// id: 'device'
// });
// }else if(self.getStatus() == 2){
// //绑定失败
// uComponents.hideCommLoading(self);
// self.setStatus(0);
// uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('addDevice.loading'));
// }
//}
\ No newline at end of file
......@@ -23,10 +23,12 @@ function init() {
list:[],
startId: 0,
deviceId: null,
flag: true
flag: true,
noticeTipShowFlag: false
},
mounted(){
uComponents.showLoading(this);
this.noticeTipShowFlag = !iot.native.isNotifycationOpen();
resolve(this);
},
methods:{
......@@ -55,6 +57,9 @@ function init() {
onRefreshFresh(){
refreshFresh(this);
},
onNotifycationSetting(){
notifycationSetting();
},
//tap <
onBackTap(){
backTap();
......@@ -158,3 +163,20 @@ mui.back = function(){
function listLoad(self) {
resolve(self);
}
//ios跳转到系统设置页面
//android跳转到通知页面
function notifycationSetting(){
if(plus.os.name == 'Android'){
alert("打开通知页面");
// iot.navigator.openWindow({
// url: './notify.html',
// id: 'notify',
// styles: {
// popGesture: 'none'
// }
// });
}else{
iot.native.toNotifycationSetting();
}
}
......@@ -25,10 +25,12 @@ function init() {
startId: 0,
deviceId: null,
userInfo: [],
flag: true
flag: true,
noticeTipShowFlag: false
},
mounted(){
uComponents.showLoading(this);
this.noticeTipShowFlag = !iot.native.isNotifycationOpen();
resolve(this);
},
methods:{
......@@ -62,6 +64,9 @@ function init() {
onRefreshFresh(){
refreshFresh(this);
},
onNotifycationSetting(){
notifycationSetting();
},
//tap <
onBackTap(){
backTap();
......@@ -180,3 +185,20 @@ function listLoad(self) {
function refreshFresh(self){
resolve(self);
}
//ios跳转到系统设置页面
//android跳转到通知页面
function notifycationSetting(){
if(plus.os.name == 'Android'){
alert("打开通知页面");
// iot.navigator.openWindow({
// url: './notify.html',
// id: 'notify',
// styles: {
// popGesture: 'none'
// }
// });
}else{
iot.native.toNotifycationSetting();
}
}
......@@ -23,6 +23,10 @@ function init() {
if(iot.navigator.getExtras().needClose){
iot.navigator.closeAllBesidesItself();
}
// console.log(iot.native.isNotifycationOpen());
// iot.native.toNotifycationSetting();
const app = new Vue({
data:{
//开门记录
......
......@@ -24,10 +24,12 @@ function init() {
startId: 0,
deviceId: null,
userInfo: [],
flag: true
flag: true,
noticeTipShowFlag: false
},
mounted(){
uComponents.showLoading(this);
this.noticeTipShowFlag = !iot.native.isNotifycationOpen();
resolve(this);
},
methods:{
......@@ -61,6 +63,9 @@ function init() {
onRefreshFresh(){
refreshFresh(this);
},
onNotifycationSetting(){
notifycationSetting();
},
//tap <
onBackTap(){
backTap();
......@@ -214,3 +219,20 @@ function setListData(self, response){
}else{
}
}
//ios跳转到系统设置页面
//android跳转到通知页面
function notifycationSetting(){
if(plus.os.name == 'Android'){
alert("打开通知页面");
// iot.navigator.openWindow({
// url: './notify.html',
// id: 'notify',
// styles: {
// popGesture: 'none'
// }
// });
}else{
iot.native.toNotifycationSetting();
}
}
......@@ -9,7 +9,6 @@
import {iot, uPublic, uComponents} from '../../public/public.js';
iot.ready(init);
function init() {
//通用 dialog、loading组件
......@@ -19,6 +18,14 @@ function init() {
if(iot.navigator.getExtras().needClose){
iot.navigator.closeAllBesidesItself();
}
var isSdsBack = false;
console.log(isSdsBack);
if(!isSdsBack){
document.addEventListener("resume", () => {
loginButtonTap(this);
}, false);
}
const app = new Vue({
data:{
//配置组件
......@@ -113,6 +120,7 @@ function loginButtonTap(self){
}
},
error: (error) => {
isSdsBack = true;
self.setShowLoginButtonFlag(true);
console.log(error);
if(window.iotDebug){
......
......@@ -183,9 +183,10 @@
.mediaPosition();
.u-comm-loading();
//.u-comm-loading();
.u-process();
.custom-comm-loading();
//.custom-comm-loading();
//
.scanContent {
......@@ -195,3 +196,61 @@
left: 0;
width: 100%;
}
.noticeContent{
color: #FF0000;
line-height: 1.5;
text-align: center;
width: 100%;
display: inline-block;
position: absolute;
bottom: -100%;
span{
&:first-child{
.iconfont(20px);
}
}
}
.custom-process-button{
position: absolute;
bottom: inherit;
left: 0;
right: 0;
width: 7.333rem;
border-radius: 0.133rem;
background-color: transparent;
border: 1px solid;
color: #00ffff;
font-size: 0.427rem;
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;
}
.custom-process-cancelButton{
bottom: 0;
width: 100px;
color: #00ffff;
font-size: 12px;
background-color: transparent;
padding: 18px 0 5px;
border: none;
&:after{
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.blue_gradient_border();
}
.tap_row(transparent);
&.disabled{
background-color: transparent;
}
}
......@@ -49,6 +49,18 @@
}
}
.notice{
span{
&:first-child{
.iconfont(24px);
}
}
height: 20px;
~.custom-list{
top: 64px;
}
}
@-webkit-keyframes refresh {
0% {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
......
......@@ -368,6 +368,34 @@ p{
}
}
.custom-process(){
.custom-process{
background-color: @CUSTOM-BACKDROP-BG;
.u-process-button{
bottom: 134px;
width: 100px;
color: #00ffff;
font-size: 12px;
background-color: transparent;
padding: 18px 0 5px;
&:after{
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;/*no*/
.blue_gradient_border();
}
.tap_row(transparent);
&.disabled{
background-color: transparent;
}
}
}
}
//自定义弹出框组件
.custom-dialog(){
.custom-dialog{
......
......@@ -894,6 +894,146 @@
});
}
.u-process(){
.u-process{
.mask(1050);
.u-process-content{
.transformV_center(left,0);
width: 100%;
.loader{
font-size: 16px;
width: 3.750em;
height: 3.750em;
margin: 0 auto;
position: relative;
&:before{
content: '';
.margin_center(0.500em,0.500em);
border-radius: 50%;
.transform(translateZ(0) scale(0.55));
}
}
.icon{
font-size: 16px;
width: 3.750em;
height: 3.750em;
margin: 0 auto;
position: relative;
&:before{
.transform_center();
.iconfont(4.125em);
}
}
.u-process-text{
margin-top: 20px;
text-align: center;
}
}
.u-process-button{
position: absolute;
bottom: 65px;
left: 0;
width: 100%;
display: table;
table-layout: fixed;
border-collapse: separate;
border-spacing: 25px 0;
li{
// display: table-cell;
// color: @BUTTON-COMPONENT-COLOR;
// font-size: inherit;
// background-color: @BUTTON-COMPONENT-BG;
// border-radius: 5px;
// text-align: center;
// line-height: 1;
// 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-process-status-0{
.u-process-content{
color: #00ffff;
.loader{
display: block;
&:before{
.animation(commLoading 1.3s linear infinite);
}
}
.icon{
display: none;
}
}
}
//成功 state
&.u-process-status-1{
.u-process-content{
color: #00ffff;
.loader{
display: none;
}
.icon{
display: block;
&:before{
content: '\e800';
}
}
}
}
//失败 state
&.u-process-status-2{
.u-process-content{
color: #fff;
.loader{
display: none;
}
.icon{
display: block;
&:before{
content: '\e646';
}
}
}
}
}
.keyframes(commLoading,{
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-text{
width: 100%;
......
......@@ -911,7 +911,7 @@ p {
}
}
.u-comm-loading {
.u-process {
position: fixed;
top: 0;
left: 0;
......@@ -921,24 +921,24 @@ p {
background-color: rgba(0, 0, 0, 0.8);
}
.u-comm-loading .u-comm-loading-content {
.u-process .u-process-content {
position: absolute;
top: 50%;
left: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
right: 0;
width: 100%;
}
.u-comm-loading .u-comm-loading-content .loader {
.u-process .u-process-content .loader {
font-size: 0.427rem;
margin: 0 auto;
width: 3.750em;
height: 3.750em;
margin: 0 auto;
position: relative;
}
.u-comm-loading .u-comm-loading-content .loader:before {
.u-process .u-process-content .loader:before {
content: '';
position: absolute;
top: 0;
......@@ -953,15 +953,15 @@ p {
transform: translateZ(0) scale(0.55);
}
.u-comm-loading .u-comm-loading-content .icon {
.u-process .u-process-content .icon {
font-size: 0.427rem;
margin: 0 auto;
width: 3.750em;
height: 3.750em;
margin: 0 auto;
position: relative;
}
.u-comm-loading .u-comm-loading-content .icon:before {
.u-process .u-process-content .icon:before {
position: absolute;
top: 50%;
left: 50%;
......@@ -973,100 +973,71 @@ p {
line-height: 1;
}
.u-comm-loading .u-comm-loading-content .u-comm-loading-text {
font-size: 0.427rem;
.u-process .u-process-content .u-process-text {
margin-top: 0.533rem;
text-align: center;
}
.u-comm-loading .u-comm-loading-button {
.u-process .u-process-button {
position: absolute;
bottom: 1.733rem;
left: 0;
right: 0;
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-comm-loading .u-comm-loading-button:active {
background-color: #0065ff;
}
.u-comm-loading .u-comm-loading-button.disabled {
background-color: #bbb;
width: 100%;
display: table;
table-layout: fixed;
border-collapse: separate;
border-spacing: 0.667rem 0;
}
.u-comm-loading.u-comm-loading-status-0 .u-comm-loading-content {
.u-process.u-process-status-0 .u-process-content {
color: #00ffff;
}
.u-comm-loading.u-comm-loading-status-0 .u-comm-loading-content .loader {
.u-process.u-process-status-0 .u-process-content .loader {
display: block;
}
.u-comm-loading.u-comm-loading-status-0 .u-comm-loading-content .loader:before {
-webkit-animation: commLoading 1.3s infinite linear;
animation: commLoading 1.3s infinite linear;
.u-process.u-process-status-0 .u-process-content .loader:before {
-webkit-animation: commLoading 1.3s linear infinite;
animation: commLoading 1.3s linear infinite;
}
.u-comm-loading.u-comm-loading-status-0 .u-comm-loading-content .icon {
.u-process.u-process-status-0 .u-process-content .icon {
display: none;
}
.u-comm-loading.u-comm-loading-status-0 .u-comm-loading-button {
display: none;
}
.u-comm-loading.u-comm-loading-status-1 .u-comm-loading-content {
.u-process.u-process-status-1 .u-process-content {
color: #00ffff;
}
.u-comm-loading.u-comm-loading-status-1 .u-comm-loading-content .loader {
.u-process.u-process-status-1 .u-process-content .loader {
display: none;
}
.u-comm-loading.u-comm-loading-status-1 .u-comm-loading-content .icon {
.u-process.u-process-status-1 .u-process-content .icon {
display: block;
}
.u-comm-loading.u-comm-loading-status-1 .u-comm-loading-content .icon:before {
.u-process.u-process-status-1 .u-process-content .icon:before {
content: '\e800';
}
.u-comm-loading.u-comm-loading-status-1 .u-comm-loading-button {
display: block;
}
.u-comm-loading.u-comm-loading-status-2 .u-comm-loading-content {
.u-process.u-process-status-2 .u-process-content {
color: #fff;
}
.u-comm-loading.u-comm-loading-status-2 .u-comm-loading-content .loader {
.u-process.u-process-status-2 .u-process-content .loader {
display: none;
}
.u-comm-loading.u-comm-loading-status-2 .u-comm-loading-content .icon {
.u-process.u-process-status-2 .u-process-content .icon {
display: block;
}
.u-comm-loading.u-comm-loading-status-2 .u-comm-loading-content .icon:before {
.u-process.u-process-status-2 .u-process-content .icon:before {
content: '\e646';
}
.u-comm-loading.u-comm-loading-status-2 .u-comm-loading-button {
display: block;
}
@-webkit-keyframes commLoading {
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;
......@@ -1151,20 +1122,62 @@ p {
}
}
.custom-comm-loading {
background-color: rgba(36, 38, 53, 0.9);
.scanContent {
position: fixed;
top: 1.173rem;
bottom: 0;
left: 0;
width: 100%;
}
.noticeContent {
color: #FF0000;
line-height: 1.5;
text-align: center;
width: 100%;
display: inline-block;
position: absolute;
bottom: -100%;
}
.noticeContent span:first-child {
font-family: iconfont;
font-size: 0.533rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.custom-process-button {
position: absolute;
bottom: inherit;
left: 0;
right: 0;
width: 7.333rem;
border-radius: 0.133rem;
background-color: transparent;
border: 0.027rem solid;
color: #00ffff;
font-size: 0.427rem;
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;
}
.custom-comm-loading .u-comm-loading-button {
bottom: 3.573rem;
.custom-process-cancelButton {
bottom: 0;
width: 2.667rem;
color: #00ffff;
font-size: 0.32rem;
background-color: transparent;
padding: 0.48rem 0 0.133rem;
border: none;
}
.custom-comm-loading .u-comm-loading-button:after {
.custom-process-cancelButton:after {
content: '';
position: absolute;
bottom: 0;
......@@ -1175,18 +1188,10 @@ p {
background: linear-gradient(to right, #242635, #00ffff, #242635);
}
.custom-comm-loading .u-comm-loading-button:active {
.custom-process-cancelButton:active {
background-color: transparent;
}
.custom-comm-loading .u-comm-loading-button.disabled {
.custom-process-cancelButton.disabled {
background-color: transparent;
}
\ No newline at end of file
.scanContent {
position: fixed;
top: 1.173rem;
bottom: 0;
left: 0;
width: 100%;
}
\ No newline at end of file
......@@ -43,10 +43,18 @@
</ul>
<u-button :init-param="componentsConfig.connectButton.initParam" v-on:u-button-tap="onConnectButtonTap"></u-button>
</div>
<u-comm-loading ref="ucommloading" :init-param="componentsConfig.ucommloading.initParam" v-on:u-comm-loading-tap="onCommLoadingButtonTap()">
<!--<u-comm-loading ref="ucommloading" :init-param="componentsConfig.ucommloading.initParam" v-on:u-comm-loading-tap="onCommLoadingButtonTap()">
<p class="loader"></p>
<p class="icon"></p>
</u-comm-loading>
</u-comm-loading> -->
<u-process ref="uprocess" :init-param="componentsConfig.processLoading.initParam">
<p class="loader"></p>
<p class="icon"></p>
<p class="noticeContent" v-show = "noticeTipShowFlag">
<span>&#xe637;</span>
<span v-html="$t('wifiAdd.noticeTip')"></span>
</p>
</u-process>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -25,7 +25,14 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.alarmInfo') }}</p>
</div>
<div class="content">
<div class="notice" v-if="noticeTipShowFlag">
<span>&#xe637;</span>
{{ $t('notice.tip') }}
<v-touch tag="span" v-on:tap="onNotifycationSetting()">{{ $t('notice.button') }}</v-touch>
</div>
<u-list ref="ulist" :init-param="componentsConfig.alarmInfoList.initParam" v-on:u-list-load="onListLoad()"></u-list>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -25,7 +25,14 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.hijackRecord') }}</p>
</div>
<div class="content">
<div class="notice" v-if="noticeTipShowFlag">
<span>&#xe637;</span>
{{ $t('notice.tip') }}
<v-touch tag="span" v-on:tap="onNotifycationSetting()">{{ $t('notice.button') }}</v-touch>
</div>
<u-list ref="ulist" :init-param="componentsConfig.hijackRecordList.initParam" v-on:u-list-load="onListLoad()"></u-list>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -25,7 +25,14 @@
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.opendoorRecord') }}</p>
</div>
<div class="content">
<div class="notice" v-if="noticeTipShowFlag">
<span>&#xe637;</span>
{{ $t('notice.tip') }}
<v-touch tag="span" v-on:tap="onNotifycationSetting()">{{ $t('notice.button') }}</v-touch>
</div>
<u-list ref="ulist" :init-param="componentsConfig.opendoorRecordList.initParam" v-on:u-list-load="onListLoad()"></u-list>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
......
......@@ -599,6 +599,21 @@ p {
padding-top: 2.347rem;
}
.notice {
height: 0.533rem;
}
.notice span:first-child {
font-family: iconfont;
font-size: 0.64rem;
-webkit-font-smoothing: antialiased;
line-height: 1;
}
.notice ~ .custom-list {
top: 1.707rem;
}
@-webkit-keyframes refresh {
0% {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
......
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