import {Button,Flex, Form, Input, Modal, Radio, Space} from "antd"; import {useEffect, useState} from "react"; import {listDictionary, IDictionary, get, put} from "../../util/AjaxUtils.ts"; import useMessage from "antd/es/message/useMessage"; import InvoiceInfoList from "./info/InvoiceInfoList.tsx"; import InvoiceOrderList from "./order/InvoiceOrderList.tsx"; import useModal from "antd/es/modal/useModal"; type FormFieldType = { invoiceTitle: string; invoiceNo: string; invoiceAddress: string; invoicePhone: string; invoiceAccount: string; invoiceBank: string; content: string; rate: string; type: string; orderIds: string[]; invoiceNote: string; isSaveInvoiceInfo: boolean; invoiceAmount: number; } type EditProps = { invoiceId: string; handleOk: () => void; handleCancel: () => void; // invdataArray: any[]; } export default function InvoiceEdit(props: EditProps) { const [messageApi, messageContext] = useMessage(); const [modal, modalContext] = useModal(); const [form] = Form.useForm(); const [contentArray, setContentArray] = useState([]); const [rateArray, setRateArray] = useState([]); const [typeArray, setTypeArray] = useState([]); const [isInvoiceInfoListOpen, setIsInvoiceInfoListOpen] = useState(false); const [isInvoiceOrderListOpen, setIsInvoiceOrderListOpen] = useState(false); const [orderAmount, setOrderAmount] = useState('0'); useEffect(() => { if(!props.invoiceId) { return; } // 开票内容 listDictionary('e0251d55-cd52-4f57-be92-b2bef8a6dd62', messageApi).then((data) => { setContentArray([...data]); }) // 开票税率 listDictionary('b67d5208-db1d-4d0e-99de-cc22d9d50041', messageApi).then((data) => { setRateArray([...data]); }) // 开票类型 listDictionary('e4808c45-64ee-42fa-a413-a470fbdc0aea', messageApi).then((data) => { setTypeArray([...data]); }) get({ messageApi, url: `/api/invoice/get/${props.invoiceId}`, onSuccess({data}) { form.setFieldsValue(data); setOrderAmount((data.invoiceAmount / 100).toFixed(2)); } }) }, []); return ( <> {messageContext} {modalContext}
{ modal.confirm({ title: '提示', centered: true, content: '确定提交吗?', okText: '确定', cancelText: '取消', okButtonProps: { style: { backgroundColor: 'val(--color-primary)' } }, onOk: () => { put({ messageApi, url: `/api/invoice/update/${props.invoiceId}`, body: values, onSuccess() { messageApi.success('提交成功'); props.handleOk(); } }) } }); }} > {/* 开票信息
公司名称 *
纳税人识别号 *
公司地址 *
联系电话 *
开户行 *
开户行账号 *
开票内容 * {contentArray.map(item => {item.dataName})}
开票税率 * {rateArray.map(item => {item.dataName})}
发票类型 * {typeArray.map(item => {item.dataName})}
保存开票信息 *
开票内容
开票金额 *
{orderAmount}
开票备注
*/}
开票信息
公司名称*
纳税人识别号*
公司地址*
联系电话*
开户行*
开户行账号*
开票内容*
{contentArray.map(item => {item.dataName})}
开票税率*
{rateArray.map(item => {item.dataName})}
发票类型*
{typeArray.map(item => {item.dataName})}
保存开票信息*
开票内容
开票金额*
{orderAmount}
开票备注
setIsInvoiceInfoListOpen(false)} > { form.setFieldsValue({ invoiceTitle: selectedInvoice.invoiceTitle, invoiceNo: selectedInvoice.invoiceNo, invoiceAddress: selectedInvoice.invoiceAddress, invoicePhone: selectedInvoice.invoicePhone, invoiceAccount: selectedInvoice.invoiceAccount, invoiceBank: selectedInvoice.invoiceBank }); setIsInvoiceInfoListOpen(false); }} handleCancel={() => { setIsInvoiceInfoListOpen(false); }} /> setIsInvoiceOrderListOpen(false)} > { let totalAmount = 0; const orderIds: string[] = []; selectedOrders.forEach((item) => { totalAmount += item.totalAmount; orderIds.push(item.orderId); }); setOrderAmount((totalAmount / 100).toFixed(2)); setIsInvoiceOrderListOpen(false); form.setFieldValue('orderIds', orderIds); }} handleCancel={() => { setIsInvoiceOrderListOpen(false); }} /> ); }