From 2e186e62ec4ff95b10b8507c8f1d88286e26035c Mon Sep 17 00:00:00 2001 From: lix Date: Fri, 13 Jun 2025 09:29:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2=E8=A1=8C?= =?UTF-8?q?=E6=94=BF=E5=8C=BA=E5=9F=9F=E7=9A=84=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ProjectFiles/file.tsx | 105 ++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 46 deletions(-) diff --git a/src/pages/ProjectFiles/file.tsx b/src/pages/ProjectFiles/file.tsx index bf4329d..f2cafec 100644 --- a/src/pages/ProjectFiles/file.tsx +++ b/src/pages/ProjectFiles/file.tsx @@ -1,10 +1,11 @@ import { CloseCircleOutlined, MinusCircleOutlined, PlusOutlined } from '@ant-design/icons'; import { Button, Card, Col, Form, Popover, Row, message, Divider, Select, Input, Upload } from 'antd'; +import type { FormInstance } from 'antd'; import { history, useLocation } from 'umi'; import type { Location } from 'umi'; import type { FC } from 'react'; -import React, { useState, Fragment } from 'react'; +import React, { useState, Fragment, useRef } from 'react'; import ProForm, { ProFormSelect, ProFormText, @@ -112,7 +113,7 @@ const ProjectFileCreate: FC> = () => { const readOnly = query?.action === 'view'; const id = query?.id; // 文件 id - const [regionDictType, setRegionDictType] = useState('1'); + const formRef = useRef(); const [error, setError] = useState([]); const getErrorInfo = (errors: ErrorField[]) => { const errorCount = errors.filter((item) => item.errors.length > 0).length; @@ -179,6 +180,7 @@ const ProjectFileCreate: FC> = () => { > = () => { rules={[{ required: true, message: '请选择项目所在行政区域类型' }]} options={regionDictTypeOptions} fieldProps={{ - onChange: (e) => { - setRegionDictType(e.target.value); - }, disabled: readOnly, + onChange: () => { + formRef.current?.setFieldsValue({ + regionDict: undefined, + }); + }, }} /> @@ -385,47 +389,56 @@ const ProjectFileCreate: FC> = () => { - {regionDictType === '1' ? ( - ​} - required={false} - colon={false} - rules={[ - { - required: true, - validator: (_, value) => { - if (!value || !value.province || !value.city || !value.district) { - return Promise.reject(new Error('请完整选择省市区')); - } - return Promise.resolve(); - } - } - ]} - > - - - ) : ( - ​} - required={false} - colon={false} - rules={[{ required: true, message: '请选择项目所在行政区域' }]} - options={regionOutsideOptions} - placeholder="请选择行政区域" - fieldProps={{ - disabled: readOnly, - }} - /> - )} + + {({ regionDictType }, ...rest) => { + console.log(rest); + return ( + <> + {regionDictType === '1' ? ( + ​} + required={false} + colon={false} + rules={[ + { + required: true, + validator: (_, value) => { + if (!value || !value.province || !value.city || !value.district) { + return Promise.reject(new Error('请完整选择省市区')); + } + return Promise.resolve(); + } + } + ]} + > + + + ) : ( + ​} + required={false} + colon={false} + rules={[{ required: true, message: '请选择项目所在行政区域' }]} + options={regionOutsideOptions} + placeholder="请选择行政区域" + fieldProps={{ + disabled: readOnly, + }} + /> + )} + + ); + }} +