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

86 lines
2.2 KiB
Vue
Raw Normal View History

<template>
<div>
<q-page padding>
<q-table :rows="rows" row-key="userid" :columns="columns">
<template #top-right>
<div class="full-width row q-gutter-sm">
<q-input
v-model.number="limit"
label="Limit"
type="number"
step="0.01"
suffix="€"
filled
dense
/>
<q-btn label="Limits Setzen" color="primary" dense @click="setLimits(limit)" />
</div>
</template>
</q-table>
</q-page>
</div>
</template>
<script lang="ts">
// TODO: Fill usefull data
import { ref, defineComponent, computed, onBeforeMount } from 'vue';
import { useBalanceStore } from '../store';
import { useUserStore } from 'src/plugins/user/store';
export default defineComponent({
// name: 'PageName'
2021-01-31 21:01:38 +00:00
setup() {
const store = useBalanceStore();
const userStore = useUserStore();
onBeforeMount(() => {
void store.getBalances();
void userStore.getUsers();
void store.getLimits();
});
2021-01-29 22:29:38 +00:00
const rows = computed(() => store.balances);
const limit = ref<number>();
const columns = [
{
name: 'userid',
label: 'Benutzer ID',
field: 'userid',
required: true,
align: 'left',
2021-04-17 18:37:21 +00:00
sortable: true,
format: (val: string) => userStore.users.find((a) => a.userid === val)?.display_name,
},
/*{
2021-01-29 22:29:38 +00:00
name: 'credit',
label: 'Haben',
field: 'credit',
2021-04-17 18:37:21 +00:00
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',
2021-04-17 18:37:21 +00:00
format: (val: number) => val.toFixed(2),
},*/
{
name: 'limit',
label: 'Limit',
format: (_: undefined, row: { userid: string }) =>
store.user_limits.find((a) => a.userid === row.userid)?.limit?.toFixed(2),
2021-01-29 22:29:38 +00:00
},
{
name: 'balance',
label: 'Kontostand',
format: (_: undefined, row: { debit: number; credit: number }) =>
2021-04-17 18:37:21 +00:00
(row.credit - row.debit).toFixed(2),
},
];
return { rows, columns, limit, setLimits: store.setLimits };
2021-04-17 18:37:21 +00:00
},
});
</script>