4.0 KiB
4.0 KiB
按狀態批量刪除鏈接前端實現說明
功能概述
在現有的鏈接生成頁面中新增了按狀態批量刪除鏈接的功能,用戶可以根據指定的狀態批量刪除自己的鏈接。
實現內容
1. API 接口實現
文件: src/api/links.js
新增了 batchDeleteByStatus 方法:
// 按状态批量删除链接
export function batchDeleteByStatus(payload) {
// payload: { statusList: string[], confirmDelete: boolean }
return http.post('/api/link/batch-delete-by-status', payload)
}
2. UI 界面實現
文件: src/views/links/LinkGenerate.vue
2.1 操作入口
- 桌面端: 在鏈接列表卡片頭部新增「按狀態刪除」按鈕
- 移動端: 在移動端操作按鈕組中新增相同功能按鈕
2.2 對話框界面
- 使用
el-dialog組件創建批量刪除對話框 - 包含狀態選擇(多選框組)和確認刪除選項
- 支持響應式設計,移動端優化顯示
2.3 狀態選項
支持的鏈接狀態:
- NEW: 新建
- USING: 使用中
- LOGGED_IN: 已登錄
- COMPLETED: 已完成
- REFUNDED: 已退款
- EXPIRED: 已過期
3. 業務邏輯實現
3.1 表單驗證
- 狀態列表不能為空
- 必須勾選確認刪除選項
- 使用 Element Plus 的表單驗證規則
3.2 安全確認機制
- 表單提交前進行驗證
- 二次確認對話框顯示要刪除的狀態
- 防止誤操作
3.3 結果處理
- 顯示刪除結果統計(成功/失敗數量)
- 失敗時顯示詳細錯誤信息
- 自動刷新鏈接列表
4. 響應式數據結構
const batchDeleteByStatusDialog = reactive({
visible: false, // 對話框顯示狀態
loading: false, // 刪除操作加載狀態
form: {
statusList: [], // 選中的狀態列表
confirmDelete: false // 確認刪除選項
},
rules: {
// 表單驗證規則
statusList: [...],
confirmDelete: [...]
}
})
5. 主要方法
5.1 showBatchDeleteByStatusDialog()
- 顯示批量刪除對話框
- 重置表單狀態
5.2 closeBatchDeleteByStatusDialog()
- 關閉對話框
- 清理表單數據和狀態
5.3 handleBatchDeleteByStatus()
- 執行批量刪除操作
- 包含完整的驗證、確認、調用API、結果處理流程
用戶操作流程
- 打開功能: 點擊「按狀態刪除」按鈕
- 選擇狀態: 勾選要刪除的鏈接狀態(可多選)
- 確認操作: 勾選確認刪除選項
- 提交請求: 點擊「確認刪除」按鈕
- 二次確認: 在彈出的確認對話框中確認操作
- 查看結果: 系統顯示刪除結果並自動刷新列表
錯誤處理
客戶端驗證
- 狀態列表為空時提示用戶選擇
- 未確認刪除時阻止提交
- 表單驗證失敗時顯示相應錯誤信息
服務端錯誤
- 網絡錯誤時顯示通用錯誤信息
- 服務端返回的具體錯誤信息會顯示給用戶
- 部分成功時會顯示成功和失敗的統計信息
移動端優化
界面適配
- 對話框寬度自適應移動端屏幕
- 狀態選擇框採用縱向佈局
- 按鈕尺寸和間距針對觸摸操作優化
樣式優化
- 選擇框使用卡片式設計,易於點擊
- 選中狀態有明顯的視覺反饋
- 支持深色模式適配
安全特性
- 權限控制: 用戶只能刪除自己創建的鏈接
- 操作確認: 雙重確認機制防止誤操作
- 參數驗證: 前後端雙重驗證確保數據安全
- 狀態限制: 限制可選擇的狀態類型和數量
技術特點
- 響應式設計: 支持桌面端和移動端
- 用戶體驗: 操作流程清晰,反饋及時
- 錯誤處理: 完善的錯誤捕獲和用戶提示
- 代碼復用: 複用現有的 API 和組件結構
- 維護性: 代碼結構清晰,易於維護和擴展
這個實現為用戶提供了一個安全、易用的批量刪除功能,大大提高了鏈接管理的效率。