# VideoDetailView.vue 更新摘要 ## 更新日期 2026-04-27 ## 更新內容 ### 1. 跳回按鈕優化 - **原版**: 純文字按鈕,樣式簡單 - **新版**: - 使用 Tailwind CSS 樣式化按鈕 - `bg-gray-800 hover:bg-gray-700 rounded-lg transition` - 清晰的文字:"返回納管檔案列表" - 位於頁面左側,標題位於右側 ### 2. Probe 消息展示優化 - **原版**: 直接展示所有信息 - **新版**: - **基本信息 Grid**: Duration, Resolution, Frame Rate, Codec - **影片串流**: 折疊式展示(
標籤) - 提示文字:"click to expand" - 最大高度限制:`max-h-64` - **音訊串流**: 折疊式展示 - 顯示數量標記:"音訊串流 (N)" - 每個串流獨立折疊 - **完整 Probe JSON**: - 折疊式展示 - 藍色標記:"詳細" - 最大高度限制:`max-h-96` ### 3. 新增 Status / Processing Status 展示 - **狀態區塊**: 新增獨立的"處理狀態"區塊 - UUID (truncate) - Status (帶顏色標籤) - completed: 綠色 - processing: 藍色 - pending: 灰色 - failed: 紅色 - 註冊時間 - **Processing Status Details**: - **階段 (Phase)**: PROCESSING / COMPLETED 等 - **處理器列表**: active_processors (藍色標籤) - **進度條**: - 每個處理器獨立進度條 - 動態顏色(根據status) - 顯示百分比和帧數 - **Agent 狀態**: - 顯示各Agent狀態(five_w1h, identity等) - 進度百分比和完成數量 ### 4. 新增輔助函數 ```typescript // 狀態顏色函數 getStatusColor(status: string): string getProgressColor(status: string): string getAgentStatusColor(status: string): string // Processing Status解析 if (typeof v.processing_status === 'string') { video.value.processing_status = JSON.parse(v.processing_status) } ``` ## 檔案大小 - **原版**: 227 行 - **新版**: 371 行(增加 144 行) ## 編譯結果 ✅ `npm run build` 成功 - VideoDetailView-CP9GNQZ0.js: 10.56 kB (gzip: 3.46 kB) ## 測試建議 1. 啟動 portal dev server: `cd portal && npm run dev` 2. 確保 API server 在 port 3003 3. 登入 portal 4. 進入 "/files" 頁面 5. 點擊任意影片查看詳情 ## API 端點需求 - `/api/v1/videos?uuid={uuid}` - 返回 video 物件(包含 processing_status) - `/api/v1/videos/{uuid}/faces` - 返回 face clusters ## 未來改進建議 1. 添加 chunk 搜尋功能(在詳情頁搜尋該影片的 chunks) 2. 添加 processing_status 更新按鈕(重新載入狀態) 3. 添加處理器重新執行功能 4. 添加時間軸視覺化(timeline visualization)