Skip to content

Releases: funnywwh/prjflow

v0.5.8

28 Apr 09:21

Choose a tag to compare

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 详情转需求弹窗被遮挡

    • 提升确认弹窗层级
    • 避免详情弹窗与确认框相互遮挡

版本状态相关修复

  • 修复版本状态显示错误

    • 修复版本详情页和版本列表页的状态下拉使用错误状态值的问题
    • 统一使用正确的状态值:waitnormalfailterminate
  • 修复 Bug 状态更新时创建新版本状态错误

    • 创建新版本时状态从错误值修正为 wait
    • 保证前后端状态值一致
  • 提供版本状态数据修复工具

    • 新增修复脚本,用于处理数据库中历史遗留的 draft 状态版本数据

配置与环境变量修复

  • 修复 DATABASE_DSN 环境变量绑定问题
    • 显式绑定环境变量
    • 支持环境变量下划线到配置键名的映射
    • 确保 Docker 和服务部署时环境变量可以正确覆盖配置文件

功能增强 ✨

工作报告体验优化

  • 添加自动加载工作汇总功能
    • 自动加载工作汇总数据
    • 减少手动操作,提升填写效率

Docker 部署支持

  • 新增 Docker 支持
    • 添加 Dockerfile
    • 添加 docker-compose.yml
    • 添加启动脚本和 Docker Compose 安装脚本
    • 简化服务部署流程

项目更新 📝

品牌与文档更新

  • 项目品牌更新

    • 项目名称统一为“项目流(prjflow)”
    • 添加项目 Logo
    • 同步更新文档和构建相关内容
  • 官网与站点配置调整

    • 将 README 中的官网地址更新为 https://funnywwh.github.io/prjflow/
    • 删除旧的 CNAME 自定义域名配置
    • 简化静态站点维护方式
  • 官网与演示内容优化

    • 更新项目首页展示内容
    • 添加 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
    • 原有单状态参数继续兼容

升级说明

升级步骤

  1. 更新代码:拉取最新代码
  2. 前端更新:重新构建前端
    cd frontend
    npm run build
  3. 后端更新:重新编译后端
    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

20 Dec 01:11

Choose a tag to compare

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

升级说明

升级步骤

  1. 更新代码:拉取最新代码
  2. 前端更新:需要重新构建前端
    cd frontend
    npm install  # 安装新的依赖包
    npm run build
  3. 后端更新:需要重新编译后端
    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

20 Dec 01:09

Choose a tag to compare

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 - 更新域名占位符

升级说明

升级步骤

  1. 更新代码:拉取最新代码
  2. 前端更新:需要重新构建前端
    cd frontend
    npm install  # 如果需要更新依赖
    npm run build
  3. 后端更新:需要重新编译后端
    cd backend
    go build -o server cmd/server/main.go
  4. 配置更新:检查 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

09 Dec 09:25

Choose a tag to compare

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 进行刷新操作,提升安全性
  • 刷新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 - 认证状态管理,添加防重复logout
  • frontend/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 - 任务详情页面,添加附件管理

升级说明

升级步骤

  1. 更新代码:拉取最新代码
  2. 前端更新:需要重新构建前端
    cd frontend
    npm install  # 如果需要更新依赖
    npm run build
  3. 后端更新:需要重新编译后端
    cd backend
    go build -o server cmd/server/main.go
  4. 数据库更新:无需数据库迁移(GORM AutoMigrate会自动处理)

兼容性

  • 向后兼容:完全兼容 v0.5.3
  • API兼容:所有API保持向后兼容
  • 数据兼容:无需数据迁移

注意事项

  • 本次更新优化了认证系统的安全性,建议所有用户升级
  • 附件管理功能已全面支持,建议在升级后测试附件上传和下载功能
  • 刷新Token机制已优化,用户体验将得到提升

统计信息

  • 修改文件数:37个文件
  • 新增代码:2325行
  • 删除代码:484行
  • 净增代码:1841行

版本号: v0.5.4
发布日期: 2025年12月09日
兼容性: 向后兼容 v0.5.3
建议升级: ✅ 是(包含安全优化和重要功能增强)

v0.5.3

08 Dec 10:30

Choose a tag to compare

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

08 Dec 09:33

Choose a tag to compare

v0.5.2 发布说明

发布日期: 2025年12月06日

主要更新

问题修复 🐛

UI修复

  • 修复Modal中工作日期选择器被遮挡的问题
    • 修复Bug状态更新弹窗中工作日期选择器弹出层被遮挡的问题
    • 修复Bug创建/编辑弹窗中工作日期选择器弹出层被遮挡的问题
    • 修复需求编辑弹窗中工作日期选择器弹出层被遮挡的问题
    • 修复任务创建/编辑弹窗中工作日期选择器弹出层被遮挡的问题
    • 修复任务进度更新弹窗中工作日期选择器弹出层被遮挡的问题
    • 为所有Modal中的DatePicker组件添加了 getPopupContainerpopupStyle 属性,确保弹出层正确显示在Modal之上

技术细节

