Files
xiaotutongxue/frontend-pc/.agents/skills/git-commit/SKILL.md
T
lovife 87ece5a971 feat(frontend): 管理端改用 Gi Admin Pro 框架 + 腾讯云主题
前端此前只有本地实现、从未入库,本次首次纳入版本管理。

框架切换
  · 以 Gi Admin Pro(Vue3 + Vite + TS + Arco Design Vue + Pinia)为底
  · 剥离 14 个演示页面目录 / 121 个文件(demo 28、file 20、form 19、system 18…)
  · 依赖 dependencies 35 → 19,devDependencies 31 → 27
  · 保留框架核心:layout、Gi* 组件库、hooks、权限指令、错误页、登录页

主题:腾讯云 / TDesign 官方色板
  · 主色 #0052D9(腾讯蓝)、成功 #00A870、警告 #ED7B2F、危险 #E34D59
  · 页面底色 #f3f3f3、文字 rgba(0,0,0,90/60/40/26%)
  · 覆盖 Arco 底层色板 + 显式语义别名(primary/success/warning/danger/link/neutral)
  · 三个改了不生效也不报错的坑已记入注释:
      1) Arco 色值是逗号分隔 RGB 三元组,不是 #RRGGBB
      2) Arco 把色板定义在 body 而非 :root,必须写 `:root, body`
      3) setting.json 的 themeColor 会以内联样式写进 body,优先级高于样式表

对接后端(三处契约差异在 @/utils/http 统一适配)
  · 响应信封 {code,msg,data} → {code,success,message,data}
  · Token 头 token → Authorization: Bearer
  · 分页 {list,total} → 补一份 records,list 原样保留
  · 40101 → 登录页;登录密码 RSA 加密(公钥走 /auth/public-key,轮换无需重建前端)
  · 路由:后端只下发菜单键,前端在本地路由表上过滤(有哪些页面归代码,谁能看归后端)

已实现页面(浏览器实测通过)
  · 登录:RSA 加密 + 自适应验证码/租户码 + 账号锁定提示
  · 工作台:真实数据(组织 6 个 / 角色 1 个 / 权限 25 项)
  · 组织架构:三级树 + CRUD + 占用校验
  · 租户管理:开通租户 + 初始密码只显示一次的强确认
  · 待建页:未实现菜单显示所属里程碑
  · 权限菜单:学校管理员看不到「租户管理」

视觉资产按腾讯云主题重做
  · logo.svg(渐变圆角方 + 填)、favicon.svg(小尺寸做减法)、login-hero.svg(材料归集)
  · 登录页点阵纹理走主题变量,换主色自动跟随
  · 文案改为产品实际能力:自动改名 / 强制压缩 / 隐私保护

清理模板遗留(约 17MB + 三处外部依赖)
  · 百度统计脚本(上报到 gi-demo 作者的统计账号)
  · 用户菜单「项目地址」(跳转模板作者的 Gitee 仓库)
  · 两份 8.8MB mp3、388KB favicon.ico、57KB 模板插画、未引用字体与 loading.gif
  · 「个人中心」指向已删除的 /system/account(点了 404)
  · 头部头像在无 avatarUrl 时渲染成裂图 → 改为姓名首字兜底

后端修复
  · 新增 GET /auth/public-key(前端加密登录密码用)
  · DataSeeder.ancestor_path 生成错误:子节点本该是 /16/17/ 却写成 /17/
    该字段是「按院系统计」的索引,错了会漏人/多人且不报错 —— 改为从库里读父节点路径
  · seedDemoOrgs 曾放在租户作用域外 + admin 早退分支之后,导致启动失败 / 永不执行
  · 示范租户补一套三级组织树(1 学校 / 2 院系 / 3 班级),供界面演示
2026-09-28 20:49:55 +08:00

133 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: git-commit
description: 执行 git 提交的标准流程。用户明确要求 commit、提交代码、生成提交信息时使用。涵盖变更检查、Conventional Commits 提交信息、安全约束与提交流程。
---
# Git 提交
> **前置条件**:仅当用户**明确要求**提交时才执行;未要求时不得主动 commit / push。
## 第一步:收集变更状态
同时执行(不要串行等待):
```bash
git status
git diff
```
必要时补充 `git diff --staged`;需了解分支与远程关系时执行 `git status -sb`。
## 第二步:分析变更
- 覆盖**已暂存 + 未暂存 + 未跟踪**中与本次任务相关的文件
- 判断变更类型,映射到 Conventional Commits 的 `type`
- 提交信息聚焦 **why**(1–2 句完整句子),准确反映目的
- **不要**提交 `.env`、密钥、token、credentials 等敏感文件;若用户坚持,须明确警告
- 无相关变更时不执行 commit
## 第三步:提交信息格式(Conventional Commits)
```
<type>(<scope>): <subject>
<body>
```
### type(必选)
| type | 用途 |
|------|------|
| `feat` | 新功能 |
| `fix` | 缺陷修复 |
| `docs` | 文档 |
| `style` | 格式(不影响逻辑,如空格、分号) |
| `refactor` | 重构(非新功能、非修 bug) |
| `perf` | 性能优化 |
| `test` | 测试 |
| `build` | 构建系统或外部依赖 |
| `ci` | CI 配置 |
| `chore` | 其他杂项(不改 src/test) |
| `revert` | 回滚提交 |
### subject(必选)
- 使用**祈使句**,简明描述做了什么
- 不加句号;建议 50 字符以内
- 示例:`新增用户登录表单`、`修复表格分页重置问题`
### scope(可选)
- 括号内标明影响模块,如 `feat(auth)`、`fix(table)`
- 跨模块或难以界定时可省略
### body(可选)
- 说明**为什么**改、改了什么影响
- 与 subject 空一行
### 示例
```
fix(theme): 切换明暗模式时重新生成主题色阶
generate 依赖 isDark 生成色阶,切换后需重新写入 --primary-* 变量,
否则暗色模式下主色显示异常。
```
```
feat(user): 新增用户列表批量删除
```
## 第四步:执行提交(顺序)
```bash
git add <相关文件>
git commit -m "$(cat <<'EOF'
feat(user): 新增用户列表批量删除
补充说明变更原因与影响(可选)
EOF
)"
git status
```
PowerShell 环境可用:
```powershell
git commit -m "feat(user): 新增用户列表批量删除"
git commit -m "fix(theme): 切换明暗模式时重新生成主题色阶" -m "generate 依赖 isDark 生成色阶,切换后需重新写入 CSS 变量。"
```
## 安全约束(必须遵守)
| 禁止 | 说明 |
|------|------|
| `git config` 修改 | 不更改任何 git 配置 |
| `push --force` / `reset --hard` | 除非用户明确要求 |
| `--no-verify` / `--no-gpg-sign` | 除非用户明确要求 |
| 对 main/master force push | 须警告用户 |
| 无用户请求时 push | 不主动推送远程 |
### `--amend` 仅当全部满足
1. 用户明确要求 amend,**或** pre-commit hook 自动改文件需纳入本次提交
2. HEAD 为当前会话创建的 commit,且**未 push**
3. hook 拒绝时:**修复后新建 commit**,不要 amend
## 提交后
- `git status` 确认成功
- hook 失败:修复问题后**重新 commit**(新提交,非 amend)
- 将 commit hash / 摘要反馈给用户
- 用户未要求时**不要 push**
## 检查清单
- [ ] 用户已明确要求提交
- [ ] 已查看 status + diff
- [ ] 提交信息符合 Conventional Commits
- [ ] 未包含敏感文件
- [ ] 提交后 status 正常