广州矛调粤政易端
xusd
7 days ago d27794814b69d18aeb8ee96a46cae91d5613570c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
 * @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;