Commit 27a2398b by 朱建香

4

parent 96857b1c
......@@ -6,11 +6,8 @@ class CheckUpdate{
constructor() {
}
checkWgtuVersion(min, max){
console.log(min);
console.log(max);
let wgtu = this.checkVersion(min.ver, max.ver);
console.log(wgtu);
checkWgtuVersion(min, max, nowVer){
let wgtu = this.checkVersion(min.ver, max.ver, nowVer);
let support = false;
let type = "";
if(plus.os.name == 'Android'){
......@@ -18,8 +15,11 @@ class CheckUpdate{
}else if(plus.os.name == 'iOS'){
type = 'ios';
}
console.log(type);
if(wgtu){
if(max.support[type] < plus.runtime.version){
console.log(max.support[type]);
//若是当前的版本小于支持版本,则app必须更新
if(plus.runtime.version < max.support[type]){
support = true;
}
}
......@@ -27,39 +27,29 @@ class CheckUpdate{
"wgtu": wgtu,
"support": support
}
console.log(wgtuSupport);
return wgtuSupport;
}
checkVersion(min, max){
checkVersion(min, max, ver){
let minVer = this.transformVersion(min);
let maxVer = this.transformVersion(max);
console.log(minVer+maxVer);
console.log(plus.runtime.version);
let nowVer = this.transformVersion(plus.runtime.version);
console.log(minVer);
console.log(maxVer);
console.log(nowVer);
let nowVer = this.transformVersion(ver);
if(nowVer < minVer){
//当前版本小于最低版本,必须更新app
console.log("必须更新app");
return NEED_UPDATE;
}else if(nowVer < maxVer){
//当前版本介于最低版本和最高版本之间,可选择更新app
console.log("可选择更新app");
return CHOOSE_UPDATE;
}else{
//等于当前版本不用更新
console.log("不用更新");
return NO_UPDATE;
}
}
//将版本号转化成
//将版本号转化成可对比数字
transformVersion(v) {
var array = v.split(".");
var floatVersion = "";
console.log("下面是获取系统版本");
console.log(array);
if(array.length>2){
for (var i = 0; i < array.length; i++) {
......
......@@ -12,4 +12,8 @@ projectMethods.changeList = function (vmObj, list) {
vmObj.$refs.list.changeList(list);
};
projectMethods.checkUpdate = function (vmObj) {
vmObj.$refs.checkwgtu.start();
};
export default projectMethods
\ No newline at end of file
import androidNotify from '../view/c_android-notify.vue';
import checkwgtu from '../view/c_checkWgtu.vue';
import gridList from '../view/c_grid-list.vue';
import list from '../view/c_list.vue';
import timeline from '../view/c_timeline.vue';
......@@ -6,6 +7,7 @@ import updateApp from '../view/c_update-app.vue';
var components = {
'android-notify': androidNotify,
'checkwgtu': checkwgtu,
'grid-list': gridList,
'list': list,
'timeline': timeline,
......
......@@ -218,230 +218,6 @@ uPublic.getUrlQuery = function (url){
}
}
//检验在sds中,该用户是否绑定设备
uPublic.cheackSdsDeviceExit = function(self){
iot.business.sds.getDevicesByUser({
success: (response) => {
console.log(response);
let data = uPublic.checkResponseData(response.data);
if(data){
//sds,绑定关系已存在
uPublic.cheackCloudDeviceExit(self, data.sn);
}else{
//sds,关系不存在
uPublic.linkToAddDevice();
}
},
error: (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
},
complete: () => {}
});
}
//检验在云端中,该用户是否绑定设备
uPublic.cheackCloudDeviceExit = function(self, deviceId){
// console.log(iot.business.product.getInfoById({
// data:{
// pid:1
// },
// success:function(res){
// console.log(res);
// }
// }));
try{
iot.business.product.getInfoById({
data:{
pid:1
},
success:function(response){
console.log(response);
console.log("innnn");
let data = response.data;
console.log(data);
let wgut = new CheckUpdate().checkWgtuVersion(data.min,data.now);
console.log(wgut);
}
});
console.log(plus.os.name);
let os = "";
if(plus.os.name == 'Android'){
os = "android";
}else if(plus.os.name == 'iOS'){
os = "ios";
}
iot.business.app.getVersion({
data:{
os:os
},
success:function(response){
console.log(response);
let data = response.checkResponseData(data);
if(data){
let update = new CheckUpdate().checkVersion(data.min,data.now);
console.log(update);
}
}
});
}
catch(e) {
console.log(e);
}
// iot.business.api.send('lock/getDeviceProductId', {
// data: {
// device_id: deviceId
// },
// success: (response) => {
// console.log(response);
// let data = uPublic.checkResponseData(response.data);
// if(data){
//云端,绑定关系已存在
// uPublic.linkToIndex(self);
// }else{
// //云端,关系不存在
// uPublic.linkToAddDevice();
// }
// },
// error: (error) => {
// console.log(error);
// },
// complete: () => {}
// });
}
//页面跳转到首页
uPublic.linkToIndex = async function (self){
var updateInfo = await iot.storage.getMap('updateInfo');
console.log(updateInfo);
// var newUpdateInfo = data.updateInfo;
var newUpdateInfo = [{
'productId': '01',
'version': '0.0.4',
'url': 'http://192.168.2.184:8010/custom01.wgtu'
}];
console.log(newUpdateInfo.length);
if(newUpdateInfo.length){
for(let i=0; i<newUpdateInfo.length; i++){
let curVersion = newUpdateInfo[i].version;
let oldVersion = '0.0.0';
if(updateInfo){
for(let j=0; j<updateInfo.length; j++){
if(newUpdateInfo[i].product_id == updateInfo[j].product_id){
oldVersion = updateInfo[j].version
}
}
}
console.log(curVersion+oldVersion);
// 这里传入Update参数
let update = new Update(curVersion,oldVersion,newUpdateInfo[i].url);
console.log(update);
//需要更新
//重写 update中的方法,在下面方法中可以对更新app的相关生命周期进行操作
update.onDownloadStart = ()=>{
console.log("index page log onDownloadStart");
uComponents.showProcess(self, 0, '正在下载资源', []);
}
update.onDownloadSuccess = ()=>{
uComponents.showProcess(self, 0, '下载成功', []);
console.log("index page log onDownloadSuccess");
}
update.onInstallStart = ()=>{
uComponents.showProcess(self, 0, '安装中...', []);
// self.downloadPercent = null;
console.log("index page log onInstallStart");
}
update.onInstallSuccess = ()=>{
uComponents.showProcess(self, 0, '安装成功', []);
console.log(newUpdateInfo[i]);
try{
console.log("index page log onInstallSuccess");
//资源包安装成功,跳转到首页
iot.navigator.openWindow({
url: '../../custom/custom'+newUpdateInfo[i].productId+'/view/device/index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
//更新app缓存的productId和对应版本
iot.storage.setMap('updateInfo', newUpdateInfo, (response) => {
console.log(res);
}, () => {});
}
catch(e){
console.log(e);
}
}
update.onStateChanged = (download, status) => {
var percent = (download.downloadedSize/download.totalSize).toFixed(2)*100;
console.log(parseInt(percent));
// self.downloadPercent = parseInt(percent);
}
update.onError = ()=>{
console.log("index page log onError");
}
update.onNoNeedUpdate = () => {
console.log(".....不需要更新");
//不需要更新
iot.navigator.openWindow({
url: '../../custom/custom'+newUpdateInfo[i].productId+'/view/device/index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
update.startUpdate();
console.log(update);
}
}else{
//无资源包需要更新,跳到默认首页
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
}
//页面跳转到添加设备页面
uPublic.linkToAddDevice = function(){
iot.navigator.openWindow({
url: '../addDevice/index.html',
id: 'devicaddDevice',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
iot.ready(() => {
uPublic.recalc();
});
......
class Update{
constructor(curV,newV,url,needRestart) {//当前版本号、最新版本号以及获取最新安装包地址
this.curV = curV;
this.newV = newV;
constructor(url,needRestart) {//当前版本号、最新版本号以及获取最新安装包地址
this.url = url;
this.needRestart = false || needRestart;
}
startUpdate(){
if(this.curV != this.newV){
console.log("需要更新...");
this.downWgt();
}else{
console.log("不需要更新");
this.onNoNeedUpdate();
return ;
}
this.filename = '';
}
onStateChanged(download, status) {
......@@ -22,11 +10,13 @@ class Update{
}
downWgt(){
console.log("innnn");
this.onDownloadStart();
var dtask = plus.downloader.createDownload( this.url, {}, (d,status)=>{
if ( status == 200 ) {
this.onDownloadSuccess();
console.log("下载wgt成功:"+d.filename);
this.filename = d.filename;
this.installWgt(d.filename); // 安装wgt包
} else {
console.log("下载wgt失败!");
......@@ -42,8 +32,14 @@ class Update{
plus.runtime.install(path,{force: true},()=>{ //强制安装 不进行版本校验
console.log("安装wgt文件成功!");
this.onInstallSuccess();
//更新完毕删除更新包
plus.io.resolveLocalFileSystemURL(this.filename, function(entity) {
entity.remove();
console.log("删除wgt文件成功")
}, function(error) {
console.log(error);
});
//判断是否需要重启
console.log(this.needRestart);
if(this.needRestart){
plus.runtime.restart();
}
......@@ -72,10 +68,6 @@ class Update{
onInstallSuccess(){
console.log(`install wgt file success`);
}
onNoNeedUpdate(){
console.log(`no need update`);
}
}
export default Update;
\ No newline at end of file
......@@ -301,13 +301,14 @@ function scanCodeSuccess(self){
iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
needClose: true
});
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device',
extras: {
needClose: true
}
});
// iot.navigator.openWindow({
// url: '../device/index.html',
// id: 'device',
// extras: {
// needClose: true
// }
// });
uPublic.cheackSdsDeviceExit(self);
}
}]);
}
......
......@@ -460,34 +460,31 @@ function addSuccess(self){
},{
"class": 'custom-process-cancelButton', 'text': Vue.t('btn.ignore'), 'callback': () => {
//暂不开启
// uComponents.hideProcess(self);
// iot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{
// iot.navigator.openWindow({
// url: '../../custom/custom01/view/device/index.html',
// id: 'device',
// extras: {
// needClose: true
// }
// });
iot.navigator.openWindow({
url: '../../custom/custom01/view/device/index.html',
id: 'device',
extras: {
needClose: true
}
});
uPublic.cheackSdsDeviceExit(self);
}
}]);
}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: '../../custom/custom01/view/device/index.html',
id: 'device',
extras: {
needClose: true
}
});
// iot.navigator.openWindow({
// url: '../../custom/custom01/view/device/index.html',
// id: 'device',
// extras: {
// needClose: true
// }
// });
uPublic.cheackSdsDeviceExit(self);
}
}]);
}
......
/**
* list.vue
* Version: 0.1
* User: zjx
* Date: 2018-03-15
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* checkWgtu
*/
<template>
<div class="checkwgtu" v-show="showFlag" :class="initClass">
<ul class="checkwgtu-box">
<li class="checkwgtu-icon"></li>
<li class="checkwgtu-text">{{ loadingText }}</li>
</ul>
</div>
</template>
<script>
import Update from '../public/update.js';
import CheckUpdate from '../public/checkUpdate.js';
import {iot, uPublic, uComponents} from '../public/public.js';
export default {
props: ['initParam'],
data() {
return {
// 组件初始化列表
list: this.initParam.list || [],
// 组件初始化样式
initClass: this.initParam.class,
loadingText: Vue.t('loading'),
showFlag: false
}
},
mounted() {
getDeviceList();
},
methods: {
start(){
this.setShowFlag(true);
getDeviceList(this);
},
setShowFlag(flag){
this.showFlag = flag;
},
setLoadingText(text){
this.loadingText = text;
}
}
}
//获取云端用户列表
function getDeviceList(self){
iot.business.device.getList({
data: {
},
success: (response) => {
console.log(response);
let data = uPublic.checkResponseData(response.data);
if(data){
cheackSdsDevice(self, data);
}
},
error: (error) => {
console.log(error);
},
complete: () => {}
});
}
//检查sds中该设备是否绑定
function cheackSdsDevice(self, cloudData){
iot.business.sds.getDevicesByUser({
success: (response) => {
console.log(response);
let data = uPublic.checkResponseData(response.data);
if(data){
console.log(cloudData[0]);
let productId = checkData(data,cloudData[0]);
console.log(productId);
if(productId){
getWgtuUpdateInfo(self, productId);
}
}else{
//sds,关系不存在
openAddDevice();
}
},
error: (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
},
complete: () => {}
});
}
//匹配云端门锁信息和sds端门锁信息
function checkData(data, cloudData){
let flag = false;
for(let i=0; i<data.length; i++){
if(cloudData.device_id == data[i].sn){
return cloudData.product_id;
}
}
if(flag == false){
return false;
}
}
//获取云端资源更新信息
function getWgtuUpdateInfo(self, productId){
iot.business.product.getInfoById({
data:{
pid: productId
},
success:function(response){
let data = uPublic.checkResponseData(response.data);
if(data){
//检查资源包的更新
checkWgtuUpdate(self, data, productId);
}else{
//无资源更新,使用默认版本
openDefaultIndex();
}
},
error: (error) => {
console.log(error);
},
complete: () => {}
});
}
//检查资源包的更新
async function checkWgtuUpdate(self, data, productId){
let updateInfo = [];
let nowVersion = '0.0.0';
updateInfo = await iot.storage.getMap('updateInfo');
if(updateInfo){
for(let j=0; j<updateInfo.length; j++){
if(productId == updateInfo[j].product_id){
nowVersion = updateInfo[j].version
}
}
}
let update = new CheckUpdate().checkWgtuVersion(data.min, data.now, nowVersion);
switch(update.wgtu){
case 2:
//必须更新资源包
//需要更新app,则先更新app
console.log("必须更新资源包");
if(update.support){
//app更新到最新版本
console.log("必须更新app");
updateApp(self);
}else{
downloadWgtu(self, productId, data.now.download, data.now.ver);
}
break;
case 1:
//可选择是否更新资源包
console.log("可选择是否更新资源包");
uComponents.openConfirm(self.$parent, '是否需要更新资源包?',
{text: '取消', callback: function () {
//不需要更新
openProductIndex(productId);
}},
{text: '更新', callback: function () {
//需要更新app,则先更新app
if(update.support){
//app更新到最新版本
console.log("必须更新app");
updateApp(self);
}else{
downloadWgtu(self, productId, data.now.download, data.now.ver);
}
}}
);
break;
case 0:
openProductIndex(productId);
break;
}
}
//更新app
function updateApp(self){
console.log(plus.os.name);
let os = "";
if(plus.os.name == 'Android'){
os = "android";
}else if(plus.os.name == 'iOS'){
os = "ios";
}
iot.business.app.getVersion({
data:{
os:os
},
success:function(response){
console.log(response);
let data = response.data;
if(data){
uComponents.openConfirm(self.$parent, '当前资源需要更新APP,否则APP无法正常运行。。。',
{text: '取消', callback: function () {
//不更新
plus.runtime.quit();
}},
{text: '更新', callback: function () {
plus.runtime.openURL(data.url);
}}
);
}
},
error: (error) => {
console.log(error);
},
complete: () => {}
});
}
//下载资源包
async function downloadWgtu(self, productId, url, version){
// 这里传入Update参数
let update = new Update(url);
console.log(update);
//需要更新
//重写 update中的方法,在下面方法中可以对更新app的相关生命周期进行操作
update.onDownloadStart = ()=>{
self.setLoadingText('正在下载资源');
console.log("index page log onDownloadStart");
}
update.onDownloadSuccess = ()=>{
self.setLoadingText('下载成功');
console.log("index page log onDownloadSuccess");
}
update.onInstallStart = ()=>{
self.setLoadingText('安装中...');
console.log("index page log onInstallStart");
}
update.onInstallSuccess = async ()=>{
self.setLoadingText('安装成功');
console.log("index page log onInstallSuccess");
//资源包安装成功,跳转到首页
openProductIndex(productId);
//更新app缓存的productId和对应版本
let updateInfo = [];
let flag = false
updateInfo = await iot.storage.getMap('updateInfo') ? await iot.storage.getMap('updateInfo') : [];
console.log(updateInfo);
if(updateInfo){
for(let j=0; j<updateInfo.length; j++){
if(productId == updateInfo[j].product_id){
flag = true;
updateInfo.splice(j,1,{
'product_id': productId,
'version': version
});
}
}
}else{
updateInfo.push({
'product_id': productId,
'version': version
});
console.log(updateInfo);
}
if(flag == false){
updateInfo.push({
'product_id': productId,
'version': version
});
}
console.log(updateInfo);
iot.storage.setMap('updateInfo', updateInfo, (response) => {
console.log(res);
}, () => {});
}
update.onStateChanged = (download, status) => {
var percent = (download.downloadedSize/download.totalSize).toFixed(2)*100;
console.log(percent);
}
update.onError = ()=>{
console.log("index page log onError");
}
update.downWgt();
}
//页面跳转到添加设备页面
function openAddDevice(){
iot.navigator.openWindow({
url: '../addDevice/index.html',
id: 'devicaddDevice',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
//页面跳转到默认主页
function openDefaultIndex(){
iot.navigator.openWindow({
url: '../device/index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
//页面跳转到默认主页
function openProductIndex(pid){
//验证存在该页面
iot.navigator.openWindow({
url: '../../custom/custom'+pid+'/view/device/index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
</script>
\ No newline at end of file
......@@ -8,11 +8,13 @@
*/
import {iot, uPublic, uComponents} from '../../public/public.js';
import projectMethods from '../../public/components.js';
iot.ready(init);
function init() {
//通用 dialog、loading组件
uPublic.componentsInit(['u-dialog','u-loading','u-button','u-process']);
uPublic.componentsInit(['u-dialog','u-loading','u-button']);
uPublic.componentsExtend(['checkwgtu']);
uPublic.closeSlideBack();
//是否需要关闭其他页面
if(iot.navigator.getExtras().needClose){
......@@ -82,10 +84,9 @@ function initComponentsConfig() {
class: 'custom-loading'
}
},
processLoading: {
checkwgtu: {
initParam: {
class: 'custom-process',
status: 0
class: 'custom-checkwgtu'
}
}
}
......@@ -93,7 +94,7 @@ function initComponentsConfig() {
//sds登陆
function loginButtonTap(self){
uComponents.showProcess(self, 0, '数据加载中...', []);
// uComponents.showLoading(self);
if (plus.os.name == 'Android') {
iot.permission.checkPermission(['READ_EXTERNAL_STORAGE'], function (res) {
console.log('success', res);
......@@ -224,7 +225,7 @@ function cloudsLogin(self, id){
// needClose: true
// }
// });
uPublic.cheackSdsDeviceExit(self);
projectMethods.checkUpdate(self);
plus.navigator.closeSplashscreen();
},
error: (error) => {
......
/**
* list.vue
* Version: 0.1
* User: shz
* Date: 2017-06-20
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* list
*/
<template>
<div class="u-list" v-bind:class="initClass">
<ul class="u-list-scroll" v-show="list.length">
<v-touch tag="li" class="u-list-row" v-for="(item, index) in list" :key="index"
v-bind:class="[item.class, {disabled: item.disabled}]" v-on:tap="onTapRow(index)">
<img class="u-list-left-image" v-if="item.leftImage" v-bind:src="item.leftImage">
<p class="u-list-left-bg-image" v-bind:class="item.imgClass" v-else-if="item.imgClass"></p>
<span class="u-list-left-icon" v-else-if="item.leftIcon" v-html="item.leftIcon"></span>
<div>
<p class="u-list-title">{{ item.title }}</p>
<p class="u-list-subtitle" v-if="item.subtitle">{{ item.subtitle }}</p>
</div>
<span class="u-list-right-text" v-if="item.rightText">{{ item.rightText }}</span>
<span class="u-list-right-icon" v-if="(item.rightIcon || item.disabled !== true)"
v-html="item.rightIcon"></span>
<img class="u-list-right-image" v-else-if="(item.rightImage || item.disabled !== true)"
v-bind:src="item.rightImage">
</v-touch>
<v-touch tag="li" class="u-list-load" v-on:tap="onTapLoad" v-show="loadShowFlag">
<span class="u-list-load-animation" v-show="loadFlag"></span>
{{ loadText }}
</v-touch>
</ul>
<p class="u-list-tip" v-show="tipShowFlag && (list.length == 0)">{{ tip }}</p>
</div>
</template>
<script>
export default {
props: ['initParam'],
data() {
return {
// 组件初始化列表
list: this.initParam.list || [],
// 组件初始化样式
initClass: this.initParam.class,
// 组件初始化无数据显示文字
tip: this.initParam.tip,
pagesize: this.initParam.pagesize,
pullup: this.initParam.pullup || false,
loadText: Vue.t('scroll.clickToLoadMore'),
// loading是否显示
loadShowFlag: false,
// 是否在loading
loadFlag: false,
tipShowFlag: false
}
},
mounted() {
this.setLoadShowFlag(this.list.length);
let ulistDom = this.$el;
let self = this;
ulistDom.onscroll = function () {
//在一些特殊情况下ulistDom.scrollHeight和ulistDom.offsetHeight + ulistDom.scrollTop会相差1px,这里考虑1px的误差
if (!self.loadFlag && self.pullup && (ulistDom.scrollHeight - (ulistDom.offsetHeight + ulistDom.scrollTop)) <= 1) {
self.loadText = Vue.t('scroll.loading');
self.loadFlag = true;
self.$emit('u-list-load');
}
}
},
methods: {
setLoadShowFlag(number) {
this.loadShowFlag = (number >= this.pagesize);
},
onTapRow(index) {
tapRow(this, index);
},
onTapLoad() {
tapLoad(this);
},
changeList(list) {
changeList(this, list);
}
}
}
// 通知事件和当前点击列表选项下标
function tapRow(self, index) {
if (self.list[index].disabled !== true) {
self.$emit('u-list-tap', index);
}
}
// 通知点击加载更多事件
function tapLoad(self) {
// loading
if (!self.loadFlag && !self.pullup) {
self.$emit('u-list-load');
self.loadText = Vue.t('scroll.loading');
self.loadFlag = true;
}
}
// 修改list组件列表
function changeList(self, list) {
let array = Array.isArray(list) ? list : [];
self.tipShowFlag = (array.length === 0);
self.setLoadShowFlag(array.length - self.list.length);
self.list = array;
self.$nextTick(function () {
self.loadText = Vue.t('scroll.clickToLoadMore');
self.loadFlag = false;
});
}
</script>
\ No newline at end of file
/**
* timeline.vue
* Version: 0.1
* User: zjx
* Date: 2017-09-07
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* timeline
*/
<template>
<div class="timeline" v-bind:class="initClass">
<ul class="timeline-scroll" v-show="list.length">
<li class="timeline-row" v-for="(item, index) in list" :key="index" v-on:tap="onTapRow(index)">
<p class="timeline-left-text" v-if="item.leftText">{{ item.leftText }}</p>
<img class="timeline-left-image" v-if="item.leftImage" v-bind:src="item.leftImage">
<div>
<p class="timeline-title">{{ item.title }}</p>
<p class="timeline-subtitle" v-if="item.subtitle">{{ item.subtitle }}</p>
</div>
<p class="timeline-right-text" v-if="item.rightText">{{ item.rightText }}</p>
<img class="timeline-right-image" v-if="item.rightImage" v-bind:src="item.rightImage">
</li>
<v-touch tag="li" class="timeline-load" v-on:tap="onTapLoad" v-show="loadShowFlag">{{ loadText }}</v-touch>
</ul>
<p class="timeline-tip" v-show="(list.length == 0)">{{ tip }}</p>
</div>
</template>
<script>
const PAGE_SIZE = 10;
export default {
props: ['initParam'],
data () {
return {
// 组件初始化列表
list: this.initParam.list,
// 组件初始化样式
initClass: this.initParam.class,
// 组件初始化无数据显示文字
tip: this.initParam.tip,
pagesize: this.initParam.pagesize || PAGE_SIZE,
loadText: Vue.t('scroll.clickToLoadMore'),
// loading是否显示
loadShowFlag: false,
// 是否在loading
loadFlag: false
}
},
mounted(){
this.setLoadShowFlag(this.list.length);
},
methods: {
setLoadShowFlag(number){
this.loadShowFlag = (number >= this.pagesize);
},
onTapRow(index){
tapRow(this, index);
},
onTapLoad(){
tapLoad(this);
},
changeList(list){
changeList(this, list);
}
}
}
// 通知事件和当前点击列表选项下标
function tapRow(self, index) {
self.$emit('timeline-tap', index);
}
// 通知点击加载更多事件
function tapLoad(self) {
// loading
if (!self.loadFlag) {
self.$emit('timeline-load-tap');
self.loadText = Vue.t('scroll.loading');
self.loadFlag = true;
}
}
// 修改list组件列表
function changeList(self, list) {
self.setLoadShowFlag(list.length - self.list.length);
self.list = list;
self.$nextTick(function () {
self.loadText = Vue.t('scroll.clickToLoadMore');
self.loadFlag = false;
});
}
</script>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wgtu appid="doorlock" >
<basis version="2.0" />
</wgtu>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([5],{
/***/ 18:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var projectMethods = {};
projectMethods.changeList = function (vmObj, list) {
vmObj.$refs.list.changeList(list);
};
exports.default = projectMethods;
/***/ }),
/***/ 182:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {
var _regenerator = __webpack_require__(10);
var _regenerator2 = _interopRequireDefault(_regenerator);
var _moment = __webpack_require__(0);
var _moment2 = _interopRequireDefault(_moment);
var _config = __webpack_require__(9);
var _config2 = _interopRequireDefault(_config);
var _public = __webpack_require__(6);
var _components = __webpack_require__(18);
var _components2 = _interopRequireDefault(_components);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* v_alarmInfo.js
* Version: 0.1
* User: wy
* Date: 2017-09-06
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 报警信息页面
*/
var PAGE_SIZE = 10;
_public.iot.ready(init);
function init() {
//通用 list、dialog、loading组件
_public.uPublic.componentsInit(['u-list', 'u-dialog', 'u-loading']);
_public.uPublic.componentsExtend(['list']);
_public.uPublic.closeSlideBack();
var app = new Vue({
data: {
//配置组件
componentsConfig: initComponentsConfig(),
list: [],
startId: 0,
deviceId: null,
flag: true,
noticeTipShowFlag: false
},
mounted: function mounted() {
var _this = this;
_public.uComponents.showLoading(this);
this.noticeTipShowFlag = !_public.iot.native.isNotifycationOpen();
resolve(this);
window.addEventListener('returnPage', function () {
_this.noticeTipShowFlag = !_public.iot.native.isNotifycationOpen();
});
},
methods: {
getList: function getList() {
return this.list;
},
setList: function setList(list) {
this.list = list;
},
getStartId: function getStartId() {
return this.startId;
},
setStartId: function setStartId(id) {
this.startId = id;
},
getDeviceId: function getDeviceId() {
return this.deviceId;
},
setDeviceId: function setDeviceId(id) {
this.deviceId = id;
},
//tap 点击加载更多
onListLoad: function onListLoad() {
listLoad(this);
},
onRefreshFresh: function onRefreshFresh() {
refreshFresh(this);
},
onNotifycationSetting: function onNotifycationSetting() {
notifycationSetting();
},
//tap <
onBackTap: function onBackTap() {
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
alarmInfoList: {
initParam: {
class: 'custom-list',
list: [],
tip: Vue.t('alarmInfo.noInfoTip'),
pagesize: PAGE_SIZE,
pullup: true
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
};
}
// 获取历史记录
function resolve(self) {
var _this2 = this;
self.setDeviceId(_public.iot.navigator.getExtras().deviceId);
// uComponents.showLoading(self);
_public.iot.business.api.sendCustom('lock/getHistoryRecord', {
data: {
device_id: self.getDeviceId(),
action: 2,
start_id: self.getStartId(),
page_size: PAGE_SIZE,
pullUpLoading: true
},
success: function success(response) {
var _data, record, data, list, _record, i;
return _regenerator2.default.async(function success$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
console.log(response);
if (!self.flag) {
_context.next = 8;
break;
}
_data = _public.uPublic.checkResponseData(response.data);
if (!(_data && _data.record.length > 0)) {
_context.next = 8;
break;
}
record = _data.record;
_context.next = 7;
return _regenerator2.default.awrap(_public.uPublic.upDateRead('notify', (0, _moment2.default)(record[0].time).unix()));
case 7:
self.flag = _context.sent;
case 8:
data = _public.uPublic.checkResponseData(response.data);
if (data) {
list = [];
_record = data.record;
for (i = 0; i < _record.length; i++) {
list[i] = {
value: _record[i].openId,
// leftImage: '../../resources/image/green_alarmInfo'+record[i].mode+'_icon.png',
imgClass: 'u-list-left-bg-alarm_' + _record[i].mode,
subtitle: Vue.t('alarmInfo.' + _config2.default.alarmMode[_record[i].mode] + ''),
rightText: (0, _moment2.default)(_record[i].time).format("YYYY.MM.DD HH:mm:ss")
};
}
self.setList(self.getList().concat(list));
if (_record.length > 0) {
self.setStartId(_record[_record.length - 1].id);
}
//更新列表数据
_components2.default.changeList(self, self.getList());
} else {}
_public.uComponents.hideLoading(self);
case 11:
case 'end':
return _context.stop();
}
}
}, null, _this2);
},
error: function error(_error) {
console.log(_error);
_public.uPublic.openRequestErrorAlert(self);
},
complete: function complete() {
_public.uComponents.hideLoading(self);
}
});
}
//tap <
function backTap() {
_public.iot.navigator.aback();
}
//重写mui.back
//mui.back = function(){
// iot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});
// console.log("fire");
// iot.navigator.back();
//}
//tap 点击加载更多
function listLoad(self) {
resolve(self);
}
//ios跳转到系统设置页面
//android跳转到通知页面
function notifycationSetting() {
if (plus.os.name == 'Android') {
// alert("打开通知页面");
_public.iot.navigator.openWindow({
url: './notify.html',
id: 'notify',
styles: {
popGesture: 'none'
}
});
} else {
_public.iot.native.toNotifycationSetting();
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)["default"]))
/***/ }),
/***/ 292:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(182);
/***/ })
},[292]);
//# sourceMappingURL=alarmInfo.js.map
\ No newline at end of file
webpackJsonp([4],{
/***/ 18:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var projectMethods = {};
projectMethods.changeList = function (vmObj, list) {
vmObj.$refs.list.changeList(list);
};
exports.default = projectMethods;
/***/ }),
/***/ 183:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {
var _regenerator = __webpack_require__(10);
var _regenerator2 = _interopRequireDefault(_regenerator);
var _moment = __webpack_require__(0);
var _moment2 = _interopRequireDefault(_moment);
var _config = __webpack_require__(9);
var _config2 = _interopRequireDefault(_config);
var _public = __webpack_require__(6);
var _components = __webpack_require__(18);
var _components2 = _interopRequireDefault(_components);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PAGE_SIZE = 10; /**
* v_hijackRecord.js
* Version: 0.1
* User: wy
* Date: 2017-09-06
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 劫持记录页面
*/
_public.iot.ready(init);
function init() {
//通用 list、dialog、loading组件
_public.uPublic.componentsInit(['u-list', 'u-dialog', 'u-loading']);
_public.uPublic.componentsExtend(['list']);
_public.uPublic.closeSlideBack();
var app = new Vue({
data: {
//配置组件
componentsConfig: initComponentsConfig(),
list: [],
startId: 0,
deviceId: null,
userInfo: [],
flag: true,
noticeTipShowFlag: false
},
mounted: function mounted() {
var _this = this;
_public.uComponents.showLoading(this);
this.noticeTipShowFlag = !_public.iot.native.isNotifycationOpen();
resolve(this);
window.addEventListener('returnPage', function () {
_this.noticeTipShowFlag = !_public.iot.native.isNotifycationOpen();
});
},
methods: {
getList: function getList() {
return this.list;
},
setList: function setList(list) {
this.list = list;
},
getStartId: function getStartId() {
return this.startId;
},
setStartId: function setStartId(id) {
this.startId = id;
},
getDeviceId: function getDeviceId() {
return this.deviceId;
},
setDeviceId: function setDeviceId(id) {
this.deviceId = id;
},
getUserInfo: function getUserInfo() {
return this.userInfo;
},
setUserInfo: function setUserInfo(info) {
this.userInfo = info;
},
onListLoad: function onListLoad() {
listLoad(this);
},
onRefreshFresh: function onRefreshFresh() {
refreshFresh(this);
},
onNotifycationSetting: function onNotifycationSetting() {
notifycationSetting();
},
//tap <
onBackTap: function onBackTap() {
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
hijackRecordList: {
initParam: {
class: 'custom-list',
list: [],
tip: Vue.t('hijackRecord.noRecordTip'),
pagesize: PAGE_SIZE,
pullup: true
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
};
}
function resolve(self) {
var _this2 = this;
self.setDeviceId(_public.iot.navigator.getExtras().deviceId);
//
_public.iot.business.api.sendCustom('lock/getHistoryRecord', {
data: {
device_id: self.getDeviceId(),
action: 3,
start_id: self.getStartId(),
page_size: PAGE_SIZE
},
success: function success(response) {
var _data, record, data, list, _record, i, j;
return _regenerator2.default.async(function success$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!self.flag) {
_context.next = 7;
break;
}
_data = _public.uPublic.checkResponseData(response.data);
if (!(_data && _data.record.length > 0)) {
_context.next = 7;
break;
}
record = _data.record;
_context.next = 6;
return _regenerator2.default.awrap(_public.uPublic.upDateRead('alarm', (0, _moment2.default)(record[0].time).unix()));
case 6:
self.flag = _context.sent;
case 7:
data = _public.uPublic.checkResponseData(response.data);
if (data) {
console.log(data);
list = [];
_record = data.record;
if (data.hasOwnProperty('info')) {
self.setUserInfo(data.info);
}
console.log(_config2.default.hijackMode[20]);
for (i = 0; i < _record.length; i++) {
list[i] = {
value: _record[i].openId,
title: "ID:" + _record[i].openId,
// leftImage: '../../resources/image/green_hijackMode20_icon.png',
imgClass: 'u-list-left-bg-hijack',
subtitle: Vue.t('hijackRecord.' + _config2.default.hijackMode[_record[i].mode] + ''),
// title: ('ID:'+record[i].id),
rightText: (0, _moment2.default)(_record[i].time).format("YYYY.MM.DD HH:mm:ss")
};
for (j = 0; j < self.getUserInfo().length; j++) {
if (_record[i].openId == self.getUserInfo()[j].openId && _record[i].mode == self.getUserInfo()[j].mode) {
if (self.getUserInfo()[j].nickname != null) {
list[i].title = self.getUserInfo()[j].nickname;
}
}
}
}
self.setList(self.getList().concat(list));
if (_record.length > 0) {
self.setStartId(_record[_record.length - 1].id);
}
//更新列表数据
_components2.default.changeList(self, self.getList());
} else {}
_public.uComponents.hideLoading(self);
case 10:
case 'end':
return _context.stop();
}
}
}, null, _this2);
},
error: function error(_error) {
console.log(_error);
_public.uPublic.openRequestErrorAlert(self);
},
complete: function complete() {
_public.uComponents.hideLoading(self);
}
});
}
//tap <
function backTap() {
_public.iot.navigator.aback();
}
//重写mui.back
//mui.back = function(){
// iot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});
// console.log("fire");
// iot.navigator.back();
//}
//tap 点击加载更多
function listLoad(self) {
resolve(self);
}
function refreshFresh(self) {
resolve(self);
}
//ios跳转到系统设置页面
//android跳转到通知页面
function notifycationSetting() {
if (plus.os.name == 'Android') {
// alert("打开通知页面");
_public.iot.navigator.openWindow({
url: './notify.html',
id: 'notify',
styles: {
popGesture: 'none'
}
});
} else {
_public.iot.native.toNotifycationSetting();
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)["default"]))
/***/ }),
/***/ 293:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(183);
/***/ })
},[293]);
//# sourceMappingURL=hijackRecord.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([12],{
/***/ 185:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {
var _public = __webpack_require__(6);
var _public2 = _interopRequireDefault(_public);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
_public.iot.ready(init);
function init() {
_public.uPublic.componentsExtend(['android-notify']);
var form = new Vue({
el: '#content',
data: {
initButtonText: "测试按钮",
componentsConfig: initComponentsConfig(), //初始化数据
dialogFlag: true,
showFlags: false,
onNotifyToIndex: notifyToIndex //改方法传入
},
mounted: function mounted() {},
methods: {
onTapButton: function onTapButton() {
tapButton(this);
},
onAddDeviceButtonTap: function onAddDeviceButtonTap() {
console.log("onAddDeviceButtonTap......");
},
onToSetting: function onToSetting() {
console.log("点击了toSetting");
}
}
});
function notifyToIndex() {
_public.iot.navigator.fire(plus.webview.getWebviewById('device'), 'returnPage', {
needClose: true
});
_public.iot.navigator.openWindow({
url: './index.html',
id: 'device',
styles: {
popGesture: 'none'
},
extras: {
needClose: true
}
});
}
function tapButton(self) {
console.log("tapButton.......");
}
//初始化组件参数
function initComponentsConfig() {
return {
// 设置通知弹出框参数
notifyDialog: {
// 默认参数
initParam: {
// appName:"js.通用门锁",
// time:"js.刚刚",
// title:'js.开启通知',
// content1:'js.开启通知后您将可以及时获取门锁报警',
// content2:'js.提醒、门锁开门消息通知',
// accept:'js.我知道了!',
// buttonTitle:'js.前往开启通知设置'
}
},
addDeviceButton: {
// 默认参数
initParam: {
class: 'edit-name-button',
text: "这是测试button"
}
}
};
}
}
//重写mui.back
mui.back = function () {
_public.iot.navigator.fire(plus.webview.currentWebview().opener(), 'returnPage', {});
console.log("fire");
_public.iot.navigator.back();
};
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)["default"]))
/***/ }),
/***/ 295:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(185);
/***/ })
},[295]);
//# sourceMappingURL=notify.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/view/device/v_notify.js"],"names":["ready","init","componentsExtend","form","Vue","el","data","initButtonText","componentsConfig","initComponentsConfig","dialogFlag","showFlags","onNotifyToIndex","notifyToIndex","mounted","methods","onTapButton","tapButton","onAddDeviceButtonTap","console","log","onToSetting","navigator","fire","plus","webview","getWebviewById","needClose","openWindow","url","id","styles","popGesture","extras","self","notifyDialog","initParam","addDeviceButton","class","text","mui","back","currentWebview","opener"],"mappings":";;;;;;;;AAEA;;;;;;AAIA,YAAIA,KAAJ,CAAUC,IAAV;AACA,SAASA,IAAT,GAAgB;AACf,oBAAQC,gBAAR,CAAyB,CAAC,gBAAD,CAAzB;AACA,QAAIC,OAAO,IAAIC,GAAJ,CAAQ;AACfC,YAAI,UADW;AAEfC,cAAK;AACJC,4BAAgB,MADZ;AAEJC,8BAAkBC,sBAFd,EAEqC;AACzCC,wBAAW,IAHP;AAIJC,uBAAU,KAJN;AAKJC,6BAAgBC,aALZ,CAK0B;AAL1B,SAFU;AASfC,iBAAQ,mBAAU,CAEnB,CAXgB;AAYfC,iBAAS;AACRC,uBADQ,yBACK;AACTC,0BAAU,IAAV;AACA,aAHI;AAKLC,gCALK,kCAKiB;AACrBC,wBAAQC,GAAR,CAAY,4BAAZ;AACA,aAPI;AASLC,uBATK,yBASQ;AACZF,wBAAQC,GAAR,CAAY,cAAZ;AACA;AAXI;;AAZM,KAAR,CAAX;;AA4BA,aAASP,aAAT,GAAwB;AACvB,oBAAIS,SAAJ,CAAcC,IAAd,CAAmBC,KAAKC,OAAL,CAAaC,cAAb,CAA4B,QAA5B,CAAnB,EAAyD,YAAzD,EAAsE;AAClEC,uBAAW;AADuD,SAAtE;AAGA,oBAAIL,SAAJ,CAAcM,UAAd,CAAyB;AAClBC,iBAAK,cADa;AAElBC,gBAAI,QAFc;AAGlBC,oBAAQ;AACPC,4BAAY;AADL,aAHU;AAMlBC,oBAAQ;AACPN,2BAAW;AADJ;AANU,SAAzB;AAUA;;AAED,aAASV,SAAT,CAAmBiB,IAAnB,EAAwB;AACpBf,gBAAQC,GAAR,CAAY,kBAAZ;AACF;;AAED;AACE,aAASX,oBAAT,GAAgC;AAC5B,eAAO;AACH;AACA0B,0BAAc;AACV;AACAC,2BAAW;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AAPU;AAFD,aAFX;AAcHC,6BAAgB;AACZ;AACAD,2BAAW;AACPE,2BAAO,kBADA;AAEPC,0BAAM;AAFC;AAFC;;AAdb,SAAP;AAuBH;AACJ;;AAED;AACAC,IAAIC,IAAJ,GAAW,YAAU;AACjB,gBAAInB,SAAJ,CAAcC,IAAd,CAAmBC,KAAKC,OAAL,CAAaiB,cAAb,GAA8BC,MAA9B,EAAnB,EAA0D,YAA1D,EAAuE,EAAvE;AACAxB,YAAQC,GAAR,CAAY,MAAZ;AACH,gBAAIE,SAAJ,CAAcmB,IAAd;AACA,CAJD,C","file":"device/notify.js","sourcesContent":["\n\nimport {iot, uPublic, uComponents} from '../../public/public.js';\nimport config from '../../public/public.js';\n\n\niot.ready(init);\nfunction init() {\n\tuPublic.componentsExtend(['android-notify']);\n\tvar form = new Vue({\n\t el: '#content',\n\t data:{\n\t \tinitButtonText: \"测试按钮\",\n\t \tcomponentsConfig: initComponentsConfig(),//初始化数据\n\t \tdialogFlag:true,\n\t \tshowFlags:false,\n\t \tonNotifyToIndex:notifyToIndex //改方法传入\n\t },\n\t mounted:function(){\n\n\t\t\t},\n\t methods: {\n \t\tonTapButton(){\n \t\ttapButton(this);\n \t},\n\n \tonAddDeviceButtonTap(){\n \t\tconsole.log(\"onAddDeviceButtonTap......\");\n \t},\n\n \tonToSetting(){\n \t\tconsole.log(\"点击了toSetting\");\n \t}\n\t }\n\t \n\t});\n\n\tfunction notifyToIndex(){\n\t\tiot.navigator.fire(plus.webview.getWebviewById('device'),'returnPage',{\n\t \tneedClose: true\n\t\t});\n\t\tiot.navigator.openWindow({\n\t url: './index.html',\n\t id: 'device',\n\t styles: {\n\t \tpopGesture: 'none'\n\t },\n\t extras: {\n\t \tneedClose: true\n\t }\n\t });\n\t}\n\n\tfunction tapButton(self){\n\t console.log(\"tapButton.......\");\n\t }\n\n\t //初始化组件参数\n function initComponentsConfig() {\n return {\n // 设置通知弹出框参数\n notifyDialog: {\n // 默认参数\n initParam: {\n \t// appName:\"js.通用门锁\",\n \t// time:\"js.刚刚\",\n // title:'js.开启通知',\n // content1:'js.开启通知后您将可以及时获取门锁报警',\n // content2:'js.提醒、门锁开门消息通知',\n // accept:'js.我知道了!',\n // buttonTitle:'js.前往开启通知设置'\n }\n },\n addDeviceButton:{\n // 默认参数\n initParam: {\n class: 'edit-name-button',\n text: \"这是测试button\"\n }\n }\n \n };\n }\n}\n\n//重写mui.back\nmui.back = function(){\n iot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});\n console.log(\"fire\");\n\tiot.navigator.back();\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/view/device/v_notify.js"],"sourceRoot":""}
\ No newline at end of file
webpackJsonp([3],{
/***/ 18:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var projectMethods = {};
projectMethods.changeList = function (vmObj, list) {
vmObj.$refs.list.changeList(list);
};
exports.default = projectMethods;
/***/ }),
/***/ 186:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {
var _regenerator = __webpack_require__(10);
var _regenerator2 = _interopRequireDefault(_regenerator);
var _moment = __webpack_require__(0);
var _moment2 = _interopRequireDefault(_moment);
var _config = __webpack_require__(9);
var _config2 = _interopRequireDefault(_config);
var _public = __webpack_require__(6);
var _components = __webpack_require__(18);
var _components2 = _interopRequireDefault(_components);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PAGE_SIZE = 10; /**
* v_opendoorRecord.js
* Version: 0.1
* User: wy
* Date: 2017-09-06
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 开门记录页面
*/
_public.iot.ready(init);
function init() {
//通用 list、dialog、loading组件
_public.uPublic.componentsInit(['u-list', 'u-dialog', 'u-loading']);
_public.uPublic.componentsExtend(['list']);
_public.uPublic.closeSlideBack();
var app = new Vue({
data: {
//配置组件
componentsConfig: initComponentsConfig(),
list: [],
startId: 0,
deviceId: null,
userInfo: [],
flag: true,
noticeTipShowFlag: false
},
mounted: function mounted() {
var _this = this;
_public.uComponents.showLoading(this);
this.noticeTipShowFlag = !_public.iot.native.isNotifycationOpen();
resolve(this);
window.addEventListener('returnPage', function () {
_this.noticeTipShowFlag = !_public.iot.native.isNotifycationOpen();
});
},
methods: {
getList: function getList() {
return this.list;
},
setList: function setList(list) {
this.list = list;
},
getStartId: function getStartId() {
return this.startId;
},
setStartId: function setStartId(id) {
this.startId = id;
},
getDeviceId: function getDeviceId() {
return this.deviceId;
},
getUserInfo: function getUserInfo() {
return this.userInfo;
},
setUserInfo: function setUserInfo(info) {
this.userInfo = info;
},
setDeviceId: function setDeviceId(id) {
this.deviceId = id;
},
onListLoad: function onListLoad() {
listLoad(this);
},
onRefreshFresh: function onRefreshFresh() {
refreshFresh(this);
},
onNotifycationSetting: function onNotifycationSetting() {
notifycationSetting();
},
//tap <
onBackTap: function onBackTap() {
backTap();
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
opendoorRecordList: {
initParam: {
class: 'custom-list',
list: [],
tip: Vue.t('opendoorRecord.noRecordTip'),
pagesize: PAGE_SIZE,
pullup: true
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
};
}
//调用接口获取开门记录
function resolve(self) {
console.log("in");
// uComponents.showLoading(self);
self.setDeviceId(_public.iot.navigator.getExtras().deviceId);
console.log(_public.iot.navigator.getExtras());
if (_public.iot.navigator.getExtras().relId) {
getPersonalHistory(self, _public.iot.navigator.getExtras().relId);
} else {
getHistoryRecord(self);
}
}
//tap <
function backTap() {
_public.iot.navigator.aback();
}
//重写mui.back
//mui.back = function(){
// iot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});
// console.log("fire");
// iot.navigator.back();
//}
//tap 点击加载更多
function listLoad(self) {
resolve(self);
}
//获取历史记录(整个设备)
function getHistoryRecord(self) {
var _this2 = this;
_public.iot.business.api.sendCustom('lock/getHistoryRecord', {
data: {
device_id: self.getDeviceId(),
action: 0,
start_id: self.getStartId(),
page_size: PAGE_SIZE
},
success: function success(response) {
var data, record;
return _regenerator2.default.async(function success$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
setListData(self, response);
if (!self.flag) {
_context.next = 8;
break;
}
data = _public.uPublic.checkResponseData(response.data);
if (!(data && data.record.length > 0)) {
_context.next = 8;
break;
}
record = data.record;
_context.next = 7;
return _regenerator2.default.awrap(_public.uPublic.upDateRead('open', (0, _moment2.default)(record[0].time).unix()));
case 7:
self.flag = _context.sent;
case 8:
case 'end':
return _context.stop();
}
}
}, null, _this2);
},
error: function error(_error) {
console.log(_error);
_public.uPublic.openRequestErrorAlert(self);
},
complete: function complete() {
_public.uComponents.hideLoading(self);
}
});
}
//获取个人历史记录
function getPersonalHistory(self, id) {
_public.iot.business.api.sendCustom('lock/getPersonalHistory', {
data: {
device_id: self.getDeviceId(),
rel_id: id,
action: 0,
start_id: self.getStartId(),
page_size: PAGE_SIZE
},
success: function success(response) {
setListData(self, response);
},
error: function error(_error2) {
console.log(_error2);
_public.uPublic.openRequestErrorAlert(self);
},
complete: function complete() {
_public.uComponents.hideLoading(self);
}
});
}
//设置历史记录渲染列表
function setListData(self, response) {
var data = _public.uPublic.checkResponseData(response.data);
if (data) {
console.log(data);
var list = [];
var record = data.record;
if (data.hasOwnProperty('info')) {
self.setUserInfo(data.info);
}
for (var i = 0; i < record.length; i++) {
list[i] = {
value: record[i].openId,
title: record[i].mode == 30 || record[i].mode == 5 ? '' : "ID:" + record[i].openId,
// leftImage: '../../resources/image/green_opendoor'+record[i].mode+'_icon.png',
imgClass: 'u-list-left-bg-image_' + record[i].mode,
subtitle: Vue.t('opendoorRecord.' + _config2.default.openDoorMode[record[i].mode] + ''),
rightText: (0, _moment2.default)(record[i].time).format("YYYY.MM.DD HH:mm:ss")
};
for (var j = 0; j < self.getUserInfo().length; j++) {
if (record[i].openId == self.getUserInfo()[j].openId && record[i].mode == self.getUserInfo()[j].mode) {
if (self.getUserInfo()[j].nickname != null) {
list[i].title = self.getUserInfo()[j].nickname;
}
}
}
}
self.setList(self.getList().concat(list));
if (record.length > 0) {
self.setStartId(record[record.length - 1].id);
}
//更新列表数据
_components2.default.changeList(self, self.getList());
console.log("in");
} else {}
}
//ios跳转到系统设置页面
//android跳转到通知页面
function notifycationSetting() {
if (plus.os.name == 'Android') {
_public.iot.navigator.openWindow({
url: './notify.html',
id: 'notify',
styles: {
popGesture: 'none'
}
});
} else {
_public.iot.native.toNotifycationSetting();
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)["default"]))
/***/ }),
/***/ 296:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(186);
/***/ })
},[296]);
//# sourceMappingURL=opendoorRecord.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([10],{
/***/ 189:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {
var _config = __webpack_require__(9);
var _config2 = _interopRequireDefault(_config);
var _public = __webpack_require__(6);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* v_addUser.js
* Version: 0.1
* User: wy
* Date: 2017-10-09
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 添加用户页面
*/
_public.iot.ready(init);
function init() {
//通用 input、按钮、dialog、loading组件
_public.uPublic.componentsInit(['u-text', 'u-button', 'u-dialog', 'u-loading']);
_public.uPublic.closeSlideBack();
var app = new Vue({
data: {
textName: null,
textErrorTip: '',
//配置组件
componentsConfig: initComponentsConfig(),
extras: {}
},
mounted: function mounted() {
this.extras = _public.iot.navigator.getExtras();
console.log(this.extras);
},
methods: {
getTextName: function getTextName() {
return this.textName;
},
setTextName: function setTextName(text) {
this.textName = text;
},
getTextErrorTip: function getTextErrorTip() {
return this.textErrorTip;
},
setTextErrorTip: function setTextErrorTip(tip) {
this.textErrorTip = tip;
},
//tap <
onBackTap: function onBackTap() {
backTap();
},
onNameChange: function onNameChange(text) {
nameChange(this, text);
},
//tap 确定
onConfirmButtonTap: function onConfirmButtonTap() {
confirmButtonTap(this);
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
nameInput: {
initParam: {
class: 'custom-text',
icon: '&#xe6b0;',
placeholder: Vue.t('addUser.nameInputTip'),
maxlength: _config2.default.input.maxlength
}
},
//确定 button 参数
confirmButton: {
initParam: {
class: 'custom-button',
text: Vue.t('btn.confirm')
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
};
}
//tap <
function backTap() {
_public.iot.navigator.aback();
}
function nameChange(self, text) {
self.textName = text;
self.setTextErrorTip('');
console.log('nameChange: ' + self.textName);
}
//tap 确定
function confirmButtonTap(self) {
if (self.getTextName() == null || self.getTextName().trim() == '') {
self.setTextErrorTip(Vue.t('addUser.error.nameCanNotEmpty'));
} else if (_public.uPublic.checkString(self.getTextName())) {
self.setTextErrorTip(Vue.t('textTip.textType'));
} else if (self.getTextErrorTip() == '') {
_public.uComponents.showLoading(self);
_public.iot.business.api.sendCustom('lock/addLockUser', {
data: {
device_id: self.extras.deviceId,
nickname: self.getTextName()
},
success: function success(response) {
console.log(response);
if (response.data.id) {
_public.iot.navigator.fire(plus.webview.currentWebview().opener(), 'returnPage', {});
_public.uComponents.openAlert(self, Vue.t('addUser.addUserSuccess'), {
text: Vue.t('btn.confirm'), callback: function callback() {
console.log("添加用户成功");
//跳转到门锁用户界面
_public.iot.navigator.openWindow({
url: './doorlockUser.html',
id: 'doorlockUser',
extras: {
id: response.data.id,
lockId: self.extras.lockId,
uuid: self.extras.uuid,
role: self.extras.role
}
});
}
});
}
},
error: function error(_error) {
console.log(_error);
// if(window.iotDebug){
// iotDebug.push('end: 添加用户成功'+JSON.stringify(error));
// }
// if (window.iotDebug) {
// iotDebug.upload(iot,'添加用户失败');
// }
_public.uComponents.openAlert(self, Vue.t('addUser.addUserFailure'), {
text: Vue.t('btn.confirm'), callback: function callback() {
console.log("添加用户失败");
}
});
},
complete: function complete() {
_public.uComponents.hideLoading(self);
}
});
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)["default"]))
/***/ }),
/***/ 299:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(189);
/***/ })
},[299]);
//# sourceMappingURL=addUser.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/view/doorlockUsers/v_addUser.js"],"names":["ready","init","componentsInit","closeSlideBack","app","Vue","data","textName","textErrorTip","componentsConfig","initComponentsConfig","extras","mounted","navigator","getExtras","console","log","methods","getTextName","setTextName","text","getTextErrorTip","setTextErrorTip","tip","onBackTap","backTap","onNameChange","nameChange","onConfirmButtonTap","confirmButtonTap","$mount","nameInput","initParam","class","icon","placeholder","t","maxlength","input","confirmButton","dialog","loading","aback","self","trim","checkString","showLoading","business","api","sendCustom","device_id","deviceId","nickname","success","response","id","fire","plus","webview","currentWebview","opener","openAlert","callback","openWindow","url","lockId","uuid","role","error","complete","hideLoading"],"mappings":"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","file":"doorlockUsers/addUser.js","sourcesContent":["/**\r\n* v_addUser.js\r\n* Version: 0.1\r\n* User: wy\r\n* Date: 2017-10-09\r\n* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.\r\n* 添加用户页面\r\n*/\r\n\r\nimport config from '../../public/config.js';\r\nimport {iot, uPublic, uComponents} from '../../public/public.js';\r\n\r\niot.ready(init);\r\nfunction init() {\r\n //通用 input、按钮、dialog、loading组件\r\n uPublic.componentsInit(['u-text','u-button','u-dialog','u-loading']);\r\n uPublic.closeSlideBack();\r\n const app = new Vue({\r\n data:{ \r\n textName: null, \r\n textErrorTip: '',\r\n //配置组件\r\n componentsConfig: initComponentsConfig(),\r\n extras: {}\r\n },\r\n mounted(){ \r\n \tthis.extras = iot.navigator.getExtras();\r\n \tconsole.log(this.extras);\r\n },\r\n methods:{\r\n \tgetTextName(){\r\n \t\treturn this.textName;\r\n \t},\r\n \tsetTextName(text){\r\n \t\tthis.textName = text;\r\n \t},\r\n \tgetTextErrorTip(){\r\n \t\treturn this.textErrorTip;\r\n \t},\r\n \tsetTextErrorTip(tip){\r\n \t\tthis.textErrorTip = tip\r\n \t},\r\n //tap <\r\n onBackTap(){\r\n backTap();\r\n }, \r\n onNameChange(text){\r\n nameChange(this,text); \r\n }, \r\n //tap 确定\r\n onConfirmButtonTap(){\r\n confirmButtonTap(this);\r\n } \r\n } \r\n }).$mount('#app');\r\n}\r\n\r\n//配置组件参数\r\nfunction initComponentsConfig() {\r\n return {\r\n nameInput: {\r\n initParam: {\r\n class: 'custom-text',\r\n icon: '&#xe6b0;',\r\n placeholder: Vue.t('addUser.nameInputTip'),\r\n maxlength: config.input.maxlength\r\n }\r\n },\r\n //确定 button 参数\r\n confirmButton: { \r\n initParam: {\r\n class: 'custom-button',\r\n text: Vue.t('btn.confirm')\r\n }\r\n }, \r\n dialog: {\r\n initParam: {\r\n class: 'custom-dialog'\r\n }\r\n },\r\n loading: {\r\n initParam: {\r\n class: 'custom-loading'\r\n }\r\n } \r\n }\r\n}\r\n\r\n//tap <\r\nfunction backTap() {\r\n\tiot.navigator.aback();\r\n}\r\n\r\nfunction nameChange(self,text){\r\n self.textName = text;\r\n self.setTextErrorTip('');\r\n console.log('nameChange: ' + self.textName);\r\n}\r\n\r\n//tap 确定\r\nfunction confirmButtonTap(self){\r\n\tif(self.getTextName() == null || self.getTextName().trim() == ''){\r\n\t\tself.setTextErrorTip(Vue.t('addUser.error.nameCanNotEmpty'));\r\n\t}else if(uPublic.checkString(self.getTextName())){\r\n\t\tself.setTextErrorTip(Vue.t('textTip.textType'));\r\n\t}else if(self.getTextErrorTip() == ''){\r\n\t\tuComponents.showLoading(self);\r\n\t\tiot.business.api.sendCustom('lock/addLockUser',{\r\n\t\t\tdata: {\r\n\t\t\t\tdevice_id: self.extras.deviceId,\r\n\t\t\t\tnickname: self.getTextName()\r\n\t\t\t},\r\n\t\t\tsuccess: (response) => {\r\n\t\t\t\tconsole.log(response);\r\n\t\t\t\tif(response.data.id){\r\n\t\t\t\t\tiot.navigator.fire(plus.webview.currentWebview().opener(), 'returnPage', {});\r\n\t\t\t\t\tuComponents.openAlert(self, Vue.t('addUser.addUserSuccess'), {\r\n\t\t\t text: Vue.t('btn.confirm'), callback: function () {\r\n\t\t\t \t\tconsole.log(\"添加用户成功\");\r\n\t \t\t\t\t//跳转到门锁用户界面\r\n\t\t\t \t\tiot.navigator.openWindow({\r\n\t\t\t\t\t\t url: './doorlockUser.html',\r\n\t\t\t\t\t\t id: 'doorlockUser',\r\n\t\t\t\t\t\t extras: {\r\n\t\t\t\t\t\t \tid: response.data.id,\r\n\t\t\t\t\t\t \tlockId: self.extras.lockId,\r\n\t\t\t\t\t\t \tuuid: self.extras.uuid,\r\n\t\t\t\t\t\t \trole: self.extras.role\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t });\r\n\t\t\t\t }\r\n\t\t\t \t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: (error) => {\r\n\t\t\t\tconsole.log(error);\r\n//\t\t\t\tif(window.iotDebug){\r\n//\t iotDebug.push('end: 添加用户成功'+JSON.stringify(error));\r\n//\t \t}\r\n//\t\t \tif (window.iotDebug) {\r\n//\t iotDebug.upload(iot,'添加用户失败');\r\n//\t }\r\n\t\t\t\tuComponents.openAlert(self, Vue.t('addUser.addUserFailure'), {\r\n\t\t text: Vue.t('btn.confirm'), callback: function () {\r\n\t\t \t\tconsole.log(\"添加用户失败\");\r\n\t\t\t }\r\n\t\t \t});\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tuComponents.hideLoading(self);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/view/doorlockUsers/v_addUser.js"],"sourceRoot":""}
\ No newline at end of file
webpackJsonp([8],{
/***/ 191:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {
var _config = __webpack_require__(9);
var _config2 = _interopRequireDefault(_config);
var _public = __webpack_require__(6);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* v_editName.js
* Version: 0.1
* User: wy
* Date: 2017-10-09
* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 修改名称页面
*/
_public.iot.ready(init);
function init() {
//通用 input、dialog、loading组件
_public.uPublic.componentsInit(['u-text', 'u-dialog', 'u-loading']);
_public.uPublic.closeSlideBack();
var app = new Vue({
data: {
textName: _public.iot.navigator.getExtras().nickname,
textErrorTip: '',
//配置组件
componentsConfig: initComponentsConfig(),
extras: {},
role: null
},
mounted: function mounted() {
this.extras = _public.iot.navigator.getExtras();
this.role = this.extras.role;
},
methods: {
getTextName: function getTextName() {
return this.textName;
},
setTextName: function setTextName(text) {
this.textName = text;
},
getTextErrorTip: function getTextErrorTip() {
return this.textErrorTip;
},
setTextErrorTip: function setTextErrorTip(tip) {
this.textErrorTip = tip;
},
//tap <
onBackTap: function onBackTap() {
backTap();
},
//tap 保存
onSaveTap: function onSaveTap() {
saveTap(this);
},
onNameChange: function onNameChange(text) {
nameChange(this, text);
}
}
}).$mount('#app');
}
//配置组件参数
function initComponentsConfig() {
return {
nameInput: {
initParam: {
class: 'custom-editName-text',
placeholder: Vue.t('editName.nickNameInputTip'),
maxlength: _config2.default.input.maxlength
}
},
dialog: {
initParam: {
class: 'custom-dialog'
}
},
loading: {
initParam: {
class: 'custom-loading'
}
}
};
}
//tap <
function backTap() {
_public.iot.navigator.aback();
}
//tap 保存
function saveTap(self) {
if (self.getTextName() == null || self.getTextName().trim() == '') {
self.setTextErrorTip(Vue.t('editName.error.nicknameCanNotBeBlank'));
} else if (_public.uPublic.checkString(self.getTextName())) {
self.setTextErrorTip(Vue.t('textTip.textType'));
} else if (self.getTextErrorTip() == '') {
_public.uComponents.showLoading(self);
_public.iot.business.api.sendCustom('lock/setLockUserName', {
data: {
rel_id: self.extras.id,
nickname: self.getTextName(),
device_id: self.extras.deviceId
},
success: function success(response) {
console.log(response);
if (response.data.success) {
_public.iot.navigator.fire(plus.webview.currentWebview().opener(), 'returnPage', {});
_public.uComponents.openAlert(self, Vue.t('editName.editNameSuccess'), {
text: Vue.t('btn.confirm'), callback: function callback() {
var opener = plus.webview.currentWebview().opener();
var view = plus.webview.getWebviewById(opener.id);
console.log(view);
_public.iot.navigator.aback();
}
});
}
// let data = uPublic.checkResponseData(response.data);
// if(data){
// uComponents.openAlert(self, Vue.t('editName.nicknameCanNotBeBlank'), {
// text: Vue.t('btn.confirm'), callback: function () {
// let opener = plus.webview.currentWebview().opener();
// let view = plus.webview.getWebviewById(opener.id);
// console.log(view);
// iot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});
// console.log('returnPage');
// iot.navigator.back();
// }
// });
// }
},
error: function error(_error) {
console.log(_error);
// if(window.iotDebug){
// iotDebug.push('end: 修改用户名称失败'+JSON.stringify(error));
// }
// if (window.iotDebug) {
// iotDebug.upload(iot,'修改用户名称失败');
// }
_public.uComponents.openAlert(self, Vue.t('editName.editNameFailue'), {
text: Vue.t('btn.confirm'), callback: function callback() {
var opener = plus.webview.currentWebview().opener();
_public.iot.navigator.back();
}
});
},
complete: function complete() {
_public.uComponents.hideLoading(self);
}
});
}
}
function nameChange(self, text) {
self.textName = text;
self.setTextErrorTip('');
console.log('nameChange: ' + self.textName);
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)["default"]))
/***/ }),
/***/ 301:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(191);
/***/ })
},[301]);
//# sourceMappingURL=editName.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/view/doorlockUsers/v_editName.js"],"names":["ready","init","componentsInit","closeSlideBack","app","Vue","data","textName","navigator","getExtras","nickname","textErrorTip","componentsConfig","initComponentsConfig","extras","role","mounted","methods","getTextName","setTextName","text","getTextErrorTip","setTextErrorTip","tip","onBackTap","backTap","onSaveTap","saveTap","onNameChange","nameChange","$mount","nameInput","initParam","class","placeholder","t","maxlength","input","dialog","loading","aback","self","trim","checkString","showLoading","business","api","sendCustom","rel_id","id","device_id","deviceId","success","response","console","log","fire","plus","webview","currentWebview","opener","openAlert","callback","view","getWebviewById","error","back","complete","hideLoading"],"mappings":"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","file":"doorlockUsers/editName.js","sourcesContent":["/**\r\n* v_editName.js\r\n* Version: 0.1\r\n* User: wy\r\n* Date: 2017-10-09\r\n* Copyright(c) 2017. U-GEN Tech.Co,Ltd. All Rights Reserved.\r\n* 修改名称页面\r\n*/\r\nimport config from '../../public/config.js';\r\nimport {iot, uPublic, uComponents} from '../../public/public.js';\r\n\r\niot.ready(init);\r\nfunction init() {\r\n //通用 input、dialog、loading组件\r\n uPublic.componentsInit(['u-text','u-dialog','u-loading']);\r\n uPublic.closeSlideBack();\r\n const app = new Vue({\r\n data:{ \r\n textName: iot.navigator.getExtras().nickname, \r\n textErrorTip: '',\r\n //配置组件\r\n componentsConfig: initComponentsConfig(),\r\n extras: {},\r\n role: null\r\n },\r\n mounted(){ \r\n \tthis.extras = iot.navigator.getExtras();\r\n \tthis.role = this.extras.role;\r\n },\r\n methods:{\r\n \tgetTextName(){\r\n \t\treturn this.textName;\r\n \t},\r\n \tsetTextName(text){\r\n \t\tthis.textName = text;\r\n \t},\r\n \tgetTextErrorTip(){\r\n \t\treturn this.textErrorTip;\r\n \t},\r\n \tsetTextErrorTip(tip){\r\n \t\tthis.textErrorTip = tip;\r\n \t},\r\n //tap <\r\n onBackTap(){\r\n backTap();\r\n }, \r\n //tap 保存\r\n onSaveTap(){\r\n saveTap(this);\r\n }, \r\n onNameChange(text){\r\n nameChange(this,text); \r\n } \r\n } \r\n }).$mount('#app');\r\n}\r\n\r\n//配置组件参数\r\nfunction initComponentsConfig() {\r\n return {\r\n nameInput: {\r\n initParam: {\r\n class: 'custom-editName-text',\r\n placeholder: Vue.t('editName.nickNameInputTip'),\r\n maxlength: config.input.maxlength\r\n }\r\n }, \r\n dialog: {\r\n initParam: {\r\n class: 'custom-dialog'\r\n }\r\n },\r\n loading: {\r\n initParam: {\r\n class: 'custom-loading'\r\n }\r\n } \r\n }\r\n}\r\n\r\n//tap <\r\nfunction backTap(){\r\n iot.navigator.aback();\r\n}\r\n\r\n//tap 保存\r\nfunction saveTap(self){\r\n if(self.getTextName() == null || self.getTextName().trim() == ''){\r\n \tself.setTextErrorTip(Vue.t('editName.error.nicknameCanNotBeBlank'));\r\n }else if(uPublic.checkString(self.getTextName())){\r\n\t\tself.setTextErrorTip(Vue.t('textTip.textType'));\r\n\t}else if(self.getTextErrorTip() == ''){\r\n \tuComponents.showLoading(self);\r\n\t\tiot.business.api.sendCustom('lock/setLockUserName',{\r\n\t\t data: {\r\n\t\t rel_id: self.extras.id,\r\n\t\t nickname: self.getTextName(),\r\n\t\t device_id: self.extras.deviceId\r\n\t\t },\r\n\t\t success: (response) => {\r\n\t\t \tconsole.log(response);\r\n\t\t \tif(response.data.success){\r\n\t\t \t\tiot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});\r\n\t\t \t\tuComponents.openAlert(self, Vue.t('editName.editNameSuccess'), {\r\n\t\t\t text: Vue.t('btn.confirm'), callback: function () {\r\n\t\t\t\t\t\t\tlet opener = plus.webview.currentWebview().opener();\r\n\t\t\t\t\t\t\tlet view = plus.webview.getWebviewById(opener.id);\r\n\t\t\t\t\t\t\tconsole.log(view);\r\n\t\t\t\t\t\t\tiot.navigator.aback();\r\n\t\t\t\t }\r\n\t\t\t \t});\r\n\t\t \t}\r\n//\t\t \tlet data = uPublic.checkResponseData(response.data);\r\n//\t \t\tif(data){\r\n//\t\t\t \tuComponents.openAlert(self, Vue.t('editName.nicknameCanNotBeBlank'), {\r\n//\t\t\t text: Vue.t('btn.confirm'), callback: function () {\r\n//\t\t\t\t\t\t\tlet opener = plus.webview.currentWebview().opener();\r\n//\t\t\t\t\t\t\tlet view = plus.webview.getWebviewById(opener.id);\r\n//\t\t\t\t\t\t\tconsole.log(view);\r\n//\t\t\t\t\t\t\tiot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});\r\n//\t\t\t\t\t\t\tconsole.log('returnPage');\r\n//\t\t \t\t\t\tiot.navigator.back();\r\n//\t\t\t\t }\r\n//\t\t\t \t});\r\n//\t \t\t}\r\n\t\t },\r\n\t\t error: (error) => {\r\n\t\t \tconsole.log(error);\r\n//\t\t \tif(window.iotDebug){\r\n//\t iotDebug.push('end: 修改用户名称失败'+JSON.stringify(error));\r\n//\t \t}\r\n//\t\t \tif (window.iotDebug) {\r\n//\t iotDebug.upload(iot,'修改用户名称失败');\r\n//\t }\r\n\t\t \tuComponents.openAlert(self, Vue.t('editName.editNameFailue'), {\r\n\t\t text: Vue.t('btn.confirm'), callback: function () {\r\n\t\t \t\tlet opener = plus.webview.currentWebview().opener();\r\n\t \t\t\t\tiot.navigator.back();\r\n\t\t\t }\r\n\t\t \t});\r\n\t\t },\r\n\t\t complete: () => {\r\n\t \t\tuComponents.hideLoading(self);\r\n\t\t }\r\n\t\t});\r\n }\r\n}\r\n\r\nfunction nameChange(self,text){\r\n \tself.textName = text;\r\n\tself.setTextErrorTip('');\r\n\tconsole.log('nameChange: ' + self.textName);\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/view/doorlockUsers/v_editName.js"],"sourceRoot":""}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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