Skip to content

chore(release): 同步 dev 到 main - #212

Merged
Palind-Rome merged 12 commits into
mainfrom
dev
Sep 1, 2026
Merged

Palind-Rome merged 12 commits into
mainfrom
dev

Conversation

@Palind-Rome

@Palind-Rome Palind-Rome commented Sep 1, 2026 •

Copy link
Copy Markdown
Owner

发布内容

将当前 dev 分支已完成并通过审查的改动同步至 main。

本次主要包含:

合并前以 GitHub required checks 与分支保护规则为准。

Summary by CodeRabbit

  • 新功能
    • 支持查看经费申请的审核历史,并按时间倒序展示审核结果、审核人、时间及意见。
    • 被驳回的经费申请支持编辑后重新提交,提交后恢复待审核状态并保留历史记录。
    • 新增经费申请类型:活动经费、采购和报销。
    • 申请人不能审核自己的申请。
  • 界面优化
    • 认证页面内容改为在完整视口中垂直居中显示。

wendaining and others added 12 commits August 31, 2026 15:57
- 新增自审拦截:申请人不能审批自己的经费申请(403)
- 新增驳回后重新提交:POST /api/budget/applications/{id}/resubmit
- 新增审核历史查询:GET /api/budget/applications/{id}/reviews
- 前端增加重新提交按钮+对话框、审核历史时间线展示
- 新增 ResubmitBudgetApplicationRequest schema
- 新增 BudgetApprovalFlowTests 测试

Closes #118
- req.Amount (double?) 与 decimal 类型不匹配,改用显式转换
- req.Type 为 string? 而非 enum,改用 NullIfBlank + NormalizeApplicationType
- BudgetManagement.vue 通过 Prettier 格式化
CI openapi-generator 将 ResubmitBudgetApplicationRequest.type 生成为
non-nullable TypeEnum 而非 string?,现通过 Enum.IsDefined 检测客户端
是否传入了 type 字段。
补齐审核历史权限、重提幂等与可空类型处理,并使用隔离 SQLite 关系型测试覆盖自审和驳回重提状态流转。
将 nullable 移入 BudgetApplicationType schema,避免 OpenAPI 3.0 中 allOf 引用不接受 null,并补充显式 null 的回归测试。
区分省略字段与显式 null,允许重新提交时清空关联活动和明细,并刷新新的提交时间。
为重提接口的错误状态统一补充 ApiError JSON schema,并增加契约回归测试。
…workflow

feat(budget): 优化经费申请审批流,增加自审拦截、驳回重提与审核历史
认证容器改为占满视口高度,并使用对称上下留白垂直居中文字和表单面板。
验证认证容器使用完整视口高度、垂直居中和对称上下留白,防止布局回归。
…enter

fix(auth): 垂直居中登录注册页面内容
@Palind-Rome
Palind-Rome merged commit be4b130 into main Sep 1, 2026
12 of 13 checks passed
@coderabbitai

coderabbitai Bot commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: ea7a7f0a-dc03-449c-86bf-84b2aca8e96e

📥 Commits

Reviewing files that changed from the base of the PR and between bda0843 and 8480b7f.

📒 Files selected for processing (17)
  • api/openapi.yaml
  • backend.Tests/BudgetApprovalFlowTests.cs
  • backend.Tests/ClubHub.Api.Tests.csproj
  • backend.Tests/OpenApiRestContractTests.cs
  • backend.Tests/RedisAuthIdempotencyContractTests.cs
  • backend/Controllers/BudgetController.cs
  • backend/Models/BudgetApplicationType.cs
  • backend/Models/ResubmitBudgetApplicationRequest.cs
  • backend/Validation/GeneratedJsonRequiredMembers.cs
  • backend/Validation/ResubmitBudgetApplicationRequestPresence.cs
  • frontend/src/api/apis/DefaultApi.ts
  • frontend/src/api/models/BudgetApplicationType.ts
  • frontend/src/api/models/ResubmitBudgetApplicationRequest.ts
  • frontend/src/api/models/index.ts
  • frontend/src/authLayout.test.ts
  • frontend/src/views/AuthFlow.vue
  • frontend/src/views/BudgetManagement.vue

Walkthrough

新增预算审核历史查询和驳回申请重新提交功能。后端、OpenAPI 契约、TypeScript API 客户端、预算管理页面和集成测试同步更新。认证页面改为完整视口高度布局。

Changes

预算申请审核闭环

Layer / File(s) Summary
预算接口与请求契约
api/openapi.yaml, backend/Models/*, backend/Validation/*
新增审核历史和重新提交端点。新增申请类型枚举、可选字段请求模型和字段提供状态跟踪。
预算审核后端流程
backend/Controllers/BudgetController.cs
新增审核记录查询和驳回申请重新提交逻辑。重新提交后状态恢复为 pending,并清空当前审核信息。申请人不能审批自己的申请。
前端 API 与预算页面
frontend/src/api/apis/DefaultApi.ts, frontend/src/api/models/*, frontend/src/views/BudgetManagement.vue
新增 TypeScript 模型和 API 方法。预算页面新增重新提交表单、权限控制和审核历史时间线。
预算流程测试与测试数据库
backend.Tests/BudgetApprovalFlowTests.cs, backend.Tests/ClubHub.Api.Tests.csproj, backend.Tests/OpenApiRestContractTests.cs, backend.Tests/RedisAuthIdempotencyContractTests.cs
使用 SQLite 覆盖认证、权限、字段更新、审核记录保留、状态校验、错误响应和幂等性契约。

认证页面布局

Layer / File(s) Summary
认证页面垂直布局
frontend/src/views/AuthFlow.vue, frontend/src/authLayout.test.ts
.auth-shell 使用 min-height: 100vh、垂直居中和 padding-block: 24px。新增测试验证样式规则。

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant BudgetManagementVue
  participant DefaultApi
  participant BudgetController
  participant ClubHubDbContext
  BudgetManagementVue->>DefaultApi: 查询审核历史或提交重新提交请求
  DefaultApi->>BudgetController: GET reviews 或 POST resubmit
  BudgetController->>ClubHubDbContext: 查询审核记录或更新预算申请
  ClubHubDbContext-->>BudgetController: 返回数据
  BudgetController-->>DefaultApi: 返回审核记录或预算申请
  DefaultApi-->>BudgetManagementVue: 更新页面状态
Loading

Suggested reviewers: aphrody-dy

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants