forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-09 4590bfea932d6bbde4e54e7ddc96e8bba65efe4c
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
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-03-08 11:05:09
 * @LastEditTime: 2022-11-23 18:03:31
 * @LastEditors: ldh
 * @Version: 1.0.0
 * @Description: 案件材料上传
 */
import React from 'react';
import PropTypes from 'prop-types';
import { Col, Row } from 'antd';
import { CheckOutlined } from '@ant-design/icons';
import MyUpload from '../../MyUpload';
import FilesTable from '../../FilesTable';
 
/**
 * materialTabs, // 材料arr
 * materialActive, // 选中材料
 * caseId, // 案件编号
 * fileInfoList, // 案件附件
 * setFormDataFiles, // 设置案件完善的附件table 数据
 * handleChangeTab, // 切换材料
 */
const MaterialEdit = ({ materialTabs, materialActive, caseId, fileInfoList, setFormDataFiles, handleChangeTab }) => {
    let files = fileInfoList?.filter((item) => item.ownerType === materialTabs[materialActive].value)[0]?.fileList || [];
 
    return (
        <Row gutter={[16, 16]}>
            {[...materialTabs].splice(1).map((x, t) => {
                return (
                    <Col span={8} key={t}>
                        <div
                            onClick={() => handleChangeTab(x, t + 1)}
                            className={`casePerfection-cardTab-tab ${t === materialActive - 1 && 'casePerfection-cardTab-tabActive'}`}
                        >
                            <img src={t === materialActive - 1 ? x.iconActive : x.icon} alt="" />
                            <div className="casePerfection-cardTab-tab-name">{x.label}</div>
                            {t === materialActive - 1 && (
                                <>
                                    <div className="casePerfection-cardTab-tab-triangle" />
                                    <CheckOutlined className="casePerfection-cardTab-tab-check" />
                                </>
                            )}
                        </div>
                    </Col>
                );
            })}
            <Col span={24}>
                <h5>已上传材料</h5>
                <FilesTable
                    isList={true}
                    data={files}
                    description={'尚未上传' + materialTabs[materialActive].label}
                    handleSuccessDelFile={(value) => setFormDataFiles('delete', materialTabs[materialActive].value, materialTabs[materialActive].label, value)}
                />
            </Col>
            <Col span={24}>
                <h5>材料上传</h5>
                <MyUpload
                    fileId={caseId}
                    fileType={materialTabs[materialActive].value}
                    showFileList={false}
                    fileList={files}
                    handleChangeFile={(type, info, apiResult) => {
                        if (type === 'success') {
                            setFormDataFiles('success', materialTabs[materialActive].value, materialTabs[materialActive].label, info.fileList);
                        }
                    }}
                />
            </Col>
            {/* TODO:材料自动合并功能暂无<Col span={24}>
                <h5>
                    材料自动合并
                    <Switch size="small" style={{ marginLeft: '8px' }} checked={mergeVisible} onClick={(checked) => setMergeVisible(checked)} />
                </h5>
                <div className="casePerfection-material-text">
                    {mergeVisible ? (
                        <span>
                            已帮您开启上传材料自动合并功能。您可上传前缀名称相同的材料图片,如:送达地址确认书-1.png,送达地址确认书-2.png,系统将自动为您合并为:送达地址确认书。
                        </span>
                    ) : (
                        <span>您已关闭材料自动合并功能,系统将不会对您上传同类材料自动整理与合并,仅显示材料上传的初始状态。</span>
                    )}
                </div>
            </Col> */}
        </Row>
    );
};
 
MaterialEdit.propTypes = {
    materialTabs: PropTypes.array,
    materialActive: PropTypes.number,
    caseId: PropTypes.string,
    fileInfoList: PropTypes.any,
    setFormDataFiles: PropTypes.func,
    handleChangeTab: PropTypes.func,
};
 
export default MaterialEdit;