diff --git a/src/lib/api/httpClient.ts b/src/lib/api/httpClient.ts index 4086328..ef60050 100644 --- a/src/lib/api/httpClient.ts +++ b/src/lib/api/httpClient.ts @@ -1,8 +1,9 @@ import { ofetch, type FetchOptions, type SearchParameters } from 'ofetch'; import { log } from '$lib/log'; +import { COOKIE_TOKEN_KEY } from '$lib/components/constants/cookiesConstants.ts'; // 1. 定义更安全的类型,替代 any -type QueryParams = SearchParameters; // 使用 ofetch 内置的查询参数类型,或者自定义 Record +type QueryParams = SearchParameters; type RequestBody = Record | FormData | unknown[]; // 替代 any,使用 unknown export interface ApiResult { @@ -19,12 +20,14 @@ const client = ofetch.create({ onRequest({ options, request }) { log.debug(`[API] ${options.method} ${request}`, { body: options.body as unknown, // 类型断言为 unknown 避免隐式 any + headers: options.headers, query: options.query }); }, onResponseError({ request, response }) { log.error(`[API] Error ${request}`, { status: response.status, + headers: response.headers, data: response._data as unknown }); } diff --git a/src/lib/api/services/roleService.ts b/src/lib/api/services/roleService.ts index 727deec..8d03e44 100644 --- a/src/lib/api/services/roleService.ts +++ b/src/lib/api/services/roleService.ts @@ -5,7 +5,7 @@ import { log } from '$lib/log.ts'; export const roleService = { getRolesOptions: async (token:string) => { - const response = await api.get('/roles/options', {headers: {Authorization: `${token}`}}); + const response = await api.get('/roles/options',undefined, {headers: {Authorization: `${token}`}}); if (response.code != 200 || !response.data){ log.error(response.msg); throw new Error(response.msg); diff --git a/src/lib/api/services/userService.ts b/src/lib/api/services/userService.ts index 7e0b3d1..1e6d0d0 100644 --- a/src/lib/api/services/userService.ts +++ b/src/lib/api/services/userService.ts @@ -1,29 +1,31 @@ import { api } from '$lib/api/httpClient.ts'; import type { UserProfile } from '$lib/types/user.ts'; import type { PageResult } from '$lib/types/dataTable.ts'; +import { type SearchParameters } from 'ofetch'; + +// 1. 定义更安全的类型,替代 any +type QueryParams = SearchParameters; export const userService = { getUserProfile: async (token:string) => { - const response = await api.get('/users/me', {headers: {Authorization: `${token}`}}); + const response = await api.get('/users/me',undefined, {headers: {Authorization: `${token}`}}); if (response.code != 200 || !response.data){ throw new Error(response.msg); } return response.data; }, getAllUsers: async ({ page, size,token , keyword, roleId}: { page: number, size: number, token:string , keyword?: string, roleId?: number}) => { - const formData = new FormData(); - formData.append('pageNum', page.toString()); - formData.append('pageSize', size.toString()); - if ( keyword){ - formData.append('keyword', keyword); - } - if ( roleId){ - formData.append('roleId', roleId.toString()); - } + + const params: QueryParams= { + pageNum: page, + pageSize: size, + ...(keyword && { keyword }), + ...(roleId && { roleId }) + } ; const response = await api.get>( '/users', + params, { - body: formData, headers: {Authorization: `${token}`} }); if (response.code != 200 || !response.data){ diff --git a/src/lib/components/icon/Sprite.svelte b/src/lib/components/icon/Sprite.svelte index 62af56e..f79d739 100644 --- a/src/lib/components/icon/Sprite.svelte +++ b/src/lib/components/icon/Sprite.svelte @@ -1,5 +1,5 @@ @@ -56,39 +56,6 @@ - @@ -120,14 +87,14 @@ - - - - + - - - + + + + + + \ No newline at end of file diff --git a/src/lib/components/layout/app/AppSidebar.svelte b/src/lib/components/layout/app/AppSidebar.svelte index d50e87f..fb06888 100644 --- a/src/lib/components/layout/app/AppSidebar.svelte +++ b/src/lib/components/layout/app/AppSidebar.svelte @@ -123,77 +123,79 @@ let menuItems = $derived(computeNavState(rawNavItems, page.url.pathname, expandedIds)); -
- -
-
- 12312 -
- -