feat():闸门监控修改需求

qzc-dev-demo
李神峰 2025-03-21 17:36:23 +08:00
parent d573f06534
commit b3d4946b8a
11 changed files with 1123 additions and 722 deletions

View File

@ -348,7 +348,7 @@ export async function loadMenu(): Promise<MenuItem[]> {
{ {
id: id(), title: '白蚁防治', redirect: '/mgr/sg/byfz/bypc', id: id(), title: '白蚁防治', redirect: '/mgr/sg/byfz/bypc',
children: [ 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' }, { id: id(), title: '防治宣传', path: '/mgr/sg/byfz/byxc' },
] ]
}, },

View File

@ -1,6 +1,6 @@
import React, { Fragment, useRef, useMemo,useEffect,useState } from 'react'; import React, { Fragment, useRef, useMemo,useEffect,useState } from 'react';
import BasicCrudModal from '../../../../components/crud/BasicCrudModal'; 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 {FileWordOutlined,FilePdfOutlined,FileZipOutlined,FileExcelOutlined } from '@ant-design/icons';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import ToolBar from './toolbar'; import ToolBar from './toolbar';
@ -9,13 +9,20 @@ import apiurl from '../../../../service/apiurl';
import usePageTable from '../../../../components/crud/usePageTable2'; import usePageTable from '../../../../components/crud/usePageTable2';
import { createCrudService } from '../../../../components/crud/_'; import { createCrudService } from '../../../../components/crud/_';
import {CrudOpRender_text} from '../../../../components/crud/CrudOpRender'; import {CrudOpRender_text} from '../../../../components/crud/CrudOpRender';
import './index.less';
const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const url = "http://223.75.53.141:9102/test.by-lyf.tmp"
const Page = () => { const Page = () => {
const role = useSelector(state => state.auth.role); const role = useSelector(state => state.auth.role);
const editBtn = role?.rule?.find(item => item.menuName == "编辑") || true; const editBtn = role?.rule?.find(item => item.menuName == "编辑") || true;
const viewBtn = 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 = { const surveyType = {
1: "日常检查排查", 1: "日常检查排查",
2: "定期普查", 2: "定期普查",
@ -33,38 +40,62 @@ const Page = () => {
} }
const refModal = useRef(); const refModal = useRef();
const [searchVal, setSearchVal] = useState({}) 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 = [ 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, title: '监测时间',
render: (value) => <span>{value ? surveyType[value] : ''}</span> dataIndex: 'time',
key: 'time',
width: 180
}, },
{ {
title: '普查方式', key: 'surveyWay', dataIndex: 'surveyWay', width: 200, title: '测点编号',
render: (value) => <span>{value ? surveyWay[value] : ''}</span> dataIndex: 'code',
key: 'code',
width: 120
}, },
{ {
title: '危害情况', key: 'isHarm', dataIndex: 'isHarm', width: 200, title: '有无白蚁',
render: (value, row) =>( dataIndex: 'hasMosquito',
<span style={row.harmNum > 0 ? { color: "red" } : {}}>{isHarm[row.harmNum > 0 ? 1 : 0]}</span>) key: 'hasMosquito',
}, width: 100,
{title: '白蚁危害处数', key: 'harmNum', dataIndex: 'harmNum', width: 100}, render: (text) => (
{title: '已处置处数', key: 'handleNum', dataIndex: 'handleNum', width: 100}, <Tag color={text ? 'red' : 'green'} style={{borderRadius: '50%', padding: '4px 8px'}}>
{title: '上报人', key: 'reportUserName', dataIndex: 'reportUserName', width: 100}, {text ? '有' : '无'}
{ </Tag>
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 width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]); const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]);
const command = (type) => (params) => { const command = (type) => (params) => {
@ -104,12 +135,50 @@ const Page = () => {
return ( return (
<> <>
<div className='content-root clearFloat xybm' style={{paddingRight:"0",paddingBottom:"0"}}> <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'> <Card className='nonebox'>
<ToolBar <ToolBar
setSearchVal={setSearchVal} setSearchVal={setSearchVal}
onSave={command('save')} // onSave={command('save')}
role={role} // role={role}
/> />
</Card> </Card>
<div className="ant-card-body" style={{ padding: "20px 0 0 0" }}> <div className="ant-card-body" style={{ padding: "20px 0 0 0" }}>

View File

@ -1,30 +1,33 @@
.basic-info{ .statsRow {
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{
display: flex; display: flex;
// align-items: center; justify-content: space-between;
column-gap: 20px; margin-bottom: 24px;
.item-right{ padding: 16px;
flex:1
.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;
} }
} }
} }

View File

@ -5,8 +5,8 @@ import moment from 'moment';
import NormalSelect from '../../../../components/Form/NormalSelect'; import NormalSelect from '../../../../components/Form/NormalSelect';
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
const ToolBar = ({ setSearchVal, onSave, storeData, role }) => { const ToolBar = ({ setSearchVal, onSave, storeData, role }) => {
const addBtn = 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 searchBtn = role?.rule?.find(item => item.menuName == "查询")|| true;
const [form] = Form.useForm(); const [form] = Form.useForm();
const onFinish = (values) => { const onFinish = (values) => {
@ -31,29 +31,27 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role }) => {
<> <>
<div style={{display:'flex',justifyContent:'space-between'}}> <div style={{display:'flex',justifyContent:'space-between'}}>
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish}> <Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish}>
<Form.Item label="年份" name="year"> <Form.Item label="监测日期" name="year">
<DatePicker <DatePicker
allowClear allowClear
style={{ width: "150px" }} style={{ width: "150px" }}
picker="year"
/> />
</Form.Item> </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 <NormalSelect
allowClear allowClear
style={{ width: '150px' }} style={{ width: '150px' }}
options={[{ label: "无危害 ", value: 0 },{ label: "有危害 ", value: 1 }]} /> options={[{ label: "无危害 ", value: 0 },{ label: "有危害 ", value: 1 }]} />
</Form.Item> </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> </Form.Item>
:null
}
</Form> </Form>
</div> </div>
</> </>

View File

@ -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>
)
}

View File

@ -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;

View File

@ -1,5 +1,6 @@
import React, { useEffect, useMemo, useState } from 'react' 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 { Stage } from 'react-konva';
import Sider from './Sider'; import Sider from './Sider';
import Topper1 from './Topper1'; import Topper1 from './Topper1';
@ -11,6 +12,7 @@ import HFivePlayer from '../../../components/video1Plary'
import './index.less'; import './index.less';
import { httpget, httpget2, httppost2 } from '../../../utils/request'; import { httpget, httpget2, httppost2 } from '../../../utils/request';
import apiurl from '../../../service/apiurl'; import apiurl from '../../../service/apiurl';
import ModalContent from './ModalContent';
const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const url = "http://223.75.53.141:9102/test.by-lyf.tmp"
const CanvasW = 1080 const CanvasW = 1080
const CanvasH = 640 const CanvasH = 640
@ -176,6 +178,65 @@ const myType = {
} }
const Page = () => { const Page = () => {
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 [itemIndex, setItemIndex] = useState(null)
const [waterRatio, setWaterRatio] = useState(0) const [waterRatio, setWaterRatio] = useState(0)
const [data, setData] = useState({}) const [data, setData] = useState({})
@ -240,6 +301,7 @@ const Page = () => {
return return
} }
setVideoList(data) setVideoList(data)
getVideoSrc(data[0]?.indexCode)
} }
const getVideoSrc = async (current) => { const getVideoSrc = async (current) => {
@ -261,11 +323,43 @@ const Page = () => {
return ( return (
<> <>
<div className='content-root clearFloat xybm sg_zmjk' style={{ paddingRight: "0", paddingBottom: "0" }}> <div className='content-root clearFloat xybm sg_zmjk' style={{ paddingRight: "0", paddingBottom: "0" }}>
<div className='lf CrudAdcdTreeTableBox' style={{width:"100%",overflowY:"auto"}}> <div className='lf CrudAdcdTreeTableBox' style={{ width: "100%" }}>
{/* <Card className='nonebox'> {/* <Card className='nonebox'>
</Card> */} </Card> */}
<div className="ant-card-body" style={{ padding: "20px 0 0 0" }}> <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}> <Stage width={1080} height={640}>
<Sider pts={pts} side="left" /> <Sider pts={pts} side="left" />
<Sider pts={pts} side="right" /> <Sider pts={pts} side="right" />
@ -302,12 +396,14 @@ const Page = () => {
} }
<div key="sider2" style={{ flexGrow: 1, width: 100 }}></div> <div key="sider2" style={{ flexGrow: 1, width: 100 }}></div>
</div> </div>
</dvi> </div> */}
<dvi className="sg_zmjk_right"> <div className="sg_zmjk_right">
<div className='sg_zmjk_right_video'> <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'>
<div className='sg_zmjk_right_video_content_left'> {/* <div className='sg_zmjk_right_video_content_left'>
{ {
videoList.map((item,index)=>( 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)}}> <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,7 +411,7 @@ const Page = () => {
</div> </div>
)) ))
} }
</div> </div> */}
<div className='sg_zmjk_right_video_content_right'> <div className='sg_zmjk_right_video_content_right'>
{ {
videoArr?.src && videoArr?.src &&
@ -337,9 +433,17 @@ const Page = () => {
</div> </div>
</div> </div>
<div className='sg_zmjk_right_information'> <div className='sg_zmjk_right_information'>
<div className='sg_zmjk_right_information_title'>监测数据</div> <div className='sg_zmjk_right_information_title'>
<div style={{height:'144px',overflowY:'auto',padding:'20px'}}> <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)=>{ list?.map((item)=>{
if(item.type===1){ if(item.type===1){
return ( return (
@ -367,25 +471,26 @@ const Page = () => {
) )
} }
}) })
} } */}
</div> </div>
</div> </div>
<div className='sg_zmjk_right_more' onClick={()=>setOpen(true)}>查看更多信息</div> {/* <div className='sg_zmjk_right_more' onClick={() => setOpen(true)}>查看更多信息</div> */}
</dvi> </div>
</div> </div>
</div> </div>
</div> </div>
<Modal <Modal
open={open} open={open}
width={1000} width={1100}
title="" title="闸门操作记录"
footer={null} footer={null}
onCancel={() => { onCancel={() => {
setOpen(false) setOpen(false)
}} }}
> >
<div style={{ height: '600px' }}> <div style={{ height: '600px' }}>
<Tabs> <ModalContent/>
{/* <Tabs>
<Tabs.TabPane tab="基本信息" key="item-1"> <Tabs.TabPane tab="基本信息" key="item-1">
<Descriptions bordered size="small" column={3} > <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: '凹轮式', 4: '涡轮式', 5: '丝杆式' }?.[data?.hdgrTp] || '-'}</Descriptions.Item>
@ -405,7 +510,7 @@ const Page = () => {
<Tabs.TabPane tab="工程图片" key="item-2"> <Tabs.TabPane tab="工程图片" key="item-2">
<Image width={800} src={url + data?.files?.filePath} alt='' /> <Image width={800} src={url + data?.files?.filePath} alt='' />
</Tabs.TabPane> </Tabs.TabPane>
</Tabs> </Tabs> */}
</div> </div>
</Modal> </Modal>
</> </>

