feat(component): 添加组件创建状态控制与表单禁用逻辑

- 新增 created 状态用于控制组件提交后的表单禁用
- 更新接口编辑和删除按钮的禁用条件,增加 baseInfo 判断
- 在组件提交成功后设置 created 状态为 true
- 根据 created 和 baseInfo 状态动态禁用代码标识、语言和类型选择框
-修复新增接口按钮的禁用逻辑,确保 baseInfo 存在时才判断状态
master
钟良源 3 months ago
parent 855bb5b6e2
commit 18835dc1d5

@ -36,6 +36,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
const [componentDesignData, setComponentDesignData] = useState([]); // 新增状态用于存储接口设计数据 const [componentDesignData, setComponentDesignData] = useState([]); // 新增状态用于存储接口设计数据
const [selectedApiData, setSelectedApiData] = useState(null); // 新增状态用于存储选中的API数据 const [selectedApiData, setSelectedApiData] = useState(null); // 新增状态用于存储选中的API数据
const [showApiModal, setShowApiModal] = useState(false); const [showApiModal, setShowApiModal] = useState(false);
const [created, setCreated] = useState(false); // 是否提交了组件信息
const [file, setFile] = useState(null); const [file, setFile] = useState(null);
const [form] = Form.useForm(); const [form] = Form.useForm();
@ -79,14 +80,14 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
setSelectedApiData(record); setSelectedApiData(record);
setShowApiModal(true); setShowApiModal(true);
}} }}
disabled={!['DEFAULT', 'DESIGN'].includes(baseInfo.componentStatus)} disabled={baseInfo && !['DEFAULT', 'DESIGN'].includes(baseInfo.componentStatus)}
> >
</Button> </Button>
<Button <Button
type="text" type="text"
status="danger" status="danger"
disabled={!['DEFAULT', 'DESIGN'].includes(baseInfo.componentStatus)} disabled={baseInfo && !['DEFAULT', 'DESIGN'].includes(baseInfo.componentStatus)}
onClick={async () => { onClick={async () => {
// 显示删除确认框 // 显示删除确认框
Modal.confirm({ Modal.confirm({
@ -228,6 +229,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
// 提交成功后获取组件设计数据 // 提交成功后获取组件设计数据
if (res.data && res.data.id) { if (res.data && res.data.id) {
setCreated(true);
getComponentDesignData(res.data.id); getComponentDesignData(res.data.id);
} }
@ -438,6 +440,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
style={{ width: '90%' }} style={{ width: '90%' }}
allowClear allowClear
placeholder="请输入代码标识" placeholder="请输入代码标识"
disabled={created || baseInfo}
onChange={(e) => validateProjectId(e)} onChange={(e) => validateProjectId(e)}
/> />
</FormItem> </FormItem>
@ -483,6 +486,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
<Select <Select
placeholder="请选择组件语言" placeholder="请选择组件语言"
style={{ width: '90%' }} style={{ width: '90%' }}
disabled={created || baseInfo}
> >
{['Java:8', 'Python:3.10.12'].map((option, index) => ( {['Java:8', 'Python:3.10.12'].map((option, index) => (
<Option key={option} disabled={index === 3} value={option}> <Option key={option} disabled={index === 3} value={option}>
@ -525,6 +529,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
<Select <Select
placeholder="请选择组件类型" placeholder="请选择组件类型"
style={{ width: '90%' }} style={{ width: '90%' }}
disabled={created || baseInfo}
> >
{['普通组件', '监听组件'].map((option, index) => ( {['普通组件', '监听组件'].map((option, index) => (
<Option key={option} disabled={index === 3} value={option}> <Option key={option} disabled={index === 3} value={option}>
@ -567,7 +572,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh }) => {
setSelectedApiData(null); // 确保新增时清空选中的API数据 setSelectedApiData(null); // 确保新增时清空选中的API数据
setShowApiModal(true); setShowApiModal(true);
}} }}
disabled={!['DEFAULT', 'DESIGN'].includes(baseInfo.componentStatus)} disabled={baseInfo && !['DEFAULT', 'DESIGN'].includes(baseInfo.componentStatus)}
> >
+ +
</Button> </Button>

Loading…
Cancel
Save