## Context

当前 `src/utils/httpConfig.js` 中通过注释/解注释来切换不同环境域名，`vite.config.js` 中的 proxy target 也是硬编码。已存在 `.env.xnet` 和 `.env.qyyst` 文件，但 `vite.config.js` 尚未使用环境变量。

## Goals / Non-Goals

**Goals:**
- `httpConfig.js` 通过 `import.meta.env` 读取环境变量，移除硬编码域名
- `vite.config.js` 的 proxy target 通过 `loadEnv` 动态读取环境变量
- `package.json` 增加带 `--mode` 的构建脚本

**Non-Goals:**
- 不改动业务逻辑代码
- 不修改 `.env` 文件内容（已存在）
- 不涉及生产环境部署流程改造

## Decisions

- 使用 Vite 内置的 `loadEnv(mode, process.cwd(), 'VITE_')` 在 `vite.config.js` 中读取环境变量
- `httpConfig.js` 使用 `import.meta.env.VITE_APP_IP_DEFAULT`（运行时）
- 保留 `http://localhost:81` 作为未配置时的 fallback

## Risks / Trade-offs

- [Risk] 旧的手动注释切换方式不再被使用 → 团队成员需要了解新的 `--mode` 用法
- [Risk] 如果 `.env` 文件缺失，fallback 到 localhost 可能导致请求失败 → 构建脚本明确指定 mode
