From c5a0e17a05947fa614571e9c697f2e7c82a53fa7 Mon Sep 17 00:00:00 2001 From: wuzilong <704541015@qq.com> Date: Fri, 18 Sep 2026 20:18:08 +0800 Subject: [PATCH] feat(web-admin): add wx-qr create and status API clients. Co-authored-by: Cursor --- web-admin/.env | 33 ++++++++++++++++++++++++++++++++ web-admin/.env.development | 32 +++++++++++++++++++++++++++++++ web-admin/.env.production | 20 +++++++++++++++++++ web-admin/src/api/auth.ts | 39 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 web-admin/.env create mode 100644 web-admin/.env.development create mode 100644 web-admin/.env.production diff --git a/web-admin/.env b/web-admin/.env new file mode 100644 index 000000000..41fea9bc0 --- /dev/null +++ b/web-admin/.env @@ -0,0 +1,33 @@ +# 【通用】环境变量 + +# 版本号 +VITE_VERSION = 3.0.2 + +# 端口号 +VITE_PORT = 3006 + +# 应用部署基础路径(如部署在子目录 /admin,则设置为 /admin/) +VITE_BASE_URL = / + +# 权限模式【 frontend 前端模式 / backend 后端模式 】 +VITE_ACCESS_MODE = frontend + +# 跨域请求时是否携带 Cookie(开启前需确保后端支持) +VITE_WITH_CREDENTIALS = false + +# 是否打开路由信息 +VITE_OPEN_ROUTE_INFO = false + +# 锁屏加密密钥 +VITE_LOCK_ENCRYPT_KEY = s3cur3k3y4adpro + +# API 应用层加密(当前实现使用 VITE_API_ENCRYPT_*) +VITE_API_ENCRYPT_ENABLED = false +VITE_API_ENCRYPT_FAIL_OPEN = false +VITE_API_ENCRYPT_FIXED_SECRET = sqxp-web-api-crypto-fixed-secret +VITE_API_ENCRYPT_EXCLUDE_PATHS = /web/auth/login-rsa-public-key,/web/auth/login,/web/auth/refresh-token,/web/admin/attachment/upload,/web/admin/products/upload-image,/web/admin/categories/upload-image,/web/admin/users/upload-avatar,/api/invoice/download,/web/auth/mp-webview-exchange,/web/auth/wx-qr/create,/web/auth/wx-qr/status + +# 本地开发专用(*.local 已被 gitignore,勿提交) +VITE_AMAP_KEY=1aa4ee7a9b9b662ae633b18c2bad2c21 +# 若高德控制台启用了安全密钥,在此填写: +VITE_AMAP_SECURITY_CODE=e10e42d487e4007b4b21f3d58b687ca8 diff --git a/web-admin/.env.development b/web-admin/.env.development new file mode 100644 index 000000000..15f7faaf3 --- /dev/null +++ b/web-admin/.env.development @@ -0,0 +1,32 @@ +# Web Admin 开发环境 + +# 应用部署基础路径 +VITE_BASE_URL=/ + +# 后端 API 基地址(开发环境走 Vite 代理 /api → localhost:8000,避免浏览器跨域) +VITE_API_URL=/api + +# 是否携带 cookie +VITE_WITH_CREDENTIALS=false + +# API 应用层加密(当前实现使用 VITE_API_ENCRYPT_*) +VITE_API_ENCRYPT_ENABLED=false +VITE_API_ENCRYPT_FAIL_OPEN=false +VITE_API_ENCRYPT_FIXED_SECRET=sqxp-web-api-crypto-fixed-secret +VITE_API_ENCRYPT_EXCLUDE_PATHS=/web/auth/login-rsa-public-key,/web/auth/login,/web/auth/refresh-token,/web/admin/attachment/upload,/web/admin/products/upload-image,/web/admin/categories/upload-image,/web/admin/users/upload-avatar,/api/invoice/download,/web/auth/mp-webview-exchange,/web/auth/wx-qr/create,/web/auth/wx-qr/status + +# 代理目标地址(仅用于 /api 代理;保持本地后端) +VITE_API_PROXY_URL=http://localhost:8000 + +# 是否移除 console +VITE_DROP_CONSOLE=false + +# 权限模式(前端固定菜单模式) +VITE_ACCESS_MODE=frontend + +# 高德地图 Web JS API(敏感 Key 请写入 .env.development.local / 生产构建环境变量) +# VITE_AMAP_KEY= +# VITE_AMAP_SECURITY_CODE= + +# MinIO 文件访问前缀(生产环境通过 nginx 代理,此处留空或指向本地 MinIO) +VITE_MINIO_BASE_URL=http://47.99.164.66:20004/zkxw diff --git a/web-admin/.env.production b/web-admin/.env.production new file mode 100644 index 000000000..947a91d66 --- /dev/null +++ b/web-admin/.env.production @@ -0,0 +1,20 @@ +# shanxia2.0 Web 管理端生产构建配置 +# 产物部署到:/iflytek/shanxia2.0/web/dist + +VITE_VERSION=3.0.2 +VITE_BASE_URL=/ + +VITE_API_URL=/api + +VITE_WITH_CREDENTIALS=false +VITE_ACCESS_MODE=frontend +VITE_OPEN_ROUTE_INFO=false +VITE_LOCK_ENCRYPT_KEY=s3cur3k3y4adpro + +VITE_API_ENCRYPT_ENABLED=false +VITE_API_ENCRYPT_FAIL_OPEN=false +VITE_API_ENCRYPT_FIXED_SECRET=sqxp-web-api-crypto-fixed-secret +VITE_API_ENCRYPT_EXCLUDE_PATHS=/web/auth/login-rsa-public-key,/web/auth/login,/web/auth/refresh-token,/web/admin/attachment/upload,/web/admin/products/upload-image,/web/admin/categories/upload-image,/web/admin/users/upload-avatar,/api/invoice/download,/web/auth/mp-webview-exchange,/web/auth/wx-qr/create,/web/auth/wx-qr/status + +# 同域反代 MinIO(Nginx location ^~ /ruoyi/ → :9000);勿写 http://IP:9000,否则 HTTPS 页 Mixed Content +VITE_MINIO_BASE_URL=/ruoyi diff --git a/web-admin/src/api/auth.ts b/web-admin/src/api/auth.ts index 1ddbc0d00..7f2845df0 100644 --- a/web-admin/src/api/auth.ts +++ b/web-admin/src/api/auth.ts @@ -29,6 +29,45 @@ export async function fetchLogin(params: { username: string; password: string }) }) } +export function fetchWxQrCreate() { + return request.post<{ + sessionId: string + expiresIn: number + qrImageBase64: string + }>({ + url: '/web/auth/wx-qr/create', + data: {}, + headers: { 'X-Api-Crypto': 'off' }, + showErrorMessage: true + }) +} + +export function fetchWxQrStatus(sessionId: string) { + return request.get<{ + status: string + message?: string + token?: string + refreshToken?: string + expiresIn?: number + userInfo?: { + id: string + username: string + realName: string + phone: string + role: string + roles?: string[] + regionId: string + regionName: string + avatarUrl?: string | null + } + }>({ + url: '/web/auth/wx-qr/status', + params: { sessionId }, + headers: { 'X-Api-Crypto': 'off' }, + showErrorMessage: false + }) +} + /** * 获取当前用户信息 * @returns 用户信息