Compare commits
1 Commits
fix/save-t
...
603e81853d
| Author | SHA1 | Date | |
|---|---|---|---|
| 603e81853d |
@@ -350,7 +350,6 @@ import { useUiStore } from '../stores/ui'
|
||||
import { useDiaryStore } from '../stores/diary'
|
||||
import { api } from '../composables/useApi'
|
||||
import { oilEn, recipeNameEn } from '../composables/useOilTranslation'
|
||||
import { showPrompt } from '../composables/useDialog'
|
||||
// TagPicker replaced with inline tag editing
|
||||
|
||||
const props = defineProps({
|
||||
@@ -577,16 +576,16 @@ async function saveToDiary() {
|
||||
ui.openLogin()
|
||||
return
|
||||
}
|
||||
const name = await showPrompt('保存为我的配方,名称:', recipe.value.name)
|
||||
const name = prompt('保存为我的配方,名称:', recipe.value.name)
|
||||
if (!name) return
|
||||
try {
|
||||
await recipesStore.saveRecipe({
|
||||
await api.post('/api/diary', {
|
||||
name,
|
||||
source_recipe_id: recipe.value._id || null,
|
||||
ingredients: recipe.value.ingredients.map(i => ({ oil: i.oil, drops: i.drops })),
|
||||
note: recipe.value.note || '',
|
||||
ingredients: recipe.value.ingredients.map(i => ({ oil_name: i.oil, drops: i.drops })),
|
||||
tags: recipe.value.tags || [],
|
||||
})
|
||||
ui.showToast('已保存到「我的配方」')
|
||||
ui.showToast('已保存到「我的配方日记」')
|
||||
} catch (e) {
|
||||
ui.showToast('保存失败: ' + (e?.message || '未知错误'))
|
||||
}
|
||||
|
||||
@@ -136,8 +136,12 @@ function handleLogout() {
|
||||
auth.logout()
|
||||
ui.showToast('已退出登录')
|
||||
emit('close')
|
||||
if (router.currentRoute.value.meta.requiresAuth) {
|
||||
router.push('/')
|
||||
} else {
|
||||
window.location.reload()
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(loadNotifications)
|
||||
</script>
|
||||
|
||||
@@ -10,11 +10,13 @@ const routes = [
|
||||
path: '/manage',
|
||||
name: 'RecipeManager',
|
||||
component: () => import('../views/RecipeManager.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/inventory',
|
||||
name: 'Inventory',
|
||||
component: () => import('../views/Inventory.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/oils',
|
||||
@@ -25,26 +27,31 @@ const routes = [
|
||||
path: '/projects',
|
||||
name: 'Projects',
|
||||
component: () => import('../views/Projects.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/mydiary',
|
||||
name: 'MyDiary',
|
||||
component: () => import('../views/MyDiary.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/audit',
|
||||
name: 'AuditLog',
|
||||
component: () => import('../views/AuditLog.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/bugs',
|
||||
name: 'BugTracker',
|
||||
component: () => import('../views/BugTracker.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/users',
|
||||
name: 'UserManagement',
|
||||
component: () => import('../views/UserManagement.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user