/**
* v_index.js
* Version: 0.1
* User: wy
* Date: 2017-09-06
* Copyright(c)  2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 主控页面
*/
import moment from 'moment';
import config from '../../public/config.js';
import {iot, uPublic, uComponents} from '../../public/public.js';

iot.ready(init);
function init() {
    //通用 图片轮播、跑马灯、开关、按钮、dialog、loading组件
    uPublic.componentsInit(['u-carousel','u-marquee','u-switch','u-button','u-dialog','u-loading']);
    const app = new Vue({
        data:{ 
            //开门记录
            valueOpendoorRecord: 1,
            //安全报警
            valueSecurityAlarm: 1,
            //门锁用户
            valueDoorlockUser: 1,
            //远程开门
            valueRemoteOpendoor: 1,
            //劫持报警
            valueHijackAlarm: 1,
            //门锁管理
            valueDoorlockManage: 1,
            activeFlag: true,
            followShowFlag: false,
            //配置组件
            componentsConfig: initComponentsConfig(),
            //电量
            batteryState: null,
            //电量百分比
            batteryPercent: 0,
            //响铃时间
            ringingTime: null,
            //门铃是否响起
            doorbellRingingFlag: true,
            //远程开门是否开启
            remoteOpendoorFlag: true,
            //设备ID
            deviceId: null,
            //设备uuid
            uuid: null
        },
        mounted(){
        	let self = this;
        	iot.navigator.closeAllBesidesItself();
        	//获取设备信息
        	iot.business.sds.getDevicesByUser({
			    success: (response) => {
			    	let data = uPublic.checkResponseData(response.data);
					if(data){
						self.uuid = data[0].uuid;
						self.deviceId = data[0].sn;
						iot.business.sds.getDeviceStatus({
						    data: {
						        uuid: self.uuid
						    },
						    success: (response) => {
						    	console.log(response);
						    },
						    error: (error) => {
						    	console.log(error);
						    	uPublic.openRequestErrorAlert(self);
						    }
						});
						
						iot.business.api.sendCustom('lock/getLockInfo',{
							data: {
//								device_id:"600194283588"
								device_id: self.deviceId
							},
							success: (response) => {
								console.log(response);
								let data = uPublic.checkResponseData(response.data);
								if(data){
									console.log(data.info);
									let newMsg = moment(data.info[0].time).format("YY.MM.DD  HH:mm") + data.info[0].nickname + Vue.t('opendoorRecord.'+config.openDoorMode[data.info[0].mode]+'')
									uComponents.changeMarqueeText(self, newMsg);
								}else{
									
								}
							},
							error: (error) => {
								console.log(error);
								uPublic.openRequestErrorAlert(self);
							}
						});
					}else{
						
					}
			    },
			    error: (error) => {}
			});
			//注册监听上报
			iot.business.sds.registerPushListener({
			    success: (response) => {
			    	console.log(response);
			    	if(response.hasOwnProperty('params')){
			    		console.log(JSON.parse(response));	
			    		setDevceInfo(self, response.params);
			    	}
			    },
			    error: (error) => {
			    	console.log(error);
			    	uPublic.openRequestErrorAlert(self);
			    }
			});
			let power = 5;
			this.batteryPercent = power/5*100;
			this.batteryState = config.powerIcon[power];
			let newMsg = '2017.08.02 18:45 宝贝指纹开门';
//			uComponents.changeMarqueeText(this, newMsg);
			let time = new Date();
			this.ringingTime = moment(time).format("HH:mm");
			
			
//			getNewOpenDoorRecord(this);
        },
        methods:{
            getValueOpendoorRecord(){
                return this.valueOpendoorRecord;
            },
            setValueOpendoorRecord(value){
                this.valueOpendoorRecord = value;
            },
            getValueSecurityAlarm(){
                return this.valueSecurityAlarm;
            },
            setValueSecurityAlarm(value){
                this.valueSecurityAlarm = value;
            },
            getValueRemoteOpendoor(){
                return this.valueRemoteOpendoor;
            },
            setValueRemoteOpendoor(value){
                this.valueRemoteOpendoor = value;
            },
            getValueHijackAlarm(){
                return this.valueHijackAlarm;
            },
            setValueHijackAlarm(value){
                this.valueHijackAlarm = value;
            }, 
            getFollowShowFlag(){
                return this.followShowFlag;
            },
            setFollowShowFlag(boolean){
                this.followShowFlag = boolean;
            },       
            getBatteryState(){
            	return this.batteryState();
            },
            setBatteryState(number){
            	this.batteryState = number
            },
            getBatteryPercent(){
            	return this.batteryPercent;
            },
            setBatteryPercent(percent){
            	this.batteryPercent = percent;
            },
            getRingingTime(){
            	return this.ringingTime;
            },
            setRingingTime(time){
            	this.ringingTime = time
            },
            getDoorbellRingingFlag(){
            	return this.doorbellRingingFlag;
            },
            setDoorbellRingingFlag(boolean){
            	this.doorbellRingingFlag = boolean;
            },
            getRemoteOpendoorFlag(){
            	return this.remoteOpendoorFlag;
            },
            setRemoteOpendoorFlag(flag){
            	this.remoteOpendoorFlag = flag;
            },
            getUuid(){
            	return this.uuid;
            },
            setUuid(){
            	this.uuid = id;
            },
            //tap 个人信息
            onMyInfoTap(){
            	myInfoTap(this);
            },
            //tap 门锁管理
            onDoorlockManageTap(){
                doorlockManageTap();
            },
            //tap 开门记录
            onOpendoorRecordTap(){
                opendoorRecordTap(this);
            }, 
            //tap 安全报警
            onSecurityAlarmTap(){
                securityAlarmTap(this);
            },
            //tap 门锁用户
            onDoorlockUserTap(){
                doorlockUserTap();
            },
            //tap 远程开门
            onRemoteOpendoorTap(){
                remoteOpendoorTap(this);
            },
            //tap 劫持报警
            onHijackAlarmTap(){
                hijackAlarmTap(this);
            },
            //tap 保存二维码到相册
            onSaveQRcodeButtonTap(){
                saveQRcodeButtonTap();
            },
            //tap 稍后关注
            onLaterFollowTap(){
                laterFollowTap(this);
            }                      
        }   
    }).$mount('#app');
}

