import React, { useState, useEffect, useCallback } from 'react'; import PageHeader from '@/components/PageHeader'; import Map from '@/components/map'; import TopNavigator from '@/components/topNavigator'; import RunNavRight from './components/topNavRight'; import { FormattedMessage, history, useModel } from 'umi'; import { Spin } from 'antd'; import { Popover } from 'antd'; import styles from './index.less'; import mapstyles from '@/assets/css/map.less'; import Icon from '@/tenants-ui/Icon'; import SearchInput from '@/components/SearchInput'; import moment from 'moment'; import cx from 'classnames'; import { getMapList, queryDeviceTimeManage } from '@/services/ant-design-pro/environment'; type runtimeNavType = { normalRun: any; overtimeWork: number; meetingBook: number; }; const Runtime: React.FC = () => { // const { maptemp6 } = equipImageMap; const { getSpaceFunc } = useModel('spaceFunc'); const [loading, setLoading] = useState(false); const [searchText, setSearchText] = useState<{ text: any }>(); const [runtimeNav, setRuntimeNav] = useState({}); const [mapList, setMapList] = useState([]); const [mapCombineList, setMapCombineList] = useState([]); const [selFloorId, setSelFloorId] = useState(); const [selTime, setSelTime] = useState(moment().format('YYYYMMDD')); const [spaceTimeList, setSpaceTimeList] = useState([]); //楼层切换的回调 const changeFloorId = (data: string) => { setSelFloorId(data); }; const checkRecord = () => { history.push('/runtime/recordList'); console.log('showR'); }; //时间切换的回调 const changeTime = (time) => { var timeStr = time.format('YYYYMMDD'); setSelTime(timeStr); }; //获取地图 mapList useEffect(() => { if (selFloorId) { setLoading(true); getMapList({ floorId: selFloorId, //floorId: 'Fl11010802593241ec348ecb4148806b9034c8957454', projectId: '', }) .then((res) => { setLoading(false); var data: API.MapInfo[] = (res.data || {}).spaceList || []; setMapList(data); }) .catch(() => { setLoading(false); }); } else { setMapList([]); } }, [selFloorId]); //获取时间列表 spaceTimeList useEffect(() => { if (selFloorId && selTime) { //setLoading(true); queryDeviceTimeManage({ floorId: selFloorId, //floorId: 'Fl11010802593241ec348ecb4148806b9034c8957454', //date: selTime, date: 20220212, }) .then(function (res) { //setLoading(false); var resdata = res || {}; setRuntimeNav({ normalRun: resdata.workTimeNum, overtimeWork: resdata.overTimeNum, meetingBook: resdata.meetTimeNum, }); var resList = res.content || []; resList.forEach((ritem) => { ritem.runTimeStatus = 'normalRun'; //正常工作 var timeList = []; if (ritem.hasOwnProperty('workTimeStartTime')) { var timeStrArr = [ritem.workTimeStartTime, ritem.workTimeEndTime]; timeList.push(timeStrArr); } if (ritem.hasOwnProperty('meetTime')) { ritem.runTimeStatus = 'meetingBook'; //会议预约 ritem.meetTime.forEach((meetitem) => { var timeStrArr = [meetitem.meetTimeStartTime, meetitem.meetTimeEndTime]; timeList.push(timeStrArr); }); } if (ritem.hasOwnProperty('overTimeStartTime')) { var timeStrArr = [ritem.overTimeStartTime, ritem.overTimeEndTime]; timeList.push(timeStrArr); ritem.runTimeStatus = 'overtimeWork'; //加班 } ritem.showTimeList = timeList; ritem.showTimeStr = timeList.length > 0 ? timeList[0][0] + '-' + timeList[timeList.length - 1][1] : ''; }); setSpaceTimeList(resList); }) .catch(() => { //setLoading(false); }); } }, [selFloorId, selTime]); useEffect(() => { //mapList,spaceTimeList 这两个数据的结合 console.log('dfsd-------', mapList, spaceTimeList); // if (mapList && mapList.length > 0 && spaceTimeList && spaceTimeList.length > 0) { var combineList: any = []; mapList.map(function (mitem) { var spaceId = mitem.spaceId; var filterSpace = spaceTimeList.filter((ele) => { return ele.id == spaceId; }); var combine = Object.assign({}, mitem, filterSpace[0]); combineList.push(combine); }); setMapCombineList(combineList); // } }, [mapList, spaceTimeList]); return ( <> } action={ //
//
// // 查看加班记录 //
//
{ // setSelFloorId(s.floorId); setSearchText({ text: s.localName }); }} /> } /> } changeFloorId={changeFloorId} >
{/*
*/} {/*
08:00-23:00
Jozy Zone
*/} { return (
{/* {(item.timeList || []).map(function (titem: string, tindex: number) { return {titem},; })} */} {item.showTimeList && item.showTimeList.length > 1 && ( { return (
{timeItem[0]}-{timeItem[1]}
); })} trigger="hover" style={{ color: 'none' }} > {item.showTimeStr}
)} {item.showTimeList && item.showTimeList.length == 1 && ( {item.showTimeStr} )}
{item.localName}
); }} >
); }; export default Runtime;