175 lines
3.8 KiB
JavaScript
175 lines
3.8 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
import request from '@/util/index'
|
|
import util from '@/common/utils'
|
|
import CreatePersistedState from "vuex-persistedstate"
|
|
Vue.use(Vuex)
|
|
|
|
const state = {
|
|
visitChannels: '',
|
|
userData: {}, // 用户基础信息
|
|
toDoMsg: {}, // 用户首页待办事项
|
|
isConnect: true, // 网络是否链接
|
|
isLoading: false, // 是否在请求数据
|
|
isChangeMsgCount: false, // 是否更新待办事项
|
|
shouldReLoadingList: false // 是否需要更新当前列表
|
|
};
|
|
|
|
const getters = {
|
|
|
|
getUser(state) {
|
|
return state.userData
|
|
},
|
|
getMenu(state) {
|
|
return state.userData.AuthorityInfo
|
|
},
|
|
getConnect(state) {
|
|
return state.isConnect
|
|
},
|
|
getLoading(state) {
|
|
return state.isLoading
|
|
},
|
|
isChangeMsgCount(state) {
|
|
return state.isChangeMsgCount
|
|
},
|
|
shouldReLoadingList(state) {
|
|
return state.shouldReLoadingList
|
|
},
|
|
|
|
};
|
|
|
|
const mutations = {
|
|
|
|
setUser(state, data) {
|
|
state.userData = data
|
|
},
|
|
setVisitChannels(state, data) {
|
|
state.visitChannels = data
|
|
},
|
|
|
|
shouldReLoadingList(state, data) {
|
|
state.shouldReLoadingList = data
|
|
},
|
|
isConnect(state, value) {
|
|
|
|
state.isConnect = value
|
|
},
|
|
setUserTodoList(state, value) {
|
|
state.toDoMsg = value
|
|
},
|
|
};
|
|
const actions = {
|
|
getLoginCode({
|
|
dispatch,
|
|
state
|
|
}, ) {
|
|
uni.login({ // 登录
|
|
success(res) {
|
|
dispatch('memberLogin', res.code) // 获取用户数据
|
|
}
|
|
})
|
|
},
|
|
getTodoList({
|
|
dispatch,
|
|
state,
|
|
commit
|
|
}) { // 获取用户待办事项
|
|
let _user = state.userData
|
|
request.$get("ToDoList", {
|
|
userId: _user.UserId,
|
|
userName: _user.UserName || ''
|
|
}).then(res => {
|
|
commit('setUserTodoList', res.Data)
|
|
})
|
|
},
|
|
async memberLogin({
|
|
dispatch,
|
|
state,
|
|
commit
|
|
}, _code) {
|
|
let _user = state.userData
|
|
request.$get('WeChat_Login', {
|
|
// request.$webGet('WebAPI_Push/WeChat/Login',{
|
|
WeChat_Code: _code || '',
|
|
|
|
}).then(async data => {
|
|
console.log('memberLogin', data)
|
|
if (data.Result_Code === 100) {
|
|
let user = data.Result_Data
|
|
if (user.Membership_Id) {
|
|
wx.getPrivacySetting({
|
|
success: async res => {
|
|
console.log('res123123', res)
|
|
if (res.needAuthorization) {
|
|
util.toNextRoute('navigateTo', '/pages/register/register')
|
|
} else {
|
|
commit('setUser', user)
|
|
await dispatch('updateUser', data.Result_Data)
|
|
// _this.addUserBehavior(1002) // 记录用户行为
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
commit('setUser', user)
|
|
uni.showModal({
|
|
title: '温馨提示',
|
|
content: '请您授权登录后再操作。',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
util.toNextRoute('navigateTo', '/pages/register/register')
|
|
}
|
|
}
|
|
})
|
|
}
|
|
} else if (data.Result_Code === 200) { // session过期
|
|
dispatch('getLoginCode')
|
|
} else {
|
|
console.log(data)
|
|
}
|
|
|
|
|
|
})
|
|
},
|
|
async updateUser({
|
|
dispatch,
|
|
commit,
|
|
state
|
|
}, user) {
|
|
|
|
let _user = user || state.userData
|
|
let _id = _user.Membership_Id
|
|
console.log('_user', _user)
|
|
if (!_id) return
|
|
// console.log(_user)
|
|
request.$get('WeChat_GetBusinessMemberInfo', {
|
|
Membership_Id: _id
|
|
}).then(res => {
|
|
console.log('updateUser', res)
|
|
// request.$webGet('WebAPI_Push/Member/GetMemberInfo',{Membership_Id:_id,memberShipId:_id}).then(res=>{
|
|
if (res.Result_Code == 100) {
|
|
let data = res.Result_Data
|
|
data.WeChat_MiniProToken = _user.WeChat_MiniProToken
|
|
data.WeChat_UserId = _user.WeChat_UserId
|
|
data.WeChat_UserName = _user.WeChat_UserName
|
|
commit('setUser', data)
|
|
dispatch('getTodoList')
|
|
}
|
|
})
|
|
}
|
|
}
|
|
export default new Vuex.Store({
|
|
|
|
state,
|
|
mutations,
|
|
getters,
|
|
actions,
|
|
plugins: [
|
|
CreatePersistedState({
|
|
storage: {
|
|
getItem: key => uni.getStorageSync(key),
|
|
setItem: (key, value) => uni.setStorageSync(key, value),
|
|
removeItem: key => uni.removeStorageSync(key)
|
|
}
|
|
})
|
|
]
|
|
}); |