From 544148eddae96db824423cd059ebecb9d13c392e Mon Sep 17 00:00:00 2001 From: xusd <330628789@qq.com> Date: Thu, 19 Jun 2025 20:52:50 +0800 Subject: [PATCH] fix:市平台项目更新 --- src/views/judicialSubmit/courtEdit.jsx | 1605 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 874 insertions(+), 731 deletions(-) diff --git a/src/views/judicialSubmit/courtEdit.jsx b/src/views/judicialSubmit/courtEdit.jsx index 8583ad1..f33fc71 100644 --- a/src/views/judicialSubmit/courtEdit.jsx +++ b/src/views/judicialSubmit/courtEdit.jsx @@ -11,7 +11,7 @@ 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 { Scrollbars } from 'react-custom-scrollbars'; import * as $$ from '../../utils/utility'; import { useNavigate } from 'react-router-dom'; import ArcoUpload from '@/components/ArcoUpload'; @@ -33,803 +33,946 @@ const appUrl = $$.appUrl; // 司法确认详情接口 function getJudicInfoApi(submitData) { - return $$.ax.request({ url: 'judicInfo/getJudicInfo', type: 'get', data: submitData, service: 'mediate' }); + 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' }); + 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 } }); + 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, }); + 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 }); + 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 }); + 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 }); + 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 }); + 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 }); + 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' }); + 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 }); + 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 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 [caseCheckModal, setCaseCheckModal] = useState(false); - // 回显数据 - const [data, setData] = useState([]); - // 数据 - const [formData, setFormData] = useState({}); - const [caseData, setCaseData] = useState({}); + // 回显数据 + const [data, setData] = useState([]); + // 数据 + const [formData, setFormData] = useState({}); + const [caseData, setCaseData] = useState({}); + const [filesList, setFilesList] = useState([]); + // 司法确认部门单位 + const [listCourt, setListCourt] = useState([]); - const [filesList, setFilesList] = useState([]); - // 司法确认部门单位 - const [listCourt, setListCourt] = useState([]); + const [stepsNum, setStepsNum] = useState(0); - const [stepsNum, setStepsNum] = useState(0); + const [transactResult, setTransactResult] = useState(null); - const [transactResult, setTransactResult] = useState(null); + // 预添加预约 + const [preBookData, setPreBookData] = useState({}); + const [preBookVisible, setPreBookVisible] = useState(false); + const [radioVisible, setRadioVisible] = useState(false); - // 预添加预约 - 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(''); - // 选择法官弹窗 - 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); + } + } - 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: '删除成功!' }); + } + }; - //删除文件 - 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); - // 修改 - function handleChangeValue(key, value) { - formData[key] = value; - setFormData({ ...formData }); - } + $$.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); + } + } - // 提交申请 - 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); + // 保存调解视频 + async function saveVideo(caseId) { + const res = await saveVideoApi({ caseId }); + if (res.type) { + } + } - $$.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) - }, - }); + // 提交审核 + 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: '保存成功' }); + } + } - } - }) - } - } - if (type === 'draft') { - const data = formRef?.current.getFields(); - applyJudicial({ ...data, judicId, submitType: '2' }, type) - } - } + // 助理列表字典值选择 + 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 saveVideo(caseId) { - const res = await saveVideoApi({ caseId }) - if (res.type) { - } - } + // 回显数据 + 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); + } + } - // 提交审核 - 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: '保存成功' }); - } - } + // 视频调解部分 + // 添加预约重置 + 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 gatListCourt(data) { - global.setSpinning(true); - const res = await listAssistApi({ courtId: data?.courtId }); - global.setSpinning(false); - if (res.type) { - setListCourt(res.data || []) - } - } + // 添加预约提交 + 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); + } + } - // 回显数据 - 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 radioResetClick() { + formVideo.current.resetFields(); + } - // 视频调解部分 - // 添加预约重置 - function resetClick() { - form.current.resetFields() - form.current.setFieldValue() - } + function delClick() { + $$.modalInfo({ + title: '删除预约确认', + content: <div>确定删除该预约吗?</div>, + okText: '确定删除', + cancelText: '我再想想', + onOk: () => delMeetInfo({ id: preBookData.id }), + }); + } - 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 delMeetInfo(submitData) { + global.setSpinning(true); + const res = await delMeetInfoApi(submitData); + global.setSpinning(false); + if (res.type) { + $$.infoSuccess({ content: '删除成功' }); + setPreBookData({}); + } + } - // 添加预约提交 - 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); - } - } + // 获取预约调解记录 + 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 radioResetClick() { - formVideo.current.resetFields() - } + 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>; // 当前时间在时间范围之后 + } + } - function delClick() { - $$.modalInfo({ - title: '删除预约确认', - content: <div>确定删除该预约吗?</div>, - okText: '确定删除', - cancelText: '我再想想', - onOk: () => delMeetInfo({ id: preBookData.id }), - }); - } + async function getTransactResult(id) { + const res = await getTransactResultApi(id); + if (res.type) { + if (res.data) { + setTransactResult({ ...res.data }); + } else { + setTransactResult(null); + } + } + } - async function delMeetInfo(submitData) { - global.setSpinning(true); - const res = await delMeetInfoApi(submitData); - global.setSpinning(false); - if (res.type) { - $$.infoSuccess({ content: '删除成功' }); - setPreBookData({}) - } - } + //初始化 + useEffect(() => { + if (caseId) { + getMeetInfo(caseId); + getTransactResult(caseId); + } + if (judicId) { + getCaseData(); + getJudicialApply(); + } + }, []); - // 获取预约调解记录 - 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]) - } - } - } + 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)}> */} - 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 <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</> - }) - : <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 <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</> - }) - : <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 <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</> - }) - : <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 <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</> - }) - : <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 > - ); + <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; -- Gitblit v1.8.0