广州矛调粤政易端
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-11-18 09:03:22
 * @LastEditTime: 2022-12-09 16:40:16
 * @LastEditors: ldh
 * @Version: 1.0.0
 * @Description: 调解详情展示
 * 事件处置进度,21_00004-1:未开始,21_0004-2:进行中,21_00004-3:已结束,21_0004-4:超时限,21_0004-5:申情人撤回,21_0004-6:不予受理
 */
import React from 'react';
import { useHistory } from 'react-router-dom';
import { TelephoneOutlined, AchieveFilled, CopyOutlined } from 'dd-icons';
import { avatar6, mediate_img_2, mediate_img_3, mediate_img_4, me_avatar } from '../../assets/img';
import { confirmModal, confirmThreeButtonModal, myTimeFormat, selectOption, showToast, timeFormat } from '../../utils/utility';
import { Button } from 'dingtalk-design-mobile';
import Descriptions from '../Descriptions';
import dd from 'gdt-jsapi';
 
const MediateDetailMsg = ({ eventId, taskId, data }) => {
    const history = useHistory();
 
    // 上报矛盾纠纷调处中心
    function handleSubmitMediateCenter() {
        confirmModal({
            title: '上报确认',
            subtitle: (
                <>
                    上报矛盾纠纷调处中心<span className="public-color">上报矛盾纠纷调处中心</span>上报矛盾纠纷调处中心
                </>
            ),
            okText: '确定上报',
        });
    }
 
    // 重新上报矛盾纠纷调处中心
    function handleAgainSubmit() {
        confirmThreeButtonModal({
            title: '重新上报提醒',
            subtitle: '再次上报前,请仔细根据退回原因修改或补充纠纷信息',
            actions: [
                { text: '重新上报' },
                { text: '修改纠纷', onClick: () => history.push(`/hztGrid/mediateRegister?eventId=${eventId}`) },
                { text: '我再想想' },
            ],
        });
    }
 
    // 复制
    function handleCopy(text) {
        dd.copyToClipboard({ text: text })
            .then((res) => showToast({ content: '复制成功' }))
            .catch((err) => showToast({ content: '复制失败' }));
    }
 
    // 网格员 - 处置/调解中
    const dom1 = (
        <div className="mediateDetailMsg-card">
            <div className="mediateDetailMsg-flex">
                <img className="mediateDetailMsg-flex-img1" src={mediate_img_2} alt="" />
                <div>
                    <div className="mediateDetailMsg-flex-title">
                        <h5>进行中</h5>
                        <div className="public-tag2 public-tag2-organ3">网格员调解中</div>
                    </div>
                    <div className="mediateDetailMsg-flex-subtitle">纠纷上报时间:{timeFormat(data.inputTime)}</div>
                </div>
            </div>
            <div className="mediateDetailMsg-dashed" />
            <div className="mediateDetailMsg-flex">
                <img className="mediateDetailMsg-flex-img2" src={me_avatar} alt="" />
                <div>
                    <div className="mediateDetailMsg-flex-title">
                        <h5>{data.userName}</h5>
                        <div className="mediateDetailMsg-flex-phone">
                            <div className="mediateDetailMsg-flex-phone-icon">
                                <TelephoneOutlined />
                            </div>
                            <div>{data.mobile || '-'}</div>
                        </div>
                    </div>
                    <div className="mediateDetailMsg-flex-subtitle">
                        <div>{data.posName || '-'}</div>
                        <div className="public-rightBorder">
                            {data.districtName} {data.subdistrictName} {data.communityName}
                        </div>
                    </div>
                </div>
            </div>
            <div>
                {/* TODO:暂无 <Button onClick={handleSubmitMediateCenter} size="middle" className="public-btn-danger" style={{ marginTop: '16px' }}>
      上报矛盾纠纷调处中心
    </Button> */}
                <Button
                    onClick={() => history.push(`/hztGrid/mediateEventList/materialConclude?eventId=${eventId}&taskId=${taskId}`)}
                    size="middle"
                    type="primary"
                    style={{ marginTop: '16px' }}
                >
                    纠纷办结
                </Button>
            </div>
        </div>
    );
 
    // 网格员 - 已处置
    const dom2 = (
        <>
            <div className="mediateDetailMsg-card">
                <div className="mediateDetailMsg-flex">
                    <div className="mediateDetailMsg-flex-imgSuccess">
                        <AchieveFilled />
                    </div>
                    <div>
                        <div className="mediateDetailMsg-flex-title">
                            <h5>已完成</h5>
                            <div className="public-tag2 public-tag2-blue3">网格员反馈</div>
                        </div>
                        <div className="mediateDetailMsg-flex-subtitle">纠纷上报时间:{timeFormat(data.inputTime)}</div>
                    </div>
                </div>
                <div className="mediateDetailMsg-solid" />
                <Descriptions
                    data={[
                        { label: '办结选项', value: selectOption.conclude.find((item) => item.value === data.handleCanal)?.label },
                        { label: '办结时间', value: timeFormat(data.finishTime) },
                        ...(data.process !== '21_00004-3'
                            ? []
                            : [
                                    {
                                        label: '调解结果',
                                        value: <span className={`mediateDetailMsg-${data.mediResult === '22_00025-1' ? 'success' : 'fail'}`}>{data.mediResultName}</span>,
                                    },
                              ]),
                        { label: '调解反馈', value: data.agreeContent },
                    ]}
                    columns={1}
                    layout="vertical"
                    colon={false}
                    textGap={0}
                    itemGap={8}
                />
            </div>
            <div className="mediateDetailMsg-card">
                <Descriptions title="调解附件" otherData={[{ type: 'files', files: data.fileInfoList }]} itemGap={0} />
                <div className="mediateDetailMsg-solid" />
                <div className="mediateDetailMsg-flex-subtitle">纠纷调解过程中的相关证明材料</div>
            </div>
        </>
    );
 
    // 矛盾纠纷调解处 - 未开始
    const dom3 = (
        <>
            <div className="mediateDetailMsg-card2">
                <div className="mediateDetailMsg-flex">
                    <img className="mediateDetailMsg-flex-img1" src={mediate_img_3} alt="" />
                    <div>
                        <div className="mediateDetailMsg-flex-title">
                            <h5>未开始</h5>
                            <div className="public-tag2 public-tag2-organ3">审查中</div>
                        </div>
                        <div className="mediateDetailMsg-flex-subtitle">纠纷上报时间:{timeFormat(new Date())}</div>
                    </div>
                </div>
                <div className="mediateDetailMsg-solid" />
                <div className="mediateDetailMsg-load">
                    <div className="mediateDetailMsg-load-spin">
                        <img src={mediate_img_4} alt="" />
                    </div>
                    <h4>矛盾纠纷调处中心审查中</h4>
                    <div className="mediateDetailMsg-load-subtitle">审查纠纷信息、材料及匹配调解员中...</div>
                </div>
            </div>
            <div style={{ padding: '16px 0' }}>
                <Button onClick={() => history.push(`/hztGrid/mediateEventList/materialConclude?eventId=${eventId}&taskId=${taskId}`)} type="primary">
                    纠纷办结
                </Button>
            </div>
        </>
    );
 
    // 矛盾纠纷调解处 - 调解员处理
    const dom4 = (
        <>
            <div className="mediateDetailMsg-card">
                <div className="mediateDetailMsg-flex">
                    {true ? (
                        <div className="mediateDetailMsg-flex-img3">
                            <AchieveFilled />
                        </div>
                    ) : (
                        <img className="mediateDetailMsg-flex-img1" src={mediate_img_2} alt="" />
                    )}
                    <div>
                        <div className="mediateDetailMsg-flex-title">
                            {true ? (
                                <>
                                    <h5>已完成</h5>
                                    <div className="public-tag2 public-tag2-blue3">调解员反馈</div>
                                    <div className="public-tag2 public-tag2-blue3">司法确认反馈</div>
                                </>
                            ) : (
                                <>
                                    <h5>进行中</h5>
                                    <div className="public-tag2 public-tag2-organ3">调解员核实中</div>
                                </>
                            )}
                        </div>
                        <div className="mediateDetailMsg-flex-subtitle">纠纷上报时间:{timeFormat(new Date())}</div>
                    </div>
                </div>
                <div className="mediateDetailMsg-dashed" />
                <div className="mediateDetailMsg-flex">
                    <img className="mediateDetailMsg-flex-img2" src={me_avatar} alt="" />
                    <div>
                        <div className="mediateDetailMsg-flex-title">
                            <h5>李飞</h5>
                            <div className="mediateDetailMsg-flex-phone">
                                <div className="mediateDetailMsg-flex-phone-icon">
                                    <TelephoneOutlined />
                                </div>
                                <div>13590210706</div>
                            </div>
                        </div>
                        <div className="mediateDetailMsg-flex-subtitle">
                            <span>调解员</span>
                            <span className="public-rightBorder">美兰区新埠街道人民调解委员会</span>
                        </div>
                    </div>
                </div>
                {/* 预约信息 */}
                <div className="mediateDetailMsg-meeting">
                    <div className="mediateDetailMsg-meeting-left">
                        <div className="mediateDetailMsg-meeting-left-day">15号</div>
                        <div className="mediateDetailMsg-meeting-left-month">3月</div>
                    </div>
                    <div className="mediateDetailMsg-meeting-right">
                        <div>
                            <span>
                                预约时间:{myTimeFormat(new Date(), 'HH:mm')} ~ {myTimeFormat(new Date(), 'HH:mm')}
                            </span>
                            <span className="public-tag public-tag-green2">线下调解</span>
                        </div>
                        <div className="mediateDetailMsg-space">
                            <div>预约地点:</div>
                            <div className="mediateDetailMsg-space-right">新埠街道人民调委会第一调解室</div>
                        </div>
                    </div>
                </div>
                {/* 调解进行中 or 已完成 */}
                <div className="mediateDetailMsg-ing">
                    <div>调解开始时间:{timeFormat(new Date())}</div>
                    <div>
                        调解时间:{timeFormat(new Date())} ~ {timeFormat(new Date())}
                    </div>
                    <div className="mediateDetailMsg-space">
                        <div>调解地点:</div>
                        <div className="mediateDetailMsg-space-right">新埠街道人民调委会第一调解室</div>
                    </div>
                    <div>调解方式:线上+线下</div>
                    <div>
                        <span>线上调解房间号:921402548</span>
                        <span onClick={() => handleCopy('房间号')} className="public-rightBorder">
                            <CopyOutlined style={{ marginRight: '4px' }} />
                            复制
                        </span>
                    </div>
                    <div>
                        <span>调解结果:</span>
                        <span className="public-success-color public-fail-color">调解不成功</span>
                    </div>
                </div>
                {/* 调解协议 */}
                <div className="mediateDetailMsg-file">
                    <div className="mediateDetailMsg-file-left">
                        <div>调解</div>
                        <div>协议</div>
                    </div>
                    <div>
                        <div className="mediateDetailMsg-file-title">李小萌与王菲婚姻调解协议书</div>
                        <div className="public-tag public-tag-green3">点击查看</div>
                    </div>
                </div>
            </div>
            {/* 司法确认 */}
            <div className="mediateDetailMsg-card">
                <div className="mediateDetailMsg-flex">
                    <img className="mediateDetailMsg-flex-img2" src={avatar6} alt="" />
                    <div>
                        <div className="mediateDetailMsg-flex-title">
                            <h5>李晓</h5>
                            <div className="mediateDetailMsg-flex-phone" style={{ color: 'var(--common_level1_base_color)' }}>
                                <div className="mediateDetailMsg-flex-phone-icon" style={{ borderColor: 'var(--common_level1_base_color)' }}>
                                    <TelephoneOutlined />
                                </div>
                                <div>13590210706</div>
                            </div>
                        </div>
                        <div className="mediateDetailMsg-flex-subtitle">
                            <span>承办法官</span>
                            <span className="public-rightBorder">美兰区法院</span>
                        </div>
                    </div>
                </div>
                <div className="mediateDetailMsg-ing" style={{ backgroundColor: 'rgba(249,241,189,0.6)' }}>
                    <div>
                        司法确认时间:{timeFormat(new Date())} ~ {timeFormat(new Date())}
                    </div>
                    <div className="mediateDetailMsg-space">
                        <div>司法确认地点:</div>
                        <div className="mediateDetailMsg-space-right">新埠街道人民调委会第一调解室</div>
                    </div>
                    <div>司法确认方式:线上+线下</div>
                    <div>
                        <span>司法确认结果:</span>
                        <span className="public-success-color public-fail-color">未达成</span>
                    </div>
                </div>
                <div className="mediateDetailMsg-file mediateDetailMsg-file2">
                    <div className="mediateDetailMsg-file-left">
                        <div>民事</div>
                        <div>裁定</div>
                    </div>
                    <div>
                        <div className="mediateDetailMsg-file-title">李小萌与王菲婚姻调解协议书</div>
                        <div className="public-tag public-tag-brown">点击查看</div>
                    </div>
                </div>
            </div>
        </>
    );
 
    // 退回
    const dom5 = (
        <>
            <div style={{ flex: 1 }}>
                <div className="mediateDetailMsg-card">
                    <div className="mediateDetailMsg-flex">
                        <img className="mediateDetailMsg-flex-img1" src={mediate_img_3} alt="" />
                        <div>
                            <div className="mediateDetailMsg-flex-title">
                                <h5>未开始</h5>
                                <div className="public-tag2 public-tag2-red">退回</div>
                            </div>
                            <div className="mediateDetailMsg-flex-subtitle">纠纷上报时间:{timeFormat(new Date())}</div>
                        </div>
                    </div>
                    <div className="mediateDetailMsg-solid" />
                    <Descriptions
                        data={[
                            { label: '审查组织', value: '' },
                            { label: '审查时间', value: timeFormat(new Date()) },
                            { label: '原因说明', value: '' },
                        ]}
                        columns={1}
                        layout="vertical"
                        colon={false}
                        textGap={0}
                        itemGap={8}
                    />
                    <Button onClick={handleAgainSubmit} size="middle" className="public-btn-primary" style={{ marginTop: '16px' }}>
                        重新上报
                    </Button>
                </div>
            </div>
            <div style={{ padding: '16px 0' }}>
                <Button onClick={() => history.push(`/hztGrid/mediateEventList/materialConclude?eventId=${eventId}&taskId=${taskId}`)} type="primary">
                    纠纷办结
                </Button>
            </div>
        </>
    );
 
    // 不予受理 or 异常终止
    const dom6 = (
        <div className="mediateDetailMsg-card">
            <div className="mediateDetailMsg-flex">
                <div className="mediateDetailMsg-flex-imgSuccess">
                    <AchieveFilled />
                </div>
                <div>
                    <div className="mediateDetailMsg-flex-title">
                        <h5>已完成</h5>
                        <div className="public-tag2 public-tag2-red">不予受理</div>
                    </div>
                    <div className="mediateDetailMsg-flex-subtitle">纠纷上报时间:{timeFormat(new Date())}</div>
                </div>
            </div>
            <div className="mediateDetailMsg-solid" />
            <Descriptions
                data={[
                    { label: '审查组织', value: '' },
                    { label: '审查时间', value: timeFormat(new Date()) },
                    { label: '原因说明', value: '' },
 
                    { label: '调解组织', value: '' },
                    {
                        label: '调解员',
                        value: (
                            <>
                                <span>李晓明</span>
                                <span className="public-rightBorder">13178511718</span>
                                <TelephoneOutlined className="public-color" style={{ marginLeft: '4px' }} />
                            </>
                        ),
                    },
                    { label: '终止时间', value: timeFormat(new Date()) },
                    { label: '原因说明', value: '' },
                ]}
                columns={1}
                layout="vertical"
                colon={false}
                textGap={0}
                itemGap={8}
            />
        </div>
    );
 
    let dom = null;
    if (data.process === '21_00004-2') {
        dom = dom1;
    }
    if (!['21_00004-1', '21_00004-2'].includes(data.process)) {
        dom = dom2;
    }
 
    return <div className="mediateDetailMsg">{dom}</div>;
};
 
export default MediateDetailMsg;