import {
	wechatConfig,
	share,
	getWxconfig
} from '@/api/wx';
import {
	getCompany
} from '@/api/index.js'
import store from '../store';
// 保存wx对象
let weixinObj = require('jweixin-module');
// 保存分享数据
let shareData = '';
// 保存注册返回appId数据
let appId = '';

//微信登录
/**
 * @param {string} 当前页面地址信息
 */
export function loginWinxin() {
	let pages, page, path;
	try {
		pages = getCurrentPages();
		// 获取跳转前页面
		page = pages[pages.length - 1];
		// 获取跳转前路由地址
		path = page.route;
	} catch (e) {
		console.log(e);
	}
	// 判断是否在登录页
	if (path != 'pages/redirect/redirect') {
		setTimeout((e) => {
			weixinObj.ready(() => {
				console.log('weixinObj.ready');
				// 调用
				try {
					console.log(shareData);
					console.log(path);
					weixinSq(shareData, path);
				} catch (e) {
					console.log(e);
					//TODO handle the exception
				}
			});
			weixinObj.error((e) => {
				console.log(e);
			})
		}, 10)

	}
};
// 微信授权登录
function weixinSq(data, path) {
	// 微信授权后跳转页面
	try {
		let ul = encodeURIComponent(store.state.baseURL + store.state.urlFile + '/#/pages/redirect/redirect');
		console.log(ul, "ul")
		// 打开微信授权页面

		let url =
			'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
			appId +
			'&redirect_uri=' +
			ul +
			'&response_type=code&scope=snsapi_userinfo&state=' +
			new Date().getTime() +
			'#wechat_redirect';
		console.log(url, "url")
		window.location.href = url;
	} catch (e) {
		console.log(e);
	}
};

// 微信注册
export function weixindata(config) {
	// console.log(config);
	//注册微信信息
	let weixinObj = require('jweixin-module');
	// 保存微信对象到全局仓库
	store.commit('setWeiChatObj', weixinObj)
	console.log(window.location.href);
	console.log('当前注册url地址', window.location.href);
	getWxconfig({
		url: store.state.baseURL + store.state.urlFile + '/',
	}).then(({
		data
	}) => {
		appId = data.appId;
		// 微信信息配置
		weixinObj.config({
			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			appId: data.appId, // 必填，企业号的唯一标识，此处填写企业号corpid
			timestamp: data.timestamp, // 必填，生成签名的时间戳
			nonceStr: data.nonceStr, // 必填，生成签名的随机串
			signature: data.signature, // 必填，签名，见附录1
			jsApiList: data.jsApiList // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
		});
		weixinObj.ready((e) => {
			console.log('分享数据', shareData);
			if (shareData == '') {
				getCompany().then(({
					data
				}) => {
					// 保存appId
					shareData = {
						title: data.company_name,
						imgUrl: data.wechat_share_image,
						desc: data.share_info,
					}
					shareLoad(config)
				})
				
			} else {
				shareLoad(config)
			}
		})
	})

	// wechatConfig({
	// 		// url: 'pages/applic/location',			
	// 		url: store.state.baseURL+ store.state.urlFile+'/',
	// 	})
	// 	.then(({
	// 		data
	// 	}) => {
	// 		// uni.showModal({ 
	// 		// 	// url: 'http://yyred.igxys.com/index/',
	// 		// 	title:'地址',
	// 		// 	content: window.location.href
	// 		// })

	// 		// 保存appId
	// 		store.commit('setWeiChatInfo', data)

	// 		appId = data.appId;
	// 		// 微信信息配置
	// 		weixinObj.config({
	// 			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
	// 			appId: data.appId, // 必填，企业号的唯一标识，此处填写企业号corpid
	// 			timestamp: data.timestamp, // 必填，生成签名的时间戳
	// 			nonceStr: data.nonceStr, // 必填，生成签名的随机串
	// 			signature: data.signature, // 必填，签名，见附录1
	// 			jsApiList: data.jsApiList // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
	// 		});
	// 		weixinObj.ready((e) => {
	// 			console.log('分享数据',shareData);
	// 			if (shareData == '') {
	// 				share({}).then(({
	// 					data
	// 				}) => {
	// 					shareData = data.data
	// 					shareLoad(config)
	// 				});
	// 			} else {
	// 				shareLoad(config)
	// 			}
	// 		})
	// 	})
	// 	.catch(e => {
	// 		console.log(e);
	// 	});
}
// 加载分享数据
function shareLoad(config) {
	let mess;
	if (config) {
		mess = {
			link: config.link, // 分享链接
			imgUrl: config.imgUrl,
			desc: config.desc,
			title: config.title,
			success: config.success,
			fail: config.fail || function(e) {
				console.log(e);
			}
		}
	} else {
		// console.log(window.location.href, 55)
		// let url = window.location.href + '?spread=' + store.state.userInfo.uid;
		let url = window.location.href;
		url = url.replace(/[\?,&]{0,1}from=singlemessage/g, '');
		mess = {
			title: store.state.baseName,
			link: url, // 分享链接
			imgUrl: store.state.baseURL + '/index/static/img/002.png', // 分享图标
			desc: store.state.shareDesc,
			success: function() {},
			fail: function(e) {
				console.log(e);
			}
		}
	}
	// 获取仓库数据
	// 分享好友
	// weixinObj.updateAppMessageShareData(mess);
	weixinObj.onMenuShareAppMessage(mess); // 即将废弃
	// 分享朋友圈
	// weixinObj.updateTimelineShareData(mess)
	weixinObj.onMenuShareTimeline(mess); // 即将废弃
}

// 隐藏功能按钮
export function weixinhideMenu(config) {
	console.log(config)
	weixinObj.ready((e) => {
		weixinObj.hideMenuItems({
			menuList: config, // 要隐藏的菜单项，只能隐藏“传播类”和“保护类”按钮，所有menu项见附录3
		});
	})

}

// export function getLoca(config) {
// 	console.log(config)
// 	weixinObj.ready((e) => {
// 		weixinObj.getLocation({
// 		    type: 'wgs84',
// 		    success: function (res) {
// 					config.longitude = res.longitude;
// 					config.latitude = res.latitude;
// 					uni.showModal({
// 						title: '提示',
// 						content: res.longitude
// 					})
// 					console.log('当前位置的经度：' + res.longitude);
// 					console.log('当前位置的纬度：' + res.latitude);
// 		    }
// 		});
// 	})

// }

export default {
	weixinObj,
	shareData,
	appId
}