View File

@ -2,12 +2,24 @@
.ant-card-body{ .ant-card-body{
display: flex; display: flex;
height: 100%; height: 100%;
column-gap: 20px;
.sg_zmjk_left{ .sg_zmjk_left{
top: 30px; // top: 30px;
position: relative; position: relative;
width: 1080px; width: 930px;
height: 640px; // height: 640px;
transform: scale(0.9,1); .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{ .sg_zmjk_right{
@ -19,16 +31,18 @@
.sg_zmjk_right_video{ .sg_zmjk_right_video{
height: 400px; height: 400px;
margin: 30px 20px 30px -30px; // margin: 30px 20px 30px -30px;
border-radius: 5px; border-radius: 5px;
border: 1px solid #bbb; // border: 1px solid #bbb;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.sg_zmjk_right_video_title{ .sg_zmjk_right_video_title{
height: 35px; height: 35px;
line-height: 35px; line-height: 35px;
padding-left: 10px; // padding-left: 10px;
border-bottom: 1px solid #bbb; border-bottom: 1px solid #bbb;
font-weight: 600;
font-size: 18px;
} }
.sg_zmjk_right_video_content{ .sg_zmjk_right_video_content{
flex: 1; flex: 1;
@ -57,7 +71,7 @@
} }
} }
.sg_zmjk_right_video_content_right{ .sg_zmjk_right_video_content_right{
flex: 1; width: 100%;
height: 100%; height: 100%;
padding: 10px; padding: 10px;
} }
@ -65,14 +79,16 @@
} }
.sg_zmjk_right_information{ .sg_zmjk_right_information{
height: 180px; height: 180px;
margin: -10px 20px 30px -30px; // margin: -10px 20px 30px -30px;
border-radius: 5px; border-radius: 5px;
border: 1px solid #bbb; // border: 1px solid #bbb;
.sg_zmjk_right_information_title{ .sg_zmjk_right_information_title{
height: 35px; height: 35px;
line-height: 35px; line-height: 35px;
padding-left: 10px; // padding-left: 10px;
border-bottom: 1px solid #bbb; border-bottom: 1px solid #bbb;
font-weight: 600;
font-size: 18px;
} }
.sg_zmjk_right_information_content{ .sg_zmjk_right_information_content{
display: flex; display: flex;
@ -83,10 +99,7 @@
} }
} }
} }
.sg_zmjk_right_more{
margin: -10px 20px 30px -30px;
cursor: pointer;
}
} }
} }
} }

