|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|