webpackJsonp([24],{

/***/ 199:
/***/ (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__(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']);
	_public.uPublic.closeSlideBack();
	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);
			if (window.iotDebug) {
				iotDebug.push('end: 获取wifi失败' + JSON.stringify(response));
			}
			if (window.iotDebug) {
				iotDebug.upload(_public.iot, '获取wifi失败');
			}
			_public.uPublic.openRequestErrorAlert(self);
		}
	});
}

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

_public.iot.navigator.aback = function () {
	_public.iot.navigator.fire(plus.webview.currentWebview().opener(), 'returnPage', {});
	_public.iot.navigator.back();
};

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

//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.uComponents.showCommLoading(self);
		_public.iot.business.sds.findWifi({
			data: {
				model: _config2.default.model,
				ssid: self.getTextWiFiName(),
				wifiPwd: self.getTextPassword(),
				timeout: 20000
			},
			success: function success(response) {
				console.log("findWifi");
				console.log(response);
				if (window.iotDebug) {
					iotDebug.push('end: 找WIFI' + JSON.stringify(response));
				}
				if (window.iotDebug) {
					iotDebug.upload(_public.iot, '找WIFI');
				}
				if (response.data == 'onProvisioning') {
					//wifi链接中
					if (window.iotDebug) {
						iotDebug.push('end: 配网中' + JSON.stringify(response));
					}
					if (window.iotDebug) {
						iotDebug.upload(_public.iot, '配网中');
					}
					_public.uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.wifiBinding'));
				} else if (response.data == 'provisioned success') {
					if (window.iotDebug) {
						iotDebug.push('end: 配网成功' + JSON.stringify(response));
					}
					if (window.iotDebug) {
						iotDebug.upload(_public.iot, '配网成功');
					}
					//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);
				if (window.iotDebug) {
					iotDebug.push('end: 配网失败' + JSON.stringify(_error2));
				}
				if (window.iotDebug) {
					iotDebug.upload(_public.iot, '配网失败');
				}
				_public.uPublic.openRequestErrorAlert(self);
			}
		});
		_public.iot.business.sds.findDevices({
			success: function success(response) {
				console.log('findDevices');
				if (window.iotDebug) {
					iotDebug.push('end: 找设备' + JSON.stringify(response));
				}
				if (window.iotDebug) {
					iotDebug.upload(_public.iot, '找设备');
				}
				var productId = _config2.default.model;
				if (response.data == "onJoining") {
					if (window.iotDebug) {
						iotDebug.push('end: 激活中' + JSON.stringify(response));
					}
					if (window.iotDebug) {
						iotDebug.upload(_public.iot, '激活中');
					}
					_public.uComponents.changeCommLoadingStatusAndText(self, 0, Vue.t('wifiAdd.deviceActivating'));
				} else if (response.data == "joined success") {
					if (window.iotDebug) {
						iotDebug.push('end: 激活成功' + JSON.stringify(response));
					}
					if (window.iotDebug) {
						iotDebug.upload(_public.iot, '激活成功');
					}
					var deviceId = response.info.sn;
					unbind(self, deviceId, productId);
					//		    		bind(self, deviceId, productId);
				} else if (response.data == "fail") {
					//连接失败
					if (window.iotDebug) {
						iotDebug.push('end: 激活失败' + JSON.stringify(response));
					}
					if (window.iotDebug) {
						iotDebug.upload(_public.iot, '激活失败');
					}
					_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);
				if (window.iotDebug) {
					iotDebug.push('end: findDevicesError' + JSON.stringify(_error4));
				}
				if (window.iotDebug) {
					iotDebug.upload(_public.iot);
				}
				_public.uPublic.openRequestErrorAlert(self);
			}
		});
	}
	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);
			if (window.iotDebug) {
				iotDebug.push('end: 解绑成功' + JSON.stringify(response));
			}
			if (window.iotDebug) {
				iotDebug.upload(_public.iot, '解绑成功');
			}
		},
		error: function error(_error6) {
			console.log(_error6);
			if (window.iotDebug) {
				iotDebug.push('end: 解绑失败' + JSON.stringify(_error6));
			}
			if (window.iotDebug) {
				iotDebug.upload(_public.iot, '解绑失败');
			}
			_public.uComponents.changeCommLoadingStatusAndText(self, 2, Vue.t('wifiAdd.deviceActivateFailure'));
			_public.uComponents.changeCommButtonText(self, Vue.t('addDevice.reBindDevice'));
			self.setStatus(2);
		},
		complete: function complete() {}
	});
}

function bind(self, deviceId, productId) {
	_public.iot.business.api.sendCustom('lock/bind', {
		data: {
			product_id: productId,
			device_id: deviceId,
			//			mac: sn,
			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);
			}
			if (window.iotDebug) {
				iotDebug.push('end: 绑定成功' + JSON.stringify(response));
			}
			if (window.iotDebug) {
				iotDebug.upload(_public.iot, '绑定成功');
			}
		},
		error: function error(_error7) {
			console.log(_error7);
			if (window.iotDebug) {
				iotDebug.push('end: 绑定失败' + JSON.stringify(_error7));
			}
			if (window.iotDebug) {
				iotDebug.upload(_public.iot, '绑定失败');
			}
			_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"]))

/***/ }),

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

module.exports = __webpack_require__(199);


/***/ })

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