Releases: funnywwh/prjflow
v0.5.8
v0.5.8 发布说明
发布日期: 2026年4月28日
版本概述
v0.5.8 为合并发布版本,整合了 v0.5.7 和 v0.5.8 两个阶段的更新内容。版本重点包括代码重构优化、Bug 查询能力增强、多个 UI 问题修复、Docker 部署支持、官网配置调整以及项目品牌与文档更新,整体提升了系统的可维护性、查询效率和部署便利性。
主要更新
代码重构优化 🔧
版本选择器组件化
- 提取
VersionSelectWithCreate组件- 创建可复用的版本选择器组件,支持单选、多选和创建新版本
- 在 Bug 新增、编辑、状态更新等场景中统一使用
- 减少重复代码,统一交互和样式表现
版本号输入与验证增强
- 增强版本选择器验证机制
- 增加版本号输入校验
- 优化表单验证触发时机
- 确保创建新版本时,用户输入的版本号能够被正确校验和提交
Bug 管理功能优化 🐛
Bug 查询状态支持多选
-
查询条件中的“状态”改为多选下拉框
- 支持同时选择多个状态进行组合筛选
- 可快速查询“激活 + 已解决”“已解决 + 已关闭”等组合结果
- 支持清空选择,交互方式与其他筛选项保持一致
-
前后端筛选链路同步增强
- 前端将多选状态统一转换为逗号分隔参数提交
- 后端支持解析多状态筛选条件,并使用
IN查询返回结果 - 保持对原有单状态查询方式的兼容
-
联动与上下文保持优化
- 支持从路由参数恢复状态筛选条件
- 统计卡片点击后的筛选逻辑同步适配多选结构
- 相邻 Bug 导航继续沿用当前筛选条件,保持列表上下文一致
Bug 指派与版本交互修复
-
修复 Bug 指派界面问题
- 修复状态下拉框被遮挡问题
- 修复指派给下拉框不显示成员的问题
-
修复版本选择器表单验证问题
- 选择版本后可以正确触发表单校验
- 修复新增 Bug 等界面已选择版本仍提示错误的问题
问题修复 🎨
弹窗层级问题修复
-
修复需求详情转任务/转 Bug 弹窗被遮挡
- 为确认弹窗统一提高
z-index - 确保确认对话框显示在详情弹窗之上
- 为确认弹窗统一提高
-
修复 Bug 详情转需求弹窗被遮挡
- 提升确认弹窗层级
- 避免详情弹窗与确认框相互遮挡
版本状态相关修复
-
修复版本状态显示错误
- 修复版本详情页和版本列表页的状态下拉使用错误状态值的问题
- 统一使用正确的状态值:
wait、normal、fail、terminate
-
修复 Bug 状态更新时创建新版本状态错误
- 创建新版本时状态从错误值修正为
wait - 保证前后端状态值一致
- 创建新版本时状态从错误值修正为
-
提供版本状态数据修复工具
- 新增修复脚本,用于处理数据库中历史遗留的
draft状态版本数据
- 新增修复脚本,用于处理数据库中历史遗留的
配置与环境变量修复
- 修复
DATABASE_DSN环境变量绑定问题- 显式绑定环境变量
- 支持环境变量下划线到配置键名的映射
- 确保 Docker 和服务部署时环境变量可以正确覆盖配置文件
功能增强 ✨
工作报告体验优化
- 添加自动加载工作汇总功能
- 自动加载工作汇总数据
- 减少手动操作,提升填写效率
Docker 部署支持
- 新增 Docker 支持
- 添加
Dockerfile - 添加
docker-compose.yml - 添加启动脚本和 Docker Compose 安装脚本
- 简化服务部署流程
- 添加
项目更新 📝
品牌与文档更新
-
项目品牌更新
- 项目名称统一为“项目流(prjflow)”
- 添加项目 Logo
- 同步更新文档和构建相关内容
-
官网与站点配置调整
- 将 README 中的官网地址更新为
https://funnywwh.github.io/prjflow/ - 删除旧的
CNAME自定义域名配置 - 简化静态站点维护方式
- 将 README 中的官网地址更新为
-
官网与演示内容优化
- 更新项目首页展示内容
- 添加 GitHub 统计数据获取能力
- 添加演示数据生成工具和演示数据库文件
-
权限命名优化
- 修复权限代码命名,统一使用
project-management
- 修复权限代码命名,统一使用
技术细节
代码变更
-
新增组件
frontend/src/components/VersionSelectWithCreate.vue- 可复用版本选择器组件
-
前端主要调整
frontend/src/views/bug/Bug.vue- Bug 查询状态改为多选下拉,使用版本选择器组件,优化筛选逻辑frontend/src/views/bug/BugDetail.vue- 使用版本选择器组件,优化版本与状态交互frontend/src/views/requirement/Requirement.vue- 修复弹窗遮挡问题frontend/src/views/version/Version.vue- 修复版本状态显示frontend/src/views/version/VersionDetail.vue- 修复版本状态显示
-
后端主要调整
backend/internal/api/bug.go- 支持 Bug 多状态筛选,修复创建版本状态问题backend/internal/config/config.go- 修复环境变量绑定问题backend/tests/unit/bug_test.go- 增加多状态筛选测试用例
-
新增工具
backend/cmd/fix-version-status/main.go- 版本状态修复脚本
-
文档与站点配置
README.md- 更新官网链接CNAME- 删除旧域名配置
部署相关
- 新增文件
Dockerfile- Docker 镜像构建文件docker-compose.yml- Docker Compose 配置scripts/docker-start.sh- Docker 启动脚本scripts/install-docker-compose-v2.sh- Docker Compose 安装脚本
数据库变更
- 无数据库结构变更
- 无必需的数据迁移
- 数据修复说明:如果数据库中存在状态为
draft的版本记录,建议执行修复脚本:cd backend go run cmd/fix-version-status/main.go
API 变更
- 无破坏性 API 变更
- 增强型兼容更新
GET /api/bugs- 查询参数
status现支持多状态组合,例如:status=active,resolved - 原有单状态参数继续兼容
升级说明
升级步骤
- 更新代码:拉取最新代码
- 前端更新:重新构建前端
cd frontend npm run build - 后端更新:重新编译后端
cd backend go build -o server cmd/server/main.go
Docker 部署
docker-compose up -d或使用启动脚本:
./scripts/docker-start.sh兼容性
- 向后兼容:完全兼容 v0.5.7,从 v0.5.6 直接升级也无需数据迁移
- API 兼容:所有现有 API 保持兼容
- 数据兼容:无需数据库结构迁移
注意事项
- 如果数据库中存在版本状态为
draft的历史数据,建议运行状态修复脚本 - 如果有文档、书签或外部入口仍指向旧官网地址
prjflow.com,建议同步更新 - 新增 Docker 支持后,推荐容器化部署的环境使用新的部署方式
- Bug 状态筛选已支持多选,相关页面仍兼容原有单状态路由参数
统计信息
- 提交数量:29 个提交(合并 v0.5.7 与 v0.5.8 说明)
- 主要功能
- 代码重构优化(2 项)
- Bug 管理优化(5 项)
- 问题修复(6 项)
- 功能增强(2 项)
- 项目更新(4 项)
功能改进
- Bug 管理:状态筛选从单选升级为多选,查询更灵活
- 代码结构:抽取通用版本选择组件,减少重复代码
- UI 体验:修复多个弹窗遮挡和状态显示问题
- 部署能力:新增 Docker 支持,提升部署便利性
- 配置与站点:修复环境变量绑定,更新官网地址并清理旧域名配置
版本号: v0.5.8
发布日期: 2026年4月28日
兼容性: 向后兼容 v0.5.6 / v0.5.7
建议升级: ✅ 是(包含 v0.5.7 与 v0.5.8 的完整优化内容)
v0.5.6
v0.5.6 发布说明
发布日期: 2025年12月20日
版本概述
v0.5.6 版本主要聚焦于Bug管理功能优化、界面层级问题修复、工作报告功能增强以及日志导出功能改进。通过修复多个UI层级问题、优化Bug查询功能、增强工作报告统计,提升了系统的用户体验和功能完整性。
主要更新
Bug管理功能优化 🐛
Bug列表和查询增强
-
添加Bug编号列
- 在Bug列表和详情界面显示编号
- 编号列宽度固定为60px,优化显示效果
- 便于快速识别和定位Bug
-
优化Bug查询功能
- 添加更新日期筛选功能
- 指派给支持项目成员和所有用户
- 指派给我功能不受项目限制
- 优化查询表单布局:字段标签和输入同一行
- 优化搜索栏布局:查询和重置按钮靠右对齐
Bug统计修复
- 修复工作台Bug统计
- 使用Model确保过滤软删除记录
- 确保统计数据的准确性
界面层级问题修复 🎨
弹窗层级优化
-
修复Bug详情界面图片预览窗口被遮挡
- 提高图片预览和附件预览的z-index到2300
- 确保预览窗口始终显示在最上层
-
修复Bug管理页模态框层级问题
- 修复指派窗口被详情窗口遮挡的问题
- 统一设置z-index避免弹窗相互遮挡
-
修复详情界面弹窗层级
- 统一设置z-index,确保弹窗显示顺序正确
- 提升用户体验
工作报告功能增强 📊
统计功能优化
- 添加解决的Bug统计
- 在工作报告中显示已解决的Bug数量
- 增强工作报告的完整性
- 便于工作成果展示
日志导出功能改进 📝
导出功能优化
-
支持导出完整内容为PNG
- 修复日志导出功能,支持导出完整内容(不仅仅是视口可见部分)
- 添加html2canvas依赖包
- 优化导出图片质量
-
修复写日志路由问题
- 修复需要先点击"工作台"再点击"写日志"才能显示"新增日报"的问题
- 添加路由监听器,确保从任何页面点击"写日志"都能自动打开新增日报对话框
- 提升用户体验
系统稳定性提升 🔧
数据库优化
- 修复数据库死锁问题
- 使用事务和FirstOrCreate防止并发死锁
- 提升系统并发处理能力
- 确保数据一致性
审计日志增强
- 修复微信登录审计日志
- 记录IP和请求路径
- 增强安全审计能力
- 便于问题追踪和排查
技术细节
数据库变更
- 无数据库结构变更
API变更
- 无破坏性API变更
- 工作报告API增加Bug统计字段(向后兼容)
依赖更新
- 前端依赖
- 新增
html2canvas@^1.4.1(用于图片导出功能)
- 新增
涉及文件
后端
backend/internal/api/report.go- 工作报告功能增强,添加Bug统计backend/internal/api/bug.go- Bug查询功能优化backend/internal/api/audit_log.go- 审计日志增强backend/internal/model/*.go- 数据库死锁修复
前端
frontend/src/views/bug/Bug.vue- Bug列表和查询功能优化frontend/src/components/MarkdownEditor.vue- 日志导出功能改进frontend/src/views/report/Report.vue- 工作报告功能增强,路由问题修复frontend/src/views/dashboard/Dashboard.vue- Bug统计修复frontend/package.json- 添加html2canvas依赖
升级说明
升级步骤
- 更新代码:拉取最新代码
- 前端更新:需要重新构建前端
cd frontend npm install # 安装新的依赖包 npm run build
- 后端更新:需要重新编译后端
cd backend go build -o server cmd/server/main.go
兼容性
- 向后兼容:完全兼容 v0.5.5
- API兼容:所有API保持向后兼容
- 数据兼容:无需数据迁移
注意事项
- 本次更新主要优化Bug管理功能和修复UI问题,建议所有用户升级
- 新增html2canvas依赖,前端需要重新安装依赖并构建
- Bug查询功能增强,支持更灵活的筛选条件
- 工作报告功能增强,显示更多统计信息
统计信息
- 提交数量:13个提交
- 主要功能:
- Bug管理功能优化(5项)
- 界面层级问题修复(3项)
- 工作报告功能增强(1项)
- 日志导出功能改进(2项)
- 系统稳定性提升(2项)
功能改进
- Bug管理:添加编号列、优化查询功能、修复统计问题
- UI优化:修复3个弹窗层级问题
- 工作报告:添加Bug统计功能
- 日志导出:支持导出完整内容为PNG
- 系统稳定性:修复数据库死锁、增强审计日志
版本号: v0.5.6
发布日期: 2025年12月20日
兼容性: 向后兼容 v0.5.5
建议升级: ✅ 是(Bug管理优化和UI问题修复)
v0.5.5
v0.5.5 发布说明
发布日期: 2025年12月10日
版本概述
v0.5.5 版本主要聚焦于代码质量提升和配置模板通用化,通过代码审查修复了测试失败问题,清理了调试代码,并优化了配置模板的通用性。同时,前端组件进行了重构优化,提升了代码可维护性。
主要更新
代码质量提升 🔧
测试修复
-
修复 TestAuthHandler_RefreshToken 测试
- 调整错误消息断言,使其能够正确接受两种可能的错误消息
- 提升测试的健壮性和准确性
- 确保刷新Token功能的测试覆盖完整
-
修复 TestBugHandler_CreateBug 测试
- 添加缺失的必填字段
version_ids - 创建测试版本数据,确保测试用例完整
- 修复Bug创建功能的测试覆盖
- 添加缺失的必填字段
代码清理
- 移除调试代码
- 清理
bug.go中的 28 处fmt.Printf调试语句 - 清理
permission.go中的 5 处fmt.Printf调试语句 - 清理
department.go中的 2 处fmt.Printf调试语句 - 移除未使用的
fmt导入 - 提升代码整洁度和生产环境性能
- 清理
配置模板通用化 📝
配置和文档优化
-
配置文件通用化
- 将
config.yaml中的具体域名替换为通用占位符 - 提高配置模板的可复用性和通用性
- 便于不同环境部署和配置管理
- 将
-
文档更新
- 更新相关文档,使用占位符替代具体域名示例
- 统一文档格式,提高可读性
- 涉及文档:
- 微信回调流程说明
- 微信登录配置指南
- 微信scope参数错误排查指南
- 配置微信redirect_uri环境变量
前端组件优化 🎨
附件管理组件封装
-
新增 AttachmentList 组件
- 封装附件列表显示逻辑
- 支持附件上传、下载、删除操作
- 统一附件列表的显示样式和交互
-
新增 AttachmentPreview 组件
- 封装附件预览功能
- 支持图片、PDF、文本等多种文件类型预览
- 提供统一的附件预览体验
详情组件重构
-
代码复用优化
- 重构
BugDetailContent.vue,使用封装的附件组件 - 重构
RequirementDetailContent.vue,减少代码重复 - 重构
TaskDetailContent.vue,提升可维护性 - 重构
VersionDetailContent.vue,统一组件结构 - 重构
Version.vue,优化版本列表页面
- 重构
-
代码减少
- 通过组件封装,减少代码重复
- 提升代码可维护性和可读性
- 统一附件管理功能的实现方式
后端API增强 🔌
附件管理API优化
- 附件API功能增强
- 优化附件关联和查询逻辑
- 提升附件管理的性能和稳定性
- 完善附件权限检查机制
技术细节
数据库变更
- 无数据库结构变更
API变更
- 无破坏性API变更
- 附件管理API功能增强(向后兼容)
涉及文件
后端
backend/internal/api/bug.go- 清理调试代码,优化Bug管理backend/internal/api/permission.go- 清理调试代码,移除未使用导入backend/internal/api/department.go- 清理调试代码backend/internal/api/attachment.go- 附件API功能增强backend/tests/unit/auth_test.go- 修复刷新Token测试backend/tests/unit/bug_test.go- 修复Bug创建测试backend/config.yaml- 配置模板通用化backend/cmd/server/main.go- 代码优化
前端
frontend/src/components/AttachmentList.vue- 附件列表组件(新增)frontend/src/components/AttachmentPreview.vue- 附件预览组件(新增)frontend/src/components/BugDetailContent.vue- Bug详情组件重构frontend/src/components/RequirementDetailContent.vue- 需求详情组件重构frontend/src/components/TaskDetailContent.vue- 任务详情组件重构frontend/src/components/VersionDetailContent.vue- 版本详情组件重构frontend/src/views/version/Version.vue- 版本列表页面优化frontend/src/api/attachment.ts- 附件API接口增强
文档
docs/微信回调流程说明.md- 更新域名占位符docs/微信登录配置指南.md- 更新域名占位符docs/微信scope参数错误排查指南.md- 更新域名占位符docs/配置微信redirect_uri环境变量.md- 更新域名占位符
升级说明
升级步骤
- 更新代码:拉取最新代码
- 前端更新:需要重新构建前端
cd frontend npm install # 如果需要更新依赖 npm run build
- 后端更新:需要重新编译后端
cd backend go build -o server cmd/server/main.go - 配置更新:检查
config.yaml中的域名配置,确保使用正确的域名或占位符
兼容性
- 向后兼容:完全兼容 v0.5.4
- API兼容:所有API保持向后兼容
- 数据兼容:无需数据迁移
注意事项
- 本次更新主要提升代码质量,建议所有用户升级
- 配置模板已通用化,部署时请检查配置文件中的域名设置
- 附件管理组件已重构,功能保持不变,但代码结构更清晰
统计信息
- 修改文件数:21个文件
- 新增代码:744行
- 删除代码:593行
- 净增代码:151行
代码质量提升
- 清理调试代码:35处
fmt.Printf语句 - 修复测试:2个测试用例
- 组件封装:2个新组件(AttachmentList、AttachmentPreview)
- 代码重构:5个详情组件优化
版本号: v0.5.5
发布日期: 2025年12月10日
兼容性: 向后兼容 v0.5.4
建议升级: ✅ 是(代码质量提升和配置优化)
v0.5.4
v0.5.4 发布说明
发布日期: 2025年12月09日
版本概述
v0.5.4 版本主要聚焦于附件管理功能的完善和认证系统的安全优化,为需求、任务、Bug、版本等核心模块添加了完整的附件管理功能,并优化了JWT认证机制的安全性和并发处理能力。
主要更新
新功能 ✨
附件管理功能增强
-
需求附件管理
- 支持在需求详情页面上传、下载、删除附件
- 附件列表显示文件名称、大小、上传时间
- 支持附件预览和下载
-
任务附件管理
- 支持在任务详情页面上传、下载、删除附件
- 附件列表显示文件名称、大小、上传时间
- 支持附件预览和下载
-
Bug附件管理
- 修复并完善Bug附件管理功能
- 支持上传、下载、删除和彻底删除文件
- 附件列表显示文件名称、大小、上传时间
-
版本附件管理
- 支持在版本详情页面上传、下载、删除附件
- 附件列表显示文件名称、大小、上传时间
- 支持附件预览和下载
版本管理优化
- 版本详情组件封装
- 将版本详情内容封装为独立组件
VersionDetailContent.vue - 减少代码重复,提高可维护性
- 统一版本详情页面的显示逻辑
- 将版本详情内容封装为独立组件
安全优化 🔐
JWT认证系统增强
-
Token类型验证
- 在JWT Claims中添加
TokenType字段,区分 access token 和 refresh token - 刷新Token接口验证token类型,确保只能使用 refresh token 刷新
- 防止使用 access token 进行刷新操作,提升安全性
- 在JWT Claims中添加
-
刷新Token并发处理优化
- 优化刷新token的并发处理机制
- 所有并发请求共享同一个刷新操作,避免重复刷新
- 确保多个请求同时收到401错误时,只发送一次刷新请求
- 所有等待的请求都能获取到新的token并自动重试
-
自动刷新机制优化
- 修复token失效时未自动调用刷新的问题
- 支持业务错误码401的自动刷新处理
- 优化错误处理逻辑,避免重复显示错误消息
- 防止重复调用logout函数
代码优化 🛠️
后端代码重构
- 微信配置读取逻辑提取
- 将微信配置读取逻辑提取为私有方法
loadWeChatConfig() - 减少代码重复,提高可维护性
- 统一配置读取逻辑,便于后续维护
- 将微信配置读取逻辑提取为私有方法
前端代码优化
-
错误处理优化
- 提取跳转登录逻辑为
redirectToLogin()函数 - 消除重复的跳转代码
- 添加防重复跳转机制,避免并发请求时重复显示错误消息
- 提取跳转登录逻辑为
-
TypeScript类型修复
- 修复
request.ts中 refreshTokenPromise 的类型定义 - 修复
VersionDetailContent.vue中未使用的导入 - 修复
VersionDetail.vue中未使用的导入
- 修复
测试增强 🧪
-
JWT单元测试
- 新增
backend/pkg/auth/jwt_test.go测试文件 - 添加Token类型验证测试
- 添加RefreshToken和AccessToken差异测试
- 添加Token解析和验证测试
- 新增
-
认证功能测试
- 在
auth_test.go中添加使用access token刷新被拒绝的测试用例 - 完善刷新Token功能的测试覆盖
- 在
技术细节
数据库变更
- 无数据库结构变更(附件管理使用现有的
attachments表和关联表)
API变更
- 无破坏性API变更
- 刷新Token接口增加token类型验证(向后兼容)
涉及文件
后端
backend/pkg/auth/jwt.go- JWT生成和解析逻辑,添加Token类型backend/pkg/auth/jwt_test.go- JWT单元测试(新增)backend/internal/api/auth.go- 认证API,提取微信配置读取逻辑backend/internal/api/attachment.go- 附件API增强backend/internal/api/bug.go- Bug附件管理backend/internal/api/requirement.go- 需求附件管理backend/internal/api/task.go- 任务附件管理backend/internal/api/version.go- 版本附件管理backend/tests/unit/auth_test.go- 认证功能测试增强
前端
frontend/src/utils/request.ts- 请求拦截器,优化刷新token和错误处理frontend/src/stores/auth.ts- 认证状态管理,添加防重复logoutfrontend/src/api/auth.ts- 认证API接口frontend/src/components/AttachmentUpload.vue- 附件上传组件增强frontend/src/components/VersionDetailContent.vue- 版本详情内容组件(新增)frontend/src/components/BugDetailContent.vue- Bug详情内容组件,添加附件管理frontend/src/components/RequirementDetailContent.vue- 需求详情内容组件,添加附件管理frontend/src/components/TaskDetailContent.vue- 任务详情内容组件,添加附件管理frontend/src/views/auth/Login.vue- 登录页面优化frontend/src/views/version/VersionDetail.vue- 版本详情页面重构frontend/src/views/bug/BugDetail.vue- Bug详情页面,添加附件管理frontend/src/views/requirement/RequirementDetail.vue- 需求详情页面,添加附件管理frontend/src/views/task/TaskDetail.vue- 任务详情页面,添加附件管理
升级说明
升级步骤
- 更新代码:拉取最新代码
- 前端更新:需要重新构建前端
cd frontend npm install # 如果需要更新依赖 npm run build
- 后端更新:需要重新编译后端
cd backend go build -o server cmd/server/main.go - 数据库更新:无需数据库迁移(GORM AutoMigrate会自动处理)
兼容性
- 向后兼容:完全兼容 v0.5.3
- API兼容:所有API保持向后兼容
- 数据兼容:无需数据迁移
注意事项
- 本次更新优化了认证系统的安全性,建议所有用户升级
- 附件管理功能已全面支持,建议在升级后测试附件上传和下载功能
- 刷新Token机制已优化,用户体验将得到提升
统计信息
- 修改文件数:37个文件
- 新增代码:2325行
- 删除代码:484行
- 净增代码:1841行
版本号: v0.5.4
发布日期: 2025年12月09日
兼容性: 向后兼容 v0.5.3
建议升级: ✅ 是(包含安全优化和重要功能增强)
v0.5.3
v0.5.3 发布说明
发布日期: 2025年12月08日
主要更新
新功能 ✨
Bug管理增强
-
Bug所属版本功能
- 支持Bug与版本的多对多关系
- 创建Bug时必选至少一个所属版本
- 列表和详情页面显示版本号
- 支持按版本筛选Bug
-
Bug列表列自定义功能
- 支持弹窗勾选显示/隐藏列
- 支持拖拽调整列顺序
- 列设置保存到后端数据库,支持用户个性化配置
问题修复 🐛
-
修复Bug列设置保存失败问题
- 使用原生SQL插入确保visible字段(包括false)正确保存
- 改进事务处理逻辑,确保数据一致性
-
修复测试工程师创建版本权限问题
- 测试工程师在创建Bug时,如果选择"创建新版本",会先调用版本创建API
- 版本创建API需要
project:update权限,但测试工程师角色缺少该权限 - 已为测试工程师角色添加
project:update权限,使其能够创建版本 - 修复后,测试工程师可以在创建Bug时正常创建新版本
-
修复详情弹窗状态下拉框被遮挡问题
- 需求、任务、Bug详情弹窗中的"状态"下拉框菜单被弹窗标题区域遮挡
- 已为所有详情弹窗中的状态下拉框添加
z-index: 2100,确保下拉菜单显示在弹窗标题之上 - 修复后,状态下拉框菜单可以正常显示和操作
技术细节
数据库变更
- 新增
version_bugs关联表(Bug与版本多对多关系) - 新增
user_table_column_settings表(用户列设置)
涉及文件
backend/internal/api/bug.go- Bug API增强backend/internal/model/bug.go- Bug模型更新backend/internal/utils/migrate.go- 测试工程师角色权限更新frontend/src/views/bug/Bug.vue- Bug列表页面增强frontend/src/views/requirement/Requirement.vue- 需求详情弹窗状态下拉框修复frontend/src/views/task/Task.vue- 任务详情弹窗状态下拉框修复
升级说明
- 前端更新:需要重新构建前端
- 后端更新:需要更新后端代码
- 数据库更新:需要运行数据库迁移(GORM AutoMigrate会自动处理)
版本号: v0.5.3
发布日期: 2025年12月08日
兼容性: 向后兼容 v0.5.2
v0.5.2
v0.5.2 发布说明
发布日期: 2025年12月06日
主要更新
问题修复 🐛
UI修复
- 修复Modal中工作日期选择器被遮挡的问题
- 修复Bug状态更新弹窗中工作日期选择器弹出层被遮挡的问题
- 修复Bug创建/编辑弹窗中工作日期选择器弹出层被遮挡的问题
- 修复需求编辑弹窗中工作日期选择器弹出层被遮挡的问题
- 修复任务创建/编辑弹窗中工作日期选择器弹出层被遮挡的问题
- 修复任务进度更新弹窗中工作日期选择器弹出层被遮挡的问题
- 为所有Modal中的DatePicker组件添加了
getPopupContainer和popupStyle属性,确保弹出层正确显示在Modal之上
技术细节
修复方法
- 为Modal中的DatePicker组件添加
:getPopupContainer="getPopupContainer"属性 - 设置
:popupStyle="{ zIndex: 2100 }"确保弹出层z-index高于Modal(z-index: 2000) - 在相关组件中添加
getPopupContainer辅助函数
涉及文件
frontend/src/views/bug/Bug.vuefrontend/src/views/bug/BugDetail.vuefrontend/src/views/requirement/Requirement.vuefrontend/src/views/task/Task.vuefrontend/src/views/task/TaskDetail.vue
升级说明
- 前端更新:需要重新构建前端
- 后端更新:无需更新
- 数据库更新:无需更新
版本号: v0.5.2
发布日期: 2025年12月06日
兼容性: 向后兼容 v0.5.1
v0.5.1
v0.5.1 发布说明
发布日期: 2025年12月06日
主要更新
审计日志功能 🔍
- 新增系统审计日志,记录安全相关的系统管理操作
- 记录登录/登出、用户管理、权限管理、部门管理、微信设置等操作
- 提供审计日志查询页面,支持筛选、搜索、分页
- 记录操作时间、用户、IP地址、请求路径、操作结果等信息
权限管理 🔐
- 新增"审计日志权限"(audit:read)
- 在系统管理菜单下添加"审计日志"菜单项
记录范围
已记录:登录/登出、用户管理、权限管理、部门管理、微信设置
不记录:项目相关操作、业务数据操作(已有业务历史记录)、查询操作
升级说明
- 需要数据库迁移:新增
audit_logs表 - 前端更新:需要重新构建前端
- 后端更新:需要重新编译后端
- 权限更新:系统会自动创建
audit:read权限,需为管理员角色分配该权限
版本号: v0.5.1
发布日期: 2025年12月06日
兼容性: 向后兼容 v0.5.0
v0.5.0
v0.5.0 发布说明
发布日期: 2025年12月05日
版本概述
v0.5.0 版本主要包含需求和任务指派功能、Bug指派功能增强、个人工作台完善、权限控制增强、实体转换功能、详情组件封装、微信登录优化等多项功能更新,提升了系统的易用性和代码复用性。
主要更新
1. 需求和任务指派功能 🎯
- 指派接口:新增需求和任务指派接口,支持指派时添加备注和修改状态
- 自动状态修改:需求(draft/reviewing → active)、任务(wait → doing)
- 操作历史:完整记录指派人变更和状态变更
2. Bug指派功能增强 🐛
- 备注和状态:指派时可添加备注和修改状态
- 操作历史:备注和状态变更记录到历史记录
3. 个人工作台完善 🏠
- 个性化配置:支持卡片和Tab的显示/隐藏和排序
- 资源分配列表:展示工时统计和最近记录
- 工作报告列表:展示日报和周报
4. 权限控制增强 🔐
- 按钮级权限:添加
v-permission指令和PermissionButton组件 - 页面权限:在主要页面应用权限控制
5. 实体转换功能 🔄
- 相互转换:需求、任务、Bug之间支持相互转换
- 自动关联:转换后自动关联原实体
6. 详情组件封装 📋
- 组件复用:项目、需求、任务详情组件封装,减少代码重复
- 统一体验:保持一致的UI风格和交互体验
7. 负责人选择优化 👥
- 项目成员选择:需求、任务编辑使用项目成员选择组件
- 显示角色:下拉框显示成员角色信息
8. 资源分配列表 🕐
- 周期筛选:支持按本周、本月、全部筛选
- 多维度筛选:支持按用户、项目、日期范围筛选
9. 微信登录优化 🔐
- 用户名格式:使用
{OpenID后8位}_{YYYYMMDD}格式 - 权限控制:只有拥有
user:create权限的用户才能添加用户 - 安全性:微信登录不再自动创建用户
主要修复
- ✅ 修复Bug统计页面交互,支持快速跳转到筛选后的列表
- ✅ 修复需求、任务搜索条件的状态选项,与API定义保持一致
- ✅ 修复资源分配列表查询问题,优化权限过滤逻辑
- ✅ 优化详情弹窗标题显示格式
- ✅ 修复微信登录用户名生成逻辑,使用OpenID后8位+日期格式
- ✅ 新增需求和任务指派功能,支持备注和状态修改
升级说明
从 v0.4.13 升级
- 无需数据库迁移:本次更新不涉及数据库结构变更
- 前端更新:需要重新构建前端,更新相关组件
- 后端更新:需要重新编译后端,更新API处理逻辑
注意事项
- 需求和任务现在支持专门的指派功能,与Bug指派功能保持一致
- 指派时可手动选择状态,不选择则自动修改状态
- 指派时可添加备注信息,备注会记录到历史记录中
- 个人工作台支持个性化配置,可根据需要显示/隐藏卡片
- 权限控制已全面应用到各个页面,确保操作安全性
- 微信登录不再自动创建用户,用户必须先由管理员添加才能登录
版本号: v0.5.0
发布日期: 2025年12月05日
兼容性: 向后兼容 v0.4.13
v0.4.13
v0.4.13 发布说明
发布日期: 2025年12月02日
版本概述
v0.4.13 版本主要包含Bug功能优化、日志管理增强、Markdown预览改进等多项功能更新和问题修复。
主要更新
1. Bug功能优化 🐛
Bug解决自动指派
- 自动指派逻辑:工程师点击"解决"后,自动指派给Bug创建者
Bug编辑功能修复
- 修复清空关联需求/模块不生效的问题:现在可以正确清空并保存
- 修复字段更新冲突:解决了在更新实际工时时,关联需求、关联模块等字段的修改被覆盖的问题
- 完善历史记录显示:所有字段修改都正确记录,显示格式优化
界面优化
- 修复模态框层级问题:解决对话框不再被详情模态框遮挡(z-index优化)
- 修复下拉框显示问题:解决对话框中解决方案和版本下拉框不显示或被遮挡的问题
- 修复版本状态显示:版本编辑界面状态字段正确显示后端状态值(wait/normal/fail/terminate)
- 修复任务进度界面层级:更新任务进度对话框不再被任务详情遮挡
2. 日志管理功能 📋
日志输出到文件
- 文件日志支持:日志自动输出到文件,支持ZIP压缩
- 自动轮转:日志文件达到100MB时自动轮转,保留7天历史
- 前端控制:管理员可在前端控制日志级别和下载日志文件
3. Markdown预览增强 📸
图片预览功能
- 点击预览:Markdown中的图片支持点击预览,弹出全屏预览窗口
- 滚动缩放:在预览窗口中,鼠标滚轮可以放大/缩小图片(50%-500%)
- 预览标签页支持:编辑模式的预览标签页和只读模式都支持图片点击预览
4. 工作报告功能优化 📝
工作报告收集增强
- 统计完成的任务:工作报告收集功能现在会统计在指定日期范围内完成的任务(即使没有资源分配记录)
工作报告详情查看
- 点击列表项查看详情:日报和周报列表支持点击行查看完整详情,包括工作内容、审批状态、审批记录等信息
- 详情显示与预览一致:详情弹窗中的内容使用MarkdownEditor组件显示,与编辑时的预览完全一致,支持图片预览、代码高亮等功能
- 列表项点击效果:表格行支持鼠标悬停效果,显示指针样式和背景色变化
修复的问题
- ✅ 修复编辑Bug时清空关联需求/模块不生效的问题
- ✅ 修复更新实际工时时,关联需求/模块的修改被覆盖的问题
- ✅ 修复历史记录中某些字段变更未被记录的问题
- ✅ 修复解决对话框被详情模态框遮挡的问题
- ✅ 修复解决对话框下拉框不显示或被遮挡的问题(解决方案、版本下拉框)
- ✅ 修复TypeScript类型错误(requirement_id和module_id的空字符串比较)
- ✅ 修复版本编辑界面状态显示不正确的问题(状态值类型统一)
- ✅ 修复工作报告收集功能未统计完成任务的问题
- ✅ 修复任务详情遮挡更新任务进度界面的问题
升级说明
从 v0.4.12 升级
- 无需数据库迁移:本次更新不涉及数据库结构变更
- 前端更新:需要重新构建前端,更新相关组件
- 后端更新:需要重新编译后端,更新相关API处理逻辑
注意事项
- 历史记录显示格式已优化,旧的历史记录会以新格式显示
- 清空关联需求/模块的功能现在可以正常工作
- 所有字段的修改都会正确记录到历史记录中
版本号: v0.4.13
发布日期: 2025年12月02日
兼容性: 向后兼容 v0.4.12
v0.4.12
v0.4.12 发布说明
发布日期: 2025年12月01日
版本概述
v0.4.12 版本合并了 v0.4.10 和 v0.4.11 的所有更新,并新增了数据库自动备份功能。本次更新包括用户体验优化、安全修复和重要的数据安全保障功能。同时优化了首次登录修改密码界面,显示用户名和昵称信息,提升用户体验。
主要更新
1. 数据库自动备份功能 💾(新增)
功能特点
- 自动定时备份:支持设置每天固定时间自动备份数据库
- 手动触发备份:支持通过前端界面手动触发备份
- 数据一致性保障:使用 SQLite 的
VACUUM INTO命令确保备份时数据一致(不支持时自动回退到文件复制) - 自动压缩:备份文件自动压缩为
.gz格式,节省存储空间 - 自动清理:自动清理7天前的旧备份,避免占用过多存储空间
- 备份验证:自动验证备份文件完整性和有效性
- 权限控制:需要
system:settings权限才能访问备份设置
技术实现
- 使用
VACUUM INTO命令创建一致的数据库快照,支持在线备份 - 使用
time.AfterFunc精确调度,支持到秒级精度 - 使用互斥锁防止同时执行多个备份
- 配置变更后自动重新计算下次执行时间
- 备份文件完整性验证(SQLite 文件头检查)
- 详细的日志记录(开始时间、结束时间、耗时、压缩比例等)
涉及的模块
- ✅
backend/internal/utils/backup.go- 备份函数 - ✅
backend/internal/utils/scheduler.go- 定时任务调度器 - ✅
backend/internal/api/system.go- 系统设置API - ✅
frontend/src/views/system/BackupSettings.vue- 备份设置页面
2. 项目弹窗详情内容完善 🎯
完善了项目列表弹窗详情的内容,使其与非弹窗详情页面完全一致:
- 添加统计概览(总任务数、总Bug数、总需求数、项目成员数)
- 添加任务统计、Bug统计、需求统计,支持点击跳转
- 添加完整的历史记录时间线
- 添加项目成员列表
- 补充顶部操作按钮(需求管理、任务管理、Bug管理、看板、甘特图等)
3. 任务弹窗详情内容完善 📋
添加了依赖任务部分,支持点击跳转到依赖任务详情。
4. 版本弹窗详情样式优化 🎨
优化了关联需求和关联Bug的链接样式,统一使用 a-button type="link"。
5. 前端构建配置优化 🛠️
优化了代码分割策略,将大型库分离到独立的 chunk,减少主 chunk 大小,提升加载性能。
6. 修复登录密码修改检测绕过漏洞 🔒
修复内容
- 后端增强:在
GetUserInfoAPI 中添加is_first_login字段,基于LoginCount == 1 && Password != ""判断 - 前端状态管理:在 auth store 中添加
isFirstLogin状态 - 路由守卫增强:添加首次登录检查,强制跳转到修改密码页面
- 状态同步:修改密码成功后,清除
isFirstLogin状态,并更新后端LoginCount为 2
修复效果
- ✅ 首次登录用户必须完成密码修改才能访问系统其他功能
- ✅ 无法通过修改URL、刷新页面等方式跳过修改密码检测
- ✅ 微信登录用户不受影响,不会被误判
7. 修复其他相关问题 🔧
- 修复修改密码后状态不同步问题
- 修复
GetUserInfo判断逻辑不准确问题(微信用户不会被误判) - 修复路由守卫时序问题
- 修复 AppHeader 中修改密码未清除状态问题
8. 初始化修改密码界面优化 🎨
优化了首次登录修改密码界面的用户体验:
- 显示用户信息:在修改密码表单上方显示用户名和昵称
- 信息确认:用户可以在设置密码前确认当前账号信息
- 自动加载:如果用户信息未加载,自动从后端获取并显示
- 样式优化:使用描述列表组件展示用户信息,界面更清晰美观
更新内容
新增文件
后端:
backend/internal/utils/backup.go- 备份函数backend/internal/utils/scheduler.go- 定时任务调度器backend/internal/api/system.go- 系统设置API
前端:
frontend/src/api/system.ts- 备份配置API接口frontend/src/views/system/BackupSettings.vue- 备份设置页面
修改文件
后端:
backend/internal/utils/backup.go- 备份函数,支持 VACUUM INTO 和文件复制回退,添加备份验证backend/internal/utils/scheduler.go- 定时任务调度器,精确调度和配置重载backend/internal/utils/migrate.go- 添加系统设置权限backend/cmd/server/main.go- 启动定时任务、修改备份调用、添加路由backend/internal/api/system.go- 系统设置API,备份配置和手动触发backend/internal/api/auth.go- GetUserInfo 添加 is_first_login 字段,ChangePassword 更新 LoginCount
前端:
frontend/src/views/system/BackupSettings.vue- 备份设置页面,支持配置和手动触发frontend/src/api/system.ts- 备份配置API接口frontend/src/views/project/Project.vue- 完善弹窗详情内容frontend/src/views/task/Task.vue- 添加依赖任务部分frontend/src/views/version/Version.vue- 优化链接样式frontend/vite.config.ts- 优化代码分割策略frontend/src/types/user.ts- User 接口添加 is_first_login 字段frontend/src/stores/auth.ts- 添加 isFirstLogin 状态frontend/src/router/index.ts- 路由守卫增强,添加备份设置路由frontend/src/views/auth/*.vue- 登录和修改密码相关页面状态同步,修改密码界面显示用户信息frontend/src/components/AppHeader.vue- 修改密码状态清除frontend/src/config/menu.ts- 添加备份设置菜单项
升级指南
从 v0.4.9 升级
-
代码更新:
git pull origin main
-
后端编译:
cd backend go build -o server cmd/server/main.go -
前端构建:
cd frontend npm install npm run build -
数据库迁移:系统会自动迁移数据库,添加新的权限
-
配置备份:
- 访问系统管理 → 备份设置
- 配置备份时间和启用状态
- 建议在系统低峰期执行备份(如凌晨2点)
注意事项
- 此版本合并了 v0.4.10 和 v0.4.11 的所有更新
- 数据库自动备份功能需要配置备份时间和启用状态
- 备份文件保存在数据库文件所在目录的
backups文件夹中 - 备份文件自动压缩为
.gz格式,保留最近7天的备份 - 首次登录用户必须完成密码修改才能访问系统其他功能
- 微信登录用户不受影响,不会被强制修改密码
安全建议
- 建议用户设置强密码(包含大小写字母和数字)
- 建议定期检查备份文件是否正常生成
- 建议将备份文件同步到其他存储位置(如云存储)
- 建议在系统低峰期执行备份
下载地址: GitHub Releases