import React, { useState, useEffect, useRef } from 'react'; import { Button, Space, Table, message } from 'antd'; import { connect, useNavigate } from 'umi'; import AuditModal from './AuditModal'; import PageContent from '@/components/PageContent'; import { queryProcessFlows, saveAuditFlowInfo } from '@/services/boom'; function Audit(props) { const { list = [], classify = [], dispatch, loading } = props; let navigate = useNavigate(); const [data, setData] = useState(); const [visible, setVisible] = useState({ audit: false, auditNode: false, }); const detailRef = useRef(); const columns = [ { title: '审批流名称', dataIndex: 'name', }, { title: '分类', dataIndex: 'classify_id', render: (id) => classify?.find((item) => item.id == id)?.name || '-', }, { title: '操作', render: (item, index) => ( { setCurrentNode(item); }} > 编辑 { setData(item); changeVisible('audit', true); queryDetail(item); }} > 复制 ), }, ]; const queryDetail = async (item) => { const res = await queryProcessFlows({ ids: Number(item.id) }); if (res?.data) { detailRef.current = res.data; } }; const handleCopy = async (values) => { dispatch({ type: 'flow/addAudit', payload: { ...values, flow_type: 1, }, callback: async (res) => { if (res?.data && detailRef.current) { let param = { id: Number(res.data?.id), form_json: detailRef.current.form_json, process_json: detailRef.current.process_json, process_simple_json: detailRef.current.process_simple_json, }; saveAuditFlowInfo(param).then((res) => message.success('添加成功')); // dispatch({ type: 'flow/saveAuditFlowInfo', payload: param }); } changeVisible('audit', false); }, }); }; const handleAuditOk = (values) => { dispatch({ type: 'flow/addAudit', payload: { ...values, flow_type: 1, }, callback: () => { message.success('新增成功'); changeVisible('audit', false); }, }); }; const changeVisible = (type, visible) => { setVisible({ ...visible, [type]: visible, }); }; const setCurrentNode = (item) => { localStorage.setItem('currentAudit', JSON.stringify(item)); dispatch({ type: 'flow/save', payload: { current: item.list, }, }); navigate('/flow/audit'); }; useEffect(() => { dispatch({ type: 'flow/queryAuditList', payload: { flow_type: 1, }, }); dispatch({ type: 'flow/queryClassify', payload: { c_type: 1, }, }); }, []); return ( changeVisible('audit', false)} classify={classify} /> ); } export default connect(({ flow, loading }) => ({ list: flow.auditList, classify: flow.classify, loading: loading.effects, }))(Audit);