//配置组件参数
function initComponentsConfig() {   
    return {
        //图片轮播
        carousel: {
            initParam: {
                class:'custom-carousel',
                list:  [{image: '../../resources/image/image1.png'},
                        {image: '../../resources/image/image2.png'},
                        {image: '../../resources/image/image3.png'}],
                auto: true,
                autoTime: 2000,
                loop: true
            }
        },
        marquee: {
            initParam: {
                class: "custom-marquee",
                text: "2017.08.02 18:45 宝贝指纹开门<br>2017.08.02 18:45 宝贝指纹开门<br>2017.08.02 18:45 宝贝指纹开门"
            }
        },
        //开门记录switch 参数
        opendoorRecordSwitch: {
            initParam: {
                class: 'custom-switch',
                text: Vue.t('device.opendoorRecord'),
                autoChange: false
            }
        },
        //安全报警switch 参数
        securityAlarmSwitch: {
            initParam: {
                class: 'custom-switch',
                text: Vue.t('device.securityAlarm'),
                autoChange: false
            }
        },
        doorlockUserSwitch: {
            initParam: {
                class: 'custom-switch',
                text: Vue.t('device.doorlockUser'),
                autoChange: false
            }
        },
        //远程开门switch 参数
        remoteOpendoorSwitch: {
            initParam: {
                class: 'custom-switch',
                text: Vue.t('device.remoteOpendoor'),
                autoChange: false
            }
        },
        //劫持报警switch 参数
        hijackAlarmSwitch: {
            initParam: {
                class: 'custom-switch',
                text: Vue.t('device.hijackAlarm'),
                autoChange: false
            }
        },
        doorlockManageSwitch: {
            initParam: {
                class: 'custom-switch',
                text: Vue.t('device.doorlockManage'),
                autoChange: false
            }
        },
        //确定 button 参数
        saveQRcodeButton: {   
            initParam: {
                class: 'custom-button',
                text: Vue.t('btn.saveQRcode')
            }
        },
        dialog: {
            initParam: {
                class: 'custom-dialog'
            }
        },
        loading: {
            initParam: {
                class: 'custom-loading'
            }
        }                
    }
}

//设置设备信息
function setDevceInfo(self, data) {
	self.setBatteryState(config.powerIcon[data.power]);
	self.setBatteryPercent(data.power/5*100);
	self.setRingingTime(moment(data.time).format("HH:mm"));
	self.setDoorbellRingingFlag(data);
	self.setRemoteOpendoorFlag(flag);
}

//获取最新开门记录
function getNewOpenDoorRecord(self){
	iot.business.api.sendCustom('',{
		data: {
			uuid: 'uuid',
			start_id: 0,
			page_size: 0
		},
		success: (response) => {
			console.log(response);
			let data = uPublic.checkResponseData(response.data);
			if(data){
				uComponents.changeMarqueeText(self, data.message);
			}
		},
		error:　(error) => {
			uPublic.openRequestErrorAlert(self);
			console.log(error);
		},
		complete: () => {}
	});
}

//tap 个人信息
function myInfoTap(self){
	iot.navigator.openWindow({
        url: '../myInfo/',
        id: 'myInfo',
        extras: {
        	nickname: self.nickname
        }
    });
}

//tap 门锁管理
function doorlockManageTap(){
    iot.navigator.openWindow({
        url: '../doorlockManage/',
        id: 'doorlockManage'
    });
}

//tap 开门记录
function opendoorRecordTap(self){
    iot.navigator.openWindow({
        url: './opendoorRecord.html',
        id: 'opendoorRecord',
        extras: {
        	deviceId: self.deviceId
        }
    });
}

//tap 安全报警
function securityAlarmTap(self){
    iot.navigator.openWindow({
        url: './alarmInfo.html',
        id: 'alarmInfo',
        extras: {
        	deviceId: self.deviceId
        }
    });
}

//tap 门锁用户
function doorlockUserTap(){
	iot.navigator.openWindow({
        url: '../doorlockUsers/',
        id: 'doorlockUsers',
    });
}

//tap 远程开门
function remoteOpendoorTap(self){
    iot.navigator.openWindow({
        url: './remoteOpendoor.html',
        id: 'remoteOpendoor',
        extras: {
        	uuid: self.getUuid()
        }
    });    
}

//tap 劫持报警
function hijackAlarmTap(self){
    iot.navigator.openWindow({
        url: './hijackRecord.html',
        id: 'hijackRecord',
        extras: {
        	deviceId: self.deviceId
        }
    });
}

//tap 保存二维码到相册
function saveQRcodeButtonTap(){
    alert('保存二维码到相册');
}

//tap 稍后关注
function laterFollowTap(self){
    self.setFollowShowFlag(false);
}