/*
|
* @Company: hugeInfo
|
* @Author: lwh
|
* @Date: 2024-12-11 09:38:40
|
* @LastEditTime: 2024-12-17 16:04:55
|
* @LastEditors: lwh
|
* @Version: 1.0.0
|
* @Description: 司法确认
|
*/
|
import React, { Fragment, useState, useEffect, useRef } from 'react';
|
import { Row, Col, Space, Typography, Empty } from 'antd';
|
import { Input, Select, Radio, Modal, Button, Form, Divider, DatePicker, Alert } from '@arco-design/web-react';
|
import { IconInfoCircleFill } from '@arco-design/web-react/icon';
|
import { Scrollbars } from 'react-custom-scrollbars';
|
import * as $$ from '../../utils/utility';
|
import { useNavigate } from 'react-router-dom';
|
import ArcoUpload from '@/components/ArcoUpload';
|
import PreviewImage from '@/components/PreviewImage';
|
import NewPage from '../../components/NewPage';
|
import NameCard2 from '../../components/NameCard2';
|
import MyPDF from '../../components/MyPDF';
|
import SelectObjModal from '../../components/SelectObjModal/selectJudge';
|
import MyModal from '../../components/MyModal';
|
import CaseDetail from './CaseDetail';
|
import { del, empty, judicial_1, judicial_2, judicial_3, judicial_4, judicial_5, judicial_6 } from '../../assets/images';
|
import './index.less';
|
|
const FormItem = Form.Item;
|
const { Link, Text, Paragraph } = Typography;
|
const { RangePicker } = DatePicker;
|
const { TextArea } = Input;
|
const { Option } = Select;
|
const appUrl = $$.appUrl;
|
// 司法确认详情接口
|
function getJudicInfoApi(submitData) {
|
return $$.ax.request({ url: 'judicInfo/getJudicInfo', type: 'get', data: submitData, service: 'mediate' });
|
}
|
|
// 根据judicId获取案件信息
|
function getCaseDataApi(submitData) {
|
return $$.ax.request({ url: `caseInfo/getCaseInfo`, data: submitData, type: 'get', service: 'mediate' });
|
}
|
|
function delFile(id) {
|
return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
|
}
|
// 提交审核
|
function judicConfirmApi(submitData) {
|
return $$.ax.request({ url: `judicInfo/judicConfirm`, type: 'post', service: 'mediate', data: submitData });
|
}
|
// 获取助理列表
|
function listAssistApi(submitData) {
|
return $$.ax.request({ url: `ctUserole/listAssist`, type: 'get', service: 'cust', data: submitData });
|
}
|
|
// 删除预约
|
function delMeetInfoApi(data) {
|
return $$.ax.request({ url: `meetJudic/delMeetInfo`, type: 'get', service: 'mediate', data });
|
}
|
|
//添加预约
|
function addMeetInfoApi(data) {
|
return $$.ax.request({ url: `meetJudic/addMeetInfo`, type: 'post', service: 'mediate', data });
|
}
|
|
//添加会议号
|
function addRoomInfoApi(data) {
|
return $$.ax.request({ url: `meetJudic/addRoomInfo`, type: 'post', service: 'mediate', data });
|
}
|
|
//会议查询
|
function getMeetInfoApi(data) {
|
return $$.ax.request({ url: `meetJudic/getMeetInfo`, type: 'get', service: 'mediate', data });
|
}
|
|
// 办理结果(化解结果、协议文书等结案信息)
|
function getTransactResultApi(caseId) {
|
return $$.ax.request({ url: `caseInfoUnfold/getTransactResult?caseId=${caseId}`, type: 'get', service: 'mediate' });
|
}
|
|
function saveVideoApi(data) {
|
return $$.ax.request({ url: `meetJudic/saveVideo`, type: 'post', service: 'mediate', data });
|
}
|
|
const CourtAuditEdit = () => {
|
const formRef = useRef();
|
const form = useRef();
|
const formVideo = useRef();
|
let navigate = useNavigate();
|
const judicId = $$.getQueryString('judicId');
|
const caseId = $$.getQueryString('caseId');
|
const caseTaskId = $$.getQueryString('caseTaskId');
|
|
const [caseCheckModal, setCaseCheckModal] = useState(false);
|
|
// 回显数据
|
const [data, setData] = useState([]);
|
// 数据
|
const [formData, setFormData] = useState({});
|
const [caseData, setCaseData] = useState({});
|
|
const [filesList, setFilesList] = useState([]);
|
// 司法确认部门单位
|
const [listCourt, setListCourt] = useState([]);
|
|
const [stepsNum, setStepsNum] = useState(0);
|
|
const [transactResult, setTransactResult] = useState(null);
|
|
// 预添加预约
|
const [preBookData, setPreBookData] = useState({});
|
const [preBookVisible, setPreBookVisible] = useState(false);
|
const [radioVisible, setRadioVisible] = useState(false);
|
|
// 选择法官弹窗
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
const [selectObjModalData, setSelectObjModalData] = useState({});
|
// 司法确认结果是否同意
|
const [agree, setAgree] = useState('');
|
|
function handleChangeFile(type, info, apiResult) {
|
console.log('handleChangeFile', type, info, apiResult);
|
let list = info.fileList ? info.fileList : [];
|
// .map(item => ({ ...item, name: item.trueName }))
|
setFilesList(list);
|
// setResult(apiResult)
|
console.log('list', list);
|
if (list.length >= 1) {
|
setStepsNum(1);
|
} else {
|
setStepsNum(0);
|
}
|
}
|
|
//删除文件
|
const handleDelFile = async (id) => {
|
const res = await delFile(id);
|
if (res.type) {
|
$$.infoSuccess({ content: '删除成功!' });
|
}
|
};
|
|
// 修改
|
function handleChangeValue(key, value) {
|
formData[key] = value;
|
setFormData({ ...formData });
|
}
|
|
// 提交申请
|
function handleApply(type) {
|
if (type === 'submit') {
|
if (formRef.current) {
|
formRef.current.validate(undefined, (errors, values) => {
|
if (!errors) {
|
const data = formRef?.current.getFields();
|
console.log('data', data);
|
|
$$.arcoModalInfo({
|
icon: <IconInfoCircleFill style={{ color: '#1A6FB8' }} />,
|
title: '提醒',
|
closable: false,
|
style: { borderRadius: '8px' },
|
content: <span>确定办结该司法确认吗?</span>,
|
okText: '确定',
|
cancelText: '我再想想',
|
onOk: () => {
|
applyJudicial({ ...data, judicId, submitType: '1' }, type);
|
saveVideo(caseId);
|
},
|
});
|
}
|
});
|
}
|
}
|
if (type === 'draft') {
|
const data = formRef?.current.getFields();
|
applyJudicial({ ...data, judicId, submitType: '2' }, type);
|
}
|
}
|
|
// 保存调解视频
|
async function saveVideo(caseId) {
|
const res = await saveVideoApi({ caseId });
|
if (res.type) {
|
}
|
}
|
|
// 提交审核
|
async function applyJudicial(data, type) {
|
global.setSpinning(true);
|
const res = await judicConfirmApi(data);
|
global.setSpinning(false);
|
if (res.type) {
|
navigate(-1);
|
type === 'draft' && $$.infoSuccess({ content: '保存成功' });
|
}
|
}
|
|
// 助理列表字典值选择
|
async function gatListCourt(data) {
|
global.setSpinning(true);
|
const res = await listAssistApi({ courtId: data?.courtId });
|
global.setSpinning(false);
|
if (res.type) {
|
setListCourt(res.data || []);
|
}
|
}
|
|
// 回显数据
|
async function getJudicialApply() {
|
global.setSpinning(true);
|
const res = await getJudicInfoApi({ judicId });
|
global.setSpinning(false);
|
if (res.type) {
|
setData(res.data);
|
gatListCourt(res.data || {});
|
formRef.current.setFieldsValue(res.data || {});
|
setAgree(res.data?.judicResult || '');
|
}
|
}
|
async function getCaseData() {
|
global.setSpinning(true);
|
const res = await getCaseDataApi({ id: caseId });
|
global.setSpinning(false);
|
if (res.type) {
|
const { agentList, personList, ...rest } = res.data;
|
const parList = agentList.concat(personList);
|
const newParList =
|
parList?.map((item) => {
|
const fileInfoList = item.fileInfoList;
|
let file = []; //身份证明材料、企业登记材料
|
let file1 = []; //法人、机构身份证明材料、代理人授权委托书
|
if (fileInfoList && fileInfoList.length != 0) {
|
fileInfoList.forEach((item) => {
|
if (item.ownerType == '22_00018-202' || item.ownerType == '22_00018-203') {
|
item.fileList.forEach((res) => {
|
file.push({
|
...res,
|
uid: res.id,
|
});
|
});
|
}
|
if (item.ownerType == '22_00018-204' || item.ownerType == '22_00018-207') {
|
item.fileList.forEach((res) => {
|
file1.push({
|
...res,
|
uid: res.id,
|
});
|
});
|
}
|
});
|
}
|
return {
|
...item,
|
file,
|
file1,
|
};
|
}) || [];
|
const obj = {
|
...rest,
|
fakeData: newParList,
|
};
|
setCaseData(obj);
|
}
|
}
|
|
// 视频调解部分
|
// 添加预约重置
|
function resetClick() {
|
form.current.resetFields();
|
form.current.setFieldValue();
|
}
|
|
function submitClick() {
|
if (form.current) {
|
form.current.validate(undefined, (errors, values) => {
|
if (!errors) {
|
let submitData = form.current.getFields();
|
submitData.orderStartTime = submitData.time[0];
|
submitData.orderEndTime = submitData.time[1];
|
delete submitData.time;
|
console.log('submitData', submitData);
|
// submitData.
|
$$.modalInfo({
|
title: '添加预约调解确认',
|
content: (
|
<div>
|
确认添加预约<span className="public-color">{submitData.orderStartTime}</span>-
|
<span className="public-color">{submitData.orderEndTime}</span>的调解吗?
|
</div>
|
),
|
okText: '确定添加',
|
cancelText: '我再想想',
|
onOk: () => addMeetInfo({ caseId, ...submitData }),
|
});
|
}
|
});
|
}
|
}
|
// 添加预约提交
|
async function addMeetInfo(submitData) {
|
global.setSpinning(true);
|
const res = await addMeetInfoApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
setPreBookVisible(false);
|
form.current.resetFields();
|
getMeetInfo(caseId);
|
}
|
}
|
function radioSubmitClick() {
|
if (formVideo.current) {
|
formVideo.current.validate(undefined, (errors, values) => {
|
if (!errors) {
|
let submitData = formVideo.current.getFields();
|
submitData.orderStartTime = submitData.time[0];
|
submitData.orderEndTime = submitData.time[1];
|
delete submitData.time;
|
console.log('submitData', submitData);
|
$$.modalInfo({
|
title: '创建视频号确认',
|
content: (
|
<div>
|
确认创建<span className="public-color">{submitData.orderStartTime}</span>-
|
<span className="public-color">{submitData.orderEndTime}</span>的视频号吗?
|
</div>
|
),
|
okText: '确定创建',
|
cancelText: '我再想想',
|
onOk: () => addRoomInfo({ caseId, ...submitData }),
|
});
|
}
|
});
|
}
|
}
|
|
// 添加预约提交
|
async function addRoomInfo(submitData) {
|
global.setSpinning(true);
|
const res = await addRoomInfoApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
setRadioVisible(false);
|
formVideo.current.resetFields();
|
getMeetInfo(caseId);
|
}
|
}
|
|
function radioResetClick() {
|
formVideo.current.resetFields();
|
}
|
|
function delClick() {
|
$$.modalInfo({
|
title: '删除预约确认',
|
content: <div>确定删除该预约吗?</div>,
|
okText: '确定删除',
|
cancelText: '我再想想',
|
onOk: () => delMeetInfo({ id: preBookData.id }),
|
});
|
}
|
|
async function delMeetInfo(submitData) {
|
global.setSpinning(true);
|
const res = await delMeetInfoApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
$$.infoSuccess({ content: '删除成功' });
|
setPreBookData({});
|
}
|
}
|
|
// 获取预约调解记录
|
async function getMeetInfo(id) {
|
global.setSpinning(true);
|
const res = await getMeetInfoApi({ caseId: id });
|
global.setSpinning(false);
|
if (res.type) {
|
let list = res.data || [];
|
if (list?.length > 0) {
|
setPreBookData(list[0]);
|
}
|
}
|
}
|
|
function checkTimeRange(startTime, endTime, currentTime) {
|
if (currentTime < new Date(startTime)) {
|
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>; // 当前时间在时间范围之后
|
}
|
}
|
|
async function getTransactResult(id) {
|
const res = await getTransactResultApi(id);
|
if (res.type) {
|
if (res.data) {
|
setTransactResult({ ...res.data });
|
} else {
|
setTransactResult(null);
|
}
|
}
|
}
|
|
//初始化
|
useEffect(() => {
|
if (caseId) {
|
getMeetInfo(caseId);
|
getTransactResult(caseId);
|
}
|
if (judicId) {
|
getCaseData();
|
getJudicialApply();
|
}
|
}, []);
|
|
return (
|
<NewPage pageHead={{ breadcrumbData: [{ title: '工作台' }, { title: '司法确认' }], title: '司法确认' }}>
|
<Fragment>
|
<Scrollbars style={{ height: 'calc(100vh - 219px)' }} autoHide>
|
<div className=" dataSync-noScrollPage">
|
<Row gutter={[16, 16]}>
|
<Col span={24}>
|
<Space>
|
<div className="MediationInfo-subTitle"></div>
|
<span style={{ fontSize: '16px', lineHeight: '24px' }}>申请信息</span>
|
</Space>
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">案件信息</div>
|
{/* <div className='judicialSubmit-audit-case' onClick={() => setCaseCheckModal(true)}> */}
|
|
<div
|
className="judicialSubmit-audit-case"
|
onClick={() => window.open(`${$$.windowUrl}/windowDetail?caseTaskId=${caseTaskId}&caseId=${caseId}`)}
|
>
|
<div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
|
<div>
|
<img src={judicial_5} alt="" srcset="" />
|
</div>
|
<div>
|
<div className="judicialSubmit-audit-case-flex">
|
<div>承办部门:{transactResult?.mediateUnitName || '-'}</div>
|
<div className="judicialSubmit-audit-case-subTitle">
|
申请方:
|
{caseData.fakeData?.filter((i) => i.perType === '15_020008-1')?.length === 1
|
? caseData.fakeData?.filter((i) => i.perType === '15_020008-1')[0].trueName
|
: caseData.fakeData?.filter((i) => i.perType === '15_020008-1')?.length > 1
|
? `${caseData.fakeData?.filter((i) => i.perType === '15_020008-1')[0].trueName}...等共${
|
caseData.fakeData?.filter((i) => i.perType === '15_020008-1')?.length
|
}人`
|
: '-'}{' '}
|
| 被申请方:
|
{caseData.fakeData?.filter((i) => i.perType === '15_020008-2')?.length === 1
|
? caseData.fakeData?.filter((i) => i.perType === '15_020008-1')[0].trueName
|
: caseData.fakeData?.filter((i) => i.perType === '15_020008-2')?.length > 1
|
? `${caseData.fakeData?.filter((i) => i.perType === '15_020008-2')[0].trueName}...等共${
|
caseData.fakeData?.filter((i) => i.perType === '15_020008-2')?.length
|
}人`
|
: '-'}
|
</div>
|
</div>
|
<div className="judicialSubmit-audit-case-subTitle">
|
办结时间:{$$.minuteFormat(transactResult?.closeTime)} | {transactResult?.mediResultName || '-'}
|
</div>
|
</div>
|
</div>
|
<div>
|
<img src={judicial_6} alt="" srcset="" />
|
</div>
|
</div>
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">申请理由</div>
|
<div className="public-infoSubTitle">{data?.applyContent || '-'}</div>
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">调解协议书</div>
|
{data?.fileList?.find((i) => i.ownerType === '22_00018-302')?.fileList?.length ? (
|
data?.fileList
|
?.find((i) => i.ownerType === '22_00018-302')
|
?.fileList?.map((item, index) => {
|
return (
|
<>
|
<MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
|
</>
|
);
|
})
|
) : (
|
<div className="public-infoSubTitle">-</div>
|
)}
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">非诉讼调解协议司法确认申请书</div>
|
{data?.fileList?.find((i) => i.ownerType === '22_00018-402')?.fileList?.length ? (
|
data?.fileList
|
?.find((i) => i.ownerType === '22_00018-402')
|
?.fileList?.map((item, index) => {
|
return (
|
<>
|
<MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
|
</>
|
);
|
})
|
) : (
|
<div className="public-infoSubTitle">-</div>
|
)}
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">诉前联调协议案件移送函</div>
|
{data?.fileList?.find((i) => i.ownerType === '22_00018-403')?.fileList?.length ? (
|
data?.fileList
|
?.find((i) => i.ownerType === '22_00018-403')
|
?.fileList?.map((item, index) => {
|
return (
|
<>
|
<MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
|
</>
|
);
|
})
|
) : (
|
<div className="public-infoSubTitle">-</div>
|
)}
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">送达地址确认书</div>
|
{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>
|
)}
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">申请时间</div>
|
<div className="public-infoSubTitle">{$$.minuteFormat(data?.applyTime)}</div>
|
</Col>
|
<Col span={24}>
|
<div className="public-infoTitle">申请人</div>
|
<div className="public-infoSubTitle">
|
<span className="public-nameCard2">
|
{data?.applyUnitName}
|
<NameCard2 name={data.applyUserName} userId={data.applyUserId} />
|
</span>
|
</div>
|
</Col>
|
</Row>
|
</div>
|
<div style={{ height: '16px' }}></div>
|
<div className=" dataSync-noScrollPage">
|
<Row gutter={[20, 20]}>
|
<Col span={24}>
|
<Space>
|
<div className="MediationInfo-subTitle"></div>
|
<span style={{ fontSize: '16px', lineHeight: '24px' }}>司法确认信息</span>
|
</Space>
|
</Col>
|
<Col span={24}>
|
<table style={{ marginBottom: '0px' }} border="1" align="center" cellpadding="6" className="table">
|
<tr>
|
<th bgcolor="#F7F8FA" className="table-title" width="120">
|
承办法官
|
</th>
|
<td width="380">
|
<div className="public-infoSubTitle">
|
<NameCard2 name={data.judgeName} userId={data.judicId} />
|
</div>
|
</td>
|
<th bgcolor="#F7F8FA" className="table-title" width="120">
|
助理/书记员
|
</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>
|
</table>
|
</Col>
|
<Col span={24}>
|
<div className="judicial-item" style={{ marginTop: '0', marginRight: '0' }}>
|
<div className="handle-content-empty judicial-item-left">
|
<div className="judicial-item-title">
|
<img src={judicial_1} alt="" srcset="" />
|
预约信息
|
</div>
|
{preBookData?.orderStartTime ? (
|
<div className="judicial-item-content">
|
<div className="judicial-item-content-left">
|
<div onClick={() => delClick()} 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>
|
</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>
|
<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>
|
<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) => {
|
$$.catchApiError('复制失败', err);
|
});
|
}}
|
className="public-color public-a"
|
>
|
复制
|
</span>
|
)}
|
</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>
|
) : (
|
<Empty description={<span className="empty-text">暂无数据</span>} image={empty}>
|
<Button onClick={() => setPreBookVisible(true)} type="outline">
|
添加预约
|
</Button>
|
</Empty>
|
)}
|
</div>
|
<div className="handle-content-empty judicial-item-left">
|
<div className="judicial-item-title">
|
<img src={judicial_2} alt="" srcset="" />
|
远程视频司法确认
|
</div>
|
{preBookData?.orderStartTime ? (
|
<div className="judicial-item-video">
|
<div className="judicial-item-video-flex">
|
<div className="judicial-item-video-img">
|
<img src={judicial_4} alt="" srcset="" />
|
</div>
|
<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) => {
|
$$.catchApiError('复制失败', err);
|
});
|
}}
|
className="public-color public-a"
|
>
|
复制
|
</span>
|
)}
|
</div>
|
<div style={{ color: '#4E5969', marginTop: '4px' }}>
|
{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}
|
{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}-{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}
|
</div>
|
</div>
|
</div>
|
<Alert type="info" content={<span>请使用小鱼易连客户端加入该号码连线</span>} />
|
</div>
|
) : (
|
<Empty description={<span className="empty-text">暂无数据</span>} image={empty}>
|
<Button onClick={() => setRadioVisible(true)} type="outline">
|
创建视频号
|
</Button>
|
</Empty>
|
)}
|
</div>
|
</div>
|
</Col>
|
</Row>
|
</div>
|
<div className=" dataSync-noScrollPage">
|
<Form
|
ref={formRef}
|
layout="vertical"
|
requiredSymbol={false}
|
scrollToFirstError={true}
|
onChange={(first, allValues) => {
|
if (first?.judicResult) {
|
setAgree(first?.judicResult);
|
formRef.current.clearFields();
|
formRef.current.setFieldsValue({
|
judicResult: first.judicResult,
|
});
|
}
|
}}
|
initialValues={{}} //默认值
|
>
|
<Row>
|
<Col span={24}>
|
<FormItem
|
label={<div style={{ display: 'flex' }}>司法确认结果</div>}
|
field="judicResult"
|
rules={[{ required: true, message: '请选择司法确认结果' }]}
|
>
|
<Radio.Group>
|
<Space direction="vertical">
|
{[
|
{ value: '22_00028-1', label: '已达成' },
|
{ value: '22_00028-2', label: '未达成' },
|
].map((x) => (
|
<Radio value={x.value} key={x.value} label={x.label}>
|
{x.label}
|
</Radio>
|
))}
|
</Space>
|
</Radio.Group>
|
</FormItem>
|
</Col>
|
{/* 未达成 */}
|
{agree === '22_00028-2' && (
|
<>
|
<Col span={24}>
|
<FormItem
|
label={
|
<div style={{ display: 'flex' }}>
|
未达成原因<div className="must">必填</div>
|
</div>
|
}
|
field="judicFalseCause"
|
rules={[{ required: true, message: '未达成原因不能为空' }]}
|
>
|
<TextArea rows={5} maxLength={256} autoSize={{ minRows: 4, maxRows: 8 }} placeholder="请填写" />
|
</FormItem>
|
</Col>
|
</>
|
)}
|
{agree === '22_00028-1' && (
|
<>
|
<Col span={24} className="doubleFile">
|
<div style={{ display: 'flex', marginBottom: '8px' }}>
|
裁定文书<div className="must">必填</div>
|
</div>
|
<ArcoUpload
|
params={{
|
action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${caseId}&&ownerId=${judicId}&ownerType=22_00018-405`,
|
}}
|
formItemParams={{
|
rules: [{ message: '请上传裁定文书', required: true }],
|
}}
|
field="filesList"
|
label=""
|
editData={{
|
filesList: filesList || [],
|
}}
|
handleDelFile={handleDelFile}
|
onFileListChange={(v) => {
|
let newList = v?.map((item) => {
|
if (item.response) {
|
return item.response.data[0];
|
} else {
|
return item;
|
}
|
});
|
setFilesList(newList);
|
}}
|
/>
|
</Col>
|
<Col span={24} className="doubleFile">
|
<div style={{ display: 'flex', marginBottom: '8px' }}>询问笔录</div>
|
<ArcoUpload
|
params={{
|
action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${caseId}&&ownerId=${judicId}&ownerType=22_00018-401`,
|
}}
|
field="filesList1"
|
label=""
|
editData={{
|
filesList1: filesList || [],
|
}}
|
handleDelFile={handleDelFile}
|
onFileListChange={(v) => {
|
let newList = v?.map((item) => {
|
if (item.response) {
|
return item.response.data[0];
|
} else {
|
return item;
|
}
|
});
|
setFilesList(newList);
|
}}
|
/>
|
</Col>
|
<Col span={24}>
|
<FormItem label={<div style={{ display: 'flex' }}>诉前调确号</div>} field="mediateJudicNo">
|
<Input style={{ width: '450px' }} placeholder="请填写审判系统中的诉前调确号(如有)" allowClear />
|
</FormItem>
|
</Col>
|
<Col span={24}>
|
<FormItem label={<div style={{ display: 'flex' }}>结案说明</div>} field="judicContent">
|
<TextArea rows={5} maxLength={256} autoSize={{ minRows: 4, maxRows: 8 }} placeholder="请填写" />
|
</FormItem>
|
</Col>
|
</>
|
)}
|
</Row>
|
</Form>
|
</div>
|
</Scrollbars>
|
<div className="dataSync-excel">
|
<Space size="large" style={{ margin: '4px 14px' }}>
|
<Button onClick={() => handleApply('submit')} type="primary" className="dialogPrimary">
|
办结
|
</Button>
|
<Button onClick={() => handleApply('draft')} type="outline" className="dialogPrimary">
|
保存
|
</Button>
|
<Button type="secondary" onClick={() => navigate(-1)}>
|
返回上级页面
|
</Button>
|
</Space>
|
</div>
|
</Fragment>
|
<MyModal width={1200} visible={caseCheckModal} onCancel={() => setCaseCheckModal(false)} footer={false}>
|
<CaseDetail caseId={caseId} caseData={caseData} />
|
</MyModal>
|
<Modal
|
title="添加预约"
|
style={{ width: '40%' }}
|
className="judicial-handle-modal"
|
onCancel={() => setPreBookVisible(false)}
|
visible={preBookVisible}
|
footer={null}
|
>
|
<Row style={{ height: '480px', position: 'relative' }}>
|
<Col span={24}>
|
<Form
|
ref={form}
|
layout="vertical"
|
requiredSymbol={false}
|
initialValues={{
|
meetWay: '22_00021-3',
|
meetWayName: '线上 + 线下',
|
}} //默认值
|
scrollToFirstError
|
>
|
<Row>
|
<Col span={24}>
|
<Form.Item
|
rules={[{ required: true, message: '请选择预约调解时间' }]}
|
label={
|
<div style={{ display: 'flex' }}>
|
预约调解时间<div className="must">必填</div>
|
</div>
|
}
|
field="time"
|
>
|
<RangePicker showTime={{ format: 'HH:mm' }} allowClear={true} style={{ width: '100%' }} />
|
</Form.Item>
|
</Col>
|
<Col span={24}>
|
<FormItem label="纠纷化解方式" field="meetWay">
|
<Select
|
placeholder="请选择"
|
allowClear={false}
|
options={$$.options.meetWay}
|
onChange={(value, options) => {
|
form.current.setFieldValue('meetWayName', options && options.children);
|
}}
|
/>
|
</FormItem>
|
</Col>
|
<Col span={24}>
|
<FormItem label="纠纷化解地点" field="meetAddr">
|
<Input placeholder="请填写" />
|
</FormItem>
|
</Col>
|
</Row>
|
</Form>
|
<div style={{ display: 'flex', alignItems: 'center', gap: '16px', position: 'absolute', bottom: '0' }}>
|
<Button type="primary" onClick={() => submitClick()}>
|
提交
|
</Button>
|
<Button onClick={() => resetClick()} danger>
|
重置
|
</Button>
|
</div>
|
</Col>
|
</Row>
|
</Modal>
|
<Modal
|
title="创建远程调解视频号"
|
style={{ width: '40%' }}
|
className="judicial-handle-modal"
|
onCancel={() => setRadioVisible(false)}
|
visible={radioVisible}
|
footer={null}
|
>
|
<Row style={{ height: '480px', position: 'relative' }}>
|
<Col span={24}>
|
<Form ref={formVideo} layout="vertical" requiredSymbol={false} scrollToFirstError>
|
<Row>
|
<Col span={24}>
|
<Form.Item
|
style={{ marginBottom: '8px' }}
|
rules={[{ required: true, message: '请选择有效期' }]}
|
label={
|
<div style={{ display: 'flex' }}>
|
有效期<div className="must">必填</div>
|
</div>
|
}
|
field="time"
|
>
|
<RangePicker showTime={{ format: 'HH:mm' }} allowClear={true} style={{ width: '100%' }} />
|
</Form.Item>
|
<Alert type="info" content={<span>创建成功后请在有效期内使用小鱼易连客户端加入该号码连线</span>} />
|
</Col>
|
</Row>
|
</Form>
|
<div style={{ display: 'flex', alignItems: 'center', gap: '16px', position: 'absolute', bottom: '0' }}>
|
<Button type="primary" onClick={() => radioSubmitClick()}>
|
提交
|
</Button>
|
<Button onClick={() => radioResetClick()} danger>
|
重置
|
</Button>
|
</div>
|
</Col>
|
</Row>
|
</Modal>
|
</NewPage>
|
);
|
};
|
|
export default CourtAuditEdit;
|