import { connect } from 'react-redux';
import React, { useEffect, useState } from 'react';
import { Button, Modal, Form, Input, Divider, Spin, Select, DatePicker, Tooltip, Table } from 'antd'
import { ExclamationCircleOutlined } from '@ant-design/icons';
import { roadSpotList, roadSpotDetail, roadSpotPrepare, confirmRoadSpot, exportSpotRode } from '../actions/spotCheck';
import moment from 'moment'
import Adjustment from '../components/adjustment'
import '../components/maintenanceTable.less'
const MaintenanceSpotCheck = (props) => {
const { dispatch, user, loading, reportDetail, reportDetailLoading, detailLoading } = props
const [data, setData] = useState()//外层表格的数据
const [vis, setVis] = useState(false)//模态框的显示与隐藏变量
const [count, setCount] = useState(0)
const [page, setPage] = useState(1)
const [depName, setDepName] = useState('')
const [total, setTotal] = useState(0)
const [previewId, setPreviewId] = useState(0)
const [reportData, setReportData] = useState([])
const [detailList, setDetailList] = useState([])
const [detailVisible, setDetailVisible] = useState(false)
const [dateRange, setDateRange] = useState([]);
const { RangePicker } = DatePicker
const [expandedRowKeys, setExpandedRowKeys] = useState([]);
const [isAdjustment, setIsAdjustment] = useState(false);
const [editData, setEditData] = useState({});
//里层列名
const columns = [
{
title: '抽查日期',
key: 'date',
dataIndex: 'date',
render: (_, record) => record?.date && moment(record?.date).format('YYYY-MM-DD') || '--'
},
{
title: '抽查县道比例(%)',
key: 'countyPercentage',
dataIndex: 'countyPercentage',
},
{
title: '抽查县道',
key: 'spotCountyRoadCount',
dataIndex: 'spotCountyRoadCount',
},
{
title: '抽查乡道',
key: 'spotTownRoadCount',
dataIndex: 'spotTownRoadCount',
},
{
title: '抽查村道',
key: 'spotVillageRoadCount',
dataIndex: 'spotVillageRoadCount',
},
{
title: '操作',
key: 'operation',
dataIndex: 'operation',
render: (_, record) =>
导出
},
]
const queryData = (data = {}) => {
dispatch(roadSpotList(data)).then(res => {
if (res.success) {
setReportData(res?.payload.data)
}
})
}
const detailData = (data = {}) => {
dispatch(roadSpotDetail(data)).then(res => {
if (res.success) {
setDetailList(res?.payload.data)
}
})
}
useEffect(() => {
queryData()
}, [])
const [form] = Form.useForm()
const extractHandler = () => {
form.validateFields(['percentValue']).then(async (values) => {
if (Number(values.percentValue) > 0) {
const res = await dispatch(roadSpotPrepare({ countyPercentage: values.percentValue }))
setPreviewId(res?.payload.data?.previewId)
form.setFieldsValue({
'spotCountyRoadCount': res?.payload.data?.spotCountyRoadCount,
'spotTownRoadCount': res?.payload.data?.spotTownRoadCount,
'spotVillageRoadCount': res?.payload.data?.spotVillageRoadCount,
})
}
})
}
const cancelHandler = () => {
setVis(false)
form.resetFields()
}
return (
{
setDateRange(dateString)
}} style={{ marginRight: 20 }} />
{
if (expanded) {
setExpandedRowKeys([record?.id])
detailData({ previewId: record?.id })
} else {
setExpandedRowKeys([])
}
},
expandedRowRender: (record) => (
< Table
pagination={{
pageSize: 10,
defaultPageSize: 10,
showSizeChanger: false,
}}
loading={detailLoading}
style={{ margin: 0 }}
dataSource={detailList}
columns={
[
{
title: '道路类型', key: 'level', dataIndex: 'level', render: (_, r) => r?.road?.level ? (r?.road?.level + '道') : '--'
},
{ title: '道路名称', key: 'routeName', dataIndex: 'routeName', render: (_, r) => r.road?.routeName || '--' },
{ title: '道路代码', key: 'routeCode', dataIndex: 'routeCode', render: (_, r) => r.road?.routeCode || '--' },
{ title: '路段序号', key: 'sectionNo', dataIndex: 'sectionNo', render: (_, r) => r.road?.sectionNo || '--' },
{ title: '起点地名', key: 'startingPlaceName', dataIndex: 'startingPlaceName', render: (_, r) => r.road?.startingPlaceName || '--' },
{ title: '止点地名', key: 'stopPlaceName', dataIndex: 'stopPlaceName', render: (_, r) => r.road?.stopPlaceName || '--' },
{ title: '里程', key: 'chainageMileage', dataIndex: 'chainageMileage', render: (_, r) => r.road?.chainageMileage || '--' },
{ title: '养护次数(次)', key: 'maintenanceCount', dataIndex: 'maintenanceCount' },
{
title: '操作',
key: 'action',
dataIndex: 'action',
render: (_, r) =>
},
]}
/>
),
}}
pagination={{
total: reportData?.length || 0,
pageSize: 10,
current: page || 1,
defaultPageSize: 10,
showSizeChanger: false,
onChange: (page, pageSize) => {
setPage(page)
}
}}
rowKey={(record) => { return record.id }}
// toolBarRender={false}
// search={false}
/>
{
vis && {
dispatch(confirmRoadSpot({ previewId })).then(res => {
if (res.success) {
setPage(1)
setExpandedRowKeys([])
queryData({ startTime: dateRange[0], endTime: dateRange[1] })
form.resetFields()
setVis(false)
}
});
}}>
抽取县道比例(%)
}
name="percentValue"
rules={[
{ required: true, message: '请选择抽取比例' },
// {
// pattern: /^(100|\d{1,2})(\.\d{1,2})?$/,
// message: '请输入有效的比例',
// },
]}
>
}
{
isAdjustment &&
{
setEditData({})
setIsAdjustment(false)
}}
onOk={() => {
detailData({ previewId: expandedRowKeys[0] })
}}
/>
}
)
}
function mapStateToProps (state) {
const { auth, roadSpotList, reportDetail, roadSpotDetail } = state
//('state1', state)
return {
user: auth.user,
loading: roadSpotList?.isRequesting,
detailLoading: roadSpotDetail?.isRequesting,
reportDetailLoading: reportDetail.isRequesting,
reportDetail: reportDetail.data,
}
}
export default connect(mapStateToProps)(MaintenanceSpotCheck);