mirror of
https://github.com/chansee97/nova-admin.git
synced 2025-05-23 09:59:15 +08:00
fix: fecth type error
This commit is contained in:
parent
ca768ea228
commit
03ad287f43
@ -18,7 +18,7 @@ async function setupApp() {
|
|||||||
// 注册模块 Vue-router
|
// 注册模块 Vue-router
|
||||||
await installRouter(app)
|
await installRouter(app)
|
||||||
|
|
||||||
/* 注册模块 Vue-router/Pinia */
|
/* 注册模块 指令/静态资源 */
|
||||||
Object.values(
|
Object.values(
|
||||||
import.meta.glob<{ install: (app: App) => void }>('./modules/*.ts', {
|
import.meta.glob<{ install: (app: App) => void }>('./modules/*.ts', {
|
||||||
eager: true,
|
eager: true,
|
||||||
|
@ -6,14 +6,14 @@ interface Ilogin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function fetchLogin(params: Ilogin) {
|
export function fetchLogin(params: Ilogin) {
|
||||||
const methodInstance = alovaInstance.Post<any>('/login', params)
|
const methodInstance = alovaInstance.Post<Service.ResponseResult<ApiAuth.loginInfo>>('/login', params)
|
||||||
methodInstance.meta = {
|
methodInstance.meta = {
|
||||||
authRole: null,
|
authRole: null,
|
||||||
}
|
}
|
||||||
return methodInstance
|
return methodInstance
|
||||||
}
|
}
|
||||||
export function fetchUpdateToken(params: any) {
|
export function fetchUpdateToken(params: any) {
|
||||||
const method = alovaInstance.Post<ApiAuth.loginInfo>('/updateToken', params)
|
const method = alovaInstance.Post<Service.ResponseResult<ApiAuth.loginInfo>>('/updateToken', params)
|
||||||
method.meta = {
|
method.meta = {
|
||||||
authRole: 'refreshToken',
|
authRole: 'refreshToken',
|
||||||
}
|
}
|
||||||
@ -21,5 +21,5 @@ export function fetchUpdateToken(params: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function fetchUserRoutes(params: { id: number }) {
|
export function fetchUserRoutes(params: { id: number }) {
|
||||||
return alovaInstance.Get<AppRoute.RowRoute[]>('/getUserRoutes', { params })
|
return alovaInstance.Get<Service.ResponseResult<AppRoute.RowRoute[]> >('/getUserRoutes', { params })
|
||||||
}
|
}
|
||||||
|
@ -56,11 +56,12 @@ export function handleBusinessError(data: Record<string, any>, config: Required<
|
|||||||
* @return {*} result
|
* @return {*} result
|
||||||
*/
|
*/
|
||||||
export function handleServiceResult(data: any, isSuccess: boolean = true) {
|
export function handleServiceResult(data: any, isSuccess: boolean = true) {
|
||||||
return {
|
const result = {
|
||||||
isSuccess,
|
isSuccess,
|
||||||
errorType: null,
|
errorType: null,
|
||||||
...data,
|
...data,
|
||||||
}
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,7 +70,7 @@ export function handleServiceResult(data: any, isSuccess: boolean = true) {
|
|||||||
*/
|
*/
|
||||||
export async function handleRefreshToken() {
|
export async function handleRefreshToken() {
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
const data = await fetchUpdateToken({ refreshToken: local.get('refreshToken') })
|
const { data } = await fetchUpdateToken({ refreshToken: local.get('refreshToken') })
|
||||||
if (data) {
|
if (data) {
|
||||||
local.set('token', data.accessToken)
|
local.set('token', data.accessToken)
|
||||||
local.set('refreshToken', data.refreshToken)
|
local.set('refreshToken', data.refreshToken)
|
||||||
|
@ -53,9 +53,11 @@ export const useAuthStore = defineStore('auth-store', {
|
|||||||
|
|
||||||
/* 用户登录 */
|
/* 用户登录 */
|
||||||
async login(username: string, password: string) {
|
async login(username: string, password: string) {
|
||||||
const { error, data } = await fetchLogin({ username, password })
|
const { isSuccess, data } = await fetchLogin({ username, password })
|
||||||
if (error)
|
if (!isSuccess) {
|
||||||
|
window.$message.error('登录失败,请检查用户名和密码')
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 处理登录信息
|
// 处理登录信息
|
||||||
await this.handleAfterLogin(data)
|
await this.handleAfterLogin(data)
|
||||||
|
@ -181,6 +181,10 @@ export const useRouteStore = defineStore('route-store', {
|
|||||||
this.isInitAuthRoute = false
|
this.isInitAuthRoute = false
|
||||||
// 初始化路由信息
|
// 初始化路由信息
|
||||||
const rowRoutes = await this.initRouteInfo()
|
const rowRoutes = await this.initRouteInfo()
|
||||||
|
if (!rowRoutes) {
|
||||||
|
window.$message.error('获取路由失败,请稍后再试')
|
||||||
|
return
|
||||||
|
}
|
||||||
this.rowRoutes = rowRoutes
|
this.rowRoutes = rowRoutes
|
||||||
// 生成真实路由并插入
|
// 生成真实路由并插入
|
||||||
this.createRoutes(rowRoutes)
|
this.createRoutes(rowRoutes)
|
||||||
|
11
src/typings/route.d.ts
vendored
11
src/typings/route.d.ts
vendored
@ -1,5 +1,5 @@
|
|||||||
declare namespace AppRoute {
|
declare namespace AppRoute {
|
||||||
/** 路由描述 */
|
/** 单个路由所携带的meta标识 */
|
||||||
interface RouteMeta {
|
interface RouteMeta {
|
||||||
/* 页面标题,通常必选。 */
|
/* 页面标题,通常必选。 */
|
||||||
title: string
|
title: string
|
||||||
@ -17,7 +17,7 @@ declare namespace AppRoute {
|
|||||||
order?: number
|
order?: number
|
||||||
/* 嵌套外链 */
|
/* 嵌套外链 */
|
||||||
herf?: string
|
herf?: string
|
||||||
/** 当前路由需要选中的菜单项(用于跳转至不在左侧菜单显示的路由且需要高亮某个菜单的情况) */
|
/** 当前路由需要选中的菜单项,用于跳转至不在左侧菜单显示的路由且需要高亮某个菜单的情况 */
|
||||||
activeMenu?: string
|
activeMenu?: string
|
||||||
/** 当前路由是否会被添加到Tab中 */
|
/** 当前路由是否会被添加到Tab中 */
|
||||||
withoutTab?: boolean
|
withoutTab?: boolean
|
||||||
@ -34,9 +34,9 @@ declare namespace AppRoute {
|
|||||||
redirect?: string
|
redirect?: string
|
||||||
/* 页面组件地址 */
|
/* 页面组件地址 */
|
||||||
componentPath?: string | null
|
componentPath?: string | null
|
||||||
// 路由id
|
/* 路由id */
|
||||||
id: numnber
|
id: numnber
|
||||||
// 父级路由id,顶级页面为null
|
/* 父级路由id,顶级页面为null */
|
||||||
pid: number | null
|
pid: number | null
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,6 +44,9 @@ declare namespace AppRoute {
|
|||||||
[K in keyof RouteMeta as `meta.${K}`]?: RouteMeta[K]
|
[K in keyof RouteMeta as `meta.${K}`]?: RouteMeta[K]
|
||||||
} & baseRoute
|
} & baseRoute
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 挂载到项目上的真实路由结构
|
||||||
|
*/
|
||||||
interface Route extends baseRoute {
|
interface Route extends baseRoute {
|
||||||
/** 子路由 */
|
/** 子路由 */
|
||||||
children?: Route[]
|
children?: Route[]
|
||||||
|
15
src/typings/service.d.ts
vendored
15
src/typings/service.d.ts
vendored
@ -20,7 +20,7 @@ declare namespace Service {
|
|||||||
successCode?: number | string
|
successCode?: number | string
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestErrorType = 'Response Error' | 'Business Error'
|
type RequestErrorType = 'Response Error' | 'Business Error' | null
|
||||||
type RequestCode = string | number
|
type RequestCode = string | number
|
||||||
|
|
||||||
interface RequestError {
|
interface RequestError {
|
||||||
@ -33,4 +33,17 @@ declare namespace Service {
|
|||||||
/** 返回的数据 */
|
/** 返回的数据 */
|
||||||
data?: any
|
data?: any
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ResponseResult<T> extends RequestError {
|
||||||
|
/** 请求服务是否成功 */
|
||||||
|
isSuccess: boolean
|
||||||
|
/** 请求服务的错误类型 */
|
||||||
|
errorType: RequestErrorType
|
||||||
|
/** 错误码 */
|
||||||
|
code: RequestCode
|
||||||
|
/** 错误信息 */
|
||||||
|
msg: string
|
||||||
|
/** 返回的数据 */
|
||||||
|
data: T
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"rewrites": [{ "source": "/:path*", "destination": "/index.html" }]
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user