import AnimateContent from '@/components/AnimateContent' import consts from '@/utils/consts' import { PageContainer } from '@ant-design/pro-layout' import ProTable from '@ant-design/pro-table' import { message } from 'antd' import { useRef, useState } from 'react' import { useRequest } from 'umi' import { getApprovalList, publishApproval, saveApproval } from '@/services/api/project' import type { ActionType } from '@ant-design/pro-table' import ApprovalDetail from './Detail' import { ModalForm, ProFormText } from '@ant-design/pro-form' import type { ProFormInstance } from '@ant-design/pro-form' export enum PublishType { FAIL = '0', SUCCESS = '1' } const FlowList = () => { const tRef = useRef(null) const formRef = useRef(null) const [state, setState] = useState({ params: {}, visible: false, modalType: 'add', modalVisible: false, current: { ID: null, name: null, readPretty: false } }) // const { run: tryDel } = useRequest(delApproval, { // manual: true, // onSuccess: () => { // tRef.current?.reload() // } // }) // const { run: tryAdd } = useRequest(addApproval, { // manual: true, // onSuccess: () => { // tRef.current?.reload() // } // }) const { run: tryPublish } = useRequest(publishApproval, { manual: true, onSuccess() { message.success('') tRef.current?.reload() } }) const { run: tryUpdate } = useRequest(saveApproval, { manual: true, onSuccess: () => { tRef.current?.reload() } }) const columns = [ { dataIndex: 'name', title: '项目名称', onHeaderCell: () => ({ style: { textAlign: 'center' } }) }, { dataIndex: 'approval', title: '流程名称', onHeaderCell: () => ({ style: { textAlign: 'center' } }), renderText: (_, record) => ( { setState({ ...state, visible: true, current: record.approval }) }}> {record.approval?.name} ) }, { dataIndex: 'publish', title: '流程状态', valueEnum: { [PublishType.SUCCESS]: { text: '已发布', status: 'Success' }, [PublishType.FAIL]: { text: '未发布', statis: 'Default' } } }, { dataIndex: 'opreate', title: '操作', onHeaderCell: () => ({ style: { textAlign: 'center' } }), align: 'center', render: (_, record) => (
{ setState({ ...state, modalType: 'update', modalVisible: true }) setTimeout(() => { formRef.current?.setFieldsValue({ ID: record.ID, name: record.approval?.name }) }, 80) }}> 编辑流程名称 setState({ ...state, visible: true, current: { ...record.approval, readPretty: true } }) }> 查看流程图 !record.publish && tryPublish({ ID: record.approval.ID })}> 发布 {/* tryDel({ ID: record.ID })}> 删除 */}
) } ] return ( { const { code = -1, data: { items, total } } = await getApprovalList({ ...params, ...filters, ...sorter }) return { success: code === consts.RET_CODE.SUCCESS, data: items, total } }} search={false} toolbar={{ search: { onSearch: value => setState({ ...state, params: { ...state.params, search: value } }) }, actions: [ // ] }} /> setState({ ...state, visible })}> setState({ ...state, visible })} /> setState({ ...state, modalVisible: visible })} title={`${state.modalType === 'add' ? '新建' : '编辑'}审批流程`} formRef={formRef} onFinish={async values => { try { if (state.modalType === 'add') { await tryAdd(values) } else { await tryUpdate(values) } message.success(`${state.modalType === 'add' ? '新增' : '编辑'}成功`) tRef.current?.reload() return true } catch (error) { message.error(error) return false } }}> ) } export default FlowList