|
@@ -1,7 +1,7 @@
|
|
|
import { connect, useRequest } from 'umi'
|
|
|
import { useEffect, useRef, useState } from 'react'
|
|
|
import { message, Tabs, Form } from 'antd'
|
|
|
-import { getApprovalList, setApproval } from '@/services/api/project'
|
|
|
+import { getApprovalList, getProject, setApproval } from '@/services/api/project'
|
|
|
import { delay } from '@/utils/util'
|
|
|
import FormRender, { useForm } from 'form-render'
|
|
|
import { BaseMenuEnum } from '@/pages/Schema/Base'
|
|
@@ -11,14 +11,14 @@ import type { ProjectModelState } from '../../model'
|
|
|
import ProForm, { ProFormSelect } from '@ant-design/pro-form'
|
|
|
import TreeNodeSelect from './TreeNodeSelect'
|
|
|
import { ModalType } from '@/utils/enum'
|
|
|
+import consts from '@/utils/consts'
|
|
|
|
|
|
type ProjectModalProps = ConnectProps & {
|
|
|
visible: boolean
|
|
|
onVisibleChange: (visible: boolean) => void
|
|
|
type: ModalType
|
|
|
defaultFormData?: {
|
|
|
- ID: string
|
|
|
- name: string
|
|
|
+ dataID: string
|
|
|
}
|
|
|
reload: () => void
|
|
|
schema?: Record<string, any> | null
|
|
@@ -39,7 +39,8 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
const [state, setState] = useState({
|
|
|
acountInstitutionList: [],
|
|
|
approvalList: [],
|
|
|
- activeKey: ''
|
|
|
+ activeKey: '',
|
|
|
+ account: null
|
|
|
})
|
|
|
|
|
|
const { run: tryApprovalList } = useRequest(() => getApprovalList(), {
|
|
@@ -67,25 +68,29 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
}
|
|
|
if (state.activeKey === '2') {
|
|
|
const TabFormData = {
|
|
|
- accountID: defaultFormData.reportAccount?.ID,
|
|
|
- approvalID: defaultFormData.approval?.ID
|
|
|
+ accountID: state.account.reportAccount?.ID,
|
|
|
+ approvalID: state.account.approval?.ID
|
|
|
}
|
|
|
ref.current?.setFieldsValue({ ...TabFormData })
|
|
|
}
|
|
|
}, [visible, state.activeKey])
|
|
|
|
|
|
- const onMount = () => {
|
|
|
- const currentFormData = { ...defaultFormData }
|
|
|
- const keys = Object.keys(currentFormData)
|
|
|
- keys.forEach(key => {
|
|
|
- if (currentFormData[key] instanceof Object) {
|
|
|
- const targetMap = currentFormData[key]
|
|
|
- delete currentFormData[key]
|
|
|
- currentFormData[`${key}ID`] = targetMap.ID
|
|
|
- }
|
|
|
- })
|
|
|
- // console.log(currentFormData)
|
|
|
- form.setValues({ ...currentFormData })
|
|
|
+ const onMount = async () => {
|
|
|
+ const { dataID } = defaultFormData
|
|
|
+ const { code = -1, data } = await getProject({ ID: dataID })
|
|
|
+ if (code === consts.RET_CODE.SUCCESS) {
|
|
|
+ const currentFormData = { ...data }
|
|
|
+ setState({ ...state, account: data })
|
|
|
+ const keys = Object.keys(currentFormData)
|
|
|
+ keys.forEach(key => {
|
|
|
+ if (currentFormData[key] instanceof Object) {
|
|
|
+ const targetMap = currentFormData[key]
|
|
|
+ delete currentFormData[key]
|
|
|
+ currentFormData[`${key}ID`] = targetMap.ID
|
|
|
+ }
|
|
|
+ })
|
|
|
+ form.setValues({ ...currentFormData })
|
|
|
+ }
|
|
|
delay(80).then(() => {
|
|
|
form.setSchemaByPath('projectTypeID', {
|
|
|
enum: pTypeList.map(item => item.value),
|
|
@@ -108,8 +113,15 @@ const DetailModal: React.FC<ProjectModalProps> = ({
|
|
|
|
|
|
const onFinish = async formData => {
|
|
|
try {
|
|
|
- await trySetApproval({ ...formData, ID: defaultFormData.ID })
|
|
|
- onVisibleChange(false)
|
|
|
+ await trySetApproval({ ...formData, ID: defaultFormData.dataID })
|
|
|
+ setState({
|
|
|
+ ...state,
|
|
|
+ account: {
|
|
|
+ ...state,
|
|
|
+ approval: { ID: formData.approvalID },
|
|
|
+ reportAccount: { ID: formData.accountID }
|
|
|
+ }
|
|
|
+ })
|
|
|
reload()
|
|
|
return true
|
|
|
} catch (error) {
|