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,61 +78,62 @@ 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}> <NormalSelect
<Col span={8}> allowClear
<Form.Item name="configTarget" rules={[{ required: true }]} noStyle> style={{ width: '100%' }}
<NormalSelect disabled={mode === 'view'}
allowClear placeholder="请选择对象"
style={{ width: '100%' }} options={[
disabled={mode === 'view'} { label: '未来1h水库预报水位', value: 1 },
placeholder="请选择对象" { label: '未来3h水库预报水位', value: 3 },
options={[ { label: '未来6h水库预报水位', value: 6 },
{ label: '未来1h水库预报水位', value: 1 }, { label: '未来12h水库预报水位', value: 12 },
{ label: '未来3h水库预报水位', value: 3 }, { label: '未来24h水库预报水位', value: 24 },
{ label: '未来6h水库预报水位', value: 6 }, ]}
{ label: '未来12h水库预报水位', value: 12 }, />
{ label: '未来24h水库预报水位', value: 24 }, </Form.Item>
]} </Col>
/> <Col span={4}>
</Form.Item> <Form.Item
</Col> label=""
<Col span={8}> name="operator"
<Form.Item name="configRelation" rules={[{ required: true }]} noStyle> rules={[{ required: true, message: '请选择关系' }]}
<NormalSelect >
allowClear <NormalSelect
style={{ width: '100%' }} allowClear
disabled={mode === 'view'} style={{ width: '100%' }}
placeholder="请选择关系" disabled={mode === 'view'}
options={[ placeholder="请选择关系"
{ label: '>', value: '>' }, options={[
{ label: '≥', value: '>=' }, { label: '>', value: '>' },
]} { label: '≥', value: '>=' },
/> ]}
</Form.Item> />
</Col> </Form.Item>
<Col span={8}> </Col>
<Form.Item name="configThreshold" rules={[{ required: true }]} noStyle> <Col span={8}>
<NormalSelect <Form.Item
allowClear label=""
style={{ width: '100%' }} name="type"
disabled={mode === 'view'} rules={[{ required: true, message: '请选择阈值' }]}
placeholder="请选择阈值" >
options={[ <NormalSelect
{ label: '汛限水位(109.00m)', value: 5 }, allowClear
{ label: '设计洪水位(111.89m)', value: 10 }, style={{ width: '100%' }}
{ label: '校核洪水位(113.06m)', value: 20 }, disabled={mode === 'view'}
]} placeholder="请选择阈值"
/> options={[
</Form.Item> { label: '汛限水位(109.00m)', value: 0 },
</Col> { label: '设计洪水位(111.89m)', value: 1 },
</Row> { label: '校核洪水位(113.06m)', value: 2 },
]}
/>
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>

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

@ -69,7 +69,66 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
</Radio.Group> </Radio.Group>
</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>
</> </>