编辑 | blame | 历史 | 原始文档

文件清单与说明

📂 根目录文件

配置文件

文件 说明
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/ 目录详解

src/main.js

  • 用途: Vite 应用入口点
  • 功能: 导入应用主逻辑和样式,初始化应用
  • 关键:
  • 导入 initApp./js/app.js
  • 导入全局样式
  • 监听 DOMContentLoaded 事件
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 客户端实例
  • 核心流程:
  1. 初始化 OAuth 客户端
  2. 检查是否有授权码
  3. 根据认证状态显示相应 UI

src/js/wechat-oauth.js 🔐

  • 用途: 企业微信 OAuth 2.0 客户端
  • 主要类: WeChatOAuth
  • 关键方法:
  • getAuthUrl() - 获取授权链接
  • getAuthCode() - 从 URL 获取授权码
  • exchangeCodeForUserInfo(code) - 交换用户信息
  • getUserInfo() - 获取缓存的用户信息
  • isAuthorized() - 检查是否已授权
  • clearUserInfo() - 清除用户信息
  • 状态管理: sessionStorage

src/js/wecom-config.js ⚙️

  • 用途: 企业微信应用配置
  • 导出: WECOM_CONFIG 对象
  • 必需字段:
  • corpId - 企业 ID
  • agentId - 应用 ID
  • redirectUri - OAuth 回调地址
  • apiBaseUrl - API 基础路径
  • 修改: 根据实际应用填入

src/js/api-client.js 🌐

  • 用途: HTTP 客户端和 API 通信
  • 主要类: ApiClient
  • 关键方法:
  • get(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 - 授权提示
  • 响应式断点:
  • 768px - 平板
  • 480px - 手机
  • 360px - 小屏手机

📄 根目录文档文件

文件 内容 用途
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 - 已根据需要自定义
  • [ ] HTTPS - 已配置
  • [ ] 防火墙 - 已允许必要的端口

🔍 常见文件修改

添加新的 API 端点

  1. server-example.js 中添加路由
  2. src/js/api-client.js 中添加对应方法
  3. src/js/app.js 中调用方法

修改样式

  1. 编辑 src/styles/main.css
  2. Vite 会自动热更新

添加新功能

  1. 创建新的 .js 文件在 src/js/
  2. src/js/app.js 中导入
  3. 调用相应函数

自定义用户信息显示

编辑 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日