flaschengeist-frontend/src/plugins/balance/pages/Admin.vue

65 lines
1.5 KiB
Vue
Raw Normal View History

<template>
<div>
<q-page padding>
<q-card>
<q-card-section>
<q-table :data="rows" row-key="userid" :columns="columns" />
</q-card-section>
</q-card>
</q-page>
</div>
</template>
<script lang="ts">
// TODO: Fill usefull data
import { ref, defineComponent, onMounted } from 'vue';
2021-01-29 22:29:38 +00:00
import { StateInterfaceBalance, BalancesResponse } from '../store/balance';
import { Store } from 'vuex';
export default defineComponent({
// name: 'PageName'
setup(_, { root }) {
const store = <Store<StateInterfaceBalance>>root.$store;
2021-01-29 22:29:38 +00:00
onMounted(
() =>
void store
.dispatch('balance/getBalances')
.then((balances: Array<BalancesResponse>) => rows.value.push(...balances))
);
const rows = ref(new Array<BalancesResponse>());
const columns = [
{
name: 'userid',
label: 'Benutzer ID',
field: 'userid',
required: true,
align: 'left',
sortable: true,
},
2021-01-27 01:47:19 +00:00
{
2021-01-29 22:29:38 +00:00
name: 'credit',
label: 'Haben',
field: 'credit',
format: (val: number) => val.toFixed(2),
2021-01-27 01:47:19 +00:00
},
{
2021-01-29 22:29:38 +00:00
name: 'debit',
label: 'Soll',
field: 'debit',
format: (val: number) => val.toFixed(2),
2021-01-29 22:29:38 +00:00
},
{
name: 'balance',
label: 'Kontostand',
format: (_: undefined, row: { debit: number; credit: number }) =>
(row.credit - row.debit).toFixed(2),
},
];
return { rows, columns };
},
});
</script>