import React from 'react';
import PropTypes from 'prop-types';
import VmGasModal from '../vm-gas-modal';
import { Form } from 'antd';
import BaseContent from './base';
import useModal from '../vm-hooks/useModal';
import './style';
import { fetchBatchApprove } from './api';
const TABS_BASE = 'gas-security-check-base';
const Modal = ({ id, urlHead, audit, auditCallback, ...resetProps }) => {
    const [form] = Form.useForm();
    const tabs = [
        {
            value: '入户安检记录',
            key: TABS_BASE,
            content: <BaseContent id={id} urlHead={urlHead} audit={audit} form={form} />,
        },
    ];
    const onOk = () => {
        form.validateFields().then(values => {
            fetchBatchApprove(
                {
                    ...values,
                    ids: id,
                },
                urlHead,
            ).then(status => {
                auditCallback && auditCallback(status);
                form.resetFields();
            });
        });
    };
    return (
        <VmGasModal
            title="入户安检记录"
            {...resetProps}
            tabs={tabs}
            showConfirm={audit}
            subtitle={audit ? '审核' : '查看'}
            onOk={onOk}
        />
    );
};

const VtxGasSecurityCheckModal = props => {
    const { label, id, urlHead, audit, auditCallback } = props;
    const { showModal, ...modalProps } = useModal();

    return (
        <>
            {label ? (
                <a type="link" onClick={showModal}>
                    {label}
                </a>
            ) : (
                <span>-</span>
            )}
            {modalProps.visible && (
                <Modal
                    id={id}
                    urlHead={urlHead}
                    {...modalProps}
                    audit={audit}
                    auditCallback={auditCallback}
                />
            )}
        </>
    );
};

Modal.propTypes = {
    id: PropTypes.string.isRequired,
    urlHead: PropTypes.string,
    audit: PropTypes.bool,
    auditCallback: PropTypes.func,
};

VtxGasSecurityCheckModal.propTypes = {
    id: PropTypes.string.isRequired,
    label: PropTypes.string.isRequired,
    urlHead: PropTypes.string,
    audit: PropTypes.bool,
    auditCallback: PropTypes.func,
};

VtxGasSecurityCheckModal.Modal = Modal;

export default VtxGasSecurityCheckModal;
