diff --git a/web-app/src/pages/IssuesPage.jsx b/web-app/src/pages/IssuesPage.jsx index 4eff316..5534b78 100644 --- a/web-app/src/pages/IssuesPage.jsx +++ b/web-app/src/pages/IssuesPage.jsx @@ -1,4 +1,4 @@ -import {notification, Spin, Timeline, Input, Modal, Button} from "antd"; +import {notification, Spin, Table, Input, Modal, Row, Col, DatePicker, Tooltip, Button} from "antd"; import getAllLensIssues from "../api/lens_issues/GetAllLensIssues.jsx"; import {useEffect, useState} from "react"; import {useAuth} from "../AuthContext.jsx"; @@ -12,9 +12,12 @@ const IssuesPage = () => { const [searchTerm, setSearchTerm] = useState(""); const [selectedIssue, setSelectedIssue] = useState(null); - const [current, setCurrent] = useState(1); + const [currentPage, setCurrentPage] = useState(1); const [pageSize, setPageSize] = useState(10); + const [startFilterDate, setStartFilterDate] = useState(null); + const [endFilterDate, setEndFilterDate] = useState(null); + useEffect(() => { fetchLensIssuesWithCache(); }, []); @@ -62,50 +65,121 @@ const IssuesPage = () => { new Date(issue.issue_date).toLocaleDateString().includes(searchTerm) ); + const columns = [ + { + title: "Дата выдачи", + dataIndex: "issue_date", + key: "issue_date", + render: (text) => new Date(text).toLocaleDateString(), + sorter: (a, b) => new Date(a.issue_date) - new Date(b.issue_date), + }, + { + title: "Пациент", + dataIndex: "patient", + key: "patient", + render: (patient) => `${patient.last_name} ${patient.first_name}`, + }, + { + title: "Выдал", + dataIndex: "doctor", + key: "doctor", + render: (doctor) => `${doctor.last_name} ${doctor.first_name}`, + }, + { + title: "Линза", + dataIndex: "lens", + key: "lens", + render: (lens) => `Сторона: ${lens.side}, Диаметр: ${lens.diameter}`, + }, + { + title: "Действия", + key: "actions", + render: (_, issue) => ( + setSelectedIssue(issue)}>Подробнее + ), + }, + ]; + return (
- + + + + + + + { + setStartFilterDate(dates[0]); + setEndFilterDate(dates[1]); + }} + /> + + + {startFilterDate && endFilterDate && ( + + + + + + )} + + {loading ? (
}/>
) : ( - ( - { - key: issue.id, - label: new Date(issue.issue_date).toLocaleDateString(), - children: ( -
-

Дата выдачи: {new Date(issue.issue_date).toLocaleDateString()}

-

Пациент: {issue.patient.last_name} {issue.patient.first_name}

-

Врач: {issue.doctor.last_name} {issue.doctor.first_name}

-

Линза: {issue.lens.side}, Диаметр: {issue.lens.diameter}

- -
- ), - } - ))} + { - setCurrent(page); + setCurrentPage(page); setPageSize(newPageSize); }, }} + showSorterTooltip={false} /> )} setSelectedIssue(null)} footer={null} @@ -114,7 +188,7 @@ const IssuesPage = () => {

Дата выдачи: {new Date(selectedIssue.issue_date).toLocaleDateString()}

Пациент: {selectedIssue.patient.last_name} {selectedIssue.patient.first_name}

-

Врач: {selectedIssue.doctor.last_name} {selectedIssue.doctor.first_name}

+

Выдал: {selectedIssue.doctor.last_name} {selectedIssue.doctor.first_name}

Линза: {selectedIssue.lens.side}, Диаметр: {selectedIssue.lens.diameter}

)} diff --git a/web-app/src/pages/LensesPage.jsx b/web-app/src/pages/LensesPage.jsx index 7b06da4..38d10d6 100644 --- a/web-app/src/pages/LensesPage.jsx +++ b/web-app/src/pages/LensesPage.jsx @@ -209,7 +209,6 @@ const LensesPage = () => { /> ); - const columns = [ { title: "Тор", @@ -331,7 +330,7 @@ const LensesPage = () => { Расширенный поиск -
+