/*
|
* @Company: hugeInfo
|
* @Author: xzx
|
* @Date: 2022-04-20 20:03:21
|
* @LastEditors: lwh
|
* @LastEditTime: 2023-05-11 20:21:01
|
* @Version: 1.0.0
|
* @Description: 司法确认审查列表 - 审查
|
*/
|
import React, { useEffect, useState, useRef } from 'react';
|
import { useNavigate, useSearchParams } from 'react-router-dom';
|
import { Row, Col, Input, Typography, Space, Button, Radio } from 'antd';
|
import { ShareAltOutlined, ProfileOutlined, CheckCircleOutlined } from '@ant-design/icons';
|
import * as $$ from '../../../utils/utility';
|
import Page from '../../../components/Page';
|
import ProgressStep from '../../../components/ProgressStep';
|
import MyUpload from '../../../components/MyUpload';
|
import MyModal from '../../../components/MyModal';
|
import MyDrawer from '../../../components/MyDrawer';
|
import { DisputeMsg } from '../../caseDetail/components';
|
import { cardIconCaseCheck } from '../../../assets/images/icon';
|
|
const { TextArea } = Input;
|
|
const { Link, Text } = Typography;
|
|
// 获取司法确认申请数据
|
function getApplyDataApi(submitData) {
|
return $$.ax.request({ url: `judicTask/getJudicInfo?taskId=${submitData}`, type: 'get', service: 'mediate' });
|
}
|
|
// 审查
|
function auditDataApi(submitData) {
|
return $$.ax.request({ url: 'judicTask/handleTask', type: 'post', data: submitData, service: 'mediate' });
|
}
|
|
const JudicialAudit = () => {
|
const navigate = useNavigate();
|
|
const [searchParams] = useSearchParams();
|
|
const back = searchParams.get('back');
|
|
const taskId = searchParams.get('taskId');
|
|
const myUploadRef = useRef();
|
|
const [caseCheckModal, setCaseCheckModal] = useState(false);
|
|
// 司法确认申请数据
|
const [data, setData] = useState({});
|
|
// 审查drawer显隐
|
const [drawerVisible, setDrawerVisible] = useState(false);
|
|
// 审查form
|
const [formData, setFormData] = useState({});
|
|
const getFiles = (type) => {
|
return data.applyFileList?.filter((item) => item.ownerType === type)[0]?.fileList || [];
|
};
|
|
//
|
function handleChangeInput(key, value) {
|
if (key === 'judicHandle') {
|
formData.judicHandle = value[0];
|
formData.judicHandleName = value[1];
|
} else {
|
formData[key] = value;
|
}
|
if (key === 'handleResult' && value === '2') {
|
formData.judicHandle = '22_00033-1';
|
}
|
setFormData({ ...formData });
|
}
|
|
// 提交审查
|
function handleSubmit() {
|
if (!$$.verifyEmpty(formData.handleContent)) {
|
$$.info({ type: 'error', content: '审查意见未填写' });
|
return false;
|
}
|
auditData();
|
}
|
|
// 审查
|
async function auditData() {
|
global.setSpinning(true);
|
const res = await auditDataApi({ ...formData, id: taskId });
|
global.setSpinning(false);
|
if (res.type) {
|
if (formData.handleResult === '1') {
|
$$.modalInfo({
|
icon: <CheckCircleOutlined style={{ color: '#52c41a' }} />,
|
title: '审查完成',
|
content: '您可以立即指派承办法官开展司法确认工作,也可以后续通过“法院分案”功能来完成',
|
cancelText: '暂不指派',
|
okText: '立即指派',
|
onCancel: () => navigate(`${back}?isBack=true`),
|
onOk: () => navigate('/mediate/judicialDivision'),
|
});
|
} else {
|
setDrawerVisible(false);
|
$$.infoSuccess({ content: '审查操作成功,即将为您返回' });
|
await $$.sleep();
|
navigate(`${back}?isBack=true`);
|
}
|
}
|
}
|
|
// 获取司法确认申请数据
|
useEffect(() => {
|
async function getApplyData() {
|
global.setSpinning(true);
|
const res = await getApplyDataApi(taskId);
|
global.setSpinning(false);
|
if (res.type) {
|
setData(res.data || {});
|
}
|
}
|
getApplyData();
|
}, [taskId]);
|
|
return (
|
<Page
|
pageHead={{
|
title: '审查',
|
subtitle: '审查已经提交的司法确认申请',
|
breadcrumbData: [{ title: '司法确认申请审查', url: '/mediate/courtOffice' }, { title: '审查' }],
|
handleReturn: () => navigate(`${back}?isBack=true`, { replace: true }),
|
}}
|
>
|
{/* 为了获取myUploadRef实例调用方法 */}
|
<MyUpload type="diy" showFileList={false} myUploadRef={myUploadRef} />
|
<div className="judicialAudit">
|
<div className="caseDetail-card judicialAudit-left">
|
<div className="caseDetail-cardTitle">
|
<Space size="small">
|
<div className="caseDetail-cardTitle-icon caseDetail-cardTitle-iconGreen">
|
<ProfileOutlined />
|
</div>
|
<h5>申请信息</h5>
|
</Space>
|
</div>
|
<div className="caseDetail-cardMain">
|
<Row gutter={[16, 16]}>
|
<Col span={24}>
|
<h5>调解案件</h5>
|
<div className="public-fileCard">
|
<img src={cardIconCaseCheck} alt="" onClick={() => setCaseCheckModal(true)} style={{ cursor: 'pointer' }} />
|
<div className="public-fileCard-main">
|
<Text ellipsis={{ tooltip: data.plaintiffs }}>申请人:{data.plaintiffs}</Text>
|
<Text ellipsis={{ tooltip: data.defendants }} style={{ marginTop: '4px', display: 'block' }}>
|
被申请人:{data.defendants}
|
</Text>
|
</div>
|
</div>
|
</Col>
|
<Col span={24}>
|
<h5>受理单位</h5>
|
<div>{data.courtName}</div>
|
</Col>
|
<Col span={24}>
|
<h5>申请说明</h5>
|
<pre>{data.applyContent || '-'}</pre>
|
</Col>
|
{[
|
{ key: '22_00018-302', title: '调解协议书' },
|
{ key: '22_00018-402', title: '司法确认申请书' },
|
{ key: '22_00018-306', title: '人民调解委员会主持调解的证明' },
|
{ key: '22_00018-409', title: '其他材料' },
|
].map((item, index) => (
|
<Col span={24} key={index}>
|
<h5>{item.title}</h5>
|
<Row gutter={[16, 8]}>
|
{getFiles(item.key).length === 0
|
? $$.MyEmpty({ style: { margin: 0 } })
|
: getFiles(item.key).map((x, t) => (
|
<Col span={12} key={t}>
|
<div className="public-fileCard">
|
<img src={$$.fileType(x.cat)} alt="" />
|
<div className="public-fileCard-main">
|
<Text ellipsis={{ tooltip: x.name }}>{x.name}</Text>
|
<Space size="middle" className="public-fileCard-action">
|
<Link onClick={() => myUploadRef.current.handleOpenFiles(x)}>预览</Link>
|
<Link onClick={() => myUploadRef.current.handleDownloadFiles(x)}>下载</Link>
|
</Space>
|
</div>
|
</div>
|
<div className="public-fileCard-text">
|
<div>上传人:{x.uploaderName || '-'}</div>
|
<div>上传时间:{$$.timeFormat(x.createTime)}</div>
|
</div>
|
</Col>
|
))}
|
</Row>
|
</Col>
|
))}
|
<Col span={24}>
|
<Button
|
onClick={() => {
|
setDrawerVisible(true);
|
setFormData({ handleResult: '1', handleContent: '' });
|
}}
|
type="primary"
|
>
|
审查
|
</Button>
|
</Col>
|
</Row>
|
</div>
|
</div>
|
<div className="caseDetail-card judicialAudit-right">
|
<div className="caseDetail-cardTitle">
|
<Space size="small">
|
<div className="caseDetail-cardTitle-icon caseDetail-cardTitle-iconOrange">
|
<ShareAltOutlined />
|
</div>
|
<h5>审查记录</h5>
|
</Space>
|
</div>
|
<div style={{ display: 'flex', justifyContent: 'center' }}>
|
<div className="caseDetail-cardMain">
|
<h5>进度</h5>
|
<ProgressStep caseId={data.caseId} pageFrom="judicialAudit" />
|
</div>
|
</div>
|
</div>
|
</div>
|
{/* 审查drawer */}
|
<MyDrawer
|
title="受理审查"
|
visible={drawerVisible}
|
onClose={() => setDrawerVisible(false)}
|
footer={[
|
<Button key="1" type="primary" onClick={handleSubmit}>
|
提交
|
</Button>,
|
]}
|
>
|
<Row gutter={[16, 16]}>
|
<Col span={24}>
|
<h5>审查结果</h5>
|
<Radio.Group onChange={(e) => handleChangeInput('handleResult', e.target.value)} value={formData.handleResult}>
|
<Space direction="vertical">
|
<Radio value="1">
|
审查同意{formData.handleResult === '1' && <span className="judicialAudit-subtitle">(受理司法确认申请)</span>}
|
</Radio>
|
<Radio value="2">
|
审查拒绝{formData.handleResult === '2' && <span className="judicialAudit-subtitle">(不受理司法确认申请)</span>}
|
</Radio>
|
</Space>
|
</Radio.Group>
|
</Col>
|
{formData.handleResult === '2' && (
|
<Col span={24}>
|
<h5>
|
审查处理<span className="leftRequired">*</span>
|
</h5>
|
<Radio.Group onChange={(e) => handleChangeInput('judicHandle', [e.target.value, e.target.label])} value={formData.judicHandle}>
|
<Space direction="vertical">
|
<Radio value="22_00033-1" label="退回申请人">
|
退回申请人{formData.judicHandle === '22_00033-1' && <span className="judicialAudit-subtitle">(申请人可补充材料后再次申请)</span>}
|
</Radio>
|
<Radio value="22_00033-2" label="不予受理">
|
不予受理
|
</Radio>
|
</Space>
|
</Radio.Group>
|
</Col>
|
)}
|
<Col span={24}>
|
<h5>
|
审查意见<span className="leftRequired">*</span>
|
</h5>
|
<TextArea
|
value={formData.handleContent}
|
onChange={(e) => handleChangeInput('handleContent', e.target.value)}
|
rows={2}
|
placeholder="输入审查意见"
|
allowClear
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>审查附件</h5>
|
<MyUpload fileId={taskId} fileType="22_00018-501" />
|
</Col>
|
</Row>
|
</MyDrawer>
|
<MyModal width={1200} visible={caseCheckModal} onCancel={() => setCaseCheckModal(false)} footer={false}>
|
<DisputeMsg caseId={data.caseId} isModal />
|
</MyModal>
|
</Page>
|
);
|
};
|
|
export default JudicialAudit;
|