修复方法

  • 为Modal中的DatePicker组件添加 :getPopupContainer="getPopupContainer" 属性
  • 设置 :popupStyle="{ zIndex: 2100 }" 确保弹出层z-index高于Modal(z-index: 2000)
  • 在相关组件中添加 getPopupContainer 辅助函数

涉及文件

  • frontend/src/views/bug/Bug.vue
  • frontend/src/views/bug/BugDetail.vue
  • frontend/src/views/requirement/Requirement.vue
  • frontend/src/views/task/Task.vue
  • frontend/src/views/task/TaskDetail.vue

升级说明

  • 前端更新:需要重新构建前端
  • 后端更新:无需更新
  • 数据库更新:无需更新

版本号: v0.5.2
发布日期: 2025年12月06日
兼容性: 向后兼容 v0.5.1

v0.5.1

08 Dec 09:32

Choose a tag to compare

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

06 Dec 04:55

Choose a tag to compare

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 权限的用户才能添加用户
  • 安全性:微信登录不再自动创建用户

主要修复

  1. ✅ 修复Bug统计页面交互,支持快速跳转到筛选后的列表
  2. ✅ 修复需求、任务搜索条件的状态选项,与API定义保持一致
  3. ✅ 修复资源分配列表查询问题,优化权限过滤逻辑
  4. ✅ 优化详情弹窗标题显示格式
  5. ✅ 修复微信登录用户名生成逻辑,使用OpenID后8位+日期格式
  6. ✅ 新增需求和任务指派功能,支持备注和状态修改

升级说明

从 v0.4.13 升级

  1. 无需数据库迁移:本次更新不涉及数据库结构变更
  2. 前端更新:需要重新构建前端,更新相关组件
  3. 后端更新:需要重新编译后端,更新API处理逻辑

注意事项

  • 需求和任务现在支持专门的指派功能,与Bug指派功能保持一致
  • 指派时可手动选择状态,不选择则自动修改状态
  • 指派时可添加备注信息,备注会记录到历史记录中
  • 个人工作台支持个性化配置,可根据需要显示/隐藏卡片
  • 权限控制已全面应用到各个页面,确保操作安全性
  • 微信登录不再自动创建用户,用户必须先由管理员添加才能登录

版本号: v0.5.0
发布日期: 2025年12月05日
兼容性: 向后兼容 v0.4.13

v0.4.13

03 Dec 10:37

Choose a tag to compare

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组件显示,与编辑时的预览完全一致,支持图片预览、代码高亮等功能
  • 列表项点击效果:表格行支持鼠标悬停效果,显示指针样式和背景色变化

修复的问题

  1. ✅ 修复编辑Bug时清空关联需求/模块不生效的问题
  2. ✅ 修复更新实际工时时,关联需求/模块的修改被覆盖的问题
  3. ✅ 修复历史记录中某些字段变更未被记录的问题
  4. ✅ 修复解决对话框被详情模态框遮挡的问题
  5. ✅ 修复解决对话框下拉框不显示或被遮挡的问题(解决方案、版本下拉框)
  6. ✅ 修复TypeScript类型错误(requirement_id和module_id的空字符串比较)
  7. ✅ 修复版本编辑界面状态显示不正确的问题(状态值类型统一)
  8. ✅ 修复工作报告收集功能未统计完成任务的问题
  9. ✅ 修复任务详情遮挡更新任务进度界面的问题

升级说明

从 v0.4.12 升级

  1. 无需数据库迁移:本次更新不涉及数据库结构变更
  2. 前端更新:需要重新构建前端,更新相关组件
  3. 后端更新:需要重新编译后端,更新相关API处理逻辑

注意事项

  • 历史记录显示格式已优化,旧的历史记录会以新格式显示
  • 清空关联需求/模块的功能现在可以正常工作
  • 所有字段的修改都会正确记录到历史记录中

版本号: v0.4.13
发布日期: 2025年12月02日
兼容性: 向后兼容 v0.4.12

v0.4.12

01 Dec 11:13

Choose a tag to compare

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. 修复登录密码修改检测绕过漏洞 🔒

修复内容

  • 后端增强:在 GetUserInfo API 中添加 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 升级

  1. 代码更新

    git pull origin main
  2. 后端编译

    cd backend
    go build -o server cmd/server/main.go
  3. 前端构建

    cd frontend
    npm install
    npm run build
  4. 数据库迁移:系统会自动迁移数据库,添加新的权限

  5. 配置备份

    • 访问系统管理 → 备份设置
    • 配置备份时间和启用状态
    • 建议在系统低峰期执行备份(如凌晨2点)

注意事项

  • 此版本合并了 v0.4.10 和 v0.4.11 的所有更新
  • 数据库自动备份功能需要配置备份时间和启用状态
  • 备份文件保存在数据库文件所在目录的 backups 文件夹中
  • 备份文件自动压缩为 .gz 格式,保留最近7天的备份
  • 首次登录用户必须完成密码修改才能访问系统其他功能
  • 微信登录用户不受影响,不会被强制修改密码

安全建议

  • 建议用户设置强密码(包含大小写字母和数字)
  • 建议定期检查备份文件是否正常生成
  • 建议将备份文件同步到其他存储位置(如云存储)
  • 建议在系统低峰期执行备份

下载地址: GitHub Releases