lanjianrong 3 år sedan
förälder
incheckning
a26e1eb295

+ 0 - 6
config/routes.ts

@@ -41,12 +41,6 @@
         path: '/project/management/list',
         name: 'management-list',
         component: './Project/Management/index'
-      },
-      {
-        path: '/project/management/add',
-        name: 'management-add',
-        hideInMenu: true,
-        component: './Project/Management/create'
       }
     ]
   },

+ 0 - 157
src/pages/Institutions/Company/Detail/components/CompanyDrawer.tsx

@@ -1,157 +0,0 @@
-import { useRequest } from 'umi'
-import { useRef, useEffect } from 'react'
-import ProForm, { DrawerForm, ProFormText } from '@ant-design/pro-form'
-import { message } from 'antd'
-import type { FormInstance } from 'antd'
-import { addInstitution, updateInstitution } from '@/services/api/institution'
-
-export enum ModalType {
-  ADD = 0,
-  UPDATE = 1
-}
-
-type CompanyModalProps = {
-  visible: boolean
-  setVisible: (visible: boolean) => void
-  type: ModalType
-  defaultFormData?: API.InstitutionListItem
-  pTypeList: API.ProjectTypeList
-  reloadTable: () => void
-}
-
-const CompanyDrawer: React.FC<CompanyModalProps> = ({
-  visible,
-  setVisible,
-  type,
-  defaultFormData,
-  // pTypeList,
-  reloadTable
-}) => {
-  const ref = useRef<FormInstance>(null)
-  useEffect(() => {
-    defaultFormData && ref.current?.setFieldsValue({ ...defaultFormData })
-  }, [defaultFormData])
-  const { run: tryUpdateInstitution } = useRequest(updateInstitution, {
-    manual: true,
-    onSuccess: () => {
-      message.success('更新成功')
-    }
-  })
-  const { run: tryAddInstitution } = useRequest(addInstitution, {
-    manual: true,
-    onSuccess: () => {
-      message.success('创建成功')
-    }
-  })
-
-  const handleOnFinish = () => {
-    ref.current?.validateFields().then(async values => {
-      try {
-        // 执行表单提交
-        if (type === ModalType.ADD) {
-          console.log('111')
-
-          await tryAddInstitution(values)
-        } else {
-          await tryUpdateInstitution(values)
-        }
-        setVisible(false)
-        reloadTable()
-        ref.current?.resetFields()
-      } catch (error) {
-        message.error(error)
-      }
-    })
-  }
-  return (
-    <DrawerForm
-      width="60vw"
-      formRef={ref}
-      visible={visible}
-      title={type === ModalType.ADD ? '新增企事业单位' : '编辑企事业单位'}
-      onVisibleChange={setVisible}
-      onFinish={() => handleOnFinish()}>
-      <ProForm.Group>
-        {type === ModalType.UPDATE ? <ProFormText width="md" name="ID" hidden /> : null}
-        <ProFormText
-          width="md"
-          name="name"
-          label="项目名称"
-          rules={[{ required: true, message: '请输入项目名称' }]}
-        />
-      </ProForm.Group>
-      <ProForm.Group>
-        <ProFormText
-          width="md"
-          name="acronym"
-          label="简称"
-          rules={[{ required: true, message: '请输入简称' }]}
-        />
-        <ProFormText
-          width="md"
-          name="organizationCode"
-          label="组织架构代码"
-          rules={[{ required: true, message: '请输入组织架构代码' }]}
-        />
-      </ProForm.Group>
-      <ProForm.Group>
-        <ProFormText
-          width="md"
-          name="bank"
-          label="银行"
-          rules={[{ required: true, message: '请输入银行' }]}
-        />
-        <ProFormText
-          width="md"
-          name="phone"
-          label="手机"
-          rules={[{ required: true, message: '请输入手机' }]}
-        />
-      </ProForm.Group>
-      <ProForm.Group>
-        <ProFormText
-          width="md"
-          name="enterpriseCode"
-          label="企业代码"
-          rules={[{ required: true, message: '请输入企业代码' }]}
-        />
-        <ProFormText
-          width="md"
-          name="idCard"
-          label="身份证号码"
-          rules={[{ required: true, message: '请输入身份证号码' }]}
-        />
-      </ProForm.Group>
-      <ProForm.Group>
-        <ProFormText
-          width="md"
-          name="bankAccount"
-          label="银行账号"
-          rules={[{ required: true, message: '请输入银行账号' }]}
-        />
-        <ProFormText
-          width="md"
-          name="legalPerson"
-          label="法人代表"
-          rules={[{ required: true, message: '请输入法人代表' }]}
-        />
-      </ProForm.Group>
-      <ProForm.Group>
-        <ProFormText
-          width="md"
-          name="fax"
-          label="传真"
-          rules={[{ required: true, message: '请输入传真' }]}
-        />
-        <ProFormText
-          width="md"
-          name="address"
-          label="地址"
-          rules={[{ required: true, message: '请输入地址' }]}
-        />
-      </ProForm.Group>
-    </DrawerForm>
-  )
-}
-
-export default CompanyDrawer

+ 75 - 0
src/pages/Institutions/Company/List/components/CompanyDrawer.tsx

