浏览代码

fix: 上报人不能选择父级

outaozhen 3 年之前
父节点
当前提交
e63bca111c

+ 9 - 11
src/pages/Project/Management/components/Detail.tsx

@@ -10,7 +10,9 @@ import type { SchemaBaseModelState } from '@/pages/Schema/Base/model'
 import type { ConnectProps } from 'umi'
 import type { ProjectModelState } from '../../model'
 import ProForm, { ProFormSelect } from '@ant-design/pro-form'
+import TreeNodeSelect from './TreeNodeSelect'
 
+const { TreeNode } = TreeSelect
 export enum ModalType {
   ADD = 0,
   UPDATE = 1
@@ -136,22 +138,18 @@ const DetailModal: React.FC<ProjectModalProps> = ({
           submitter={{ resetButtonProps: { style: { display: 'none' } } }}
           onFinish={onFinish}>
           <Form.Item label="上报人" name="accountID">
-            <TreeSelect
+            <TreeNodeSelect
+              treeData={state.acountInstitutionList}
+              onChange={onChange}
+              value={state.acountInstitutionList.value}
+            />
+            {/* <TreeSelect
               style={{ width: '100%' }}
               placeholder="请选择上报人"
               treeDefaultExpandAll
               treeData={state.acountInstitutionList}
-            />
+            /> */}
           </Form.Item>
-          {/* <ProFormSelect
-            name="accountID"
-            label={'上报人'}
-            placeholder="请选择上报人"
-            options={state.acountList.map(item => ({
-              label: item.name,
-              value: item.ID
-            }))}
-          /> */}
           <ProFormSelect
             name="approvalID"
             label={'审批流程'}

+ 37 - 0
src/pages/Project/Management/components/TreeNodeSelect.tsx

@@ -0,0 +1,37 @@
+import React from 'react'
+import { TreeSelect } from 'antd'
+
+const { TreeNode } = TreeSelect
+
+const TreeNodeSelect = ({ treeData = [], onChange, value, placeholder = '请选择上报人' }) => {
+  const onNodeChange = values => {
+    onChange(values)
+  }
+  const renderTreeNodes = data =>
+    data.map(item => {
+      if (item.children) {
+        item.disabled = true
+        return (
+          <TreeNode key={item.key} title={item.title} value={item.value} disabled={item.disabled}>
+            {renderTreeNodes(item.children)}
+          </TreeNode>
+        )
+      }
+      return <TreeNode {...item} key={item.key} title={item.title} value={item.value} />
+    })
+  return (
+    <TreeSelect
+      showSearch
+      style={{ width: '100%' }}
+      value={value}
+      placeholder={placeholder}
+      treeNodeFilterProp="label"
+      allowClear
+      treeDefaultExpandAll
+      onChange={values => onNodeChange(values)}>
+      {renderTreeNodes(treeData)}
+    </TreeSelect>
+  )
+}
+
+export default TreeNodeSelect