| | |
| | | import React, { useState, useEffect } from "react"; |
| | | import React, { useState, useEffect } from 'react'; |
| | | import { Row, Col, Space, Typography } from 'antd'; |
| | | import { Modal, Divider } from '@arco-design/web-react'; |
| | | import * as $$ from '../../../utils/utility'; |
| | |
| | | import NameCard2 from '../../../components/NameCard2'; |
| | | import { judicial_3 } from '@/assets/images'; |
| | | import MyPDF from '../../../components/MyPDF'; |
| | | import { judicial_7 } from "../../../assets/images"; |
| | | import { judicial_7 } from '../../../assets/images'; |
| | | |
| | | // 司法确认详情接口 |
| | | function getJudicInfoApi(submitData) { |
| | |
| | | const { Paragraph, Link, Text } = Typography; |
| | | const Judicial = (props) => { |
| | | const [data, setData] = useState({}); |
| | | const [videoList, setVideoList] = useState([]) |
| | | const [videoList, setVideoList] = useState([]); |
| | | // 预添加预约 |
| | | const [preBookData, setPreBookData] = useState({}); |
| | | const [radioVisible, setRadioVisible] = useState(false); |
| | | |
| | | |
| | | function checkTimeRange(startTime, endTime, currentTime) { |
| | | if (currentTime < new Date(startTime)) { |
| | | return <div className='public-color'>未开始</div>; // 当前时间在时间范围之前 |
| | | return <div className="public-color">未开始</div>; // 当前时间在时间范围之前 |
| | | } else if (currentTime >= new Date(startTime) && currentTime <= new Date(endTime)) { |
| | | return <div style={{ color: '#EF6C24' }}>进行中</div>; // 当前时间在时间范围内 |
| | | } else { |
| | | return <div className='public-orange'>已结束</div>; // 当前时间在时间范围之后 |
| | | return <div className="public-orange">已结束</div>; // 当前时间在时间范围之后 |
| | | } |
| | | } |
| | | // 初始化附件回显 |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | // 获取预约调解记录 |
| | | async function getMeetInfo(id) { |
| | | global.setSpinning(true); |
| | |
| | | if (res.type) { |
| | | let list = res.data || []; |
| | | if (list?.length > 0) { |
| | | setPreBookData(list[0]) |
| | | setPreBookData(list[0]); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | const getVideo = async (id) => { |
| | | const res = await getVideoApi(id) |
| | | const res = await getVideoApi(id); |
| | | if (res.type) { |
| | | if (res.data) { |
| | | setVideoList(res.data || []) |
| | | setVideoList(res.data || []); |
| | | } else { |
| | | setVideoList(null) |
| | | setVideoList(null); |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | useEffect(() => { |
| | | getJudicialApply(props.caseId) |
| | | getMeetInfo(props.caseId) |
| | | getVideo(props.caseId) |
| | | }, []) |
| | | getJudicialApply(props.caseId); |
| | | getMeetInfo(props.caseId); |
| | | getVideo(props.caseId); |
| | | }, []); |
| | | |
| | | return ( |
| | | <div style={{ ...props.style, position: 'relative' }}> |
| | | <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px' }}> |
| | | <Space size='small'> |
| | | <div className='MediationInfo-subTitle' style={{ marginTop: '-7px' }}></div><h4>司法确认信息</h4> |
| | | <Space size="small"> |
| | | <div className="MediationInfo-subTitle" style={{ marginTop: '-7px' }}></div> |
| | | <h4>司法确认信息</h4> |
| | | </Space> |
| | | </Col> |
| | | <table border="1" align="center" cellpadding="8" className="table" > |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">司法确认结果</th> |
| | | <td width='380' style={{ color: data?.judicResult == '22_00028-1' ? '#00b42a' : '#f53f3f' }}> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120"> |
| | | 司法确认结果 |
| | | </th> |
| | | <td width="380" style={{ color: data?.judicResult == '22_00028-1' ? '#00b42a' : '#f53f3f' }}> |
| | | {data?.judicResult == '22_00028-1' ? '已达成' : data?.judicResult == '22_00028-2' ? '未达成' : '-'} |
| | | </td> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">预约信息</th> |
| | | <td width='380'>{preBookData?.orderStartTime ? <span className="public-a public-color" onClick={() => { setRadioVisible(true) }}>点击查看</span> : '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120"> |
| | | 预约信息 |
| | | </th> |
| | | <td width="380"> |
| | | {preBookData?.orderStartTime ? ( |
| | | <span |
| | | className="public-a public-color" |
| | | onClick={() => { |
| | | setRadioVisible(true); |
| | | }} |
| | | > |
| | | 点击查看 |
| | | </span> |
| | | ) : ( |
| | | '-' |
| | | )} |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">司法确认部门</th> |
| | | <td width='380'>{data?.courtName || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">结案时间</th> |
| | | <td width='380'>{$$.minuteFormat(data?.judicEndTime)}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120"> |
| | | 司法确认部门 |
| | | </th> |
| | | <td width="380">{data?.courtName || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120"> |
| | | 结案时间 |
| | | </th> |
| | | <td width="380">{$$.minuteFormat(data?.judicEndTime)}</td> |
| | | </tr> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">承办法官</th> |
| | | <td width='380'><div className='public-infoSubTitle'><NameCard2 name={data.judgeName} userId={data.judgeNameId || ''} /></div></td> |
| | | <th bgcolor="#F7F8FA" className="table-title">助理/书记员</th> |
| | | <td width='380'><div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }} className='public-infoSubTitle'>{data?.judicAssistList?.map(i => (<NameCard2 name={i.assUserName} userId={i.assUserId} />))}</div></td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 承办法官 |
| | | </th> |
| | | <td width="380"> |
| | | <div className="public-infoSubTitle"> |
| | | <NameCard2 name={data.judgeName} userId={data.judgeNameId || ''} /> |
| | | </div> |
| | | </td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 助理/书记员 |
| | | </th> |
| | | <td width="380"> |
| | | <div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }} className="public-infoSubTitle"> |
| | | {data?.judicAssistList?.map((i) => ( |
| | | <NameCard2 name={i.assUserName} userId={i.assUserId} /> |
| | | ))} |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | { |
| | | data?.judicResult == '22_00028-1' && |
| | | {data?.judicResult == '22_00028-1' && ( |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">司法确认案号</th> |
| | | <td width='380'>{data?.judicNo || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title">诉前调确号</th> |
| | | <td width='380'>{data?.mediateJudicNo || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 司法确认案号 |
| | | </th> |
| | | <td width="380">{data?.judicNo || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 诉前调确号 |
| | | </th> |
| | | <td width="380">{data?.mediateJudicNo || '-'}</td> |
| | | </tr> |
| | | } |
| | | )} |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">申请时间</th> |
| | | <td width='380'>{$$.minuteFormat(data?.applyTime)}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title">申请部门</th> |
| | | <td width='380'>{data?.applyUnitName || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 申请时间 |
| | | </th> |
| | | <td width="380">{$$.minuteFormat(data?.applyTime)}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 申请部门 |
| | | </th> |
| | | <td width="380">{data?.applyUnitName || '-'}</td> |
| | | </tr> |
| | | { |
| | | data?.judicResult == '22_00028-1' && |
| | | {data?.judicResult == '22_00028-1' && ( |
| | | <> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">裁定文书</th> |
| | | <td width='380' colspan='3'>{ |
| | | data?.fileList?.find(i => i.ownerType === '22_00018-405')?.fileList?.length ? |
| | | data?.fileList?.find(i => i.ownerType === '22_00018-405')?.fileList?.map((item, index) => { |
| | | return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 裁定文书 |
| | | </th> |
| | | <td width="380" colspan="3"> |
| | | {data?.fileList?.find((i) => i.ownerType === '22_00018-405')?.fileList?.length ? ( |
| | | data?.fileList |
| | | ?.find((i) => i.ownerType === '22_00018-405') |
| | | ?.fileList?.map((item, index) => { |
| | | return ( |
| | | <> |
| | | <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} /> |
| | | </> |
| | | ); |
| | | }) |
| | | : <div className='public-infoSubTitle'>-</div> |
| | | }</td> |
| | | ) : ( |
| | | <div className="public-infoSubTitle">-</div> |
| | | )} |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">询问笔录</th> |
| | | <td width='380' colspan='3'>{ |
| | | data?.fileList?.find(i => i.ownerType === '22_00018-401')?.fileList?.length ? |
| | | data?.fileList?.find(i => i.ownerType === '22_00018-401')?.fileList?.map((item, index) => { |
| | | return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 询问笔录 |
| | | </th> |
| | | <td width="380" colspan="3"> |
| | | {data?.fileList?.find((i) => i.ownerType === '22_00018-401')?.fileList?.length ? ( |
| | | data?.fileList |
| | | ?.find((i) => i.ownerType === '22_00018-401') |
| | | ?.fileList?.map((item, index) => { |
| | | return ( |
| | | <> |
| | | <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} /> |
| | | </> |
| | | ); |
| | | }) |
| | | : <div className='public-infoSubTitle'>-</div> |
| | | }</td> |
| | | ) : ( |
| | | <div className="public-infoSubTitle">-</div> |
| | | )} |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">送达地址确认书</th> |
| | | <td width='380' colspan='3'>{ |
| | | data?.fileList?.find(i => i.ownerType === '22_00018-108')?.fileList?.length ? |
| | | data?.fileList?.find(i => i.ownerType === '22_00018-108')?.fileList?.map((item, index) => { |
| | | return <>{item.suffix === 'pdf' ? <MyPDF name={item?.fileName} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.fileName} src={item.showUrl} />}</> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 送达地址确认书 |
| | | </th> |
| | | <td width="380" colspan="3"> |
| | | {data?.fileList?.find((i) => i.ownerType === '22_00018-108')?.fileList?.length ? ( |
| | | data?.fileList |
| | | ?.find((i) => i.ownerType === '22_00018-108') |
| | | ?.fileList?.map((item, index) => { |
| | | return ( |
| | | <> |
| | | <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} /> |
| | | </> |
| | | ); |
| | | }) |
| | | : <div className='public-infoSubTitle'>-</div> |
| | | }</td> |
| | | ) : ( |
| | | <div className="public-infoSubTitle">-</div> |
| | | )} |
| | | </td> |
| | | </tr> |
| | | { |
| | | videoList?.length > 0 && <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">司法确认视频</th> |
| | | <td colspan='3'> |
| | | {videoList?.length > 0 && ( |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120"> |
| | | 司法确认视频 |
| | | </th> |
| | | <td colspan="3"> |
| | | {videoList?.map((item, index) => { |
| | | return <div key={'video' + index} style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> |
| | | <img src={judicial_7} alt="" srcset="" /><Link onClick={() => { window.open(item.playUrl) }}>{item.videoName}</Link> |
| | | return ( |
| | | <div key={'video' + index} style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> |
| | | <img src={judicial_7} alt="" srcset="" /> |
| | | <Link |
| | | onClick={() => { |
| | | window.open(item.playUrl); |
| | | }} |
| | | > |
| | | {item.videoName} |
| | | </Link> |
| | | </div> |
| | | ); |
| | | })} |
| | | </td> |
| | | </tr> |
| | | } |
| | | )} |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">结案说明</th> |
| | | <td width='380' colspan='3'>{data?.judicContent || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 结案说明 |
| | | </th> |
| | | <td width="380" colspan="3"> |
| | | {data?.judicContent || '-'} |
| | | </td> |
| | | </tr> |
| | | </> |
| | | } |
| | | { |
| | | data?.judicResult == '22_00028-2' && |
| | | )} |
| | | {data?.judicResult == '22_00028-2' && ( |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title">未达成原因</th> |
| | | <td width='380' colspan='3'>{data?.judicFalseCause || '-'}</td> |
| | | <th bgcolor="#F7F8FA" className="table-title"> |
| | | 未达成原因 |
| | | </th> |
| | | <td width="380" colspan="3"> |
| | | {data?.judicFalseCause || '-'} |
| | | </td> |
| | | </tr> |
| | | } |
| | | )} |
| | | </table> |
| | | <Modal |
| | | title='预约信息' |
| | | title="预约信息" |
| | | style={{ width: '40%' }} |
| | | className='judicial-handle-modal' |
| | | className="judicial-handle-modal" |
| | | onCancel={() => setRadioVisible(false)} |
| | | visible={radioVisible} |
| | | footer={null} |
| | | > |
| | | <div style={{ marginBottom: '0' }} className='judicial-item-content'> |
| | | <div className='judicial-item-content-left'> |
| | | <div style={{ marginBottom: '0' }} className="judicial-item-content"> |
| | | <div className="judicial-item-content-left"> |
| | | {/* <div className='judicial-item-content-left-del public-a'><img src={judicial_3} alt="" srcset="" /></div> */} |
| | | <div className='judicial-item-content-left-t'> |
| | | <div className='judicial-item-content-left-t-l'><div className='judicial-item-content-left-bigTitle public-color'>{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}</div><div className='public-color'>{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}</div></div> |
| | | <div className='judicial-item-content-left-t-l'> |
| | | <Space size='small'> |
| | | <div className='judicial-item-content-left-inline'></div> |
| | | <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', alignItems: 'center', justifyContent: 'center' }}>{checkTimeRange(preBookData?.orderStartTime, preBookData?.orderEndTime, new Date())}<div className='public-color judicial-item-content-left-time'>{$$.calculateTimeDifference(preBookData?.orderStartTime, preBookData?.orderEndTime)}</div></div> |
| | | <div className='judicial-item-content-left-inline'></div> |
| | | <div className="judicial-item-content-left-t"> |
| | | <div className="judicial-item-content-left-t-l"> |
| | | <div className="judicial-item-content-left-bigTitle public-color">{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}</div> |
| | | <div className="public-color">{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}</div> |
| | | </div> |
| | | <div className="judicial-item-content-left-t-l"> |
| | | <Space size="small"> |
| | | <div className="judicial-item-content-left-inline"></div> |
| | | <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', alignItems: 'center', justifyContent: 'center' }}> |
| | | {checkTimeRange(preBookData?.orderStartTime, preBookData?.orderEndTime, new Date())} |
| | | <div className="public-color judicial-item-content-left-time"> |
| | | {$$.calculateTimeDifference(preBookData?.orderStartTime, preBookData?.orderEndTime)} |
| | | </div> |
| | | </div> |
| | | <div className="judicial-item-content-left-inline"></div> |
| | | </Space> |
| | | </div> |
| | | <div className='judicial-item-content-left-t-l'><div className='judicial-item-content-left-bigTitle public-color'>{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}</div><div className='public-color'>{$$.myTimeFormat(preBookData?.orderEndTime, 'YYYY年MM月DD日')}</div></div> |
| | | <div className="judicial-item-content-left-t-l"> |
| | | <div className="judicial-item-content-left-bigTitle public-color">{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}</div> |
| | | <div className="public-color">{$$.myTimeFormat(preBookData?.orderEndTime, 'YYYY年MM月DD日')}</div> |
| | | </div> |
| | | </div> |
| | | <Divider /> |
| | | <div className='judicial-item-content-left-c-flex'> |
| | | <div className='judicial-item-content-left-c'> |
| | | <div className='judicial-item-content-left-c-title'>司法确认方式</div> |
| | | <div className='judicial-item-content-left-c-content'>{preBookData?.meetWayName || '-'}</div> |
| | | <div className="judicial-item-content-left-c-flex"> |
| | | <div className="judicial-item-content-left-c"> |
| | | <div className="judicial-item-content-left-c-title">司法确认方式</div> |
| | | <div className="judicial-item-content-left-c-content">{preBookData?.meetWayName || '-'}</div> |
| | | </div> |
| | | <div className='judicial-item-content-left-c'> |
| | | <div className='judicial-item-content-left-c-title'>远程视频司法确认号</div> |
| | | <div className='judicial-item-content-left-c-content'><span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span> {preBookData?.roomNo && <span onClick={() => { |
| | | navigator.clipboard.writeText(preBookData?.roomNo).then(() => { |
| | | <div className="judicial-item-content-left-c"> |
| | | <div className="judicial-item-content-left-c-title">远程视频司法确认号</div> |
| | | <div className="judicial-item-content-left-c-content"> |
| | | <span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span> |
| | | {preBookData?.roomNo && ( |
| | | <span |
| | | onClick={() => { |
| | | navigator.clipboard |
| | | .writeText(preBookData?.roomNo) |
| | | .then(() => { |
| | | $$.infoSuccess({ content: '复制成功' }); |
| | | }).catch(err => { |
| | | }) |
| | | .catch((err) => { |
| | | $$.catchApiError('复制失败', err); |
| | | }); |
| | | }} className='public-color public-a'>复制</span>}</div> |
| | | }} |
| | | className="public-color public-a" |
| | | > |
| | | 复制 |
| | | </span> |
| | | )} |
| | | </div> |
| | | <div className='judicial-item-content-left-c'> |
| | | <div className='judicial-item-content-left-c-title'>司法确认地点</div> |
| | | <div className='judicial-item-content-left-c-content'>{preBookData?.meetAddr || '-'}</div> |
| | | </div> |
| | | <div className="judicial-item-content-left-c"> |
| | | <div className="judicial-item-content-left-c-title">司法确认地点</div> |
| | | <div className="judicial-item-content-left-c-content">{preBookData?.meetAddr || '-'}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </Modal> |
| | | </div> |
| | | ) |
| | | } |
| | | ); |
| | | }; |
| | | |
| | | export default Judicial |
| | | export default Judicial; |