|  | @@ -1,233 +1,35 @@
 | 
											
												
													
														|  |  import React, { Fragment, useState, useEffect, useMemo, useRef } from 'react';
 |  |  import React, { Fragment, useState, useEffect, useMemo, useRef } from 'react';
 | 
											
												
													
														|  |  import { useNavigate } from 'umi';
 |  |  import { useNavigate } from 'umi';
 | 
											
												
													
														|  | -import {
 |  | 
 | 
											
												
													
														|  | -  Card,
 |  | 
 | 
											
												
													
														|  | -  Table,
 |  | 
 | 
											
												
													
														|  | -  Empty,
 |  | 
 | 
											
												
													
														|  | -  Button,
 |  | 
 | 
											
												
													
														|  | -  Modal,
 |  | 
 | 
											
												
													
														|  | -  message,
 |  | 
 | 
											
												
													
														|  | -  Form,
 |  | 
 | 
											
												
													
														|  | -  DatePicker,
 |  | 
 | 
											
												
													
														|  | -  Row,
 |  | 
 | 
											
												
													
														|  | -  Col,
 |  | 
 | 
											
												
													
														|  | -  Select,
 |  | 
 | 
											
												
													
														|  | -} from 'antd';
 |  | 
 | 
											
												
													
														|  | -const { RangePicker } = DatePicker;
 |  | 
 | 
											
												
													
														|  | -import { useRequest, useModel } from '@umijs/max';
 |  | 
 | 
											
												
													
														|  | -import { queryProfileList, queryApplyList } from '@/services/boom';
 |  | 
 | 
											
												
													
														|  | 
 |  | +import { Table, Modal, DatePicker, Divider } from 'antd';
 | 
											
												
													
														|  | 
 |  | +import { useRequest } from '@umijs/max';
 | 
											
												
													
														|  | 
 |  | +import { queryProfileList, queryApplyList, applyRepeal } from '@/services/boom';
 | 
											
												
													
														|  |  import dayjs from 'dayjs';
 |  |  import dayjs from 'dayjs';
 | 
											
												
													
														|  | -import { queryContractCheck, queryGetContractList } from '@/services/contract';
 |  | 
 | 
											
												
													
														|  | -import ContractModal, {
 |  | 
 | 
											
												
													
														|  | -  Status,
 |  | 
 | 
											
												
													
														|  | -  StatusText,
 |  | 
 | 
											
												
													
														|  | -  Type,
 |  | 
 | 
											
												
													
														|  | -} from '../ContractManager/component/Modal';
 |  | 
 | 
											
												
													
														|  |  import PageContent from '@/components/PageContent';
 |  |  import PageContent from '@/components/PageContent';
 | 
											
												
													
														|  | 
 |  | +import { queryApprovedList } from '@/services/contract';
 | 
											
												
													
														|  | 
 |  | +import { ExclamationCircleOutlined } from '@ant-design/icons';
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +export const Type = {
 | 
											
												
													
														|  | 
 |  | +  OA: 1,
 | 
											
												
													
														|  | 
 |  | +  CON: 2,
 | 
											
												
													
														|  | 
 |  | +};
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  function profile(props) {
 |  |  function profile(props) {
 | 
											
												
													
														|  | -  const {
 |  | 
 | 
											
												
													
														|  | -    initialState: { user },
 |  | 
 | 
											
												
													
														|  | -  } = useModel('@@initialState');
 |  | 
 | 
											
												
													
														|  |    const [tabActive, setTabActive] = useState('1');
 |  |    const [tabActive, setTabActive] = useState('1');
 | 
											
												
													
														|  | -  const approveFormRef = useRef();
 |  | 
 | 
											
												
													
														|  | -  const applyFormRef = useRef();
 |  | 
 | 
											
												
													
														|  | -  let navigate = useNavigate();
 |  | 
 | 
											
												
													
														|  | -  const [detail, setDetail] = useState({});
 |  | 
 | 
											
												
													
														|  | -  const [conVisible, setConVisible] = useState(false);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  const TYPE = {
 |  | 
 | 
											
												
													
														|  | -    Contract: 1,
 |  | 
 | 
											
												
													
														|  | -    OA: 2,
 |  | 
 | 
											
												
													
														|  | -  };
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  //OA我的申请列表
 |  | 
 | 
											
												
													
														|  | -  const {
 |  | 
 | 
											
												
													
														|  | -    data: OAApplyData,
 |  | 
 | 
											
												
													
														|  | -    run: OAApplyRun,
 |  | 
 | 
											
												
													
														|  | -    loading: OAApplyLoading,
 |  | 
 | 
											
												
													
														|  | -  } = useRequest(queryProfileList, {
 |  | 
 | 
											
												
													
														|  | -    // manual: true,
 |  | 
 | 
											
												
													
														|  | -    formatResult: (res) => {
 |  | 
 | 
											
												
													
														|  | -      return res.data?.list?.map((item) => {
 |  | 
 | 
											
												
													
														|  | -        return {
 |  | 
 | 
											
												
													
														|  | -          ...item,
 |  | 
 | 
											
												
													
														|  | -          CName: item.AuthorInfo.CName,
 |  | 
 | 
											
												
													
														|  | -          table_desc: [item.table_desc],
 |  | 
 | 
											
												
													
														|  | -          statusText: (() => {
 |  | 
 | 
											
												
													
														|  | -            switch (item.audit_status) {
 |  | 
 | 
											
												
													
														|  | -              case 0:
 |  | 
 | 
											
												
													
														|  | -                return '审核中';
 |  | 
 | 
											
												
													
														|  | -              case 1:
 |  | 
 | 
											
												
													
														|  | -                return '通过';
 |  | 
 | 
											
												
													
														|  | -              case 2:
 |  | 
 | 
											
												
													
														|  | -                return '拒绝';
 |  | 
 | 
											
												
													
														|  | -              case 3:
 |  | 
 | 
											
												
													
														|  | -                return '终审通过';
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -          })(),
 |  | 
 | 
											
												
													
														|  | -          key: `${TYPE.Contract}_${item.id}`,
 |  | 
 | 
											
												
													
														|  | -          type: TYPE.OA,
 |  | 
 | 
											
												
													
														|  | -        };
 |  | 
 | 
											
												
													
														|  | -      });
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | 
 |  | +  const [loading, setLoading] = useState(false);
 | 
											
												
													
														|  | 
 |  | +  const [columns, setColumes] = useState([]);
 | 
											
												
													
														|  | 
 |  | +  const [data, setData] = useState({
 | 
											
												
													
														|  | 
 |  | +    list: [],
 | 
											
												
													
														|  | 
 |  | +    pagination: {},
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  | -  //OA我的审批和待审批列表
 |  | 
 | 
											
												
													
														|  | -  const {
 |  | 
 | 
											
												
													
														|  | -    data: OAAuditData,
 |  | 
 | 
											
												
													
														|  | -    run: OAAuditRun,
 |  | 
 | 
											
												
													
														|  | -    loading: OAAuditLoading,
 |  | 
 | 
											
												
													
														|  | -  } = useRequest(queryProfileList, {
 |  | 
 | 
											
												
													
														|  | -    manual: true,
 |  | 
 | 
											
												
													
														|  | -    formatResult: (res) => {
 |  | 
 | 
											
												
													
														|  | -      return 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,
 |  | 
 | 
											
												
													
														|  | -        };
 |  | 
 | 
											
												
													
														|  | -      });
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -  });
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  //合同管理返回处理函数
 |  | 
 | 
											
												
													
														|  | -  const contractResult = (res) => {
 |  | 
 | 
											
												
													
														|  | -    let data = res.data?.list;
 |  | 
 | 
											
												
													
														|  | -    return data?.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}`,
 |  | 
 | 
											
												
													
														|  | -      };
 |  | 
 | 
											
												
													
														|  | -    });
 |  | 
 | 
											
												
													
														|  | -  };
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  //合同管理相关数据
 |  | 
 | 
											
												
													
														|  | -  //请求我的申请列表
 |  | 
 | 
											
												
													
														|  | -  const {
 |  | 
 | 
											
												
													
														|  | -    data: conApplyData,
 |  | 
 | 
											
												
													
														|  | -    run: conApplyRun,
 |  | 
 | 
											
												
													
														|  | -    loading: conApplyLoading,
 |  | 
 | 
											
												
													
														|  | -  } = useRequest(queryGetContractList, {
 |  | 
 | 
											
												
													
														|  | -    defaultParams: [{ created_by: user?.ID }],
 |  | 
 | 
											
												
													
														|  | -    formatResult: contractResult,
 |  | 
 | 
											
												
													
														|  | -  });
 |  | 
 | 
											
												
													
														|  | -  //我的待审批列表
 |  | 
 | 
											
												
													
														|  | -  const {
 |  | 
 | 
											
												
													
														|  | -    data: conAuditData,
 |  | 
 | 
											
												
													
														|  | -    run: conAuditRun,
 |  | 
 | 
											
												
													
														|  | -    loading: conAduitLoading,
 |  | 
 | 
											
												
													
														|  | -  } = useRequest((data) => queryGetContractList(data), {
 |  | 
 | 
											
												
													
														|  | -    manual: true,
 |  | 
 | 
											
												
													
														|  | -    formatResult: contractResult,
 |  | 
 | 
											
												
													
														|  | -  });
 |  | 
 | 
											
												
													
														|  | -  //我审批过的列表
 |  | 
 | 
											
												
													
														|  | -  const {
 |  | 
 | 
											
												
													
														|  | -    data: conAuditedData,
 |  | 
 | 
											
												
													
														|  | -    run: conAuditedRun,
 |  | 
 | 
											
												
													
														|  | -    loading: conAduitedLoading,
 |  | 
 | 
											
												
													
														|  | -  } = useRequest((data) => queryGetContractList(data), {
 |  | 
 | 
											
												
													
														|  | -    manual: true,
 |  | 
 | 
											
												
													
														|  | -    formatResult: contractResult,
 |  | 
 | 
											
												
													
														|  | -  });
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  //审核合同
 |  | 
 | 
											
												
													
														|  | -  const { run: runCheck, loading: checkLoading } = useRequest(
 |  | 
 | 
											
												
													
														|  | -    (data) => queryContractCheck(data),
 |  | 
 | 
											
												
													
														|  | -    {
 |  | 
 | 
											
												
													
														|  | -      manual: true,
 |  | 
 | 
											
												
													
														|  | -      onSuccess: () => {
 |  | 
 | 
											
												
													
														|  | -        conAuditRun({ status: 1 });
 |  | 
 | 
											
												
													
														|  | -        conAuditedRun({ check_by: user.CName });
 |  | 
 | 
											
												
													
														|  | -        setConVisible(false);
 |  | 
 | 
											
												
													
														|  | -        message.success('审核成功');
 |  | 
 | 
											
												
													
														|  | -      },
 |  | 
 | 
											
												
													
														|  | -      onErroe: () => {
 |  | 
 | 
											
												
													
														|  | -        message.error('审核失败');
 |  | 
 | 
											
												
													
														|  | -      },
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -  );
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  //拼接审核数据和申请数据  审核loading和申请loading
 |  | 
 | 
											
												
													
														|  | -  const auditData = useMemo(() => {
 |  | 
 | 
											
												
													
														|  | -    let result = [];
 |  | 
 | 
											
												
													
														|  | -    if (OAAuditData && OAAuditData.length > 0) result = [...OAAuditData];
 |  | 
 | 
											
												
													
														|  | -    if (conAuditData && conAuditData.length > 0)
 |  | 
 | 
											
												
													
														|  | -      result = [...result, ...conAuditData];
 |  | 
 | 
											
												
													
														|  | -    if (conAuditedData && conAuditedData.length > 0)
 |  | 
 | 
											
												
													
														|  | -      result = [...result, ...conAuditedData];
 |  | 
 | 
											
												
													
														|  | -    return result;
 |  | 
 | 
											
												
													
														|  | -  }, [OAAuditData, conAuditData, conAuditedData]);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  const auditLoading = useMemo(() => {
 |  | 
 | 
											
												
													
														|  | -    let loading = false;
 |  | 
 | 
											
												
													
														|  | -    if (OAAuditLoading || conAduitLoading || conAduitedLoading) loading = true;
 |  | 
 | 
											
												
													
														|  | -    return loading;
 |  | 
 | 
											
												
													
														|  | -  }, [OAAuditLoading, conAduitLoading, conAduitedLoading]);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  const applyData = useMemo(() => {
 |  | 
 | 
											
												
													
														|  | -    let result = [];
 |  | 
 | 
											
												
													
														|  | -    if (OAApplyData && OAApplyData.length > 0) result = [...OAApplyData];
 |  | 
 | 
											
												
													
														|  | -    if (conApplyData && conApplyData.length > 0)
 |  | 
 | 
											
												
													
														|  | -      result = [...result, ...conApplyData];
 |  | 
 | 
											
												
													
														|  | -    return result;
 |  | 
 | 
											
												
													
														|  | -  }, [OAApplyData, conApplyData]);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  const applyLoading = useMemo(() => {
 |  | 
 | 
											
												
													
														|  | -    let loading = false;
 |  | 
 | 
											
												
													
														|  | -    if (OAApplyLoading || conApplyLoading) loading = true;
 |  | 
 | 
											
												
													
														|  | -    return loading;
 |  | 
 | 
											
												
													
														|  | -  }, [OAApplyLoading, conApplyLoading]);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -  // useEffect(() => {
 |  | 
 | 
											
												
													
														|  | -  //   if (user?.Permission['menu-001-audit']) run({ status: 1 });
 |  | 
 | 
											
												
													
														|  | -  // }, [user]);
 |  | 
 | 
											
												
													
														|  | 
 |  | +  let navigate = useNavigate();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -  const onTabChange = (activeKey) => {
 |  | 
 | 
											
												
													
														|  | -    if (activeKey == '1') {
 |  | 
 | 
											
												
													
														|  | -      OAApplyRun();
 |  | 
 | 
											
												
													
														|  | -      conApplyRun();
 |  | 
 | 
											
												
													
														|  | -    } else {
 |  | 
 | 
											
												
													
														|  | -      OAAuditRun();
 |  | 
 | 
											
												
													
														|  | -      if (user?.Permission['menu-001-audit']) conAuditRun({ status: 1 });
 |  | 
 | 
											
												
													
														|  | -      conAuditedRun({ check_by: user.CName });
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -    setTabActive(activeKey);
 |  | 
 | 
											
												
													
														|  | -  };
 |  | 
 | 
											
												
													
														|  | -  const columns = [
 |  | 
 | 
											
												
													
														|  | 
 |  | +  const columnsApplay = [
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |        title: '标题',
 |  |        title: '标题',
 | 
											
												
													
														|  |        dataIndex: 'table_name',
 |  |        dataIndex: 'table_name',
 | 
											
												
													
														|  |        width: '30%',
 |  |        width: '30%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | -    {
 |  | 
 | 
											
												
													
														|  | -      title: '摘要',
 |  | 
 | 
											
												
													
														|  | -      dataIndex: 'table_desc',
 |  | 
 | 
											
												
													
														|  | -      render: (descList) => {
 |  | 
 | 
											
												
													
														|  | -        return (
 |  | 
 | 
											
												
													
														|  | -          <ul>
 |  | 
 | 
											
												
													
														|  | -            {descList?.map((item) => (
 |  | 
 | 
											
												
													
														|  | -              <li>{item}</li>
 |  | 
 | 
											
												
													
														|  | -            ))}
 |  | 
 | 
											
												
													
														|  | -          </ul>
 |  | 
 | 
											
												
													
														|  | -        );
 |  | 
 | 
											
												
													
														|  | -      },
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |        title: '发起人',
 |  |        title: '发起人',
 | 
											
												
													
														|  |        dataIndex: 'CName',
 |  |        dataIndex: 'CName',
 | 
											
										
											
												
													
														|  | @@ -242,203 +44,197 @@ function profile(props) {
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |        title: '流程状态',
 |  |        title: '流程状态',
 | 
											
												
													
														|  | -      dataIndex: 'statusText',
 |  | 
 | 
											
												
													
														|  | -      // render: (record) => {
 |  | 
 | 
											
												
													
														|  | -      //   switch (record.audit_status) {
 |  | 
 | 
											
												
													
														|  | -      //     case 0: return '审核中'
 |  | 
 | 
											
												
													
														|  | -      //     case 1: return '通过'
 |  | 
 | 
											
												
													
														|  | -      //     case 2: return '拒绝'
 |  | 
 | 
											
												
													
														|  | -      //     case 3: return '终审通过'
 |  | 
 | 
											
												
													
														|  | -      //   }
 |  | 
 | 
											
												
													
														|  | -      // },
 |  | 
 | 
											
												
													
														|  | -      // width: '20%'
 |  | 
 | 
											
												
													
														|  | 
 |  | +      // dataIndex: 'status',
 | 
											
												
													
														|  | 
 |  | +      render: (record) => {
 | 
											
												
													
														|  | 
 |  | +        if (record.is_repeal) return '已撤回';
 | 
											
												
													
														|  | 
 |  | +        switch (record.audit_status) {
 | 
											
												
													
														|  | 
 |  | +          case 0:
 | 
											
												
													
														|  | 
 |  | +            return '审核中';
 | 
											
												
													
														|  | 
 |  | +          case 1:
 | 
											
												
													
														|  | 
 |  | +            return '通过';
 | 
											
												
													
														|  | 
 |  | +          case 2:
 | 
											
												
													
														|  | 
 |  | +            return '拒绝';
 | 
											
												
													
														|  | 
 |  | +          case 3:
 | 
											
												
													
														|  | 
 |  | +            return '终审通过';
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      width: '20%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |        title: '操作',
 |  |        title: '操作',
 | 
											
												
													
														|  | -      render: (text, record) => (
 |  | 
 | 
											
												
													
														|  | -        <Fragment>
 |  | 
 | 
											
												
													
														|  | -          <>
 |  | 
 | 
											
												
													
														|  | -            <a
 |  | 
 | 
											
												
													
														|  | -              style={{ color: '#4096ff' }}
 |  | 
 | 
											
												
													
														|  | -              onClick={() => {
 |  | 
 | 
											
												
													
														|  | -                navigate(`/profile/${record.id}`);
 |  | 
 | 
											
												
													
														|  | -              }}
 |  | 
 | 
											
												
													
														|  | -            >
 |  | 
 | 
											
												
													
														|  | -              详情
 |  | 
 | 
											
												
													
														|  | -            </a>
 |  | 
 | 
											
												
													
														|  | -          </>
 |  | 
 | 
											
												
													
														|  | -        </Fragment>
 |  | 
 | 
											
												
													
														|  | -      ),
 |  | 
 | 
											
												
													
														|  | -      width: '10%',
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -  ];
 |  | 
 | 
											
												
													
														|  | -  const approveColumns = [
 |  | 
 | 
											
												
													
														|  | -    {
 |  | 
 | 
											
												
													
														|  | -      title: '标题',
 |  | 
 | 
											
												
													
														|  | -      dataIndex: 'table_name',
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -    {
 |  | 
 | 
											
												
													
														|  | -      title: '摘要',
 |  | 
 | 
											
												
													
														|  | -      dataIndex: 'table_desc',
 |  | 
 | 
											
												
													
														|  | -      render: (descList) => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +      render: (record) => {
 | 
											
												
													
														|  |          return (
 |  |          return (
 | 
											
												
													
														|  | -          <ul>
 |  | 
 | 
											
												
													
														|  | -            {descList?.map((item) => (
 |  | 
 | 
											
												
													
														|  | -              <li>{item}</li>
 |  | 
 | 
											
												
													
														|  | -            ))}
 |  | 
 | 
											
												
													
														|  | -          </ul>
 |  | 
 | 
											
												
													
														|  | 
 |  | +          !record.is_repeal && (
 | 
											
												
													
														|  | 
 |  | +            <Fragment>
 | 
											
												
													
														|  | 
 |  | +              <>
 | 
											
												
													
														|  | 
 |  | +                <a
 | 
											
												
													
														|  | 
 |  | +                  style={{ color: '#4096ff' }}
 | 
											
												
													
														|  | 
 |  | +                  onClick={() => {
 | 
											
												
													
														|  | 
 |  | +                    if (record.extend_code) {
 | 
											
												
													
														|  | 
 |  | +                      navigate('/profile/detail', {
 | 
											
												
													
														|  | 
 |  | +                        state: {
 | 
											
												
													
														|  | 
 |  | +                          id: record.id,
 | 
											
												
													
														|  | 
 |  | +                          code: record.extend_code,
 | 
											
												
													
														|  | 
 |  | +                          type: Type.CON,
 | 
											
												
													
														|  | 
 |  | +                        },
 | 
											
												
													
														|  | 
 |  | +                      });
 | 
											
												
													
														|  | 
 |  | +                    } else {
 | 
											
												
													
														|  | 
 |  | +                      navigate('/profile/detail', {
 | 
											
												
													
														|  | 
 |  | +                        state: { id: record.id, type: Type.OA },
 | 
											
												
													
														|  | 
 |  | +                      });
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  | 
 |  | +                  }}
 | 
											
												
													
														|  | 
 |  | +                >
 | 
											
												
													
														|  | 
 |  | +                  详情
 | 
											
												
													
														|  | 
 |  | +                </a>
 | 
											
												
													
														|  | 
 |  | +                {tabActive == '1' && record?.audit_status == 0 && (
 | 
											
												
													
														|  | 
 |  | +                  <>
 | 
											
												
													
														|  | 
 |  | +                    <Divider type="vertical" />
 | 
											
												
													
														|  | 
 |  | +                    <a
 | 
											
												
													
														|  | 
 |  | +                      style={{ color: '#4096ff' }}
 | 
											
												
													
														|  | 
 |  | +                      onClick={() => onRepeal(record)}
 | 
											
												
													
														|  | 
 |  | +                    >
 | 
											
												
													
														|  | 
 |  | +                      撤回
 | 
											
												
													
														|  | 
 |  | +                    </a>
 | 
											
												
													
														|  | 
 |  | +                  </>
 | 
											
												
													
														|  | 
 |  | +                )}
 | 
											
												
													
														|  | 
 |  | +              </>
 | 
											
												
													
														|  | 
 |  | +            </Fragment>
 | 
											
												
													
														|  | 
 |  | +          )
 | 
											
												
													
														|  |          );
 |  |          );
 | 
											
												
													
														|  |        },
 |  |        },
 | 
											
												
													
														|  | 
 |  | +      width: '10%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | 
 |  | +  ];
 | 
											
												
													
														|  | 
 |  | +  const columnsApproved = [
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  | -      title: '发起人',
 |  | 
 | 
											
												
													
														|  | -      dataIndex: 'CName',
 |  | 
 | 
											
												
													
														|  | 
 |  | +      title: '标题',
 | 
											
												
													
														|  | 
 |  | +      dataIndex: 'name',
 | 
											
												
													
														|  | 
 |  | +      width: '30%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | 
 |  | +    // {
 | 
											
												
													
														|  | 
 |  | +    //   title: '摘要',
 | 
											
												
													
														|  | 
 |  | +    //   dataIndex: 'table_desc',
 | 
											
												
													
														|  | 
 |  | +    //   render: (descList) => {
 | 
											
												
													
														|  | 
 |  | +    //     return (
 | 
											
												
													
														|  | 
 |  | +    //       <ul>
 | 
											
												
													
														|  | 
 |  | +    //         {descList?.map((item) => (
 | 
											
												
													
														|  | 
 |  | +    //           <li>{item}</li>
 | 
											
												
													
														|  | 
 |  | +    //         ))}
 | 
											
												
													
														|  | 
 |  | +    //       </ul>
 | 
											
												
													
														|  | 
 |  | +    //     );
 | 
											
												
													
														|  | 
 |  | +    //   },
 | 
											
												
													
														|  | 
 |  | +    // },
 | 
											
												
													
														|  | 
 |  | +    // {
 | 
											
												
													
														|  | 
 |  | +    //   title: '发起人',
 | 
											
												
													
														|  | 
 |  | +    //   dataIndex: 'CName',
 | 
											
												
													
														|  | 
 |  | +    //   width: '20%',
 | 
											
												
													
														|  | 
 |  | +    // },
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |        title: '发起时间',
 |  |        title: '发起时间',
 | 
											
												
													
														|  |        render: (record) => {
 |  |        render: (record) => {
 | 
											
												
													
														|  |          return dayjs(record.create_time).format('YYYY-MM-DD HH:mm:ss');
 |  |          return dayjs(record.create_time).format('YYYY-MM-DD HH:mm:ss');
 | 
											
												
													
														|  |        },
 |  |        },
 | 
											
												
													
														|  | 
 |  | +      width: '20%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  | -      title: '流程状态',
 |  | 
 | 
											
												
													
														|  | -      dataIndex: 'statusText',
 |  | 
 | 
											
												
													
														|  | 
 |  | +      title: '我审批的时间',
 | 
											
												
													
														|  | 
 |  | +      render: (record) => {
 | 
											
												
													
														|  | 
 |  | +        return dayjs(record.audit_time).format('YYYY-MM-DD HH:mm:ss');
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      width: '20%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  | -      title: '操作',
 |  | 
 | 
											
												
													
														|  | -      dataIndex: 'showBtn',
 |  | 
 | 
											
												
													
														|  | -      render: (text, record) => (
 |  | 
 | 
											
												
													
														|  | -        <>
 |  | 
 | 
											
												
													
														|  | -          {text ? (
 |  | 
 | 
											
												
													
														|  | -            <a
 |  | 
 | 
											
												
													
														|  | -              style={{ color: '#4096ff' }}
 |  | 
 | 
											
												
													
														|  | -              onClick={() => {
 |  | 
 | 
											
												
													
														|  | -                if (record.type == TYPE.Contract) {
 |  | 
 | 
											
												
													
														|  | -                  setDetail(record);
 |  | 
 | 
											
												
													
														|  | -                  setConVisible(true);
 |  | 
 | 
											
												
													
														|  | -                } else {
 |  | 
 | 
											
												
													
														|  | -                  navigate(`/oa/detail/${record.flow_id}/${record.id}`);
 |  | 
 | 
											
												
													
														|  | -                }
 |  | 
 | 
											
												
													
														|  | -              }}
 |  | 
 | 
											
												
													
														|  | -            >
 |  | 
 | 
											
												
													
														|  | -              审批
 |  | 
 | 
											
												
													
														|  | -            </a>
 |  | 
 | 
											
												
													
														|  | -          ) : (
 |  | 
 | 
											
												
													
														|  | -            <div>已审批</div>
 |  | 
 | 
											
												
													
														|  | -          )}
 |  | 
 | 
											
												
													
														|  | -        </>
 |  | 
 | 
											
												
													
														|  | -      ),
 |  | 
 | 
											
												
													
														|  | 
 |  | +      title: '状态',
 | 
											
												
													
														|  | 
 |  | +      // dataIndex: 'status',
 | 
											
												
													
														|  | 
 |  | +      render: (record) => {
 | 
											
												
													
														|  | 
 |  | +        switch (record.audit_status) {
 | 
											
												
													
														|  | 
 |  | +          case 0:
 | 
											
												
													
														|  | 
 |  | +            return '审核中';
 | 
											
												
													
														|  | 
 |  | +          case 1:
 | 
											
												
													
														|  | 
 |  | +            return '通过';
 | 
											
												
													
														|  | 
 |  | +          case 2:
 | 
											
												
													
														|  | 
 |  | +            return '拒绝';
 | 
											
												
													
														|  | 
 |  | +          case 3:
 | 
											
												
													
														|  | 
 |  | +            return '终审通过';
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      width: '20%',
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |    ];
 |  |    ];
 | 
											
												
													
														|  | -  const handleApplySubmit = (values) => {
 |  | 
 | 
											
												
													
														|  | -    console.log(values);
 |  | 
 | 
											
												
													
														|  | -    queryApplyListRequest.run(values);
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  //我的申请
 | 
											
												
													
														|  | 
 |  | +  const queryApplay = async () => {
 | 
											
												
													
														|  | 
 |  | +    const data = await queryApplyList();
 | 
											
												
													
														|  | 
 |  | +    console.log(data);
 | 
											
												
													
														|  | 
 |  | +    setData(data);
 | 
											
												
													
														|  | 
 |  | +    setLoading(false);
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  | -  const handleApproveSubmit = (values) => {
 |  | 
 | 
											
												
													
														|  | -    console.log(values);
 |  | 
 | 
											
												
													
														|  | 
 |  | +  //我的待审批
 | 
											
												
													
														|  | 
 |  | +  const queryApprove = async () => {
 | 
											
												
													
														|  | 
 |  | +    const data = await queryProfileList();
 | 
											
												
													
														|  | 
 |  | +    console.log(data);
 | 
											
												
													
														|  | 
 |  | +    setData(data);
 | 
											
												
													
														|  | 
 |  | +    setLoading(false);
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  | -  const handleApplyPaginationChange = (pagination) => {
 |  | 
 | 
											
												
													
														|  | -    queryApplyListRequest.run({
 |  | 
 | 
											
												
													
														|  | -      currentPage: pagination.current,
 |  | 
 | 
											
												
													
														|  | -      pageSize: pagination.pageSize,
 |  | 
 | 
											
												
													
														|  | -    });
 |  | 
 | 
											
												
													
														|  | 
 |  | +  //我的已审批
 | 
											
												
													
														|  | 
 |  | +  const queryApproved = async () => {
 | 
											
												
													
														|  | 
 |  | +    const data = await queryApprovedList();
 | 
											
												
													
														|  | 
 |  | +    console.log(data);
 | 
											
												
													
														|  | 
 |  | +    setData(data);
 | 
											
												
													
														|  | 
 |  | +    setLoading(false);
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  | -  const handleProfilePaginationChange = (pagination) => {
 |  | 
 | 
											
												
													
														|  | -    queryProfileListRequest.run({
 |  | 
 | 
											
												
													
														|  | -      currentPage: pagination.current,
 |  | 
 | 
											
												
													
														|  | -      pageSize: pagination.pageSize,
 |  | 
 | 
											
												
													
														|  | -    });
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  //撤回申请
 | 
											
												
													
														|  | 
 |  | +  const { run: runRepeal, loading: repealLoading } = useRequest(
 | 
											
												
													
														|  | 
 |  | +    (id) => applyRepeal({ id }),
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +      manual: true,
 | 
											
												
													
														|  | 
 |  | +      onSuccess: () => {
 | 
											
												
													
														|  | 
 |  | +        handlerTabChange(tabActive);
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +  );
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  const handlerTabChange = (tab) => {
 | 
											
												
													
														|  | 
 |  | +    setLoading(true);
 | 
											
												
													
														|  | 
 |  | +    switch (tab) {
 | 
											
												
													
														|  | 
 |  | +      case '1':
 | 
											
												
													
														|  | 
 |  | +        setColumes(columnsApplay);
 | 
											
												
													
														|  | 
 |  | +        queryApplay();
 | 
											
												
													
														|  | 
 |  | +        break;
 | 
											
												
													
														|  | 
 |  | +      case '2':
 | 
											
												
													
														|  | 
 |  | +        setColumes(columnsApplay);
 | 
											
												
													
														|  | 
 |  | +        queryApprove();
 | 
											
												
													
														|  | 
 |  | +        break;
 | 
											
												
													
														|  | 
 |  | +      case '3':
 | 
											
												
													
														|  | 
 |  | +        setColumes(columnsApproved);
 | 
											
												
													
														|  | 
 |  | +        queryApproved();
 | 
											
												
													
														|  | 
 |  | +        break;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  | -  const renderPage = (activeKey) => {
 |  | 
 | 
											
												
													
														|  | -    if (activeKey == '1')
 |  | 
 | 
											
												
													
														|  | -      return (
 |  | 
 | 
											
												
													
														|  | -        <>
 |  | 
 | 
											
												
													
														|  | -          {' '}
 |  | 
 | 
											
												
													
														|  | -          <Form
 |  | 
 | 
											
												
													
														|  | -            name="basic"
 |  | 
 | 
											
												
													
														|  | -            // labelCol={{ span: 0 }}
 |  | 
 | 
											
												
													
														|  | -            // wrapperCol={{ span: 24 }}
 |  | 
 | 
											
												
													
														|  | -            onFinish={handleApplySubmit}
 |  | 
 | 
											
												
													
														|  | -            ref={applyFormRef}
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | -            <div style={{ display: 'flex' }}>
 |  | 
 | 
											
												
													
														|  | -              <Form.Item name="range-picker" label="申请时间:">
 |  | 
 | 
											
												
													
														|  | -                <RangePicker />
 |  | 
 | 
											
												
													
														|  | -              </Form.Item>
 |  | 
 | 
											
												
													
														|  | -              <Form.Item>
 |  | 
 | 
											
												
													
														|  | -                <Button
 |  | 
 | 
											
												
													
														|  | -                  type="primary"
 |  | 
 | 
											
												
													
														|  | -                  htmlType="submit"
 |  | 
 | 
											
												
													
														|  | -                  style={{ marginLeft: 10 }}
 |  | 
 | 
											
												
													
														|  | -                >
 |  | 
 | 
											
												
													
														|  | -                  查询
 |  | 
 | 
											
												
													
														|  | -                </Button>
 |  | 
 | 
											
												
													
														|  | -              </Form.Item>
 |  | 
 | 
											
												
													
														|  | -            </div>
 |  | 
 | 
											
												
													
														|  | -          </Form>
 |  | 
 | 
											
												
													
														|  | -          <Table
 |  | 
 | 
											
												
													
														|  | -            columns={columns}
 |  | 
 | 
											
												
													
														|  | -            dataSource={applyData}
 |  | 
 | 
											
												
													
														|  | -            loading={applyLoading}
 |  | 
 | 
											
												
													
														|  | -            // columns={columns}
 |  | 
 | 
											
												
													
														|  | -            // loading={queryApplyListRequest.loading}
 |  | 
 | 
											
												
													
														|  | -            // dataSource={queryApplyListRequest?.data?.list}
 |  | 
 | 
											
												
													
														|  | -            // pagination={queryApplyListRequest?.data?.pagination}
 |  | 
 | 
											
												
													
														|  | -            // onChange={handleApplyPaginationChange}
 |  | 
 | 
											
												
													
														|  | -          />
 |  | 
 | 
											
												
													
														|  | -        </>
 |  | 
 | 
											
												
													
														|  | -      );
 |  | 
 | 
											
												
													
														|  | -    else if (activeKey == '2')
 |  | 
 | 
											
												
													
														|  | -      return (
 |  | 
 | 
											
												
													
														|  | -        <>
 |  | 
 | 
											
												
													
														|  | -          {' '}
 |  | 
 | 
											
												
													
														|  | -          <Form
 |  | 
 | 
											
												
													
														|  | -            name="basic"
 |  | 
 | 
											
												
													
														|  | -            // labelCol={{ span: 0 }}
 |  | 
 | 
											
												
													
														|  | -            // wrapperCol={{ span: 24 }}
 |  | 
 | 
											
												
													
														|  | -            onFinish={handleApproveSubmit}
 |  | 
 | 
											
												
													
														|  | -            ref={approveFormRef}
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | -            <div style={{ display: 'flex' }}>
 |  | 
 | 
											
												
													
														|  | -              <Form.Item name="range-picker" label="审批时间:">
 |  | 
 | 
											
												
													
														|  | -                <RangePicker />
 |  | 
 | 
											
												
													
														|  | -              </Form.Item>
 |  | 
 | 
											
												
													
														|  | -              <Form.Item name="audit_status" label="状态:" initialValue="">
 |  | 
 | 
											
												
													
														|  | -                <Select
 |  | 
 | 
											
												
													
														|  | -                  style={{ width: 120 }}
 |  | 
 | 
											
												
													
														|  | -                  options={[
 |  | 
 | 
											
												
													
														|  | -                    { value: '', label: '全部' },
 |  | 
 | 
											
												
													
														|  | -                    { value: '0', label: '审核中' },
 |  | 
 | 
											
												
													
														|  | -                    { value: '1', label: '通过' },
 |  | 
 | 
											
												
													
														|  | -                    { value: '2', label: '拒绝' },
 |  | 
 | 
											
												
													
														|  | -                    { value: '3', label: '终审通过' },
 |  | 
 | 
											
												
													
														|  | -                  ]}
 |  | 
 | 
											
												
													
														|  | -                />
 |  | 
 | 
											
												
													
														|  | -              </Form.Item>
 |  | 
 | 
											
												
													
														|  | -              <Form.Item>
 |  | 
 | 
											
												
													
														|  | -                <Button
 |  | 
 | 
											
												
													
														|  | -                  type="primary"
 |  | 
 | 
											
												
													
														|  | -                  htmlType="submit"
 |  | 
 | 
											
												
													
														|  | -                  style={{ marginLeft: 10 }}
 |  | 
 | 
											
												
													
														|  | -                >
 |  | 
 | 
											
												
													
														|  | -                  查询
 |  | 
 | 
											
												
													
														|  | -                </Button>
 |  | 
 | 
											
												
													
														|  | -              </Form.Item>
 |  | 
 | 
											
												
													
														|  | -            </div>
 |  | 
 | 
											
												
													
														|  | -          </Form>
 |  | 
 | 
											
												
													
														|  | -          <Table
 |  | 
 | 
											
												
													
														|  | -            columns={approveColumns}
 |  | 
 | 
											
												
													
														|  | -            dataSource={auditData}
 |  | 
 | 
											
												
													
														|  | -            loading={auditLoading}
 |  | 
 | 
											
												
													
														|  | -            // loading={queryProfileListRequest.loading}
 |  | 
 | 
											
												
													
														|  | -            // columns={approveColumns}
 |  | 
 | 
											
												
													
														|  | -            // dataSource={queryProfileListRequest?.data?.list}
 |  | 
 | 
											
												
													
														|  | -            // pagination={queryProfileListRequest?.data?.pagination}
 |  | 
 | 
											
												
													
														|  | -            // onChange={handleProfilePaginationChange}
 |  | 
 | 
											
												
													
														|  | -          />
 |  | 
 | 
											
												
													
														|  | -        </>
 |  | 
 | 
											
												
													
														|  | -      );
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  useEffect(() => {
 | 
											
												
													
														|  | 
 |  | +    handlerTabChange('1');
 | 
											
												
													
														|  | 
 |  | +  }, []);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  useEffect(() => {
 | 
											
												
													
														|  | 
 |  | +    handlerTabChange(tabActive);
 | 
											
												
													
														|  | 
 |  | +  }, [tabActive]);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  const onRepeal = (record) => {
 | 
											
												
													
														|  | 
 |  | +    Modal.confirm({
 | 
											
												
													
														|  | 
 |  | +      title: '撤回',
 | 
											
												
													
														|  | 
 |  | +      icon: <ExclamationCircleOutlined />,
 | 
											
												
													
														|  | 
 |  | +      content: `确定撤回申请`,
 | 
											
												
													
														|  | 
 |  | +      okText: '确认',
 | 
											
												
													
														|  | 
 |  | +      cancelText: '取消',
 | 
											
												
													
														|  | 
 |  | +      onOk: () => {
 | 
											
												
													
														|  | 
 |  | +        runRepeal(record.id);
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +    });
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |    return (
 |  |    return (
 | 
											
												
													
														|  |      <PageContent
 |  |      <PageContent
 | 
											
												
													
														|  |        tabList={[
 |  |        tabList={[
 | 
											
										
											
												
													
														|  | @@ -450,20 +246,14 @@ function profile(props) {
 | 
											
												
													
														|  |            tab: '我的审批',
 |  |            tab: '我的审批',
 | 
											
												
													
														|  |            key: '2',
 |  |            key: '2',
 | 
											
												
													
														|  |          },
 |  |          },
 | 
											
												
													
														|  | 
 |  | +        {
 | 
											
												
													
														|  | 
 |  | +          tab: '已审批',
 | 
											
												
													
														|  | 
 |  | +          key: '3',
 | 
											
												
													
														|  | 
 |  | +        },
 | 
											
												
													
														|  |        ]}
 |  |        ]}
 | 
											
												
													
														|  | -      onTabChange={onTabChange}
 |  | 
 | 
											
												
													
														|  | 
 |  | +      onTabChange={setTabActive}
 | 
											
												
													
														|  |      >
 |  |      >
 | 
											
												
													
														|  | -      <div>{renderPage(tabActive)}</div>
 |  | 
 | 
											
												
													
														|  | -      <ContractModal
 |  | 
 | 
											
												
													
														|  | -        detail={detail}
 |  | 
 | 
											
												
													
														|  | -        type={Type.check}
 |  | 
 | 
											
												
													
														|  | -        // projectList={projectData?.list}
 |  | 
 | 
											
												
													
														|  | -        visible={conVisible}
 |  | 
 | 
											
												
													
														|  | -        handleOk={(data) =>
 |  | 
 | 
											
												
													
														|  | -          detail.status == Status.Checking ? runCheck(data) : null
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        handleCancel={() => setConVisible(false)}
 |  | 
 | 
											
												
													
														|  | -      />
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <Table columns={columns} dataSource={data?.list} loading={loading} />
 | 
											
												
													
														|  |      </PageContent>
 |  |      </PageContent>
 | 
											
												
													
														|  |    );
 |  |    );
 | 
											
												
													
														|  |  }
 |  |  }
 |