From 958fc73c1511b6503d2adc82701991c6ab0c02f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Fri, 17 Apr 2026 19:05:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF=20T?= =?UTF-8?q?ypeScript=20=E7=B1=BB=E5=9E=8B=E9=94=99=E8=AF=AF=E5=B9=B6?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=20docker-compose.yml=20=E4=B8=AD=E7=9A=84=20?= =?UTF-8?q?version=20=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 docker-compose.yml 中的 version 属性(已过时) - 修复 RouteLocationNormalized 类型导入错误 - 修复 AxiosRequestConfig 类型错误,使用 InternalAxiosRequestConfig - 添加 Vite 环境变量类型定义 - 扩展 axios 类型定义,正确处理响应拦截器返回的 data - 修复 signature.ts 中未使用的 body 参数 bug - 移除 UserManagement.vue 中未使用的 StatusHelper 导入 --- docker-compose.yml | 2 -- gym-manage-web/src/router/index.ts | 2 +- gym-manage-web/src/types/axios.d.ts | 13 +++++++++++++ gym-manage-web/src/utils/request.ts | 4 ++-- gym-manage-web/src/utils/signature.ts | 2 +- gym-manage-web/src/views/system/UserManagement.vue | 2 +- gym-manage-web/src/vite-env.d.ts | 10 ++++++++++ 7 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 gym-manage-web/src/types/axios.d.ts create mode 100644 gym-manage-web/src/vite-env.d.ts diff --git a/docker-compose.yml b/docker-compose.yml index de8e800..d088299 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - x-common-env: &common-env TZ: Asia/Shanghai LANG: zh_CN.UTF-8 diff --git a/gym-manage-web/src/router/index.ts b/gym-manage-web/src/router/index.ts index 7985b60..13b66b8 100644 --- a/gym-manage-web/src/router/index.ts +++ b/gym-manage-web/src/router/index.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHistory } from 'vue-router' -import type { RouteRecordRaw } from 'vue-router' +import type { RouteRecordRaw, RouteLocationNormalized } from 'vue-router' declare module 'vue-router' { interface RouteMeta { diff --git a/gym-manage-web/src/types/axios.d.ts b/gym-manage-web/src/types/axios.d.ts new file mode 100644 index 0000000..4a5cf60 --- /dev/null +++ b/gym-manage-web/src/types/axios.d.ts @@ -0,0 +1,13 @@ +import { AxiosRequestConfig, AxiosInstance } from 'axios' + +declare module 'axios' { + interface AxiosInstance { + request(config: AxiosRequestConfig): Promise + get(url: string, config?: AxiosRequestConfig): Promise + delete(url: string, config?: AxiosRequestConfig): Promise + head(url: string, config?: AxiosRequestConfig): Promise + post(url: string, data?: any, config?: AxiosRequestConfig): Promise + put(url: string, data?: any, config?: AxiosRequestConfig): Promise + patch(url: string, data?: any, config?: AxiosRequestConfig): Promise + } +} diff --git a/gym-manage-web/src/utils/request.ts b/gym-manage-web/src/utils/request.ts index 8202357..9d14ac4 100644 --- a/gym-manage-web/src/utils/request.ts +++ b/gym-manage-web/src/utils/request.ts @@ -1,4 +1,4 @@ -import axios, { AxiosRequestConfig } from 'axios' +import axios, { InternalAxiosRequestConfig } from 'axios' import { generateSignatureHeaders } from './signature' import { checkApiPermission } from './permission' @@ -8,7 +8,7 @@ const request = axios.create({ }) request.interceptors.request.use( - (config: AxiosRequestConfig) => { + (config: InternalAxiosRequestConfig) => { const token = localStorage.getItem('token') if (token) { config.headers = config.headers || {} diff --git a/gym-manage-web/src/utils/signature.ts b/gym-manage-web/src/utils/signature.ts index bd0a3b6..0542348 100644 --- a/gym-manage-web/src/utils/signature.ts +++ b/gym-manage-web/src/utils/signature.ts @@ -16,7 +16,7 @@ export function generateSignature( timestamp: number, nonce: string ): string { - const stringToSign = buildStringToSign(method, path, query, '', timestamp, nonce) + const stringToSign = buildStringToSign(method, path, query, body, timestamp, nonce) const signature = CryptoJS.HmacSHA256(stringToSign, SIGNATURE_SECRET) const signatureBase64 = CryptoJS.enc.Base64.stringify(signature) diff --git a/gym-manage-web/src/views/system/UserManagement.vue b/gym-manage-web/src/views/system/UserManagement.vue index 5d22391..6b28f5c 100644 --- a/gym-manage-web/src/views/system/UserManagement.vue +++ b/gym-manage-web/src/views/system/UserManagement.vue @@ -226,7 +226,7 @@ import { Search } from '@element-plus/icons-vue' import { userApi, type User, type CreateUserRequest, type UpdateUserRequest } from '@/api/user.api' import { roleApi, type Role } from '@/api/role.api' import { handleApiError } from '@/utils/errorHandler' -import { UserStatus, StatusHelper } from '@/constants/status' +import { UserStatus } from '@/constants/status' import { formatDateTime } from '@/utils/dateFormat' const loading = ref(false) diff --git a/gym-manage-web/src/vite-env.d.ts b/gym-manage-web/src/vite-env.d.ts new file mode 100644 index 0000000..9a6804d --- /dev/null +++ b/gym-manage-web/src/vite-env.d.ts @@ -0,0 +1,10 @@ +/// + +interface ImportMetaEnv { + readonly VITE_SIGNATURE_SECRET: string + readonly VITE_API_BASE_URL?: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +}