diff --git a/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumesTable.vue b/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumesTable.vue index 7b66098..07666d4 100644 --- a/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumesTable.vue +++ b/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumesTable.vue @@ -82,6 +82,8 @@ :ingredients="props.row.ingredients" :volume="props.row" @updateDrink="updateDrink" + @addIngredient="addIngredient" + @deleteIngredient="deleteIngredient" /> @@ -185,7 +187,15 @@ export default defineComponent({ }, ]; - return { addVolume, updateDrink, deleteVolume, column_prices }; + function addIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) { + volume.ingredients.push(ingredient); + updateDrink(); + } + function deleteIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) { + store.deleteIngredient(ingredient, volume); + } + + return { addVolume, updateDrink, deleteVolume, column_prices, addIngredient, deleteIngredient }; }, }); diff --git a/src/plugins/pricelist/components/CalculationTable/Ingredients.vue b/src/plugins/pricelist/components/CalculationTable/Ingredients.vue index 1317056..99486e7 100644 --- a/src/plugins/pricelist/components/CalculationTable/Ingredients.vue +++ b/src/plugins/pricelist/components/CalculationTable/Ingredients.vue @@ -162,20 +162,22 @@ export default defineComponent({ required: true, }, }, - emits: { updateDrink: () => true }, + emits: { + updateDrink: () => true, + addIngredient: (val: FG.Ingredient, volume: DrinkPriceVolume) => + (val.drink_ingredient || val.extra_ingredient) && volume, + deleteIngredient: (ingredient: FG.Ingredient, volume: DrinkPriceVolume) => + (ingredient.drink_ingredient || ingredient.extra_ingredient) && volume, + }, setup(_, { emit }) { const store = usePricelistStore(); - /*const emptyIngredient: FG.Ingredient = { - id: -1, - drink_ingredient: undefined, - extra_ingredient: undefined, - };*/ const newIngredient = ref(); const newIngredientVolume = ref(0); function addIngredient(volume: DrinkPriceVolume) { + let _ingredient: FG.Ingredient; if ((newIngredient.value)?.volume && newIngredient.value) { - volume.ingredients.push({ + _ingredient = { id: -1, drink_ingredient: { id: -1, @@ -183,15 +185,15 @@ export default defineComponent({ volume: newIngredientVolume.value, }, extra_ingredient: undefined, - }); - } else if (newIngredient.value) { - volume.ingredients.push({ + }; + } else { + _ingredient = { id: -1, drink_ingredient: undefined, extra_ingredient: newIngredient.value, - }); + }; } - updateDrink(); + emit('addIngredient', _ingredient, volume); cancelAddIngredient(); } function updateDrink() { @@ -204,7 +206,7 @@ export default defineComponent({ }, 200); } function deleteIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) { - store.deleteIngredient(ingredient, volume); + emit('deleteIngredient', ingredient, volume); } const drinks = computed(() => store.drinks.filter((drink) => { diff --git a/src/plugins/pricelist/components/Pricelist.vue b/src/plugins/pricelist/components/Pricelist.vue index f2d54c3..21f8fd0 100644 --- a/src/plugins/pricelist/components/Pricelist.vue +++ b/src/plugins/pricelist/components/Pricelist.vue @@ -99,7 +99,7 @@ export default defineComponent({ default: false, }, }, - setup(props) { + setup() { let user: string | null; onBeforeMount(() => { if (user) { diff --git a/src/plugins/pricelist/pages/CocktailBuilder.vue b/src/plugins/pricelist/pages/CocktailBuilder.vue new file mode 100644 index 0000000..793c940 --- /dev/null +++ b/src/plugins/pricelist/pages/CocktailBuilder.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/plugins/pricelist/pages/Reciepts.vue b/src/plugins/pricelist/pages/Reciepts.vue new file mode 100644 index 0000000..33455e9 --- /dev/null +++ b/src/plugins/pricelist/pages/Reciepts.vue @@ -0,0 +1,12 @@ + + + + + diff --git a/src/plugins/pricelist/routes/index.ts b/src/plugins/pricelist/routes/index.ts index 4bd657c..05bfbb8 100644 --- a/src/plugins/pricelist/routes/index.ts +++ b/src/plugins/pricelist/routes/index.ts @@ -22,6 +22,28 @@ export const innerRoutes: FG_Plugin.MenuRoute[] = [ component: () => import('../pages/PricelistP.vue'), }, }, + { + title: 'Rezepte', + shortcut: false, + icon: '', + permissions: ['user'], + route: { + path: 'reciepts', + name: 'reciepts', + component: () => import('../pages/Reciepts.vue') + } + }, + { + title: 'Cocktailbuilder', + shortcut: false, + icon: 'mdi-glass-cocktail', + permissions: ['user'], + route: { + path: 'cocktail-builder', + name: 'cocktail-builder', + component: () => import('../pages/CocktailBuilder.vue') + } + }, { title: 'Einstellungen', icon: 'mdi-coffee-to-go', diff --git a/src/plugins/pricelist/store.ts b/src/plugins/pricelist/store.ts index 8380f36..ca86b50 100644 --- a/src/plugins/pricelist/store.ts +++ b/src/plugins/pricelist/store.ts @@ -322,4 +322,6 @@ export const usePricelistStore = defineStore({ }, }); + + export { DrinkPriceVolume, MinPrice, Drink };