98fe3a396a
fix(overview): 本周关键结果 / 异常事项·显示项目中文名替代 identifier
...
Build and Deploy / build-and-deploy (push) Successful in 1m1s
之前显示 aircore-sw-002 这种内部技术 ID 不易识别,改成 projectName
(如"RTC底软件框架"),跟其他列表风格保持一致。后端字段早已返回,仅
前端模板切换。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 16:12:59 +08:00
4a2ed8d414
feat(ui+perf): Editorial Data Console 重设计 + 接口性能 + ROI 权限锁
...
UI 重设计 (Editorial Data Console 风):
- 设计令牌系统: OKLCH 色彩 + Newsreader/Geist/JetBrains Mono 字体 + exp easing
- 全局表格基线 (.n-data-table 统一 editorial 风 + .table-shell 卡片容器)
- DataCard / Naive UI 主题对齐新 token (深墨青主色 + 暖琥珀强调)
- RoiDashboard: 3 KPI 卡片同字号 + chip 多色筛选 + section editorial 节奏
- ProjectRoiBoard: hero 卡 highlight + ytd-strip 节奏化 (10/13/15px 三层字号)
- ProjectList: 自适应卡片 + 产品线 NSelect 筛选 + 拆出独立"类型"列 + 文本链接操作
- RevenuePieChart 重设计: donut + 中心总额 + 底部水平图例 (替代外部 callout 截断)
- 全部页面 width:100% + clamp() 流体 padding,断点驱动 auto-fit 网格
- AppSidebar 项目子菜单按产品线分组 + 可折叠 + localStorage 持久化
接口性能优化 (N+1 → 批量 + Map 索引):
- /api/overview: 8.5s → 0.5s (17×) - 消除 3 处循环 SQL 查询
- /api/okr: 11.3s → 0.3s (37×) - getOKRByPeriod 一次性 inArray 批量
- ROI 三处时间窗 (aggregate/timeseries/events) launchedAt 截断对齐
ROI 权限锁:
- 全部 ROI 端点统一 admin (roiRoutes 全局 requireRole)
- 路由 /roi + /projects/:id/roi meta.roles=['admin']
- 侧边栏 ROI 入口 + 项目详情打标按钮/分类标签全部 v-if isAdmin
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 15:28:48 +08:00
5af612e3fd
feat(roi): ROI 动态规则引擎 v1 + 业务体系归属
...
后端:
- 事件流模型(project_cost_events / project_revenue_events)+ launchedAt 截断
- 3 大业务体系归属(airhubs/airflow/aircore) + 项目类型(hw/sw) + identifier 自动生成
- AI 三件套推荐(category + bizSystem + projectType)
- 营收 mock API + 外部对接规范 + 资产摊销 cron
- 5 个 migration(0003 ROI 引擎 / 0004 driver factors / 0005 biz system)
- 单测 11/11 过
前端:
- 项目级 ROI 看板:4 KPI 卡片 + 折线图(周/月/年)+ 成本/产出事件流并排
- 全公司决策罗盘:3 大 ROI 指标 + 业务线堆叠 + 分类筛选 chip
- 项目列表 + 侧边栏:按产品线分组(可折叠 + localStorage 持久化)
- Admin: ROI 策略配置 + 项目映射 + 未映射收容
数据:
- 23 项目全部 AI 自动分类 + 自动 identifier(airhubs-hw-001 这种)
- launchedAt 按各项目首次 commit 时间设置
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:20:22 +08:00
4fa69ca2bc
fix: 项目明细 OKR 任务描述过长撑破栅格布局
...
Build and Deploy / build-and-deploy (push) Successful in 1m8s
grid-template-columns 默认 1fr 的 min-content 下限会被超长不换行中文撑开,
改为 minmax(0,1fr) 让列可正常收缩;kr-name 改为 2 行 line-clamp,
避免单行省略把描述几乎全部隐藏。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 17:21:55 +08:00
512d3baca2
feat: 开发者可编辑项目、侧边栏项目列表优化、筛选器UI改进
...
Build and Deploy / build-and-deploy (push) Successful in 1m1s
- 新增 PATCH /api/projects/:id 开发者有权限可编辑项目
- 侧边栏项目列表改用项目API直接拉取,路由切换时自动刷新
- 项目筛选器和权限分配下拉框只显示项目名称,标签自动折叠
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:02:42 +08:00
17696f9049
perf: Nginx 开启 gzip 压缩和静态资源缓存,加速首次加载
...
Build and Deploy / build-and-deploy (push) Successful in 1m2s
- gzip 压缩 JS/CSS/JSON 等资源(676KB→226KB)
- /assets/ 静态文件设置 1 年缓存(文件名含 hash)
- index.html 设置 no-cache 确保更新及时
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:43:15 +08:00
feb305c454
feat(权限): 开发者也支持项目级权限,创建项目自动获得权限
...
Build and Deploy / build-and-deploy (push) Successful in 1m31s
- 开发者与观察者统一逻辑:未分配项目则无法查看数据
- 开发者创建项目时自动获得该项目的查看权限
- 管理员可在用户管理页面为开发者分配项目
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:33:01 +08:00
10ed4f090d
feat: 项目编辑、成员编辑、性能优化及UI改进
...
Build and Deploy / build-and-deploy (push) Successful in 1m2s
- 新增项目编辑功能(修改名称、标识)
- 团队成员页面增加编辑按钮(管理员可修改姓名、邮箱、角色)
- 项目详情接口性能优化:批量查询替代N+1,Git数据按仓库名过滤(8s→0.2s)
- 侧边栏和图表改为显示项目名称而非标识
- 同步日志按时间倒序排列
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:21:48 +08:00
4283824533
feat(权限): 观察者角色支持项目级查看权限
...
Build and Deploy / build-and-deploy (push) Successful in 1m37s
- 新增 user_project_permissions 表,管理观察者可查看的项目
- 管理员可在用户管理页面为观察者分配项目权限
- 所有数据接口(总览、项目、OKR、Git活动)按分配的项目过滤
- 未分配项目的观察者看到空数据
- 同步日志按时间倒序排列
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:33:11 +08:00
43f885e22a
feat: MySQL 远程数据库 + CI/CD 流水线 + K8s 部署配置
...
数据库迁移:
- SQLite → MySQL (mysql-8351f937d637-public.rds.volces.com)
- Schema 从 drizzle-orm/sqlite-core 改为 drizzle-orm/mysql-core
- 全量数据迁移完成(13 张表 525 条记录)
CI/CD 流水线:
- .gitea/workflows/deploy.yaml(airlabs 分支触发)
- 前后端分别构建镜像推到火山引擎 CR internal 命名空间
- 自动部署到内部 K3s 集群
K8s 配置:
- backend-deployment.yaml(Bun 3200 端口 + MySQL 私网连接)
- web-deployment.yaml(Nginx 80 端口 + SPA fallback)
- backend-ingress.yaml(devperf-api.airlabs.art + TLS)
- web-ingress.yaml(devperf.airlabs.art + TLS)
- cert-manager-issuer.yaml(Let's Encrypt)
其他:
- 前端 Dockerfile 支持 VITE_API_BASE_URL 构建参数
- 后端 Dockerfile 改为直接运行源码(兼容 mysql2)
- 侧边栏/全局样式优化 + Git 图表修复
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 13:48:54 +08:00
58fe2b1ea8
feat: OKR看板重设计 + 周切换 + 恢复选日期 + 项目列表优化
...
- OKR看板:按项目分组大卡片 + 目标/任务折叠展开 + 统计栏 + 按项目筛选
- KR状态文本标签(已取消/已暂停/已延期)替代emoji
- 本周关键结果支持前后周切换(‹ 本周 ›)+ 日期范围显示
- 恢复暂停任务时必须选择新截止日期
- 项目列表仓库名只显示短名不显示完整URL
- 项目详情标题合并到进度条卡片内
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 15:07:37 +08:00
f88e2d9ab0
feat: KR 状态管理(延期/暂停/恢复/取消)+ 操作日志 + 异常事项面板
...
- KR 新增 status 字段(active/paused/cancelled)+ kr_logs 操作日志表
- 每个 KR 支持延期(选新日期+原因)、暂停、恢复、取消操作
- 延期过的 KR 显示蓝色「已延期」标签
- 暂停/取消的 KR 不计入目标进度
- 操作日志弹窗:时间线展示所有变更记录
- 团队总览「异常事项」面板:展示逾期/暂停/取消的 KR 及原因
- 本周关键结果面板正确显示取消/暂停状态
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:15:55 +08:00
690766528a
feat: 团队总览改版 + OKR 创建简化 + 时区修复
...
- 总览页6面板:项目OKR进度/KR状态/本周关键结果/代码活动/历史逾期/最近提交
- 去掉PR合入时间和产品线进度(重复),新增历史逾期未完成和最近提交动态
- OKR创建简化:目标只需标题+负责人,时间自动从任务推算
- KR创建简化:只需任务内容+起止时间,去掉目标值/单位/权重
- 修复时区问题:日期选择器UTC偏移导致少1天
- 今天截止显示橙色标签,已逾期红色,进行中蓝色
- DataCard支持自定义header slot
- 目标时间范围自动取任务最早开始~最晚截止
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:45:08 +08:00
44464dd334
feat: DevPerf Dashboard 研发人效看板 v1.0
...
- 后端:Bun + Hono + Drizzle ORM + SQLite
- 前端:Vue 3 + Naive UI + ECharts
- 项目管理:创建项目 + 绑定 Git 仓库
- OKR 系统:目标/关键结果 CRUD + 进度追踪
- Git 同步:Gitea API 自动同步 commit/PR + 作者关联
- 数据看板:项目 OKR 进度 + KR 状态分布 + 代码活动
- 权限体系:admin/manager/developer/viewer 四级
- Docker 部署:docker-compose + nginx
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 17:57:14 +08:00