import React, { Fragment, useState, useEffect, useMemo, useRef } from 'react'; import { useNavigate } from 'umi'; import { Card, Table, Empty, Button, Modal, message, Form, DatePicker, Row, Col, Select, } from 'antd'; import { PageContainer } from '@ant-design/pro-components'; const { RangePicker } = DatePicker; import { useRequest, useModel } from '@umijs/max'; import { queryProfileList, queryApplyList, audit } from '@/services/boom'; import dayjs from 'dayjs'; import { queryContractCancelCheck, queryContractCheck, queryGetContractList, } from '@/services/contract'; import ContractModal, { Status, StatusText, Type, } from '../ContractManager/component/Modal'; import PageContent from '@/components/PageContent'; const TYPE = { Contract: 1, OA: 2, }; function Approve(props) { const { initialState: { user }, } = useModel('@@initialState'); const [tabActive, setTabActive] = useState('1'); const [detail, setDetail] = useState({}); const [conVisible, setConVisible] = useState(false); const approveFormRef = useRef(); const applyFormRef = useRef(); let navigate = useNavigate(); const contractResult = (res) => { let data = res.data?.list?.map((item) => { return { ...item, table_name: `${item.created_name}提交的合同审批`, table_desc: [ `合同名称:${item.name}`, `合同编号:${item.code}`, `合同金额:${item.amount}万元`, ], CName: user.CName, create_time: item.cancel_on || item.created_on, type: TYPE.Contract, statusText: StatusText[item.status], showBtn: item.status == Status.Checking || item.status == Status.CalChecking, // key: `${TYPE.Contract}_${item.id}`, }; }); return { data, pagination: res.data?.pagination }; }; //OA我的审批和待审批列表 const { data: OAAuditData, run: OAAuditRun, loading: OAAuditLoading, } = useRequest(queryProfileList, { formatResult: (res) => { return { data: res.data?.list?.map((item) => { return { ...item, CName: item.AuthorInfo.CName, table_desc: [item.table_desc], statusText: item.status, // key: `${TYPE.Contract}_${item.id}`, showBtn: true, type: TYPE.OA, }; }), pagination: res.data?.pagination, }; }, }); //合同 我的待审批列表 const { data: conAuditData, run: conAuditRun, loading: conAduitLoading, } = useRequest( (data) => queryGetContractList({ ...data, is_parent: -1, page_size: 999 }), { // manual: true, formatResult: contractResult, }, ); // //审核合同 // const { run: runCheck, loading: checkLoading } = useRequest( // (data) => queryContractCheck(data), // { // manual: true, // onSuccess: () => { // conAuditRun({ multi_status: '1,4', current: 1, page_size: 10 }); // // conAuditedRun({ check_by: user.CName }); // setConVisible(false); // message.success('审核成功'); // }, // onErroe: () => { // message.error('审核失败'); // }, // }, // ); // //作废审核 // const { run: calCheckRun } = useRequest( // (data) => queryContractCancelCheck(data), // { // manual: true, // onSuccess: () => { // message.success('审核成功'); // setConVisible(false); // conAuditRun({ multi_status: '1,4', current: 1, page_size: 10 }); // }, // onError: () => { // message.success('审核失败'); // }, // }, // ); // //审核合同 // const { run: runCheck, loading: checkLoading } = useRequest( // (data) => queryContractCheck(data), // { // manual: true, // onSuccess: () => { // conAuditRun({ multi_status: '1,4', current: 1, page_size: 10 }); // // conAuditedRun({ check_by: user.CName }); // setConVisible(false); // message.success('审核成功'); // }, // onErroe: () => { // message.error('审核失败'); // }, // }, // ); // //作废审核 // const { run: calCheckRun } = useRequest( // (data) => queryContractCancelCheck(data), // { // manual: true, // onSuccess: () => { // message.success('审核成功'); // setConVisible(false); // conAuditRun({ multi_status: '1,4', current: 1, page_size: 10 }); // }, // onError: () => { // message.success('审核失败'); // }, // }, // ); //审核合同 const { run: runOACheck } = useRequest(audit, { manual: true, onSuccess: (data) => { if (data?.Code) { message.error(data?.Msg || '审核失败'); return; } setTimeout(() => { conAuditRun({ multi_status: '1,4', current: 1, page_size: 10 }); }, 1000); // conAuditedRun({ check_by: user.CName }); setConVisible(false); message.success('审核成功'); }, onErroe: () => { message.error('审核失败'); }, }); const applyData = useMemo(() => { let result = []; if (OAAuditData?.data && OAAuditData?.data.length > 0) result = [...OAAuditData?.data]; return result; }, [OAAuditData]); const onTabChange = (activeKey) => { if (activeKey == '1') { OAAuditRun({ current: 1, page_size: 10 }); } else { if (user?.Permission['menu-001-audit']) conAuditRun({ multi_status: '1,4', current: 1, page_size: 10 }); } setTabActive(activeKey); }; const handleApplySubmit = (values) => { console.log(values); OAApplyRun(values); }; const handleProfilePaginationChange = (pagination) => { conAuditRun({ multi_status: user?.Permission['menu-001-audit'] ? '1,4' : undefined, current: pagination.current, page_size: 10, }); }; const handleApplyPaginationChange = (pagination) => { OAAuditRun({ current: pagination.current, pageSize: pagination.pageSize, }); }; const columns = [ { title: '标题', dataIndex: 'table_name', width: '30%', }, { title: '摘要', dataIndex: 'table_desc', render: (descList) => { return (