/*
|
* @Company: hugeInfo
|
* @Author: lwh
|
* @Date: 2024-12-14 11:11:04
|
* @LastEditTime: 2024-12-30 10:49:31
|
* @LastEditors: lwh
|
* @Version: 1.0.0
|
* @Description: 司法确认查看案件详情
|
*/
|
import React, { useState, useEffect } from 'react';
|
import { Row, Space, Typography, Col } from 'antd';
|
import { Scrollbars } from "react-custom-scrollbars";
|
import { IconLocation } from '@arco-design/web-react/icon';
|
import { Alert, Button, Modal } from '@arco-design/web-react';
|
import Preview from './preview';
|
import HandleRecord from '../matterDetail/HandleRecord';
|
import RateModule from '../matterDetail/RateModule';
|
import RegisInfoModule from '../matterDetail/RegisInfoModule';
|
import DismissModule from "../matterDetail/DismissModule";
|
import DetailDialog from "../../../components/personCard/DetailDialog";
|
import { agree } from "../../../assets/images";
|
|
import * as $$ from '../../../utils/utility';
|
|
function listFeedbackApi(id) {
|
return $$.ax.request({ url: `caseFeedback/listFeedback?id=` + id, type: 'get', service: 'mediate' });
|
}
|
|
function getByCaseIdApi(caseId) {
|
return $$.ax.request({ url: `caseEvaluate/getByCaseId?caseId=${caseId}`, type: 'get', service: 'mediate' });
|
}
|
// 办理结果(化解结果、协议文书等结案信息)
|
function getTransactResultApi(caseId) {
|
return $$.ax.request({ url: `caseInfoUnfold/getTransactResult?caseId=${caseId}`, type: 'get', service: 'mediate' });
|
}
|
|
const RepeatDetail = ({ caseId, hisData, caseData, selectChange, handleRepeatSubmit, handleRepeatMerge }) => {
|
const [data, setData] = useState({});
|
const user = $$.getSessionStorage('customerSystemUser') || {};
|
const [transactResult, setTransactResult] = useState(null);
|
// 折叠
|
const [show, setShow] = useState([]);
|
const [grade, setGrade] = useState(null);
|
const [list, setList] = useState([])
|
|
const [dismissData, setDismissData] = useState(null);
|
const [detailVisabled, setDetailVisabled] = useState(false);
|
const [modalData, setModalData] = useState({});
|
function handleCheckPreview(params) {
|
setModalData(params)
|
setDetailVisabled(true)
|
}
|
|
async function getTransactResult(id) {
|
const res = await getTransactResultApi(id)
|
if (res.type) {
|
if (res.data) {
|
setTransactResult({ ...res.data })
|
} else {
|
setTransactResult(null)
|
}
|
}
|
}
|
|
const listFeedback = async (id) => {
|
const res = await listFeedbackApi(id)
|
if (res.type) {
|
let data = res.data.caseFeedbackList
|
setList(data)
|
}
|
}
|
|
const getByCaseId = async (id) => {
|
const res = await getByCaseIdApi(id)
|
if (res.type) {
|
setGrade(res.data)
|
}
|
}
|
|
useEffect(() => {
|
getByCaseId(caseId);
|
listFeedback(caseId);
|
getTransactResult(caseId)
|
}, [caseId]);
|
|
return (
|
<>
|
<Scrollbars style={{ height: 'calc(100vh - 219px)' }} autoHide>
|
<div style={{ backgroundColor: '#ffff', padding: '12px 18px 70px 16px' }}>
|
<Space size='small'>
|
<div className='MediationInfo-subTitle' style={{ marginTop: '-7px' }}></div><h4>登记信息</h4>
|
</Space>
|
<table border="1" align="center" cellpadding="6" className="table">
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title" width="120" >事项来源</th>
|
<td>{caseData?.canalName || '大厅来访'}</td>
|
<th bgcolor="#F7F8FA" className="table-title" width="120">纠纷发生时间</th>
|
<td >{caseData?.occurTime || '-'}</td>
|
</tr>
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title">申请方</th>
|
<td><div style={{ display: 'flex', gap: '8px' }}>{caseData?.personList.filter(item => item.perType === "15_020008-1")?.map(i => (<span style={{ textDecoration: 'underline' }} onClick={() => { handleCheckPreview(i) }} className='public-color public-a'>{i.trueName || '-'}{`(${i.certiNo || ''})`}</span>))}</div></td>
|
<th bgcolor="#F7F8FA" className="table-title">被申请方</th>
|
<td><div style={{ display: 'flex', gap: '8px' }}>{caseData?.personList.filter(item => item.perType === "15_020008-2")?.map(i => (<span style={{ textDecoration: 'underline' }} onClick={() => { handleCheckPreview(i) }} className='public-color public-a'>{i.trueName || '-'}{`(${i.certiNo || ''})`}</span>))}</div></td>
|
</tr>
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title">问题属地</th>
|
<td><div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}><IconLocation />{caseData?.queAreaName || '-'} {caseData?.queRoadName || '-'}</div></td>
|
<th bgcolor="#F7F8FA" className="table-title">纠纷发生地</th>
|
<td>{caseData?.addr || '-'}</td>
|
</tr>
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title">登记机构</th>
|
<td>{user?.unit || '-'}</td>
|
<th bgcolor="#F7F8FA" className="table-title">登记时间</th>
|
<td>{caseData?.createTime || '-'}</td>
|
</tr>
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title">事项概况</th>
|
<td colspan="3">{$$.ExpandableText({ text: caseData?.caseDes || '-', numString: 100 })}</td>
|
</tr>
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title">事项申请</th>
|
<td colspan="3">{$$.ExpandableText({ text: caseData?.caseClaim || '-', numString: 100 })}</td>
|
</tr>
|
</table>
|
<div style={{ marginTop: '4px' }}>
|
<Space size='small'>
|
<div className='MediationInfo-subTitle' style={{ marginTop: '-7px' }}></div><h4>疑似重复事项</h4>
|
</Space>
|
<Alert type='info' content={<span>登记信息与以下事项可能存在重复,请选择后提交综治中心或在办部门研判处理</span>} />
|
<Row gutter={[16, 32]}>
|
{
|
hisData?.map((item, index) => (
|
<Col span={8} key={`hisData${index}`}>
|
<div className={`RepeatDetail-box ${item.selected && 'RepeatDetail-box-active'}`}>
|
<div className='RepeatDetail-flex'><div style={{ fontWeight: '600' }} className='RepeatDetail-title'>疑似重复事项{index + 1}</div>{item.selected ? <img onClick={() => { selectChange(index, false) }} className='RepeatDetail-img' src={agree} /> : <div onClick={() => { selectChange(index, true) }} className='RepeatDetail-round'></div>}</div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>重复分析:</div><div className='public-danger'>{item?.repeatAnalyseList?.join('、')}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>事项来源:</div><div>{item?.canalName || '-'}</div></div>
|
{/* <div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>数据来源:</div><div>{item?.sourceName || '-'}</div></div> */}
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>数据来源:</div><div>{'本系统'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>申请方:</div><div>{item?.plaintiffs || '-'}{item?.plaintiffsCertiNo ? `(${item?.plaintiffsCertiNo})` : '-'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>被申请方:</div><div>{item?.defendants || '-'}{item?.defendantsCertiNo ? `(${item?.defendantsCertiNo})` : '-'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>问题属地:</div><div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}><IconLocation />{item?.queAreaName || '-'} {item?.queRoadName || ''}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>纠纷发生地:</div><div>{item?.addr || '-'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>事项概况:</div><div style={{ flex: '1' }}>{$$.ExpandableText({ text: item?.caseDes || '-', numString: 54 })}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>事项申请:</div><div style={{ flex: '1' }}>{$$.ExpandableText({ text: item?.caseClaim || '-', numString: 54 })}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>登记机构:</div><div>{item?.inputUnitName || '-'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>登记时间:</div><div>{item?.createTime || '-'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>承办部门:</div><div>{item?.mediateUnitName || '-'}</div></div>
|
<div className='RepeatDetail-title'><div className='RepeatDetail-subTitle'>经办人:</div><div>{item?.mediator || '-'}</div></div>
|
<div><Button onClick={() => { window.open(`${$$.windowUrl}/windowDetail?caseTaskId=${item.id}&caseId=${item.id}`) }} type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }}>详情</Button></div>
|
</div>
|
</Col>
|
))
|
}
|
</Row>
|
{hisData?.filter(i => i.selected)?.length > 0 && <div style={{ margin: '12px 0' }}>已选择<span className='public-color'>{hisData?.filter(i => i.selected)?.length}</span>项</div>}
|
</div>
|
</div>
|
</Scrollbars >
|
<div className="dataSync-excel" style={{ left: '0', right: '0' }}>
|
<Space size="middle" >
|
<Button type='primary' onClick={handleRepeatSubmit}>提交</Button>
|
{/* <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleRepeatMerge}>合并</Button> */}
|
</Space>
|
</div>
|
<Modal
|
title={'查看' + modalData.perTypeName}
|
visible={detailVisabled}
|
onOk={() => setDetailVisabled(false)}
|
onCancel={() => {
|
setDetailVisabled(false)
|
}}
|
wrapStyle={{ zIndex: '1006' }}
|
autoFocus={false}
|
focusLock={true}
|
footer={null}
|
unmountOnExit={true}
|
maskClosable={false}
|
>
|
<DetailDialog editData={modalData} personData={modalData} />
|
</Modal>
|
</>
|
);
|
};
|
|
export default RepeatDetail;
|