/*
|
* @Company: hugeInfo
|
* @Author: ldh
|
* @Date: 2022-07-27 11:18:54
|
* @LastEditTime: 2022-12-01 10:08:11
|
* @LastEditors: ldh
|
* @Version: 1.0.0
|
* @Description: 司法确认分案 - 分案
|
*/
|
import React, { useState, useEffect } from 'react';
|
import { useSearchParams, useNavigate } from 'react-router-dom';
|
import { Row, Col, Space, Radio, Input, Button } from 'antd';
|
import { ScheduleOutlined, UserAddOutlined, ExclamationCircleFilled } from '@ant-design/icons';
|
import * as $$ from '../../../utils/utility';
|
import Page from '../../../components/Page';
|
import { JudicialApply } from '../../caseDetail/components';
|
import MyTabs from '../../../components/MyTabs';
|
import WantUserTag from '../../../components/WantUserTag';
|
import MyUpload from '../../../components/MyUpload';
|
import SelectObjModal from '../../../components/SelectObjModal';
|
|
const { TextArea } = Input;
|
|
// 获取退回信息
|
function getReturnMsgApi(submitData) {
|
return $$.ax.request({ url: `judicTask/getJudicInfo?taskId=${submitData}`, type: 'get', service: 'mediate' });
|
}
|
|
// 提交分案
|
function submitCaseApi(submitData) {
|
return $$.ax.request({ url: 'judicTask/handleTask', type: 'post', data: submitData, service: 'mediate' });
|
}
|
|
const JudicialDivisionDetail = () => {
|
const navigate = useNavigate();
|
|
const [searchParams] = useSearchParams();
|
|
const back = searchParams.get('back');
|
|
const taskId = searchParams.get('taskId');
|
|
const judicialId = searchParams.get('judicialId');
|
|
// pageHeader数据
|
const [headerData, setHeaderData] = useState({});
|
|
// 退回信息
|
const [returnData, setReturnData] = useState();
|
|
// tabs当前选择的标签信息
|
const [tabsActive, setTabsActive] = useState('JudicialDivisionDetail');
|
|
// 提交form
|
const [formData, setFormData] = useState({ assignType: '1' });
|
|
// 选择modal显隐
|
const [selectObjModal, setSelectObjModal] = useState({ visible: false, roleCode: '22_00024-5' });
|
|
function handleReturn() {
|
navigate(`${back}?isBack=true`, { replace: true });
|
}
|
|
//
|
function handleSubmit() {
|
if (!formData.handlerUserId) {
|
$$.info({ type: 'warning', content: '请选择承办法官' });
|
return;
|
}
|
$$.modalInfo({
|
title: '司法确认分案确认',
|
content: `确定将案件分派到「${formData.handlerUserName}」名下吗?`,
|
okText: '确定分案',
|
cancelText: '我再想想',
|
onOk: submitCase,
|
});
|
}
|
|
function handleChangeInput(key, value) {
|
if (key === '22_00024-5') {
|
formData.handlerUserId = value.keys[0];
|
formData.handlerUserName = value.items[0]?.name;
|
} else if (key === '22_00024-8') {
|
formData.judicAssistList = value.items.map((x) => {
|
return { assUserId: x.value, assUserName: x.name };
|
});
|
} else {
|
formData[key] = value;
|
}
|
setFormData({ ...formData });
|
}
|
|
// 分案
|
async function submitCase() {
|
global.setSpinning(true);
|
const res = await submitCaseApi({ ...formData, id: taskId });
|
global.setSpinning(false);
|
if (res.type) {
|
$$.infoSuccess({ content: '分案成功!后续可通过「司法确认总览」功能跟进案件进度与结果' });
|
await $$.sleep();
|
if (window.location.hash.indexOf('judicialDivisionDetail') !== -1) {
|
handleReturn();
|
}
|
}
|
}
|
|
// 获取退回信息
|
async function getReturnMsg() {
|
global.setSpinning(true);
|
const res = await getReturnMsgApi(taskId);
|
global.setSpinning(false);
|
if (res.type) {
|
setReturnData(res.data?.auditInfo);
|
}
|
}
|
|
// 初始化
|
useEffect(() => {
|
let returnRouteData = $$.getSessionStorage(back);
|
if (!!returnRouteData) {
|
setHeaderData(returnRouteData);
|
}
|
getReturnMsg();
|
}, [back, taskId]);
|
|
const tabs = [
|
{ label: '司法确认申请', key: 'judicialApply' },
|
{ label: '分案', key: 'JudicialDivisionDetail' },
|
];
|
|
return (
|
<Page
|
pageHead={{
|
title: headerData.title || '详情',
|
subtitle: '分派已经审查通过的司法确认案件',
|
breadcrumbData: [{ title: '司法确认分案', url: '/mediate/judicialDivision' }, { title: '分案' }],
|
handleReturn,
|
}}
|
>
|
<div className="caseDetail-tabs">
|
<MyTabs tabs={tabs} activeKey={tabsActive} onChange={(activeKey) => setTabsActive(activeKey)} />
|
</div>
|
<div className="caseDetail">
|
{tabsActive === 'judicialApply' && <JudicialApply judicialId={judicialId} />}
|
{tabsActive === 'JudicialDivisionDetail' && (
|
<div className="JudicialDivisionDetail">
|
{/* 退回提示 */}
|
{returnData && (
|
<div className="caseDetail-tui">
|
<ExclamationCircleFilled className="caseDetail-tui-icon" />
|
<span>
|
<span>承办法官退回</span>
|
<span className="public-rightBorder">退回时间:{$$.timeFormat(returnData.finishTime)}</span>
|
<span className="public-rightBorder">退回理由:{returnData.handleContent || '-'}</span>
|
<span className="public-rightBorder">退回人:{returnData.handlerUnitName || '-'}</span>
|
</span>
|
</div>
|
)}
|
<div className="caseDetail-card JudicialDivisionDetail-main">
|
<div className="caseDetail-cardTitle">
|
<Space size="small">
|
<div className="caseDetail-cardTitle-icon caseDetail-cardTitle-iconBlue">
|
<ScheduleOutlined />
|
</div>
|
<h5>分案操作</h5>
|
</Space>
|
</div>
|
<div className="caseDetail-cardMain">
|
<Row gutter={[16, 16]}>
|
<Col span={24}>
|
<h5>分案类型</h5>
|
<Radio.Group value={formData.assignType}>
|
<Space direction="vertical">
|
<Radio value={'1'}>
|
指派法官<span className="caseDetail-subtitle">(指派调解组织或调解员作为受理对象)</span>
|
</Radio>
|
{/* <Radio value={'2'}>指派庭办</Radio> */}
|
</Space>
|
</Radio.Group>
|
</Col>
|
<Col span={24}>
|
<h5>
|
承办法官
|
<span className="leftRequired">*</span>
|
</h5>
|
{formData.handlerUserId ? (
|
<WantUserTag
|
name={formData.handlerUserName}
|
onClose={() => setFormData({ ...formData, handlerUserId: undefined, handlerUserName: undefined })}
|
/>
|
) : (
|
<Button onClick={() => setSelectObjModal({ visible: true, roleCode: '22_00024-5' })} type="dashed" icon={<UserAddOutlined />}>
|
选择法官
|
</Button>
|
)}
|
</Col>
|
{/* TODO:暂无此选项 */}
|
{/* <Col span={24}>
|
<h5>助理/书记员</h5>
|
<Space size="middle">
|
{formData.judicAssistList?.map((x, t) => (
|
<WantUserTag
|
name={x.assUserName}
|
onClose={() => {
|
let arr = [...formData.judicAssistList];
|
arr.splice(t, 1);
|
setFormData({ ...formData, judicAssistList: arr });
|
}}
|
color="orange"
|
key={t}
|
/>
|
))}
|
<Button onClick={() => setSelectObjModal({ visible: true, roleCode: '22_00024-8' })} type="dashed" icon={<UserAddOutlined />}>
|
选择人员
|
</Button>
|
</Space>
|
</Col> */}
|
<Col span={24}>
|
<h5>分案备注</h5>
|
<TextArea
|
value={formData.handleContent}
|
onChange={(e) => handleChangeInput('handleContent', e.target.value)}
|
rows={2}
|
placeholder="简要说明分案给下一环节经办人开展工作的注意事项"
|
/>
|
</Col>
|
<Col span={24}>
|
<h5>上传附件</h5>
|
<MyUpload fileId={taskId} fileType="22_00018-501" />
|
</Col>
|
</Row>
|
</div>
|
<div style={{ marginBottom: '16px' }}>
|
<Button onClick={handleSubmit} type="primary">
|
提交
|
</Button>
|
</div>
|
</div>
|
<SelectObjModal
|
visible={selectObjModal.visible}
|
type="person"
|
isCheckbox={selectObjModal.roleCode === '22_00024-5' ? false : true}
|
checkKeys={
|
selectObjModal.roleCode === '22_00024-5'
|
? []
|
: formData.judicAssistList?.map((x) => {
|
return { value: x.assUserId, label: x.assUserName };
|
})
|
}
|
searchData={{ roleCode: selectObjModal.roleCode }}
|
onClose={() => setSelectObjModal({ visible: false })}
|
onOk={(value) => {
|
setSelectObjModal({ visible: false });
|
handleChangeInput(selectObjModal.roleCode, value);
|
}}
|
/>
|
</div>
|
)}
|
</div>
|
</Page>
|
);
|
};
|
|
export default JudicialDivisionDetail;
|