123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- import Vue from 'vue'
- import { login, mobileOrEmailCodeLogin, logout } from '@/api/login.js'
- import { setToken, removeToken, setRefreshToken, getToken } from '@/utils/auth';
- import {
- LOGIN,
- MOBILE_LOGIN,
- LOGOUT,
- SET_USER,
- SET_USER_FROM_STORAGE,
- SAVE_AGREEMENT_INFORMATION, SAVE_USER_TASK_COMPLETE, SAVE_USER_GRADES, SAVE_USER_RIGHTS
- } from '@/store/mutation-types'
- import { saveAgreementInformation } from "@/api/operation/interactiveMessage";
- import { submitHandler } from "@/utils/autoLogin";
- import { getUserTaskComplete, getUserLevelList, getUserRightsList } from "@/api/user";
- import { addGrowth } from "@/utils/toCompleteTask";
- const state = {
- user: {
- userId: null,
- username: '',
- realName: '',
- office: {},
- department: {},
- authorities: [],
- },
- }
- // getters
- const getters = {
- isLogin: state => {
- if (!state.user.userId) {
- var userJson = sessionStorage.getItem('user');
- if (userJson && userJson != '') {
- //state.user = JSON.parse(userJson);
- //Vue.set(state.user, 'office', user.office);
- }
- }
- return state.user.userId;
- }
- }
- // actions
- const actions = {
- [LOGIN]({ commit, dispatch }, user) {
- return new Promise((resolve, reject) => {
- login(user.account, user.password, user.captcha, user.codeUid, user.token, user.validate, user.captchaToken, user.language).then(response => {
- if (response.status === 200) {
- Vue.prototype.$Cookies.set('token', response.data.access_token, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
- Vue.prototype.$Cookies.set('userInfo', response.data.userInfo, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
- }
- const data = response.data;
- user.password = '';
- data['user'] = user;
- commit(SET_USER, data);
- dispatch(SAVE_AGREEMENT_INFORMATION);
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- [MOBILE_LOGIN]({ commit, dispatch }, param) {
- return new Promise((resolve, reject) => {
- mobileOrEmailCodeLogin(param.mobile, param.checkCode, param.service, param.token, param.language).then(response => {
- if (response.status === 200) {
- Vue.prototype.$Cookies.set('token', response.data.access_token, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
- Vue.prototype.$Cookies.set('userInfo', response.data.userInfo, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
- }
- const data = response.data;
- param.password = '';
- data['user'] = param;
- commit(SET_USER, data);
- dispatch(SAVE_AGREEMENT_INFORMATION);
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- [SAVE_AGREEMENT_INFORMATION]({ commit }) {
- let params = {
- "versionName": "12",
- "versionType": "21",
- "userId": "34",
- "userName": "5",
- "userAgent": "46"
- }
- let token = 'Bearer ' + getToken()
- saveAgreementInformation({ agreementInformationEntity: JSON.stringify(params) }, token).then(response => {
- }).catch(error => {
- })
- },
- [LOGOUT]({ commit }, meetingId) {
- return new Promise((resolve, reject) => {
- logout().then(response => {
- // commit(SET_USER, {
- // user: {
- // userId: '',
- // account: '',
- // realName: '',
- // }
- // })
- if (response.status === "200") {
- Vue.prototype.$Cookies.remove('token');
- Vue.prototype.$Cookies.remove('userInfo');
- }
- removeToken();
- localStorage.removeItem('user');
- localStorage.removeItem('userLevel');
- localStorage.removeItem('userRight');
- localStorage.removeItem('orderDetail');
- localStorage.removeItem('detailID');
- localStorage.removeItem('orderId');
- resolve()
- }).catch(error => {
- removeToken();
- localStorage.removeItem('user');
- localStorage.removeItem('userLevel');
- localStorage.removeItem('userRight');
- localStorage.removeItem('orderDetail');
- localStorage.removeItem('detailID');
- localStorage.removeItem('orderId');
- reject(error)
- })
- })
- // return null;
- },
- [SAVE_USER_TASK_COMPLETE]({ commit }) {
- return new Promise((resolve, reject) => {
- if (!!Vue.prototype.$Cookies.get('token')) {
- getUserTaskComplete().then((res) => {
- if (res) {
- window.localStorage.setItem('userTaskComplete', JSON.stringify(res.data));
- resolve()
- }
- }).catch(error => {
- reject(error)
- })
- }
- })
- },
- [SAVE_USER_GRADES]({ commit }) {
- return new Promise((resolve, reject) => {
- if (!!Vue.prototype.$Cookies.get('token')) {
- getUserLevelList().then((res) => {
- if (res) {
- window.localStorage.setItem('userLevel', JSON.stringify(res.data));
- resolve()
- }
- }).catch(error => {
- reject(error)
- })
- }
- })
- },
- [SAVE_USER_RIGHTS]({ commit }) {
- return new Promise((resolve, reject) => {
- if (!!Vue.prototype.$Cookies.get('token')) {
- getUserRightsList().then((res) => {
- if (res) {
- window.localStorage.setItem('userRight', JSON.stringify(res.data));
- resolve()
- }
- }).catch(error => {
- reject(error)
- })
- }
- })
- },
- }
- // mutations
- const mutations = {
- [SET_USER](state, data) {
- state.user.account = data.user.account;
- var userInfo = JSON.parse(data.userInfo);
- Vue.set(state.user, 'office', userInfo.office);
- Vue.set(state.user, 'realName', userInfo.realName);
- Vue.set(state.user, 'username', userInfo.username);
- Vue.set(state.user, "userId", userInfo.id);
- Vue.set(state.user, "office", userInfo.office);
- Vue.set(state.user, "department", userInfo.department);
- Vue.set(state.user, "authorities", userInfo.authorities);
- Vue.set(state.user, "umsUser", userInfo.umsUser);
- setToken(data.access_token);
- setRefreshToken(data['refresh_token']);
- localStorage.setItem('user', JSON.stringify(state.user));
- addGrowth("point_task_sign")
- if (userInfo.umsUser.languageSettingDict) {
- window.localStorage.setItem("locale", userInfo.umsUser.languageSettingDict);
- window.sessionStorage.setItem("locale", userInfo.umsUser.languageSettingDict);
- }
- },
- [SET_USER_FROM_STORAGE](state, data) {
- state.user = data;
- // Vue.set(state.user, 'office', data.office);
- // Vue.set(state.user, 'realName', data.realName);
- }
- }
- export default {
- namespaced: true,
- state,
- getters,
- actions,
- mutations
- }
|