|
@@ -1,17 +1,28 @@
|
|
|
import { connect, useRequest } from 'umi'
|
|
|
import { useEffect, useRef, useState } from 'react'
|
|
|
-import { message, Tabs, Form } from 'antd'
|
|
|
-import { getApprovalList, getProject, setApproval } from '@/services/api/project'
|
|
|
+import { message, Tabs } from 'antd'
|
|
|
+import {
|
|
|
+ getApprovalList,
|
|
|
+ getProject,
|
|
|
+ setApproval,
|
|
|
+ setProjectPersonor
|
|
|
+} from '@/services/api/project'
|
|
|
import { delay } from '@/utils/util'
|
|
|
import FormRender, { useForm } from 'form-render'
|
|
|
import { BaseMenuEnum } from '@/pages/Schema/Base'
|
|
|
import type { SchemaBaseModelState } from '@/pages/Schema/Base/model'
|
|
|
import type { ConnectProps } from 'umi'
|
|
|
import type { ProjectModelState } from '../../model'
|
|
|
-import ProForm from '@ant-design/pro-form'
|
|
|
-import TreeNodeSelect from './TreeNodeSelect'
|
|
|
+import ProForm, { ProFormDependency, ProFormSelect } from '@ant-design/pro-form'
|
|
|
+// import TreeNodeSelect from './TreeNodeSelect'
|
|
|
import { ModalType } from './ProjectModal'
|
|
|
import consts from '@/utils/consts'
|
|
|
+import { queryAcountList } from '@/services/api/institution'
|
|
|
+
|
|
|
+enum FormType {
|
|
|
+ UPLOAD_PERM = '1',
|
|
|
+ ROLE_PERM = '2'
|
|
|
+}
|
|
|
|
|
|
type ProjectModalProps = ConnectProps & {
|
|
|
visible: boolean
|
|
@@ -33,16 +44,17 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
pTypeList,
|
|
|
reload
|
|
|
}) => {
|
|
|
- console.log(type)
|
|
|
-
|
|
|
const form = useForm()
|
|
|
const ref = useRef<FormInstance>(null)
|
|
|
+ const ref2 = useRef<FormInstance>(null)
|
|
|
const { TabPane } = Tabs
|
|
|
const [state, setState] = useState({
|
|
|
acountInstitutionList: [],
|
|
|
approvalList: [],
|
|
|
+ accountList: [],
|
|
|
activeKey: '',
|
|
|
- account: null
|
|
|
+ account: null,
|
|
|
+ perm: null
|
|
|
})
|
|
|
|
|
|
const { run: tryApprovalList } = useRequest(() => getApprovalList(), {
|
|
@@ -59,7 +71,28 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ const { run: trySetProjectPersonor } = useRequest(setProjectPersonor, {
|
|
|
+ manual: true,
|
|
|
+ onSuccess: () => {
|
|
|
+ message.success('提交成功')
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
+ async function querySelectOptions() {
|
|
|
+ const {
|
|
|
+ code = -1,
|
|
|
+ data: { items }
|
|
|
+ } = await queryAcountList({ current: 1, pageSize: 21400, isCreated: 0 })
|
|
|
+
|
|
|
+ setState({
|
|
|
+ ...state,
|
|
|
+ accountList:
|
|
|
+ code === consts.RET_CODE.SUCCESS
|
|
|
+ ? items.map(item => ({ label: item.name, value: item.ID }))
|
|
|
+ : []
|
|
|
+ })
|
|
|
+ }
|
|
|
if (visible && !schema) {
|
|
|
dispatch({
|
|
|
type: 'schemaBase/querySchema',
|
|
@@ -75,6 +108,11 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
}
|
|
|
ref.current?.setFieldsValue({ ...TabFormData })
|
|
|
}
|
|
|
+
|
|
|
+ if (state.activeKey === '3') {
|
|
|
+ querySelectOptions()
|
|
|
+ ref2?.current?.setFieldsValue({ ID: defaultFormData?.dataID })
|
|
|
+ }
|
|
|
}, [visible, state.activeKey])
|
|
|
|
|
|
const onMount = async () => {
|
|
@@ -113,17 +151,21 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- const onFinish = async formData => {
|
|
|
+ const onFinish = async (t, formData) => {
|
|
|
try {
|
|
|
- await trySetApproval({ ...formData, ID: defaultFormData.dataID })
|
|
|
- setState({
|
|
|
- ...state,
|
|
|
- account: {
|
|
|
+ if (t === FormType.UPLOAD_PERM) {
|
|
|
+ await trySetApproval({ ...formData, ID: defaultFormData.dataID })
|
|
|
+ setState({
|
|
|
...state,
|
|
|
- approval: { ID: formData.approvalID },
|
|
|
- reportAccount: { ID: formData.accountID }
|
|
|
- }
|
|
|
- })
|
|
|
+ account: {
|
|
|
+ ...state,
|
|
|
+ approval: { ID: formData.approvalID },
|
|
|
+ reportAccount: { ID: formData.accountID }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ await trySetProjectPersonor({ ...formData, ID: defaultFormData.dataID })
|
|
|
+ }
|
|
|
reload()
|
|
|
return true
|
|
|
} catch (error) {
|
|
@@ -131,7 +173,6 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
- console.log(type === ModalType.PREVIEW)
|
|
|
|
|
|
return (
|
|
|
<Tabs onChange={onChange}>
|
|
@@ -145,7 +186,7 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
/>
|
|
|
)}
|
|
|
</TabPane>
|
|
|
- <TabPane tab="上传权限" key="2">
|
|
|
+ {/* <TabPane tab="上传权限" key="2">
|
|
|
<ProForm
|
|
|
formRef={ref}
|
|
|
submitter={{ resetButtonProps: { style: { display: 'none' } } }}
|
|
@@ -153,14 +194,8 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
>
|
|
|
<Form.Item label="指定人员" name="accountID">
|
|
|
<TreeNodeSelect />
|
|
|
- {/* <TreeSelect
|
|
|
- style={{ width: '100%' }}
|
|
|
- placeholder="请选择上报人"
|
|
|
- treeDefaultExpandAll
|
|
|
- treeData={state.acountInstitutionList}
|
|
|
- /> */}
|
|
|
</Form.Item>
|
|
|
- {/* <ProFormSelect
|
|
|
+ <ProFormSelect
|
|
|
name="approvalID"
|
|
|
label={'审批流程'}
|
|
|
placeholder="请选择审批流程"
|
|
@@ -168,7 +203,30 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
label: item.name,
|
|
|
value: item.ID
|
|
|
}))}
|
|
|
- /> */}
|
|
|
+ />
|
|
|
+ </ProForm>
|
|
|
+ </TabPane> */}
|
|
|
+ <TabPane tab="角色权限" key="3">
|
|
|
+ <ProForm formRef={ref2} onFinish={formData => onFinish(FormType.ROLE_PERM, formData)}>
|
|
|
+ <ProFormSelect
|
|
|
+ name="createdID"
|
|
|
+ label="创建人:创建项目、管理编辑者、上传项目数据、编制项目、添加批注"
|
|
|
+ options={state.accountList}
|
|
|
+ />
|
|
|
+ <ProFormDependency name={['createdID']}>
|
|
|
+ {({ createdID }) => {
|
|
|
+ return (
|
|
|
+ <ProFormSelect
|
|
|
+ name="reportAccount"
|
|
|
+ label="编辑者:编制项目、上传项目数据、添加批注"
|
|
|
+ fieldProps={{
|
|
|
+ mode: 'tags'
|
|
|
+ }}
|
|
|
+ options={state.accountList.filter(item => item.value !== createdID)}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </ProFormDependency>
|
|
|
</ProForm>
|
|
|
</TabPane>
|
|
|
</Tabs>
|