山西督察-superintend-distribute-web react
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

148 lines
4.3 KiB

import React, { useState } from 'react';
import { Tabs } from 'antd';
import { connect, history } from 'umi';
import ProvinceSelect from '@/components/ProvinceSelect';
import { UserLevel, processTab } from '@/utils/constants';
import TableList from './TableList';
// import Department from './Department';
// import Province from './Province';
import { secondTabName } from '@/utils/utils';
const { TabPane } = Tabs
const Doing = (props) => {
const { user, isLocationInBu,locationType } = props;
// console.log(isLocationInBu);
// debugger;
const tabList = processTab(locationType);
const [activeKey, setActiveKey] = useState('department');
const [selectdProvince, setSelectdProvince] = useState('');
const [selectdCity, setSelectdCity] = useState('');
const [showProvinceSelect, setShowProvinceSelect] = useState(isLocationInBu);
const [departmentMsg, setDepartmentMsg] = useState(null);
const [provinceMsg, setProvinceMsg] = useState(null);
const [cityMsg, setCityMsg] = useState(null);
const [ifReload, setIfReload] = useState(null); // 页面是否要重新加载 为从待办跳转过来准备
const changeTab = (key) => {
setActiveKey(key);
setShowProvinceSelect(isLocationInBu);
setDepartmentMsg(null);
setProvinceMsg(null);
setCityMsg(null);
}
if (props.location.params) { // 监控路由参数 点击消息跳转过来的会带params参数
const { type, msg, reload } = props.location.params; // type: 展示tab类型 msg: 消息带过来的查询条件
if (reload === ifReload) { // 防止不断循环
return false
}
setIfReload(reload);
if (type === 'department') { // 跳转到部级下发
setActiveKey(type);
setDepartmentMsg(msg);
} else if (type === 'province') { // 跳转到省级下发
setShowProvinceSelect(false);
setActiveKey(type);
setProvinceMsg(msg);
} else if (type === 'city') { // 跳转到市级下发
setShowProvinceSelect(false);
setActiveKey(type);
setCityMsg(msg);
}
history.push('/doingcases'); // 清空参数 防止误判
}
const onSelectProvince = (key) => {
setSelectdProvince(key);
setActiveKey('province');
setShowProvinceSelect(false);
}
const onSelectCity = (key) => {
setSelectdCity(key);
setActiveKey('city');
setShowProvinceSelect(false);
}
const renderContent = (active) => {
if (active === 'department') {
return <TableList
msg={departmentMsg}
refesh={Math.random()}
isLocationInBu={isLocationInBu}
locationType={locationType}
type='bu'
sysToken={isLocationInBu ? '' : 'bu'}
/>
}
// debugger;
if (active === 'province') {
if (showProvinceSelect) {
return (
<ProvinceSelect
onSelectProvince={onSelectProvince}
sysToken={isLocationInBu ? selectdProvince : ''}
/>
)
}else{
return (
<TableList
msg={provinceMsg}
refesh={Math.random()}
isLocationInBu={isLocationInBu}
locationType={locationType}
type='sheng'
sysToken={isLocationInBu ? selectdProvince : 'sheng'}
/>
)
}
}
// if(locationType === 2 ){
if (active === 'city'){
return <TableList
msg={cityMsg}
refesh={Math.random()}
isLocationInBu={isLocationInBu}
locationType={locationType}
type='shi'
sysToken={'shi'}
/>
// }
}
}
return (
<div>
<Tabs activeKey={activeKey} onChange={changeTab}>
{/* <TabPane tab='部级平台' key='department'></TabPane> */}
{/* <TabPane tab={secondTabName(user.departmentOrgLevel)} key='province'>
</TabPane> */}
{/* <TabPane tab='省级平台' key='province'></TabPane> */}
{/* isLocationInBu !==2 */}
{/* <TabPane tab='市级平台' key='city' forceRender={true} hidden={isLocationInBu !== 2}></TabPane> */}
{
tabList.map((item) => {
return (
<TabPane key={item.key}></TabPane>
);
})
}
</Tabs>
{
renderContent(activeKey)
}
</div>
)
}
export default connect(({ user }) => ({
user: user.currentUser,
isLocationInBu: user.isLocationInBu,
locationType: user.locationType
}))(Doing);