/*
|
* @Company: hugeInfo
|
* @Author: ldh
|
* @Date: 2022-07-29 09:27:47
|
* @LastEditTime: 2022-12-05 11:28:38
|
* @LastEditors: ldh
|
* @Version: 1.0.0
|
* @Description: 我的调解-系列案反馈 and 我的司法确认-系列案反馈
|
*/
|
import React, { useState, useEffect, useRef } from 'react';
|
import { useSearchParams } from 'react-router-dom';
|
import { Descriptions, Space, Typography, Button, Row, Col, Radio, Input, Tooltip, Select, Checkbox, DatePicker } from 'antd';
|
import { ProfileOutlined, ScheduleOutlined } from '@ant-design/icons';
|
import * as $$ from '../../../utils/utility';
|
import NameCard from '../../../components/NameCard';
|
import FilesDrawer from '../../../components/FilesDrawer';
|
import { PlusOutlined, CloseCircleFilled } from '@ant-design/icons';
|
import MyUpload from '../../../components/MyUpload';
|
import MyModal from '../../../components/MyModal';
|
|
const { Text, Link, Paragraph } = Typography;
|
|
const { TextArea } = Input;
|
|
const { Option } = Select;
|
|
const { RangePicker } = DatePicker;
|
|
// 获取任务信息
|
function getCaseHandleDataApi(taskId, handleType) {
|
let url = handleType === 'mediation' ? 'caseTask/getTaskInfo' : 'judicTask/getTaskInfo';
|
return $$.ax.request({ url: `${url}?taskId=${taskId}`, type: 'get', service: 'mediate' });
|
}
|
|
// 获取纠纷信息
|
function getDisputeDataApi(submitData, handleType) {
|
let url = handleType === 'mediation' ? 'caseInfo/pcWindowCaseInfo' : 'judicInfo/pcWindowCaseInfo';
|
return $$.ax.request({ url: `${url}?id=${submitData}`, type: 'get', service: 'mediate' });
|
}
|
|
// 获取调解结果数据
|
function getDataApi(submitData, handleType) {
|
let url = handleType === 'mediation' ? 'caseInfo/pcWindowMeetUsers' : 'judicInfo/pcWindowMeetUsers';
|
return $$.ax.request({ url: `${url}?caseId=${submitData}`, type: 'get', service: 'mediate' });
|
}
|
|
// 调解结果反馈
|
function resultFeedbackApi(submitData) {
|
return $$.ax.request({ url: 'caseInfo/pcWindowInMediResult', type: 'post', data: submitData, service: 'mediate' });
|
}
|
|
// 司法确认结果反馈
|
function resultFeedback2Api(submitData) {
|
return $$.ax.request({ url: 'judicInfo/pcWindowInJudicResult', type: 'post', data: submitData, service: 'mediate' });
|
}
|
|
// 退回上一处理人接口
|
function returnTaskApi(submitData) {
|
return $$.ax.request({ url: 'caseTask/backTask', type: 'post', data: submitData, service: 'mediate' });
|
}
|
|
/**
|
* handleType, // mediation:调解;judicial:司法确认
|
*/
|
const CaseFolderFeedBack = ({ caseId, taskId, handleType, handleReturn }) => {
|
const [searchParams] = useSearchParams();
|
|
const back = searchParams.get('back');
|
|
const myUploadRef = useRef();
|
|
// form数据
|
const [formData, setFormData] = useState({});
|
|
// 数据
|
const [contentData, setContentData] = useState({});
|
|
// 纠纷信息
|
const [disputeData, setDisputeData] = useState({});
|
|
// 退回modal显隐
|
const [returnModalVisible, setReturnModalVisible] = useState(false);
|
|
// 退回理由
|
const [handleContent, setHandleContent] = useState();
|
|
// 处理时限,暂时取消,后续可根据需求改动
|
// const expireHours = $$.getHours(contentData.expireTime);
|
|
// 申请人,被申请人,其他人数据
|
const [data, setData] = useState({});
|
|
const str = handleType === 'mediation' ? '调解' : '司法确认';
|
|
function handleChangeInput(key, value) {
|
if (Array.isArray(key)) {
|
formData[key[0]] = value[0];
|
formData[key[1]] = value[1];
|
} else {
|
formData[key] = value;
|
}
|
setFormData({ ...formData });
|
}
|
|
// 文件展示
|
function handleChangeFile(file) {
|
$$.modalInfo({
|
content: '确定删除该文书吗?',
|
onOk: () => {
|
myUploadRef.current.handleDeleteFiles(file.id).then((res) => {
|
if (res) getData();
|
});
|
},
|
});
|
}
|
|
// 点击提交
|
function handleClickSubmit() {
|
if (handleType === 'mediation') {
|
$$.modalInfo({
|
title: '调解结果提交确认',
|
content: `确定提交本案的调解结果为「${formData.mediResultName}」吗?`,
|
okText: '确定提交',
|
cancelText: '我再想想',
|
onOk: () => resultFeedback(),
|
});
|
} else {
|
if (formData.judicResult === '22_00028-2' && !$$.verifyEmpty(formData.judicFalseCause)) {
|
$$.info({ type: 'warning', content: '请输入未达成原因' });
|
return;
|
}
|
$$.modalInfo({
|
title: '司法确认结果提交确认',
|
content: `确定提交本案的司法确认结果为「${formData.judicResultName}」吗?`,
|
okText: '确定提交',
|
cancelText: '我再想想',
|
onOk: () => resultFeedback2(),
|
});
|
}
|
}
|
|
// 获取数据
|
async function getData() {
|
global.setSpinning(true);
|
const res = await getDataApi(caseId, handleType);
|
global.setSpinning(false);
|
if (res.type) {
|
setData(res.data || {});
|
}
|
}
|
|
// 调解结果反馈
|
async function resultFeedback() {
|
let submitData = { ...formData, caseId, taskId };
|
if (submitData.mediResult === '22_00025-2') {
|
delete submitData.fulfilSitu;
|
delete submitData.fulfilSituName;
|
delete submitData.agreeContent;
|
if (submitData.civilStatus === '1') {
|
delete submitData.civilNo;
|
}
|
delete submitData.mediateBookNo;
|
delete submitData.mediateNo;
|
} else {
|
delete submitData.mediFalse;
|
delete submitData.mediFalseName;
|
delete submitData.civilStatus;
|
delete submitData.civilNo;
|
}
|
submitData.orderStartTime = $$.myTimeFormat(submitData.orderStartTime, 'YYYY-MM-DD HH:mm');
|
submitData.orderEndTime = $$.myTimeFormat(submitData.orderEndTime, 'YYYY-MM-DD HH:mm');
|
submitData.meetUserList = data.meetUserList.map((x) => {
|
return { id: x.id, signStatus: x.signStatus };
|
});
|
global.setSpinning(true);
|
const res = await resultFeedbackApi(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
$$.infoSuccess({ content: '调解结果提交成功!尊敬的调解员您辛苦了,即将为您跳转「我的调解」页面' });
|
await $$.sleep();
|
// 返回时返回到结束tab
|
let obj = $$.getSessionStorage(back);
|
$$.setSessionStorage(back, { ...obj, search: { ...obj.search, pageType: '3' } });
|
handleReturn();
|
}
|
}
|
|
// 司法确认结果反馈
|
async function resultFeedback2() {
|
let submitData = {
|
...formData,
|
judicFalseCause: formData.judicResult !== '22_00028-2' ? undefined : formData.judicFalseCause,
|
mediateJudicNo: formData.judicResult !== '22_00028-2' ? formData.mediateJudicNo : undefined,
|
caseId,
|
taskId,
|
};
|
submitData.orderStartTime = $$.myTimeFormat(submitData.orderStartTime, 'YYYY-MM-DD HH:mm');
|
submitData.orderEndTime = $$.myTimeFormat(submitData.orderEndTime, 'YYYY-MM-DD HH:mm');
|
submitData.meetUserList = data.meetUserList.map((x) => {
|
return { id: x.id, signStatus: x.signStatus };
|
});
|
global.setSpinning(true);
|
const res = await resultFeedback2Api(submitData);
|
global.setSpinning(false);
|
if (res.type) {
|
$$.infoSuccess({ content: '司法确认结果提交成功!尊敬的法官您辛苦了,即将为您跳转「我的司法确认」页面' });
|
await $$.sleep();
|
// 返回时返回到结束tab
|
let obj = $$.getSessionStorage(back);
|
$$.setSessionStorage(back, { ...obj, search: { ...obj.search, pageType: '2' } });
|
handleReturn();
|
}
|
}
|
|
// 退回提交
|
async function handleBackReasonSubmit() {
|
global.setSpinning(true);
|
const res = await returnTaskApi({ id: taskId, handleContent });
|
global.setSpinning(false);
|
if (res.type) {
|
$$.infoSuccess({ content: `退回成功,即将为您跳转「我的${str}」页面` });
|
await $$.sleep();
|
handleReturn();
|
}
|
}
|
|
useEffect(() => {
|
async function getAllData() {
|
global.setSpinning(true);
|
$$.ax.ax.all([getCaseHandleDataApi(taskId, handleType), getDisputeDataApi(caseId, handleType), getDataApi(caseId, handleType)]).then(
|
$$.ax.ax.spread(function (res1, res2, res3) {
|
global.setSpinning(false);
|
if (res1.type) {
|
setContentData(res1.data || {});
|
}
|
if (res2.type) {
|
let data = res2.data || {};
|
setDisputeData(data);
|
if (handleType === 'mediation') {
|
setFormData({
|
mediResult: $$.options.mediResult[0].value,
|
mediResultName: $$.options.mediResult[0].label,
|
fulfilSitu: data.fulfilSitu || $$.options.fulfilSitu[1].value,
|
fulfilSituName: data.fulfilSituName || $$.options.fulfilSitu[1].label,
|
civilStatus: '1',
|
mediFalse: $$.options.mediFalseCause[0].value,
|
mediFalseName: $$.options.mediFalseCause[0].label,
|
agreeContent: data.agreeContent,
|
mediateBookNo: data.mediateBookNo,
|
mediateNo: data.mediateNo,
|
handleContent: data.handleContent,
|
meetWay: $$.options.meetWay[0].value,
|
meetWayName: $$.options.meetWay[0].label,
|
});
|
} else {
|
setFormData({
|
judicResult: $$.options.judicResult[0].value,
|
judicResultName: $$.options.judicResult[0].label,
|
mediateJudicNo: data.mediateJudicNo,
|
handleContent: data.handleContent,
|
meetWay: $$.options.meetWay[0].value,
|
meetWayName: $$.options.meetWay[0].label,
|
});
|
}
|
}
|
if (res3.type) {
|
setData(res3.data || {});
|
}
|
})
|
);
|
}
|
getAllData();
|
}, [caseId, handleType, taskId]);
|
|
// 调解 and 司法确认的form
|
const formDom = () => {
|
if (handleType === 'mediation') {
|
// 调解
|
return (
|
<>
|
<Col span={24}>
|
<h5>调解结果</h5>
|
<Radio.Group
|
value={formData.mediResult}
|
onChange={(e) => handleChangeInput(['mediResult', 'mediResultName'], [e.target.value, e.target.label])}
|
>
|
<Space direction="vertical">
|
{$$.options.mediResult.map((x) => (
|
<Radio value={x.value} key={x.value} label={x.label}>
|
{x.label}
|
</Radio>
|
))}
|
</Space>
|
</Radio.Group>
|
</Col>
|
{formData.mediResult === '22_00025-2' ? (
|
<>
|
<Col span={24}>
|
<h5>调解不成功原因</h5>
|
<Radio.Group
|
value={formData.mediFalse}
|
onChange={(e) => handleChangeInput(['mediFalse', 'mediFalseName'], [e.target.value, e.target.label])}
|
>
|
<Space direction="vertical">
|
{$$.options.mediFalseCause.map((x) => (
|
<Radio value={x.value} key={x.value} label={x.label}>
|
{x.label}
|
</Radio>
|
))}
|
</Space>
|
</Radio.Group>
|
</Col>
|
<Col span={24}>
|
<h5>是否转诉讼案件</h5>
|
<Radio.Group value={formData.civilStatus} onChange={(e) => handleChangeInput('civilStatus', e.target.value)}>
|
<Space direction="vertical">
|
<Radio value={'1'}>否,未转诉讼</Radio>
|
<Radio value={'2'}>是,转诉讼</Radio>
|
</Space>
|
</Radio.Group>
|
</Col>
|
{formData.civilStatus === '2' && (
|
<Col span={24}>
|
<h5>诉讼案号</h5>
|
<Input
|
value={formData.civilNo}
|
onChange={(e) => handleChangeInput('civilNo', e.target.value)}
|
placeholder="输入审判业务系统的立案号(如有)"
|
allowClear
|
style={{ width: '354px' }}
|
/>
|
</Col>
|
)}
|
</>
|
) : (
|
<>
|
<Col span={24}>
|
<h5>履行情况</h5>
|
<Select
|
value={formData.fulfilSitu}
|
onChange={(value, options) => handleChangeInput(['fulfilSitu', 'fulfilSituName'], [value, options.label])}
|
style={{ width: '354px' }}
|
>
|
{$$.options.fulfilSitu.map((x) => (
|
<Option value={x.value} key={x.value} label={x.label}>
|
{x.label}
|
</Option>
|
))}
|
</Select>
|
</Col>
|
<Col span={24}>
|
<h5>达成的调解协议</h5>
|
<TextArea
|
value={formData.agreeContent}
|
onChange={(e) => handleChangeInput('agreeContent', e.target.value)}
|
placeholder="输入双方申请人达成的调解协议内容"
|
allowClear
|
rows={4}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>协议文书</h5>
|
<Row gutter={[24, 16]}>
|
{data.resultFileList
|
?.filter((item) => item.ownerType === '22_00018-302')[0]
|
?.fileList.map((x, t) => (
|
<Col span={12} key={t}>
|
<div className="public-fileCard">
|
<img src={$$.fileType(x.cat)} alt="" />
|
<div className="public-fileCard-main">
|
<Typography.Text ellipsis={{ tooltip: x.name }}>{x.name}</Typography.Text>
|
<Space size="middle" className="public-fileCard-action">
|
<Link onClick={() => myUploadRef.current.handleOpenFiles(x)}>预览</Link>
|
<Link onClick={() => myUploadRef.current.handleDownloadFiles(x)}>下载</Link>
|
</Space>
|
</div>
|
<div className="public-fileCard-del" onClick={() => handleChangeFile(x)}>
|
<CloseCircleFilled />
|
</div>
|
</div>
|
<div className="public-fileCard-text">
|
<div>制作人:{x.uploaderName || '-'}</div>
|
<div>制作时间:{$$.timeFormat(x.createTime)}</div>
|
</div>
|
</Col>
|
))}
|
<Col span={8}>
|
<MyUpload
|
type="diy"
|
fileId={caseId}
|
fileType="22_00018-302"
|
fileList={data.resultFileList?.filter((item) => item.ownerType === '22_00018-302')[0]?.fileList || []}
|
showFileList={false}
|
myUploadRef={myUploadRef}
|
handleChangeFile={(type) => {
|
if (type === 'success') getData();
|
}}
|
>
|
<Tooltip title="点击上传">
|
<div className="mediationWindow-document-plus">
|
<PlusOutlined style={{ fontSize: '24px', color: 'rgba(0,0,0,0.5)' }} />
|
</div>
|
</Tooltip>
|
</MyUpload>
|
</Col>
|
</Row>
|
</Col>
|
<Col span={24}>
|
<h5>诉前调书号</h5>
|
<Input
|
value={formData.mediateBookNo}
|
onChange={(e) => handleChangeInput('mediateBookNo', e.target.value)}
|
placeholder="输入审判业务系统的诉前调书号(如有)"
|
allowClear
|
style={{ width: '354px' }}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>诉前调解案号</h5>
|
<Input
|
value={formData.mediateNo}
|
onChange={(e) => handleChangeInput('mediateNo', e.target.value)}
|
placeholder="输入审判业务系统的诉前调解案号(如有)"
|
allowClear
|
style={{ width: '354px' }}
|
/>
|
</Col>
|
</>
|
)}
|
<Col span={24}>
|
<h5>人员参与情况(打勾代表参与调解)</h5>
|
{!data.meetUserList?.length && <div style={{ width: '354px' }}>{$$.MyEmpty()}</div>}
|
<Space direction="vertical">
|
{data.meetUserList?.map((x, t) => (
|
<Checkbox
|
key={t}
|
checked={x.signStatus === '2' ? true : false}
|
onChange={(e) => {
|
data.meetUserList[t].signStatus = e.target.checked ? '2' : '1';
|
setData({ ...data });
|
}}
|
>
|
{x.userName}
|
</Checkbox>
|
))}
|
</Space>
|
</Col>
|
<Col span={24}>
|
<h5>调解备注</h5>
|
<TextArea
|
value={formData.handleContent}
|
placeholder="简要对调解过程进行总结"
|
allowClear
|
rows={2}
|
onChange={(e) => handleChangeInput('handleContent', e.target.value)}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>上传附件</h5>
|
<MyUpload fileId={caseId} fileType="22_00018-305" fileList={data.sceneFileList || []} />
|
</Col>
|
</>
|
);
|
} else {
|
// 司法确认
|
return (
|
<>
|
<Col span={24}>
|
<h5>司法确认结果</h5>
|
<Radio.Group
|
value={formData.judicResult}
|
onChange={(e) => handleChangeInput(['judicResult', 'judicResultName'], [e.target.value, e.target.label])}
|
>
|
<Space direction="vertical">
|
{$$.options.judicResult.map((x) => (
|
<Radio value={x.value} key={x.value} label={x.label}>
|
{x.label}
|
</Radio>
|
))}
|
</Space>
|
</Radio.Group>
|
</Col>
|
{formData.judicResult === '22_00028-2' ? (
|
<Col span={24}>
|
<h5>
|
未达成原因<span className="leftRequired">*</span>
|
</h5>
|
<TextArea
|
value={formData.judicFalseCause}
|
onChange={(e) => handleChangeInput('judicFalseCause', e.target.value)}
|
placeholder="输入未达成的原因"
|
allowClear
|
rows={2}
|
/>
|
</Col>
|
) : (
|
<>
|
<Col span={24}>
|
<h5>裁定文书</h5>
|
<Row gutter={[24, 16]}>
|
{data.resultFileList
|
?.filter((item) => item.ownerType === '22_00018-405')[0]
|
?.fileList.map((x, t) => (
|
<Col span={12} key={t}>
|
<div className="public-fileCard">
|
<img src={$$.fileType(x.cat)} alt="" />
|
<div className="public-fileCard-main">
|
<Typography.Text ellipsis={{ tooltip: x.name }}>{x.name}</Typography.Text>
|
<Space size="middle" className="public-fileCard-action">
|
<Link onClick={() => myUploadRef.current.handleOpenFiles(x)}>预览</Link>
|
<Link onClick={() => myUploadRef.current.handleDownloadFiles(x)}>下载</Link>
|
</Space>
|
</div>
|
<div className="public-fileCard-del" onClick={() => handleChangeFile(x)}>
|
<CloseCircleFilled />
|
</div>
|
</div>
|
<div className="public-fileCard-text">
|
<div>制作人:{x.userName || '-'}</div>
|
<div>制作时间:{$$.timeFormat(x.createTime)}</div>
|
</div>
|
</Col>
|
))}
|
<Col span={8}>
|
<MyUpload
|
type="diy"
|
fileId={caseId}
|
fileType="22_00018-405"
|
fileList={data.resultFileList?.filter((item) => item.ownerType === '22_00018-405')[0]?.fileList || []}
|
showFileList={false}
|
myUploadRef={myUploadRef}
|
handleChangeFile={(type) => {
|
if (type === 'success') getData();
|
}}
|
>
|
<Tooltip title="点击上传">
|
<div className="mediationWindow-document-plus">
|
<PlusOutlined style={{ fontSize: '24px', color: 'rgba(0,0,0,0.5)' }} />
|
</div>
|
</Tooltip>
|
</MyUpload>
|
</Col>
|
</Row>
|
</Col>
|
<Col span={24}>
|
<h5>诉前调确号</h5>
|
<Input
|
value={formData.mediateJudicNo}
|
onChange={(e) => handleChangeInput('mediateJudicNo', e.target.value)}
|
placeholder="输入审判业务系统的诉前调确号(如有)"
|
allowClear
|
style={{ width: '354px' }}
|
/>
|
</Col>
|
</>
|
)}
|
<Col span={24}>
|
<h5>人员参与情况(打勾代表参与司法确认)</h5>
|
{!data.meetUserList?.length && <div style={{ width: '354px' }}>{$$.MyEmpty()}</div>}
|
<Space direction="vertical">
|
{data.meetUserList?.map((x, t) => (
|
<Checkbox
|
key={t}
|
checked={x.signStatus === '2' ? true : false}
|
onChange={(e) => {
|
data.meetUserList[t].signStatus = e.target.checked ? '2' : '1';
|
setData({ ...data });
|
}}
|
>
|
{x.userName}
|
</Checkbox>
|
))}
|
</Space>
|
</Col>
|
<Col span={24}>
|
<h5>司法确认备注</h5>
|
<TextArea
|
value={formData.handleContent}
|
placeholder="简要对司法确认过程进行总结"
|
allowClear
|
rows={2}
|
onChange={(e) => handleChangeInput('handleContent', e.target.value)}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>上传附件</h5>
|
<MyUpload fileId={caseId} fileType="22_00018-410" fileList={data.sceneFileList || []} />
|
</Col>
|
</>
|
);
|
}
|
};
|
|
return (
|
<div className="caseFolderFeedBack">
|
{/* 基本信息 */}
|
<div className="caseDetail-headerCard">
|
<div className="caseDetail-cardTitle">
|
<Space size="small">
|
<div className="caseDetail-cardTitle-icon caseDetail-cardTitle-iconGreen">
|
<ProfileOutlined />
|
</div>
|
<h5>任务信息</h5>
|
</Space>
|
</div>
|
<div className="caseDetail-descriptions">
|
<Descriptions size="small">
|
<Descriptions.Item label="任务名称">{contentData.taskNodeName || '-'}</Descriptions.Item>
|
<Descriptions.Item label="任务下达时间">{$$.timeFormat(contentData.createTime)}</Descriptions.Item>
|
{/* TODO:暂时取消,后续可根据需求改动 <Descriptions.Item label="处理时限">
|
<span className={expireHours.isNegativeNum ? 'public-danger' : ''}>{expireHours.hours}小时</span>
|
</Descriptions.Item> */}
|
<Descriptions.Item label="上一级处理人">
|
{contentData.lastUserName ? <NameCard name={contentData.lastUserName} userId={contentData.lastUserId} /> : <div>-</div>}
|
</Descriptions.Item>
|
<Descriptions.Item label="上一级处理说明">
|
<Text className="public-fontBg" ellipsis={{ tooltip: contentData.lastContent || '-' }}>
|
{contentData.lastContent || '-'}
|
</Text>
|
</Descriptions.Item>
|
<Descriptions.Item label="上一级处理附件">
|
<FilesDrawer filesData={contentData.lastFileInfoList} />
|
</Descriptions.Item>
|
</Descriptions>
|
</div>
|
</div>
|
{/* 调解反馈 and 司法确认反馈处理 */}
|
<div className="caseDetail-card caseFolderFeedBack-main">
|
<div className="caseDetail-cardTitle">
|
<Space size="small">
|
<div className="caseDetail-cardTitle-icon caseDetail-cardTitle-iconBlue">
|
<ScheduleOutlined />
|
</div>
|
<h5>{str}反馈</h5>
|
</Space>
|
</div>
|
<div className="caseDetail-cardMain">
|
<Row gutter={[16, 16]}>
|
<Col span={24}>
|
<h5>{str}时间</h5>
|
<RangePicker
|
onChange={(values) => handleChangeInput(['orderStartTime', 'orderEndTime'], [(values || [])[0], (values || [])[1]])}
|
value={formData.orderStartTime ? [formData.orderStartTime, formData.orderEndTime] : undefined}
|
showTime={{ format: 'HH:mm' }}
|
format="YYYY-MM-DD HH:mm"
|
style={{ width: '354px' }}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>{str}地点</h5>
|
<Input
|
onChange={(e) => handleChangeInput('meetAddr', e.target.value)}
|
value={formData.meetAddr}
|
placeholder={`输入${str}地点`}
|
allowClear
|
style={{ width: '354px' }}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>{str}方式</h5>
|
<Select
|
onChange={(value, options) => handleChangeInput(['meetWay', 'meetWayName'], [value, options.label])}
|
value={formData.meetWay}
|
placeholder={`请输入${str}方式`}
|
style={{ width: '354px' }}
|
>
|
{$$.options.meetWay.map((x) => (
|
<Option key={x.value} label={x.label}>
|
{x.label}
|
</Option>
|
))}
|
</Select>
|
</Col>
|
{formDom()}
|
</Row>
|
</div>
|
<div>
|
<Space size="middle">
|
<Button type="primary" onClick={handleClickSubmit}>
|
提交
|
</Button>
|
<Tooltip
|
placement="right"
|
title={
|
<div className="caseFolderFeedBack-copy">
|
在线视频{str}房间号:
|
<Paragraph style={{ margin: 0, display: 'inline-block', color: '#fff' }} copyable>
|
{disputeData.meetCloud?.roomNo || '-'}
|
</Paragraph>
|
</div>
|
}
|
>
|
<Button
|
onClick={() => {
|
if (!disputeData.meetCloud?.pcJoinUrl) {
|
$$.info({ type: 'warning', content: `抱歉!视频会议房间暂未创建,请先开始${str}` });
|
return;
|
}
|
window.open(disputeData.meetCloud.pcJoinUrl);
|
}}
|
className="public-mainBtn"
|
>
|
开启远程视频
|
</Button>
|
</Tooltip>
|
{/* 调解中,司法确认进行中不可退回 */}
|
{(disputeData.process !== '22_00006-3' || disputeData.process !== '22_00029-3') && (
|
<Button onClick={() => setReturnModalVisible(true)}>
|
退回上一环节
|
</Button>
|
)}
|
</Space>
|
</div>
|
</div>
|
{/* 调解 and 司法确认的退回modal */}
|
<MyModal
|
visible={returnModalVisible}
|
width={558}
|
onCancel={() => setReturnModalVisible(false)}
|
onOk={handleBackReasonSubmit}
|
okText="确定退回"
|
cancelText="我再想想"
|
>
|
<h4 style={{ marginBottom: '16px' }}>退回上一环节</h4>
|
<Row gutter={[16, 16]}>
|
<Col span={24}>
|
<h5>退回理由</h5>
|
<TextArea
|
rows={2}
|
value={handleContent}
|
onChange={(e) => setHandleContent(e.target.value)}
|
placeholder={handleType === 'mediation' ? '输入退回调解任务给上一级处理人的理由' : '输入退回司法确认任务给上一级处理人的理由'}
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>上传附件</h5>
|
<MyUpload fileId={taskId} fileType="22_00018-501" />
|
</Col>
|
</Row>
|
</MyModal>
|
</div>
|
);
|
};
|
|
export default CaseFolderFeedBack;
|