import { PageContainer } from '@ant-design/pro-layout' import { useState, useEffect, useRef } from 'react' import ProTable from '@ant-design/pro-table' import type { ActionType } from '@ant-design/pro-table' import { ModalForm } from '@ant-design/pro-form' import type { ProFormInstance } from '@ant-design/pro-form' import type { ProFormColumnsType } from '@ant-design/pro-form' import { DeleteOutlined } from '@ant-design/icons' import { queryAcountList } from '@/services/api/institution' import consts from '@/utils/consts' import { Button, Form, message, Table } from 'antd' import { saveCreator } from '@/services/api/user' import { useRequest } from 'umi' import { getProjectList } from '@/services/api/project' import TreeNodeSelect from '../Management/List/components/TreeNodeSelect' enum CreatedModalType { ADD = '1', DEL = '2' } const Created = () => { const tRef = useRef(null) const mRef = useRef(null) const [state, setState] = useState({ dataID: null, modalType: CreatedModalType.ADD, options: [], projectList: [], modalVisible: false }) const { run: tryQueryProjectList } = useRequest( createdID => getProjectList({ current: 1, pageSize: 21300, createdID }), { manual: true, onSuccess: ({ items }) => { setState({ ...state, projectList: items }) } } ) useEffect(() => { if (state.dataID && state.modalType === CreatedModalType.DEL) { tryQueryProjectList(state.dataID) } }, [state.dataID, state.modalType]) const columns: ProFormColumnsType[] = [ { dataIndex: 'account', title: '账号', width: 116, align: 'center', onHeaderCell: () => ({ style: { textAlign: 'center' } }) }, { dataIndex: 'name', title: '名称', width: 86, align: 'center', onHeaderCell: () => ({ style: { textAlign: 'center' } }) }, { dataIndex: 'institutionID', title: '企事业单位', width: 286, onHeaderCell: () => ({ style: { textAlign: 'center' } }), renderText: (_, record) => record?.institution?.name }, { dataIndex: 'organizationalStructureID', title: '组织架构', width: 146, align: 'center', onHeaderCell: () => ({ style: { textAlign: 'center' } }), renderText: (_, record) => record?.organizationalStructure?.name }, { dataIndex: 'opreate', title: '操作', width: 61, align: 'center', onHeaderCell: () => ({ style: { textAlign: 'center' } }), render: (_, record) => (
setState({ ...state, dataID: record.ID, modalType: CreatedModalType.DEL, modalVisible: true }) }>
) } ] const { run: trySaveCreator } = useRequest(saveCreator, { manual: true, onSuccess: () => { tRef?.current?.reload() return message.success('操作成功') } }) const onFinish = async formData => { try { if (state.modalType === CreatedModalType.ADD) { await trySaveCreator({ ...formData, isCreated: 1 }) } else { await trySaveCreator({ ID: state.dataID, isCreated: 0 }) } tRef?.current?.reload() mRef?.current?.resetFields() setState({ ...state, modalVisible: false }) return true } catch (error) { return false } } return ( setState({ ...state, modalVisible: true, modalType: CreatedModalType.ADD }) }> 添加创建人 ] }} scroll={{ y: document.body.clientHeight - 313 }} request={async (params, filter, sort) => { const { code = -1, data: { items, total } } = await queryAcountList({ ...params, ...filter, ...sort, isCreated: 1 }) return { success: code === consts.RET_CODE.SUCCESS, data: items, total } }} /> setState({ ...state, modalVisible: visible })}> {state.modalType === CreatedModalType.ADD ? ( <> {/*

创建人可在前台创建项目、上传项目数据、编制项目等

*/} {/* { const { code = -1, data: { items } } = await queryAcountInstitutionList({ current: 1, pageSize: 21400, isCreated: '0' }) return code === consts.RET_CODE.SUCCESS ? items.map(item => ({ label: `${item.name} - ${item?.institution?.name}`, value: item.ID })) : [] }} /> */} ) : ( <>

当前创建人已经管理以下项目,移除后,这些项目对应创建人也将被移除。

idx + 1, // width: '10%' // }, { dataIndex: 'name', title: '项目名称' } ]} size="small" scroll={{ y: 250 }} dataSource={state.projectList} pagination={false} /> )} ) } export default Created