chore(dev): 支持本地后端代理目标

This commit is contained in:
xy
2026-09-28 20:37:09 +08:00
parent 8024075439
commit b6775a66c7
4 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -262,7 +262,7 @@ API 模块与页面按业务域对应。工作台页面使用 `api/workbench`
API 请求和响应类型按业务域放在 `api/workbench/types.ts`、`api/management/types.ts`;页面展示和交互类型放在对应 View 目录的 `types.ts`;全局复用类型放在 `types/common.ts`。页面提交模型会在 API 边界转换为后端 DTO,不向后端发送患者快照、文档名称或明文手机号等页面字段。
开发环境默认使用 `/api` 作为同源接口前缀,Vite 会将 `/api` 转发到 `https://ipad.shenynet.com`,因此浏览器不会直接跨域请求后端。代理配置位于 `vite.config.ts`,不改写 `/api/v1/...` 路径。修改代理或环境变量后需要重启 Vite 开发服务。
开发环境默认使用 `/api` 作为同源接口前缀,Vite 会将 `/api` 转发到 `https://ipad.shenynet.com`,因此浏览器不会直接跨域请求后端。代理配置位于 `vite.config.ts`,不改写 `/api/v1/...` 路径。联调本地后端时可用 `VITE_API_PROXY_TARGET=http://127.0.0.1:18080 npm run dev` 覆盖目标。修改代理或环境变量后需要重启 Vite 开发服务。
生产环境不会使用 Vite 的开发代理,需要在 Nginx 或其他网关中配置同样的 `/api` 反向代理。Mock 开关按业务模块(对齐菜单)拆分,缺省使用演示数据的只有签署侧(签署工作台 `VITE_MOCK_SIGNING`、签署记录查询 `VITE_MOCK_SIGN_RECORDS`)与「报表分析」目录下的四个菜单(`VITE_MOCK_REPORT_ANALYTICS`,后端没有分析聚合接口),其余模块直接调用真实后端;各开关的环境变量名与缺省值见 `src/utils/mock-flags.ts`,需要临时切换时在本地 `.env.*.local` 里覆盖即可。使用本地开发代理时,`VITE_API_BASE_URL` 应填写 `/api`;如果改为直连后端,则需要后端配置允许当前前端源的 CORS。
+2 -1
View File
@@ -11,6 +11,7 @@ function resolveBuildId() {
// https://vite.dev/config/
export default defineConfig(() => {
const buildId = resolveBuildId()
const apiProxyTarget = process.env.VITE_API_PROXY_TARGET?.trim() || 'https://ipad.shenynet.com'
return {
plugins: [vue()],
@@ -26,7 +27,7 @@ export default defineConfig(() => {
server: {
proxy: {
'/api': {
target: 'https://ipad.shenynet.com',
target: apiProxyTarget,
changeOrigin: true,
secure: true,
},
+1 -1
View File
@@ -56,7 +56,7 @@ Vant、Zod、PDF 预览、第三方签名组件和自动化测试暂不接入;
## API 接入
开发环境默认使用 `/api`,由 `vite.config.ts` 代理到 `https://ipad.shenynet.com`;生产环境需要由 Nginx 或医院网关配置同路径反向代理。
开发环境默认使用 `/api`,由 `vite.config.ts` 代理到 `https://ipad.shenynet.com`;本地联调可通过 `VITE_API_PROXY_TARGET=http://127.0.0.1:18080 npm run dev` 覆盖目标。生产环境需要由 Nginx 或医院网关配置同路径反向代理。
已接入的真实接口:
+2 -1
View File
@@ -11,6 +11,7 @@ function resolveBuildId() {
// https://vite.dev/config/
export default defineConfig(() => {
const buildId = resolveBuildId()
const apiProxyTarget = process.env.VITE_API_PROXY_TARGET?.trim() || 'https://ipad.shenynet.com'
return {
plugins: [vue()],
@@ -26,7 +27,7 @@ export default defineConfig(() => {
server: {
proxy: {
'/api': {
target: 'https://ipad.shenynet.com',
target: apiProxyTarget,
changeOrigin: true,
secure: true,
},