Есть ProductsView.jsx:
```
import React, { useEffect, useState } from "react";
import ProductService from "../../api/services/product-service";
import { Table, Button, Space } from "antd";
import { EditOutlined, DeleteOutlined } from "@ant-design/icons";
import { Modal, Form, Input } from "antd";

export const ProductsView = ({
    ...props
}) => {
    /**
     *  локальное состояние компонента
     *  здесь будет храниться список товаров
     */
    const columns = [
        {
            title: 'Код',
            dataIndex: 'id',
            key: 'id',
        },
        {
            title: 'Наименование',
            dataIndex: 'title',
            key: 'title',
        },
        {
            title: 'Действия',
            key: 'actions',
            render: (text, record) => {
                return (
                    <Space size="middle">
                        <div onClick={() => updateRecordHandler(record)}>
                            <EditOutlined/>
                        </div>
                        
                        <div onClick={() => deleteRecordHandler(record.id)}>
                            <DeleteOutlined/>
                        </div>
                    </Space>
                )
            }
        }
    ];
    // Добавьте код автоматического сохранения/логики отправки под ваши нужды
    const handleOk = async () => {
        try {
            if (currentRecord?.id) {
                // Обновление существующей записи
                await ProductService.updateRecord(currentRecord);
            } else {
                // Создание новой записи
                await ProductService.createRecord(currentRecord);
            }
            // Обновление списка после изменения
            const updatedList = await ProductService.getAllRecords();
            setList(updatedList);
            // Закрытие модального окна
            setVisible(false);
            setCurrentRecord(null);
        } catch (error) {
            console.error('Ошибка при сохранении данных:', error);
        }
    };

const handleCancel = () => {
    setVisible(false);
};
    const createRecordHandler = () => {
        setCurrentRecord(null)
        setVisible(true);
    }

    const updateRecordHandler = (record) => {
        setCurrentRecord(record)
        setVisible(true)
    }

    const deleteRecordHandler = async(recordId) => {
        await ProductService.removeRecord(recordId);
        setList(list.filter(it => it.id !== recordId));
    }

  const [list, setList] = useState([]);
  const [currentRecord, setCurrentRecord] = useState(null);
    const [visible, setVisible] = useState(false);

    /**
     * в момент, когда компонент отрисован,
     * вызывается запрос на получение списка товаров
     */
    useEffect(() => {
        async function fetchData(){
        /**
         * запрос - это асинхронная функция
         */
        const list = await ProductService.getAllRecords();

        /** 
         * после того, как список получен, 
         * устанавливаем его в локальное состояние 
         */
        setList(list);
        /**
         * когда компонент будет демонтирован со страницы,
         * очищаем локальное состояние
         */
        return () => setList([]);
    }
    
    fetchData();
}, [])

return (
    <div style={{ padding: 16 }}>
        <Table dataSource={list} columns={columns} />
        <Button onClick={createRecordHandler}>
            Создать
        </Button>

        <Modal
            title={currentRecord ? "Обновить запись" : "Создать запись"}
            visible={visible}
            onOk={handleOk}
            onCancel={handleCancel}
        >
            <Form>
                <Form.Item label="Название">
                    <Input
                        value={currentRecord ? currentRecord.title : ''}
                        onChange={(e) => setCurrentRecord({ ...currentRecord, title: e.target.value })}
                    />
                </Form.Item>
                {/* Дополнительные поля формы можно добавить здесь */}
            </Form>
        </Modal>
    </div>
);

}

```
По его подобию напиши OrganizationsView.jsx, я могу дать его organization-service.js:
```
import { instanceAxios } from "../axios-config";

export default class OrganizationService {

    static apiUrl = '/api/organizations';

    /**
     * Получить все записи
     * @returns {Promise<any>} 
     */
    static async getAllRecords() {
        const res = await instanceAxios.get(this.apiUrl);
        return res.data;
    }

    /**
     * Создать запись
     * @param {Object} body - Данные для создания новой записи
     * @returns {Promise<any>} 
     */
    static async createRecord(body) {
        const res = await instanceAxios.post(this.apiUrl, body);
        return res.data;
    }

    /**
     * Обновить запись
     * @param {Object} body - Данные для обновления записи
     * @returns {Promise<any>} 
     */
    static async updateRecord(body) {
        const res = await instanceAxios.put(`${this.apiUrl}/${body.id}`, body);
        return res.data;
    }
    
    /**
     * Удалить запись
     * @param {number|string} recordId - Идентификатор записи для удаления
     * @returns {Promise<any>} 
     */
    static async removeRecord(recordId) {
        const res = await instanceAxios.delete(`${this.apiUrl}/${recordId}`);
        return res.data;
    }
}
```