LinkDesk/openspec/changes/align-my-task-layout-to-shot/design.md

2.8 KiB
Raw Blame History

Context

此變更旨在修改「我的任務」(My Tasks) 頁面的佈局,使其更接近 Shot Task 頁面的設計。目前 My Tasks 頁面使用專案任務頁面的佈局,但用戶希望它能更像 Shot Task 頁面,以提供更好的視覺一致性和使用體驗。

現有系統已經具備:

  • 完整的 My Tasks 功能(使用 project task page layout
  • Shot Task 頁面的佈局設計
  • DataTable 元件
  • Tailwind CSS 和 shadcn-vue 元件庫

Goals / Non-Goals

Goals:

  • 將 My Tasks 頁面的 header 區域改為 Shot Task 風格
  • 調整資料表格的列配置與 Shot Task 頁面一致
  • 保持現有的篩選、排序、分頁功能
  • 確保視覺層級與 Shot Task 頁面一致

Non-Goals:

  • 不會修改 Shot Task 頁面本身
  • 不會新增或移除功能(僅改變佈局)
  • 不會修改 API 端點

Decisions

1. 佈局策略:完整採用 Shot Task 風格 vs 混合風格

Decision: 主要採用 Shot Task 風格,保留 My Tasks 特有的跨專案篩選功能

Rationale:

  • 用戶明確要求接近 Shot Task 佈局
  • Shot Task 佈局已驗證且用戶熟悉
  • My Tasks 的跨專案特性需要在頂部保留專案篩選器

Alternative considered: 完全複製 Shot Task 佈局

  • 這個方法會失去 My Tasks 的特色(跨專案視圖)

2. Header 設計

Decision: 使用 Shot Task 的 header 結構,但加上專案篩選下拉選單

Rationale:

  • Shot Task header 包含標題、篩選器、操作按鈕
  • My Tasks 需要顯示所有專案的任務,專案篩選是關鍵功能

3. 資料表格欄位

Decision: 參考 Shot Task 的欄位配置,但加入「專案」欄位

Rationale:

  • Shot Task 欄位適合任務管理
  • My Tasks 是跨專案視圖,需要顯示任務所屬專案

Risks:

  • [Risk] 新舊佈局差異造成用戶困惑 → Mitigation: 保持整體結構相似,只調整細節
  • [Risk] 共用元件修改影響 Shot Task → Mitigation: 使用條件式 props 或建立變體元件

Migration Plan

此變更為前端佈局修改,不需要資料遷移。部署步驟:

  1. 修改 MyTasksView 元件

    • 更新 header 區域樣式
    • 調整 DataTable 欄位配置
    • 確保與 Shot Task 風格一致
  2. 測試

    • 驗證 My Tasks 頁面顯示正確
    • 確認篩選、排序功能正常
    • 檢查與 Shot Task 頁面的視覺一致性
  3. 部署

    • 前端部署後自動生效
    • 可隨時回滾到舊版佈局

Open Questions

  • Q1: 是否需要建立可重用的佈局元件供 Shot Task 和 My Tasks 共用?

    • 建議: 先直接修改,後續重構時再提取共用元件
  • Q2: My Tasks 是否需要顯示與 Shot Task 相同的其他資訊(如進度條)?

    • 建議: 先保持基本一致,後續根據需求擴展