/*
|
* @Company: hugeInfo
|
* @Author: lwh
|
* @Date: 2025-04-10 16:40:00
|
* @LastEditTime: 2025-04-14 16:08:55
|
* @LastEditors: lwh
|
* @Version: 1.0.0
|
* @Description: 申请记录组件
|
*/
|
import React, { useState, useEffect } from 'react';
|
import { useHistory } from 'react-router-dom';
|
import './index.less';
|
import { Scrollbars } from 'react-custom-scrollbars';
|
import * as $$ from '../../../../utils/utility';
|
// 列表接口
|
function listMyApplyRecordApi(data) {
|
return $$.ax.request({ url: `caseTask/listMyApplyRecord`, type: 'get', service: 'mediate', data });
|
}
|
|
const Sqjl = () => {
|
const history = useHistory();
|
const [recordList, setRecordList] = useState([]);
|
const [loading, setLoading] = useState(false);
|
const caseId = $$.getQueryString('caseId');
|
const caseTaskId = $$.getQueryString('caseTaskId');
|
|
// 获取申请记录列表
|
useEffect(() => {
|
fetchRecordList();
|
}, []);
|
|
// 获取申请记录数据
|
const fetchRecordList = async () => {
|
global.setSpinning(true);
|
const res = await listMyApplyRecordApi({ caseId });
|
global.setSpinning(false);
|
if (res.type) {
|
setRecordList(res.data || []);
|
}
|
};
|
|
// 获取申请状态标签
|
const getStatusTag = (object) => {
|
if (object.applyStatus === 0) {
|
return { text: '待审核', className: 'sqjl-tag-pending' };
|
} else {
|
if (object.auditResult) {
|
// 已审核
|
if (object.auditResult === '24_00004-1') {
|
return { text: '审核通过', className: 'sqjl-tag-passed' };
|
} else {
|
return { text: '审核不通过', className: 'sqjl-tag-rejected' };
|
}
|
}
|
}
|
};
|
|
// 处理查看详情
|
const handleViewDetail = (record) => {
|
if (record.object?.applyStatus === 0 && $$.getLocal('sqjl')) {
|
$$.setLocal('sqjl_record', record);
|
history.push(`/flow/sqjl/detail?caseId=${caseId}&caseTaskId=${caseTaskId}&text=${record.type}&btn=true`);
|
} else {
|
// 跳转将对象放入缓存中
|
$$.setLocal('sqjl_record', record);
|
history.push(`/flow/sqjl/detail?caseId=${caseId}&caseTaskId=${caseTaskId}&text=${record.type}`);
|
}
|
};
|
|
return (
|
<div className="sqjl-container">
|
<div className="sqjl-header">共{recordList.length}条记录</div>
|
<Scrollbars style={{ height: 'calc(100vh - 152px)', backgroundColor: '#F2F2F2' }}>
|
<div className="sqjl-list">
|
{recordList.map((record) => {
|
const { object } = record;
|
if (record.type === '回退申请') {
|
object.applyStatus = object.returnStatus;
|
object.applyTime = object.returnTime;
|
object.applyUnitName = object.returnUnitName;
|
object.applyUserName = object.returnUserName;
|
object.applyUserId = object.returnUserId;
|
}
|
if (record.type === '上报申请') {
|
object.applyStatus = object.applyStatus;
|
object.applyTime = object.appearTime;
|
object.applyUnitName = object.appearUnitName;
|
object.applyUserName = object.appearUserName;
|
object.applyUserId = object.appearUserId;
|
}
|
if (record.type === '司法确认申请') {
|
object.applyStatus = object.judicAudit === '24_00004-0' ? 0 : 1;
|
object.auditResult = object.judicAudit;
|
}
|
const statusTag = getStatusTag(object);
|
const isPending = !object.auditResult;
|
|
return (
|
<div key={object.id} className="sqjl-item">
|
<div className="sqjl-item-header">
|
<div className="sqjl-item-type">{record.type}</div>
|
<div className="sqjl-item-tags">
|
<span className={`sqjl-tag ${statusTag.className}`}>{statusTag.text}</span>
|
</div>
|
</div>
|
<div className="sqjl-item-content">
|
<div className="sqjl-item-info">
|
<div className="sqjl-item-row">
|
<span className="sqjl-item-label">申请时间:</span>
|
<span className="sqjl-item-value">{$$.timeFormat(object.applyTime)}</span>
|
</div>
|
<div className="sqjl-item-row">
|
<span className="sqjl-item-label">申请人:</span>
|
<span className="sqjl-item-value">{object.applyUserName}</span>
|
</div>
|
<div className="sqjl-item-row">
|
<span className="sqjl-item-label">申请部门:</span>
|
<span className="sqjl-item-value">{object.applyUnitName}</span>
|
</div>
|
</div>
|
<div className="sqjl-item-action">
|
<button className="sqjl-btn sqjl-btn-primary" onClick={() => handleViewDetail(record)}>
|
{isPending ? '审核' : '查看'}
|
</button>
|
</div>
|
</div>
|
</div>
|
);
|
})}
|
|
{recordList.length === 0 && !loading && <div className="sqjl-empty">暂无申请记录</div>}
|
</div>
|
</Scrollbars>
|
</div>
|
);
|
};
|
|
export default Sqjl;
|