feat():完成洪水预警模块的开发

master
李神峰 2025-11-28 17:17:08 +08:00
parent 71bca6f4b9
commit f2adce43ff
6 changed files with 118 additions and 66 deletions

View File

@ -234,7 +234,7 @@ const apiurl = {
page: service_fxdd + "/warningRule/page", page: service_fxdd + "/warningRule/page",
edit: service_fxdd + '/warningRule/update', edit: service_fxdd + '/warningRule/update',
save: service_fxdd + '/warningRule/insert', save: service_fxdd + '/warningRule/insert',
del: service_fxdd + "/warningRule/del/", delete: service_fxdd + "/warningRule/del/",
} }
}, },
// 防汛准备 // 防汛准备

View File

@ -10,6 +10,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const onfinish = (values) => { const onfinish = (values) => {
const userId = localStorage.getItem('userId') const userId = localStorage.getItem('userId')
values.userId = userId values.userId = userId
values.createTime = values.createTime ? moment(values.createTime).format("YYYY-MM-DD 00:00:00") : undefined
if (mode === 'edit') { if (mode === 'edit') {
onEdit(apiurl.sy.yjxxpz.edit, { ...record, ...values }) onEdit(apiurl.sy.yjxxpz.edit, { ...record, ...values })
} }
@ -77,16 +78,12 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col span={24}> <Col span={12}>
<Form.Item <Form.Item
label="规则配置" label="规则配置"
required name="durationHours"
labelCol={{ span: 3 }} rules={[{ required: true, message: '请选择对象' }]}
wrapperCol={{ span: 19 }}
> >
<Row gutter={16}>
<Col span={8}>
<Form.Item name="configTarget" rules={[{ required: true }]} noStyle>
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: '100%' }} style={{ width: '100%' }}
@ -102,8 +99,12 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
/> />
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={8}> <Col span={4}>
<Form.Item name="configRelation" rules={[{ required: true }]} noStyle> <Form.Item
label=""
name="operator"
rules={[{ required: true, message: '请选择关系' }]}
>
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: '100%' }} style={{ width: '100%' }}
@ -117,24 +118,25 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={8}> <Col span={8}>
<Form.Item name="configThreshold" rules={[{ required: true }]} noStyle> <Form.Item
label=""
name="type"
rules={[{ required: true, message: '请选择阈值' }]}
>
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: '100%' }} style={{ width: '100%' }}
disabled={mode === 'view'} disabled={mode === 'view'}
placeholder="请选择阈值" placeholder="请选择阈值"
options={[ options={[
{ label: '汛限水位(109.00m)', value: 5 }, { label: '汛限水位(109.00m)', value: 0 },
{ label: '设计洪水位(111.89m)', value: 10 }, { label: '设计洪水位(111.89m)', value: 1 },
{ label: '校核洪水位(113.06m)', value: 20 }, { label: '校核洪水位(113.06m)', value: 2 },
]} ]}
/> />
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
</Form.Item>
</Col>
</Row>
<Row> <Row>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item

View File

@ -29,10 +29,10 @@ const Page = () => {
{ title: '预警时间', key: 'createTime', dataIndex: 'createTime', width: 140, align: "center", }, { title: '预警时间', key: 'createTime', dataIndex: 'createTime', width: 140, align: "center", },
{ title: '规则名称', key: 'ruleName', dataIndex: 'ruleName', width: 140, align: "center", }, { title: '规则名称', key: 'ruleName', dataIndex: 'ruleName', width: 140, align: "center", },
{ title: '预警等级', key: 'warningLevel', dataIndex: 'warningLevel', width: 100, align: "center", render: (v) => <span>{levelObj[v]}</span> }, { title: '预警等级', key: 'warningLevel', dataIndex: 'warningLevel', width: 100, align: "center", render: (v) => <span>{levelObj[v]}</span> },
{ title: '预警信息', key: 'ruleInfo', dataIndex: 'ruleInfo', width: 300, align: "center", }, { title: '预警信息', key: 'ruleDesc', dataIndex: 'ruleDesc', width: 300, align: "center", },
{ {
title: '操作', key: 'operation', width: 100, fixed: 'right', align: 'center', title: '操作', key: 'operation', width: 100, fixed: 'right', align: 'center',
render: (value, row, index) => (<CrudOpRender_text view={true} command={(cmd) => () => command(cmd)(row)} />) render: (value, row, index) => (<CrudOpRender_text edit={true} del={true} command={(cmd) => () => command(cmd)(row)} />)
}, },
]; ];
@ -62,14 +62,12 @@ const Page = () => {
refresh() refresh()
} }
useEffect(() => { useEffect(() => {
if (searchVal) {
const params = { const params = {
search: { search: {
...searchVal, ...searchVal,
} }
}; };
search(params) search(params)
}
}, [searchVal]) }, [searchVal])

