|
import React, { useEffect, useState } from 'react';
|
import NewPage from '../../components/NewPage/index';
|
import { Form, Typography, Space, Tooltip } from 'antd';
|
import { FolderFilled } from '@ant-design/icons';
|
import * as $$ from '../../utils/utility';
|
import { useLocation, useNavigate } from 'react-router-dom';
|
import TableView from '../../components/TableViewCanSort';
|
import NewTableSearch from '../../components/NewTableSearch';
|
import MyTabs from '../../components/MyTabs';
|
import './index.less'
|
const { Link } = Typography;
|
|
// 获取数据
|
function getCaseInfoDataApi(submitData) {
|
return $$.ax.request({ url: 'caseInfo/pageQueryAll', type: 'get', data: submitData, service: 'mediate' });
|
}
|
|
function getCacheLatjCaseGuideApi(submitData) {
|
return $$.ax.request({ url: 'guide/cacheLatjCaseGuide', type: 'get', data: submitData, service: 'mediate' });
|
}
|
|
|
function getCacheOpenAiCaseGuideApi(submitData) {
|
return $$.ax.request({ url: 'guide/cacheOpenAiCaseGuideList', type: 'get', data: submitData, service: 'mediate' });
|
}
|
|
|
const Comprehensive = () => {
|
const [form] = Form.useForm();
|
|
let location = useLocation();
|
|
let navigate = useNavigate();
|
|
// 搜索
|
const [search, setSearch] = useState({ page: 1, size: 10, });
|
|
// 数据
|
const [data, setData] = useState({ tableData: [] });
|
|
// 表头
|
const columns = () => {
|
const columnsData = [
|
{ title: '事项状态', width: 100, dataIndex: 'statusName' },
|
{ title: '事项来源', width: 100, dataIndex: 'canalName' },
|
{ title: '事项等级', width: 100, dataIndex: 'caseLevel' },
|
{ title: '纠纷类型', width: 150, dataIndex: 'caseTypeName' },
|
{ title: '承办部门', width: 150, dataIndex: 'mediateUnitName' },
|
{ title: '配合部门', width: 150, dataIndex: 'assistUnitName' },
|
// 22_00025-1 成功 22_00025-2 化解不成功
|
{ title: '化解结果', width: 100, dataIndex: 'mediResult', render: (text) => <div className={text === '22_00025-1' ? 'comprehensive-green' : text === '22_00025-2' ? 'comprehensive-red' : '-'} >{text === '22_00025-1' ? '化解成功' : text === '22_00025-2' ? '化解不成功' : '-'}</div> },
|
{ title: '办结时间', width: 100, dataIndex: 'closeTime', render: (text) => <span>{$$.dateFormat(text)}</span> },
|
{ title: '申请方', dataIndex: 'action', render: (text, record) => <div>{record.plaintiffList?.length > 0 ? record.plaintiffList?.map(i => i.trueName)?.join(',') : '-'}</div> },
|
{ title: '被申请方', dataIndex: 'action', render: (text, record) => <div>{record.defendantList?.length > 0 ? record.defendantList?.map(i => i.trueName)?.join(',') : '-'}</div> },
|
{ title: '登记机构', dataIndex: 'inputUnitName' },
|
{
|
title: '操作',
|
dataIndex: 'action',
|
width: 50,
|
render: (_, record) => {
|
return <Link onClick={() => handleJump(record)}>详情</Link>;
|
},
|
},
|
];
|
return columnsData;
|
};
|
|
// 跳转详情页
|
function handleJump(type, info) {
|
if (type === 'feedback') {
|
// 协助反馈
|
$$.setSessionStorage(location.pathname, {
|
search,
|
breadcrumbData: [{ title: '我的调解', url: '/mediate/myAdjust' }, { title: '我协助的' }],
|
title: info.caseNo,
|
tableActive: info.id,
|
tabs: [{ label: '调解', key: 'feedBack' }],
|
pageFrom: 'myMediationFeedBack',
|
});
|
navigate(`/mediate/caseDetail?caseId=${info.id}&taskId=${info.taskId}&back=${location.pathname}`);
|
}
|
// 查看
|
if (type === 'check') {
|
$$.setSessionStorage(location.pathname, {
|
search,
|
breadcrumbData: [{ title: '我的调解', url: '/mediate/myAdjust' }, { title: '查看' }],
|
title: info.caseNo,
|
tableActive: info.id,
|
pageFrom: 'myMediation',
|
});
|
navigate(`/mediate/caseDetail?caseId=${info.id}&taskId=${info.taskId}&back=${location.pathname}`);
|
}
|
// 调解
|
if (type === 'handle') {
|
|
// getCacheOpenAiCaseGuide({ caseId: info.id, guideType: 3 })
|
|
// getCacheLatjCaseGuide({ caseId: info.id })
|
if (info.serieStatus === '2') {
|
// 系列案
|
$$.setSessionStorage(location.pathname, {
|
search,
|
breadcrumbData: [{ title: '我的调解', url: '/mediate/myAdjust' }, { title: '我负责的' }],
|
title: info.caseNo,
|
tableActive: info.id,
|
tabs: [{ label: '调解', key: 'caseFolderFeedBack' }],
|
pageFrom: 'myMediationCaseFolderFeedBack',
|
});
|
navigate(`/mediate/caseDetail?caseId=${info.id}&taskId=${info.taskId}&back=${location.pathname}`);
|
} else {
|
// 非系列案
|
$$.setSessionStorage(location.pathname, {
|
search,
|
tableActive: info.id,
|
});
|
navigate(`/mediate/myAdjust/mediationWindow?caseId=${info.id}&taskId=${info.taskId}&taskType=${info.taskType}&back=${location.pathname}`);
|
}
|
}
|
}
|
|
// 页码修改
|
function handleChangePage(page, pageSize) {
|
let paramsObj = Object.assign(search, { page, size: pageSize });
|
setSearch(paramsObj);
|
getCaseInfoData(paramsObj);
|
}
|
|
|
// 导出数据
|
function downloadXls() {
|
window.open(`${$$.appUrl.baseUrl}/dyh-mediate/api/web/caseInfo/exportQueryAll`);
|
};
|
|
// 搜索 or 重置
|
function handleSearch(type, session) {
|
let paramsObj = {};
|
if (type === 'search') {
|
paramsObj = { ...search, ...form.getFieldsValue(), page: 1 };
|
$$.changeTimeFormat(paramsObj, 'acceptTime', 'acceptStart', 'acceptEnd');
|
$$.changeTimeFormat(paramsObj, 'mediEndTime', 'mediEndTimeStart', 'mediEndTimeEnd');
|
$$.changeTimeFormat(paramsObj, 'mediStartTime', 'mediStartTimeStart', 'mediStartTimeEnd');
|
}
|
if (type === 'reset') {
|
paramsObj = { page: 1, size: 10 };
|
form.resetFields();
|
form.setFieldsValue({ joinRole: '1' });
|
}
|
if (type === 'recurrent') {
|
paramsObj = { ...search, ...session.search };
|
let copyObj = { ...paramsObj };
|
if (copyObj.acceptStart) {
|
copyObj.acceptTime = [$$.myMoment(copyObj.acceptStart), $$.myMoment(copyObj.acceptEnd)];
|
}
|
if (copyObj.mediEndTimeStart) {
|
copyObj.mediEndTime = [$$.myMoment(copyObj.mediEndTimeStart), $$.myMoment(copyObj.mediEndTimeEnd)];
|
}
|
if (copyObj.mediStartTimeStart) {
|
copyObj.mediStartTime = [$$.myMoment(copyObj.mediStartTimeStart), $$.myMoment(copyObj.mediStartTimeEnd)];
|
}
|
form.setFieldsValue(copyObj);
|
}
|
getCaseInfoData(paramsObj, session?.tableActive);
|
}
|
|
// 获取数据
|
async function getCaseInfoData(submitData, tableActive) {
|
global.setSpinning(true);
|
const res = await getCaseInfoDataApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
setSearch(submitData);
|
setData({
|
total: 0,
|
tableData: [],
|
});
|
}
|
}
|
|
// 初始化
|
useEffect(() => {
|
let type = false;
|
let values = $$.getSessionStorage(location.pathname);
|
type = $$.getQueryString('isBack') && !!values;
|
type ? handleSearch('recurrent', values) : handleSearch('reset');
|
if (!!values) {
|
$$.clearSessionStorage(location.pathname);
|
}
|
}, []);
|
|
|
|
return (
|
<NewPage
|
pageHead={
|
{ breadcrumbData: [{ title: '工作台' }, { title: '综合查询' }], title: '综合查询' }
|
}
|
>
|
<div className="comprehensive">
|
<div className="pageSearch">
|
<div className='comprehensive-title'>查询条件</div>
|
<NewTableSearch
|
exportButton={downloadXls}
|
labelLength={6}
|
form={form}
|
itemData={[
|
{ type: 'RangePicker', name: 'acceptTime', label: '办结时间', span: 8 },
|
{ type: 'null'},
|
{ type: 'null'},
|
{ type: 'RangePicker', name: 'acceptTime', label: '归档时间', span: 8 },
|
{ type: 'null'},
|
{ type: 'null'},
|
{
|
type: 'Select',
|
name: 'joinRole',
|
label: '纠纷类型',
|
span: 12,
|
selectdata: [
|
{ label: '我负责的', value: '1' },
|
{ label: '我协助的', value: '2' },
|
],
|
},
|
// {
|
// type: 'Select',
|
// name: 'joinRole',
|
// label: '承办部门',
|
// selectdata: [
|
// { label: '我负责的', value: '1' },
|
// { label: '我协助的', value: '2' },
|
// ],
|
// },
|
// {
|
// type: 'Select',
|
// name: 'joinRole',
|
// label: '登记机构',
|
// selectdata: [
|
// { label: '我负责的', value: '1' },
|
// { label: '我协助的', value: '2' },
|
// ],
|
// },
|
// { type: 'Input', name: 'defendants', label: '被申请人' },
|
// { type: 'Input', name: 'caseNo', label: '调解案号' },
|
]}
|
handleReset={() => handleSearch('reset')}
|
handleSearch={() => handleSearch('search')}
|
/>
|
</div>
|
|
<div style={{ marginTop: '8px' }} className="comprehensive-table">
|
{
|
data.tableData?.length > 0 ?
|
<TableView
|
showHeader
|
title="查询结果"
|
columns={columns()}
|
dataSource={data.tableData}
|
pagination={{
|
current: search.page,
|
pageSize: search.size,
|
total: data.total,
|
onChange: (page, pageSize) => handleChangePage(page, pageSize),
|
}}
|
rowClassName={(record) => (record.id === data.tableActive ? 'tableRowActive' : '')}
|
/> :
|
<TableView
|
showHeader
|
title="查询结果"
|
columns={columns()}
|
dataSource={data.tableData}
|
pagination={{
|
current: search.page,
|
pageSize: search.size,
|
total: data.total,
|
onChange: (page, pageSize) => handleChangePage(page, pageSize),
|
}}
|
rowClassName={(record) => (record.id === data.tableActive ? 'tableRowActive' : '')}
|
/>
|
}
|
</div>
|
</div>
|
</NewPage>
|
);
|
};
|
|
export default Comprehensive;
|