diff --git a/frontend/src/views/RecipeManager.vue b/frontend/src/views/RecipeManager.vue index f886887..b21e544 100644 --- a/frontend/src/views/RecipeManager.vue +++ b/frontend/src/views/RecipeManager.vue @@ -14,35 +14,39 @@ - + - +
+ - + +
- -
- 已选 {{ selectedIds.size + selectedDiaryIds.size }} 项 - - - - - -
-

@@ -452,6 +446,14 @@ function toggleDiarySelect(id) { function clearSelection() { selectedIds.clear() selectedDiaryIds.clear() + batchAction.value = '' +} + +function onBatchSelect() { + if (batchAction.value) { + executeBatchAction(batchAction.value) + batchAction.value = '' + } } function toggleSelectAllDiary() { @@ -797,7 +799,8 @@ async function saveAllParsed() { const sharedCount = ref({ adopted: 0, total: 0 }) const previewRecipeIndex = ref(null) -const showMyRecipes = ref(true) +const batchAction = ref('') +const showMyRecipes = ref(false) const showPublicRecipes = ref(false) const showReviewHistory = ref(false) const reviewHistory = ref([]) @@ -1399,6 +1402,8 @@ watch(() => recipeStore.recipes, () => { .drops-sm:focus { border-color: #7ec6a4; } .select-sm { padding: 4px 6px; border: 1.5px solid #d4cfc7; border-radius: 6px; font-size: 12px; font-family: inherit; background: #fff; width: auto; } .btn-select-active { background: #e8f5e9; color: #2e7d5a; border: 1.5px solid #7ec6a4; border-radius: 10px; padding: 7px 14px; font-size: 13px; cursor: pointer; font-family: inherit; font-weight: 600; } +.batch-count { font-size: 12px; color: #4a9d7e; font-weight: 600; white-space: nowrap; } +.batch-select { padding: 5px 8px; border: 1.5px solid #d4cfc7; border-radius: 8px; font-size: 12px; font-family: inherit; background: #fff; } .divider-text { text-align: center;