сделал добавление и редактирование линз
This commit is contained in:
parent
c2d5407c22
commit
073ed5fc11
@ -1,4 +1,5 @@
|
|||||||
from sqlalchemy import Integer, Column, DateTime, func
|
from sqlalchemy import Integer, Column, DateTime
|
||||||
|
from sqlalchemy.sql import func
|
||||||
|
|
||||||
from app.domain.models import Base
|
from app.domain.models import Base
|
||||||
|
|
||||||
@ -7,5 +8,5 @@ class BaseModel(Base):
|
|||||||
__abstract__ = True
|
__abstract__ = True
|
||||||
|
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
created_at = Column(DateTime, server_default=func.now(), default=func.now, nullable=False)
|
created_at = Column(DateTime, server_default=func.now(), nullable=False)
|
||||||
updated_at = Column(DateTime, server_default=func.now(), default=func.now, onupdate=func.now, nullable=False)
|
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), nullable=False)
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import CONFIG from "../../core/Config.jsx";
|
|||||||
|
|
||||||
const deleteLens = async (token, lens_id) => {
|
const deleteLens = async (token, lens_id) => {
|
||||||
try {
|
try {
|
||||||
const response = await axios.delete(`${CONFIG.BASE_URL}/lenses/${lens_id}`, {
|
const response = await axios.delete(`${CONFIG.BASE_URL}/lenses/${lens_id}/`, {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${token}`,
|
Authorization: `Bearer ${token}`,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import {Form, InputNumber, Modal, notification, Select} from "antd";
|
import {Col, Form, InputNumber, Modal, notification, Row, Select} from "antd";
|
||||||
import {useEffect, useState} from "react";
|
import {useEffect, useState} from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import getAllLensTypes from "../../api/lens_types/GetAllLensTypes.jsx";
|
import getAllLensTypes from "../../api/lens_types/GetAllLensTypes.jsx";
|
||||||
@ -7,14 +7,12 @@ import {useAuth} from "../../AuthContext.jsx";
|
|||||||
|
|
||||||
const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
||||||
const {user} = useAuth();
|
const {user} = useAuth();
|
||||||
|
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
|
|
||||||
const [lensTypes, setLensTypes] = useState([]);
|
const [lensTypes, setLensTypes] = useState([]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
fetchLensTypes();
|
fetchLensTypes();
|
||||||
}, [])
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
@ -22,7 +20,7 @@ const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
|||||||
if (lens) {
|
if (lens) {
|
||||||
form.setFieldsValue({
|
form.setFieldsValue({
|
||||||
...lens,
|
...lens,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [visible, lens]);
|
}, [visible, lens]);
|
||||||
@ -39,7 +37,7 @@ const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
|||||||
placement: "topRight",
|
placement: "topRight",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
const handleOk = async () => {
|
const handleOk = async () => {
|
||||||
try {
|
try {
|
||||||
@ -47,7 +45,7 @@ const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
|||||||
onSubmit(values);
|
onSubmit(values);
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log("Validation Failed:", error)
|
console.log("Validation Failed:", error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -68,83 +66,123 @@ const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
|||||||
centered
|
centered
|
||||||
>
|
>
|
||||||
<Form form={form} layout={"vertical"}>
|
<Form form={form} layout={"vertical"}>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="tor"
|
name="tor"
|
||||||
label="Тор"
|
label="Тор"
|
||||||
rules={[{required: true, message: "Введите тор"}]}
|
rules={[{required: true, message: "Введите тор"}]}
|
||||||
>
|
>
|
||||||
<InputNumber
|
<InputNumber
|
||||||
|
style={{width: '100%'}}
|
||||||
step={0.1}
|
step={0.1}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="trial"
|
name="trial"
|
||||||
label="Острота зрения (Trial)"
|
label="Острота зрения (Trial)"
|
||||||
rules={[{required: true, message: "Введите остроту зрения"}]}
|
rules={[{required: true, message: "Введите остроту зрения"}]}
|
||||||
>
|
>
|
||||||
<InputNumber
|
<InputNumber
|
||||||
|
style={{width: '100%'}}
|
||||||
step={0.1}
|
step={0.1}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="esa"
|
name="esa"
|
||||||
label="Esa"
|
label="Esa"
|
||||||
rules={[{required: true, message: "Введите esa"}]}
|
rules={[{required: true, message: "Введите esa"}]}
|
||||||
>
|
>
|
||||||
<InputNumber/>
|
<InputNumber
|
||||||
</Form.Item>
|
style={{width: '100%'}}
|
||||||
|
step={0.1}
|
||||||
|
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="fvc"
|
name="fvc"
|
||||||
label="FVC"
|
label="FVC"
|
||||||
rules={[{required: true, message: "Введите fvc"}]}
|
rules={[{required: true, message: "Введите fvc"}]}
|
||||||
>
|
>
|
||||||
<InputNumber/>
|
<InputNumber
|
||||||
</Form.Item>
|
style={{width: '100%'}}
|
||||||
|
step={0.1}
|
||||||
|
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="preset_refraction"
|
name="preset_refraction"
|
||||||
label="Пресетная рефракция"
|
label="Пресетная рефракция"
|
||||||
rules={[{required: true, message: "Введите пресетную рефракцию"}]}
|
rules={[{required: true, message: "Введите пресетную рефракцию"}]}
|
||||||
>
|
>
|
||||||
<InputNumber/>
|
<InputNumber
|
||||||
</Form.Item>
|
style={{width: '100%'}}
|
||||||
|
step={0.1}
|
||||||
|
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="diameter"
|
name="diameter"
|
||||||
label="Диаметр"
|
label="Диаметр"
|
||||||
rules={[{required: true, message: "Введите диаметр"}]}
|
rules={[{required: true, message: "Введите диаметр"}]}
|
||||||
>
|
>
|
||||||
<InputNumber/>
|
<InputNumber
|
||||||
</Form.Item>
|
style={{width: '100%'}}
|
||||||
|
step={0.1}
|
||||||
|
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="periphery_toricity"
|
name="periphery_toricity"
|
||||||
label="Периферия торичность"
|
label="Периферия торичность"
|
||||||
rules={[{required: true, message: "Введите периферию торичность"}]}
|
rules={[{required: true, message: "Введите периферию торичность"}]}
|
||||||
>
|
>
|
||||||
<InputNumber/>
|
<InputNumber
|
||||||
</Form.Item>
|
style={{width: '100%'}}
|
||||||
|
step={0.1}
|
||||||
|
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col xs={24} md={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="side"
|
name="side"
|
||||||
label="Сторона"
|
label="Сторона"
|
||||||
rules={[{required: true, message: "Выберите сторону"}]}
|
rules={[{required: true, message: "Выберите сторону"}]}
|
||||||
>
|
>
|
||||||
<Select>
|
<Select style={{width: '100%'}}>
|
||||||
<Select.Option value="left">Левая</Select.Option>
|
<Select.Option value="левая">Левая</Select.Option>
|
||||||
<Select.Option value="right">Правая</Select.Option>
|
<Select.Option value="правая">Правая</Select.Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="type_id"
|
name="type_id"
|
||||||
label="Тип линзы"
|
label="Тип линзы"
|
||||||
rules={[{required: true, message: "Выберите тип линзы"}]}
|
rules={[{required: true, message: "Выберите тип линзы"}]}
|
||||||
>
|
>
|
||||||
<Select>
|
<Select style={{width: '100%'}}>
|
||||||
{lensTypes.map((type) => (
|
{lensTypes.map((type) => (
|
||||||
<Select.Option key={type.id} value={type.id}>
|
<Select.Option key={type.id} value={type.id}>
|
||||||
{type.title}
|
{type.title}
|
||||||
@ -154,7 +192,7 @@ const LensFormModal = ({visible, onCancel, onSubmit, lens}) => {
|
|||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
)
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
LensFormModal.propTypes = {
|
LensFormModal.propTypes = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user