/*
|
* @Company: hugeInfo
|
* @Author: ldh
|
* @Date: 2023-02-08 14:20:37
|
* @LastEditTime: 2023-02-09 17:43:15
|
* @LastEditors: ldh
|
* @Version: 1.0.0
|
* @Description: 人民调解初审
|
*/
|
import React, { useState, useEffect } from 'react';
|
import './index.less';
|
import { useNavigate, useLocation, useSearchParams } from 'react-router-dom';
|
import { Col, Form, Input, Row, Select, Space, Table, Typography, Button } from 'antd';
|
import Page from '../../../components/Page';
|
import TableView from '../../../components/TableView';
|
import TableSearch from '../../../components/TableSearch';
|
import {
|
ax,
|
changeTimeFormat,
|
clearSessionStorage,
|
dateFormat,
|
getSessionStorage,
|
infoSuccess,
|
modalInfo,
|
myMoment,
|
setSessionStorage,
|
} from '../../../utils/utility';
|
import MyModal from '../../../components/MyModal';
|
|
const { Link } = Typography;
|
|
const { TextArea } = Input;
|
|
function getDataApi(submitData) {
|
return ax.request({ url: 'rmtj/pageApply', type: 'get', data: submitData, service: 'mediate' });
|
}
|
|
// 申请 or 批量申请
|
function sendApplyApi(submitData) {
|
return ax.request({
|
url: Array.isArray(submitData) ? 'rmtj/batchSendApply' : 'rmtj/sendApply',
|
type: Array.isArray(submitData) ? 'post' : 'get',
|
data: submitData,
|
service: 'mediate',
|
});
|
}
|
|
const RmtjLinkage = () => {
|
const location = useLocation();
|
|
const navigate = useNavigate();
|
|
const [searchParams] = useSearchParams();
|
|
const [form] = Form.useForm();
|
|
// 搜索
|
const [search, setSearch] = useState({ page: 1, size: 10 });
|
|
// 数据
|
const [data, setData] = useState({ tableData: [] });
|
|
const [modal, setModal] = useState({ visible: false, submit: {} });
|
|
// 审核记录
|
const [examineHis, setExamineHis] = useState([]);
|
|
// table选择数据
|
const [selectedRowsObj, setSelectedRowsObj] = useState({});
|
|
function handleGetSelectedRowKeys(type) {
|
let arr = [];
|
for (let item in selectedRowsObj) {
|
arr = arr.concat(selectedRowsObj[item][type]);
|
}
|
return arr;
|
}
|
const selectedRowKeys = handleGetSelectedRowKeys('selectedRowKeys');
|
|
const columns = [
|
{ title: '调解案号', dataIndex: 'caseNo' },
|
{
|
title: '调解结果',
|
dataIndex: 'mediResultName',
|
render: (text, record) =>
|
!text ? '-' : <div className={`public-tag public-tag-${record.mediResult === '22_00025-1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>,
|
},
|
{ 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: 'applyTime' },
|
{
|
title: '初审结果',
|
dataIndex: 'firstAuditResultName',
|
render: (text, record) =>
|
!text ? '-' :
|
record.firstAuditResult === '0' ? text :
|
<div className={`public-tag public-tag-${record.firstAuditResult === '1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>
|
},
|
{
|
title: '终审结果',
|
dataIndex: 'endAuditResultName',
|
render: (text, record) =>
|
!text ? '-' :
|
record.endAuditResult === '0' ? text :
|
<div className={`public-tag public-tag-${record.endAuditResult === '1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>
|
},
|
{
|
title: '转入结果',
|
dataIndex: 'rmtjStatusName',
|
render: (text, record) =>
|
!text ? '-' :
|
record.rmtjStatus === '1' || record.rmtjStatus === '2' ? text :
|
<div className={`public-tag public-tag-${record.rmtjStatus === '3' ? 'tagBlue2' : 'tagRed'}`}>{text}</div>
|
},
|
{ title: '转入案号', dataIndex: 'rmtjCaseId' },
|
{
|
title: '操作',
|
dataIndex: 'action',
|
width: 120,
|
render: (_, record) => (
|
<Space>
|
<Link onClick={() => handleCheck(record)}>查看</Link>
|
{record.auditNode !== '1' && record.auditNode !== '2' && record.auditNode !== '3' &&(
|
<Link onClick={() => handleSend(record, 'one')}>申请</Link>
|
)}
|
</Space>
|
),
|
},
|
];
|
|
// 查看
|
function handleCheck(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}`);
|
}
|
|
function handleChangeInput(key, value) {
|
if (Array.isArray(key)) {
|
modal.submit[key[0]] = value[0];
|
modal.submit[key[1]] = value[1];
|
} else {
|
modal.submit[key] = value;
|
}
|
setModal({ ...modal });
|
}
|
|
// 搜索 or 重置
|
function handleSearch(type, data, tableActive) {
|
if (type === 'recovery') {
|
let obj = { ...data };
|
if (obj.applyTime) {
|
obj.applyTime = [myMoment(obj.applyStart), myMoment(obj.applyEnd)];
|
}
|
form.setFieldsValue(obj);
|
getData(data, tableActive);
|
return;
|
}
|
if (type === 'reset') {
|
form.resetFields();
|
getData({ page: 1, size: 10 });
|
return;
|
}
|
if (type === 'search' || type === 'changePage') {
|
let values = form.getFieldsValue();
|
changeTimeFormat(values, 'applyTime', 'applyStart', 'applyEnd');
|
let obj = type === 'changePage' ? { page: data[0], size: data[1] } : { page: 1 };
|
getData({ ...search, ...values, ...obj });
|
}
|
}
|
|
// 获取数据
|
async function getData(submitData, tableActive) {
|
global.setSpinning(true);
|
const res = await getDataApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
setData({ total: res.data.totalElements, tableData: res.data.content, tableActive });
|
setSearch(submitData);
|
}
|
}
|
|
// 申请
|
function handleSend(record, type) {
|
modalInfo({
|
title: '申请转入人民调解系统确认',
|
content: type === 'one' ? `是否申请转入人民调解系统${record.caseNo}?` : `是否申请${selectedRowKeys.length}个案件转入人民调解系统?`,
|
okText: '确认申请',
|
onOk: async () => {
|
global.setSpinning(true);
|
const res = await sendApplyApi(type === 'one' ? { caseId: record.id } : selectedRowKeys);
|
global.setSpinning(false);
|
if (res.type) {
|
infoSuccess({ content: '申请成功' });
|
getData(search);
|
}
|
},
|
});
|
}
|
|
function downloadXls () {
|
console.log("selectedRowKeys"+selectedRowKeys);
|
window.open(`https://zfw-dyh.by.gov.cn/dyh-mediate/api/v1/caseOut/rmtj/selectExcels?caseIds=${selectedRowKeys}`);
|
};
|
|
function downloadFile () {
|
console.log("selectedRowKeys"+selectedRowKeys);
|
// let caseIds = selectedRowKeys.map(({ caseId }) => caseId).join(',');
|
window.open(`https://zfw-dyh.by.gov.cn/dyh-mediate/api/v1/caseOut/rmtj/selectFiles?caseIds=${selectedRowKeys}`);
|
};
|
|
// 初始化
|
useEffect(() => {
|
let returnRouteData = getSessionStorage(location.pathname);
|
if (searchParams.get('isBack') && !!returnRouteData) {
|
handleSearch('recovery', returnRouteData.search, returnRouteData.tableActive);
|
} else {
|
handleSearch('reset');
|
}
|
if (!!returnRouteData) {
|
clearSessionStorage(location.pathname);
|
}
|
}, []);
|
|
return (
|
<>
|
<Page pageHead={{ title: '人民调解联动' }}>
|
<div className="rmtjLinkage">
|
<div className="pageSearch">
|
<TableSearch
|
labelLength={8}
|
form={form}
|
itemData={[
|
{ type: 'Input', name: 'plaintiffs', label: '申请人' },
|
{ type: 'Input', name: 'defendants', label: '被申请人' },
|
{ type: 'Input', name: 'caseNo', label: '调解案号' },
|
{
|
type: 'Select',
|
name: 'firstAuditResult',
|
label: '人民调解初审结果',
|
selectdata: [
|
{ label: '待审核', value: '0' },
|
{ label: '同意', value: '1' },
|
{ label: '拒绝', value: '2' },
|
],
|
},
|
{
|
type: 'Select',
|
name: 'endAuditResult',
|
label: '终审结果',
|
selectdata: [
|
{ label: '待审核', value: '0' },
|
{ label: '同意', value: '1' },
|
{ label: '拒绝', value: '2' },
|
],
|
},
|
{
|
type: 'Select',
|
name: 'rmtjStatus',
|
label: '转入结果',
|
selectdata: [
|
{ label: '未转入', value: '1' },
|
{ label: '转入中', value: '2' },
|
{ label: '已转入', value: '3' },
|
{ label: '转入失败', value: '4' },
|
],
|
},
|
{ type: 'Input', name: 'rmtjCaseId', label: '转入案号' },
|
{ type: 'RangePicker', name: 'applyTime', label: '提审时间' },
|
{
|
type: 'Select',
|
name: 'inputWay',
|
label: '登记方式',
|
selectdata: [
|
{ label: '案件登记', value: '1' },
|
{ label: '案件导入', value: '2' },
|
],
|
},
|
]}
|
handleReset={() => handleSearch('reset')}
|
handleSearch={() => handleSearch('search')}
|
/>
|
</div>
|
<div className="pageTable">
|
<TableView
|
showHeader
|
title="查询结果"
|
buttonAction={[
|
<Button disabled={!selectedRowKeys.length ? true : false} onClick={downloadXls}>
|
导出Excel
|
</Button>,
|
<Button disabled={!selectedRowKeys.length ? true : false} onClick={downloadFile}>
|
下载附件
|
</Button>,
|
<Button disabled={!selectedRowKeys.length ? true : false} onClick={handleSend}>
|
批量申请
|
</Button>,
|
]}
|
columns={columns}
|
dataSource={data.tableData}
|
rowSelection={{
|
selectedRowKeys,
|
onChange: (selectedRowKeys) => {
|
let obj = { [search.page]: { selectedRowKeys } };
|
setSelectedRowsObj({ ...selectedRowsObj, ...obj });
|
},
|
}}
|
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 RmtjLinkage;
|