lanjianrong пре 3 година
родитељ
комит
8db798f4a7

+ 20 - 15
src/pages/Project/Management/Detail/components/AuditPerm.tsx

@@ -2,16 +2,14 @@ import ProForm, { ProFormSelect } from '@ant-design/pro-form'
 import type { ProFormInstance } from '@ant-design/pro-form'
 import React, { useEffect, useRef } from 'react'
 import { useRequest } from 'umi'
-import { getApprovalList, setProjectPersonor } from '@/services/api/project'
-import { Card, Form, message } from 'antd'
-import TreeNodeSelect from '../../List/components/TreeNodeSelect'
+import { getApprovalList, queryApprovalDetail, setProjectPersonor } from '@/services/api/project'
+import { Card, message } from 'antd'
 import consts from '@/utils/consts'
 
 type AuditPermProps = {
   dataID: string
   defaultFormData: {
-    createdID: string
-    reportAccount: string[]
+    approvalID?: string
   }
 }
 const AuditPerm: React.FC<AuditPermProps> = ({ dataID, defaultFormData }) => {
@@ -22,9 +20,17 @@ const AuditPerm: React.FC<AuditPermProps> = ({ dataID, defaultFormData }) => {
       message.success('提交成功')
     }
   })
+  const { run: tryQueryDetail } = useRequest(queryApprovalDetail, {
+    manual: true,
+    onSuccess: result => {
+      if (result) {
+        ref.current?.setFieldsValue({ ...defaultFormData })
+      }
+    }
+  })
   useEffect(() => {
     if (dataID) {
-      ref.current?.setFieldsValue({ ...defaultFormData })
+      tryQueryDetail({ ID: dataID })
     }
   }, [dataID])
 
@@ -34,25 +40,24 @@ const AuditPerm: React.FC<AuditPermProps> = ({ dataID, defaultFormData }) => {
         <ProForm
           formRef={ref}
           submitter={{ resetButtonProps: { style: { display: 'none' } } }}
-          onFinish={onFinish}>
-          <Form.Item label="指定人员" name="accountID">
+          onFinish={async values => {
+            const { code = -1 } = await trySetProjectPersonor({ ...values, ID: dataID })
+            return code === consts.RET_CODE.SUCCESS
+          }}>
+          {/* <Form.Item label="指定人员" name="accountID">
             <TreeNodeSelect />
-          </Form.Item>
+          </Form.Item> */}
           <ProFormSelect
             name="approvalID"
             label={'审批流程'}
             placeholder="请选择审批流程"
             request={async () => {
-              const { code = -1, data = [] } = await getApprovalList()
+              const { code = -1, data: { items } = { items: [] } } = await getApprovalList()
               if (code === consts.RET_CODE.SUCCESS) {
-                return data.map(item => ({ label: item.name, value: item.ID }))
+                return items.map(item => ({ label: item.name, value: item.ID }))
               }
               return []
             }}
-            options={state.approvalList.map(item => ({
-              label: item.name,
-              value: item.ID
-            }))}
           />
         </ProForm>
       </div>

+ 13 - 7
src/pages/Project/Management/Detail/index.tsx

@@ -9,14 +9,14 @@ import AuditPerm from './components/AuditPerm'
 
 export enum TabEnum {
   INFO = '0',
-  AUDIT_ROLE = '1',
-  STAFF_ROLE = '2'
+  STAFF_ROLE = '1',
+  AUDIT_ROLE = '2'
 }
 
 const menuMap: Record<string, string> = {
   [TabEnum.INFO]: '项目信息',
-  // [TabEnum.AUDIT_ROLE]: '上传权限',
-  [TabEnum.STAFF_ROLE]: '角色权限'
+  [TabEnum.STAFF_ROLE]: '角色权限',
+  [TabEnum.AUDIT_ROLE]: '流程配置'
 }
 
 type ProjectDetailStateProps = {
@@ -55,11 +55,17 @@ const ProjectDetail: React.FC<RouteComponentProps> = ({ location }) => {
           />
         )
       case TabEnum.AUDIT_ROLE:
-        return <AuditPerm />
+        return (
+          <AuditPerm
+            dataID={state.projectInfo?.ID}
+            defaultFormData={{ approvalID: state.projectInfo?.approval?.ID }}
+          />
+        )
       default:
         break
     }
   }
+
   return (
     state.projectInfo && (
       <PageContainer
@@ -67,8 +73,8 @@ const ProjectDetail: React.FC<RouteComponentProps> = ({ location }) => {
         fixedHeader
         tabList={[
           { tab: menuMap[TabEnum.INFO], key: TabEnum.INFO },
-          // { tab: menuMap[TabEnum.AUDIT_ROLE], key: TabEnum.AUDIT_ROLE },
-          { tab: menuMap[TabEnum.STAFF_ROLE], key: TabEnum.STAFF_ROLE }
+          { tab: menuMap[TabEnum.STAFF_ROLE], key: TabEnum.STAFF_ROLE },
+          { tab: menuMap[TabEnum.AUDIT_ROLE], key: TabEnum.AUDIT_ROLE }
         ]}
         onTabChange={key => setState({ ...state, selectKey: key })}>
         {renderChildren()}

+ 4 - 0
src/services/api/typings.d.ts

@@ -28,6 +28,10 @@ declare namespace API {
     projectTypeID: string
     ID: string
     reportAccount: { ID: string; name: string }[]
+    approval: {
+      ID?: string
+      name?: string
+    }
   }
 
   type ProjectDetail = ProjectListItem & {