|
|
|
|
import { create } from 'zustand'
|
|
|
|
|
import { devtools } from 'zustand/middleware'
|
|
|
|
|
import { fetchJSON, postJSON } from '@/utils/request'
|
|
|
|
|
|
|
|
|
|
const API_HOST = 'https://p9axztuwd7x8a7.mycht.cn/whatsapp_server'
|
|
|
|
|
|
|
|
|
|
const useAuthStore = create((set, get) => ({
|
|
|
|
|
|
|
|
|
|
// GLOBAL_SALES_LOGIN_USER
|
|
|
|
|
// {"userId":"383","username":"廖一军","avatarUrl":"https://static-legacy.dingtalk.com/media/lALPBDDrhXr716HNAoDNAoA_640_640.png","mobile":"+86-18777396951","email":"lyj@hainatravel.com","openId":"iioljiPmZ4RPoOYpkFiSn7IKAiEiE","accountList":[{"OPI_SN":383,"OPI_Code":"LYJ","OPI_NameCN":"廖一军","OPI_DEI_SN":7,"OPI_NameEN":"Jimmy Liow"},{"OPI_SN":609,"OPI_Code":"LYJAH","OPI_NameCN":"廖一军(ah)","OPI_DEI_SN":28,"OPI_NameEN":"Jimmy Liow"}]}
|
|
|
|
|
loginUser: {
|
|
|
|
|
userId: -1,
|
|
|
|
|
// username: '廖一军',
|
|
|
|
|
// avatarUrl: 'https://static-legacy.dingtalk.com/media/lALPBDDrhXr716HNAoDNAoA_640_640.png',
|
|
|
|
|
// mobile: '86-18777396951',
|
|
|
|
|
// email: 'lyj@hainatravel.com',
|
|
|
|
|
// openId: 'iioljiPmZ4RPoOYpkFiSn7IKAiEiE',
|
|
|
|
|
// accountList: ['LYJ', 'LYJAH', 'LYJGH'],
|
|
|
|
|
// permissionList: ['view_chat', 'send_msg'],
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
loginStatus: 0,
|
|
|
|
|
|
|
|
|
|
fetchUser: async (authCode) => {
|
|
|
|
|
|
|
|
|
|
const { saveUserSession } = get()
|
|
|
|
|
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginStatus: 200
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
const json = await fetchJSON(`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth`, { authCode })
|
|
|
|
|
|
|
|
|
|
if (json.errcode === 0) {
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginUser: {
|
|
|
|
|
userId: json.result.opisn,
|
|
|
|
|
accountName: json.result.opicode,
|
|
|
|
|
username: json.result.nick,
|
|
|
|
|
avatarUrl: json.result.avatarUrl,
|
|
|
|
|
mobile: '+' + json.result.stateCode + '-' + json.result.mobile,
|
|
|
|
|
email: json.result.email,
|
|
|
|
|
openId: json.result.openId,
|
|
|
|
|
accountList: json.result.accountlist,
|
|
|
|
|
}
|
|
|
|
|
}))
|
|
|
|
|
saveUserSession()
|
|
|
|
|
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginStatus: 302
|
|
|
|
|
}))
|
|
|
|
|
} else {
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginStatus: 403
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
loadUserSession: () => {
|
|
|
|
|
const sessionData = window.sessionStorage.getItem('GLOBAL_SALES_LOGIN_USER')
|
|
|
|
|
let userData = {
|
|
|
|
|
userId: 0,
|
|
|
|
|
username: '',
|
|
|
|
|
avatarUrl: '',
|
|
|
|
|
mobile: '',
|
|
|
|
|
email: '',
|
|
|
|
|
openId: '',
|
|
|
|
|
accountList: [],
|
|
|
|
|
permissionList: [],
|
|
|
|
|
}
|
|
|
|
|
if (sessionData !== null) {
|
|
|
|
|
userData = JSON.parse(sessionData)
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginUser: userData
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return userData
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
saveUserSession: () => {
|
|
|
|
|
const { loginUser } = get()
|
|
|
|
|
window.sessionStorage.setItem('GLOBAL_SALES_LOGIN_USER', JSON.stringify(loginUser))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
export default useAuthStore
|