|
@@ -24,8 +24,8 @@ import {
|
|
|
getMapList,
|
|
|
queryEquipStatistics,
|
|
|
queryDeviceTimeManage,
|
|
|
+ queryProjectEquipType,
|
|
|
} from '@/services/sagacare_service/environment';
|
|
|
-
|
|
|
import {
|
|
|
changeCurtain,
|
|
|
changeAir,
|
|
@@ -54,7 +54,7 @@ const Environment: React.FC = () => {
|
|
|
|
|
|
const [showModal, setShowModal] = useState<boolean>(false);
|
|
|
const [showSpace, setShowSpace] = useState<API.MapInfo>({}); //当前弹框选中的空间
|
|
|
- const [navigatorList, setNavigatorList] = useState<navigatorItem[]>([
|
|
|
+ const initNavigatorList = [
|
|
|
{
|
|
|
name: '全部设备',
|
|
|
id: 'all',
|
|
@@ -87,7 +87,8 @@ const Environment: React.FC = () => {
|
|
|
color: '#E89E32',
|
|
|
colorStr: '232, 158, 50,',
|
|
|
},
|
|
|
- ]);
|
|
|
+ ];
|
|
|
+ const [navigatorList, setNavigatorList] = useState<any[]>([]);
|
|
|
const [scale, setScale] = useState<number>(0.8);
|
|
|
const [maxScale, setMaxScale] = useState<number>(1);
|
|
|
const [transXInit, setTransXInit] = useState<number>(0);
|
|
@@ -99,7 +100,7 @@ const Environment: React.FC = () => {
|
|
|
const [equipMapList, setEquipMapList] = useState<any[]>([]);
|
|
|
const [timeMapList, setTimeMapList] = useState<any[]>([]);
|
|
|
|
|
|
- const [selNav, setSelNav] = useState<navigatorItem>(navigatorList[0]);
|
|
|
+ const [selNav, setSelNav] = useState<navigatorItem>(initNavigatorList[0]);
|
|
|
const [selFloorId, setSelFloorId] = useState<string>();
|
|
|
const [mapCombineList, setMapCombineList] = useState<any[]>([]);
|
|
|
const [loading, setLoading] = useState<boolean>(false);
|
|
@@ -215,6 +216,7 @@ const Environment: React.FC = () => {
|
|
|
};
|
|
|
//获取地图 mapList
|
|
|
useEffect(() => {
|
|
|
+ getProjectEquipType();
|
|
|
if (selFloorId) {
|
|
|
changeLastFloorId(selFloorId);
|
|
|
setLoading(true);
|
|
@@ -297,15 +299,14 @@ const Environment: React.FC = () => {
|
|
|
//if (!setTimer.current) return;
|
|
|
var statistics = res.data.statistics || [];
|
|
|
//赋值 运行中的设备数量
|
|
|
+
|
|
|
navigatorList.forEach(function (nItem) {
|
|
|
var fres = statistics.filter((sItem: statistics) => {
|
|
|
return sItem.equipType == nItem.id;
|
|
|
});
|
|
|
nItem.num = (fres[0] || {}).runCount;
|
|
|
});
|
|
|
-
|
|
|
setNavigatorList(navigatorList);
|
|
|
-
|
|
|
//设备空间信息
|
|
|
var spaceList = res.data.spaceList || [];
|
|
|
spaceList.forEach((item: any) => {
|
|
@@ -347,13 +348,39 @@ const Environment: React.FC = () => {
|
|
|
};
|
|
|
let setTimer1 = useRef();
|
|
|
let setTimer2 = useRef();
|
|
|
- function getDeviceStatus() {
|
|
|
- queryDeviceManage().then((res) => {
|
|
|
+
|
|
|
+ async function getDeviceStatus() {
|
|
|
+ await queryDeviceManage().then((res) => {
|
|
|
setTimer1.current = setTimeout(() => {
|
|
|
getDeviceStatus();
|
|
|
}, 8000);
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ function getProjectEquipType() {
|
|
|
+ // 项目拥有的设备
|
|
|
+ return queryProjectEquipType().then((res) => {
|
|
|
+ const resData = res.data || [];
|
|
|
+ let arr: any = [];
|
|
|
+ initNavigatorList.map((item: any, idx: any) => {
|
|
|
+ if (idx === 0) {
|
|
|
+ arr.push(item);
|
|
|
+ return;
|
|
|
+ } // 第一个为全部设备,不参与对比
|
|
|
+ let hasEquip = false; // 没有此设备
|
|
|
+ resData.map((resItem: any) => {
|
|
|
+ if (item.id === resItem) {
|
|
|
+ hasEquip = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (hasEquip) {
|
|
|
+ arr.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ setNavigatorList(arr);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
function getSpaceHasPerson(sfId: any) {
|
|
|
//获取有人无人
|
|
|
querySpaceAdjustList(sfId).then((res) => {
|
|
@@ -425,14 +452,13 @@ const Environment: React.FC = () => {
|
|
|
return ele.id == spaceId;
|
|
|
});
|
|
|
var filterSpace3 = hasPersonList.filter((ele) => {
|
|
|
- return ele.id == spaceId;
|
|
|
+ return ele.spaceId == spaceId;
|
|
|
});
|
|
|
var combine = Object.assign({}, filterSpace3[0], filterSpace1[0], filterSpace2[0], mitem);
|
|
|
|
|
|
combineList.push(combine);
|
|
|
});
|
|
|
setMapCombineList(combineList);
|
|
|
- console.log('combine');
|
|
|
}, [equipMapList, mapList, timeMapList, hasPersonList]);
|
|
|
|
|
|
let firtTime: number = 0;
|
|
@@ -445,12 +471,14 @@ const Environment: React.FC = () => {
|
|
|
type={'equipment'}
|
|
|
navigatorChange={navigatorChange}
|
|
|
action={
|
|
|
- <TopNavRight
|
|
|
- selNavObj={selNav}
|
|
|
- navigatorList={navigatorList}
|
|
|
- mapList={mapCombineList}
|
|
|
- queryDeviceManage={queryDeviceManage}
|
|
|
- ></TopNavRight>
|
|
|
+ navigatorList.length > 0 && (
|
|
|
+ <TopNavRight
|
|
|
+ selNavObj={selNav}
|
|
|
+ navigatorList={navigatorList}
|
|
|
+ mapList={mapCombineList}
|
|
|
+ queryDeviceManage={queryDeviceManage}
|
|
|
+ ></TopNavRight>
|
|
|
+ )
|
|
|
}
|
|
|
changeFloorId={changeFloorId}
|
|
|
selParamObj={selNav}
|
|
@@ -609,7 +637,7 @@ const Environment: React.FC = () => {
|
|
|
</div>
|
|
|
)}
|
|
|
{(selNav.id == 'airConditioner' || selNav.id == 'light') &&
|
|
|
- item.isPassengerPass &&
|
|
|
+ item.runStatus === 1 &&
|
|
|
item.canClick && (
|
|
|
<div
|
|
|
className={mapstyles.hasPerson}
|
|
@@ -630,7 +658,7 @@ const Environment: React.FC = () => {
|
|
|
</div>
|
|
|
)}
|
|
|
{(selNav.id == 'airConditioner' || selNav.id == 'light') &&
|
|
|
- item.isPassengerPass == false &&
|
|
|
+ item.runStatus === 0 &&
|
|
|
item.canClick && (
|
|
|
<div
|
|
|
className={mapstyles.hasPerson}
|