/*
|
* @Company: hugeInfo
|
* @Author: lwh
|
* @Date: 2022-03-29 14:11:57
|
* @LastEditTime: 2022-11-25 14:11:56
|
* @LastEditors: ldh
|
* @Version: 1.0.0
|
* @Description: 司法联动
|
*/
|
import React, { useEffect, useState } from 'react';
|
import { useNavigate, useLocation, useSearchParams } from 'react-router-dom';
|
import { Form, Typography } from 'antd';
|
import Page from '../../components/Page';
|
import * as $$ from '../../utils/utility';
|
import TableView from '../../components/TableView';
|
import TableSearch from '../../components/TableSearch';
|
import publicDataStatus from '../../status/publicData';
|
|
// 司法联动列表
|
function getJudicialLinkageDataApi(submitData) {
|
return $$.ax.request({ url: 'caseInfo/pageCaseTotal', type: 'get', data: submitData, service: 'mediate' });
|
}
|
|
const { Link } = Typography;
|
|
const JudicialLinkage = () => {
|
let location = useLocation();
|
|
let navigate = useNavigate();
|
|
const [searchParams] = useSearchParams();
|
|
const [form] = Form.useForm();
|
|
// 搜索
|
const [search, setSearch] = useState({ page: 1, size: 10, canal: '22_00001-4' });
|
|
// 数据
|
const [data, setData] = useState({ tableData: [] });
|
|
// 调解组织select框数据
|
const [adjustOrgData, setAdjustOrgData] = useState([]);
|
|
// 查看,签收跳转
|
function handleJump(record) {
|
$$.setSessionStorage(location.pathname, {
|
search,
|
title: record.caseNo,
|
breadcrumbData: [{ title: '司法联动', url: location.pathname }, { title: '查看' }],
|
tableActive: record.id,
|
pageFrom: 'mediateAll',
|
});
|
navigate(`/mediate/caseDetail?caseId=${record.id}&judicialId=${record.judicId}&back=${location.pathname}`);
|
}
|
|
// 搜索 or 重置
|
function handleSearch(type, data) {
|
if (type === 'recovery') {
|
// 案件详情返回时恢复跳转前查询
|
let obj = { ...data };
|
if (obj.acceptTime) {
|
obj.acceptTime = [$$.myMoment(obj.acceptStart), $$.myMoment(obj.acceptEnd)];
|
}
|
form.setFieldsValue(obj);
|
getJudicialLinkageData(data);
|
return;
|
}
|
if (type === 'reset') {
|
form.resetFields();
|
getJudicialLinkageData({ page: 1, size: 10, canal: '22_00001-4' });
|
return;
|
}
|
if (type === 'search' || type === 'changePage') {
|
let values = form.getFieldsValue();
|
$$.changeTimeFormat(values, 'acceptTime', 'acceptStart', 'acceptEnd');
|
let obj = type === 'changePage' ? { page: data[0], size: data[1] } : { page: 1 };
|
getJudicialLinkageData({ ...search, ...values, ...obj });
|
}
|
}
|
|
// 获取数据
|
async function getJudicialLinkageData(submitData) {
|
global.setSpinning(true);
|
const res = await getJudicialLinkageDataApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
setData({ total: res.data.totalElements, tableData: res.data.content });
|
setSearch(submitData);
|
}
|
}
|
|
// 初始化
|
useEffect(() => {
|
publicDataStatus.getUnitData((data) => setAdjustOrgData(data));
|
let returnRouteData = $$.getSessionStorage(location.pathname);
|
if (searchParams.get('isBack') && !!returnRouteData) {
|
handleSearch('recovery', returnRouteData.search);
|
} else {
|
handleSearch('reset');
|
}
|
if (!!returnRouteData) {
|
$$.clearSessionStorage(location.pathname);
|
}
|
}, []);
|
|
const columns = [
|
{ title: '调解案号', dataIndex: 'caseNo' },
|
{ title: '纠纷受理时间', dataIndex: 'acceptTime' },
|
{ title: '调解进度', dataIndex: 'processName' },
|
{
|
title: '调解结果',
|
dataIndex: 'mediResultName',
|
render: (text, record) =>
|
!text ? '-' : <div className={`public-tag public-tag-${record.mediResult === '22_00025-1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>,
|
},
|
{ title: '调解结束时间', dataIndex: 'mediEndTime' },
|
{ title: '调解组织', dataIndex: 'mediateUnitName' },
|
{ title: '调解员', dataIndex: 'mediator' },
|
{ title: '申请人', dataIndex: 'plaintiffs' },
|
{ title: '被申请人', dataIndex: 'defendants' },
|
{ title: '纠纷发生地', dataIndex: 'addr' },
|
{ title: '调解类型', dataIndex: 'mediTypeName' },
|
{ title: '纠纷类型', dataIndex: 'caseTypeName' },
|
{ title: '申请渠道', dataIndex: 'canalName' },
|
{
|
title: '操作',
|
dataIndex: 'action',
|
width: 50,
|
render: (_, record) => <Link onClick={() => handleJump(record)}>查看</Link>,
|
},
|
];
|
|
return (
|
<Page pageHead={{ title: '司法联动', subtitle: '查看账号下全部的司法联动调解案件' }}>
|
<div className="mediateAll">
|
<div className="pageSearch">
|
<TableSearch
|
labelLength={6}
|
form={form}
|
itemData={[
|
{ type: 'Input', name: 'plaintiffs', label: '申请人' },
|
{ type: 'Input', name: 'defendants', label: '被申请人' },
|
{ type: 'RangePicker', name: 'acceptTime', label: '纠纷受理时间' },
|
{ type: 'Input', name: 'caseNo', label: '调解案号' },
|
{ type: 'Select', name: 'process', label: '调解进度', selectdata: $$.options.process },
|
{ type: 'Select', name: 'mediResult', label: '调解结果', selectdata: $$.options.mediResult },
|
{ type: 'Input', name: 'mediateBookNo', label: '诉前调书号', placeholder: '输入查询诉前调书号' },
|
{ type: 'Input', name: 'addr', label: '纠纷发生地' },
|
{ type: 'TreeSelect', name: 'mediateUnitId', label: '调解组织', placeholder: '查询调解组织名称', treedata: adjustOrgData },
|
{ type: 'Input', name: 'mediateNo', label: '诉前调解案号', placeholder: '输入查询诉前调解案号' },
|
{ type: 'Select', name: 'caseType', label: '纠纷类型', selectdata: $$.caseOptions.caseCause },
|
{ type: 'Input', name: 'mediator', label: '调解员' },
|
]}
|
handleReset={() => handleSearch('reset')}
|
handleSearch={() => handleSearch('search')}
|
/>
|
</div>
|
<div className="pageTable">
|
<TableView
|
showHeader
|
title="查询结果"
|
columns={columns}
|
dataSource={data.tableData}
|
pagination={{
|
current: search.page,
|
pageSize: search.size,
|
total: data.total,
|
onChange: (page, pageSize) => handleSearch('changePage', [page, pageSize]),
|
}}
|
rowClassName={(record) => (record.id === data.tableActive ? 'tableRowActive' : '')}
|
/>
|
</div>
|
</div>
|
</Page>
|
);
|
};
|
|
export default JudicialLinkage;
|