近1h雨量(mm)
diff --git a/src/views/sq/qth/hdsq/index.js b/src/views/sq/qth/hdsq/index.js
new file mode 100644
index 000000000..4570c1e1c
--- /dev/null
+++ b/src/views/sq/qth/hdsq/index.js
@@ -0,0 +1,54 @@
+import React, { useEffect, useState } from 'react'
+import { reservoirlist, list} from "../../../../service/sssq";
+import Sssw from './sssw';
+import Sjcx from '../../../Home/MapCtrl/components/Sqjcsj/index'
+import "./index.less"
+import { helpers } from '@turf/turf';
+export default function Sksq() {
+ const [tableData, setTableData] = useState([])
+ const [tableData1, setTableData1] = useState([])
+ const getData = async (params) => {
+ setTableData(await reservoirlist(params));
+ }
+ const getData1 = async (params) => {
+ setTableData1(await list(params));
+ }
+ useEffect(() => {
+ let option = {
+ sources: ["SW", "SK"],
+ args: "",
+ };
+ getData(option)
+ getData1({args: "",sources: ["SH", "SW"],})
+ }, [])
+ return (
+
+
+
+
+
+

+
实时水位
+
+
站点:{tableData[0]?.stnm}
+
+
+
+
+
+
+
+
+

+
数据查询
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/views/sq/qth/hdsq/index.less b/src/views/sq/qth/hdsq/index.less
new file mode 100644
index 000000000..e1f623d93
--- /dev/null
+++ b/src/views/sq/qth/hdsq/index.less
@@ -0,0 +1,108 @@
+.content-sk{
+ display: flex;
+ column-gap: 10px;
+ height: calc(100vh - 90px);
+ .comomn-title{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20px 10px;
+ }
+ .content-left{
+ width: 550px;
+ height: 100%;
+ background-color: #fff;
+ .ssjc{
+ .root {
+ display: flex;
+ color: #333;
+ padding: 1rem 1rem 1rem 1rem;
+ }
+
+ .realinfo {
+ width: 100%;
+ margin-right: 1rem
+ }
+
+ .dataTm {
+ padding: 0.4rem 1rem;
+ border-radius: 0.4rem;
+ margin-bottom: 0.5rem;
+ font-size: 0.8rem;
+ }
+
+ .online, .offline{
+ color:#fff;
+ line-height:22px;
+ font-size:14px;
+ letter-spacing: 1px;
+ }
+
+ .online {
+ border: 1px solid #9ccc65;
+ background-color: #33691e;
+ }
+ .report-time,.rain-report{
+ display: flex;
+ width: 70%;
+ align-items: center;
+ color: #689fff;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.5;
+ column-gap: 5px;
+ margin-bottom: 10px;
+ justify-content: center;
+ padding: 7px 0;
+ background-color: #ecf5ff;
+ border: 1px solid #cde5ff;
+ border-radius: 5px;
+ margin-left: 10%;
+ }
+
+ .offline {
+ border: 1px solid #ef5350;
+ background-color: #b71c1c;
+ }
+
+ .infoItem {
+ border-bottom: 1px dashed #aaa;
+ display: flex;
+ font-size: 14px;
+ line-height: 1.8;
+ margin-bottom: 0.5rem;
+
+ & > .row-key{
+ width: 9rem;
+ line-height:30px;
+ }
+
+ & > .row-value{
+ width: 50%;
+ text-align: right;
+ font-weight: bold;
+ margin-right: 0.5rem;
+ flex-grow: 1;
+ }
+
+ & > .row-unit{
+ width: 3rem;
+ flex-shrink: 0;
+ }
+ }
+
+
+ }
+ }
+ .content-right{
+ flex: 1;
+ height: 100%;
+ background-color: #fff;
+ .sjcx-content{
+ padding: 10px;
+ }
+ }
+ .pic-container{
+ padding: 10px;
+ }
+}
\ No newline at end of file
diff --git a/src/views/sq/qth/hdsq/sssw.js b/src/views/sq/qth/hdsq/sssw.js
new file mode 100644
index 000000000..b45a46ae9
--- /dev/null
+++ b/src/views/sq/qth/hdsq/sssw.js
@@ -0,0 +1,66 @@
+import React from 'react'
+import moment from 'moment'
+import MyImg from '../../../Home/MapCtrl/components/Skssjc/myImg'
+export default function Sssw({data}) {
+ return (
+
+
+
+
水位上报时间: {data?.tm}
+
+
+
监测水位:
+
{data?.rz ? data?.rz.toFixed(2):'-'}
+
m
+
+
+
+
设计洪水位:
+
{data?.desFloodLev ? data?.desFloodLev.toFixed(2):'-'}
+
m
+
+
+
+
正常蓄水位:
+
{data.normWatLev ? data.normWatLev.toFixed(2):'-'}
+
m
+
+
+
+
汛限水位:
+
{data.flLowLimLev ? data.flLowLimLev.toFixed(2):'-'}
+
m
+
+
+
+
死水位:
+
{data.deadLev ? data.deadLev.toFixed(2):'-'}
+
m
+
+
+
坝顶高程:
+
{data.crestElev}
+
{ data.crestElev ? "m" : "-"}
+
+
+
+
水库当前库容:
+
{data.nowCap}
+
万m³
+
+
+
+
兴利库容:
+
{data.benResCap}
+
万m³
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/views/sq/qth/sksq/index.js b/src/views/sq/qth/sksq/index.js
new file mode 100644
index 000000000..0ea1dac41
--- /dev/null
+++ b/src/views/sq/qth/sksq/index.js
@@ -0,0 +1,49 @@
+import React, { useEffect, useState } from 'react'
+import { reservoirlist, } from "../../../../service/sssq";
+import Sssw from './sssw';
+import Sjcx from '../../../Home/MapCtrl/components/Sksjcx/index'
+import "./index.less"
+import { helpers } from '@turf/turf';
+export default function Sksq() {
+ const [tableData, setTableData] = useState([])
+ const getData = async (params) => {
+ setTableData(await reservoirlist(params));
+ }
+ useEffect(() => {
+ let option = {
+ sources: ["SW", "SK"],
+ args: "",
+ };
+ getData(option)
+ }, [])
+ return (
+
+
+
+
+
+

+
实时水位
+
+
站点:{tableData[0]?.stnm}
+
+
+
+
+
+
+
+
+

+
数据查询
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/views/sq/qth/sksq/index.less b/src/views/sq/qth/sksq/index.less
new file mode 100644
index 000000000..e1f623d93
--- /dev/null
+++ b/src/views/sq/qth/sksq/index.less
@@ -0,0 +1,108 @@
+.content-sk{
+ display: flex;
+ column-gap: 10px;
+ height: calc(100vh - 90px);
+ .comomn-title{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20px 10px;
+ }
+ .content-left{
+ width: 550px;
+ height: 100%;
+ background-color: #fff;
+ .ssjc{
+ .root {
+ display: flex;
+ color: #333;
+ padding: 1rem 1rem 1rem 1rem;
+ }
+
+ .realinfo {
+ width: 100%;
+ margin-right: 1rem
+ }
+
+ .dataTm {
+ padding: 0.4rem 1rem;
+ border-radius: 0.4rem;
+ margin-bottom: 0.5rem;
+ font-size: 0.8rem;
+ }
+
+ .online, .offline{
+ color:#fff;
+ line-height:22px;
+ font-size:14px;
+ letter-spacing: 1px;
+ }
+
+ .online {
+ border: 1px solid #9ccc65;
+ background-color: #33691e;
+ }
+ .report-time,.rain-report{
+ display: flex;
+ width: 70%;
+ align-items: center;
+ color: #689fff;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.5;
+ column-gap: 5px;
+ margin-bottom: 10px;
+ justify-content: center;
+ padding: 7px 0;
+ background-color: #ecf5ff;
+ border: 1px solid #cde5ff;
+ border-radius: 5px;
+ margin-left: 10%;
+ }
+
+ .offline {
+ border: 1px solid #ef5350;
+ background-color: #b71c1c;
+ }
+
+ .infoItem {
+ border-bottom: 1px dashed #aaa;
+ display: flex;
+ font-size: 14px;
+ line-height: 1.8;
+ margin-bottom: 0.5rem;
+
+ & > .row-key{
+ width: 9rem;
+ line-height:30px;
+ }
+
+ & > .row-value{
+ width: 50%;
+ text-align: right;
+ font-weight: bold;
+ margin-right: 0.5rem;
+ flex-grow: 1;
+ }
+
+ & > .row-unit{
+ width: 3rem;
+ flex-shrink: 0;
+ }
+ }
+
+
+ }
+ }
+ .content-right{
+ flex: 1;
+ height: 100%;
+ background-color: #fff;
+ .sjcx-content{
+ padding: 10px;
+ }
+ }
+ .pic-container{
+ padding: 10px;
+ }
+}
\ No newline at end of file
diff --git a/src/views/sq/qth/sksq/sssw.js b/src/views/sq/qth/sksq/sssw.js
new file mode 100644
index 000000000..b45a46ae9
--- /dev/null
+++ b/src/views/sq/qth/sksq/sssw.js
@@ -0,0 +1,66 @@
+import React from 'react'
+import moment from 'moment'
+import MyImg from '../../../Home/MapCtrl/components/Skssjc/myImg'
+export default function Sssw({data}) {
+ return (
+
+
+
+
水位上报时间: {data?.tm}
+
+
+
监测水位:
+
{data?.rz ? data?.rz.toFixed(2):'-'}
+
m
+
+
+
+
设计洪水位:
+
{data?.desFloodLev ? data?.desFloodLev.toFixed(2):'-'}
+
m
+
+
+
+
正常蓄水位:
+
{data.normWatLev ? data.normWatLev.toFixed(2):'-'}
+
m
+
+
+
+
汛限水位:
+
{data.flLowLimLev ? data.flLowLimLev.toFixed(2):'-'}
+
m
+
+
+
+
死水位:
+
{data.deadLev ? data.deadLev.toFixed(2):'-'}
+
m
+
+
+
坝顶高程:
+
{data.crestElev}
+
{ data.crestElev ? "m" : "-"}
+
+
+
+
水库当前库容:
+
{data.nowCap}
+
万m³
+
+
+
+
兴利库容:
+
{data.benResCap}
+
万m³
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/views/sq/qth/ssyq/index.js b/src/views/sq/qth/ssyq/index.js
new file mode 100644
index 000000000..38c5c4b69
--- /dev/null
+++ b/src/views/sq/qth/ssyq/index.js
@@ -0,0 +1,72 @@
+import React, { useEffect, useState } from 'react'
+import { reservoirlist, } from "../../../../service/sssq";
+import { message } from 'antd';
+import Sssw from './sssw';
+import Sjcx from '../../../Home/MapCtrl/components/Jcsj/index'
+import "./index.less"
+import { httppost2 } from '../../../../utils/request';
+import apiurl from '../../../../service/apiurl';
+import { helpers } from '@turf/turf';
+export default function Sksq() {
+ const [tableData, setTableData] = useState([])
+ const [tableData1, setTableData1] = useState([])
+ const getData = async (params) => {
+ setTableData(await reservoirlist(params));
+ }
+ const getData1 = async () =>{
+ const { data, code, msg } = await httppost2(apiurl.home.yq)
+ if (code !== 200) {
+ message.error(msg || '请求失败');
+ }
+ const list = data.map((i)=>{
+ return {
+ id : i.stcd,
+ ...i,
+ drp : i.drp ,//i.v,
+ }
+ })
+ setTableData1(list||[])
+
+ }
+ useEffect(() => {
+ let option = {
+ sources: ["SW", "SK"],
+ args: "",
+ };
+ getData(option)
+ }, [])
+
+ useEffect(() => {
+ getData1()
+ }, [])
+ return (
+
+
+
+
+
+

+
实时雨情
+
+
站点:{tableData[0]?.stnm}
+
+
+
+
+
+
+
+
+

+
数据查询
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/views/sq/qth/ssyq/index.less b/src/views/sq/qth/ssyq/index.less
new file mode 100644
index 000000000..9159b4b8b
--- /dev/null
+++ b/src/views/sq/qth/ssyq/index.less
@@ -0,0 +1,82 @@
+.content-sk{
+ display: flex;
+ column-gap: 10px;
+ height: calc(100vh - 90px);
+ .comomn-title{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20px 10px;
+ }
+ .content-left{
+ width: 550px;
+ height: 100%;
+ background-color: #fff;
+ .ssjc{
+ .root {
+ display: flex;
+ color: #333;
+ padding: 1rem 1rem 1rem 1rem;
+ .drp-content{
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+ column-gap: 40px;
+ margin-top: 40px;
+ }
+ .drp-item{
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-around;
+ width: 220px;
+ height: 160px;
+ background-color: #eaf4fe;
+ margin-bottom: 40px;
+ .value{
+ font-size: 20px;
+ font-weight: bold;
+ }
+ .name{
+ font-size: 16px;
+ color: #40a9ff;
+ }
+ }
+ }
+
+
+ .report-time,.rain-report{
+ display: flex;
+ width: 70%;
+ align-items: center;
+ color: #689fff;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.5;
+ column-gap: 5px;
+ margin-bottom: 10px;
+ justify-content: center;
+ padding: 7px 0;
+ background-color: #ecf5ff;
+ border: 1px solid #cde5ff;
+ border-radius: 5px;
+ margin-left: 10%;
+ }
+
+
+
+
+ }
+ }
+ .content-right{
+ flex: 1;
+ height: 100%;
+ background-color: #fff;
+ .sjcx-content{
+ padding: 10px;
+ }
+ }
+ .pic-container{
+ padding: 10px;
+ }
+}
\ No newline at end of file
diff --git a/src/views/sq/qth/ssyq/sssw.js b/src/views/sq/qth/ssyq/sssw.js
new file mode 100644
index 000000000..e5883e0d0
--- /dev/null
+++ b/src/views/sq/qth/ssyq/sssw.js
@@ -0,0 +1,43 @@
+import React from 'react'
+import moment from 'moment'
+import MyImg from '../../../Home/MapCtrl/components/Skssjc/myImg'
+export default function Sssw({data}) {
+ return (
+
+
+
+
雨情最新上报时间: {data?.tm}
+
+
+
+
+
+ )
+}
diff --git a/src/views/sz/pxjhgl/form.js b/src/views/sz/pxjhgl/form.js
new file mode 100644
index 000000000..0e03b7071
--- /dev/null
+++ b/src/views/sz/pxjhgl/form.js
@@ -0,0 +1,395 @@
+import React,{useEffect,useState,useMemo,useRef} from 'react';
+import { Form, Button, Input, Row,Upload, Col, Table, DatePicker, InputNumber,message,Image,Modal,Typography ,Popconfirm } from 'antd';
+import { DeleteOutlined,FileWordOutlined,FilePdfOutlined,FileZipOutlined,FileExcelOutlined } from '@ant-design/icons';
+import { formItemLayout, btnItemLayout } from '../../../components/crud/FormLayoutProps';
+import apiurl from '../../../service/apiurl';
+import NormalSelect from '../../../components/Form/NormalSelect';
+import "./index.less"
+import moment from 'moment';
+import { createCrudService } from '../../../components/crud/_';
+const { RangePicker } = DatePicker
+const { Dragger } = Upload;
+const url = "http://223.75.53.141:9102/test.by-lyf.tmp"
+
+const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
+
+ const types = [
+ {
+ label: "水利",
+ value:1
+ },
+ {
+ label: "岗前培训",
+ value:2
+ },{
+ label: "在岗培训",
+ value:3
+ },{
+ label: "政治学习教育",
+ value:4
+ },{
+ label: "其他",
+ value:5
+ },
+ ]
+ const [details, setDetails] = useState([])
+
+
+
+
+
+
+
+ const [form] = Form.useForm();
+ const [fileList, setFileList] = useState([]) //上传文件列表
+ const [fileIds, setFileIds] = useState([])
+ const [iframeSrc, setIframeSrc] = useState('')
+ const [pdfViewOPen, setPdfViewOPen] = useState(false)
+
+ const [loading, setLoading] = useState(false)
+ /**
+ * @description 获取查看时文件
+ * @param {*} type
+ * @returns
+ */
+ const getFileInfo = (params) => {
+ createCrudService(apiurl.fxzb.qsdw.zq.getFile).delGet({ teamId: params.teamId }).then(res => {
+ if (res.code === 200) {
+ let fileArr = res.data?.files.map(item => {
+ return {
+ name: item.fileName,
+ response: {
+ data: {
+ filePath: item.filePath,
+ fileId:item.fileId
+ }
+ },
+ }
+ })
+ setFileList(fileArr)
+ const result = res.data?.details.map(item => ({ ...item, key: item.detailId }))
+ console.log("resss",result);
+
+ setDetails(result)
+ }
+ })
+ }
+ /**
+ * @description 文件下载
+ * @param {String} params 文件fileId
+ */
+ const download = (params) => {
+ let downloadLink = document.createElement("a");
+ downloadLink.href = `http://local.gunshiiot.com:18083/gunshiApp/xyt/rescue/team/file/download/${params}`;
+ downloadLink.download = `${params.fileName}`;
+ downloadLink.style.display = "none";
+ // 将链接添加到页面中
+ document.body.appendChild(downloadLink);
+
+ // 模拟点击事件,开始下载
+ downloadLink.click();
+ }
+ /**
+ * @description 上传图片
+ * @param {string} file 上传的文件
+ */
+ const fileChange = (info) => {
+ if (info.file.status === "done") {
+ setLoading(false);
+ }
+ if (info.file.status === "uploading") {
+ setLoading(true);
+ }
+ if (info.file.status === "error") {
+ message.error("文件上传失败")
+ setLoading(false);
+ }
+ let fileIds = info.fileList.map(file => {
+ return file.response?.data?.fileId
+ })
+ setFileIds(fileIds)
+ setFileList(info.fileList)
+}
+ /**
+ * @description pdf文件预览
+ * @param {String} params 文件预览url
+ */
+ const viewPdf = (params) => {
+ setIframeSrc(params)
+ setPdfViewOPen(true)
+ }
+
+
+ const onfinish = () => {
+ let values = form.getFieldsValue();
+ values.details = details;
+ values.validStartDate = values.dateRangeSo&&moment(values.dateRangeSo[0]).format("YYYY-MM-DD")
+ values.validEndDate = values.dateRangeSo&&moment(values.dateRangeSo[1]).format("YYYY-MM-DD")
+ if (mode === 'edit') {
+ let oldFiles = fileList.map(item => item.response?.data?.fileId )
+ values.fileIds = oldFiles;
+ values.teamId = record.teamId;
+ onEdit(apiurl.fxzb.qsdw.zq.edit,values)
+ }
+ if (mode === 'save') {
+ values.fileIds = fileIds
+ onSave(apiurl.fxzb.qsdw.zq.save,values)
+ }
+ }
+
+ /**
+ * @description 删除上传的图片
+ * @param {string} id 删除的id
+ */
+ const deleteFile = (fileId) => {
+ console.log(fileId);
+ let filterFile = fileList.filter(item => item.response?.data?.fileId !== fileId);
+ setFileList(filterFile)
+ }
+ useEffect(()=>{
+ if (record.teamId ) {
+ getFileInfo(record)
+ }
+ }, [record])
+
+ useEffect(() => {
+ if (mode !== "save") {
+ let dataSo = [
+ record.validStartDate? moment(record.validStartDate):'',
+ record.validEndDate? moment(record.validEndDate): ''
+ ]
+
+ form.setFieldsValue({...record,dateRangeSo:dataSo})
+
+ }
+
+ }, [record,mode])
+
+ return (
+ <>
+
基本信息
+ {/*
*/}
+
+
+ 队伍明细:(共计{details?.length}人)
+
+
{
+ setPdfViewOPen(false)
+ }}
+ >
+
+
+ >
+ );
+}
+
+export default ModalForm;
diff --git a/src/views/sz/pxjhgl/index.js b/src/views/sz/pxjhgl/index.js
new file mode 100644
index 000000000..31acdb9ff
--- /dev/null
+++ b/src/views/sz/pxjhgl/index.js
@@ -0,0 +1,111 @@
+import React, { Fragment, useRef, useMemo,useEffect,useState } from 'react';
+import { useSelector } from 'react-redux';
+import BasicCrudModal from '../../../components/crud/BasicCrudModal';
+import { Table, Card,Modal,Form,Input,Button,Row,Col,message } from 'antd';
+import ToolBar from './toolbar';
+import ModalForm from './form';
+import apiurl from '../../../service/apiurl';
+import usePageTable from '../../../components/crud/usePageTable2';
+import { createCrudService } from '../../../components/crud/_';
+import {CrudOpRender_text} from '../../../components/crud/CrudOpRender';
+
+const Page = () => {
+ const role = useSelector(state => state.auth.role);
+ const editBtn = role?.rule?.find(item => item.menuName == "编辑") || true;
+ const viewBtn = role?.rule?.find(item => item.menuName == "查看") || true;
+ const delBtn = role?.rule?.find(item => item.menuName == "删除") || true;
+ const refModal = useRef();
+ const [searchVal, setSearchVal] = useState(false)
+ const [isFetch, setIsFetch] = useState(false)
+ const columns = [
+ { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" },
+ { title: '培训班名称', key: 'teamName', dataIndex: 'teamName', width: 200, ellipsis: true },
+ {
+ title: '计划培训周期', key: 'personCount', dataIndex: 'personCount', width: 200,
+ },
+ { title: '主办单位', key: 'address', dataIndex: 'address', width: 200 },
+ {
+ title: '培训内容', key: 'managementUnit', dataIndex: 'managementUnit', width: 200,ellipsis: true
+ },
+ { title: '培训地点', key: 'teamLeader', dataIndex: 'teamLeader', width: 150, ellipsis: true },
+ { title: '填报人', key: 'phone', dataIndex: 'phone', width: 150, ellipsis: true },
+
+ {
+ title: '操作', key: 'operation', width: 300, fixed: 'right',align: 'center',
+ render: (value, row, index) => (
+
() => command(cmd)(row)} />)
+ },
+ ];
+
+
+ const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]);
+
+ const command = (type) => (params) => {
+ if (type === 'save') {
+ refModal.current.showSave();
+ } else if (type === 'edit') {
+ refModal.current.showEdit({ ...params });
+ } else if (type === 'view') {
+ refModal.current.showView(params);
+ } else if (type === 'del') {
+ refModal.current.onDeleteGet(apiurl.fxzb.qsdw.zq.delete + `/${params.teamId}`);
+ }
+ }
+
+
+ const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.fxzb.qsdw.zq.page).find_noCode);
+
+ /**
+ * @description 处理成功的回调
+ */
+ const successCallback = () => {
+ refresh()
+ setIsFetch(!isFetch)
+}
+
+ useEffect(()=>{
+ const params = {
+ search: {
+ ...searchVal,
+ }
+ };
+ search(params)
+ }, [searchVal])
+
+
+ return (
+ <>
+
+
+
+
{refresh({addvcd:localStorage.getItem('ADCD6')})}}
+ />
+
+ >
+ );
+}
+
+export default Page;
diff --git a/src/views/sz/pxjhgl/index.less b/src/views/sz/pxjhgl/index.less
new file mode 100644
index 000000000..274080320
--- /dev/null
+++ b/src/views/sz/pxjhgl/index.less
@@ -0,0 +1,17 @@
+.basic-info{
+ position: relative;
+ font-size: 16px;
+ margin-bottom: 20px;
+ padding:5px 25px;
+ border-bottom: 1px solid #eee;
+ &::before{
+ position: absolute;
+ top:8px;
+ left:0;
+ content: "";
+ display: block;
+ width: 5px;
+ height: 20px;
+ background-color: #0079fe;
+ }
+}
\ No newline at end of file
diff --git a/src/views/sz/pxjhgl/toolbar.js b/src/views/sz/pxjhgl/toolbar.js
new file mode 100644
index 000000000..9590ae43a
--- /dev/null
+++ b/src/views/sz/pxjhgl/toolbar.js
@@ -0,0 +1,66 @@
+import React, { useEffect,useState } from 'react';
+import { Form, Input, Button, DatePicker } from 'antd';
+import moment from 'moment';
+const { RangePicker } = DatePicker;
+const ToolBar = ({ setSearchVal, onSave, storeData, role = [] }) => {
+ const [form] = Form.useForm();
+ const addBtn = role?.rule?.find(item => item.menuName == "新增")|| true;
+ const searchBtn = role?.rule?.find(item => item.menuName == "查询")|| true;
+ const onFinish = (values) => {
+ let dateSo;
+ if (values.tm) {
+ dateSo = {
+ start: moment(values.tm[0]).format('YYYY'),
+ end: moment(values.tm[1]).format('YYYY')
+ }
+ }
+ delete values.tm
+ setSearchVal({...values, dateSo});
+ }
+
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+ {searchBtn ?
+
+ : null }
+
+
+
+
+ {
+ (onSave && addBtn) ?
+
+
+
+ :null
+ }
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export default ToolBar;
\ No newline at end of file