assets-ai/CHANGELOG.md

62 lines
4.3 KiB
Markdown
Raw Permalink 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.

# 变更日志
## 2026-04-30
- [新增] 创建 README 文档
## 2026-04-29
- [新增] 设备管理列表支持鼠标拖拽自定义列宽(首次拖拽自动快照列宽,最小 60px支持自动换行
- [优化] 设备状态下拉框改为「腾讯使用/图灵使用/闲置」默认选项,支持自定义新增状态
- [优化] 数据库 106 台设备状态从「在用」迁移为「腾讯使用」
- [修复] 设备详情页/列表页「腾讯使用」状态徽章颜色显示为灰色的问题
- [优化] 列头居中显示,排序/筛选模式切换按钮与排序图标左右对称布局
- [修复] 表头 `overflow-hidden` 导致筛选下拉框被裁切的问题
- [优化] 筛选弹框宽度改为自适应(`w-fit min-w-48 max-w-80`
- [优化] 排序/筛选图标改为可点击,直接点击图标即可触发排序或筛选
- [修复] 列头排序图标使用 `<button>` 嵌套在列名 `<button>` 内导致 HTML 非法嵌套错误,改为 `<span>`
## 2026-04-28
- [部署] 生产环境 txjp 服务器更新 `break-all` 序列号换行修复,验证通过
- [修复] 资产详情页序列号等长字符串不会自动换行,给 Field 组件值列添加 `break-all` 样式
- [调整] 工单接口 `Ticket` 类型移除 `ticket_no` 字段,同步 issue-ai 工单号改造
- [修复] 生产环境设备详情页「故障历史」中工单链接和"查看全部工单记录"按钮错误使用 localhost:5176
- [修复] `AssetTicketHistory.tsx``ISSUE_URL` fallback 值从 `localhost:5176/tickets` 改为 `https://issue.tlyq.ai/tickets`
- [修复] 未登录时从 issue-ai 工单详情点击业务 IP → assets-ai 登录后错误跳转仪表盘。根因:跨端口 cookie 泄露(同 localhost 的不同端口共享 session cookieissue-ai JWT payload 用 `id` 字段而 assets-ai 用 `userId`middleware 放行后 layout.tsx 的 `redirect('/login')` 丢失了 redirect 参数
- `middleware.ts`:增加 JWT payload `userId` 检查,无效 cookie 清除后重定向(携带 redirect 参数)
- `layout.tsx`:从 `x-original-pathname` header 读取原路径,`redirect('/login')` 时携带 redirect 参数
- [修复] 资产详情页「故障历史」显示"会话已过期"。根因:`issue-client.ts` 缺少 API Key 只能转发 cookieissue-ai 侧 JWT 格式不兼容
- 配置本地测试环境 API Key 双向认证(`ISSUE_API_KEY` + `ALLOWED_API_KEYS`
- `issue-client.ts`fallback 默认值从 `127.0.0.1` 改为 `localhost`
- [文档] 更新 `CLAUDE.md`:补充 API Key 双向认证说明和本地 `.env.local` 配置示例
- [修复] 同一浏览器同时登录两个系统,任一退出后另一个也被退出。根因:两个系统共用 `session` cookie 名且同 `localhost`
- cookie 名改为 `session_assets`assets-ai`session_issue`issue-ai互不干扰
- 云端部署无需额外操作(域名不同天然隔离,但改名保持一致),用户重新登录即可
## 2026-04-27
- [新增] 资产核心 APICRUD + 分页 + 搜索 + 高级筛选)
- [新增] 资产列表页面(`/assets`),支持多选、筛选、排序
- [新增] 设备详情页面(`/assets/[id]`),全硬件配置分区卡片展示
- [新增] 新增/编辑设备页面
- [新增] 批量编辑页面(`/assets/batch-edit`),安全限制仅允许部分字段
- [新增] Excel 模板导入(`/assets/import`),按 SN 匹配新增/更新
- [新增] 设备导入脚本(`import-servers.ts`
- [新增] 仪表盘统计数据(`/api/stats`):总数/状态/类型/厂商/机房/保修预警
- [新增] 调用 issue.tlyq.ai API 获取设备历史工单,资产详情页展示历史工单卡片
## 2026-04-25
- [新增] 仪表盘页面(`/dashboard`),资产概览图表
## 2026-04-24
- [新增] 项目初始化,基于 Next.js 15.1 + SQLitestandalone 输出模式)
- [新增] 认证系统JWT 自实现 + API Key 双模式)
- [新增] 用户管理(`/settings/users`和角色权限系统admin/editor/viewer
- [新增] API Key 管理页面(`/settings/api-keys`),支持创建/删除 KeySHA-256 存储)
- [新增] 数据库初始化脚本init-db.ts预置角色和默认管理员账号
- [新增] Excel 导入模板(`服务器信息-issue.xlsx`
- [新增] Docker 部署配置(两阶段 alpine 构建)