|
@@ -1,38 +1,45 @@
|
|
|
import settings from '../settings'
|
|
|
import { getAuthen } from '../assets/util'
|
|
|
+import moment from 'moment'
|
|
|
|
|
|
|
|
|
+const noncestr = Math.random().toString(36).substring(2);
|
|
|
+const timestamp = +moment.utc();
|
|
|
+
|
|
|
|
|
|
// 带Origin后缀的通过getter获取
|
|
|
export const state = () => ({
|
|
|
openIdOrigin: "oJR5R6gWNpGre5hfPXkFvcdBhIrE",
|
|
|
accessTokenOrigin: "",
|
|
|
unionIdOrigin: "",
|
|
|
- userInfoOrigin: {},
|
|
|
- stationIdOrigin: settings.stationId,
|
|
|
+ userInfo: {},
|
|
|
+ stationId: settings.stationId,
|
|
|
+ noncestr,
|
|
|
+ timestamp,
|
|
|
+ signature:"",
|
|
|
})
|
|
|
|
|
|
export const getters = {
|
|
|
- openId:(state)=> {
|
|
|
- if(!state.openIdOrigin){
|
|
|
+ openId: (state) => {
|
|
|
+ if (!state.openIdOrigin) {
|
|
|
getAuthen()
|
|
|
}
|
|
|
return state.openIdOrigin
|
|
|
},
|
|
|
- accessToken:(state)=>{
|
|
|
- if(!state.accessTokenOrigin){
|
|
|
+ accessToken: (state) => {
|
|
|
+ if (!state.accessTokenOrigin) {
|
|
|
getAuthen()
|
|
|
}
|
|
|
return state.accessToken
|
|
|
},
|
|
|
- unionId:(state)=>{
|
|
|
- if(!state.unionIdOrigin){
|
|
|
+ unionId: (state) => {
|
|
|
+ if (!state.unionIdOrigin) {
|
|
|
getAuthen()
|
|
|
}
|
|
|
return state.unionIdOrigin
|
|
|
},
|
|
|
- userInfo:(state)=>state.userInfoOrigin,
|
|
|
- stationId:(state)=>state.stationIdOrigin,
|
|
|
+ userInfo: (state) => state.userInfo,
|
|
|
+ stationId: (state) => state.stationId,
|
|
|
|
|
|
}
|
|
|
|
|
@@ -47,33 +54,68 @@ export const mutations = {
|
|
|
state.unionIdOrigin = unionId
|
|
|
},
|
|
|
setUserInfo(state, userInfo) {
|
|
|
- state.userInfoOrigin = userInfo
|
|
|
+ state.userInfo = userInfo
|
|
|
+ },
|
|
|
+ setSignature(state, signature) {
|
|
|
+ state.state = signature
|
|
|
}
|
|
|
}
|
|
|
|
|
|
export const actions = {
|
|
|
- setBaseData({ commit, state }, info) {
|
|
|
- commit("setOpenId", info.openId)
|
|
|
- commit("setAccessToken", info.accessToken)
|
|
|
- commit("setUnionId", info.unionId)
|
|
|
- return this.$axios.$get("/getGzhUserInfo", {
|
|
|
+ async login({ commit, state, getters }, code) {
|
|
|
+ const gzhAuthenRes = await this.$axios.$get("/getGzhAuthorizeInfo", {
|
|
|
+ params: {
|
|
|
+ code,
|
|
|
+ stationId: getters.stationId,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if (gzhAuthenRes.retCode !== 0) { return Promise.reject("拉取基础id失败") }
|
|
|
+ const openId = gzhAuthenRes.data.openid;
|
|
|
+ const accessToken = gzhAuthenRes.data.access_token;
|
|
|
+ const unionId = gzhAuthenRes.data.unionid;
|
|
|
+ commit("setOpenId", openId)
|
|
|
+ commit("setAccessToken", accessToken)
|
|
|
+ commit("setUnionId", unionId)
|
|
|
+ const getUserInfoRes = await this.$axios.$get("/getGzhUserInfo", {
|
|
|
params: {
|
|
|
- openId: info.openId,
|
|
|
- stationId: state.stationIdOrigin
|
|
|
+ openId: openId,
|
|
|
+ stationId: getters.stationId
|
|
|
}
|
|
|
- }).then((res) => {
|
|
|
- if (res.retCode === 0) {
|
|
|
- commit("setUserInfo", res.data)
|
|
|
- this.$axios.$post("/addAppUserInfo",{
|
|
|
- userType: "1",
|
|
|
- openId: info.openId,
|
|
|
- unionId: info.unionId,
|
|
|
- stationId: state.stationIdOrigin, //油站Id
|
|
|
- blogNickName: res.data.nickname,
|
|
|
- sexFlag: res.data.sex === 1 ? 'M' : 'F',
|
|
|
- blogProfilePhoto: res.data.headimgurl
|
|
|
- })
|
|
|
+ })
|
|
|
+ if (getUserInfoRes.retCode !== 0) { return Promise.reject("拉取用户信息失败") }
|
|
|
+ commit("setUserInfo", getUserInfoRes.data)
|
|
|
+ const saveUserInfoRes = await this.$axios.$post("/addAppUserInfo", {
|
|
|
+ userType: "1",
|
|
|
+ openId: openId,
|
|
|
+ unionId: unionId,
|
|
|
+ stationId: getters.stationId, //油站Id
|
|
|
+ blogNickName: getUserInfoRes.data.nickname,
|
|
|
+ sexFlag: getUserInfoRes.data.sex === 1 ? 'M' : 'F',
|
|
|
+ blogProfilePhoto: getUserInfoRes.data.headimgurl
|
|
|
+ })
|
|
|
+ if (saveUserInfoRes.retCode !== 0) { return Promise.reject("存取用户信息失败") }
|
|
|
+ return Promise.resolve("用户登录成功")
|
|
|
+ },
|
|
|
+ async getSdkConfig({commit,state, getters},jsApiList){
|
|
|
+ const sdkSignRes = await this.$axios.$get("/getSignature",{
|
|
|
+ params:{
|
|
|
+ noncestr:state.noncestr,
|
|
|
+ timestamp:state.timestamp,
|
|
|
+ url:window.location.href.replace(/#(\w|\W){0,}/g, ''),
|
|
|
+ stationId:state.stationId
|
|
|
}
|
|
|
})
|
|
|
+ if(sdkSignRes.retCode !== 0){Promise.reject("获取Sdk签名错误")}
|
|
|
+
|
|
|
+ commit("setSignature", sdkSignRes.data)
|
|
|
+
|
|
|
+ return Promise.resolve({
|
|
|
+ debug: settings.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
|
|
+ appId: settings.appId, // 必填,公众号的唯一标识
|
|
|
+ timestamp: state.timestamp, // 必填,生成签名的时间戳
|
|
|
+ nonceStr: state.noncestr, // 必填,生成签名的随机串
|
|
|
+ signature:sdkSignRes.data,
|
|
|
+ jsApiList // 必填,需要使用的JS接口列表
|
|
|
+ })
|
|
|
}
|
|
|
-}
|
|
|
+}
|