CreateModal.tsx
4.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import React, { useEffect, useState } from "react";
import { Modal, Form, Select, message, Input, Radio } from "antd";
import { save, ListVO, queryBacklogList, BacklogItemVO } from "../api";
import useInitial from "@/hooks/useInitail";
import { systemListApi } from "@/pages/admin/Privilege/api";
import usePagination from "@/hooks/usePagination";
import { NumberTypeEnum, SymbolDescEnum } from "@/pages/backlog/entity";
interface Props {
visible: boolean;
onCancel: () => void;
item?: ListVO;
onRefresh?: () => void;
}
export default ({ visible, onCancel, item, onRefresh }: Props) => {
const [form] = Form.useForm();
const [saveLoading, setSaveLoading] = useState(false);
const { data: BacklogList } = useInitial<BacklogItemVO[], any>(queryBacklogList, [], {});
const { list: syslist } = usePagination(systemListApi, { current: 1, pageSize: 5000 });
useEffect(() => {
if (visible && item?.id) {
form.setFieldsValue({
name: item.name,
configId: { value: item.configId, label: item.itemName },
applySysId: { value: item.applySysId, label: item.applySysName },
numberType: item.numberType,
symbolType: item.symbolType,
valueDesc: item.valueDesc,
valueUnit: item.valueUnit,
});
}
if (!visible) {
setSaveLoading(false);
form?.resetFields();
}
}, [visible]);
function handleSave(feildValue: any) {
setSaveLoading(true);
const params = {
...feildValue,
configId: feildValue?.configId.value,
applySysId: feildValue?.applySysId.value,
id: item?.id,
};
save(params)
.then(() => {
message.success("操作成功");
onCancel?.();
onRefresh?.();
})
.catch((e) => message.error(e.message))
.finally(() => setSaveLoading(false));
}
return (
<Modal
visible={visible}
onCancel={onCancel}
onOk={form.submit}
title={item?.id ? "编辑异常干预项" : "新增异常干预项"}
confirmLoading={saveLoading}
width="65%"
>
<Form form={form} onFinish={handleSave} wrapperCol={{ span: 18 }} labelCol={{ span: 4 }}>
<Form.Item name="name" label="干预事项名称" rules={[{ required: true, message: "干预事项名称不能为空" }]}>
<Input placeholder="请输入干预事项名称" />
</Form.Item>
<Form.Item name="configId" label="干预待办" rules={[{ required: true, message: "待办不能为空" }]}>
<Select
placeholder="请选择"
disabled={!!item?.id}
showSearch
optionFilterProp="children"
labelInValue
filterOption={(input, option: any) => option?.children.indexOf(input) >= 0}
>
{BacklogList.map((item) => (
<Select.Option value={item.id} key={item.id}>
{item.itemName}
</Select.Option>
))}
</Select>
</Form.Item>
<Form.Item name="applySysId" label="归属系统" rules={[{ required: true, message: "归属系统不能为空" }]}>
<Select
placeholder="请选择"
disabled={!!item?.id}
showSearch
optionFilterProp="children"
labelInValue
filterOption={(input, option: any) => option?.children.indexOf(input) >= 0}
>
{syslist.map((item) => (
<Select.Option value={item.id} key={item.id}>
{item.sysName}
</Select.Option>
))}
</Select>
</Form.Item>
<Form.Item initialValue={1} name="numberType" label="数据类型" rules={[{ required: true, message: "数据类型不能为空" }]}>
<Radio.Group>
{[1, 2].map((t) => (
<Radio key={`nt-${t}`} value={t}>
{NumberTypeEnum[t]}
</Radio>
))}
</Radio.Group>
</Form.Item>
<Form.Item initialValue={1} name="symbolType" label="运算符类型" rules={[{ required: true, message: "运算符类型不能为空" }]}>
<Radio.Group>
{[1, 2].map((t) => (
<Radio key={`st-${t}`} value={t}>
{SymbolDescEnum[t]}
</Radio>
))}
</Radio.Group>
</Form.Item>
<Form.Item name="valueDesc" label="干预阀值描述" rules={[{ required: true, message: "干预阀值描述不能为空" }]}>
<Input placeholder="请输入干预阀值描述" />
</Form.Item>
<Form.Item name="valueUnit" label="单位" rules={[{ required: true, message: "单位不能为空" }]}>
<Input placeholder="请输入单位" />
</Form.Item>
</Form>
</Modal>
);
};