Commit 1369239b by 朱建香

资源包压缩文件

parent 35d7cc0f
<?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.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/device/recordList.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.alarmInfo') }}</p>
</div>
<div class="content">
<div class="notice" v-if="noticeTipShowFlag">
<span>&#xe637;</span>
{{ $t('notice.tip') }}
<v-touch tag="p" v-on:tap="onNotifycationSetting()">{{ $t('notice.button') }}
<span></span></v-touch>
</div>
<list ref="list" :init-param="componentsConfig.alarmInfoList.initParam" v-on:u-list-load="onListLoad()"></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>
<script type="text/javascript" src="./alarmInfo.js" defer async></script>
</body>
</html>
\ No newline at end of file
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/device/recordList.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.hijackRecord') }}</p>
</div>
<div class="content">
<div class="notice" v-if="noticeTipShowFlag">
<span>&#xe637;</span>
{{ $t('notice.tip') }}
<v-touch tag="p" v-on:tap="onNotifycationSetting()">{{ $t('notice.button') }}
<span></span></v-touch>
</div>
<list ref="list" :init-param="componentsConfig.hijackRecordList.initParam" v-on:u-list-load="onListLoad()"></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>
<script type="text/javascript" src="./hijackRecord.js" defer async></script>
</body>
</html>
\ 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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/device/device.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<script type="text/javascript" src="../../../../lib/js/start.js"></script>
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onLogoutButtonTap">&#xe6ce;</v-touch>
<p>{{ $t('title.device') }}</p>
</div>
<div class="content">
<div class="topCpnt">
<div v-show="lockId">
<v-touch tag="div" class="doorbellBg" v-bind:class="[{ redDoorbellBg: warmingShowFlag },{ active: normalApertureShow },{warmingActive: warmingApertureShow}]" v-on:tap="onStopDoorbellRing()">
<div class="doorbellCircle">
<div class="doorbell" v-bind:class="{ active: doorbellRingingFlag }">
<!--<img :src="msgIconSrc">-->
<div :class=" msgClass ">
<ul class="wifiRemote">
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
</div>
<div class="doorbellTip"><span>{{ msgTime }}</span>{{ msgText }}</div>
</v-touch>
<p class="batteryState" :class="[{yellowWarning: batteryPercent<=20},{redWarning: batteryPercent<10}]"><span v-html="batteryState" ></span><span>{{ batteryPercent }}%</span></p>
</div>
<v-touch tag="div" v-show="!lockId" class="bindDoorlock" v-on:tap="onBindDoorlockTap">
<p>{{ $t('device.bindDoorlock') }}</p>
</v-touch>
</div>
<div class="deviceHandle">
<p class="title" v-if="lockId">{{ $t('device.newMsgDoorlock') }}</p>
<u-marquee ref="umarquee" :active="activeFlag" :init-param="componentsConfig.marquee.initParam"></u-marquee>
<div class="switchGroup">
<div class="guoupRow">
<!-- 开门记录 -->
<div class="col-xs-6 opendoorRecord" v-bind:class="{newMsg: opendoorRecordFlag}">
<u-switch :value="valueOpendoorRecord" :disabled="opendoorRecordDisabledFlag" :init-param="componentsConfig.opendoorRecordSwitch.initParam" v-on:u-switch-tap="onOpendoorRecordTap"></u-switch>
</div>
<!-- 安全报警 -->
<div class="col-xs-6 securityAlarm" v-bind:class="{newMsg: securityAlarmFlag}">
<u-switch :value="valueSecurityAlarm" :disabled="securityAlarmDisabledFlag" :init-param="componentsConfig.securityAlarmSwitch.initParam" v-on:u-switch-tap="onSecurityAlarmTap"></u-switch>
</div>
</div>
<div class="guoupRow">
<!-- 门锁用户 -->
<div class="col-xs-6 doorlockUser">
<u-switch :value="valueDoorlockUser" :disabled="doorlockUserDisabledFlag" :init-param="componentsConfig.doorlockUserSwitch.initParam" v-on:u-switch-tap="onDoorlockUserTap"></u-switch>
</div>
<!-- 劫持报警 -->
<div class="col-xs-6 hijackAlarm" v-bind:class="{newMsg: hijackAlarmFlag}">
<u-switch :value="valueHijackAlarm" :disabled="hijackAlarmDisabledFlag" :init-param="componentsConfig.hijackAlarmSwitch.initParam" v-on:u-switch-tap="onHijackAlarmTap"></u-switch>
</div>
</div>
<div class="guoupRow">
<!-- 远程开门 -->
<div class="col-xs-6 remoteOpendoor" v-bind:class="{newMsg: remoteOpendoorFlag}">
<u-switch :value="valueRemoteOpendoor && !role" :disabled="remoteOpendoorDisabledFlag || role" :init-param="componentsConfig.remoteOpendoorSwitch.initParam" v-on:u-switch-tap="onRemoteOpendoorTap"></u-switch>
</div>
<!-- 门锁管理 -->
<div class="col-xs-6 doorlockManage" >
<u-switch :value="valueDoorlockManage" :disabled="doorlockManageDisabledFlag" :init-param="componentsConfig.doorlockManageSwitch.initParam" v-on:u-switch-tap="onDoorlockManageTap"></u-switch>
</div>
</div>
</div>
</div>
</div>
<transition name="fade">
<div class="followServiceNumber-dialog" v-show="followShowFlag">
<div class="followServiceNumber-dialog-box">
<ul class="">
<li>{{ $t('device.followTitle') }}</li>
<li v-html="$t('device.followCont1')"></li>
<li v-html="$t('device.followCont2')"></li>
<li>
<p></p>
</li>
</ul>
<u-button :init-param="componentsConfig.saveQRcodeButton.initParam" v-on:u-button-tap="onSaveQRcodeButtonTap"></u-button>
<p class="linkText"><v-touch tag="span" v-on:tap="onLaterFollowTap">{{ $t('device.laterFollow') }}</v-touch></p>
</div>
</div>
</transition>
<transition name="fade">
<div class="remoteOpendoorPage" v-show="remoteOpendoorShowFlag">
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.remoteOpendoor') }}</p>
</div>
<div class="content">
<div class="inputBox">
<u-text :init-param="componentsConfig.passwordInput.initParam" :text="textPassword"
v-on:u-text-change="onPasswordChange(arguments[0])"
v-on:u-text-match-minlength="onPasswordMatchlength(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
</div>
<u-button :init-param="componentsConfig.confirmButton.initParam" v-on:u-button-tap="onConfirmButtonTap"></u-button>
</div>
<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>
</div>
</transition>
<!--<update-app :show-flag="true"></update-app>-->
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./index.js" defer async></script>
</body>
</html>
\ 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.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/device/notify.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<script type="text/javascript" src="../../../../lib/js/start.js"></script>
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body>
<div id="content" v-cloak>
<android-notify :to-index="onNotifyToIndex"> </android-notify>
</div>
<script type="text/javascript" src="notify.js"></script>
</body>
</html>
\ No newline at end of file
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/device/recordList.css">
<link rel="stylesheet" type="text/css" href="./recordList.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.opendoorRecord') }}</p>
</div>
<div class="content">
<div class="notice" v-if="noticeTipShowFlag">
<span>&#xe637;</span>
{{ $t('notice.tip') }}
<v-touch tag="p" v-on:tap="onNotifycationSetting()">{{ $t('notice.button') }}
<span></span></v-touch>
</div>
<list ref="list" :init-param="componentsConfig.opendoorRecordList.initParam" v-on:u-list-load="onListLoad()"></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>
<script type="text/javascript" src="./opendoorRecord.js" defer async></script>
</body>
</html>
\ 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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/device/device.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.remoteOpendoor') }}</p>
</div>
<div class="content">
<div class="inputBox">
<u-text :init-param="componentsConfig.passwordInput.initParam" :text="textPassword"
v-on:u-text-change="onPasswordChange(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
</div>
<u-button :init-param="componentsConfig.confirmButton.initParam" v-on:u-button-tap="onConfirmButtonTap"></u-button>
</div>
<u-comm-loading ref="ucommstatusloading" :text="textLoading" :status="status"
:init-param="componentsConfig.ucommstatusloading.initParam" v-on:u-commstatus-loading-tap="onCommstatusLoadingButtonTap()">
<p class="loader"></p>
<p class="icon"></p>
</u-comm-loading>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./remoteOpendoor.js" defer async></script>
</body>
</html>
\ 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.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/unlockInfo.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.addUnlockInfo') }}</p>
</div>
<div class="content">
<div class="opendoorMode">
<p class="title">{{ $t('addUnlockInfo.opendoorMode') }}</p>
<ul class="modeSelect">
<v-touch tag="li" v-bind:class="{active: item.mode == selectedMode}" v-for="item in waysOpenDoor" v-on:tap="onSelectOpenDoorModeTap(item.mode)">
{{ item.text }}
</ul>
</div>
<div class="opendoorRecord">
<p class="title">{{ $t('addUnlockInfo.opendoorRecord') }}</p>
<u-select ref="uselect" :value="recordSelectIndex" :init-param="componentsConfig.recordSelect.initParam"
v-on:u-select-change="onRecordSelectChange(arguments[0])"></u-select>
<div class="position">
<p class="tip">{{ $t('addUnlockInfo.tip') }}</p>
<u-switch :value="valueSetHijack" v-show="recordSelectList.length && selectedMode == 2"
:init-param="componentsConfig.setHijackSwitch.initParam" v-on:u-switch-tap="onSetHijackTap(arguments[0])"></u-switch>
</div>
</div>
<u-button :init-param="componentsConfig.addButton.initParam" :disabled="!recordSelectList.length" v-on:u-button-tap="onAddButtonTap"></u-button>
</div>
<transition name="fade">
<div class="guide-dialog" v-show="guideShowFlag">
<transition name="fade">
<div class="guideStep1" v-show="guideStep1ShowFlag">
<div class="guideStep1Cont">
<p class="title">{{ $t('addUnlockInfo.opendoorMode') }}</p>
<ul class="modeSelect">
<li class="active">{{ $t('addUnlockInfo.fingerprint') }}</li>
<li>{{ $t('addUnlockInfo.password') }}</li>
<li>{{ $t('addUnlockInfo.icCard') }}</li>
<li>{{ $t('addUnlockInfo.remote') }}</li>
</ul>
</div>
<div class="guideStep1Tip">
{{ $t('addUnlockInfo.guideStep1Tip') }}
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep2" v-show="guideStep2ShowFlag">
<u-button :init-param="componentsConfig.nextButton.initParam" v-on:u-button-tap="onNextButtonTap"></u-button>
</div>
</transition>
<transition name="fade">
<div class="guideStep3" v-show="guideStep3ShowFlag">
<div class="guideStep3Tip" v-html="$t('addUnlockInfo.guideStep3Tip')"></div>
<div class="guideStep3Cont">
<ul>
<li class="active">
<p>16:35</p>
<p>ID:001</p>
</li>
<li>
<p>15:33</p>
<p>ID:002</p>
</li>
</ul>
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep4" v-show="guideStep4ShowFlag">
<u-button :init-param="componentsConfig.nextButton.initParam" v-on:u-button-tap="onNextStepButtonTap"></u-button>
</div>
</transition>
<transition name="fade">
<div class="guideStep5" v-show="guideStep5ShowFlag">
<div class="guideStep5Tip" v-html="$t('addUnlockInfo.guideStep5Tip')"></div>
<div class="guideStep5Cont">
<p>{{ $t('addUnlockInfo.setHijackSwitch') }}</p>
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep6" v-show="guideStep6ShowFlag">
<u-button :init-param="componentsConfig.iSeeButton.initParam" v-on:u-button-tap="onISeeButtonTap"></u-button>
</div>
</transition>
</div>
</transition>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./addUnlockInfo.js" defer async></script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/userList.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.addUser') }}</p>
</div>
<div class="content">
<div class="inputBox">
<u-text :init-param="componentsConfig.nameInput.initParam" :text="textName"
v-on:u-text-change="onNameChange(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
</div>
<u-button :init-param="componentsConfig.confirmButton.initParam" v-on:u-button-tap="onConfirmButtonTap"></u-button>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./addUser.js" defer async></script>
</body>
</html>
\ No newline at end of file
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/doorlockUser.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.doorlockUser') }}</p>
</div>
<div class="content">
<ul class="userInfoLink">
<li class="userInfo" >
<p class="userInfo-image" v-bind:class="userInfo.imgClass"></p>
<!--<img class="userInfo-image" v-bind:src="userInfo.image">-->
<!--<img class="userInfo-image" v-if="userInfo.image && userInfo.role == 0" v-bind:src="userInfo.image">
<img class="userInfo-subimage" v-if="userInfo.image && userInfo.role != 0" v-bind:src="userInfo.image">-->
<span class="userInfo-title">{{ userInfo.title == (null || '') ? $t('doorlockUser.defaultName') : userInfo.title}}</span>
<u-button :init-param="componentsConfig.bindButton.initParam" class="userInfo-toBind" v-on:u-button-tap="onBindButtonTap" v-show="bindShowFlag && !role"></u-button>
<u-button :init-param="componentsConfig.unbindButton.initParam" v-on:u-button-tap="onUnbindButtonTap" v-show="(unbindShowFlag && !role && userInfo.role != 0)"></u-button>
</li>
<v-touch tag="li" v-on:tap="onBindUnlockInfoTap" v-show="!role">{{ $t('doorlockUser.bindUnlockInfo') }}</v-touch>
<v-touch tag="li" v-bind:class="[{disabled: isFirstAddUser}]" v-on:tap="onEditNameTap" v-show="!role">{{ $t('doorlockUser.editUsername') }}</v-touch>
<v-touch tag="li" v-bind:class="[{disabled: isFirstAddUser}]" v-on:tap="onOpendoorRecordTap">{{ $t('doorlockUser.opendoorRecord') }}</v-touch>
</ul>
<u-button :disabled="isFirstAddUser" :init-param="componentsConfig.deleteUserButton.initParam" v-on:u-button-tap="onDeleteUserButtonTap" v-show="!role && userInfo.role != 0"></u-button>
</div>
<!--<transition name="fade">
<v-touch tag="div" class="unbindState-dialog" v-show="stateShowFlag" v-on:tap="onUnbindStateDialogTap">
<div>
<img :src="imageSrc">{{ textBindTip }}
</div>
</v-touch>
</transition> -->
<transition name="fade">
<div class="guide-dialog" v-show="guideShowFlag">
<transition name="fade">
<div class="guideStep1" v-show="guideStep1ShowFlag">
<div class="guideStep1Cont">
<p class="userInfo-image" v-bind:class="userInfo.imgClass"></p>
<!--<img class="userInfo-image" v-bind:src="userInfo.image">-->
<span class="userInfo-title">{{ userInfo.title == (null || '') ? $t('doorlockUser.defaultName') : userInfo.title}}</span>
<u-button :init-param="componentsConfig.bindButton.initParam" class="userInfo-toBind" v-on:u-button-tap="onBindButtonTap" v-show="bindShowFlag && !role"></u-button>
<u-button :init-param="componentsConfig.unbindButton.initParam" v-on:u-button-tap="onUnbindButtonTap" v-show="(unbindShowFlag && !role && userInfo.role != 0)"></u-button>
</div>
<div class="guideStep1Tip">
<p>{{ $t('doorlockUser.guideStep1Tip1') }}</p>
<p v-html="$t('doorlockUser.guideStep1Tip2')"></p>
</div>
</div>
</transition>
<transition name="fade">
<div class="guideStep2" v-show="guideStep2ShowFlag">
<u-button :init-param="componentsConfig.nextButton.initParam" v-on:u-button-tap="onNextButtonTap"></u-button>
</div>
</transition>
<transition name="fade">
<div class="guideStep3" v-show="guideStep3ShowFlag">
<div class="guideStep3Cont">
<p>{{ $t('doorlockUser.bindUnlockInfo') }}</p>
</div>
<div class="guideStep3Tip" v-html="$t('doorlockUser.guideStep3Tip')"></div>
</div>
</transition>
<transition name="fade">
<div class="guideStep4" v-show="guideStep4ShowFlag">
<u-button :init-param="componentsConfig.iSeeButton.initParam" v-on:u-button-tap="onISeeButtonTap"></u-button>
</div>
</transition>
</div>
</transition>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./doorlockUser.js" defer async></script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/doorlockUser.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.editName') }}</p>
<v-touch tag="span" class="header-right" v-on:tap="onSaveTap" v-show="!role">{{ $t('btn.save') }}</v-touch>
</div>
<div class="content">
<div class="inputBox">
<u-text :init-param="componentsConfig.nameInput.initParam" :text="textName"
v-on:u-text-change="onNameChange(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
</div>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./editName.js" defer async></script>
</body>
</html>
\ 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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/userList.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.doorlockUser') }}</p>
<v-touch tag="span" class="header-right icon" v-on:tap="onAddUserTap" v-show="!role">&#xe600;</v-touch>
</div>
<div class="user-list">
<ul class="user-list-scroll" v-show="userList.length">
<v-touch tag="li" class="user-list-row" v-for="(item, index) in userList" :key="index" >
<v-touch tag="div" class="user-list-handle"
v-on:tap="onTapUserList(index)">
<!--<img class="user-list-image" v-bind:src="item.image">-->
<p class="user-list-image" v-bind:class="item.imgClass"></p>
<div>
<p class="user-list-title" v-bind:class="{'currentUser': userListData[index].user_id == currentId }" >{{ item.title == (null || '')? $t('userList.defaultName'):item.title}}</p>
<!--<p class="user-list-subtitle">
<img class="user-list-subimage" v-if="item.image && item.role != 0" v-bind:src="item.image">
<span v-if="item.subtitle">{{ item.subtitle }}</span>
</p>-->
</div>
</v-touch>
<div class="user-list-button">
<v-touch tag="div" v-on:tap="onTapButton(index)">&#xe66d;</v-touch>
</div>
</v-touch>
<v-touch tag="li" class="user-list-load" v-on:tap="onTapLoad" v-show="loadShowFlag">{{ loadText }}</v-touch>
</ul>
<p class="user-list-tip" v-show="(userList.length == 0)">{{ tip }}</p>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./index.js" defer async></script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/doorlockUser.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<script type="text/javascript" src="../../../../lib/js/start.js"></script>
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.inviteBind') }}</p>
</div>
<div class="content">
<p class="invite-usertip">{{ $t('inviteBind.userTip') }}</p>
<ul class="inviteBind">
<li class="qrcode">
<canvas ref="qrcode"></canvas>
<p v-show="qrCodeDisabled">
<span>{{ $t('inviteBind.qrcodeExpireTip') }}</span>
</p>
</li>
<li class="tip">{{ $t('inviteBind.tip') }}<v-touch tag="span" v-on:tap="onQRcodeButtonTap">{{ $t('inviteBind.buttonText') }}</v-touch></li>
<li class="title">{{ $t('inviteBind.title') }}</li>
<li><span>&#xe6c1;</span>{{ $t('inviteBind.cont1') }}</li>
<li><span>&#xe6c0;</span>{{ $t('inviteBind.cont2') }}</li>
<li class="noBorder"><span>&#xe6c2;</span>{{ $t('inviteBind.cont3') }}</li>
</ul>
<!--<u-button :init-param="componentsConfig.qrcodeButton.initParam" v-on:u-button-tap="onQRcodeButtonTap"></u-button>-->
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./inviteBind.js" defer async></script>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../../lib/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../../../view/doorlockUsers/unlockInfo.css">
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<!--<script type="text/javascript" src="../../../../lib/js/start.js"></script>-->
<script type="text/javascript" src="../../lib/js/p.js"></script>
<script type="text/javascript" src="../../../../lib/js/UIOT.js"></script>
</head>
<body ontouchstart="">
<div id="app" v-cloak>
<div class="header">
<v-touch tag="span" class="header-left icon" v-on:tap="onBackTap">&#xe611;</v-touch>
<p>{{ $t('title.unlockInfo') }}</p>
<!--<v-touch tag="span" class="header-right" v-on:tap="onAddTap" v-show="!role">{{ $t('btn.add') }}</v-touch>-->
</div>
<div class="content">
<!--<p class="title">{{ $t('unlockInfo.bindUnlockInfo') }}</p>-->
<ul class="tab">
<v-touch tag="li" v-for="(item, key, index) in lockItems" v-text="lockItems[key].text"
:class="[{active: (selectItem == key)},{newMsg: newUnlockInfo && (key == 1)}]" v-on:tap="onItemChange(key)">
</v-touch>
</ul>
<!--<u-swipe-list ref="uswipelist" :init-param="componentsConfig.unlockInfoList.initParam"
v-on:u-swipe-list-button-tap="onUnlockInfoListButtonTap(arguments[0],arguments[1])"></u-swipe-list>-->
<div class="infoList-list" ref="infoList">
<ul class="infoList-list-scroll" v-show="infoList.length">
<li class="infoList-list-row" v-for="(item, index) in infoList">
<div class="infoList-list-handle">
<p class="infoList-list-title">{{ item.title }}</p>
<p class="infoList-list-subtitle">{{ item.subtitle }}</p>
</div>
<div class="infoList-list-button">
<v-touch tag="div" class="infoList-list-buttonCont" v-for="(button, buttonIndex) in item.buttons" v-show="button.imgClass || button.text" v-on:tap="onImgButtonTap(index, buttonIndex)">
<!--<img :src="button.imgSrc" v-show="button.imgSrc">-->
<p v-bind:class="button.imgClass" v-show="button.imgClass"></p>
{{ button.text }}
</v-touch>
</div>
</li>
<!--<v-touch tag="li" class="infoList-list-load" v-on:tap="onTapLoad" v-show="loadShowFlag">
<span class="infoList-list-load-animation" v-show="loadFlag"></span>
{{ loadText }}
</v-touch>-->
</ul>
<p class="infoList-list-tip" v-bind:class="{'noHistory-list-tip':selectItem == 0}" v-show="tipShowFlag && (infoList.length == 0)">{{ selectItem == 0 ? noHistoryTip : unlockInfoListTip }}</p>
</div>
</div>
<u-dialog ref="udialog" :init-param="componentsConfig.dialog.initParam"></u-dialog>
<u-loading ref="uloading" :init-param="componentsConfig.loading.initParam"></u-loading>
</div>
<script type="text/javascript" src="./unlockInfo.js" defer async></script>
</body>
</html>
\ No newline at end of file
{
"@platforms": ["android", "iPhone", "iPad"],
"id": "doorlock",
"name": "app升级",
"version": {
"name": "1.0",
"code": "1.0"
},
"description": "",
"icons": {
"72": "icon.png"
},
"launch_path": "http://192.168.2.184:8000/view/login/index.html",
"developer": {
"name": "",
"email": "",
"url": ""
},
"permissions": {
"Accelerometer": {
"description": "访问加速度感应器"
},
"Audio": {
"description": "访问麦克风"
},
"Cache": {
"description": "管理应用缓存"
},
"Camera": {
"description": "访问摄像头"
},
"Console": {
"description": "跟踪调试输出日志"
},
"Contacts": {
"description": "访问系统联系人信息"
},
"Device": {
"description": "访问设备信息"
},
"Downloader": {
"description": "文件下载管理"
},
"Events": {
"description": "应用扩展事件"
},
"File": {
"description": "访问本地文件系统"
},
"Gallery": {
"description": "访问系统相册"
},
"Geolocation": {
"description": "访问位置信息"
},
"Invocation": {
"description": "使用Native.js能力"
},
"Messaging": {
"description": "访问通讯能力"
},
"Orientation": {
"description": "访问方向感应器"
},
"Proximity": {
"description": "访问距离感应器"
},
"Storage": {
"description": "管理应用本地数据"
},
"UI": {},
"Uploader": {
"description": "管理文件上传任务"
},
"Runtime": {
"description": "访问运行期环境"
},
"XMLHttpRequest": {
"description": "跨域网络访问"
},
"Zip": {
"description": "文件压缩与解压缩"
},
"Barcode": {
"description": "管理二维码扫描插件"
},
"Maps": {
"description": "管理地图插件"
},
"Speech": {
"description": "管理语音识别插件"
},
"Webview":{},"NativeUI":{},"Navigator":{}
},
"plus": {
"splashscreen": {
"autoclose": true,
"waiting": true
},
"popGesture": "close",
"runmode": "liberate",
"signature": "Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==",
"distribute": {
"apple": {
"appid": "App",
"mobileprovision": "",
"password": "",
"p12": "",
"devices": "universal",
"frameworks":[
]
},
"google": {
"packagename": "",
"keystore": "",
"password": "",
"aliasname": "",
"permissions": [
]
},
"orientation": [
"portrait-primary"
],
"icons": {
"ios": {
"prerendered": true,
"auto": "",
"iphone": {
"normal": "",
"retina": "",
"retina7": "",
"retina8": "",
"spotlight-normal": "",
"spotlight-retina": "",
"spotlight-retina7": "",
"settings-normal": "",
"settings-retina": "",
"settings-retina8": ""
},
"ipad": {
"normal": "",
"retina": "",
"normal7": "",
"retina7": "",
"spotlight-normal": "",
"spotlight-retina": "",
"spotlight-normal7": "",
"spotlight-retina7": "",
"settings-normal": "",
"settings-retina": ""
}
}
},
"splashscreen": {
"ios": {
"iphone": {
},
"ipad": {
}
},
"android": {
}
}
}
}
}
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