feat:增加菜谱收藏功能

This commit is contained in:
2025-07-02 19:55:18 +08:00
parent 1037edeed4
commit 1d0cb061d0
8 changed files with 110 additions and 34 deletions

View File

@@ -4,25 +4,12 @@ import type {
IStats, IRecord, IMoment, IFoodSegment
} from '@/types/food'
import {
addRecipeApi,
addRecordApi,
deleteRecipeApi,
deleteRecordApi,
queryFoodNameListApi,
queryRecipeByIdApi,
queryRecordApi,
queryStatsApi,
updateRecipeApi,
updateRecordApi,
queryCategoryApi,
queryRecordStatsApi,
queryCategoryStatsApi,
queryRankStatsApi,
queryRecipeApi,
queryRecipeByUserApi,
deleteRecipeLikeApi,
addRecipeLikeApi,
addRecipeCommentApi
addRecipeApi, addRecordApi, deleteRecipeApi, deleteRecordApi,
queryFoodNameListApi, queryRecipeByIdApi, queryRecordApi, queryStatsApi,
updateRecipeApi, updateRecordApi, queryCategoryApi, queryRecordStatsApi,
queryCategoryStatsApi, queryRankStatsApi,
queryRecipeApi, queryRecipeByUserApi, deleteRecipeLikeApi,
addRecipeLikeApi, addRecipeCommentApi, addRecipeFavouriteApi, deleteRecipeFavouriteApi, queryRecipeUserFavouriteApi
} from '@/apis/food.ts'
import type { IDialog, IHandleApi, IStatsChart } from 'vue3-common/types'
import { ElMessage } from 'element-plus'
@@ -45,11 +32,17 @@ export const useFoodStore = defineStore('food', {
category: '',
recommendRate: 0,
remark: '',
isShare: false,
username: '',
userId: 0,
avatar: '',
materialList: [],
stepList: [],
recordList: [],
likeCount: 0,
likeList: [],
favouriteCount: 0,
favouriteList: [],
commentCount: 0,
commentList: []
} as IRecipe,
@@ -133,6 +126,11 @@ export const useFoodStore = defineStore('food', {
this.recipeList = await queryRecipeByUserApi(id)
this.isLoading = false
},
async queryRecipeUserFavourite() {
this.isLoading = true
this.recipeList = await queryRecipeUserFavouriteApi()
this.isLoading = false
},
async queryRecordList() {
const { year, month } = this.queryRecord
const date = this.queryDateType === 'year' ? year : month
@@ -249,6 +247,14 @@ export const useFoodStore = defineStore('food', {
await deleteRecipeLikeApi(id)
await this.queryRecipe(this.currentRecipe.id as number)
},
async addRecipeFavourite(id: number) {
await addRecipeFavouriteApi(id)
await this.queryRecipe(this.currentRecipe.id as number)
},
async deleteRecipeFavourite(id: number) {
await deleteRecipeFavouriteApi(id)
await this.queryRecipe(this.currentRecipe.id as number)
},
getEmptyRecipe(): IRecipe {
return {
commentCount: 0,
@@ -259,6 +265,7 @@ export const useFoodStore = defineStore('food', {
materialList: [],
name: '',
recommendRate: 0,
isShare: false,
remark: '',
stepList: [],
recordList: []