diff --git a/frontend/dist/index.html b/frontend/dist/index.html
index 74b3601..30bd0e6 100644
--- a/frontend/dist/index.html
+++ b/frontend/dist/index.html
@@ -1 +1 @@
-
frontend
\ No newline at end of file
+frontend
\ No newline at end of file
diff --git a/frontend/dist/js/app.3102fbaf.js b/frontend/dist/js/app.3102fbaf.js
new file mode 100644
index 0000000..e929e64
--- /dev/null
+++ b/frontend/dist/js/app.3102fbaf.js
@@ -0,0 +1,2 @@
+(function(e){function t(t){for(var c,a,l=t[0],i=t[1],o=t[2],p=0,f=[];p\n \n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=2969681c\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import ElementPlus from 'element-plus'\nimport 'element-plus/lib/theme-chalk/index.css'\nimport locale from 'element-plus/lib/locale/lang/zh-cn'\n\nexport default (app) => {\n app.use(ElementPlus, { locale })\n}\n","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 提交\n \n \n \n \n\n\n\n\n","import { render } from \"./input_recipe.vue?vue&type=template&id=16b31338&scoped=true\"\nimport script from \"./input_recipe.vue?vue&type=script&lang=js\"\nexport * from \"./input_recipe.vue?vue&type=script&lang=js\"\n\nimport \"./input_recipe.vue?vue&type=style&index=0&id=16b31338&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-16b31338\"\n\nexport default script","\n \n \n \n \n \n \n \n \n \n \n \n 编辑\n \n \n \n \n \n \n\n\n\n\n\n","import { render } from \"./recipe_list.vue?vue&type=template&id=40bc726c\"\nimport script from \"./recipe_list.vue?vue&type=script&lang=js\"\nexport * from \"./recipe_list.vue?vue&type=script&lang=js\"\n\nimport \"./recipe_list.vue?vue&type=style&index=0&id=40bc726c&lang=css\"\nscript.render = render\n\nexport default script","import { render } from \"./home.vue?vue&type=template&id=2f7ecc30\"\nimport script from \"./home.vue?vue&type=script&lang=js\"\nexport * from \"./home.vue?vue&type=script&lang=js\"\n\nimport \"./home.vue?vue&type=style&index=0&id=2f7ecc30&lang=css\"\nscript.render = render\n\nexport default script","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n {{ recipe.name }}\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n","import { render } from \"./recipeDetail.vue?vue&type=template&id=091caa05\"\nimport script from \"./recipeDetail.vue?vue&type=script&lang=js\"\nexport * from \"./recipeDetail.vue?vue&type=script&lang=js\"\n\nimport \"./recipeDetail.vue?vue&type=style&index=0&id=091caa05&lang=css\"\nscript.render = render\n\nexport default script","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","\n \n \n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n 编辑\n \n \n \n \n \n \n 重新生成\n \n \n\n\n\n\n\n","import { render } from \"./week_recipe.vue?vue&type=template&id=3121e8ee\"\nimport script from \"./week_recipe.vue?vue&type=script&lang=js\"\nexport * from \"./week_recipe.vue?vue&type=script&lang=js\"\n\nimport \"./week_recipe.vue?vue&type=style&index=0&id=3121e8ee&lang=css\"\nscript.render = render\n\nexport default script","import { render } from \"./weekRecipe.vue?vue&type=template&id=5a47131a\"\nimport script from \"./weekRecipe.vue?vue&type=script&lang=js\"\nexport * from \"./weekRecipe.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n 每日菜谱\n \n \n \n \n \n \n \n \n \n\n\n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 重新生成\n \n \n \n \n 提交\n \n \n \n\n\n\n\n\n","import { render } from \"./daily_recipe_detail.vue?vue&type=template&id=4afbb685\"\nimport script from \"./daily_recipe_detail.vue?vue&type=script&lang=js\"\nexport * from \"./daily_recipe_detail.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./dailyRecipeDetail.vue?vue&type=template&id=a73306e8\"\nimport script from \"./dailyRecipeDetail.vue?vue&type=script&lang=js\"\nexport * from \"./dailyRecipeDetail.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { createRouter, createWebHistory } from 'vue-router'\nimport Home from '@/views/home.vue'\nimport RecipeDetail from '@/views/recipeDetail.vue'\nimport WeekRecipe from '@/views/weekRecipe.vue'\nimport DailyRecipeDetail from '@/views/dailyRecipeDetail.vue'\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: Home,\n },\n {\n path: '/recipe/:id',\n name: \"RecipeDetail\",\n component: RecipeDetail\n },\n {\n path: '/week-recipe/',\n name: \"WeekRecipe\",\n component: WeekRecipe\n },\n {\n path: '/daily-recipe/:id',\n name: \"DailyRecipeDetail\",\n component: DailyRecipeDetail\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport installElementPlus from './plugins/element'\nimport ElementPlus from 'element-plus'\n// import 'element-plus/lib/theme-chalk/index.css'\nimport router from './router'\n\nconst app = createApp(App)\ninstallElementPlus(app)\napp.use(ElementPlus)\napp.use(router).mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./home.vue?vue&type=style&index=0&id=2f7ecc30&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./recipeDetail.vue?vue&type=style&index=0&id=091caa05&lang=css\"","const type_map = {\n vegetable: '青菜',\n meat: '肉',\n soup: '汤',\n};\nconst rate_map = {\n 1: '🍚',\n 2: '🍚 🍚',\n 3: '🍚 🍚 🍚',\n 4: '🍚 🍚 🍚 🍚',\n 5: '🍚 🍚 🍚 🍚 🍚',\n};\nconst difficulty_map = {\n 1: '⭐',\n 2: '⭐ ⭐',\n 3: '⭐ ⭐ ⭐',\n 4: '⭐ ⭐ ⭐ ⭐',\n 5: '⭐ ⭐ ⭐ ⭐ ⭐',\n};\nfunction formatRecipeType(recipe_type) {\n return type_map[recipe_type];\n}\nfunction formatRate(rate) {\n return rate_map[rate];\n}\nfunction formatDifficulty(difficulty) {\n return difficulty_map[difficulty];\n}\n\n\nmodule.exports = {\n RECIPE_TYPE_VEGETABLE: 'vegetable',\n RECIPE_TYPE_META: 'meat',\n RECIPE_TYPE_SOUP: 'soup',\n formatRecipeType,\n formatDifficulty,\n formatRate,\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./week_recipe.vue?vue&type=style&index=0&id=3121e8ee&lang=css\"","module.exports = {\n publicPath: process.env.VUE_APP_BASEURL\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/frontend/dist/js/app.df0986dc.js b/frontend/dist/js/app.df0986dc.js
deleted file mode 100644
index cf71a6f..0000000
--- a/frontend/dist/js/app.df0986dc.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(function(e){function t(t){for(var c,u,i=t[0],l=t[1],o=t[2],p=0,f=[];p\n \n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=2969681c\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import ElementPlus from 'element-plus'\nimport 'element-plus/lib/theme-chalk/index.css'\nimport locale from 'element-plus/lib/locale/lang/zh-cn'\n\nexport default (app) => {\n app.use(ElementPlus, { locale })\n}\n","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 提交\n \n \n \n \n\n\n\n\n","import { render } from \"./input_recipe.vue?vue&type=template&id=16b31338&scoped=true\"\nimport script from \"./input_recipe.vue?vue&type=script&lang=js\"\nexport * from \"./input_recipe.vue?vue&type=script&lang=js\"\n\nimport \"./input_recipe.vue?vue&type=style&index=0&id=16b31338&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-16b31338\"\n\nexport default script","\n \n \n \n \n \n \n \n \n \n \n \n 编辑\n \n \n \n \n \n \n\n\n\n\n\n","import { render } from \"./recipe_list.vue?vue&type=template&id=40bc726c\"\nimport script from \"./recipe_list.vue?vue&type=script&lang=js\"\nexport * from \"./recipe_list.vue?vue&type=script&lang=js\"\n\nimport \"./recipe_list.vue?vue&type=style&index=0&id=40bc726c&lang=css\"\nscript.render = render\n\nexport default script","import { render } from \"./home.vue?vue&type=template&id=2f7ecc30\"\nimport script from \"./home.vue?vue&type=script&lang=js\"\nexport * from \"./home.vue?vue&type=script&lang=js\"\n\nimport \"./home.vue?vue&type=style&index=0&id=2f7ecc30&lang=css\"\nscript.render = render\n\nexport default script","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n {{ recipe.name }}\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n","import { render } from \"./recipeDetail.vue?vue&type=template&id=091caa05\"\nimport script from \"./recipeDetail.vue?vue&type=script&lang=js\"\nexport * from \"./recipeDetail.vue?vue&type=script&lang=js\"\n\nimport \"./recipeDetail.vue?vue&type=style&index=0&id=091caa05&lang=css\"\nscript.render = render\n\nexport default script","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","\n \n \n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n 编辑\n \n \n \n \n \n \n 重新生成\n \n \n\n\n\n\n\n","import { render } from \"./week_recipe.vue?vue&type=template&id=3121e8ee\"\nimport script from \"./week_recipe.vue?vue&type=script&lang=js\"\nexport * from \"./week_recipe.vue?vue&type=script&lang=js\"\n\nimport \"./week_recipe.vue?vue&type=style&index=0&id=3121e8ee&lang=css\"\nscript.render = render\n\nexport default script","import { render } from \"./weekRecipe.vue?vue&type=template&id=5a47131a\"\nimport script from \"./weekRecipe.vue?vue&type=script&lang=js\"\nexport * from \"./weekRecipe.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","\n \n \n \n \n 首页\n \n \n 每周菜谱\n \n \n 每日菜谱\n \n \n \n \n \n \n \n \n \n\n\n\n","\n \n \n \n \n {{ recipe.name }}\n \n \n \n \n \n \n {{ recipe.name }}\n \n \n \n \n {{ recipe.name }}\n \n \n \n 重新生成\n \n\n\n\n\n\n","import { render } from \"./daily_recipe_detail.vue?vue&type=template&id=3aa7671a\"\nimport script from \"./daily_recipe_detail.vue?vue&type=script&lang=js\"\nexport * from \"./daily_recipe_detail.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./dailyRecipeDetail.vue?vue&type=template&id=a73306e8\"\nimport script from \"./dailyRecipeDetail.vue?vue&type=script&lang=js\"\nexport * from \"./dailyRecipeDetail.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { createRouter, createWebHistory } from 'vue-router'\nimport Home from '@/views/home.vue'\nimport RecipeDetail from '@/views/recipeDetail.vue'\nimport WeekRecipe from '@/views/weekRecipe.vue'\nimport DailyRecipeDetail from '@/views/dailyRecipeDetail.vue'\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: Home,\n },\n {\n path: '/recipe/:id',\n name: \"RecipeDetail\",\n component: RecipeDetail\n },\n {\n path: '/week-recipe/',\n name: \"WeekRecipe\",\n component: WeekRecipe\n },\n {\n path: '/daily-recipe/:id',\n name: \"DailyRecipeDetail\",\n component: DailyRecipeDetail\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport installElementPlus from './plugins/element'\nimport ElementPlus from 'element-plus'\n// import 'element-plus/lib/theme-chalk/index.css'\nimport router from './router'\n\nconst app = createApp(App)\ninstallElementPlus(app)\napp.use(ElementPlus)\napp.use(router).mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./home.vue?vue&type=style&index=0&id=2f7ecc30&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./recipeDetail.vue?vue&type=style&index=0&id=091caa05&lang=css\"","const type_map = {\n vegetable: '青菜',\n meat: '肉',\n soup: '汤',\n};\nconst rate_map = {\n 1: '🍚',\n 2: '🍚 🍚',\n 3: '🍚 🍚 🍚',\n 4: '🍚 🍚 🍚 🍚',\n 5: '🍚 🍚 🍚 🍚 🍚',\n};\nconst difficulty_map = {\n 1: '⭐',\n 2: '⭐ ⭐',\n 3: '⭐ ⭐ ⭐',\n 4: '⭐ ⭐ ⭐ ⭐',\n 5: '⭐ ⭐ ⭐ ⭐ ⭐',\n};\nfunction formatRecipeType(recipe_type) {\n return type_map[recipe_type];\n}\nfunction formatRate(rate) {\n return rate_map[rate];\n}\nfunction formatDifficulty(difficulty) {\n return difficulty_map[difficulty];\n}\n\n\nmodule.exports = {\n RECIPE_TYPE_VEGETABLE: 'vegetable',\n RECIPE_TYPE_META: 'meat',\n RECIPE_TYPE_SOUP: 'soup',\n formatRecipeType,\n formatDifficulty,\n formatRate,\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./week_recipe.vue?vue&type=style&index=0&id=3121e8ee&lang=css\"","module.exports = {\n publicPath: process.env.VUE_APP_BASEURL\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/frontend/src/components/daily_recipe_detail.vue b/frontend/src/components/daily_recipe_detail.vue
index d33798f..b4bea0a 100644
--- a/frontend/src/components/daily_recipe_detail.vue
+++ b/frontend/src/components/daily_recipe_detail.vue
@@ -1,61 +1,61 @@
-
-
+
- {{ recipe.name }}
-
-
+
+
-
-
+
- {{ recipe.name }}
-
-
+
+
+
-
- {{ recipe.name }}
+
-
+
+
+
-
- 重新生成
-
+
+
+
+ 重新生成
+
+
+
+
+ 提交
+
+
+