45 lines
1.0 KiB
Vue
45 lines
1.0 KiB
Vue
<script lang="ts">
|
|
import Card from '../components/Card.vue';
|
|
import { defineComponent } from "vue";
|
|
import { NEW_BUDGET } from "../store/action-types";
|
|
|
|
export default defineComponent({
|
|
data() {
|
|
return {
|
|
dialog: false,
|
|
budgetName: ""
|
|
}
|
|
},
|
|
components: { Card },
|
|
methods: {
|
|
saveBudget() {
|
|
this.$store.dispatch(NEW_BUDGET, this.$data.budgetName);
|
|
this.$data.dialog = false;
|
|
},
|
|
newBudget() {
|
|
this.$data.dialog = true;
|
|
}
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<Card>
|
|
<p class="w-24 text-center text-6xl">+</p>
|
|
<button class="text-lg" dark @click="newBudget">New Budget</button>
|
|
</Card>
|
|
<div v-if="dialog" justify="center">
|
|
<div>
|
|
<div>
|
|
<span class="text-h5">New Budget</span>
|
|
</div>
|
|
<div>
|
|
<input type="text" v-model="budgetName" label="Budget name" required />
|
|
</div>
|
|
<div>
|
|
<button @click="dialog = false">Close</button>
|
|
<button @click="saveBudget">Save</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template> |