广州矛调粤政易端
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
139
140
141
142
143
144
145
146
147
148
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-08-18 10:46:51
 * @LastEditTime: 2022-12-27 14:31:33
 * @LastEditors: ldh
 * @Version: 1.0.0
 * @Description: 到访详情 - 居民信息展示组件
 */
import React from 'react';
import { Space } from 'dingtalk-design-mobile';
import Descriptions from '../Descriptions';
import { dateFormat, getAgeByIdcard } from '../../utils/utility';
 
// contrast: []  // 对比后更改的字段集合
const PersonMsg = ({ data, contrast = [] }) => {
    function setBg(key) {
        return contrast.includes(key) ? 'personMsg-redBg' : '';
    }
 
    const liveData = [
        { label: '住所类型', value: <span className={setBg('livePlaceDesc')}>{data.livePlaceDesc || '-'}</span> },
        { label: '与户主的关系', value: <span className={setBg('roleofhold')}>{data.roleofhold || '-'}</span> },
        {
            label: '是否在住',
            value: <span className={setBg('liveStatus')}>{data.liveStatus === '0' ? '不在住' : data.liveStatus === '1' ? '在住' : '-'}</span>,
        },
        { label: '居住月份', value: <span className={setBg('stayMothDesc')}>{data.stayMothDesc || '-'}</span> },
        {
            label: '人口标签',
            value: (
                <span>
                    {data.personLabelList && data.personLabelList.length > 0
                        ? data.personLabelList.length > 1
                            ? data.personLabelList[0].personLabelName + '...'
                            : data.personLabelList[0].personLabelName
                        : '-'}
                </span>
            ),
        },
    ];
 
    const basicData = [
        { label: '民族', value: <span className={setBg('nationalDesc')}>{data.nationalDesc || '-'}</span> },
        { label: '出生日期', value: <span className={setBg('birthdate')}>{dateFormat(data.birthdate)}</span> },
        { label: '籍贯', value: <span className={setBg('birthPlaceDesc')}>{data.birthPlaceDesc || '-'}</span> },
        { label: '登记时间', value: <span className={setBg('createTime')}>{dateFormat(data.createTime)}</span> },
    ];
 
    const liveFeatureData = [
        {
            label: '是否重点人员',
            value: <span className={setBg('isKeynote')}>{data.isKeynote == '0' ? '否' : data.isKeynote == '1' ? '是' : '-'}</span>,
        },
        { label: '是否流动人员', value: <span className={setBg('isFloat')}>{data.isFloat == '0' ? '否' : data.isFloat == '1' ? '是' : '-'}</span> },
        ...(data.isFloat == '0' ? [] : [{ label: '流入原因', value: <span className={setBg('liveReasonDesc')}>{data.liveReasonDesc || '-'}</span> }]),
    ];
 
    const unitData = [
        { label: '单位名称', value: <span className={setBg('unitName')}>{data.unitName || '-'}</span> },
        { label: '单位联系人', value: <span className={setBg('unitContacterName')}>{data.unitContacterName || '-'}</span> },
        { label: '单位联系人电话', value: <span className={setBg('unitContacterPhone')}>{data.unitContacterPhone || '-'}</span> },
        { label: '单位地址', value: <span className={setBg('unitAddress')}>{data.unitAddress || '-'}</span> },
        { label: '单位备注', value: <span className={setBg('unitRemark')}>{data.unitRemark || '-'}</span> },
    ];
 
    const otherData = [
        { label: '曾用名', value: <span className={setBg('formerName')}>{data.formerName || '-'}</span> },
    { label: '政治面貌', value: <span className={setBg('polityDesc')}>{data.polityDesc || '-'}</span> },
        { label: '宗教信仰', value: <span className={setBg('religionDesc')}>{data.religionDesc || '-'}</span> },
        { label: '婚姻状况', value: <span className={setBg('maritalDesc')}>{data.maritalDesc || '-'}</span> },
        { label: '学历', value: <span className={setBg('educationDesc')}>{data.educationDesc || '-'}</span> },
        { label: '职业类别', value: <span className={setBg('jobTypeDesc')}>{data.jobTypeDesc || '-'}</span> },
        { label: '健康状况', value: <span className={setBg('healthConditionDesc')}>{data.healthConditionDesc || '-'}</span> },
        { label: '服务处所', value: <span className={setBg('servicePlace')}>{data.servicePlace || '-'}</span> },
        { label: '备注', value: <span className={setBg('memo')}>{data.memo || '-'}</span> },
    ];
 
    return (
        <>
            <div className="personMsg-header">
                <div>
                    <Space align="center">
                        <div className="personMsg-header-title">{data.personName}</div>
                        <div className="public-tag2 public-tag2-blue">{data.roleofhold}</div>
                    </Space>
                </div>
                <div className="personMsg-header-subtitle">
                    <span className={setBg('sexDesc')}>{data.sexDesc || '-'}</span>
                    <span className={`public-rightBorder ${setBg('idcard')}`}>{data.idcard ? getAgeByIdcard(data.idcard) + '岁' : '-'}</span>
                    <span className={`public-rightBorder ${setBg('contact')}`}>{data.contact || '-'}</span>
                </div>
                <div className="personMsg-header-tag">
                    <Space wrap>
                        <span className="public-tag2">{data.personType === '1' ? '境内人员' : data.personType === '2' ? '境外人员' : '-'}</span>
                        {data.personLabelList &&
                            data.personLabelList.map((item) => (
                                <span key={item.personLabelId} className="public-tag2">
                                    {item.personLabelName}
                                </span>
                            ))}
                        {data.isFloat && <span className="public-tag2">{data.isFloat === '0' ? '常驻人口' : '流动人口'}</span>}
                        {data.isKeynote && <span className="public-tag2 public-tag2-red">{data.isKeynote === '1' ? '重点人员' : null}</span>}
                    </Space>
                </div>
            </div>
            <div className="personMsg-card">
                <Descriptions data={liveData} title="居住信息" />
            </div>
            <div className="personMsg-card">
                <Descriptions
                    data={basicData}
                    otherData={[
                        {
                            type: 'idcard',
                            title: <span>{data.idcard || '-'}</span>,
                            cardType: data.permitTypeDesc || '-',
                            contents: <span>{dateFormat(data.icExpiredDate)}到期</span>,
                        },
                        {
                            type: 'address',
                            title: <span>{data.censusDesc || '-'}(户籍地)</span>,
                            contents: <span>{data.censusAddress || '-'}</span>,
                        },
                    ]}
                    title="证件信息"
                    columns="2"
                />
            </div>
            <div className="personMsg-card">
                <Descriptions data={liveFeatureData} title="居民特征" />
            </div>
            <div className="personMsg-card">
                <Descriptions otherData={[{ type: 'files', files: data.fileList || [] }]} title="上传附件" />
            </div>
            {data.personType == '2' && (
                <div className="personMsg-card">
                    <Descriptions data={unitData} title="邀请单位信息" />
                </div>
            )}
            <div className="personMsg-card">
                <Descriptions data={otherData} title="其他信息" />
            </div>
        </>
    );
};
 
export default PersonMsg;