refactor(product-library): 深化拆分,抽离筛选栏/批量操作栏/空状态 #993

Closed
xiaoxia wants to merge 3 commits from refactor/product-library-deepen into develop
Owner

变更内容

ProductLibrary 拆分深化:

新增组件

  • ProductFilterBar (119行): 6 个筛选器(搜索/状态/时间/时长/项目/复核) + 结果计数
  • ProductBatchBar (85行): 批量操作栏(全选/下载/发布/删除/取消)
  • ProductEmptyState (92行): 四种空状态展示(loading/404/error/empty)

缩减情况

  • 主文件:329 → 176 行(-47%)
  • 仅保留 Hook 组装与整体布局

验证

  • 纯重构,无逻辑变更

自动生成 PR

## 变更内容 ProductLibrary 拆分深化: ### 新增组件 - **ProductFilterBar** (119行): 6 个筛选器(搜索/状态/时间/时长/项目/复核) + 结果计数 - **ProductBatchBar** (85行): 批量操作栏(全选/下载/发布/删除/取消) - **ProductEmptyState** (92行): 四种空状态展示(loading/404/error/empty) ### 缩减情况 - 主文件:329 → 176 行(-47%) - 仅保留 Hook 组装与整体布局 ### 验证 - 纯重构,无逻辑变更 --- _自动生成 PR_
xiaoxia added 1 commit 2026-07-27 00:43:54 +08:00
refactor(product-library): 深化 ProductLibrary 拆分,抽离筛选栏/批量操作栏/空状态
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 19s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m13s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m10s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m18s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 49s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m54s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 56s
AI Code Review / AI Code Review (pull_request) Successful in 1m39s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 49s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 7m15s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 28s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
29932c6f54
- 抽 ProductFilterBar 组件: 6 个筛选器 + 结果计数
- 抽 ProductBatchBar 组件: 批量操作栏(全选/下载/发布/删除)
- 抽 ProductEmptyState 组件: 加载/404/错误/空状态四种展示
- 主文件 329→176 行 (-47%),仅保留 Hook 组装与整体布局

🚀 预览环境已部署

项目 详情
PR号 #993
预览链接 https://pr-993.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #993 | | 预览链接 | [https://pr-993.preview.xiaoxiajianji.com](https://pr-993.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-07-27 08:39:51 +08:00
style: prettier format fix
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 15s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m16s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m17s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m1s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 42s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 37s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m42s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 54s
AI Code Review / AI Code Review (pull_request) Successful in 1m43s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 50s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m36s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 15m21s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 39s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
12eca4f08a
auto-approve-bot approved these changes 2026-07-27 09:01:34 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-27 09:01:34 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

代码审查结果 - PR #993

⚠️ 问题(0个需要修改)

💡 建议(3个可选)

  1. ProductEmptyState.tsx 组件职责与复用性

    • 该组件同时处理“全屏状态”(Loading/Error/404)和“内联状态”(Empty),导致组件结构不一致(部分返回包含 xx-products-page 外层容器,部分不包含),且 type="empty" 时硬编码了“去生成”的按钮逻辑。建议将全屏状态和空状态拆分,或将按钮操作通过 Props 传入,以提高组件的复用性和逻辑清晰度。
  2. ProductFilterBar.tsx 硬编码配置

    • 筛选栏的 options(如状态、时间、时长等)直接硬编码在组件内部。如果后续需要支持国际化(i18n)或配置化管理,修改成本较高。建议将这些静态配置提取到 constants.ts 文件中统一管理。
  3. ProductFilterBar.tsx 性能优化

    • 组件内部在每次渲染时都会重新创建 options 数组(例如 [{ value: "all", label: "全部状态" }, ...])。虽然数据量小影响不大,但为了避免子组件不必要的重渲染,建议使用 useMemo 缓存这些数组,或将其移至组件外部。

格式代码检查通过 | 逻辑审查通过 | ⚠️ 建议关注性能


🤖 由 AI 代码审查机器人自动生成 | 2026-07-27 01:02:05 | 模型:

## 代码审查结果 - PR #993 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(3个可选) 1. **ProductEmptyState.tsx 组件职责与复用性**: - 该组件同时处理“全屏状态”(Loading/Error/404)和“内联状态”(Empty),导致组件结构不一致(部分返回包含 `xx-products-page` 外层容器,部分不包含),且 `type="empty"` 时硬编码了“去生成”的按钮逻辑。建议将全屏状态和空状态拆分,或将按钮操作通过 Props 传入,以提高组件的复用性和逻辑清晰度。 2. **ProductFilterBar.tsx 硬编码配置**: - 筛选栏的 `options`(如状态、时间、时长等)直接硬编码在组件内部。如果后续需要支持国际化(i18n)或配置化管理,修改成本较高。建议将这些静态配置提取到 `constants.ts` 文件中统一管理。 3. **ProductFilterBar.tsx 性能优化**: - 组件内部在每次渲染时都会重新创建 `options` 数组(例如 `[{ value: "all", label: "全部状态" }, ...]`)。虽然数据量小影响不大,但为了避免子组件不必要的重渲染,建议使用 `useMemo` 缓存这些数组,或将其移至组件外部。 --- ✅ 格式代码检查通过 | ✅ 逻辑审查通过 | ⚠️ 建议关注性能 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-27 01:02:05 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
Collaborator

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
xiaoxia added 1 commit 2026-07-27 12:34:20 +08:00
Merge branch 'develop' into refactor/product-library-deepen
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 26s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 53s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m35s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m7s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 24s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 28s
AI Code Review / AI Code Review (pull_request) Successful in 37s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m11s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m10s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m30s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 17s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m36s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 9m45s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 28s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
f7453ec477
xiaoxia closed this pull request 2026-07-27 15:26:19 +08:00

🗑️ 预览环境已清理

PR #993 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #993 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 26s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 53s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m35s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m7s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 24s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 28s
AI Code Review / AI Code Review (pull_request) Successful in 37s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m11s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m10s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m30s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 17s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m36s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 9m45s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 28s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.