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,
Divider,
} from 'antd';
import { ExclamationCircleOutlined } from '@ant-design/icons';
import { PageContainer } from '@ant-design/pro-components';
const { RangePicker } = DatePicker;
import { useRequest, useModel } from '@umijs/max';
import { queryProfileList, queryApplyList, applyRepeal } from '@/services/boom';
import dayjs from 'dayjs';
import { 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 Apply(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] = Form.useForm();
let navigate = useNavigate();
const contractResult = (res) => {
let data = res.data?.list?.map((item) => {
return {
...item,
table_name: `${user.CName}提交的合同审批`,
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: OAApplyData,
run: OAApplyRun,
loading: OAApplyLoading,
} = useRequest(queryApplyList, {
// manual: true,
formatResult: (res) => {
return {
data: res.data?.list?.map((item) => {
return {
...item,
CName: item.AuthorInfo.CName,
table_desc: [item.table_desc],
table_name: item.name,
};
}),
pagination: res.data?.pagination,
};
},
});
//合同管理相关数据
//请求我的申请列表
const {
data: conApplyData,
run: conApplyRun,
loading: conApplyLoading,
} = useRequest(
(data) =>
queryGetContractList({ created_by: user?.ID, pageSize: 10, ...data }),
{
// manual: true,
// defaultParams: [{ created_by: user?.ID, pageSize: 10 }],
formatResult: contractResult,
},
);
//撤回申请
const { run: runRepeal, loading: repealLoading } = useRequest(
(id) => applyRepeal({ id: id }),
{
manual: true,
onSuccess: () => {
OAApplyRun();
},
},
);
const applyData = useMemo(() => {
let result = [];
if (OAApplyData?.data && OAApplyData?.data.length > 0)
result = [...OAApplyData?.data];
return result;
}, [OAApplyData]);
const onTabChange = (activeKey) => {
if (activeKey == '1') {
OAApplyRun();
} else {
conApplyRun({ current: 1 });
}
setTabActive(activeKey);
};
const onRepeal = (record) => {
Modal.confirm({
title: '撤回',
icon: