import store from '../store'
import WXBizDataCrypt from '@/utils/WXBizDataCrypt';

export function getSessionKey (code,encryptedData,iv) {
    let appid = 'wxc35f6cc236bcec8f';	//小程序的appid
    let secret = '4d624272bd571f23f1454d7690924a85';	//小程序的secret
	wx.request({
		url: 'https://api.weixin.qq.com/sns/jscode2session?appid='+appid+'&secret='+secret+'&grant_type=authorization_code&js_code='+code,
		header: { 'content-type': 'application/json' },
		success:function(res){
			if(encryptedData){
			  let pc = new WXBizDataCrypt(appid, res.data.session_key)
			  let data = pc.decryptData(encryptedData , iv)
			  console.log('解密后 data: ', data)
			  store.dispatch('user/setInfo', data)
			}else{
			  store.dispatch('user/setInfo', res.data)
			}
		},
		fail:function(res){
			console.log(res)
		}
    })
}


export function getAge(identityCard) {
    let len = (identityCard + "").length;
    if (len == 0) {
        return 0;
    } else {
        if ((len != 15) && (len != 18))//身份证号码只能为15位或18位其它不合法
        {
            return 0;
        }
    }
    let strBirthday = "";
    if (len == 18)//处理18位的身份证号码从号码中得到生日和性别代码
    {
        strBirthday = identityCard.substr(6, 4) + "/" + identityCard.substr(10, 2) + "/" + identityCard.substr(12, 2);
    }
    //时间字符串里，必须是“/”
    let birthDate = new Date(strBirthday);
    let nowDateTime = new Date();
    let age = nowDateTime.getFullYear() - birthDate.getFullYear();
    //再考虑月、天的因素;.getMonth()获取的是从0开始的，这里进行比较，不需要加1
    if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}



export function getSampleId(date = new Date(),format = 'YYYY-MM-DD') {
	const d = new Date(date || new Date())
	const zeroize = val =>
		val < 10 ? `0${val}` : `${val}`
	return format.replace(
		/YYYY|MM|DD|hh|mm|ss/g,
		word =>
			({
				YYYY: d.getFullYear(),
				MM: zeroize(d.getMonth() + 1),
				DD: zeroize(d.getDate()),
				hh: zeroize(d.getHours()),
				mm: zeroize(d.getMinutes()),
				ss: zeroize(d.getSeconds())
			}[word] || word)
	)
}