/* * @Description: 登录相关API * @FilePath: \erp-basic-web\apps\finance\src\api\sys\user.ts * @Author: freud * @Date: 2023-06-06 14:37:45 * @LastEditTime: 2023-07-28 15:25:51 * @LastEditors: freud * @Reference: */ import { request } from '@eciol/request'; import { AesEncryption, cacheCipher, type TimeZone } from '@eciol/shared'; import { ErrorMessageMode } from '@eciol/types'; import { useUserStoreWithOut } from '@/store'; import { UserService } from './typing'; const encryption = new AesEncryption({ key: cacheCipher.key }); export enum Api { Login = '/partner-oauth/oauth/token?client_secret=123456&client_id=eci-erp', RefreshLogin = 'partner-oauth/oauth/token?client_secret=123456&client_id=eci-erp', UpdatePassword = '/system-admin/api/modify-partner-password', UpdateAccount = '/system-admin/api/modify-partner-account', Logout = '/logout', GetUserInfo = '/api/Auth/GetUserInfo', GetPermCode = '/getPermCode', TestRetry = '/testRetry', GetTimeZone = '/system-partner/OuterInfo/GetTimeZone', ResetPassword = '/system-partner/openapi/PostOuterForget', UploadAvatar = '/upload.aspx?imgInfo=1^1^1&EmpID={id}&isOuter=1&fn={fileName}', } /** * @description: user login api */ function loginApi(params: UserService.LoginParams, mode: ErrorMessageMode = 'modal') { const data = { ...params, grant_type: 'password' }; return request.post( { url: Api.Login, data: { s: encryption.encryptByAES(JSON.stringify(data)) }, }, { errorMessageMode: mode, }, ); } /** *@event {function} refreshLogin @alias 刷新token @param {Object} */ const refreshLogin = () => { const userStore = useUserStoreWithOut(); const s = { grant_type: 'refresh_token', refresh_token: userStore.getRefreshToken }; return request.post({ url: Api.RefreshLogin, data: { s: encryption.encryptByAES(JSON.stringify(s)) }, }); }; /** * @event {function} updatePassword * @alias 修改密码 */ const updatePassword = (data: { password: string; newPwd: string; confirmPwd: string }) => request.post({ url: Api.UpdatePassword, data, }); /** * @event {function} updateAccount * @alias 修改用户名 */ const updateAccount = (data: { loginName: string }) => request.post( { url: Api.UpdateAccount, data, }, { showLoading: true, loadingTip: 'EDIT', successMessageMode: 'message', operationType: 'EDIT', }, ); /** * @event {function} resetPassword * @alias 重置密码 */ const resetPassword = (data: { lemail: string; llogin: string }) => request.post( { url: Api.ResetPassword, data, }, { showLoading: true, loadingTip: 'SET', }, ); /** * @description: getUserInfo */ function getUserInfo() { return request.get( { url: Api.GetUserInfo }, { errorMessageMode: 'none' }, ); } /** * @description: getTimeZone */ function getTimeZone() { return request.post({ url: Api.GetTimeZone }, { errorMessageMode: 'none' }); } function getPermCode() { return request.get({ url: Api.GetPermCode }); } function doLogout() { return request.get({ url: Api.Logout }); } function testRetry() { return request.get( { url: Api.TestRetry }, { retryRequest: { isOpenRetry: true, count: 5, waitTime: 1000, }, }, ); } export { doLogout, getPermCode, getTimeZone, getUserInfo, loginApi, refreshLogin, resetPassword, testRetry, updateAccount, updatePassword, }; export type { UserService };