广州市综治平台前端
liuwh
4 days ago ebc701d2374ddef3fb985be85c49c5cdcd5425a7
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
import React, { useState, useEffect } from "react";
import NewPage from '@/components/NewPage';
import * as $$ from '@/utils/utility';
import "@arco-themes/react-gzzz/css/arco.css";
import '../index.less';
import { Tabs } from '@arco-design/web-react';
import { examine, Matter, applyRecord } from '@/assets/images'
import EventFlow from './component/EventFlow';
import Examine from "./component/Examine";
import ApplyInfo from "../matterDetail/ApplyInfo";
 
const TabPane = Tabs.TabPane;
 
function getTabButton(data) {
    return $$.ax.request({ url: `caseTask/getTabButton`, type: 'get', service: 'mediate', data });
}
 
const myTab = [
    {
        img: Matter,
        label: '详情',
        key: 'dslxq',
    },
    {
        img: Matter,
        label: '事项详情',
        key: 'sxxq',
    },
    {
        img: applyRecord,
        label: '申请记录',
        key: 'sqjl',
    },
    {
        img: examine,
        label: '回退审核',
        key: 'htsh',
    },
    {
        img: examine,
        label: '上报审核',
        key: 'sbsh',
    },
]
const Organization = () => {
    const caseTaskId = $$.getQueryString('caseTaskId')
    const caseId = $$.getQueryString('caseId')
    const moutedTab = $$.getQueryString('moutedTab')
    const [authorData, setAuthorData] = useState({});
    const [tabsList, setTabsList] = useState([]);
    const [tabsActive, setTabsActive] = useState();
    const [disTab, setDisTab] = useState(true);
 
    useEffect(() => {
        getAuthor()
    }, [])
 
    //获取权限tab和按钮权限
    const getAuthor = async () => {
        const res = await getTabButton({
            caseTaskId: caseTaskId
        })
        if (res.type) {
            const { tabList } = res.data
            setAuthorData({
                ...res.data,
                buttonList: res.data.buttonList.filter(item => {
                    return item.id != 'tabcl' && item.id != 'xqcl'
                })
            })
            if (tabList.length === 0) {
                //没有tab就不展示
                setDisTab(false)
            } else {
                const list = myTab.filter(item => {
                    const flag = tabList.some(result => {
                        if (result.id === item.key) {
                            return true
                        }
                    })
                    return flag
                }).map(item => {
                    const data = tabList.find(res => res.id == item.key)
                    return {
                        ...item,
                        label: data.name
                    }
                })
                setTabsList(list)
                setTabsActive(moutedTab || list[0].key)
            }
        }
    }
 
    //根据id定义组件
    const getTypeDom = (key) => {
        if (key === 'dslxq' || key === 'sxxq') {
            return <EventFlow authorData={authorData} caseId={caseId} caseTaskId={caseTaskId} />
        }
        if (key === 'sqjl') {
            return <ApplyInfo caseId={caseId} />
        }
        if (key === 'htsh' || key === 'sbsh' || key === 'lhczsh') {
            return <Examine type={key} caseTaskId={caseTaskId} caseId={caseId} />
        }
    }
 
    return (
        <div style={{ position: 'relative' }}>
            <NewPage
                pageHead={
                    { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '处理' }
                }
            >
                {disTab ? <Tabs
                    onChange={(v) => setTabsActive(v)}
                    className='myTabContent'
                    activeTab={tabsActive}
                >
                    {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>
                            }
                        >
                            {getTypeDom(item.key)}
                        </TabPane>
                    })}
                </Tabs> : <EventFlow authorData={authorData} caseId={caseId} />
                }
            </NewPage>
        </div>
    )
}
 
export default Organization;