forked from gzzfw/frontEnd/gzDyh

liuwh
2024-09-10 7bec45c3da050deda516f96b0a89f94b06814ae9
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
 
/*
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-08-09 09:59:43
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-10 16:22:30
 * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
 * @Description: 来访登记
 * 
 */
 
import React, { useEffect, useState } from "react";
import NewPage from '@/components/NewPage';
import "@arco-themes/react-gzzz/css/arco.css";
import '../index.less';
import { Typography, Steps, Tabs } from '@arco-design/web-react';
import { Audit, Matter, applyRecord, transfer, aiPerson } from '@/assets/images'
import MatterDetail from '../matterDetail';
import Handle from './component/handle';
import AuditView from './component/AuditView';
import { AiQuestion } from '../visit/component/levelDetail';
import * as $$ from '@/utils/utility';
import { useParams } from 'react-router-dom';
 
 
const Step = Steps.Step;
const TabPane = Tabs.TabPane;
const style = {
    // textAlign: 'center',
    // marginTop: 20,
};
 
function getCaseApi(data) {
    return $$.ax.request({ urlAi: `case-law/get-case`, typeAi: 'post', service: 'mediate', data });
}
 
function getLawApi(data) {
    return $$.ax.request({ urlAi: `case-law/get-law`, typeAi: 'post', service: 'mediate', data });
}
 
 
 
function getTabButton(caseTaskId) {
    return $$.ax.request({ url: `caseTask/getTabButton?caseTaskId=` + caseTaskId, type: 'get', service: 'mediate' });
}
 
 
 
