2024-01-31 04:08:20 +00:00
|
|
|
import { t } from '@lingui/macro';
|
2024-02-01 05:54:12 +00:00
|
|
|
import { Button, DatePicker, Form, Select } from 'antd';
|
2024-01-31 04:08:20 +00:00
|
|
|
import { SbtPageHeader } from 'components/page-header';
|
2024-01-31 09:54:39 +00:00
|
|
|
import { ReportOverViewTable } from 'components/report-detail';
|
2024-01-31 04:08:20 +00:00
|
|
|
import { Dayjs } from 'dayjs';
|
2024-02-01 05:54:12 +00:00
|
|
|
import { useOverViewReport } from 'queries/report';
|
|
|
|
import { useState } from 'react';
|
2024-01-31 04:08:20 +00:00
|
|
|
import { useNavigate } from 'react-router-dom';
|
|
|
|
|
|
|
|
export interface ReportFormValues {
|
|
|
|
dateRange: [Dayjs, Dayjs];
|
2024-01-31 09:54:39 +00:00
|
|
|
subsidiary: string;
|
2024-01-31 04:08:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const Dashboard = () => {
|
|
|
|
const navigate = useNavigate();
|
2024-02-01 05:54:12 +00:00
|
|
|
const [form] = Form.useForm<ReportFormValues>();
|
|
|
|
const [pagination, setPagination] = useState({
|
|
|
|
page: 1,
|
|
|
|
page_size: 10,
|
|
|
|
});
|
|
|
|
const [fromData, setFormData] = useState<{
|
|
|
|
start_date: string;
|
|
|
|
end_date: string;
|
|
|
|
subsidiary: string;
|
|
|
|
}>({
|
|
|
|
start_date: '',
|
|
|
|
end_date: '',
|
|
|
|
subsidiary: '',
|
|
|
|
});
|
|
|
|
const { isLoading, data } = useOverViewReport({
|
|
|
|
start_date: fromData.start_date,
|
|
|
|
end_date: fromData.end_date,
|
|
|
|
subsidiary: fromData.subsidiary,
|
2024-02-02 06:42:56 +00:00
|
|
|
page: pagination.page,
|
|
|
|
page_size: 30,
|
2024-02-01 05:54:12 +00:00
|
|
|
});
|
|
|
|
const handleSubmit = (values: ReportFormValues) => {
|
|
|
|
console.log('check values >>>', values);
|
|
|
|
setFormData({
|
|
|
|
start_date: values.dateRange[0].format('YYYY-MM-DDTHH:mm:ssZ'),
|
|
|
|
end_date: values.dateRange[1].format('YYYY-MM-DDTHH:mm:ssZ'),
|
|
|
|
subsidiary: values.subsidiary,
|
|
|
|
});
|
|
|
|
};
|
2024-01-31 04:08:20 +00:00
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<SbtPageHeader
|
|
|
|
title={t`Dashboard`}
|
|
|
|
extra={
|
2024-01-31 09:54:39 +00:00
|
|
|
<>
|
|
|
|
{/* <Button type='primary' icon={<DownloadOutlined />}>
|
|
|
|
Download
|
|
|
|
</Button> */}
|
2024-02-01 05:54:12 +00:00
|
|
|
{/* <Button type='primary' onClick={() => navigate('/reports')}>
|
2024-01-31 09:54:39 +00:00
|
|
|
{t`Go to Report page`}
|
2024-02-01 05:54:12 +00:00
|
|
|
</Button> */}
|
2024-01-31 09:54:39 +00:00
|
|
|
</>
|
2024-01-31 04:08:20 +00:00
|
|
|
}
|
|
|
|
/>
|
2024-02-01 05:54:12 +00:00
|
|
|
<Form
|
2024-01-31 09:54:39 +00:00
|
|
|
form={form}
|
|
|
|
style={{ display: 'flex', flexDirection: 'row', gap: 10 }}
|
|
|
|
onFinish={handleSubmit}
|
|
|
|
>
|
|
|
|
<Form.Item
|
|
|
|
name='dateRange'
|
|
|
|
label={t`Date`}
|
|
|
|
rules={[
|
|
|
|
{
|
|
|
|
required: true,
|
|
|
|
message: 'Please select a date range',
|
|
|
|
},
|
|
|
|
]}
|
|
|
|
>
|
|
|
|
<DatePicker.RangePicker />
|
|
|
|
</Form.Item>
|
2024-01-31 04:08:20 +00:00
|
|
|
|
2024-01-31 09:54:39 +00:00
|
|
|
<Form.Item
|
|
|
|
name='subsidiary'
|
|
|
|
label={t`Subsidiary`}
|
|
|
|
rules={[
|
|
|
|
{
|
|
|
|
required: true,
|
|
|
|
message: 'Please select a subsidiary',
|
|
|
|
},
|
|
|
|
]}
|
|
|
|
>
|
|
|
|
<Select
|
|
|
|
placeholder='Select a subsidiary'
|
|
|
|
style={{ width: 200 }}
|
|
|
|
options={[
|
|
|
|
{ value: 'all', label: 'ALL' },
|
|
|
|
{ value: 'sesp', label: 'SESP' },
|
|
|
|
{ value: 'seau', label: 'SEAU' },
|
|
|
|
]}
|
|
|
|
allowClear
|
|
|
|
/>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item>
|
2024-02-01 05:54:12 +00:00
|
|
|
<Button type='primary' htmlType='submit' style={{ height: 38 }}>
|
2024-01-31 09:54:39 +00:00
|
|
|
Submit
|
|
|
|
</Button>
|
|
|
|
</Form.Item>
|
2024-02-01 05:54:12 +00:00
|
|
|
</Form>
|
|
|
|
<ReportOverViewTable
|
|
|
|
pagination={pagination}
|
|
|
|
setPagination={setPagination}
|
|
|
|
isLoading={isLoading}
|
|
|
|
data={data}
|
|
|
|
/>
|
2024-01-31 04:08:20 +00:00
|
|
|
</>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Dashboard;
|