View File

@ -23,7 +23,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝型" label="坝型"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -32,7 +32,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶高程(m)" label="坝顶高程(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -41,7 +41,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶长度(m)" label="坝顶长度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -50,7 +50,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶宽度(m)" label="坝顶宽度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -58,7 +58,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="最大坝高(m)" label="最大坝高(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -73,7 +73,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝型" label="坝型"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -82,7 +82,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶高程(m)" label="坝顶高程(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -91,7 +91,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶长度(m)" label="坝顶长度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -100,7 +100,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶宽度(m)" label="坝顶宽度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -108,7 +108,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="最大坝高(m)" label="最大坝高(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -123,7 +123,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="型式" label="型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -132,7 +132,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="堰顶型式" label="堰顶型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -141,7 +141,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="地基特性" label="地基特性"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -150,7 +150,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="溢流堰顶高程(m)" label="溢流堰顶高程(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -159,7 +159,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="溢流堰净宽(m)" label="溢流堰净宽(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -168,7 +168,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="消能型式" label="消能型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -176,7 +176,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="校核洪水下泄流量(m3/s)" label="校核洪水下泄流量(m3/s)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -184,7 +184,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="设计洪水下泄流量(m3/s)" label="设计洪水下泄流量(m3/s)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -192,7 +192,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="消能防冲下泄流量(m3/s)" label="消能防冲下泄流量(m3/s)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -207,7 +207,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="型式" label="型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -216,7 +216,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="衬砌型式" label="衬砌型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -225,7 +225,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="地基特性" label="地基特性"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -234,7 +234,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="进口底板高程(m)" label="进口底板高程(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -243,7 +243,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="断面尺寸(m)" label="断面尺寸(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -252,7 +252,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="洞长(m)" label="洞长(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -260,7 +260,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="设计流量(m3/s)" label="设计流量(m3/s)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -268,7 +268,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="进口闸门型式" label="进口闸门型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -276,7 +276,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="进口启闭机型式" label="进口启闭机型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -291,7 +291,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="型式" label="型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -300,7 +300,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="衬砌型式" label="衬砌型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -309,7 +309,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="地基特性" label="地基特性"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -318,7 +318,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="进口底板高程(m)" label="进口底板高程(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -327,7 +327,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="断面尺寸(m)" label="断面尺寸(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -336,7 +336,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="洞长(m)" label="洞长(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -344,7 +344,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="设计流量(m3/s)" label="设计流量(m3/s)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -352,7 +352,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="进口闸门型式" label="进口闸门型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -360,7 +360,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="进口启闭机型式" label="进口启闭机型式"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -375,7 +375,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝型" label="坝型"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -384,7 +384,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶高程(m)" label="坝顶高程(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -393,7 +393,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶长度(m)" label="坝顶长度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -402,7 +402,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="坝顶宽度(m)" label="坝顶宽度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -410,7 +410,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="最大坝高(m)" label="最大坝高(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -425,7 +425,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="防汛路长度(m)" label="防汛路长度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>
@ -434,7 +434,7 @@ export default function BuildInfo() {
<Form.Item <Form.Item
label="路面宽度(m)" label="路面宽度(m)"
name="resName" name="resName"
rules={[{ required: true }]}
> >
<Input allowClear style={{ width: '300px' }} disabled={skdisabled} /> <Input allowClear style={{ width: '300px' }} disabled={skdisabled} />
</Form.Item> </Form.Item>

View File

@ -69,10 +69,23 @@ export default function ProjectBasciInfo() {
} }
const fileChange = (info) => { 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") { if (info.file.status === "done") {
setLoading(false); setLoading(false);
message.success(`${info.file.name} 上传成功`);
} }
if (info.file.status === "uploading") { if (info.file.status === "uploading") {
setLoading(true); setLoading(true);
@ -88,7 +101,7 @@ export default function ProjectBasciInfo() {
return file.response?.data?.fileId return file.response?.data?.fileId
}) })
setFileIds(fileIds) setFileIds(fileIds)
setFileList(info.fileList) setFileList(newFileList)
} }
} }
@ -138,6 +151,8 @@ export default function ProjectBasciInfo() {
} }
} }
console.log('f', fileList);
useEffect(() => { useEffect(() => {
getData() getData()
}, []) }, [])
@ -364,31 +379,46 @@ export default function ProjectBasciInfo() {
maxCount={1} maxCount={1}
disabled={loading} disabled={loading}
beforeUpload={beforeUpload} beforeUpload={beforeUpload}
itemRender={(origin,file) => { showUploadList={false}
return ( >
<div style={{display:"flex",alignItems:"center",columnGap:10}}> {fileList.map(file => (
<div key={file.uid} style={{ display: "flex", alignItems: "center", columnGap: 10 }}>
<PaperClipOutlined /> <PaperClipOutlined />
<span <span
style={{ cursor: "pointer" }} style={{ cursor: "pointer" }}
onClick={() => { setPerviewOpen(true); setIframeId(file.response?.data?.fileId)}} onClick={(e) => {
> e.stopPropagation(); // 阻止触发上传
{file?.name}</span> if (file.response?.data?.fileId) {
{skdisabled ? null : setPerviewOpen(true);
<DeleteOutlined setIframeId(file.response.data.fileId);
style={{ marginLeft: 20, cursor: "pointer" }}
onClick={() => deleteFile(file.response?.data?.fileId)}
/>
} }
</div>
)
}} }}
> >
{skdisabled ? null : {file.name}
<div style={{display:"flex",alignItems:"center",columnGap:10,color:"#4f85ec",cursor:skdisabled?"not-allowed":"pointer"}}> </span>
<PaperClipOutlined /> {!skdisabled && (
<a style={{cursor:"pointer"}}>上传PDF文件</a> <DeleteOutlined
style={{ marginLeft: 20, cursor: "pointer" }}
onClick={(e) => {
e.stopPropagation(); // 阻止触发上传
deleteFile(file.response?.data?.fileId);
}}
/>
)}
</div> </div>
} ))}
{!skdisabled && fileList.length === 0 && (
<div style={{
display: "flex",
alignItems: "center",
columnGap: 10,
color: "#4f85ec",
cursor: "pointer"
}}>
<PaperClipOutlined />
<a>上传PDF文件</a>
</div>
)}
</Upload> </Upload>
</Form.Item> </Form.Item>
</Col> </Col>

View File

@ -27,7 +27,7 @@ const ToolBar = ({ setSearchVal, onExport, storeData, role }) => {
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish}> <Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish}>
<Form.Item label="类型" name="types"> <Form.Item label="类型" name="types">
<Select options={[ <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" }}/> ]} allowClear mode='multiple' maxTagCount='responsive' style={{ width: "200px" }}/>
</Form.Item> </Form.Item>
<Form.Item label="发生日期" name="tm"> <Form.Item label="发生日期" name="tm">