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 }}项
+
+
+
-
-
- 已选 {{ 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;