|
|
|
@ -1,12 +1,11 @@
|
|
|
|
|
import { create } from 'zustand'
|
|
|
|
|
import { fetchJSON } from '@/utils/request'
|
|
|
|
|
import { isEmpty, isNotEmpty, } from '@/utils/commons'
|
|
|
|
|
import { isEmpty, isNotEmpty } from '@/utils/commons'
|
|
|
|
|
|
|
|
|
|
export const PERM_MERGE_CONVERSATION = 'merge-conversation'
|
|
|
|
|
export const PERM_ASSIGN_NEW_CONVERSATION = 'assign-new-conversation'
|
|
|
|
|
|
|
|
|
|
const useAuthStore = create((set, get) => ({
|
|
|
|
|
|
|
|
|
|
loginUser: {
|
|
|
|
|
userId: -1,
|
|
|
|
|
userIdStr: '-1',
|
|
|
|
@ -42,24 +41,27 @@ const useAuthStore = create((set, get) => ({
|
|
|
|
|
// }
|
|
|
|
|
// return false;
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
login: async (authCode) => {
|
|
|
|
|
|
|
|
|
|
const { saveUserSession, setLoginStatus } = get()
|
|
|
|
|
|
|
|
|
|
setLoginStatus(200)
|
|
|
|
|
|
|
|
|
|
const json = await fetchJSON(`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth`, { authCode })
|
|
|
|
|
const json = await fetchJSON(
|
|
|
|
|
`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth`,
|
|
|
|
|
{ authCode },
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (json.errcode === 0 && isNotEmpty(json.result.opisn)) {
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginUser: {
|
|
|
|
|
userId: json.result.opisn,
|
|
|
|
|
userIdStr: json.result?.accountlist.map(acc => {
|
|
|
|
|
return acc.OPI_SN
|
|
|
|
|
}).join(','),
|
|
|
|
|
userIdStr: json.result?.accountlist
|
|
|
|
|
.map((acc) => {
|
|
|
|
|
return acc.OPI_SN
|
|
|
|
|
})
|
|
|
|
|
.join(','),
|
|
|
|
|
accountName: json.result.opicode,
|
|
|
|
|
username: json.result.nick,
|
|
|
|
|
avatarUrl: json.result.avatarUrl,
|
|
|
|
@ -67,7 +69,7 @@ const useAuthStore = create((set, get) => ({
|
|
|
|
|
email: json.result.email,
|
|
|
|
|
openId: json.result.openId,
|
|
|
|
|
accountList: json.result.accountlist,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}))
|
|
|
|
|
saveUserSession()
|
|
|
|
|
setLoginStatus(302)
|
|
|
|
@ -78,7 +80,7 @@ const useAuthStore = create((set, get) => ({
|
|
|
|
|
|
|
|
|
|
setLoginStatus: (code) => {
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginStatus: code
|
|
|
|
|
loginStatus: code,
|
|
|
|
|
}))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
@ -96,9 +98,8 @@ const useAuthStore = create((set, get) => ({
|
|
|
|
|
openId: '',
|
|
|
|
|
accountList: [],
|
|
|
|
|
permissionList: [],
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
loadUserSession: () => {
|
|
|
|
@ -109,16 +110,19 @@ const useAuthStore = create((set, get) => ({
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (sessionData !== null) {
|
|
|
|
|
const sesstionObj = JSON.parse(sessionData);
|
|
|
|
|
const sesstionObj = JSON.parse(sessionData)
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginUser: sesstionObj,
|
|
|
|
|
}));
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
saveUserSession: () => {
|
|
|
|
|
const { loginUser } = get()
|
|
|
|
|
window.sessionStorage.setItem('GLOBAL_SALES_LOGIN_USER', JSON.stringify(loginUser))
|
|
|
|
|
window.sessionStorage.setItem(
|
|
|
|
|
'GLOBAL_SALES_LOGIN_USER',
|
|
|
|
|
JSON.stringify(loginUser),
|
|
|
|
|
)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
copyUserSession: () => {
|
|
|
|
@ -126,8 +130,7 @@ const useAuthStore = create((set, get) => ({
|
|
|
|
|
if (sessionData !== null) {
|
|
|
|
|
navigator.clipboard.writeText(sessionData)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
export default useAuthStore
|
|
|
|
|