# 家谱 PC 前端交接 更新日期:2026-09-17 ## 项目是什么 这是一个静态 HTML 多页面项目。页面直接加载 CSS 和 JavaScript,没有 React、Vue 或单页应用入口。 官网页面在根目录,例如 `index.html`、`login.html`、`genealogy.html`。登录后的个人中心和家谱功能页面以 `profile-` 开头。 ## 主要目录 | 位置 | 用途 | | --- | --- | | 根目录 `*.html` | 各页面入口 | | `public/css/` | 页面样式,`public.css` 是全局样式 | | `public/js/` | 页面逻辑、公共交互和第三方脚本 | | `public/images/` | 官网图片素材 | | `utils/` | 请求、存储、表单和提示工具 | | `config.js` | 前端接口配置 | | `scripts/build-minified.mjs` | 构建脚本 | | `dist/` | 构建产物;当前已清理,需要时重新构建 | ## 已清理内容 本次已删除测试文件、测试截图、临时接口响应、设计审查记录和旧文档。`dist/`、接口快照和 `package.json` 也已清理。仓库不再保留自动化测试,也没有 `npm test` 命令。 后续不要在仓库中保存测试截图、测试账号信息、接口返回样本或重复的过程记录。需要说明验证结果时,写在当前提交或任务交付里即可。 ## 请求和登录 接口地址和请求封装在 `utils/ApiClient.js`、`utils/AxiosRequestUtil.js`、`config.js`。 页面不要直接发 Axios 请求,也不要在页面里拼接口地址。新增接口时先在 `ApiClient` 中统一定义,再由页面调用。 登录信息由 `StorageUtil.js` 管理。登录后的请求会携带 Bearer Token;401 会清除登录态并跳转到 `login.html`;403 保留登录态并显示无权限状态。 后端返回的长整型 ID 在浏览器里按字符串处理,避免数字精度丢失。 ## 家谱业务规则 家谱业务必须使用真实的 `genealogyId`。没有家谱上下文时,应阻止请求或提示用户选择家谱,不能写死示例 ID。 接口字段、权限和接口是否存在,以 Apifox 的 PC 目录为准。不要从 APP 接口推测 PC 接口,也不要根据旧文件猜字段。 接口还缺少列表、详情或删除能力时,页面应保持禁用或提示状态,不要补造数据把入口打开。 ## 常用位置 - 个人中心通用布局和导航:`public/js/profile-common.js` - 个人中心样式:`public/css/profile.css`、`public/css/profile-module.css` - 富文本编辑:`public/js/rich-editor.js`、`public/js/wangeditor5/` - 附件上传:`public/js/attachment-editor.js`、`public/js/upload-pages.js` - Layui 配置:`public/js/lay-config.js` 改公共样式或公共脚本前,先检查相关 `profile-*.html` 的引用,避免影响其他页面。 ## 接手一个功能时 1. 找到页面入口、对应脚本和已有接口调用。 2. 在 Apifox 的 PC 目录确认请求方法、参数、响应字段和权限。 3. 修改请求封装和页面逻辑,保持加载、空数据、失败、无权限和禁用状态完整。 4. JavaScript 改动后执行 `node --check 路径/文件.js`,并在浏览器走通受影响页面。 5. 需要生成发布文件时执行 `node scripts/build-minified.mjs`。当前 `package.json` 已删除;如果后续重新引入 npm 脚本,需要同时恢复并维护对应配置。 6. 提交前执行 `git diff --check`,确认没有格式问题。 工作区可能有未提交修改。不要使用 `git reset --hard` 或 `git checkout --` 覆盖现有文件。