webpackJsonp([24],{

/***/ 199:
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(Vue) {

var _config = __webpack_require__(127);

var _config2 = _interopRequireDefault(_config);

var _public = __webpack_require__(4);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/**
* v_wifiAdd.js
* Version: 0.1
* User: wy
* Date: 2017-09-07
* Copyright(c)  2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 连接Wi-Fi页面
*/

_public.iot.ready(init);
function init() {
				//通用 input、按钮、dialog、loading组件
				_public.uPublic.componentsInit(['u-text', 'u-button', 'u-comm-loading', 'u-dialog', 'u-loading']);
				var app = new Vue({
								data: {
												textWiFiName: null,
												textPassword: null,
												textErrorTip: null,
												//配置组件
												componentsConfig: initComponentsConfig(),
												status: 0
								},
								mounted: function mounted() {
												resolve(this);
								},

								methods: {
												getTextWiFiName: function getTextWiFiName() {
																return this.textWiFiName;
												},
												setTextWiFiName: function setTextWiFiName(text) {
																this.textWiFiName = text;
												},
												getTextPassword: function getTextPassword() {
																return this.textPassword;
												},
												setTextPassword: function setTextPassword(pwd) {
																this.textPassword = pwd;
												},
												gettTextErrorTip: function gettTextErrorTip() {
																return this.textErrorTip;
												},
												setTextErrorTip: function setTextErrorTip(tip) {
																this.textErrorTip = tip;
												},
												getStatus: function getStatus() {
																return this.status;
												},
												setStatus: function setStatus(status) {
																this.status = status;
												},
												onPasswordChange: function onPasswordChange(text) {
																passwordChange(this, text);
												},

												//tap <
												onBackTap: function onBackTap() {
																backTap();
												},

												//tap 连接
												onConnectButtonTap: function onConnectButtonTap() {
																connectButtonTap(this);
												},

												//tap loading button
												onCommLoadingButtonTap: function onCommLoadingButtonTap() {
																commLoadingButtonTap(this);
												}
								}
				}).$mount('#app');
}

//配置组件参数
function initComponentsConfig() {
				return {
								passwordInput: {
												initParam: {
																class: 'custom-password-text',
																icon: '&#xe64d;',
																placeholder: Vue.t('wifiAdd.passwordInputTip'),
																type: 'password'
												}
								},
								//连接 button 参数
								connectButton: {
												initParam: {
																class: 'custom-button',
																text: Vue.t('btn.connect')
												}
								},
								dialog: {
												initParam: {
																class: 'custom-dialog'
												}
								},
								loading: {
												initParam: {
																class: 'custom-loading'
												}
								},
								ucommloading: {
												initParam: {
																class: 'custom-comm-loading',
																buttonText: Vue.t('btn.confirm'),
																text: Vue.t('addDevice.loading'),
																status: 0
												}
								}
				};
}

function resolve(self) {
				_public.iot.business.sds.getSSId({
								success: function success(response) {
												console.log(response);
												self.textWiFiName = response.data.ssid;
												console.log(self.textWiFiName);
								},
								error: function error(_error) {
												console.log(_error);
												_public.uPublic.openRequestErrorAlert(self);
								}
				});
}

function passwordChange(self, text) {
				self.textPassword = text;
				console.log('passwordChange: ' + self.textPassword);
}

//tap <
function backTap() {
				_public.iot.navigator.back();
}

//tap 连接
function connectButtonTap(self) {
				//	console.log(self.getTextWiFiName());
				//	console.log(self.getTextPassword());
				if (self.getTextWiFiName() == null || self.getTextWiFiName().trim() == '') {
								self.setTextErrorTip(Vue.t('wifiAdd.unbindWifiTip'));
				} else if (self.getTextPassword() == null || self.getTextPassword().trim() == '') {
								self.setTextErrorTip(Vue.t('wifiAdd.passwordInputTip'));
				} else {
								_public.iot.business.sds.findWifi({
												data: {
																model: _public.iot.navigator.getExtras().model,
																ssid: self.getTextWiFiName(),
																wifiPwd: self.getTextPassword(),
																timeout: 20000
												},
												success: function success(response) {
																console.log("findWifi");
																console.log(response);
																if (response.data == 'onProvisioning') {
																				//wifi链接中
																				_public.uComponents.showCommLoading(self);
																				_public.uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBinding'));
																} else if (response.data == 'provisioned success') {
																				//wifi连接成功，停止连接wifi
																				_public.uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBindSuccess'));
																				//		    		iot.business.sds.stopFindWifi({
																				//					    success: (response) => {},
																				//					    error: (error) => {}
																				//					});
																}
												},
												error: function error(_error2) {
																console.log(_error2);
												}
								});
								var deviceId = null;
								_public.iot.business.sds.findDevices({
												success: function success(response) {
																console.log(response);
																var productId = _public.iot.navigator.getExtras().model;
																if (response.data == "onJoining") {
																				_public.uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.deviceActivating'));
																} else if (response.data == "joined success") {
																				var _deviceId = response.info.sn;
																				unbind(self, _deviceId, productId);
																				//		    		bind(self, deviceId, productId);
																} else if (response.data == "fail") {
																				//连接失败
																				_public.uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
																				self.setStatus(2);
																				_public.uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
																				//停止查找设备
																				_public.iot.business.sds.stopFindDevices({
																								success: function success(response) {},
																								error: function error(_error3) {}
																				});
																}
												},
												error: function error(_error4) {
																console.log(_error4);
												}
								});
				}
				setTimeout(function () {
								if (self.getStatus() == 0) {
												console.log("timeout");
												//连接失败
												_public.uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.bindTimeout'));
												self.setStatus(2);
												_public.uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
												//停止查找设备
												_public.iot.business.sds.stopFindDevices({
																success: function success(response) {},
																error: function error(_error5) {}
												});
								}
				}, _config2.default.wifi_add_timeout);
}

//tap loading button
function commLoadingButtonTap(self) {
				if (self.getStatus() == 1) {
								//绑定成功
								_public.uComponents.hideCommLoading(self);
								_public.iot.navigator.openWindow({
												url: '../device/index.html',
												id: 'device'
								});
				} else if (self.getStatus() == 2) {
								//绑定失败
								_public.uComponents.hideCommLoading(self);
								self.setStatus(0);
								_public.uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('addDevice.loading'));
				}
}

function unbind(self, deviceId, productId) {
				console.log(deviceId);
				_public.iot.business.api.sendCustom('lock/unbindDevice', {
								data: {
												device_sn: deviceId
								},
								success: function success(response) {
												console.log(response);
												bind(self, deviceId, productId);
								},
								error: function error(_error6) {
												console.log(_error6);
								},
								complete: function complete() {}
				});
}

function bind(self, deviceId, productId) {
				_public.iot.business.api.sendCustom('lock/bind', {
								data: {
												product_id: productId,
												device_id: deviceId,
												//			mac: parameters.mac,
												nickname: ''
								},
								success: function success(response) {
												console.log(response);
												var data = response.data;
												if (data.success) {
																_public.uComponents.changeCommLoadingStatusAndText(self, 1, Vue.t('wifiAdd.deviceActivateSuccess'));
																_public.uComponents.changeCommButtonText(self, Vue.t('btn.confirm'));
																self.setStatus(1);
												}
								},
								error: function error(_error7) {
												console.log(_error7);
												_public.uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
												_public.uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
												self.setStatus(2);
								},
								complete: function complete() {}
				});
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)["default"]))

/***/ }),

/***/ 297:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(199);


/***/ })

},[297]);
//# sourceMappingURL=wifiAdd.js.map