| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- import { log } from '@/utils/base.js'
- import { get, post } from '@/utils/request.js'
- import storage from "@/utils/storage.js"
- import modules from './modules/index.js'
- import Vue from 'vue'
- import Vuex from 'vuex'
- import { getOpenid, login,loginByWxCode } from "@/common/api.js"
- const key = "cems_"
- const KEYS = {
- AUTH_TOKEN: `${key}token`,
- USER_NAME: `${key}username`,
- USER_TYPE: `${key}usertype`,
- ORG_ID: `${key}orgid`,
- DOC_TITLE: `${key}doctitle`,
- OPEN_ID: `${key}openid`,
- }
- const time = 1000 * 60 * 60 * 24 * 3; //有效期3天
- Vue.use(Vuex)
- const store = new Vuex.Store({
- state: {
- token: null,
- userInfo: {
- name: "",
- orgId: "",
- userType: "",
- },
- openid: "",
- docTitle: "",
- tabbarlist: [],
- overNum: 0,
- needWxLogin:true
- },
- getters: {
- hasLogin(s) {
- return s.token != null
- }
- },
- mutations: {
- login(state, user) {
- state.token = user.auth;
- state.userInfo.name = user.authName;
- state.userInfo.userType - user.userType;
- state.userInfo.orgId = user.enterpriseId;
- state.docTitle = user.loginMsg;
- storage.put(KEYS.AUTH_TOKEN, state.token, time)
- storage.put(KEYS.USER_NAME, state.userInfo.name, time)
- storage.put(KEYS.USER_TYPE, state.userInfo.userType, time)
- storage.put(KEYS.ORG_ID, state.userInfo.orgId, time)
- storage.put(KEYS.DOC_TITLE, state.docTitle, time)
- },
- logout(state) {
- state.openid = null
- state.token = null
- storage.remove(KEYS.OPEN_ID)
- storage.remove(KEYS.AUTH_TOKEN)
- storage.remove(KEYS.USER_NAME)
- storage.remove(KEYS.USER_TYPE)
- storage.remove(KEYS.ORG_ID)
- },
- setOpenid(state, openid) {
- state.openid = openid
- storage.put(KEYS.OPEN_ID, state.openid, time);
- },
- setToken(state, token) {
- state.token = token
- storage.put(KEYS.AUTH_TOKEN, state.token, time)
- },
- init(state) {
- state.token = storage.get(KEYS.AUTH_TOKEN)
- state.userInfo.name = storage.get(KEYS.USER_NAME)
- state.userInfo.userType = storage.get(KEYS.USER_TYPE)
- state.userInfo.orgId = storage.get(KEYS.ORG_ID)
- state.openid = storage.get(KEYS.OPEN_ID)
- state.docTitle = storage.get(KEYS.DOC_TITLE)
- },
- setOverNum(state, num) {
- state.overNum = num;
- }
- },
- actions: {
- getUserOpenId: async function({ commit, state }) {
- return await new Promise((resolve, reject) => {
- // #ifdef H5
- resolve("");
- // #endif
- // #ifndef H5
- if (state.openid) {
- resolve(state.openid)
- } else {
- resolve("12343")
- // uni.login({
- // success: (data) => {
- // log(`CODE=======>${data.code}`);
- // //resolve("12343")
- // getOpenid(data.code).then((res) => {
- // log(`openid====>`, res)
- // if (res.openid) {
- // commit("setOpenid", res
- // .openid)
- // resolve(res.openid);
- // }
- // }).catch(err => {
- // throw new Error(err);
- // })
- // },
- // fail: (err) => {
- // console.log(
- // 'uni.login 接口调用失败,将无法正常使用开放接口等服务',
- // err)
- // reject(err)
- // }
- // })
- }
- // #endif
- })
- },
- login2: async function({ commit, dispatch, state }, data) {
- return await new Promise((resolve, reject) => {
- if (state.openid) {
- dispatch("getTokenByOpenid").then((res) => {
- resolve(res)
- })
- } else {
- dispatch("getUserOpenId").then((openid) => {
- data.openid = openid;
- log(`LOGIN_DATA=======>${JSON.stringify(data)}`)
- login(data)
- .then((res) => {
- if (res.code == 0) {
- commit("login", res.restluLis);
- resolve(res);
- } else {
- reject(res);
- }
- }).catch(err => {
- reject(err);
- })
- })
- }
- });
- },
- getTokenByOpenid: async function({ commit, state }) {
- return await new Promise((resolve, reject) => {
- if (state.openid) {
- //todo 通过openid 获取 token
- log(`通过openid取token====>${state.openid}`);
- /* post("", { openid: state.openid }).then((res) => {
- log(`OPENID_TOKEN_DATA=======>${JSON.stringify(res)}`)
- if(res){
- resolve(res);
- commit("setToken", res.token);
- }else{
- reject(res);
- }
-
- }) */
- resolve(state.openid);
- } else {
- log("getTokenByOpenid===>state.openid 为空")
- reject();
- }
- });
- },
- getTokenByWxCode:async function({ commit, state }){
- return await new Promise((resolve,reject)=>{
- uni.login({
- success: (data) => {
- log(`CODE=======>${data.code}`);
- //resolve("12343")
- loginByWxCode({wxcode:data.code}).then((res) => {
- log(`result====>`, res)
-
- if (res.code ==0) {
- commit("login", res.restluLis);
- commit("setOpenid", res.restluLis.wxLoginInfo.openid)
- resolve(res);
- }
- }).catch(err => {
- throw new Error(err);
- })
- },
- fail: (err) => {
- console.log(
- 'uni.login 接口调用失败,将无法正常使用开放接口等服务',
- err)
- reject(err)
- }
- })
- })
-
- },
- getWxCode: async function({ commit, state }){
- return await new Promise((resolve,reject)=>{
- // #ifdef H5
- resolve("");
- // #endif
- // #ifndef H5
- uni.login({
- success: (data) => {
- log(`CODE=======>${data.code}`);
- resolve(data.code)
-
- },
- fail: (err) => {
- console.log(
- 'uni.login 接口调用失败,将无法正常使用开放接口等服务',
- err)
- reject(err)
- }
- })
- // #endif
- })
-
- },
- login:async function({ commit, dispatch, state }, data){
- return await new Promise((resolve,reject)=>{
- dispatch("getWxCode").then((code) => {
- if(code){
- data.wxcode = code;
- }
- login(data)
- .then((res) => {
- if (res.code == 0) {
- commit("login", res.restluLis);
- resolve(res);
- } else {
- reject(res);
- }
- }).catch(err => {
- reject(err);
- })
- })
- })
-
- }
- },
- modules: { ...modules }
- })
- export default store;
|