View File

@ -70,6 +70,65 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
<Row>
<Col span={24}>
<Form.Item
label="规则配置"
required
labelCol={{ span: 3 }}
wrapperCol={{ span: 19 }}
>
<Row gutter={16}>
<Col span={8}>
<Form.Item name="durationHours" rules={[{ required: true }]} noStyle>
<NormalSelect
allowClear
style={{ width: '100%' }}
disabled={mode === 'view'}
placeholder="请选择对象"
options={[
{ label: '未来1h水库预报水位', value: 1 },
{ label: '未来3h水库预报水位', value: 3 },
{ label: '未来6h水库预报水位', value: 6 },
{ label: '未来12h水库预报水位', value: 12 },
{ label: '未来24h水库预报水位', value: 24 },
]}
/>
</Form.Item>
</Col>
<Col span={8}>
<Form.Item name="operator" rules={[{ required: true }]} noStyle>
<NormalSelect
allowClear
style={{ width: '100%' }}
disabled={mode === 'view'}
placeholder="请选择关系"
options={[
{ label: '>', value: '>' },
{ label: '≥', value: '>=' },
]}
/>
</Form.Item>
</Col>
<Col span={8}>
<Form.Item name="type" rules={[{ required: true }]} noStyle>
<NormalSelect
allowClear
style={{ width: '100%' }}
disabled={mode === 'view'}
placeholder="请选择阈值"
options={[
{ label: '汛限水位(109.00m)', value: 0 },
{ label: '设计洪水位(111.89m)', value: 1 },
{ label: '校核洪水位(113.06m)', value: 2 },
]}
/>
</Form.Item>
</Col>
</Row>
</Form.Item>
</Col>
</Row>
{ {
mode==='view'?null:( mode==='view'?null:(

View File

@ -29,7 +29,7 @@ const Page = () => {
{ title: '预警时间', key: 'createTime', dataIndex: 'createTime', width: 140, align: "center", }, { title: '预警时间', key: 'createTime', dataIndex: 'createTime', width: 140, align: "center", },
{ title: '规则名称', key: 'ruleName', dataIndex: 'ruleName', width: 140, align: "center", }, { title: '规则名称', key: 'ruleName', dataIndex: 'ruleName', width: 140, align: "center", },
{ title: '预警等级', key: 'warningLevel', dataIndex: 'warningLevel', width: 100, align: "center", render: (v) => <span>{levelObj[v]}</span> }, { title: '预警等级', key: 'warningLevel', dataIndex: 'warningLevel', width: 100, align: "center", render: (v) => <span>{levelObj[v]}</span> },
{ title: '预警信息', key: 'ruleInfo', dataIndex: 'ruleInfo', width: 300, align: "center", }, { title: '预警信息', key: 'ruleDesc', dataIndex: 'ruleDesc', width: 300, align: "center", },
{ {
title: '操作', key: 'operation', width: 100, fixed: 'right', align: 'center', title: '操作', key: 'operation', width: 100, fixed: 'right', align: 'center',
render: (value, row, index) => (<CrudOpRender_text view={true} command={(cmd) => () => command(cmd)(row)} />) render: (value, row, index) => (<CrudOpRender_text view={true} command={(cmd) => () => command(cmd)(row)} />)

View File

@ -62,13 +62,6 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role }) => {
<Form.Item> <Form.Item>
<Button onClick={() => form.resetFields()}>重置</Button> <Button onClick={() => form.resetFields()}>重置</Button>
</Form.Item> </Form.Item>
{
(onSave && addBtn) ?
<Form.Item>
<Button onClick={onSave}>新增</Button>
</Form.Item>
:null
}
</Form> </Form>
</div> </div>
</> </>