const Organization = () => {
    const routeData = useParams();
    const caseTaskId = $$.getQueryString('caseTaskId')
    const caseId = $$.getQueryString('caseId')
    const [current, setCurrent] = useState(3);
    const [tabsActive, setTabsActive] = useState('sxxq');
    const [AiQuestionView, setAiQuestionView] = useState(false)
    const [aiData, setAiData] = useState([])
    const [aiLawData, setAiLawData] = useState([])
    const [caseDetailView, setCaseDetail] = useState({})
    const [authorData, setAuthorData] = useState({});
    const [disTab, setDisTab] = useState(true);
    const [tabsList, setTabsList] = useState([]);
    const myTab = [
        {
            img: Matter,
            label: '事项详情',
            key: "sxxq"
        },
        {
            img: transfer,
            label: '事项办理',
            key: "sxbl",
            isNeedStep: true,
        },
        {
            img: applyRecord,
            label: '申请记录',
            key: "sqjl",
        },
    ]
 
    const handleAi = () => {
        setAiQuestionView(true)
    }
 
    const getCase = async () => {
        const res = await getCaseApi({
            caseDes: '牛某某诉称:其在上海某物流有限公司(以下简称物流公司)担任叉车工。某日上班与领导的车辆碰擦,对方全责,领导要求私了,因其未同意而被物流公司开除。物流公司解除劳动合同违法,应当支付赔偿金。物流公司辩称:物流公司要求劳动者“健康”,牛某某持有残疾证,影响其从事叉车工作。牛某某入职前故意隐瞒身体残疾的情况,有违诚信,入职后以此为由索要优待未果,辱骂领导。物流公司并非因牛某某身体残疾而解除,而是因其隐瞒持有残疾证及威胁领导,解除劳动合同合法。法院经审理查明,牛某某左手大拇指部分缺失,其于2019年10月10日到物流公司工作,担任叉车工。牛某某入职时提交了在有效期内的叉车证,并参加了入职体检,体检合格。物流公司要求填写员工登记表,登记表上列明有无大病病史、家族病史、工伤史、传染病史,并列了“其他”栏。牛某某均勾选了“无”。牛某某正常完成了工作。2020年7月4日,物流公司以牛某某隐瞒持有残疾证,且威胁领导恐吓上级,属于严重违纪为由解除劳动合同。2020年7月10日,牛某某向上海市浦东新区劳动人事争议仲裁委员会申请仲裁,要求物流公司支付违法解除劳动合同赔偿金30,000元。审理中牛某某表示,其可以正常工作,并不要求物流公司额外支付残疾人的福利待遇,所以没有告知物流公司其身有残疾。2020年10月13日,该仲裁委员会按牛某某工资2,930元为标准裁决物流公司支付牛某某违法解除劳动合同赔偿金5,860元。',
            caseClaim: '牛某某向一审法院起诉请求物流公司支付其违法解除劳动合同赔偿金30,000元。',
            caseId: '10086'
        })
        console.log(res.data, 'res')
        if (res.type) {
            setAiData(res.data)
        }
    }
 
    const getLaw = async () => {
        const res = await getLawApi({
            caseDes: '牛某某诉称:其在上海某物流有限公司(以下简称物流公司)担任叉车工。某日上班与领导的车辆碰擦,对方全责,领导要求私了,因其未同意而被物流公司开除。物流公司解除劳动合同违法,应当支付赔偿金。物流公司辩称:物流公司要求劳动者“健康”,牛某某持有残疾证,影响其从事叉车工作。牛某某入职前故意隐瞒身体残疾的情况,有违诚信,入职后以此为由索要优待未果,辱骂领导。物流公司并非因牛某某身体残疾而解除,而是因其隐瞒持有残疾证及威胁领导,解除劳动合同合法。法院经审理查明,牛某某左手大拇指部分缺失,其于2019年10月10日到物流公司工作,担任叉车工。牛某某入职时提交了在有效期内的叉车证,并参加了入职体检,体检合格。物流公司要求填写员工登记表,登记表上列明有无大病病史、家族病史、工伤史、传染病史,并列了“其他”栏。牛某某均勾选了“无”。牛某某正常完成了工作。2020年7月4日,物流公司以牛某某隐瞒持有残疾证,且威胁领导恐吓上级,属于严重违纪为由解除劳动合同。2020年7月10日,牛某某向上海市浦东新区劳动人事争议仲裁委员会申请仲裁,要求物流公司支付违法解除劳动合同赔偿金30,000元。审理中牛某某表示,其可以正常工作,并不要求物流公司额外支付残疾人的福利待遇,所以没有告知物流公司其身有残疾。2020年10月13日,该仲裁委员会按牛某某工资2,930元为标准裁决物流公司支付牛某某违法解除劳动合同赔偿金5,860元。',
            caseClaim: '牛某某向一审法院起诉请求物流公司支付其违法解除劳动合同赔偿金30,000元。',
            caseId: '10086'
        })
        if (res.type) {
            setAiLawData(res.data)
        }
    }
 
 
 
    const getAuthor = async () => {
        const res = await getTabButton(caseTaskId)
        if (res.type) {
            const { tabList } = res.data
            console.log(tabList, 'tabList1')
            setAuthorData(res.data)
            if (tabList.length === 0) {
                //没有tab就不展示
                setDisTab(false)
            } else {
                setTabsList(myTab.filter(item => {
                    const flag = tabList.some(result => {
                        if (result.id === item.key) {
                            return true
                        }
                    })
                    return flag
                }))
                console.log(tabsList, 'tabsList2')
                setTabsActive(tabList[0].id)
            }
        }
    }
 
 
 
 
    useEffect(() => {
        getAuthor();
        getCase();
        getLaw();
    }, [])
 
 
 
 
    return (
        <div style={{ position: 'relative', height: '100vh' }}>
            <NewPage
                pageHead={
                    { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }
                }
            >
                <Tabs
                    defaultActiveTab='sxxq'
                    onChange={(v) => setTabsActive(v)}
                    className='myTabContent'
                >
                    {tabsList?.map(item => {
                        return <TabPane
                            key={item.key}
                            title={
                                <span>
                                    {tabsActive === item.key && <img src={item.img} alt="" style={{ width: '16px', height: '16px', margin: '-5px 12px 0px 0px' }} />}
                                    <span style={{ fontSize: '16px' }}>{item.label}</span>
                                </span>
                            }
                        >
                            {
                                item.isNeedStep && <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
                                    <Steps type='navigation' current={current}>
                                        <Step title='来访登记' disabled />
                                        <Step title='事件流转' disabled />
                                        <Step title='办理反馈' disabled />
                                        <Step title='结案审核' disabled />
                                        <Step title='当事人评价' disabled />
                                        <Step title='结案归档' disabled />
                                    </Steps>
                                </div>
                            }
                            {tabsActive === 'sxxq' &&
                                <MatterDetail hasApplet={true} hasEditBtn={true} authorData={authorData} caseId={caseId} />
                            }
                            {
                                tabsActive === 'sxbl' && <Typography.Paragraph style={style}>
                                    <Handle authorData={authorData} caseId={caseId} caseTaskId={caseTaskId} />
                                </Typography.Paragraph>
                            }
                            {
                                tabsActive === 'sqjl' && <Typography.Paragraph style={style}>
                                    <AuditView authorData={authorData} />
                                </Typography.Paragraph>
                            }
                        </TabPane>
                    })}
                </Tabs>
            </NewPage>
            <div className="gradient-box" onClick={() => handleAi()}>
                <div><img src={aiPerson} alt='' style={{ width: '24px', height: '24px', marginRight: '6px' }} /></div>
                <div style={{ color: '#FFFFFF' }}>智能调解助理</div>
            </div>
            <AiQuestion
                visible={AiQuestionView}
                onClose={() => setAiQuestionView(false)}
                aiData={aiData}
                aiLawData={aiLawData}
            />
        </div>
    )
}
 
export default Organization;