/** * 登录 */ // const DEBUG = require('../config').isConsole // const ismock = require('../config').ismock import fn from './fn' import Req from './jun_httpInstall' import Store from '../store' import Config from '../config' // import { Message } from 'element-ui' const config = { // 登录请求接口链接 url: 'weixin!ajaxGetInfoByCode', // 2小时过期 expire: 7.2e6 } /** * 检查登录缓存过期,默认不过期 * @param {object} we_session 缓存对象 */ function checkExpire(we_session) { // if ((we_session && Date.now() >= we_session.expire) || !we_session) { // // 删除store缓存 // Store.commit('unLogined') // // wx.removeStorageSync('we_session') // localStorage.removeItem('we_session') // return true // } return false } /** * 进入微信长链,可获取code */ function toLongUrl() { // fn.urlReplace(Config.codeUrl) // location.href = Config.codeUrl location.href = Config.createCodeUrl() } /** * 登录 * @param {object} option 登录选项 * @param {boolean} option.force 是否强制重新登录 * @param {function} option.callback 登录成功后回调 */ function checkLogin(option = {}) { loginReq(option).then(() => { if (typeof option.callback === 'function') { option.callback() } }) } /** * 登录请求 * @param {object} option * @param {object} option.data 请求参数 */ function loginReq(option) { if (Config.ismock || Config.istest) { option.data.code = '011h5c000ySdaK1lbw000ubdtm2h5c00' } return new Promise((resolve, reject) => { // 前置判断 const userData = Store.getters.getUserData if (userData.key) { resolve(userData) return } if (!option || !option.data) { reject() console.error('调用loginReq,缺失 option') return } if (!option.data.code) { console.error('调用loginReq,缺失 code') reject() return } Req.http3.post({ url: config.url, data: option.data }).then((res) => { // 缓存key值 fn.setLocalStorage('we_session', { we_session: res.inf.key, expire: Date.now() + config.expire }) // 缓存用户数据 Store.commit('setUserData', res.inf) console.log(res.inf) // if (res.inf.name) { // Store.commit('setNickName', res.inf.name) // } // 处理登录完成 store // getUserInfo().then(_res=>{ // // Store.commit('setLogined', _res.inf) // resolve(res) // }) // Store.commit('setLogined') resolve(res) }).catch((res) => { console.log(res) reject(res) }) }) } export default { checkLogin, loginReq, toLongUrl }