release v2.0.0 #4
|
@ -6,13 +6,17 @@
|
||||||
animated
|
animated
|
||||||
swipeable
|
swipeable
|
||||||
control-color="primary"
|
control-color="primary"
|
||||||
navigation
|
|
||||||
arrows
|
arrows
|
||||||
>
|
>
|
||||||
<q-carousel-slide v-for="volume in volumes" :key="volume.id" :name="volume.id">
|
<q-carousel-slide v-for="volume in volumes" :key="volume.id" :name="volume.id">
|
||||||
<build-manual-volume-part :volume="volume" />
|
<build-manual-volume-part :volume="volume" />
|
||||||
</q-carousel-slide>
|
</q-carousel-slide>
|
||||||
</q-carousel>
|
</q-carousel>
|
||||||
|
<div class="full-width row justify-center q-pa-sm">
|
||||||
|
<div class="q-px-sm">
|
||||||
|
<q-btn-toggle v-model="volume" :options="btn_options" rounded />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, PropType, ref, computed } from 'vue';
|
import { defineComponent, PropType, ref, computed } from 'vue';
|
||||||
|
@ -45,7 +49,14 @@ export default defineComponent({
|
||||||
});
|
});
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
return { volume, options };
|
const btn_options = computed<Array<{ label: string; value: number }>>(() => {
|
||||||
|
const retVal: Array<{ label: string; value: number }> = [];
|
||||||
|
props.volumes.forEach((volume: DrinkPriceVolume) => {
|
||||||
|
retVal.push({ label: `${(<number>volume.volume).toFixed(3)}L`, value: volume.id });
|
||||||
|
});
|
||||||
|
return retVal;
|
||||||
|
});
|
||||||
|
return { volume, options, btn_options };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -438,7 +438,6 @@ export default defineComponent({
|
||||||
for (const volume of toDeleteObjects.volumes) {
|
for (const volume of toDeleteObjects.volumes) {
|
||||||
await store.deleteVolume(volume, drink);
|
await store.deleteVolume(volume, drink);
|
||||||
}
|
}
|
||||||
console.log(drink);
|
|
||||||
if (drink.id > 0) {
|
if (drink.id > 0) {
|
||||||
await store.updateDrink(drink);
|
await store.updateDrink(drink);
|
||||||
} else {
|
} else {
|
||||||
|
@ -474,7 +473,6 @@ export default defineComponent({
|
||||||
|
|
||||||
function image(uuid: string | undefined) {
|
function image(uuid: string | undefined) {
|
||||||
if (uuid) {
|
if (uuid) {
|
||||||
console.log(baseURL.value);
|
|
||||||
return `${baseURL.value}/pricelist/picture/${uuid}?size=256`;
|
return `${baseURL.value}/pricelist/picture/${uuid}?size=256`;
|
||||||
}
|
}
|
||||||
return 'no-image.svg';
|
return 'no-image.svg';
|
||||||
|
@ -493,7 +491,6 @@ export default defineComponent({
|
||||||
drinkPic,
|
drinkPic,
|
||||||
savePicture,
|
savePicture,
|
||||||
deletePicture,
|
deletePicture,
|
||||||
console,
|
|
||||||
search,
|
search,
|
||||||
filter,
|
filter,
|
||||||
search_keys,
|
search_keys,
|
||||||
|
|
|
@ -126,7 +126,7 @@
|
||||||
</q-carousel>
|
</q-carousel>
|
||||||
<div class="full-width row justify-center q-pa-sm">
|
<div class="full-width row justify-center q-pa-sm">
|
||||||
<div class="q-px-sm">
|
<div class="q-px-sm">
|
||||||
<q-btn-toggle v-model="volume" :options="options" />
|
<q-btn-toggle v-model="volume" :options="options" rounded />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="editable" class="q-px-sm">
|
<div v-if="editable" class="q-px-sm">
|
||||||
<q-btn class="q-px-sm" round icon="mdi-plus" color="primary" size="sm" @click="newVolume">
|
<q-btn class="q-px-sm" round icon="mdi-plus" color="primary" size="sm" @click="newVolume">
|
||||||
|
|
|
@ -100,7 +100,7 @@
|
||||||
<div v-if="editable" class="full-width row justify-end q-py-xs">
|
<div v-if="editable" class="full-width row justify-end q-py-xs">
|
||||||
<q-btn size="sm" round icon="mdi-plus" color="primary">
|
<q-btn size="sm" round icon="mdi-plus" color="primary">
|
||||||
<q-tooltip> Neue Zutat hinzufügen </q-tooltip>
|
<q-tooltip> Neue Zutat hinzufügen </q-tooltip>
|
||||||
<q-menu anchor="center middle" self="center middle">
|
<q-menu anchor="center middle" self="center middle" persistent>
|
||||||
<div class="full-width row justify-around q-gutter-sm q-pa-sm">
|
<div class="full-width row justify-around q-gutter-sm q-pa-sm">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<q-select
|
<q-select
|
||||||
|
@ -113,35 +113,39 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<q-input
|
<q-slide-transition>
|
||||||
v-if="newIngredient && newIngredient.volume"
|
<q-input
|
||||||
v-model.number="newIngredientVolume"
|
v-if="newIngredient && newIngredient.volume"
|
||||||
filled
|
v-model.number="newIngredientVolume"
|
||||||
dense
|
filled
|
||||||
label="Volume"
|
dense
|
||||||
type="number"
|
label="Volume"
|
||||||
step="0.01"
|
type="number"
|
||||||
min="0"
|
step="0.01"
|
||||||
suffix="L"
|
min="0"
|
||||||
/>
|
suffix="L"
|
||||||
<q-input
|
/>
|
||||||
v-else-if="newIngredient && newIngredient.price"
|
</q-slide-transition>
|
||||||
v-model="newIngredient.price"
|
<q-slide-transition>
|
||||||
filled
|
<q-input
|
||||||
dense
|
v-if="newIngredient && newIngredient.price"
|
||||||
label="Preis"
|
v-model="newIngredient.price"
|
||||||
disable
|
filled
|
||||||
min="0"
|
dense
|
||||||
step="0.1"
|
label="Preis"
|
||||||
fill-mask="0"
|
disable
|
||||||
mask="#.##"
|
min="0"
|
||||||
suffix="€"
|
step="0.1"
|
||||||
/>
|
fill-mask="0"
|
||||||
|
mask="#.##"
|
||||||
|
suffix="€"
|
||||||
|
/>
|
||||||
|
</q-slide-transition>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="full-width row jusitfy-between q-gutter-sm q-pa-sm">
|
<div class="full-width row justify-around q-gutter-sm q-pa-sm">
|
||||||
<q-btn v-close-popup label="Abbrechen" @click="cancelAddIngredient" />
|
<q-btn v-close-popup flat label="Abbrechen" @click="cancelAddIngredient" />
|
||||||
<q-btn v-close-popup label="Speichern" color="primary" @click="addIngredient" />
|
<q-btn v-close-popup flat label="Speichern" color="primary" @click="addIngredient" />
|
||||||
</div>
|
</div>
|
||||||
</q-menu>
|
</q-menu>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
:row-key="(row) => row.id"
|
:row-key="(row) => row.id"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
style="height: 100%"
|
style="height: 100%"
|
||||||
|
:pagination="pagination"
|
||||||
>
|
>
|
||||||
<template #top-right>
|
<template #top-right>
|
||||||
<div class="full-width row q-gutter-sm">
|
<div class="full-width row q-gutter-sm">
|
||||||
|
@ -91,6 +92,10 @@ export default defineComponent({
|
||||||
function deleteType(id: number) {
|
function deleteType(id: number) {
|
||||||
void store.removeDrinkType(id);
|
void store.removeDrinkType(id);
|
||||||
}
|
}
|
||||||
|
const pagination = ref({
|
||||||
|
sortBy: 'name',
|
||||||
|
rowsPerPage: 10,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
columns,
|
columns,
|
||||||
|
@ -99,6 +104,7 @@ export default defineComponent({
|
||||||
newDrinkType,
|
newDrinkType,
|
||||||
deleteType,
|
deleteType,
|
||||||
saveChanges,
|
saveChanges,
|
||||||
|
pagination,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,32 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<q-dialog v-model="edittype">
|
|
||||||
<q-card>
|
|
||||||
<q-card-section>
|
|
||||||
<div class="text-h6">Editere Extrazutaten {{ actualExtraIngredient.name }}</div>
|
|
||||||
</q-card-section>
|
|
||||||
<q-card-section>
|
|
||||||
<q-input v-model="actualExtraIngredient.name" dense label="Name" filled />
|
|
||||||
<q-input
|
|
||||||
v-model.number="actualExtraIngredient.price"
|
|
||||||
dense
|
|
||||||
label="Preis"
|
|
||||||
filled
|
|
||||||
type="number"
|
|
||||||
min="0"
|
|
||||||
step="0.1"
|
|
||||||
suffix="€"
|
|
||||||
/>
|
|
||||||
</q-card-section>
|
|
||||||
<q-card-actions>
|
|
||||||
<q-btn flat color="danger" label="Abbrechen" @click="discardChanges()" />
|
|
||||||
<q-btn flat color="primary" label="Speichern" @click="saveChanges()" />
|
|
||||||
</q-card-actions>
|
|
||||||
</q-card>
|
|
||||||
</q-dialog>
|
|
||||||
|
|
||||||
<q-page padding>
|
<q-page padding>
|
||||||
<q-table title="Getränkearten" :rows="rows" :row-key="(row) => row.id" :columns="columns">
|
<q-table
|
||||||
|
title="Getränkearten"
|
||||||
|
:rows="rows"
|
||||||
|
:row-key="(row) => row.id"
|
||||||
|
:columns="columns"
|
||||||
|
:pagination="pagination"
|
||||||
|
>
|
||||||
<template #top-right>
|
<template #top-right>
|
||||||
<div class="full-width row q-gutter-sm">
|
<div class="full-width row q-gutter-sm">
|
||||||
<q-input
|
<q-input
|
||||||
|
@ -151,6 +132,11 @@ export default defineComponent({
|
||||||
void store.deleteExtraIngredient(extraIngredient);
|
void store.deleteExtraIngredient(extraIngredient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const pagination = ref({
|
||||||
|
sortBy: 'name',
|
||||||
|
rowsPerPage: 10,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
columns,
|
columns,
|
||||||
rows,
|
rows,
|
||||||
|
@ -159,6 +145,7 @@ export default defineComponent({
|
||||||
deleteType,
|
deleteType,
|
||||||
discardChanges,
|
discardChanges,
|
||||||
saveChanges,
|
saveChanges,
|
||||||
|
pagination,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -96,6 +96,7 @@ export default defineComponent({
|
||||||
field: 'name',
|
field: 'name',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
filterable: true,
|
filterable: true,
|
||||||
|
align: 'left',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'type',
|
name: 'type',
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<q-page padding>
|
<q-page padding>
|
||||||
<q-table title="Tags" :rows="rows" :row-key="(row) => row.id" :columns="columns">
|
<q-table
|
||||||
|
title="Tags"
|
||||||
|
:rows="rows"
|
||||||
|
:row-key="(row) => row.id"
|
||||||
|
:columns="columns"
|
||||||
|
:pagination="pagination"
|
||||||
|
>
|
||||||
<template #top-right>
|
<template #top-right>
|
||||||
<q-btn color="primary" icon="mdi-plus" round>
|
<q-btn color="primary" icon="mdi-plus" round>
|
||||||
<q-tooltip> Tag hinzufügen </q-tooltip>
|
<q-tooltip> Tag hinzufügen </q-tooltip>
|
||||||
|
@ -143,6 +149,10 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
const pagination = ref({
|
||||||
|
sortBy: 'name',
|
||||||
|
rowsPerPage: 10,
|
||||||
|
});
|
||||||
return {
|
return {
|
||||||
columns,
|
columns,
|
||||||
rows,
|
rows,
|
||||||
|
@ -152,6 +162,7 @@ export default defineComponent({
|
||||||
updateTag: store.updateTag,
|
updateTag: store.updateTag,
|
||||||
notExists,
|
notExists,
|
||||||
deleteTag: store.deleteTag,
|
deleteTag: store.deleteTag,
|
||||||
|
pagination,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -147,7 +147,6 @@ export const usePricelistStore = defineStore({
|
||||||
this.drinks.push(_drink);
|
this.drinks.push(_drink);
|
||||||
});
|
});
|
||||||
calc_all_min_prices(this.drinks, this.min_prices);
|
calc_all_min_prices(this.drinks, this.min_prices);
|
||||||
console.log(this.drinks);
|
|
||||||
},
|
},
|
||||||
sortPrices(volume: DrinkPriceVolume) {
|
sortPrices(volume: DrinkPriceVolume) {
|
||||||
volume.prices.sort((a, b) => {
|
volume.prices.sort((a, b) => {
|
||||||
|
@ -196,7 +195,6 @@ export const usePricelistStore = defineStore({
|
||||||
this.drinks[index] = _drink;
|
this.drinks[index] = _drink;
|
||||||
}
|
}
|
||||||
calc_all_min_prices(this.drinks, this.min_prices);
|
calc_all_min_prices(this.drinks, this.min_prices);
|
||||||
console.log('update drink', drink);
|
|
||||||
},
|
},
|
||||||
deleteDrink(drink: Drink) {
|
deleteDrink(drink: Drink) {
|
||||||
api
|
api
|
||||||
|
@ -291,7 +289,6 @@ export const usePricelistStore = defineStore({
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
console.log(retVal);
|
|
||||||
return retVal;
|
return retVal;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue