feat():闸门监控修改需求
parent
d573f06534
commit
b3d4946b8a
|
|
@ -348,7 +348,7 @@ export async function loadMenu(): Promise<MenuItem[]> {
|
|||
{
|
||||
id: id(), title: '白蚁防治', redirect: '/mgr/sg/byfz/bypc',
|
||||
children: [
|
||||
{ id: id(), title: '白蚁普查', path: '/mgr/sg/byfz/bypc' },
|
||||
{ id: id(), title: '白蚁监测', path: '/mgr/sg/byfz/bypc' },
|
||||
{ id: id(), title: '防治宣传', path: '/mgr/sg/byfz/byxc' },
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import React, { Fragment, useRef, useMemo,useEffect,useState } from 'react';
|
||||
import BasicCrudModal from '../../../../components/crud/BasicCrudModal';
|
||||
import { Table, Card, Modal, Form, Input, Button, Row,Col, Timeline, message, Tabs,Image } from 'antd';
|
||||
import { Table, Card, Modal, Form, Input, Button, Row,Col, Timeline, message, Tabs,Image,Tag } from 'antd';
|
||||
import {FileWordOutlined,FilePdfOutlined,FileZipOutlined,FileExcelOutlined } from '@ant-design/icons';
|
||||
import { useSelector } from 'react-redux';
|
||||
import ToolBar from './toolbar';
|
||||
|
|
@ -9,13 +9,20 @@ import apiurl from '../../../../service/apiurl';
|
|||
import usePageTable from '../../../../components/crud/usePageTable2';
|
||||
import { createCrudService } from '../../../../components/crud/_';
|
||||
import {CrudOpRender_text} from '../../../../components/crud/CrudOpRender';
|
||||
|
||||
import './index.less';
|
||||
const url = "http://223.75.53.141:9102/test.by-lyf.tmp"
|
||||
const Page = () => {
|
||||
const role = useSelector(state => state.auth.role);
|
||||
const editBtn = role?.rule?.find(item => item.menuName == "编辑") || true;
|
||||
const viewBtn = role?.rule?.find(item => item.menuName == "查看")|| true;
|
||||
const delBtn = role?.rule?.find(item => item.menuName == "删除")|| true;
|
||||
const delBtn = role?.rule?.find(item => item.menuName == "删除") || true;
|
||||
|
||||
const [stats, setStats] = useState({
|
||||
total: 400,
|
||||
withMosquito: 14,
|
||||
withoutMosquito: 382,
|
||||
noData: 4
|
||||
});
|
||||
const surveyType = {
|
||||
1: "日常检查排查",
|
||||
2: "定期普查",
|
||||
|
|
@ -33,38 +40,62 @@ const Page = () => {
|
|||
}
|
||||
const refModal = useRef();
|
||||
const [searchVal, setSearchVal] = useState({})
|
||||
// const columns = [
|
||||
// { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align: "center" },
|
||||
// {title: '填报日期', key: 'reportDate', dataIndex: 'reportDate', width: 140,},
|
||||
// {
|
||||
// title: '普查类型', key: 'surveyType', dataIndex: 'surveyType', width: 200,
|
||||
// render: (value) => <span>{value ? surveyType[value] : ''}</span>
|
||||
// },
|
||||
// {
|
||||
// title: '普查方式', key: 'surveyWay', dataIndex: 'surveyWay', width: 200,
|
||||
// render: (value) => <span>{value ? surveyWay[value] : ''}</span>
|
||||
|
||||
// },
|
||||
// {
|
||||
// title: '危害情况', key: 'isHarm', dataIndex: 'isHarm', width: 200,
|
||||
// render: (value, row) =>(
|
||||
// <span style={row.harmNum > 0 ? { color: "red" } : {}}>{isHarm[row.harmNum > 0 ? 1 : 0]}</span>)
|
||||
// },
|
||||
// {title: '白蚁危害处数', key: 'harmNum', dataIndex: 'harmNum', width: 100},
|
||||
// {title: '已处置处数', key: 'handleNum', dataIndex: 'handleNum', width: 100},
|
||||
// {title: '上报人', key: 'reportUserName', dataIndex: 'reportUserName', width: 100},
|
||||
// {
|
||||
// title: '操作', key: 'operation', width: 200, fixed: 'right',align: 'center',
|
||||
// render: (value, row, index) => (
|
||||
// <CrudOpRender_text
|
||||
// edit={editBtn ? true : false}
|
||||
// del={delBtn ? true : false}
|
||||
// view={viewBtn ? true : false}
|
||||
// command={(cmd) => () => command(cmd)(row)} />)
|
||||
// },
|
||||
// ];
|
||||
|
||||
const columns = [
|
||||
{ title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align: "center" },
|
||||
{title: '填报日期', key: 'reportDate', dataIndex: 'reportDate', width: 140,},
|
||||
{
|
||||
title: '普查类型', key: 'surveyType', dataIndex: 'surveyType', width: 200,
|
||||
render: (value) => <span>{value ? surveyType[value] : ''}</span>
|
||||
title: '监测时间',
|
||||
dataIndex: 'time',
|
||||
key: 'time',
|
||||
width: 180
|
||||
},
|
||||
{
|
||||
title: '普查方式', key: 'surveyWay', dataIndex: 'surveyWay', width: 200,
|
||||
render: (value) => <span>{value ? surveyWay[value] : ''}</span>
|
||||
|
||||
title: '测点编号',
|
||||
dataIndex: 'code',
|
||||
key: 'code',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '危害情况', key: 'isHarm', dataIndex: 'isHarm', width: 200,
|
||||
render: (value, row) =>(
|
||||
<span style={row.harmNum > 0 ? { color: "red" } : {}}>{isHarm[row.harmNum > 0 ? 1 : 0]}</span>)
|
||||
},
|
||||
{title: '白蚁危害处数', key: 'harmNum', dataIndex: 'harmNum', width: 100},
|
||||
{title: '已处置处数', key: 'handleNum', dataIndex: 'handleNum', width: 100},
|
||||
{title: '上报人', key: 'reportUserName', dataIndex: 'reportUserName', width: 100},
|
||||
{
|
||||
title: '操作', key: 'operation', width: 200, fixed: 'right',align: 'center',
|
||||
render: (value, row, index) => (
|
||||
<CrudOpRender_text
|
||||
edit={editBtn ? true : false}
|
||||
del={delBtn ? true : false}
|
||||
view={viewBtn ? true : false}
|
||||
command={(cmd) => () => command(cmd)(row)} />)
|
||||
},
|
||||
title: '有无白蚁',
|
||||
dataIndex: 'hasMosquito',
|
||||
key: 'hasMosquito',
|
||||
width: 100,
|
||||
render: (text) => (
|
||||
<Tag color={text ? 'red' : 'green'} style={{borderRadius: '50%', padding: '4px 8px'}}>
|
||||
{text ? '有' : '无'}
|
||||
</Tag>
|
||||
)
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]);
|
||||
|
||||
const command = (type) => (params) => {
|
||||
|
|
@ -104,12 +135,50 @@ const Page = () => {
|
|||
return (
|
||||
<>
|
||||
<div className='content-root clearFloat xybm' style={{paddingRight:"0",paddingBottom:"0"}}>
|
||||
<div className='lf CrudAdcdTreeTableBox' style={{width:"100%",overflowY:"auto"}}>
|
||||
<div className='lf CrudAdcdTreeTableBox' style={{ width: "100%" }}>
|
||||
<Row gutter={16} className='statsRow'>
|
||||
<Col span={6}>
|
||||
<div className='statItem'>
|
||||
<div className='valueWrapper'>
|
||||
<span className='number' style={{ color: '#722ed1' }}>{stats.total}</span>
|
||||
<span className="unit">个</span>
|
||||
</div>
|
||||
<span className='label'>总监测点数</span>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={6}>
|
||||
<div className='statItem'>
|
||||
<div className='valueWrapper'>
|
||||
<span className='number' style={{ color: '#f5222d' }}>{stats.withMosquito}</span>
|
||||
<span className="unit">个</span>
|
||||
</div>
|
||||
<span className='label'>有白蚁</span>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={6}>
|
||||
<div className='statItem'>
|
||||
<div className='valueWrapper'>
|
||||
<span className='number' style={{ color: '#52c41a' }}>{stats.withoutMosquito}</span>
|
||||
<span className="unit">个</span>
|
||||
</div>
|
||||
<span className='label'>无白蚁</span>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={6}>
|
||||
<div className='statItem'>
|
||||
<div className='valueWrapper'>
|
||||
<span className='number' style={{ color: '#8c8c8c' }}>{stats.noData}</span>
|
||||
<span className="unit">个</span>
|
||||
</div>
|
||||
<span className='label'>无数据</span>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Card className='nonebox'>
|
||||
<ToolBar
|
||||
setSearchVal={setSearchVal}
|
||||
onSave={command('save')}
|
||||
role={role}
|
||||
// onSave={command('save')}
|
||||
// role={role}
|
||||
/>
|
||||
</Card>
|
||||
<div className="ant-card-body" style={{ padding: "20px 0 0 0" }}>
|
||||
|
|
|
|||
|
|
@ -1,30 +1,33 @@
|
|||
.basic-info{
|
||||
position: relative;
|
||||
font-size: 16px;
|
||||
margin-bottom: 20px;
|
||||
padding:5px 25px;
|
||||
border-bottom: 1px solid #eee;
|
||||
&::before{
|
||||
position: absolute;
|
||||
top:8px;
|
||||
left:0;
|
||||
content: "";
|
||||
display: block;
|
||||
width: 5px;
|
||||
height: 20px;
|
||||
background-color: #0079fe;
|
||||
}
|
||||
}
|
||||
.time-line{
|
||||
width: 50%;
|
||||
margin-left: 6%;
|
||||
margin-top: 1%;
|
||||
.time-line-item{
|
||||
.statsRow {
|
||||
display: flex;
|
||||
// align-items: center;
|
||||
column-gap: 20px;
|
||||
.item-right{
|
||||
flex:1
|
||||
justify-content: space-between;
|
||||
margin-bottom: 24px;
|
||||
padding: 16px;
|
||||
|
||||
.statItem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
.unit {
|
||||
font-size: 14px;
|
||||
margin-right: 8px;
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
.valueWrapper {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
}
|
||||
.number {
|
||||
display: block;
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
|
||||
}
|
||||
|
||||
.label {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5,8 +5,8 @@ import moment from 'moment';
|
|||
import NormalSelect from '../../../../components/Form/NormalSelect';
|
||||
const { RangePicker } = DatePicker;
|
||||
const ToolBar = ({ setSearchVal, onSave, storeData, role }) => {
|
||||
const addBtn = role?.rule?.find(item => item.menuName == "新增")|| true;
|
||||
const searchBtn = role?.rule?.find(item => item.menuName == "查询")|| true;
|
||||
// const addBtn = role?.rule?.find(item => item.menuName == "新增")|| true;
|
||||
// const searchBtn = role?.rule?.find(item => item.menuName == "查询")|| true;
|
||||
const [form] = Form.useForm();
|
||||
|
||||
const onFinish = (values) => {
|
||||
|
|
@ -31,29 +31,27 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role }) => {
|
|||
<>
|
||||
<div style={{display:'flex',justifyContent:'space-between'}}>
|
||||
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish}>
|
||||
<Form.Item label="年份" name="year">
|
||||
<Form.Item label="监测日期" name="year">
|
||||
<DatePicker
|
||||
allowClear
|
||||
style={{ width: "150px" }}
|
||||
picker="year"
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item label="危害情况" name="isHarm">
|
||||
<Form.Item label="测点编号" name="year">
|
||||
<Input
|
||||
allowClear
|
||||
style={{ width: "150px" }}
|
||||
/>
|
||||
</Form.Item>
|
||||
{/* <Form.Item label="危害情况" name="isHarm">
|
||||
<NormalSelect
|
||||
allowClear
|
||||
style={{ width: '150px' }}
|
||||
options={[{ label: "无危害 ", value: 0 },{ label: "有危害 ", value: 1 }]} />
|
||||
</Form.Item>
|
||||
{searchBtn ? <Form.Item>
|
||||
<Button type="primary" htmlType="submit">查询</Button>
|
||||
</Form.Item> : null }
|
||||
{
|
||||
(onSave && addBtn) ?
|
||||
</Form.Item> */}
|
||||
<Form.Item>
|
||||
<Button onClick={onSave}>新增</Button>
|
||||
<Button type="primary" htmlType="submit">查询</Button>
|
||||
</Form.Item>
|
||||
:null
|
||||
}
|
||||
</Form>
|
||||
</div>
|
||||
</>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
import React,{useState,useEffect} from 'react'
|
||||
import {Card,Table} from 'antd'
|
||||
import ModalToolBar from './ModalToolBar';
|
||||
import { httppost5 } from '../../../utils/request';
|
||||
import { exportFile } from '../../../utils/tools';
|
||||
import apiurl from '../../../service/apiurl';
|
||||
export default function ModalContent() {
|
||||
const columns = [
|
||||
{
|
||||
title: '序号',
|
||||
key: 'inx',
|
||||
width: 80,
|
||||
render: (r, i) => <span>{i + 1}</span>
|
||||
},
|
||||
{
|
||||
title: '闸门名称',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '操作内容',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '操作结果',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
}
|
||||
,
|
||||
{
|
||||
title: '操作时间',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
}
|
||||
]
|
||||
const [searchVal, setSearchVal] = useState(false)
|
||||
|
||||
const exportExcel = () => {
|
||||
let params = {
|
||||
...searchVal,
|
||||
// pageSo: {
|
||||
// pageNumber: tableProps.pagination.current,
|
||||
// pageSize:tableProps.pagination.pageSize
|
||||
// }
|
||||
}
|
||||
httppost5(apiurl.gcaqjc.sjtjcx.ndsytjb.export, params).then(res => {
|
||||
exportFile(`闸门操作记录.xlsx`,res.data)
|
||||
})
|
||||
}
|
||||
return (
|
||||
<div>
|
||||
<Card className='nonebox'>
|
||||
<ModalToolBar
|
||||
setSearchVal={setSearchVal}
|
||||
exportFile={exportExcel}
|
||||
/>
|
||||
</Card>
|
||||
|
||||
<div className="ant-card-body" style={{ padding: "20px 0 0 0" }}>
|
||||
<Table columns={columns} rowKey="inx" dataSource={[]} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import { Form, Input, Button, DatePicker } from 'antd';
|
||||
|
||||
import moment from 'moment';
|
||||
import NormalSelect from '../../../components/Form/NormalSelect';
|
||||
const { RangePicker } = DatePicker;
|
||||
const ToolBar = ({ setSearchVal, exportFile }) => {
|
||||
const optionsType = [
|
||||
{
|
||||
label: "今日",
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: "近一周",
|
||||
value: 2
|
||||
},
|
||||
{
|
||||
label: "近一月",
|
||||
value: 3
|
||||
},
|
||||
{
|
||||
label: "近三月",
|
||||
value: 4
|
||||
},
|
||||
{
|
||||
label: "近一年",
|
||||
value: 5
|
||||
},
|
||||
]
|
||||
const types = [
|
||||
{ label: "主坝", value: 1 },
|
||||
{ label: "副坝", value: 2 },
|
||||
{ label: "灌溉发电洞", value: 3 },
|
||||
|
||||
]
|
||||
const [form] = Form.useForm();
|
||||
|
||||
const onFinish = (values) => {
|
||||
let dateTimeSo;
|
||||
if (values.tm) {
|
||||
dateTimeSo = {
|
||||
start: moment(values.tm[0]).format('YYYY-MM-DD 00:00:00'),
|
||||
end: moment(values.tm[1]).format('YYYY-MM-DD 00:00:00')
|
||||
}
|
||||
}
|
||||
delete values.tm
|
||||
setSearchVal({ ...values, dateTimeSo });
|
||||
}
|
||||
|
||||
const onValuesChange = (e) => {
|
||||
switch (e.ranger) {
|
||||
case 1:
|
||||
form.setFieldValue("tm",[moment().startOf("day"),moment()])
|
||||
break;
|
||||
case 2:
|
||||
form.setFieldValue("tm",[moment().subtract(7, 'days'),moment()])
|
||||
break;
|
||||
case 3:
|
||||
form.setFieldValue("tm",[moment().subtract(1, 'months'),moment()])
|
||||
break;
|
||||
case 4:
|
||||
form.setFieldValue("tm",[moment().subtract(3, 'months'),moment()])
|
||||
break;
|
||||
case 5:
|
||||
form.setFieldValue("tm",[moment().subtract(1, 'years'),moment()])
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
useEffect(() => {
|
||||
let dateTimeSo = {
|
||||
start: moment().subtract(1, "years").format('YYYY-MM-DD 00:00:00'),
|
||||
end: moment().format('YYYY-MM-DD 00:00:00')
|
||||
}
|
||||
form.setFieldValue("tm", [moment(dateTimeSo.start), moment(dateTimeSo.end)])
|
||||
setSearchVal({ dateTimeSo })
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<>
|
||||
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}>
|
||||
<Form.Item label="闸门名称" name="maintainType">
|
||||
<NormalSelect allowClear style={{ width: '150px' }} options={types} />
|
||||
</Form.Item>
|
||||
<Form.Item label="日期范围" name="tm">
|
||||
<RangePicker
|
||||
allowClear
|
||||
style={{ width: "220px" }}
|
||||
format="YYYY-MM-DD"
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item label="常用时段" name="ranger">
|
||||
<NormalSelect
|
||||
allowClear
|
||||
style={{ width: "100px" }}
|
||||
options={optionsType}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item>
|
||||
<Button type="primary" htmlType="submit">查询</Button>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item>
|
||||
<Button onClick={() => form.resetFields()}>重置</Button>
|
||||
</Form.Item>
|
||||
<Form.Item>
|
||||
<Button onClick={() => exportFile()}>导出</Button>
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default ToolBar;
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
import React, { useEffect, useMemo, useState } from 'react'
|
||||
import { Modal, Tabs, Descriptions, Image } from 'antd';
|
||||
import { Modal, Tabs, Descriptions, Image, Divider, Table } from 'antd';
|
||||
import {DoubleRightOutlined} from '@ant-design/icons'
|
||||
import { Stage } from 'react-konva';
|
||||
import Sider from './Sider';
|
||||
import Topper1 from './Topper1';
|
||||
|
|
@ -11,11 +12,12 @@ import HFivePlayer from '../../../components/video1Plary'
|
|||
import './index.less';
|
||||
import { httpget, httpget2, httppost2 } from '../../../utils/request';
|
||||
import apiurl from '../../../service/apiurl';
|
||||
import ModalContent from './ModalContent';
|
||||
const url = "http://223.75.53.141:9102/test.by-lyf.tmp"
|
||||
const CanvasW = 1080
|
||||
const CanvasH = 640
|
||||
// const waterRatio = 0
|
||||
const zmobj ={
|
||||
const zmobj = {
|
||||
"hpCode": "HP0074208040002120",
|
||||
"stcd": "4265630075",
|
||||
"ctrlType": "PLC",
|
||||
|
|
@ -170,18 +172,77 @@ const runtime = [
|
|||
|
||||
const myType = {
|
||||
// 闸前水位站 2闸后水位站 3流量站
|
||||
'1':'闸前水位/水深(m)',
|
||||
'2':'闸后水位/水深(m)',
|
||||
'3':'流量 (m³/s)',
|
||||
'1': '闸前水位/水深(m)',
|
||||
'2': '闸后水位/水深(m)',
|
||||
'3': '流量 (m³/s)',
|
||||
}
|
||||
|
||||
const Page = () => {
|
||||
const [itemIndex,setItemIndex] = useState(null)
|
||||
const [waterRatio,setWaterRatio] = useState(0)
|
||||
const [data,setData] = useState({})
|
||||
const [list, setList ] = useState([])
|
||||
const [damList, setDamList ] = useState([])
|
||||
const [videoList, setVideoList ] = useState([])
|
||||
|
||||
const jcColumns = [
|
||||
{
|
||||
title: '项目',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '实时数据',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '数据采集时间',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
}
|
||||
]
|
||||
|
||||
const zfColumns = [
|
||||
{
|
||||
title: '闸阀名称',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '当前开关状态',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '数据采集时间',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
}
|
||||
]
|
||||
|
||||
const jlColumns = [
|
||||
{
|
||||
title: '闸阀名称',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '操作内容',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '操作结果',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '操作时间',
|
||||
key: 'project',
|
||||
width: 150,
|
||||
}
|
||||
]
|
||||
const [itemIndex, setItemIndex] = useState(null)
|
||||
const [waterRatio, setWaterRatio] = useState(0)
|
||||
const [data, setData] = useState({})
|
||||
const [list, setList] = useState([])
|
||||
const [damList, setDamList] = useState([])
|
||||
const [videoList, setVideoList] = useState([])
|
||||
const [videoArr, setvideoArr] = useState({})
|
||||
const [open, setOpen] = useState(false)
|
||||
|
||||
|
|
@ -191,42 +252,42 @@ const Page = () => {
|
|||
const pts = contextCoordinates(xunit, hole);
|
||||
const eqpnoList = useMemo(() => damList ? new Array(damList.length).fill(0).map((o, index) => index) : [], [damList]);
|
||||
|
||||
useEffect(()=>{
|
||||
useEffect(() => {
|
||||
getList()
|
||||
},[])
|
||||
}, [])
|
||||
|
||||
const getList = async()=>{
|
||||
const {code, data} = await httppost2(apiurl.zmjk.getList)
|
||||
if(code!==200){
|
||||
const getList = async () => {
|
||||
const { code, data } = await httppost2(apiurl.zmjk.getList)
|
||||
if (code !== 200) {
|
||||
return
|
||||
}
|
||||
const obj = data[0]||{}
|
||||
const obj = data[0] || {}
|
||||
getInformation(obj.gateCode)
|
||||
getDamData(obj.stcd)
|
||||
getVideo(obj.gateCode)
|
||||
setData(obj)
|
||||
}
|
||||
|
||||
const getInformation = async(gateCode)=>{
|
||||
const {code, data} = await httpget2(apiurl.zmjk.getInformation,{gateCode})
|
||||
if(code!==200){
|
||||
const getInformation = async (gateCode) => {
|
||||
const { code, data } = await httpget2(apiurl.zmjk.getInformation, { gateCode })
|
||||
if (code !== 200) {
|
||||
return
|
||||
}
|
||||
data.map((item)=>{
|
||||
if(item.type===2){
|
||||
setWaterRatio(item.value/5||0)
|
||||
data.map((item) => {
|
||||
if (item.type === 2) {
|
||||
setWaterRatio(item.value / 5 || 0)
|
||||
}
|
||||
})
|
||||
setList(data)
|
||||
}
|
||||
|
||||
const getDamData = async(stcd)=>{
|
||||
const {code, data} = await httpget2(apiurl.zmjk.getDamData,{stcd})
|
||||
if(code!==200){
|
||||
const getDamData = async (stcd) => {
|
||||
const { code, data } = await httpget2(apiurl.zmjk.getDamData, { stcd })
|
||||
if (code !== 200) {
|
||||
return
|
||||
}
|
||||
const list = []
|
||||
data.map((item)=>{
|
||||
data.map((item) => {
|
||||
list.push({
|
||||
...item
|
||||
})
|
||||
|
|
@ -234,38 +295,71 @@ const Page = () => {
|
|||
setDamList(list)
|
||||
}
|
||||
|
||||
const getVideo = async(valveCode)=>{
|
||||
const {code, data} = await httppost2(apiurl.zmjk.getVideo,{valveCode})
|
||||
if(code!==200){
|
||||
const getVideo = async (valveCode) => {
|
||||
const { code, data } = await httppost2(apiurl.zmjk.getVideo, { valveCode })
|
||||
if (code !== 200) {
|
||||
return
|
||||
}
|
||||
setVideoList(data)
|
||||
getVideoSrc(data[0]?.indexCode)
|
||||
}
|
||||
|
||||
const getVideoSrc = async (current) => {
|
||||
const res = await httpget2(`${apiurl.gsxl.zfzl.videosrc}${current}`)//32023a7f27d8448fa10511f24e96acff
|
||||
if (res.code == 200 && res.data?.length !== 0) {
|
||||
setvideoArr({src:res.data})
|
||||
}else{
|
||||
setvideoArr({ src: res.data })
|
||||
} else {
|
||||
setvideoArr({})
|
||||
}
|
||||
}
|
||||
|
||||
const getNum = (a,b)=>{
|
||||
const aa = Number(a||0)
|
||||
const bb = Number(b||0)
|
||||
const num = Number(aa-bb).toFixed(3)
|
||||
const getNum = (a, b) => {
|
||||
const aa = Number(a || 0)
|
||||
const bb = Number(b || 0)
|
||||
const num = Number(aa - bb).toFixed(3)
|
||||
return num
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className='content-root clearFloat xybm sg_zmjk' style={{paddingRight:"0",paddingBottom:"0"}}>
|
||||
<div className='lf CrudAdcdTreeTableBox' style={{width:"100%",overflowY:"auto"}}>
|
||||
<div className='content-root clearFloat xybm sg_zmjk' style={{ paddingRight: "0", paddingBottom: "0" }}>
|
||||
<div className='lf CrudAdcdTreeTableBox' style={{ width: "100%" }}>
|
||||
{/* <Card className='nonebox'>
|
||||
</Card> */}
|
||||
<div className="ant-card-body" style={{ padding: "20px 0 0 0" }}>
|
||||
<dvi className="sg_zmjk_left">
|
||||
<div className="sg_zmjk_left">
|
||||
<div className='sg_zmjk_left_title'>
|
||||
<Divider type="vertical" style={{ width: 5, background: '#259def', height: 20 }} />
|
||||
闸阀监控
|
||||
</div>
|
||||
<div className='sz_left_up_table'>
|
||||
<Table
|
||||
columns={zfColumns}
|
||||
rowKey={(record) => record.id}
|
||||
dataSource={[]}
|
||||
pagination={false}
|
||||
/>
|
||||
</div>
|
||||
<div className='sg_zmjk_left_title' style={{ marginTop: 175,display:'flex',justifyContent:'space-between' }}>
|
||||
<div><Divider type="vertical" style={{ width: 5, background: '#259def', height: 20 }} />
|
||||
最近操作记录</div>
|
||||
<div onClick={() => setOpen(true)}>
|
||||
<div style={{display:'flex',columnGap:10,cursor:'pointer',fontSize:14,color:'#000',fontWeight:400}}>
|
||||
<span>查看更多信息</span>
|
||||
<DoubleRightOutlined />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className='sz_left_up_table'>
|
||||
<Table
|
||||
columns={jlColumns}
|
||||
rowKey={(record) => record.id}
|
||||
dataSource={[]}
|
||||
pagination={false}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
{/* <div className="sg_zmjk_left">
|
||||
<Stage width={1080} height={640}>
|
||||
<Sider pts={pts} side="left" />
|
||||
<Sider pts={pts} side="right" />
|
||||
|
|
@ -302,12 +396,14 @@ const Page = () => {
|
|||
}
|
||||
<div key="sider2" style={{ flexGrow: 1, width: 100 }}></div>
|
||||
</div>
|
||||
</dvi>
|
||||
<dvi className="sg_zmjk_right">
|
||||
</div> */}
|
||||
<div className="sg_zmjk_right">
|
||||
<div className='sg_zmjk_right_video'>
|
||||
<div className='sg_zmjk_right_video_title'>视频监控</div>
|
||||
<div className='sg_zmjk_right_video_title'>
|
||||
<Divider type="vertical" style={{ width: 5, background: '#259def', height: 20 }} />
|
||||
监控视频</div>
|
||||
<div className='sg_zmjk_right_video_content'>
|
||||
<div className='sg_zmjk_right_video_content_left'>
|
||||
{/* <div className='sg_zmjk_right_video_content_left'>
|
||||
{
|
||||
videoList.map((item,index)=>(
|
||||
<div className={index===itemIndex?'sg_zmjk_right_video_content_left_item itemChecked':'sg_zmjk_right_video_content_left_item'} onClick={()=>{setItemIndex(index);getVideoSrc(item.indexCode)}}>
|
||||
|
|
@ -315,13 +411,13 @@ const Page = () => {
|
|||
</div>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
</div> */}
|
||||
<div className='sg_zmjk_right_video_content_right'>
|
||||
{
|
||||
videoArr?.src &&
|
||||
<div
|
||||
className="content-video"
|
||||
style={{ width: '100%', height: '100%',cursor: "pointer" }}
|
||||
style={{ width: '100%', height: '100%', cursor: "pointer" }}
|
||||
onClick={() => {
|
||||
// if (controlerParams.type == 1) {
|
||||
// setVideoOpen(true)
|
||||
|
|
@ -337,9 +433,17 @@ const Page = () => {
|
|||
</div>
|
||||
</div>
|
||||
<div className='sg_zmjk_right_information'>
|
||||
<div className='sg_zmjk_right_information_title'>监测数据</div>
|
||||
<div style={{height:'144px',overflowY:'auto',padding:'20px'}}>
|
||||
{
|
||||
<div className='sg_zmjk_right_information_title'>
|
||||
<Divider type="vertical" style={{ width: 5, background: '#259def', height: 20 }} />
|
||||
监测数据</div>
|
||||
<div style={{ width: '100%', marginTop: 10 }}>
|
||||
<Table
|
||||
columns={jcColumns}
|
||||
rowKey={(record) => record.id}
|
||||
dataSource={[]}
|
||||
pagination={false}
|
||||
/>
|
||||
{/* {
|
||||
list?.map((item)=>{
|
||||
if(item.type===1){
|
||||
return (
|
||||
|
|
@ -367,45 +471,46 @@ const Page = () => {
|
|||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
} */}
|
||||
</div>
|
||||
</div>
|
||||
<div className='sg_zmjk_right_more' onClick={()=>setOpen(true)}>查看更多信息</div>
|
||||
</dvi>
|
||||
{/* <div className='sg_zmjk_right_more' onClick={() => setOpen(true)}>查看更多信息</div> */}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Modal
|
||||
open={open}
|
||||
width={1000}
|
||||
title=""
|
||||
width={1100}
|
||||
title="闸门操作记录"
|
||||
footer={null}
|
||||
onCancel={() => {
|
||||
setOpen(false)
|
||||
}}
|
||||
>
|
||||
<div style={{height:'600px'}}>
|
||||
<Tabs>
|
||||
<div style={{ height: '600px' }}>
|
||||
<ModalContent/>
|
||||
{/* <Tabs>
|
||||
<Tabs.TabPane tab="基本信息" key="item-1">
|
||||
<Descriptions bordered size="small" column={3} >
|
||||
<Descriptions.Item label="启闭设备类型" style={{ width: '16.5%' }}>{{1:'卷扬式',2:'螺杆式',3:'凹轮式',4:'涡轮式',5:'丝杆式'}?.[data?.hdgrTp]||'-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="动力类型" style={{ width: '16.5%' }}>{{1:'手动',2:'电动',3:'手电两用'}?.[data?.pwrTp]||'-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="水闸类型" style={{ width: '16.5%' }}>{{1:'分(泄)洪闸',2:'节制闸',3:'排(退)水闸',4:'引(进)水闸',5:'挡潮闸',6:'船闸',9:'其他'}?.[data?.wagaType]||'-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="进口高程">{data?.inEle||'-'} m</Descriptions.Item>
|
||||
<Descriptions.Item label="出口高程">{data?.outEle||'-'} m</Descriptions.Item>
|
||||
<Descriptions.Item label="闸门孔数">{data?.gaorNum||'-'} 孔</Descriptions.Item>
|
||||
<Descriptions.Item label="设计流量">{data?.dsfl||'-'} m³/s</Descriptions.Item>
|
||||
<Descriptions.Item label="实达流量">{data?.stfl||'-'} m³/s</Descriptions.Item>
|
||||
<Descriptions.Item label="闸门尺寸">{data?.gateSize||'-'} m*m</Descriptions.Item>
|
||||
<Descriptions.Item label="工程等级">{{1:'Ⅰ',2:'Ⅱ',3:'Ⅲ',4:'Ⅳ',5:'Ⅴ'}?.[data?.engGrad]||'-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="运行状况">{{1:'在用良好',2:'在用故障',3:'停用'}?.[data?.runStat]||'-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="建成时间">{data?.compDate||'-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="启闭设备类型" style={{ width: '16.5%' }}>{{ 1: '卷扬式', 2: '螺杆式', 3: '凹轮式', 4: '涡轮式', 5: '丝杆式' }?.[data?.hdgrTp] || '-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="动力类型" style={{ width: '16.5%' }}>{{ 1: '手动', 2: '电动', 3: '手电两用' }?.[data?.pwrTp] || '-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="水闸类型" style={{ width: '16.5%' }}>{{ 1: '分(泄)洪闸', 2: '节制闸', 3: '排(退)水闸', 4: '引(进)水闸', 5: '挡潮闸', 6: '船闸', 9: '其他' }?.[data?.wagaType] || '-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="进口高程">{data?.inEle || '-'} m</Descriptions.Item>
|
||||
<Descriptions.Item label="出口高程">{data?.outEle || '-'} m</Descriptions.Item>
|
||||
<Descriptions.Item label="闸门孔数">{data?.gaorNum || '-'} 孔</Descriptions.Item>
|
||||
<Descriptions.Item label="设计流量">{data?.dsfl || '-'} m³/s</Descriptions.Item>
|
||||
<Descriptions.Item label="实达流量">{data?.stfl || '-'} m³/s</Descriptions.Item>
|
||||
<Descriptions.Item label="闸门尺寸">{data?.gateSize || '-'} m*m</Descriptions.Item>
|
||||
<Descriptions.Item label="工程等级">{{ 1: 'Ⅰ', 2: 'Ⅱ', 3: 'Ⅲ', 4: 'Ⅳ', 5: 'Ⅴ' }?.[data?.engGrad] || '-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="运行状况">{{ 1: '在用良好', 2: '在用故障', 3: '停用' }?.[data?.runStat] || '-'}</Descriptions.Item>
|
||||
<Descriptions.Item label="建成时间">{data?.compDate || '-'}</Descriptions.Item>
|
||||
</Descriptions>
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="工程图片" key="item-2">
|
||||
<Image width={800} src={url + data?.files?.filePath} alt='' />
|
||||
</Tabs.TabPane>
|
||||
</Tabs>
|
||||
</Tabs> */}
|
||||
</div>
|
||||
</Modal>
|
||||
</>
|
||||
|
|
|
|||
|
|
@ -2,12 +2,24 @@
|
|||
.ant-card-body{
|
||||
display: flex;
|
||||
height: 100%;
|
||||
column-gap: 20px;
|
||||
.sg_zmjk_left{
|
||||
top: 30px;
|
||||
// top: 30px;
|
||||
position: relative;
|
||||
width: 1080px;
|
||||
height: 640px;
|
||||
transform: scale(0.9,1);
|
||||
width: 930px;
|
||||
// height: 640px;
|
||||
.sg_zmjk_left_title{
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
border-bottom: 1px solid #bbb;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
}
|
||||
.sz_left_up_table{
|
||||
margin-top: 10px;
|
||||
// height: 355px;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.sg_zmjk_right{
|
||||
|
|
@ -19,16 +31,18 @@
|
|||
|
||||
.sg_zmjk_right_video{
|
||||
height: 400px;
|
||||
margin: 30px 20px 30px -30px;
|
||||
// margin: 30px 20px 30px -30px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #bbb;
|
||||
// border: 1px solid #bbb;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.sg_zmjk_right_video_title{
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
padding-left: 10px;
|
||||
// padding-left: 10px;
|
||||
border-bottom: 1px solid #bbb;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
}
|
||||
.sg_zmjk_right_video_content{
|
||||
flex: 1;
|
||||
|
|
@ -57,7 +71,7 @@
|
|||
}
|
||||
}
|
||||
.sg_zmjk_right_video_content_right{
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 10px;
|
||||
}
|
||||
|
|
@ -65,14 +79,16 @@
|
|||
}
|
||||
.sg_zmjk_right_information{
|
||||
height: 180px;
|
||||
margin: -10px 20px 30px -30px;
|
||||
// margin: -10px 20px 30px -30px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #bbb;
|
||||
// border: 1px solid #bbb;
|
||||
.sg_zmjk_right_information_title{
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
padding-left: 10px;
|
||||
// padding-left: 10px;
|
||||
border-bottom: 1px solid #bbb;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
}
|
||||
.sg_zmjk_right_information_content{
|
||||
display: flex;
|
||||
|
|
@ -83,10 +99,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
.sg_zmjk_right_more{
|
||||
margin: -10px 20px 30px -30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝型"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -32,7 +32,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶高程(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -41,7 +41,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶长度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -50,7 +50,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶宽度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -58,7 +58,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="最大坝高(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -73,7 +73,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝型"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -82,7 +82,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶高程(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -91,7 +91,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶长度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -100,7 +100,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶宽度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -108,7 +108,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="最大坝高(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -123,7 +123,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -132,7 +132,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="堰顶型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -141,7 +141,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="地基特性"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -150,7 +150,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="溢流堰顶高程(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -159,7 +159,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="溢流堰净宽(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -168,7 +168,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="消能型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -176,7 +176,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="校核洪水下泄流量(m3/s)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -184,7 +184,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="设计洪水下泄流量(m3/s)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -192,7 +192,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="消能防冲下泄流量(m3/s)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -207,7 +207,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -216,7 +216,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="衬砌型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -225,7 +225,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="地基特性"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -234,7 +234,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="进口底板高程(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -243,7 +243,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="断面尺寸(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -252,7 +252,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="洞长(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -260,7 +260,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="设计流量(m3/s)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -268,7 +268,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="进口闸门型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -276,7 +276,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="进口启闭机型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -291,7 +291,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -300,7 +300,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="衬砌型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -309,7 +309,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="地基特性"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -318,7 +318,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="进口底板高程(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -327,7 +327,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="断面尺寸(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -336,7 +336,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="洞长(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -344,7 +344,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="设计流量(m3/s)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -352,7 +352,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="进口闸门型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -360,7 +360,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="进口启闭机型式"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -375,7 +375,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝型"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -384,7 +384,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶高程(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -393,7 +393,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶长度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -402,7 +402,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="坝顶宽度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -410,7 +410,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="最大坝高(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -425,7 +425,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="防汛路长度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
@ -434,7 +434,7 @@ export default function BuildInfo() {
|
|||
<Form.Item
|
||||
label="路面宽度(m)"
|
||||
name="resName"
|
||||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import React,{useState,useEffect} from 'react'
|
||||
import { Row, Col, Form, Input, DatePicker, Button,Upload,message,Modal } from "antd"
|
||||
import {PaperClipOutlined,DeleteOutlined} from '@ant-design/icons';
|
||||
import React, { useState, useEffect } from 'react'
|
||||
import { Row, Col, Form, Input, DatePicker, Button, Upload, message, Modal } from "antd"
|
||||
import { PaperClipOutlined, DeleteOutlined } from '@ant-design/icons';
|
||||
import NormalSelect from '../../../../../components/Form/NormalSelect';
|
||||
import { formItemLayout } from '../../../../../components/crud/FormLayoutProps'
|
||||
import apiurl from '../../../../../service/apiurl';
|
||||
|
|
@ -19,27 +19,27 @@ export default function ProjectBasciInfo() {
|
|||
const optionsLevel = [
|
||||
{
|
||||
label: "大 (1)型",
|
||||
value:"1"
|
||||
value: "1"
|
||||
},
|
||||
{
|
||||
label: "大 (2)型",
|
||||
value:"2"
|
||||
value: "2"
|
||||
},
|
||||
{
|
||||
label: "中型",
|
||||
value:"3"
|
||||
value: "3"
|
||||
},
|
||||
{
|
||||
label: "小 (1)型",
|
||||
value:"4"
|
||||
value: "4"
|
||||
},
|
||||
{
|
||||
label: "小 (2)型",
|
||||
value:"5"
|
||||
value: "5"
|
||||
},
|
||||
{
|
||||
label: "其他",
|
||||
value:"9"
|
||||
value: "9"
|
||||
}
|
||||
]
|
||||
|
||||
|
|
@ -69,10 +69,23 @@ export default function ProjectBasciInfo() {
|
|||
}
|
||||
|
||||
const fileChange = (info) => {
|
||||
|
||||
let newFileList = [...info.fileList];
|
||||
newFileList = newFileList.slice(-1);
|
||||
// 处理文件状态
|
||||
newFileList = newFileList.map(file => {
|
||||
if (file.response) {
|
||||
return {
|
||||
...file,
|
||||
status: 'done', // 确保状态正确
|
||||
url: file.response.url,
|
||||
fileId: file.response.data?.fileId
|
||||
};
|
||||
}
|
||||
return file;
|
||||
});
|
||||
if (info.file.status === "done") {
|
||||
setLoading(false);
|
||||
|
||||
message.success(`${info.file.name} 上传成功`);
|
||||
}
|
||||
if (info.file.status === "uploading") {
|
||||
setLoading(true);
|
||||
|
|
@ -88,7 +101,7 @@ export default function ProjectBasciInfo() {
|
|||
return file.response?.data?.fileId
|
||||
})
|
||||
setFileIds(fileIds)
|
||||
setFileList(info.fileList)
|
||||
setFileList(newFileList)
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -105,9 +118,9 @@ export default function ProjectBasciInfo() {
|
|||
const params = {
|
||||
...data,
|
||||
...values,
|
||||
files:oldFiles
|
||||
files: oldFiles
|
||||
}
|
||||
const res = await httppost2(apiurl.dataResourcesCenter.projectAndWater.shuikuBasicinfo.update,params)
|
||||
const res = await httppost2(apiurl.dataResourcesCenter.projectAndWater.shuikuBasicinfo.update, params)
|
||||
if (res.code == 200) {
|
||||
message.success("修改成功")
|
||||
setSkDisabled(true)
|
||||
|
|
@ -120,15 +133,15 @@ export default function ProjectBasciInfo() {
|
|||
|
||||
}
|
||||
|
||||
const getFileInfo = async(id) => {
|
||||
const getFileInfo = async (id) => {
|
||||
try {
|
||||
const res = await httpget2(`${apiurl.dataResourcesCenter.projectAndWater.shuikuBasicinfo.getFile}/${id}`)
|
||||
let obj ={
|
||||
let obj = {
|
||||
name: res.data.fileName,
|
||||
response: {
|
||||
data: {
|
||||
filePath: res.data.filePath,
|
||||
fileId:res.data.fileId
|
||||
fileId: res.data.fileId
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
@ -138,6 +151,8 @@ export default function ProjectBasciInfo() {
|
|||
|
||||
}
|
||||
}
|
||||
console.log('f', fileList);
|
||||
|
||||
useEffect(() => {
|
||||
getData()
|
||||
}, [])
|
||||
|
|
@ -165,7 +180,7 @@ export default function ProjectBasciInfo() {
|
|||
name="resCode"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -173,7 +188,7 @@ export default function ProjectBasciInfo() {
|
|||
label="注册登记号"
|
||||
name="regSn"
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -187,7 +202,7 @@ export default function ProjectBasciInfo() {
|
|||
value: value ? moment(value) : undefined
|
||||
})}
|
||||
>
|
||||
<DatePicker allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<DatePicker allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -195,7 +210,7 @@ export default function ProjectBasciInfo() {
|
|||
label="工程位置"
|
||||
name="resLoc"
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -203,7 +218,7 @@ export default function ProjectBasciInfo() {
|
|||
label="所在河流(水系)名称"
|
||||
name="basName"
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -228,7 +243,7 @@ export default function ProjectBasciInfo() {
|
|||
name="rsvFunction"
|
||||
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -238,7 +253,7 @@ export default function ProjectBasciInfo() {
|
|||
rules={[{ required: true }]}
|
||||
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -249,7 +264,7 @@ export default function ProjectBasciInfo() {
|
|||
name="lttd"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -258,7 +273,7 @@ export default function ProjectBasciInfo() {
|
|||
name="designIrrArea"
|
||||
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -267,7 +282,7 @@ export default function ProjectBasciInfo() {
|
|||
name="actualIrrArea"
|
||||
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -277,7 +292,7 @@ export default function ProjectBasciInfo() {
|
|||
label="受益人口(人)"
|
||||
name="feedPop"
|
||||
>
|
||||
<Input allowClear style={{width:'300px'}} disabled={skdisabled}/>
|
||||
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -289,7 +304,7 @@ export default function ProjectBasciInfo() {
|
|||
value: value ? moment(value) : undefined
|
||||
})}
|
||||
>
|
||||
<DatePicker allowClear style={{ width: '300px' }} disabled={skdisabled}/>
|
||||
<DatePicker allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
|
|
@ -301,7 +316,7 @@ export default function ProjectBasciInfo() {
|
|||
value: value ? moment(value) : undefined
|
||||
})}
|
||||
>
|
||||
<DatePicker allowClear style={{ width: '300px' }} disabled={skdisabled}/>
|
||||
<DatePicker allowClear style={{ width: '300px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -317,11 +332,11 @@ export default function ProjectBasciInfo() {
|
|||
options={[
|
||||
{
|
||||
label: '否',
|
||||
value:0,
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '是',
|
||||
value:1,
|
||||
value: 1,
|
||||
},
|
||||
]}
|
||||
disabled={skdisabled}
|
||||
|
|
@ -339,11 +354,11 @@ export default function ProjectBasciInfo() {
|
|||
options={[
|
||||
{
|
||||
label: '否',
|
||||
value:"0",
|
||||
value: "0",
|
||||
},
|
||||
{
|
||||
label: '是',
|
||||
value:"1",
|
||||
value: "1",
|
||||
},
|
||||
]}
|
||||
disabled={skdisabled}
|
||||
|
|
@ -364,31 +379,46 @@ export default function ProjectBasciInfo() {
|
|||
maxCount={1}
|
||||
disabled={loading}
|
||||
beforeUpload={beforeUpload}
|
||||
itemRender={(origin,file) => {
|
||||
return (
|
||||
<div style={{display:"flex",alignItems:"center",columnGap:10}}>
|
||||
showUploadList={false}
|
||||
>
|
||||
{fileList.map(file => (
|
||||
<div key={file.uid} style={{ display: "flex", alignItems: "center", columnGap: 10 }}>
|
||||
<PaperClipOutlined />
|
||||
<span
|
||||
style={{ cursor: "pointer" }}
|
||||
onClick={() => { setPerviewOpen(true); setIframeId(file.response?.data?.fileId)}}
|
||||
>
|
||||
{file?.name}</span>
|
||||
{skdisabled ? null :
|
||||
<DeleteOutlined
|
||||
style={{ marginLeft: 20, cursor: "pointer" }}
|
||||
onClick={() => deleteFile(file.response?.data?.fileId)}
|
||||
/>
|
||||
onClick={(e) => {
|
||||
e.stopPropagation(); // 阻止触发上传
|
||||
if (file.response?.data?.fileId) {
|
||||
setPerviewOpen(true);
|
||||
setIframeId(file.response.data.fileId);
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}}
|
||||
>
|
||||
{skdisabled ? null :
|
||||
<div style={{display:"flex",alignItems:"center",columnGap:10,color:"#4f85ec",cursor:skdisabled?"not-allowed":"pointer"}}>
|
||||
<PaperClipOutlined />
|
||||
<a style={{cursor:"pointer"}}>上传PDF文件</a>
|
||||
{file.name}
|
||||
</span>
|
||||
{!skdisabled && (
|
||||
<DeleteOutlined
|
||||
style={{ marginLeft: 20, cursor: "pointer" }}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation(); // 阻止触发上传
|
||||
deleteFile(file.response?.data?.fileId);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
}
|
||||
))}
|
||||
{!skdisabled && fileList.length === 0 && (
|
||||
<div style={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
columnGap: 10,
|
||||
color: "#4f85ec",
|
||||
cursor: "pointer"
|
||||
}}>
|
||||
<PaperClipOutlined />
|
||||
<a>上传PDF文件</a>
|
||||
</div>
|
||||
)}
|
||||
</Upload>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
|
|
@ -399,9 +429,9 @@ export default function ProjectBasciInfo() {
|
|||
label="供水效益"
|
||||
name="benefit"
|
||||
labelCol={{ span: 2, offset: 0 }}
|
||||
wrapperCol={{span:21,offset:0}}
|
||||
wrapperCol={{ span: 21, offset: 0 }}
|
||||
>
|
||||
<Input allowClear disabled={skdisabled}/>
|
||||
<Input allowClear disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -411,16 +441,16 @@ export default function ProjectBasciInfo() {
|
|||
label="工程概况"
|
||||
name="projOverview"
|
||||
labelCol={{ span: 2, offset: 0 }}
|
||||
wrapperCol={{span:21,offset:0}}
|
||||
wrapperCol={{ span: 21, offset: 0 }}
|
||||
>
|
||||
<Input.TextArea allowClear style={{width:'100%',minHeight:'100px'}} disabled={skdisabled}/>
|
||||
<Input.TextArea allowClear style={{ width: '100%', minHeight: '100px' }} disabled={skdisabled} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row style={{marginTop:80}}>
|
||||
<Row style={{ marginTop: 80 }}>
|
||||
<Col span={24}>
|
||||
<Form.Item
|
||||
wrapperCol={{span:14,offset:10}}
|
||||
wrapperCol={{ span: 14, offset: 10 }}
|
||||
>
|
||||
{
|
||||
skdisabled ? <Button type="primary" onClick={() => setSkDisabled(false)}>编辑</Button> :
|
||||
|
|
@ -440,7 +470,7 @@ export default function ProjectBasciInfo() {
|
|||
width={1000}
|
||||
title=""
|
||||
footer={null}
|
||||
style={{marginTop:"-5%"}}
|
||||
style={{ marginTop: "-5%" }}
|
||||
onCancel={() => {
|
||||
setPerviewOpen(false)
|
||||
}}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ const ToolBar = ({ setSearchVal, onExport, storeData, role }) => {
|
|||
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish}>
|
||||
<Form.Item label="类型" name="types">
|
||||
<Select options={[
|
||||
{value:1,label:'大事记'}, {value:2,label:'调度指令'}, {value:3,label:'维修养护'},{value:4,label:'安全鉴定'}, {value:5,label:"除险加固"}, {value:6,label:'白蚁普查'}
|
||||
{value:1,label:'大事记'}, {value:2,label:'调度指令'}, {value:3,label:'维修养护'},{value:4,label:'安全鉴定'}, {value:5,label:"除险加固"}, {value:6,label:'白蚁监测'}
|
||||
]} allowClear mode='multiple' maxTagCount='responsive' style={{ width: "200px" }}/>
|
||||
</Form.Item>
|
||||
<Form.Item label="发生日期" name="tm">
|
||||
|
|
|
|||
Loading…
Reference in New Issue