fix: 模板绑定批量删除后自动刷新列表

- 在ProjectDetails页面中修改批量删除回调,删除成功后自动重新获取模板绑定列表
- 简化store中batchDeleteBindings的实现,移除复杂的本地状态更新逻辑
- 确保批量删除操作完成后UI显示最新的数据状态
- 保持与单个删除操作一致的刷新机制
- 删除操作完成后清空选中状态,提升用户体验
This commit is contained in:
imeepos 2025-07-15 13:55:10 +08:00
parent a1ccde6b89
commit 03f410601a
2 changed files with 10 additions and 7 deletions

View File

@ -614,7 +614,13 @@ export const ProjectDetails: React.FC = () => {
onAdd={handleAddBinding} onAdd={handleAddBinding}
onEdit={handleEditBinding} onEdit={handleEditBinding}
onDelete={handleDeleteBinding} onDelete={handleDeleteBinding}
onBatchDelete={(ids) => bindingActions.batchDeleteBindings(ids)} onBatchDelete={async (ids) => {
await bindingActions.batchDeleteBindings(ids);
// 删除成功后重新获取项目的模板绑定列表
if (project) {
await bindingActions.fetchTemplatesByProject(project.id);
}
}}
onToggleStatus={handleToggleBindingStatus} onToggleStatus={handleToggleBindingStatus}
onSetPrimary={handleSetPrimaryTemplate} onSetPrimary={handleSetPrimaryTemplate}
searchQuery={bindingFilters.search || ''} searchQuery={bindingFilters.search || ''}

View File

@ -240,12 +240,9 @@ export const useProjectTemplateBindingStore = create<ProjectTemplateBindingState
try { try {
const deletedCount = await ProjectTemplateBindingService.batchDeleteBindings({ binding_ids: ids }); const deletedCount = await ProjectTemplateBindingService.batchDeleteBindings({ binding_ids: ids });
console.log('Store: 批量删除成功, 删除数量:', deletedCount); console.log('Store: 批量删除成功, 删除数量:', deletedCount);
const currentBindings = get().bindings;
set({ // 清空选中状态
bindings: currentBindings.filter(binding => !ids.includes(binding.id)), set({ selectedBindingIds: [], loading: false });
selectedBindingIds: [],
loading: false
});
} catch (error) { } catch (error) {
console.error('Store: 批量删除失败:', error); console.error('Store: 批量删除失败:', error);
set({ set({