Compare commits

..

No commits in common. "04728a9ca1357ac26fe88bb26ca4d43a9a91290f" and "39a1dacfd1d07288c77a66232588fa6de015eeba" have entirely different histories.

28 changed files with 138 additions and 4514 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -125,7 +125,7 @@ const apiurl = {
yhd: service_fxdd + '/attSpillwayBase/list',//溢洪道 yhd: service_fxdd + '/attSpillwayBase/list',//溢洪道
gs: service_fxdd + '/stStbprpB/trafficSiteDetails/realTimeTrafficList',//供水 gs: service_fxdd + '/stStbprpB/trafficSiteDetails/realTimeTrafficList',//供水
getGs: service_fxdd + '/stWaterRReal/getByStcd/',//获取流量站详情 getGs: service_fxdd + '/stWaterRReal/getByStcd/',//获取流量站详情
getGsList: service_fxdd + '/stFlowR/list',//获取供水首页右侧面板数据 getGsList: service_fxdd + '/stWaterRReal/list',//获取供水首页右侧面板数据
sl: service_fxdd + '/osmoticPressR/list/value?type=2',//'/osmoticFlowDevice/getDetailsAndMonitoringDataList',//渗流 sl: service_fxdd + '/osmoticPressR/list/value?type=2',//'/osmoticFlowDevice/getDetailsAndMonitoringDataList',//渗流
sy: service_fxdd + '/osmoticPressR/list/value?type=1',//'/osmoticPressDevice/getDetailsAndMonitoringDataList',//渗压 sy: service_fxdd + '/osmoticPressR/list/value?type=1',//'/osmoticPressDevice/getDetailsAndMonitoringDataList',//渗压
syslList: service_fxdd + '/osmoticPressR/detail/value',//渗压、渗流详情数据 syslList: service_fxdd + '/osmoticPressR/detail/value',//渗压、渗流详情数据
@ -295,16 +295,7 @@ const apiurl = {
save: service_fxdd + "/osmoticPressR/artificial/insert", save: service_fxdd + "/osmoticPressR/artificial/insert",
edit: service_fxdd + "/osmoticPressR/artificial/update", edit: service_fxdd + "/osmoticPressR/artificial/update",
page: service_fxdd + "/osmoticPressR/artificial/page", page: service_fxdd + "/osmoticPressR/artificial/page",
del: service_fxdd + "/osmoticPressR/artificial/delete", del: service_fxdd + "/osmoticPressR/artificial/del/",
export: service_fxdd + "/osmoticPressR/artificial/export",
},
rgwyjc:{
save: service_fxdd + "/osmoticShiftR/artificial/insert",
edit: service_fxdd + "/osmoticShiftR/artificial/update",
page: service_fxdd + "/osmoticShiftR/artificial/page",
del: service_fxdd + "/osmoticShiftR/artificial/delete",
export: service_fxdd + "/osmoticShiftR/artificial/export",
list:service_fxdd + "/osmoticShiftR/artificial/tree"
}, },
wyjc:{ wyjc:{
save: service_fxdd + "/osmoticShiftR/insert", save: service_fxdd + "/osmoticShiftR/insert",
@ -550,7 +541,7 @@ const apiurl = {
videoList: service_fxdd + "/gateValveCctvRel/list", videoList: service_fxdd + "/gateValveCctvRel/list",
videosrc: service_fxdd + "/attCctvBase/preview/", videosrc: service_fxdd + "/attCctvBase/preview/",
tjzf: service_fxdd + "/gateValveReal/control", tjzf: service_fxdd + "/gateValveReal/control",
input: service_fxdd + "/stFlowR/list", input: service_fxdd + "/stWaterRReal/list",
export1: service_fxdd + "/gateValveReal/log/export", //操作日志导出 export1: service_fxdd + "/gateValveReal/log/export", //操作日志导出
logpage: service_fxdd + "/gateValveReal/log/page", //操作日志分页 logpage: service_fxdd + "/gateValveReal/log/page", //操作日志分页
gsStatic: service_fxdd + "/stWaterR/stat", gsStatic: service_fxdd + "/stWaterR/stat",

View File

@ -9,20 +9,19 @@ export default class LayerMgr {
//加载模型 //加载模型
getGltf(viewer) { getGltf(viewer) {
const position = Cesium.Cartesian3.fromDegrees(114.76255, 31.49588,118.5) const position = Cesium.Cartesian3.fromDegrees(114.7629, 31.4948,25)
viewer.entities.add({ viewer.entities.add({
position: position, position: position,
model: { model: {
// uri: `${process.env.PUBLIC_URL}/models/dam/scene.gltf` , uri: `${process.env.PUBLIC_URL}/models/dam/scene.gltf` ,
uri: `${process.env.PUBLIC_URL}/models/dam2/gszh_xyz.gltf` , scale: 10,
scale: 0.52,
runAnimations: false runAnimations: false
}, },
orientation: Cesium.Transforms.headingPitchRollQuaternion( orientation: Cesium.Transforms.headingPitchRollQuaternion(
position, position,
new Cesium.HeadingPitchRoll( new Cesium.HeadingPitchRoll(
Cesium.Math.toRadians(-88.7), Cesium.Math.toRadians(90),
Cesium.Math.toRadians(0.05), Cesium.Math.toRadians(0),
Cesium.Math.toRadians(0) Cesium.Math.toRadians(0)
) )
) )
@ -147,8 +146,7 @@ export default class LayerMgr {
try { try {
let tileset = await Cesium.Cesium3DTileset.fromUrl( let tileset = await Cesium.Cesium3DTileset.fromUrl(
// 'http://res3d.oss-cn-shenzhen.aliyuncs.com/macheng/xiaoyutan/Scene/3DTILE.json', // 'http://res3d.oss-cn-shenzhen.aliyuncs.com/macheng/xiaoyutan/Scene/3DTILE.json',
'https://map1.oss-cn-shenzhen.aliyuncs.com/tsg/tiles2/tileset.json', 'https://map1.oss-cn-shenzhen.aliyuncs.com/tsg/tiles/tileset.json',
// `${process.env.PUBLIC_URL}/terrain/tileset.json`,
{ {
maximumScreenSpaceError: 20, //精细程度越小越精细 maximumScreenSpaceError: 20, //精细程度越小越精细
maximumMemoryUsage: 1000, //不可设置太高,目标机子空闲内存值以内,防止浏览器过于卡 maximumMemoryUsage: 1000, //不可设置太高,目标机子空闲内存值以内,防止浏览器过于卡

View File

@ -71,7 +71,7 @@ function RealDrpTip({ id, data, dispatch }) {
border: "1px solid #74a7ff", border: "1px solid #74a7ff",
borderRadius: "5px" borderRadius: "5px"
} }
}> {{MM: '气象站',PP: '雨量站',RR: '水库水文站',ZZ: '河道水位站',ZQ:"河道水文站",QQ:'流量站'}?.[data?.sttp]}</span>} }> {{MM: '气象站',PP: '雨量站',RR: '水库水文站',ZZ: '河道水位站',ZQ:"河道水文站"}?.[data?.sttp]}</span>}
<div className="normalModalStyle_title_cancel"> <div className="normalModalStyle_title_cancel">
<CloseOutlined onClick={closePop} style={{color:"#333"}}/> <CloseOutlined onClick={closePop} style={{color:"#333"}}/>
</div> </div>

View File

@ -25,7 +25,7 @@ const Page = () => {
} }
data?.map((item,index)=>{ data?.map((item,index)=>{
if(index<2){ if(index<2){
if(item.stcd==='10498'){ if(item.stcd==='1111111'){
//灌溉流量站 //灌溉流量站
setData1({...item}) setData1({...item})
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 KiB

After

Width:  |  Height:  |  Size: 618 KiB

View File

@ -82,7 +82,7 @@ export default function Page({isHome}) {
if(code!==200){ if(code!==200){
return return
} }
const list = data?.map((item) => ({ ...item, stationCode: item.cd })) const list = data?.map((item)=>({...item,stationCode:item.cd}))
setWyList(list||[]) setWyList(list||[])
} }

View File

@ -177,8 +177,8 @@
top: 880px; top: 880px;
} }
.gcaqjc_bzt_sy_UPD10{ .gcaqjc_bzt_sy_UPD10{
left: 993px; left: 1041px;
top: 865px; top: 883.5px;
} }
.gcaqjc_bzt_sy_UPD16{ .gcaqjc_bzt_sy_UPD16{
left: 1069px; left: 1069px;
@ -186,8 +186,8 @@
} }
//ZB0+132 //ZB0+132
.gcaqjc_bzt_sy_UPD7{ .gcaqjc_bzt_sy_UPD7{
left: 1041px; left: 993px;
top: 883.5px; top: 865px;
} }
.gcaqjc_bzt_sy_UPD13{ .gcaqjc_bzt_sy_UPD13{
left: 1043px; left: 1043px;

View File

@ -64,7 +64,7 @@ export default function jrxOptions(data = {}, type = "1",typeName='1') {
// gz1、gz2、gz3、gz4分别为渗压管 // gz1、gz2、gz3、gz4分别为渗压管
const gz1 = data[alltype[0]] ? const gz1 = data[alltype[0]] ?
type == "3" ? [[typeName =='5' ?47:51, typeName =='5' ?76.56:92.18], [typeName =='5' ?47:51, data[alltype[0]]]] : type == "3" ? [[typeName =='5' ?47:51, typeName =='5' ?76.56:92.18], [typeName =='5' ?47:51, data[alltype[0]]]] :
type == "2" ? [[typeName =='3' ? 45.5:50, typeName =='3' ?76.76:77.18], [typeName =='3' ? 45.5:50, data[alltype[0]]]] : type == "2" ? [[typeName =='3' ? 45.5:50, typeName =='3' ?76.16:77.18], [typeName =='3' ? 45.5:50, data[alltype[0]]]] :
type == "1" ? [[44, typeName =='1' ?79.16:77.18], [44, data[alltype[0]]]] : type == "1" ? [[44, typeName =='1' ?79.16:77.18], [44, data[alltype[0]]]] :
[[55, 109.87], [55, data[alltype[0]]]] [[55, 109.87], [55, data[alltype[0]]]]
: []; : [];

View File

@ -15,8 +15,6 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const [dmCode, setDmCode] = useState('') const [dmCode, setDmCode] = useState('')
const onFinish = (values) => { const onFinish = (values) => {
if (mode === 'edit') { if (mode === 'edit') {
values.updateMstm = values.mstm;
delete values.mstm;
onEdit(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.edit, { ...record, ...values }) onEdit(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.edit, { ...record, ...values })
} }
if (mode === 'save') { if (mode === 'save') {
@ -30,6 +28,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const getDmList = async () => { const getDmList = async () => {
try { try {
const res = await httppost2(apiurl.gcaqjc.sjtjcx.sycx.list) const res = await httppost2(apiurl.gcaqjc.sjtjcx.sycx.list)
setDmCd(res.data)
const sortedData = res.data.sort((a, b) => { const sortedData = res.data.sort((a, b) => {
// 判断a、b是否为ZB0开头 // 判断a、b是否为ZB0开头
const isAZB0 = a.profileCode.startsWith('ZB0'); const isAZB0 = a.profileCode.startsWith('ZB0');
@ -49,7 +48,6 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const getStationCode = async () => { const getStationCode = async () => {
try { try {
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sycx.list1) const res = await httpget2(apiurl.gcaqjc.sjtjcx.sycx.list1)
setDmCd(res.data)
const list = [] const list = []
res?.data?.map((item) => { res?.data?.map((item) => {
const { dvcd, dm } = item const { dvcd, dm } = item
@ -71,14 +69,14 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const onValuesChange = (v) => { const onValuesChange = (v) => {
if ("dvcd" in v) { if ("dvcd" in v) {
const updToDmMap = {}; // 键UPD编码对应的dm // const updToDmMap = {}; // 键UPD编码对应的dm
dmCd.forEach(item => { // dmCd.forEach(item => {
const currentDm = item.dm; // 当前dm // const currentDm = item.dm; // 当前dm
item.dvcd.forEach(upd => { // item.dvcd.forEach(upd => {
updToDmMap[upd] = currentDm; // 为每个UPD绑定dm // updToDmMap[upd] = currentDm; // 为每个UPD绑定dm
}); // });
}); // });
form.setFieldValue("dm",updToDmMap[v?.dvcd]) // form.setFieldValue("dm",updToDmMap[v?.dvcd])
} }
} }
@ -139,14 +137,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
getValueFromEvent={(e, dateString) => dateString} getValueFromEvent={(e, dateString) => dateString}
getValueProps={(value) => ({ value: value ? moment(value) : undefined })} getValueProps={(value) => ({ value: value ? moment(value) : undefined })}
> >
<DatePicker <DatePicker disabled={mode === 'view'} format={'YYYY-MM-DD HH:mm:ss'} style={{ width: '100%' }} allowClear showTime />
disabled={mode === 'view'}
format={'YYYY-MM-DD HH:mm:ss'}
style={{ width: '100%' }}
allowClear
showTime
placeholder='请选择时间'
/>
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={12}> <Col span={12}>

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, message } from 'antd'; import { Table, Card,Modal,Form,Input,Button,Row,Col,message } from 'antd';
import ModalForm from './form'; import ModalForm from './form';
import ToolBar from './toolbar'; import ToolBar from './toolbar';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
@ -9,51 +9,40 @@ 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 { exportFile } from '../../../../../utils/tools.js'; import { exportFile } from '../../../../../utils/tools.js';
import { httppost2, httppost5 } from '../../../../../utils/request'; import { httppost5 } from '../../../../../utils/request';
import "./index.less" import "./index.less"
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 refModal = useRef(); const refModal = useRef();
const [searchVal, setSearchVal] = useState(false) const [searchVal, setSearchVal] = useState(false)
const columns = [ const columns = [
{ title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align: "center" }, { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" },
{ title: '测点名称', key: 'dvcd', dataIndex: 'dvcd', width: 200, ellipsis: true, align: "center" }, { title: '测点名称', key: 'dvcd', dataIndex: 'dvcd', width: 200, ellipsis: true, align:"center" },
{ title: '断面名称', key: 'dmName', dataIndex: 'dmName', width: 200, align: "center" }, { title: '断面名称', key: 'dmName', dataIndex: 'dmName', width: 200, align:"center"},
{ title: '测量时间', key: 'mstm', dataIndex: 'mstm', width: 200, align: "center" }, { title: '测量时间', key: 'mstm', dataIndex: 'mstm', width: 200, align:"center"},
{ {
title: '渗流压力水位(m)', key: 'spprwl', dataIndex: 'spprwl', width: 200, align: "center", title: '渗流压力水位(m)', key: 'spprwl', dataIndex: 'spprwl', width: 200, align:"center",
}, },
{ title: '温度(°C)', key: 'tm', dataIndex: 'tm', width: 250, ellipsis: true, align: "center", }, { title: '温度(°C)', key: 'tm', dataIndex: 'tm', width: 250, ellipsis: true,align:"center", },
{ title: '更新时间', key: 'updateTm', dataIndex: 'updateTm', width: 200, ellipsis: true, align: "center", }, { title: '更新时间', key: 'updateTm', dataIndex: 'updateTm', width: 200, ellipsis: true,align:"center", },
{ {
title: '操作', key: 'operation', width: 240, fixed: 'right', align: 'center', title: '操作', key: 'operation', width: 240, fixed: 'right',align: 'center',
render: (value, row, index) => ( render: (value, row, index) => (
<CrudOpRender_text <CrudOpRender_text
edit={editBtn ? true : false} edit={editBtn ? true : false}
del={delBtn ? true : false} del={delBtn ? true : false}
command={(cmd) => () => command(cmd)(row)} />) 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 { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.page).find_noCode);
const del = async (url, parmas) => {
try {
const res = await httppost2(url, parmas);
if (res.code == 200) {
message.success("删除成功");
refresh();
}
} catch (error) {
console.log(error);
}
}
const command = (type) => (params) => { const command = (type) => (params) => {
if (type === 'save') { if (type === 'save') {
refModal.current.showSave(); refModal.current.showSave();
@ -62,26 +51,20 @@ const Page = () => {
} else if (type === 'view') { } else if (type === 'view') {
refModal.current.showView(params); refModal.current.showView(params);
} else if (type === 'del') { } else if (type === 'del') {
const par = { mpcd: params.mpcd, mstm: params.mstm, stcd: params.stcd }; const url = apiurl.gcaqjc.sjtjcx.sjlr.rgjc.del + params.mpcd+'/'+params.mstm
const url = apiurl.gcaqjc.sjtjcx.sjlr.rgjc.del refModal.current.onDeleteGet(url);
del(url, par);
} }
} }
const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.page).find_noCode);
const exportExcel = () => { const exportExcel = () => {
let pageSo = {
pageNumber: tableProps.pagination.current,
pageSize:tableProps.pagination.pageSize
}
let params = { let params = {
...searchVal, ...searchVal,
pageSo
} }
httppost5(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.export, params).then(res => { httppost5(apiurl.gcaqjc.sjtjcx.ndsytjb.export, params).then(res => {
exportFile(`人工录入渗压监测表.xlsx`, res.data) exportFile(`渗压监测表.xlsx`,res.data)
}) })
} }
useEffect(() => { useEffect(() => {
if (searchVal) { if (searchVal) {
@ -106,8 +89,8 @@ const Page = () => {
exportFile={exportExcel} exportFile={exportExcel}
/> />
</Card> </Card>
<div className="ant-card-body" style={{ padding: "20px 0 0 0" }}> <div className="ant-card-body" style={{padding:"20px 0 0 0"}}>
<Table columns={columns} rowKey="inx" {...tableProps} scroll={{ x: width, y: "calc( 100vh - 400px )" }} /> <Table columns={columns} rowKey="inx" {...tableProps} scroll={{ x: width , y: "calc( 100vh - 400px )"}}/>
</div> </div>
</div> </div>
<BasicCrudModal <BasicCrudModal

View File

@ -38,7 +38,6 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
const [dmList, setDmList] = useState([]) const [dmList, setDmList] = useState([])
const [codeList, setCodeList] = useState([]) const [codeList, setCodeList] = useState([])
const [dmCode, setDmCode] = useState('') const [dmCode, setDmCode] = useState('')
const [dmCd, setDmCd] = useState([])
const getDmList = async () => { const getDmList = async () => {
try { try {
@ -62,7 +61,6 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
const getStationCode = async () => { const getStationCode = async () => {
try { try {
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sycx.list1) const res = await httpget2(apiurl.gcaqjc.sjtjcx.sycx.list1)
setDmCd(res.data)
const list = [] const list = []
res?.data?.map((item) => { res?.data?.map((item) => {
const { dvcd, dm } = item const { dvcd, dm } = item
@ -102,17 +100,6 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
break; break;
} }
if ("dvcd" in e) {
const updToDmMap = {}; // 键UPD编码对应的dm
dmCd.forEach(item => {
const currentDm = item.dm; // 当前dm
item.dvcd.forEach(upd => {
updToDmMap[upd] = currentDm; // 为每个UPD绑定dm
});
});
form.setFieldValue("dm",updToDmMap[e?.dvcd])
}
} }
const onFinish = (values) => { const onFinish = (values) => {
let dateSo; let dateSo;
@ -166,7 +153,7 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
options={optionsType} options={optionsType}
/> />
</Form.Item> </Form.Item>
<Form.Item label="监测断面" name="dm"> <Form.Item label="监测断面" name="profileCode">
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: "150px" }} style={{ width: "150px" }}

View File

@ -3,36 +3,41 @@ import { Form, Button, Input, Row, Col, DatePicker, Upload,message,Image,Modal,R
import { formItemLayout, btnItemLayout } from '../../../../../components/crud/FormLayoutProps'; import { formItemLayout, btnItemLayout } from '../../../../../components/crud/FormLayoutProps';
import apiurl from '../../../../../service/apiurl'; import apiurl from '../../../../../service/apiurl';
import NormalSelect from '../../../../../components/Form/NormalSelect'; import NormalSelect from '../../../../../components/Form/NormalSelect';
import { httppost2,httpget2 } from '../../../../../utils/request'; import { httppost2 } from '../../../../../utils/request';
import moment from 'moment'; import moment from 'moment';
const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => { const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
console.log("record",record); console.log("record",record);
const [form] = Form.useForm(); const [form] = Form.useForm();
const [dmList, setDmList] = useState([])
const [codeList, setCodeList] = useState([]) const [codeList, setCodeList] = useState([])
const [dmCode,setDmCode] = useState('')
const onFinish = (values) => { const onFinish = (values) => {
if (mode === 'edit') { if (mode === 'edit') {
values.newUpdateCd = values.cd; onEdit(apiurl.gcaqjc.sjtjcx.sjlr.wyjc.edit,{...record,...values})
values.newUpdateTm = values.tm;
delete values.cd;
delete values.tm;
onEdit(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.edit,{...record,...values})
} }
if (mode === 'save') { if (mode === 'save') {
onSave(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.save,values) onSave(apiurl.gcaqjc.sjtjcx.sjlr.wyjc.save,values)
} }
} }
const getDmList = async () => {
try {
const res = await httppost2(apiurl.gcaqjc.sjtjcx.sycx.list)
setDmList(res.data.map(s=>({label:s.profileName,value:s.profileCode})));
} catch (error) {
console.log(error);
}
}
const getStationCode = async () => { const getStationCode = async () => {
try { try {
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.list) const res = await httppost2(apiurl.gcaqjc.sjtjcx.wycx.list)
if (res.code == 200) { setCodeList(res.data);
setCodeList(res.data.map(s=>({label:s.cd,value:s.cd})));
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
@ -40,6 +45,7 @@ const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
useEffect(()=>{ useEffect(()=>{
getDmList()
getStationCode() getStationCode()
}, []) }, [])
@ -58,14 +64,7 @@ const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
getValueProps={(value) => ({ value: value ? moment(value) : undefined })} getValueProps={(value) => ({ value: value ? moment(value) : undefined })}
rules={[{required: true}]} rules={[{required: true}]}
> >
<DatePicker <DatePicker disabled={mode==='view'} format={'YYYY-MM-DD HH:mm:ss'} style={{width:'100%'}} allowClear showTime />
disabled={mode === 'view'}
format={'YYYY-MM-DD HH:mm:ss'}
style={{ width: '100%' }}
allowClear
showTime
placeholder='请选择时间'
/>
</Form.Item> </Form.Item>
<Form.Item <Form.Item
label="测点编号" label="测点编号"
@ -76,7 +75,7 @@ const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
disabled={mode==='view'} disabled={mode==='view'}
allowClear allowClear
style={{ width: "100%" }} style={{ width: "100%" }}
options={codeList} options={codeList.map(s=>({label:s.cd,value:s.cd}))}
/> />
</Form.Item> </Form.Item>
<Form.Item <Form.Item

View File

@ -7,9 +7,7 @@ import { useSelector } from 'react-redux';
import apiurl from '../../../../../service/apiurl'; 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 { exportFile } from '../../../../../utils/tools.js';
import { httppost2, httppost5 } from '../../../../../utils/request';
import "./index.less" import "./index.less"
const Page = () => { const Page = () => {
const role = useSelector(state => state.auth.role); const role = useSelector(state => state.auth.role);
@ -42,18 +40,7 @@ const Page = () => {
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 { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.page).find_noCode);
const del = async (url, parmas) => {
try {
const res = await httppost2(url, parmas);
if (res.code == 200) {
message.success("删除成功");
refresh();
}
} catch (error) {
console.log(error);
}
}
const command = (type) => (params) => { const command = (type) => (params) => {
if (type === 'save') { if (type === 'save') {
refModal.current.showSave(); refModal.current.showSave();
@ -62,36 +49,21 @@ const Page = () => {
} else if (type === 'view') { } else if (type === 'view') {
refModal.current.showView(params); refModal.current.showView(params);
} else if (type === 'del') { } else if (type === 'del') {
const par = { cd: params.cd, tm: params.tm}; const url = apiurl.gcaqjc.sjtjcx.sjlr.wyjc.del + params.cd+'/'+params.tm
const url = apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.del refModal.current.onDeleteGet(url);
del(url, par);
} }
} }
const exportExcel = () => { const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.sjlr.wyjc.page).find_noCode);
let pageSo = {
pageNumber: tableProps.pagination.current,
pageSize:tableProps.pagination.pageSize
}
let params = {
...searchVal,
pageSo
}
httppost5(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.export, params).then(res => {
exportFile(`人工录入位移监测表.xlsx`, res.data)
})
}
useEffect(()=>{ useEffect(()=>{
if (searchVal) { const params = {
const params = { search: {
search: { ...searchVal,
...searchVal, }
} };
}; search(params)
search(params)
}
}, [searchVal]) }, [searchVal])
@ -103,7 +75,6 @@ const Page = () => {
setSearchVal={setSearchVal} setSearchVal={setSearchVal}
onSave={command('save')} onSave={command('save')}
role={role} role={role}
exportFile={exportExcel}
/> />
</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

@ -5,7 +5,7 @@ import AdcdFuzzyTreeSelect from '../../../../../components/Form/AdcdFuzzyTreeSel
import NormalSelect from '../../../../../components/Form/NormalSelect'; import NormalSelect from '../../../../../components/Form/NormalSelect';
import { config } from '../../../../../config'; import { config } from '../../../../../config';
import moment from 'moment'; import moment from 'moment';
import { httppost2,httpget2 } from '../../../../../utils/request'; import { httppost2 } from '../../../../../utils/request';
import apiurl from '../../../../../service/apiurl'; import apiurl from '../../../../../service/apiurl';
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => { const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
@ -50,10 +50,8 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
const getStationCode = async () => { const getStationCode = async () => {
try { try {
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.list) const res = await httppost2(apiurl.gcaqjc.sjtjcx.wycx.list)
if (res.code == 200) { setCodeList(res.data.map(s=>({label:s.cd,value:s.cd})));
setCodeList(res.data.map(s=>({label:s.cd,value:s.cd})));
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
@ -84,8 +82,8 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
let dateSo; let dateSo;
if (values.tm) { if (values.tm) {
dateSo = { dateSo = {
start: moment(values.tm[0]).format('YYYY-MM-DD 00:00:00'), start: moment(values.tm[0]).format('YYYY-MM-DD HH:mm:ss'),
end: moment(values.tm[1]).format('YYYY-MM-DD 23:59:59') end: moment(values.tm[1]).format('YYYY-MM-DD HH:mm:ss')
} }
} }
delete values.tm delete values.tm
@ -103,8 +101,8 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
form.setFieldValue('tm', [stm, etm]) form.setFieldValue('tm', [stm, etm])
setSearchVal({ setSearchVal({
dateTimeRangeSo: { dateTimeRangeSo: {
start: stm.format("YYYY-MM-DD 00:00:00"), start: stm.format("YYYY-MM-DD HH:mm:ss"),
end: etm.format("YYYY-MM-DD 23:59:59") end: etm.format("YYYY-MM-DD HH:mm:ss")
} }
}) })
}, []) }, [])
@ -114,12 +112,12 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
<> <>
<div style={{display:'flex',justifyContent:'space-between'}}> <div style={{display:'flex',justifyContent:'space-between'}}>
<Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}> <Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}>
<Form.Item label="日期" name="tm"> <Form.Item label="监测时间" name="tm">
<RangePicker <RangePicker
allowClear allowClear
showTime showTime
style={{ width: "350px" }} style={{ width: "350px" }}
format="YYYY-MM-DD" format="YYYY-MM-DD HH:mm:ss"
onChange={(v)=>{ onChange={(v)=>{
form.setFieldValue('ranger',null) form.setFieldValue('ranger',null)
}} }}
@ -132,10 +130,10 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
options={optionsType} options={optionsType}
/> />
</Form.Item> </Form.Item>
<Form.Item label="测点编号" name="cd"> <Form.Item label="测点编号" name="stationCode">
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: "200px" }} style={{ width: "150px" }}
options={codeList} options={codeList}
/> />
</Form.Item> </Form.Item>

View File

@ -16,15 +16,15 @@ const Page = () => {
{ title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" }, { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" },
// { title: '水库代码', key: 'rscd', dataIndex: 'rscd', width: 200, ellipsis: true, align:"center" }, // { title: '水库代码', key: 'rscd', dataIndex: 'rscd', width: 200, ellipsis: true, align:"center" },
// { title: '水工建筑物编号', key: 'hycncd', dataIndex: 'hycncd', width: 200, align:"center"}, // { title: '水工建筑物编号', key: 'hycncd', dataIndex: 'hycncd', width: 200, align:"center"},
{ title: '测点编号', key: 'dvcd', dataIndex: 'dvcd', width: 200, align:"center"}, { title: '测点编号', key: 'mpcd', dataIndex: 'mpcd', width: 200, align:"center"},
{ title: '测量时间', key: 'mstm', dataIndex: 'mstm', width: 200, align:"center"}, { title: '测量时间', key: 'mstm', dataIndex: 'mstm', width: 200, align:"center"},
// { title: '温度(°C)', key: 'tm', dataIndex: 'tm', width: 250, ellipsis: true,align:"center", }, { title: '温度(°C)', key: 'tm', dataIndex: 'tm', width: 250, ellipsis: true,align:"center", },
{ title: '渗流量(L/s)', key: 'spqn', dataIndex: 'spqn', width: 250, ellipsis: true,align:"center", }, { title: '渗流量(l/s)', key: 'spqn', dataIndex: 'spqn', width: 250, ellipsis: true,align:"center", },
// { {
// title: '标准水温渗流量(l/s)', key: 'stspqn', dataIndex: 'stspqn', width: 200, align:"center", title: '标准水温渗流量(l/s)', key: 'stspqn', dataIndex: 'stspqn', width: 200, align:"center",
// }, },
// { title: '创建时间', key: 'createTime', dataIndex: 'createTime', width: 200, ellipsis: true,align:"center" }, { title: '创建时间', key: 'createTime', dataIndex: 'createTime', width: 200, ellipsis: true,align:"center" },
// { title: '更新时间', key: 'updateTm', dataIndex: 'updateTm', width: 200, ellipsis: true,align:"center" }, { title: '更新时间', key: 'updateTm', dataIndex: 'updateTm', width: 200, ellipsis: true,align:"center" },
]; ];

View File

@ -59,8 +59,8 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role }) => {
let dateSo; let dateSo;
if (values.tm) { if (values.tm) {
dateSo = { dateSo = {
start: moment(values.tm[0]).format('YYYY-MM-DD 00:00:00'), start: moment(values.tm[0]).format('YYYY-MM-DD HH:mm:ss'),
end: moment(values.tm[1]).format('YYYY-MM-DD 23:59:59') end: moment(values.tm[1]).format('YYYY-MM-DD HH:mm:ss')
} }
} }
delete values.tm delete values.tm
@ -82,11 +82,11 @@ 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} onValuesChange={onValuesChange}> <Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}>
<Form.Item label="测量日期" name="tm"> <Form.Item label="上报时间" name="tm">
<RangePicker <RangePicker
allowClear allowClear
style={{ width: "350px" }} style={{ width: "350px" }}
format="YYYY-MM-DD" format="YYYY-MM-DD HH:mm:ss"
onChange={(v)=>{ onChange={(v)=>{
form.setFieldValue('ranger',null) form.setFieldValue('ranger',null)
}} }}

View File

@ -94,8 +94,8 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role }) => {
let dateSo; let dateSo;
if (values.tm) { if (values.tm) {
dateSo = { dateSo = {
start: moment(values.tm[0]).format('YYYY-MM-DD 00:00:00'), start: moment(values.tm[0]).format('YYYY-MM-DD HH:mm:ss'),
end: moment(values.tm[1]).format('YYYY-MM-DD 23:59:59') end: moment(values.tm[1]).format('YYYY-MM-DD HH:mm:ss')
} }
} }
delete values.tm delete values.tm
@ -135,11 +135,12 @@ 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} onValuesChange={onValuesChange}> <Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}>
<Form.Item label="测量日期" name="tm"> <Form.Item label="上报时间" name="tm">
<RangePicker <RangePicker
allowClear allowClear
showTime
style={{ width: "350px" }} style={{ width: "350px" }}
format="YYYY-MM-DD" format="YYYY-MM-DD HH:mm:ss"
onChange={(v)=>{ onChange={(v)=>{
form.setFieldValue('ranger',null) form.setFieldValue('ranger',null)
}} }}

View File

@ -44,16 +44,13 @@ const Page = () => {
const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.wycx.page).find_noCode); const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.wycx.page).find_noCode);
useEffect(() => { useEffect(()=>{
if (searchVal) { const params = {
const params = { search: {
search: { ...searchVal,
...searchVal, }
} };
}; search(params)
search(params)
}
}, [searchVal]) }, [searchVal])
return ( return (
<> <>

View File

@ -10,6 +10,7 @@ import apiurl from '../../../../service/apiurl';
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
const ToolBar = ({ setSearchVal, onSave, storeData,role }) => { const ToolBar = ({ setSearchVal, onSave, storeData,role }) => {
const searchBtn = role?.rule?.find(item => item.menuName == "查询")||true; const searchBtn = role?.rule?.find(item => item.menuName == "查询")||true;
const optionsType = [ const optionsType = [
{ {
label: "今日", label: "今日",
@ -36,7 +37,7 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role }) => {
const [codeList, setCodeList] = useState([]) const [codeList, setCodeList] = useState([])
const [dmList, setDmList] = useState([]) const [dmList, setDmList] = useState([])
const [showDm, setShowDm] = useState(true)
const getStationCode = async () => { const getStationCode = async () => {
try { try {
const res = await httppost2(apiurl.gcaqjc.sjtjcx.wycx.list) const res = await httppost2(apiurl.gcaqjc.sjtjcx.wycx.list)
@ -76,18 +77,13 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role }) => {
break; break;
} }
if ("isArtificial" in e) {
const isShowDmSearch = e.isArtificial == 0;
setShowDm(isShowDmSearch)
}
} }
const onFinish = (values) => { const onFinish = (values) => {
let dateSo; let dateSo;
if (values.tm) { if (values.tm) {
dateSo = { dateSo = {
start: moment(values.tm[0]).format('YYYY-MM-DD 00:00:00'), start: moment(values.tm[0]).format('YYYY-MM-DD HH:mm:ss'),
end: moment(values.tm[1]).format('YYYY-MM-DD 23:59:59') end: moment(values.tm[1]).format('YYYY-MM-DD HH:mm:ss')
} }
} }
delete values.tm delete values.tm
@ -112,11 +108,11 @@ 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} onValuesChange={onValuesChange}> <Form form={form} className='toolbarBox' layout="inline" onFinish={onFinish} onValuesChange={onValuesChange}>
<Form.Item label="监测日期" name="tm"> <Form.Item label="上报时间" name="tm">
<RangePicker <RangePicker
allowClear allowClear
style={{ width: "350px" }} style={{ width: "350px" }}
format="YYYY-MM-DD" format="YYYY-MM-DD HH:mm:ss"
onChange={(v)=>{ onChange={(v)=>{
form.setFieldValue('ranger',null) form.setFieldValue('ranger',null)
}} }}
@ -129,20 +125,20 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role }) => {
options={optionsType} options={optionsType}
/> />
</Form.Item> </Form.Item>
<Form.Item label="测点类型" name="isArtificial"> {/* <Form.Item label="" name="cd">
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: "150px" }} style={{ width: "150px" }}
options={[{label:'自动监测',value:0},{label:'人工监测',value:1}]} options={codeList}
/> />
</Form.Item> </Form.Item> */}
{showDm && <Form.Item label="监测断面" name="ch"> <Form.Item label="监测断面" name="ch">
<NormalSelect <NormalSelect
allowClear allowClear
style={{ width: "150px" }} style={{ width: "150px" }}
options={dmList} options={dmList}
/> />
</Form.Item>} </Form.Item>
{searchBtn ? <Form.Item> {searchBtn ? <Form.Item>
<Button type="primary" htmlType="submit">查询</Button> <Button type="primary" htmlType="submit">查询</Button>
</Form.Item> : null } </Form.Item> : null }

View File

@ -46,7 +46,7 @@ export default function Gsnlfx() {
const getInputData = async() => { const getInputData = async() => {
try { try {
const res = await httppost2(apiurl.gsxl.zfzl.input) const res = await httppost2(apiurl.gsxl.zfzl.input)
const ssg = res.data.find(item => item.stcd == "10498");//灌溉流量 const ssg = res.data.find(item => item.stcd == "1111111");//灌溉流量
const fsg = res.data.find(item => item.stcd == "2222222");//水厂流量 const fsg = res.data.find(item => item.stcd == "2222222");//水厂流量
setSsGData({ssg,fsg}) setSsGData({ssg,fsg})
} catch (error) { } catch (error) {

View File

@ -375,18 +375,13 @@ const Page = () => {
name: "灌溉发电流量m³/s", name: "灌溉发电流量m³/s",
realData:'', realData:'',
tm:'' tm:''
},
{
name: "水厂取水流量m³/s",
realData:'',
tm:''
} }
] ]
// 闸阀历史操作 // 闸阀历史操作
const [zfjkSwData, setzfjkSwData] = useState([]) const [zfjkSwData, setzfjkSwData] = useState([])
const getZfjkSwData = async () => { const getZfjkSwData = async () => {
try { try {
const res = await httppost2(apiurl.gsxl.zfzl.swInfo,{stcd:"10852"}) const res = await httppost2(apiurl.gsxl.zfzl.swInfo,{stcd:"10196"})
if (res.code == 200) { if (res.code == 200) {
const { const {
rz, rz,
@ -394,9 +389,7 @@ const Page = () => {
outPowerNum, outPowerNum,
todayRainNumTm, todayRainNumTm,
outPowerNumTm, outPowerNumTm,
tm, tm
q,
qtm
} = res.data; } = res.data;
const newArr = swList.map(item => { const newArr = swList.map(item => {
if (item.name == '库水位m') { if (item.name == '库水位m') {
@ -405,12 +398,9 @@ const Page = () => {
} else if (item.name == '今日雨量mm') { } else if (item.name == '今日雨量mm') {
item.realData = todayRainNum; item.realData = todayRainNum;
item.tm = todayRainNumTm; item.tm = todayRainNumTm;
} else if(item.name == '灌溉发电流量m³/s') { } else {
item.realData = outPowerNum; item.realData = outPowerNum;
item.tm = outPowerNumTm; item.tm = outPowerNumTm;
} else {
item.realData = q;
item.tm = qtm;
} }
return item; return item;
}) })