| 文件 | 说明 |
|---|---|
package.json |
NPM 项目配置和依赖 |
vite.config.js |
Vite 构建配置 |
.env.example |
环境变量示例 |
.env |
环境变量(本地开发) |
.gitignore |
Git 忽略配置 |
index.html |
SPA 应用入口 |
| 文件夹 | 说明 |
|---|---|
src/ |
源代码目录 |
dist/ |
生产构建输出 (执行 npm run build 生成) |
node_modules/ |
项目依赖 (执行 npm install 生成) |
| 文件 | 说明 |
|---|---|
server-example.js |
Node.js + Express 后端示例 |
src/main.jsinitApp 从 ./js/app.jsDOMContentLoaded 事件import { initApp } from './js/app.js';
import './styles/main.css';
document.addEventListener('DOMContentLoaded', initApp);
src/js/app.js ⭐initApp() - 应用初始化入口handleAuthCallback() - 处理 OAuth 回调handleUnauthorized() - 处理未授权状态displayUserInfo() - 显示用户信息handleGetCode() - 处理获取密码oauth - OAuth 客户端实例apiClient - HTTP 客户端实例src/js/wechat-oauth.js 🔐WeChatOAuthgetAuthUrl() - 获取授权链接getAuthCode() - 从 URL 获取授权码exchangeCodeForUserInfo(code) - 交换用户信息getUserInfo() - 获取缓存的用户信息isAuthorized() - 检查是否已授权clearUserInfo() - 清除用户信息src/js/wecom-config.js ⚙️WECOM_CONFIG 对象corpId - 企业 IDagentId - 应用 IDredirectUri - OAuth 回调地址apiBaseUrl - API 基础路径src/js/api-client.js 🌐ApiClientget(endpoint) - GET 请求post(endpoint, data) - POST 请求getUserInfoByCode(code) - 获取用户信息getWeChatUserDetail(userId) - 获取用户详情verifyUserPermission(userId) - 验证权限src/js/utils.js 🛠️getHistoryFromStorage() - 获取历史记录saveHistoryToStorage(history) - 保存历史记录formatDateTime(date) - 日期格式化isValid(expiryTime) - 检查是否有效getRemainingTime(expiryTime) - 获取剩余时间generateCode() - 生成验证码generatePassword() - 生成密码showMessage(message, type) - 显示提示消息copyToClipboard(text) - 复制到剪贴板src/styles/main.css 🎨.container - 容器.header-card - 头部卡片.form-input - 输入框.btn-primary - 主按钮.history-table - 历史表格.auth-prompt - 授权提示| 文件 | 内容 | 用途 |
|---|---|---|
README_VITE.md |
项目总体介绍 | 项目概览 |
WECOM_INTEGRATION_GUIDE.md |
集成步骤和故障排查 | 实现指南 |
WECOM_OAUTH_GUIDE.md |
OAuth 后端实现 | 后端参考 |
PROJECT_SUMMARY.md |
项目完成总结 | 项目总结 |
QUICK_START.md |
快速参考 | 快速查阅 |
FILE_INVENTORY.md |
本文件 | 文件说明 |
用户输入 (input)
↓
验证 (validate)
↓
业务逻辑 (app.js)
↓
API 调用 (api-client.js)
↓
后端处理 (server-example.js)
↓
数据返回 (response)
↓
存储 (localStorage/sessionStorage)
↓
显示 (UI update)
client/index.html
↓
wechat-oauth.js (getAuthCode)
↓
[检查 URL 中的 code 参数]
├─ 如果有 code → exchangeCodeForUserInfo
├─ 如果无 code → getAuthUrl (重定向)
└─ 如果已授权 → getUserInfo (sessionStorage)
↓
app.js (displayUserInfo)
↓
UI 显示用户信息
main.js
├── app.js
│ ├── wechat-oauth.js
│ ├── api-client.js
│ ├── wecom-config.js
│ └── utils.js
└── styles/main.css
server-example.js
├── axios (HTTP)
├── dotenv (配置)
└── express (框架)
执行 npm run build 后生成 dist/ 目录:
dist/
├── index.html # 优化后的 HTML
├── assets/
│ ├── index-xxx.js # 打包后的 JavaScript
│ └── index-xxx.css # 打包后的 CSS
└── (其他资源)
使用此清单确保所有文件都已配置:
src/js/wecom-config.js - 已填入企业 ID 和 AgentID.env - 已创建和配置WECOM_CORP_ID - 已设置WECOM_APP_SECRET - 已设置server-example.js - 已根据需要自定义server-example.js 中添加路由src/js/api-client.js 中添加对应方法src/js/app.js 中调用方法src/styles/main.css.js 文件在 src/js/src/js/app.js 中导入编辑 src/js/app.js 中的 displayUserInfo() 函数
仅有 Vite (开发依赖):json { "devDependencies": { "vite": "^5.0.0" } }
特点: 零运行时依赖,轻量级应用
如使用 server-example.js:bash npm install express axios cors dotenv morgan
| 场景 | 涉及文件 |
|---|---|
| 用户登录 | app.js, wechat-oauth.js |
| 获取用户信息 | api-client.js, server-example.js |
| 管理密码 | app.js, utils.js |
| UI 显示 | main.css, index.html |
| 配置 | wecom-config.js, .env |
此清单定期更新以保持准确性
最后更新: 2025年12月9日