flaschengeist-frontend/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumeTable/NewVolume.vue

73 lines
1.7 KiB
Vue
Raw Normal View History

<template>
<q-btn
2021-03-20 17:05:00 +00:00
v-if="pricePerVolume"
color="positive"
icon-right="add"
label="Abgabe hinzufügen"
size="xs"
>
<q-menu anchor="center middle" self="center middle">
<div class="row justify-around q-pa-sm">
<q-input
v-model.number="newVolume.volume"
filled
dense
label="Liter"
type="number"
2021-03-20 17:05:00 +00:00
min="0"
step="0.01"
/>
</div>
<div class="row justify-between q-pa-sm">
<q-btn v-close-popup label="Abbrechen" @click="cancelAddVolume" />
2021-03-20 17:05:00 +00:00
<q-btn v-close-popup label="Speichern" color="primary" @click="addVolume(rows)" />
</div>
</q-menu>
</q-btn>
</template>
2021-03-20 17:05:00 +00:00
<script lang="ts">
import { DrinkPriceVolume } from '../../../store';
2021-03-20 17:05:00 +00:00
import { ref, defineComponent } from 'vue';
2021-03-20 17:05:00 +00:00
export default defineComponent({
name: 'NewVolume',
props: {
2021-03-20 17:05:00 +00:00
pricePerVolume: {
type: Number,
required: true,
},
},
2021-03-20 17:05:00 +00:00
emits: { addVolume: (val: DrinkPriceVolume) => !!val },
setup(_, { emit }) {
const emptyVolume: DrinkPriceVolume = {
id: -1,
_volume: 0,
2021-03-20 17:05:00 +00:00
min_prices: [{ percentage: 100 }, { percentage: 250 }, { percentage: 300 }],
prices: [],
ingredients: [],
};
const newVolume = ref<DrinkPriceVolume>(emptyVolume);
function cancelAddVolume() {
setTimeout(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
newVolume.value = emptyVolume;
}, 200);
}
function addVolume() {
2021-03-20 17:05:00 +00:00
emit('addVolume', <DrinkPriceVolume>newVolume.value);
}
return {
addVolume,
cancelAddVolume,
newVolume,
2021-03-20 17:05:00 +00:00
};
},
});
</script>
2021-03-20 17:05:00 +00:00
<style scoped></style>