@@ -0,0 +1,75 @@
+import { useRequest } from 'umi'
+import { useRef, useEffect } from 'react'
+import { Drawer, message } from 'antd'
+import type { FormInstance } from 'antd'
+import { addInstitution, updateInstitution } from '@/services/api/institution'
+import { BaseMenuEnum } from '@/pages/Schema/Base'
+import type { SchemaBaseModelState } from '@/pages/Schema/Base/model'
+import { ModalType } from '@/utils/enum'
+
+type CompanyModalProps = {
+  visible: boolean
+  setVisible: (visible: boolean) => void
+  type: ModalType
+  defaultFormData?: API.InstitutionListItem
+  reload: () => void
+}
+
+const CompanyDrawer: React.FC<CompanyModalProps> = ({
+  visible,
+  setVisible,
+  type,
+  defaultFormData,
+  // pTypeList,
+  reload
+}) => {
+  const { run: tryUpdateInstitution } = useRequest(updateInstitution, {
+    manual: true,
+    onSuccess: () => {
+      message.success('更新成功')
+    }
+  })
+  const { run: tryAddInstitution } = useRequest(addInstitution, {
+    manual: true,
+    onSuccess: () => {
+      message.success('创建成功')
+    }
+  })
+
+  const onFinish = async (formData, errors) => {
+    console.log('formData:', formData, 'errors', errors)
+    try {
+      // 执行表单提交
+      if (type === ModalType.ADD) {
+        await tryAddInstitution(values)
+      } else {
+        await tryUpdateInstitution(values)
+      }
+      setVisible(false)
+      reload()
+      // ref.current?.resetFields()
+    } catch (error) {
+      message.error(error)
+    }
+  }
+  return (
+    <Drawer
+      width="50vw"
+      visible={visible}
+      onClose={() => {
+        setVisible(false)
+      }}
+      title={type === ModalType.ADD ? '新增企事业单位' : '编辑企事业单位'}>
+      {schema && (
+        <FormRender form={form} schema={JSON.parse(schema)} onFinish={onFinish} onMount={onMount} />
+      )}
+      <div>
+        <Button onClick={form.submit}>提交</Button>
+      </div>
+    </Drawer>
+  )
+}
+
+export default connect(({ schemaBase }: { schemaBase: SchemaBaseModelState }) => ({
+  schema: schemaBase.base[BaseMenuEnum.COMPANY]?.schema
+}))(CompanyDrawer)

+ 1 - 1
src/pages/Institutions/Company/List/index.tsx

@@ -12,7 +12,7 @@ import type { ProjectModelState } from '../../model'
 import type { SchemaBaseModelState } from '@/pages/Schema/Base/model'
 import { BaseMenuEnum } from '@/pages/Schema/Base'
 import { PageContainer } from '@ant-design/pro-layout'
-import CompanyDrawer, { ModalType } from '../Detail/components/CompanyDrawer'
+import CompanyDrawer, { ModalType } from './components/CompanyDrawer'
 // import CompanyName from './CompanyName'
 
 type ListProps = ConnectProps & {

+ 0 - 44
src/pages/Project/Management/components/ProjectModal.tsx

@@ -49,10 +49,6 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
     }
   }, [visible])
 
-  // useEffect(() => {
-  //   defaultFormData && ref.current?.setFieldsValue({ ...defaultFormData })
-  // }, [defaultFormData])
-
   const { run: tryUpdateProject } = useRequest(updateProject, {
     manual: true,
     onSuccess: () => {
@@ -74,33 +70,8 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
         enumNames: pTypeList.map(item => item.label)
       })
     })
-
-    // delay(3000).then(_ => {
-    //   form.setSchemaByPath('select1', {
-    //     description: '',
-    //     enum: ['a', 'b', 'c'],
-    //     enumNames: ['早', '中', '晚'],
-    //   });
-    // });
   }
 
-  // const handleOnFinish = () => {
-  //   ref.current?.validateFields().then(async values => {
-  //     try {
-  //       // 执行表单提交
-  //       if (type === ModalType.ADD) {
-  //         await tryAddProject(values)
-  //       } else {
-  //         await tryUpdateProject(values)
-  //       }
-  //       setVisible(false)
-  //       reloadTable()
-  //       ref.current?.resetFields()
-  //     } catch (error) {
-  //       message.error(error)
-  //     }
-  //   })
-  // }
   const onFinish = async (formData, errors) => {
     console.log('formData:', formData, 'errors', errors)
     try {
@@ -112,7 +83,6 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
       }
       setVisible(false)
       reloadTable()
-      // ref.current?.resetFields()
     } catch (error) {
       message.error(error)
     }
@@ -132,20 +102,6 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
       <div>
         <Button onClick={form.submit}>提交</Button>
       </div>
-      {/* <ProForm formRef={ref} submitter={{ render: false }}>
-        {type === ModalType.UPDATE ? <ProFormText name="ID" hidden /> : null}
-        <ProFormText
-          name="name"
-          label="项目名称"
-          rules={[{ required: true, message: '请输入项目名称' }]}
-        />
-        <ProFormSelect
-          name="projectTypeID"
-          label="项目类型"
-          rules={[{ required: true, message: '请选择项目类型' }]}
-          options={pTypeList}
-        />
-      </ProForm> */}
     </Drawer>
   )
 }

+ 0 - 7
src/pages/Project/Management/create.tsx

@@ -1,7 +0,0 @@
-import { PageContainer } from '@ant-design/pro-layout'
-
-const create = () => {
-  return <PageContainer title={false}>111</PageContainer>
-}
-
-export default create

+ 5 - 0
src/utils/enum.ts

@@ -0,0 +1,5 @@
+// 适用于抽屉/弹窗表单
+export enum ModalType {
+  ADD = 0,
+  UPDATE = 1
+}