import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userModel'; import { ErrorMessageMode } from '/#/axios'; import { defHttp, PageEnum, TOKEN_KEY, useMessage, setAuthCache, router, useUserStoreWithOut } from '@jdlinker/func'; const { createErrorModal } = useMessage(); enum Api { Login = '/sys/login', phoneLogin = '/sys/phoneLogin', Logout = '/sys/logout', GetUserInfo = '/sys/user/getUserInfo', // 获取系统权限 // 1、查询用户拥有的按钮/表单访问权限 // 2、所有权限 // 3、系统安全模式 GetPermCode = '/sys/permission/getPermCode', //新加的获取图形验证码的接口 getInputCode = '/sys/randomImage', //获取短信验证码的接口 getCaptcha = '/sys/sms', //注册接口 registerApi = '/sys/user/register', //校验用户接口 checkOnlyUser = '/sys/user/checkOnlyUser', //SSO登录校验 validateCasLogin = '/sys/cas/client/validateLogin', //校验手机号 phoneVerify = '/sys/user/phoneVerification', //修改密码 passwordChange = '/sys/user/passwordChange', //第三方登录 thirdLogin = '/sys/thirdLogin/getLoginUser', //第三方登录 getThirdCaptcha = '/sys/thirdSms', //获取二维码信息 getLoginQrcode = '/sys/getLoginQrcode', //监控二维码扫描状态 getQrcodeToken = '/sys/getQrcodeToken', //系统参数 getConfigKey = '/system/sysConfig/configKey/' } /** * @description: user login api */ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') { return defHttp.post( { url: Api.Login, params }, { errorMessageMode: mode } ); } /** * @description: user phoneLogin api */ export function phoneLoginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') { return defHttp.post( { url: Api.phoneLogin, params }, { errorMessageMode: mode } ); } /** * @description: getUserInfo */ export function getUserInfo() { return defHttp.get({ url: Api.GetUserInfo }, {}).catch((e) => { // update-begin--author:zyf---date:20220425---for:【VUEN-76】捕获接口超时异常,跳转到登录界面 if (e && (e.message.includes('timeout') || e.message.includes('登录失效'))) { //接口不通时跳转到登录界面 const userStore = useUserStoreWithOut(); userStore.setToken(''); setAuthCache(TOKEN_KEY, null); // update-begin-author:sunjianlei date:20230306 for: 修复登录成功后,没有正确重定向的问题 router.push({ path: PageEnum.BASE_LOGIN, query: { // 传入当前的路由,登录成功后跳转到当前路由 redirect: router.currentRoute.value.fullPath } }); // update-end-author:sunjianlei date:20230306 for: 修复登录成功后,没有正确重定向的问题 } // update-end--author:zyf---date:20220425---for:【VUEN-76】捕获接口超时异常,跳转到登录界面 }); } export function getPermCode(params) { return defHttp.get({ url: Api.GetPermCode, params }); } export function doLogout() { return defHttp.get({ url: Api.Logout }); } export function getCodeInfo(currdatetime) { const url = Api.getInputCode + `/${currdatetime}`; return defHttp.get({ url: url }); } /** * @description: 获取短信验证码 */ export function getCaptcha(params) { return new Promise((resolve, reject) => { defHttp.post({ url: Api.getCaptcha, params }, { isTransformResponse: false }).then((res) => { if (res.success) { resolve(true); } else { createErrorModal({ title: '错误提示', content: res.message || '未知问题' }); reject(); } }); }); } /** * @description: 注册接口 */ export function register(params) { return defHttp.post({ url: Api.registerApi, params }, { isReturnNativeResponse: true }); } /** *校验用户是否存在 * @param params */ export const checkOnlyUser = (params) => defHttp.get({ url: Api.checkOnlyUser, params }, { isTransformResponse: false }); /** *校验手机号码 * @param params */ export const phoneVerify = (params) => defHttp.post({ url: Api.phoneVerify, params }, { isTransformResponse: false }); /** *密码修改 * @param params */ export const passwordChange = (params) => defHttp.get({ url: Api.passwordChange, params }, { isTransformResponse: false }); /** * @description: 第三方登录 */ export function thirdLogin(params, mode: ErrorMessageMode = 'modal') { return defHttp.get( { url: `${Api.thirdLogin}/${params.token}/${params.thirdType}` }, { errorMessageMode: mode } ); } /** * @description: 获取第三方短信验证码 */ export function setThirdCaptcha(params) { return new Promise((resolve, reject) => { defHttp.post({ url: Api.getThirdCaptcha, params }, { isTransformResponse: false }).then((res) => { if (res.success) { resolve(true); } else { createErrorModal({ title: '错误提示', content: res.message || '未知问题' }); reject(); } }); }); } /** * 获取登录二维码信息 */ export function getLoginQrcode() { return defHttp.get({ url: Api.getLoginQrcode }); } /** * 监控扫码状态 */ export function getQrcodeToken(params) { return defHttp.get({ url: Api.getQrcodeToken, params }); } /** * SSO登录校验 */ export async function validateCasLogin(params) { return defHttp.get({ url: Api.validateCasLogin, params }); } /** * 系统参数 * @param configKey * @returns {any} */ export function getConfigKey(configKey) { return defHttp.get({ url: Api.getConfigKey + configKey }); } //手机app登录端看流程时用 export function mLoginName(params) { return defHttp.post({ url: '/sys/mLoginName', params }); } export const getUserList = (params) => defHttp.get({ url: '/sys/user/list', params });