File tree Expand file tree Collapse file tree 7 files changed +102
-34
lines changed Expand file tree Collapse file tree 7 files changed +102
-34
lines changed Original file line number Diff line number Diff line change 1+ import { AxiosPromise } from 'axios'
2+
3+ // 登录参数
4+ export interface ILoginApiParams {
5+ username : string // 用户名
6+ password : string // 密码
7+ captcha : string // 验证码
8+ uuid : string // 验证码uuid
9+ }
10+
11+ // 登录返回结果
12+ export interface ILoginData {
13+ token : string
14+ userInfo : {
15+ address : string
16+ username : string
17+ }
18+ }
19+
20+ // 注销登录参数
21+ export interface ILogoutParams { }
22+
23+ // 获取用户权限参数
24+ export interface IPermissionsParams { }
25+
26+ export interface IUserApi {
27+ login : ( params : ILoginApiParams ) => Promise < StoreState . ResType < ILoginData > >
28+ logout : ( params : ILogoutParams ) => Promise < StoreState . ResType < any > >
29+ getPermissionsList : (
30+ params : IPermissionsParams ,
31+ ) => Promise < StoreState . ResType < any > >
32+ }
Original file line number Diff line number Diff line change 1- import service from '@/utils/fetch' ;
1+ import fetch from '@/utils/fetch'
22import qs from 'qs'
3+ import { IUserApi } from './types/user'
34
4- // 用户登录
5- export const login = ( params : any ) : any => service ( {
6- method : 'post' ,
7- url : '/login' ,
8- data : params ,
9- } ) ;
5+ const UserApi : IUserApi = {
6+ // 登录
7+ login : ( params ) =>
8+ fetch ( {
9+ method : 'post' ,
10+ url : '/login' ,
11+ data : params ,
12+ } ) ,
13+ // 注销登录
14+ logout : ( params ) =>
15+ fetch ( {
16+ method : 'get' ,
17+ url : '/logout' ,
18+ data : params ,
19+ } ) ,
20+ // 获取权限列表
21+ getPermissionsList : ( params ) =>
22+ fetch ( {
23+ method : 'get' ,
24+ url : '/navPerson' ,
25+ data : qs . stringify ( params ) ,
26+ } ) ,
27+ }
1028
11- // 用户登出
12- export const logout = ( params : any ) => service ( {
13- method : 'get' ,
14- url : '/logout' ,
15- data : params ,
16- } ) ;
17-
18- // 获取权限列表
19- export const getPermissionsList = ( params : any ) => service ( {
20- method : 'get' ,
21- url : '/navPerson' ,
22- data : qs . stringify ( params ) ,
23- } ) ;
29+ export default UserApi
Original file line number Diff line number Diff line change 99} from 'vue-router'
1010import { mainRoutes , baseRoutes , Routes } from './router.config'
1111import { getToken } from '@/utils/util'
12- import { getPermissionsList } from '@/api/user'
12+ import UserApi from '@/api/user'
1313import { RouteLayout , BlankLayout } from '@/layouts'
1414
1515let isAddDynamicMenuRoutes = false // 是否请求路由表
@@ -69,7 +69,7 @@ router.beforeEach(
6969 if ( ! isAddDynamicMenuRoutes ) {
7070 try {
7171 //获取动态路由表
72- const res : any = await getPermissionsList ( { } )
72+ const res : any = await UserApi . getPermissionsList ( { } )
7373 if ( res . code == 200 ) {
7474 isAddDynamicMenuRoutes = true
7575 const menu = res . data
Original file line number Diff line number Diff line change 11import { defineStore } from 'pinia'
22
3+ interface IUserInfoProps {
4+ token : string
5+ userInfo : {
6+ address : string
7+ username : string
8+ }
9+ }
10+
11+ interface CommonState {
12+ userInfo : IUserInfoProps | null
13+ }
14+
315export const CommonStore = defineStore ( 'common' , {
416 // 状态库
5- state : ( ) => ( {
6- userInfo : { } , //用户信息
17+ state : ( ) : CommonState => ( {
18+ userInfo : null , //用户信息
719 } ) ,
820 getters : {
921 getUserInfo : ( state ) => state . userInfo ?. userInfo ,
1022 } ,
1123 actions : {
12- setUserInfo < T > ( data : T ) {
24+ setUserInfo ( data : NonNullable < IUserInfoProps > ) {
1325 this . userInfo = data
1426 } ,
1527 } ,
Original file line number Diff line number Diff line change 77 */
88declare namespace StoreState {
99 // 接口返回结构
10- export interface Result {
10+ export interface ResType < T > {
1111 code : number
12- data : any
12+ data ?: T
13+ msg ?: string
1314 status : boolean
14- msg : string
1515 }
1616
1717 // 请求参数结构
Original file line number Diff line number Diff line change @@ -44,15 +44,15 @@ service.interceptors.response.use(
4444 if ( status ) {
4545 // 接口请求成功
4646 msg && Message . success ( msg ) // 后台如果返回了msg,则将msg提示出来
47- return Promise . resolve ( response . data ) // 返回成功数据
47+ return Promise . resolve ( response ) // 返回成功数据
4848 }
4949 // 接口异常
5050 msg && Message . warning ( msg ) // 后台如果返回了msg,则将msg提示出来
51- return Promise . reject ( response . data ) // 返回异常数据
51+ return Promise . reject ( response ) // 返回异常数据
5252 } else {
5353 // 接口异常
5454 msg && Message . error ( msg )
55- return Promise . reject ( response . data )
55+ return Promise . reject ( response )
5656 }
5757 }
5858 return response
@@ -96,4 +96,22 @@ service.interceptors.response.use(
9696 } ,
9797)
9898
99- export default service
99+ interface Http {
100+ fetch < T > ( params : AxiosRequestConfig ) : Promise < StoreState . ResType < T > >
101+ }
102+
103+ const http : Http = {
104+ fetch ( params ) {
105+ return new Promise ( ( resolve , reject ) => {
106+ service ( params )
107+ . then ( ( res ) => {
108+ resolve ( res . data )
109+ } )
110+ . catch ( ( err ) => {
111+ reject ( err . data )
112+ } )
113+ } )
114+ } ,
115+ }
116+
117+ export default http [ 'fetch' ]
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ import { uuid } from '@/utils/util'
44import { Form , Input , Button , message } from 'ant-design-vue'
55import { CommonStore } from '@/store/modules/common'
66import GlobalBg from '@/components/GlobalBg'
7- import { login } from '@/api/user.ts'
7+ import UserApi from '@/api/user.ts'
88
99import styles from './index.module.less'
1010
@@ -48,7 +48,7 @@ const Login = defineComponent({
4848 await formRef . value . validate ( )
4949 loading . value = true
5050 try {
51- const { data } = await login ( formData )
51+ const { data } = await UserApi . login ( formData )
5252 common . setUserInfo ( data )
5353 router . push ( '/dataProtal' )
5454 loading . value = false
You can’t perform that action at this time.
0 commit comments