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 ( ); }, }, { title: '发起人', dataIndex: 'CName', width: '20%', }, { title: '发起时间', render: (record) => { return dayjs(record.create_time).format('YYYY-MM-DD HH:mm:ss'); }, width: '20%', }, { title: '流程状态', dataIndex: 'status', // render: (record) => { // switch (record.audit_status) { // case 0: return '审核中' // case 1: return '通过' // case 2: return '拒绝' // case 3: return '终审通过' // } // }, // width: '20%' }, { title: '操作', render: (text, record) => ( <> { navigate(`/profile/${record.id}`); }} > 详情 ), width: '10%', }, ]; const agreementColumns = [ { title: '标题', dataIndex: 'table_name', }, { title: '摘要', dataIndex: 'table_desc', render: (descList) => { return ( ); }, }, { title: '发起人', dataIndex: 'CName', }, { title: '发起时间', render: (record) => { return dayjs(record.create_time).format('YYYY-MM-DD HH:mm:ss'); }, }, { title: '流程状态', dataIndex: 'statusText', }, { title: '操作', dataIndex: 'showBtn', render: (text, record) => ( <> {text ? ( { if (record.type == TYPE.Contract) { setDetail(record); setConVisible(true); } else { navigate(`/oa/detail/${record.flow_id}/${record.id}`); } }} > 审批 ) : (
已审批
)} ), }, ]; const renderPage = (activeKey) => { if (activeKey == '1') return ( <> {' '}
{/*
*/}
); else if (activeKey == '2') return ( <> {' '} {/*
); }; return (
{renderPage(tabActive)}
runOACheck(data) // detail.status == Status.Checking // ? runOACheck(data) // : detail.status == Status.CalChecking // ? calCheckRun(data) // : null } handleCancel={() => setConVisible(false)} />
); } export default Approve;