feat():人工监测数据录入开发

qzc-dev
李神峰 2025-10-15 15:35:27 +08:00
parent 8bd134d694
commit 68119f3f9e
10 changed files with 165 additions and 92 deletions

View File

@ -295,7 +295,16 @@ const apiurl = {
save: service_fxdd + "/osmoticPressR/artificial/insert",
edit: service_fxdd + "/osmoticPressR/artificial/update",
page: service_fxdd + "/osmoticPressR/artificial/page",
del: service_fxdd + "/osmoticPressR/artificial/del/",
del: service_fxdd + "/osmoticPressR/artificial/delete",
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:{
save: service_fxdd + "/osmoticShiftR/insert",

View File

@ -15,6 +15,8 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const [dmCode, setDmCode] = useState('')
const onFinish = (values) => {
if (mode === 'edit') {
values.updateMstm = values.mstm;
delete values.mstm;
onEdit(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.edit, { ...record, ...values })
}
if (mode === 'save') {
@ -28,7 +30,6 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const getDmList = async () => {
try {
const res = await httppost2(apiurl.gcaqjc.sjtjcx.sycx.list)
setDmCd(res.data)
const sortedData = res.data.sort((a, b) => {
// 判断a、b是否为ZB0开头
const isAZB0 = a.profileCode.startsWith('ZB0');
@ -48,6 +49,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const getStationCode = async () => {
try {
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sycx.list1)
setDmCd(res.data)
const list = []
res?.data?.map((item) => {
const { dvcd, dm } = item
@ -69,14 +71,14 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
const onValuesChange = (v) => {
if ("dvcd" in v) {
// 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[v?.dvcd])
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[v?.dvcd])
}
}

View File

@ -9,7 +9,7 @@ import usePageTable from '../../../../../components/crud/usePageTable2';
import { createCrudService } from '../../../../../components/crud/_';
import { CrudOpRender_text } from '../../../../../components/crud/CrudOpRender';
import { exportFile } from '../../../../../utils/tools.js';
import { httppost5 } from '../../../../../utils/request';
import { httppost2, httppost5 } from '../../../../../utils/request';
import "./index.less"
const Page = () => {
@ -42,7 +42,18 @@ const Page = () => {
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) => {
if (type === 'save') {
refModal.current.showSave();
@ -51,19 +62,25 @@ const Page = () => {
} else if (type === 'view') {
refModal.current.showView(params);
} else if (type === 'del') {
const url = apiurl.gcaqjc.sjtjcx.sjlr.rgjc.del + params.mpcd+'/'+params.mstm
refModal.current.onDeleteGet(url);
const par = { mpcd: params.mpcd, mstm: params.mstm, stcd: params.stcd };
const url = apiurl.gcaqjc.sjtjcx.sjlr.rgjc.del
del(url, par);
}
}
const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.page).find_noCode);
const exportExcel = () => {
let pageSo = {
pageNumber: tableProps.pagination.current,
pageSize:tableProps.pagination.pageSize
}
let params = {
...searchVal,
pageSo
}
httppost5(apiurl.gcaqjc.sjtjcx.ndsytjb.export, params).then(res => {
exportFile(`渗压监测表.xlsx`,res.data)
httppost5(apiurl.gcaqjc.sjtjcx.sjlr.rgjc.export, params).then(res => {
exportFile(`人工录入渗压监测表.xlsx`, res.data)
})
}
useEffect(() => {

View File

@ -38,6 +38,7 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
const [dmList, setDmList] = useState([])
const [codeList, setCodeList] = useState([])
const [dmCode, setDmCode] = useState('')
const [dmCd, setDmCd] = useState([])
const getDmList = async () => {
try {
@ -61,6 +62,7 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
const getStationCode = async () => {
try {
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sycx.list1)
setDmCd(res.data)
const list = []
res?.data?.map((item) => {
const { dvcd, dm } = item
@ -100,6 +102,17 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
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) => {
let dateSo;
@ -153,7 +166,7 @@ const ToolBar = ({ setSearchVal, onSave, storeData, role,exportFile }) => {
options={optionsType}
/>
</Form.Item>
<Form.Item label="监测断面" name="profileCode">
<Form.Item label="监测断面" name="dm">
<NormalSelect
allowClear
style={{ width: "150px" }}

View File

@ -3,41 +3,36 @@ import { Form, Button, Input, Row, Col, DatePicker, Upload,message,Image,Modal,R
import { formItemLayout, btnItemLayout } from '../../../../../components/crud/FormLayoutProps';
import apiurl from '../../../../../service/apiurl';
import NormalSelect from '../../../../../components/Form/NormalSelect';
import { httppost2 } from '../../../../../utils/request';
import { httppost2,httpget2 } from '../../../../../utils/request';
import moment from 'moment';
const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
console.log("record",record);
const [form] = Form.useForm();
const [dmList, setDmList] = useState([])
const [codeList, setCodeList] = useState([])
const [dmCode,setDmCode] = useState('')
const onFinish = (values) => {
if (mode === 'edit') {
onEdit(apiurl.gcaqjc.sjtjcx.sjlr.wyjc.edit,{...record,...values})
values.newUpdateCd = values.cd;
values.newUpdateTm = values.tm;
delete values.cd;
delete values.tm;
onEdit(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.edit,{...record,...values})
}
if (mode === 'save') {
onSave(apiurl.gcaqjc.sjtjcx.sjlr.wyjc.save,values)
onSave(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.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 () => {
try {
const res = await httppost2(apiurl.gcaqjc.sjtjcx.wycx.list)
setCodeList(res.data);
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.list)
if (res.code == 200) {
setCodeList(res.data.map(s=>({label:s.cd,value:s.cd})));
}
} catch (error) {
console.log(error);
}
@ -45,7 +40,6 @@ const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
useEffect(()=>{
getDmList()
getStationCode()
}, [])
@ -75,7 +69,7 @@ const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => {
disabled={mode==='view'}
allowClear
style={{ width: "100%" }}
options={codeList.map(s=>({label:s.cd,value:s.cd}))}
options={codeList}
/>
</Form.Item>
<Form.Item

View File

@ -8,6 +8,8 @@ import apiurl from '../../../../../service/apiurl';
import usePageTable from '../../../../../components/crud/usePageTable2';
import { createCrudService } from '../../../../../components/crud/_';
import { CrudOpRender_text } from '../../../../../components/crud/CrudOpRender';
import { exportFile } from '../../../../../utils/tools.js';
import { httppost2, httppost5 } from '../../../../../utils/request';
import "./index.less"
const Page = () => {
const role = useSelector(state => state.auth.role);
@ -40,7 +42,18 @@ const Page = () => {
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) => {
if (type === 'save') {
refModal.current.showSave();
@ -49,21 +62,36 @@ const Page = () => {
} else if (type === 'view') {
refModal.current.showView(params);
} else if (type === 'del') {
const url = apiurl.gcaqjc.sjtjcx.sjlr.wyjc.del + params.cd+'/'+params.tm
refModal.current.onDeleteGet(url);
const par = { cd: params.cd, tm: params.tm};
const url = apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.del
del(url, par);
}
}
const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcaqjc.sjtjcx.sjlr.wyjc.page).find_noCode);
const exportExcel = () => {
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(()=>{
if (searchVal) {
const params = {
search: {
...searchVal,
}
};
search(params)
}
}, [searchVal])
@ -75,6 +103,7 @@ const Page = () => {
setSearchVal={setSearchVal}
onSave={command('save')}
role={role}
exportFile={exportExcel}
/>
</Card>
<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 { config } from '../../../../../config';
import moment from 'moment';
import { httppost2 } from '../../../../../utils/request';
import { httppost2,httpget2 } from '../../../../../utils/request';
import apiurl from '../../../../../service/apiurl';
const { RangePicker } = DatePicker;
const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
@ -50,8 +50,10 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
const getStationCode = async () => {
try {
const res = await httppost2(apiurl.gcaqjc.sjtjcx.wycx.list)
const res = await httpget2(apiurl.gcaqjc.sjtjcx.sjlr.rgwyjc.list)
if (res.code == 200) {
setCodeList(res.data.map(s=>({label:s.cd,value:s.cd})));
}
} catch (error) {
console.log(error);
}
@ -130,10 +132,10 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role,exportFile }) => {
options={optionsType}
/>
</Form.Item>
<Form.Item label="测点编号" name="stationCode">
<Form.Item label="测点编号" name="cd">
<NormalSelect
allowClear
style={{ width: "150px" }}
style={{ width: "200px" }}
options={codeList}
/>
</Form.Item>

View File

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

View File

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