2024-12-02 23:44:01 +04:00
|
|
|
<script setup lang="ts">
|
2024-12-03 18:37:22 +04:00
|
|
|
import { useAsyncState } from '@vueuse/core';
|
|
|
|
import ChangeRecordMenu from '../support/ChangeRecordManager.vue';
|
|
|
|
import { ChangeRecordService } from '../../core/services/change-record-service';
|
|
|
|
import { inject } from 'vue';
|
2024-12-03 18:58:51 +04:00
|
|
|
import { DeleteOutlined } from '@ant-design/icons-vue';
|
2024-12-02 23:44:01 +04:00
|
|
|
|
2024-12-03 18:37:22 +04:00
|
|
|
const changeRecordService = inject(ChangeRecordService.name) as ChangeRecordService;
|
|
|
|
|
|
|
|
const { state, isReady } = useAsyncState(() => changeRecordService.getList(), []);
|
|
|
|
const columns = [
|
|
|
|
{
|
|
|
|
title: 'Дата',
|
|
|
|
dataIndex: 'changedAt',
|
|
|
|
key: 'changedAt',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Сумма',
|
|
|
|
dataIndex: 'sum',
|
|
|
|
key: 'sum',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Группа расходов',
|
|
|
|
dataIndex: 'spendingGroupName',
|
|
|
|
key: 'spendingGroupName',
|
2024-12-03 18:58:51 +04:00
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Операция',
|
|
|
|
dataIndex: 'operation',
|
|
|
|
key: 'operation',
|
2024-12-03 18:37:22 +04:00
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
const refreshData = () => {
|
|
|
|
changeRecordService.getList().then(data => {
|
|
|
|
state.value = data;
|
|
|
|
isReady.value = true;
|
|
|
|
});
|
|
|
|
}
|
2024-12-03 18:58:51 +04:00
|
|
|
|
|
|
|
const onDelete = (key: string) => {
|
|
|
|
changeRecordService.deleteRecord(key)
|
|
|
|
.then(() => {
|
|
|
|
refreshData();
|
|
|
|
})
|
|
|
|
}
|
2024-12-02 23:44:01 +04:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
2024-12-08 23:50:09 +04:00
|
|
|
<div class="base-page">
|
|
|
|
<h1>История изменений баланса</h1>
|
|
|
|
<ChangeRecordMenu :refreshData="refreshData" />
|
|
|
|
<a-table :dataSource="state" :columns="columns" v-if="isReady" >
|
|
|
|
<template #bodyCell="{ column, record }">
|
|
|
|
<template v-if="column.dataIndex === 'operation'">
|
|
|
|
<a-popconfirm
|
|
|
|
v-if="state?.length"
|
|
|
|
title="Точно удалить?"
|
|
|
|
@confirm="onDelete(record.id)"
|
|
|
|
>
|
|
|
|
<a><DeleteOutlined /> Удалить</a>
|
|
|
|
</a-popconfirm>
|
|
|
|
</template>
|
2024-12-03 18:58:51 +04:00
|
|
|
</template>
|
2024-12-08 23:50:09 +04:00
|
|
|
</a-table>
|
|
|
|
<div v-else>
|
|
|
|
<a-spin size="large" />
|
|
|
|
</div>
|
2024-12-03 18:37:22 +04:00
|
|
|
</div>
|
2024-12-02 23:44:01 +04:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<style scoped>
|
2024-12-08 23:50:09 +04:00
|
|
|
.layout {
|
|
|
|
|
|
|
|
}
|
2024-12-02 23:44:01 +04:00
|
|
|
</style>
|