广州市综治平台前端
xusd
3 days ago b4725b231cfe2a710288e8bd0b1b9d990989f90c
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
/*
 * @Company: hugeInfo
 * @Author: lwh
 * @Date: 2022-03-23 09:39:49
 * @LastEditTime: 2023-05-12 20:18:16
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: 调度记录
 */
import React, { useEffect, useState } from 'react';
import { Space, Typography, Row, Col, Button } from 'antd';
import { ShareAltOutlined } from '@ant-design/icons';
import FilesDrawer from '../../../components/FilesDrawer';
import NameCard from '../../../components/NameCard';
import * as $$ from '../../../utils/utility';
import { mediator2, mediator1, mediationUnit, mediateRecord_3 } from '../../../assets/images/icon';
import ProgressStep from '../../../components/ProgressStep';
import BatchDispatch from '../../../components/dispatch/mediateList/BatchDispatch';
 
// 获取处理的详情
function getByIdApi(caseId) {
  return $$.ax.request({ url: 'caseDisp/getByCaseId?caseId=' + caseId, type: 'get', service: 'disp' });
}
 
//调解力量
function getMediatePowerApi(caseId) {
  return $$.ax.request({ url: 'caseInfo/getMediatePower?caseId=' + caseId, type: 'get', service: 'mediate' });
}
 
const { Text } = Typography;
 
/**
 * isEdit:bool, // 'edit':判断来自调度历史-系统调度方式点击进入可展示重新调度按钮
 */
const DispatchRecord = ({ caseId, dispId, isEdit, handleReturn }) => {
  const [data, setData] = useState({});
 
  const [powerData, setPowerData] = useState({}); // 调解力量列表
 
  // drawer
  const [drawerVisible, setDrawerVisible] = useState(false);
 
 
  useEffect(() => {
    // 获取详情
    async function getSignForDetailData() {
      global.setSpinning(true);
      const res = await getByIdApi(caseId);
      global.setSpinning(false);
      if (res.type) {
        setData(res.data || {});
      }
    }
    // 调解力量
    async function getMediatePowerData() {
      global.setSpinning(true);
      const res = await getMediatePowerApi(caseId);
      global.setSpinning(false);
      if (res.type) {
        setPowerData(res.data || {});
      }
    }
    getSignForDetailData();
    getMediatePowerData();
  }, [caseId]);
 
  const headPortrait = (type) => (
    <div className="dispatchRecord-dis-posi">
      <img className="dispatchRecord-dis-img" src={mediator2} alt="" />
      <div className={`dispatchRecord-dis-${type === 'accept' ? (data.signStatusName === '已签收' ? 'status1' : 'status2') : 'status3'}`}>
        {type === 'accept' ? data.signStatusName || '-' : '协助'}
        <img className="dispatchRecord-dis-img2" src={mediateRecord_3} alt="" />
      </div>
    </div>
  );
 
  return (
    <>
      <div className="dispatchRecord">
        <div className="caseDetail-card dispatchRecord-left">
          <div style={{ flex: 1 }}>
            <Row gutter={[16, 12]}>
              <Col span={24}>
                <Space size='small'>
                  <div className='MediationInfo-subTitle'></div><h5> 处理信息</h5>
                </Space>
              </Col>
              <Col span={24}>
                <h5>签收信息</h5>
              </Col>
              <Col span={24}>
                {
                  data.acceptObjName ?
                    <div className="dispatchRecord-dis">
                      {headPortrait('accept')}
                      <div>
                        <div style={{ marginBottom: '4px' }}>
                          <div>{data.acceptObjName}</div>
                          {/* <NameCard name={data.acceptObjName} userId={data.acceptObjId} /> */}
                        </div>
                        <div>调度时间:{$$.timeFormat(data.dispTime)}</div>
                        <div>签收时间:{$$.timeFormat(data.acceptSignTime)}</div>
                      </div>
                    </div> :
                    <>{$$.MyEmpty({ description: '暂无数据' })}</>
                }
              </Col>
              <Col span={24}>
                <div className="caseDetail-divider" />
              </Col>
              <Col span={24}>
                <h5>调解力量</h5>
              </Col>
              <Col span={24}>{powerData.mediator ? <>
                <div className="public-fileCard public-fileCard-noBorder2" style={{ marginBottom: '16px' }}>
                  <img src={mediationUnit} style={{ width: '58px', height: '58px' }} alt="" />
                  <Space size={12} direction="vertical">
                    <div>{powerData.mediateUnit?.name}</div>
                    <div className={`public-tag public-tag-default`}>调解组织</div>
                  </Space>
                </div>
                <div className="public-fileCard public-fileCard-noBorder2" style={{ marginBottom: '16px' }}>
                  <img src={mediator1} style={{ width: '58px', height: '58px' }} alt="" />
                  <Space size={12} direction="vertical">
                    <div>{powerData.mediator?.name}</div>
                    <div className={`public-tag public-tag-default`}>调解员</div>
                  </Space>
                </div>
 
                {
                  powerData.assistMediators?.map((item, index) => (
                    <div className="public-fileCard public-fileCard-noBorder2" style={{ marginBottom: '16px' }} key={index}>
                      <img src={mediator2} style={{ width: '58px', height: '58px' }} alt="" />
                      <Space size={12} direction="vertical">
                        <div>{item.assUserName || '-'}</div>
                        <div className={`public-tag public-tag-tagBlue2`}>协助调解员</div>
                      </Space>
                    </div>
                  ))
                }
              </> : $$.MyEmpty({ description: '暂无数据' })}</Col>
            </Row>
          </div>
          {isEdit && (
            <div className="dispatchRecord-left-button">
              <Button className="public-mainBtn" onClick={() => setDrawerVisible(true)}>
                重新调度
              </Button>
            </div>
          )}
        </div>
        <div className="caseDetail-card dispatchRecord-right">
          <div className="caseDetail-cardTitle">
            <Space size="small">
              <div className="caseDetail-cardTitle-icon caseDetail-cardTitle-iconOrange">
                <ShareAltOutlined />
              </div>
              <h5>案件进度</h5>
            </Space>
          </div>
          <div className="caseDetail-cardMain">
            <ProgressStep caseId={caseId} pageFrom="dispatchRecord" />
          </div>
        </div>
      </div>
      <BatchDispatch
        dispId={dispId}
        title="重新调度"
        drawerVisible={drawerVisible}
        onClose={() => setDrawerVisible(false)}
        onSubmitCallback={handleReturn}
      />
    </>
  );
};
 
export default DispatchRecord;