diff --git a/src/config.js b/src/config.js new file mode 100644 index 0000000..0648149 --- /dev/null +++ b/src/config.js @@ -0,0 +1,2 @@ +export const API_HOST = 'https://p9axztuwd7x8a7.mycht.cn/whatsapp_server' +export const DATE_FORMAT = 'YYYY-MM-DD' diff --git a/src/main.jsx b/src/main.jsx index 5a5ed08..6d5d5d1 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -12,10 +12,11 @@ import DingdingQRCode from '@/views/DingdingQRCode' import AccountProfile from '@/views/AccountProfile' import ErrorPage from '@/components/ErrorPage' import Conversations from '@/views/Conversations/ChatWindow' - import useAuthStore from '@/stores/AuthStore' import '@/assets/index.css' +useAuthStore.getState().loadUserSession() + const router = createBrowserRouter([ { path: '/', @@ -40,8 +41,6 @@ const router = createBrowserRouter([ }, ]) -console.info(useAuthStore.getState().loadUserSession()) - ReactDOM.createRoot(document.getElementById('root')).render( // diff --git a/src/stores/AuthStore.js b/src/stores/AuthStore.js index b43b74e..b111120 100644 --- a/src/stores/AuthStore.js +++ b/src/stores/AuthStore.js @@ -2,32 +2,19 @@ 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'], - }, + loginUser: {}, loginStatus: 0, - fetchUser: async (authCode) => { - - const { saveUserSession } = get() + authenticate: async (authCode) => { - set(() => ({ - loginStatus: 200 - })) + const { saveUserSession, updateLoginStatus } = get() + + updateLoginStatus(200) const json = await fetchJSON(`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth`, { authCode }) @@ -45,21 +32,22 @@ const useAuthStore = create((set, get) => ({ } })) saveUserSession() - - set(() => ({ - loginStatus: 302 - })) + updateLoginStatus(302) } else { - set(() => ({ - loginStatus: 403 - })) + updateLoginStatus(403) } }, + updateLoginStatus: (code) => { + set(() => ({ + loginStatus: code + })) + }, + loadUserSession: () => { const sessionData = window.sessionStorage.getItem('GLOBAL_SALES_LOGIN_USER') let userData = { - userId: 0, + userId: -1, username: '', avatarUrl: '', mobile: '', @@ -70,10 +58,10 @@ const useAuthStore = create((set, get) => ({ } if (sessionData !== null) { userData = JSON.parse(sessionData) - set(() => ({ - loginUser: userData - })) } + set(() => ({ + loginUser: userData + })) return userData }, diff --git a/src/views/AuthApp.jsx b/src/views/AuthApp.jsx index bfcfd94..c11b43a 100644 --- a/src/views/AuthApp.jsx +++ b/src/views/AuthApp.jsx @@ -24,9 +24,6 @@ function AuthApp() { const { colorPrimary, borderRadius } = useThemeContext() const { loginUser } = useAuthStore() -console.info(loginUser) - - let userId = loginUser.userId const href = useHref() useEffect(() => { @@ -39,8 +36,8 @@ console.info(loginUser) useEffect(() => { if (loginUser.userId > 0) { - useConversationStore.getState().connectWebsocket(userId); - useConversationStore.getState().fetchInitialData(userId); + useConversationStore.getState().connectWebsocket(loginUser.userId); + useConversationStore.getState().fetchInitialData(loginUser.userId); } return () => { useConversationStore.getState().disconnectWebsocket(); diff --git a/src/views/DingdingQRCode.jsx b/src/views/DingdingQRCode.jsx index 03f765c..92df5df 100644 --- a/src/views/DingdingQRCode.jsx +++ b/src/views/DingdingQRCode.jsx @@ -12,7 +12,7 @@ function DingdingQRCode() { const navigate = useNavigate() - const { loginStatus, fetchUser } = useAuthStore() + const { loginStatus, authenticate } = useAuthStore() useEffect (() => { if (location.search === '?out') { @@ -39,29 +39,10 @@ function DingdingQRCode() { }, (loginResult) => { const { authCode } = loginResult - fetchUser(authCode) - // setLoginStatus(200) - - // fetchJSON(`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth`, { authCode }) - // .then(json => { - // if (json.errcode === 0) { - // loginUser.userId = json.result.opisn - // loginUser.accountName = json.result.opicode - // loginUser.username = json.result.nick - // loginUser.avatarUrl = json.result.avatarUrl - // loginUser.mobile = '+' + json.result.stateCode + '-' + json.result.mobile - // loginUser.email = json.result.email - // loginUser.openId = json.result.openId - // loginUser.accountList = json.result.accountlist - // window.sessionStorage.setItem('GLOBAL_SALES_LOGIN_USER', JSON.stringify(loginUser)) - // setLoginStatus(302) - // } else { - // setLoginStatus(403) - // } - // }) + authenticate(authCode) }, (errorMsg) => { - // setLoginStatus(403) + updateLoginStatus(403) console.error(`Login Error: ${errorMsg}`) }, ) diff --git a/src/views/OrderFollow.jsx b/src/views/OrderFollow.jsx index 0e2dd52..45996e2 100644 --- a/src/views/OrderFollow.jsx +++ b/src/views/OrderFollow.jsx @@ -8,6 +8,7 @@ import dayjs from 'dayjs' import { Conditional } from '@/components/Conditional' import useAuthStore from '@/stores/AuthStore' import { prepareUrl, isNotEmpty } from '@/utils/commons' +import { API_HOST } from '@/config' const { RangePicker } = DatePicker @@ -205,7 +206,7 @@ function OrderList({ formValues }) { const [orderData, setOrderData] = useState([]) const [loading, setLoading] = useState(false) const { loginUser } = useAuthStore() - let fetchOrderUrl = `https://p9axztuwd7x8a7.mycht.cn/whatsapp_server/getwlorder?opisn=${loginUser.userId}&otype=${formValues.type}` + let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userId}&otype=${formValues.type}` if (formValues.type === 'advance') { const fromDate = formValues.startDateRange[0].format('YYYY-MM-DD')