|
@@ -1,4 +1,4 @@
|
|
-import React, { useState, useEffect } from 'react';
|
|
|
|
|
|
+import React, { useState, useEffect, useMemo } from 'react';
|
|
import { Modal, Row, Col } from 'antd';
|
|
import { Modal, Row, Col } from 'antd';
|
|
import Icon from '@/tenants-ui/Icon';
|
|
import Icon from '@/tenants-ui/Icon';
|
|
import styles from './index.less';
|
|
import styles from './index.less';
|
|
@@ -8,7 +8,8 @@ import LampEq from './lampEq';
|
|
import CurtainEq from './curtainEq';
|
|
import CurtainEq from './curtainEq';
|
|
import { getSpaceAdjustList } from '@/services/ant-design-pro/equipment';
|
|
import { getSpaceAdjustList } from '@/services/ant-design-pro/equipment';
|
|
|
|
|
|
-export default ({ onClose }) => {
|
|
|
|
|
|
+export default ({ onClose, showSpace }) => {
|
|
|
|
+ const projectId = 'Pj1101080259';
|
|
const envArr = [
|
|
const envArr = [
|
|
{
|
|
{
|
|
name: '温度',
|
|
name: '温度',
|
|
@@ -79,14 +80,22 @@ export default ({ onClose }) => {
|
|
};
|
|
};
|
|
const { officeImg } = equipImageMap;
|
|
const { officeImg } = equipImageMap;
|
|
const [currentType, setCurrentType] = useState('3s');
|
|
const [currentType, setCurrentType] = useState('3s');
|
|
- const [spaceName, setSpaceName] = useState('王总办公室');
|
|
|
|
|
|
+ const [spaceName, setSpaceName] = useState('');
|
|
const [paramList, setParamList] = useState([]);
|
|
const [paramList, setParamList] = useState([]);
|
|
|
|
+ const [timeArr, setTimeArr] = useState([]);
|
|
|
|
+ function showEqCard(type) {
|
|
|
|
+ let flag = false;
|
|
|
|
+ showSpace.equipStatusList.forEach((item) => {
|
|
|
|
+ if (item.equipType == type) return (flag = !flag);
|
|
|
|
+ });
|
|
|
|
+ return flag;
|
|
|
|
+ }
|
|
|
|
|
|
- useEffect(() => {
|
|
|
|
|
|
+ const getData = () => {
|
|
const paramsObj = {
|
|
const paramsObj = {
|
|
criteria: {
|
|
criteria: {
|
|
- spaceId: 'Sp1101080259a0fc148d72f242fe9300566c12e15bf4',
|
|
|
|
- projectId: 'Pj1101080259',
|
|
|
|
|
|
+ spaceId: showSpace.id,
|
|
|
|
+ projectId: projectId,
|
|
},
|
|
},
|
|
pubname: 'sagacareAndtenantslink',
|
|
pubname: 'sagacareAndtenantslink',
|
|
openid: '9a1ecfbacb6b4f249bf2dd3ec7793ead', // userId
|
|
openid: '9a1ecfbacb6b4f249bf2dd3ec7793ead', // userId
|
|
@@ -96,6 +105,10 @@ export default ({ onClose }) => {
|
|
res.content.forEach((item, idx) => {
|
|
res.content.forEach((item, idx) => {
|
|
envArr.forEach((jtem, jdx) => {
|
|
envArr.forEach((jtem, jdx) => {
|
|
jtem.describe = checkLevel(item[jtem.id], jtem.id).levelTxt;
|
|
jtem.describe = checkLevel(item[jtem.id], jtem.id).levelTxt;
|
|
|
|
+ if (!item[jtem.id]) {
|
|
|
|
+ jtem.num = '--';
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
if (jtem.id == 'humidity') {
|
|
if (jtem.id == 'humidity') {
|
|
jtem.num = item[jtem.id].toFixed(0);
|
|
jtem.num = item[jtem.id].toFixed(0);
|
|
} else if (jtem.id == 'hcho') {
|
|
} else if (jtem.id == 'hcho') {
|
|
@@ -104,10 +117,103 @@ export default ({ onClose }) => {
|
|
jtem.num = item[jtem.id];
|
|
jtem.num = item[jtem.id];
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- //console.log(paramList, 'paramListparamList');
|
|
|
|
setParamList(envArr);
|
|
setParamList(envArr);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ const operateTime = () => {
|
|
|
|
+ // console.log(showSpace, 'showSpace');
|
|
|
|
+ /* showSpace.meetTime = [
|
|
|
|
+ // { meetTimeStartTime: '06:00', meetTimeEndTime: '07:00' },
|
|
|
|
+ // { meetTimeStartTime: '08:00', meetTimeEndTime: '11:00' },
|
|
|
|
+ { meetTimeStartTime: '14:00', meetTimeEndTime: '17:00' },
|
|
|
|
+ { meetTimeStartTime: '08:30', meetTimeEndTime: '18:30' },
|
|
|
|
+ { meetTimeStartTime: '14:00', meetTimeEndTime: '17:00' },
|
|
|
|
+ // { meetTimeStartTime: '16:00', meetTimeEndTime: '19:00' },
|
|
|
|
+ // { meetTimeStartTime: '20:00', meetTimeEndTime: '21:00' },
|
|
|
|
+ ];
|
|
|
|
+ showSpace.workTimeStartTime = '08:30';
|
|
|
|
+ showSpace.workTimeEndTime = '18:30';
|
|
|
|
+ */
|
|
|
|
+ // 使用时间
|
|
|
|
+ let timeArr = [];
|
|
|
|
+ if (showSpace.meetTime && showSpace.workTimeStartTime) {
|
|
|
|
+ let arr = [];
|
|
|
|
+ const meetingArr = JSON.parse(JSON.stringify(showSpace.meetTime));
|
|
|
|
+
|
|
|
|
+ let startBetween = false; // 会议时间是否跨在 工作头部
|
|
|
|
+ let endBetween = false; // 会议时间是否跨在 工作尾部
|
|
|
|
+ let workTimeStartTime = showSpace.workTimeStartTime; // 工作开始时间
|
|
|
|
+ let workTimeEndTime = showSpace.workTimeEndTime; // 工作开始时间
|
|
|
|
+ workTimeStartTime = workTimeStartTime.replace(':', '');
|
|
|
|
+ workTimeEndTime = workTimeEndTime.replace(':', '');
|
|
|
|
+ for (let i = meetingArr.length - 1; i >= 0; i--) {
|
|
|
|
+ let element = meetingArr[i];
|
|
|
|
+ let elementStartTime = element.meetTimeStartTime.replace(':', '');
|
|
|
|
+ let elementEndTime = element.meetTimeEndTime.replace(':', '');
|
|
|
|
+ if (elementEndTime > workTimeEndTime) {
|
|
|
|
+ // 比较工作时间的尾巴
|
|
|
|
+ if (elementStartTime > workTimeEndTime) {
|
|
|
|
+ arr.unshift(elementEndTime);
|
|
|
|
+ arr.unshift(elementStartTime);
|
|
|
|
+ } else {
|
|
|
|
+ arr.unshift(elementEndTime);
|
|
|
|
+ endBetween = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (elementStartTime < workTimeStartTime) {
|
|
|
|
+ // 比较工作时间的头
|
|
|
|
+ if (elementEndTime < workTimeStartTime) {
|
|
|
|
+ arr.unshift(elementEndTime);
|
|
|
|
+ arr.unshift(elementStartTime);
|
|
|
|
+ } else {
|
|
|
|
+ arr.unshift(elementStartTime);
|
|
|
|
+ startBetween = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!startBetween && endBetween) {
|
|
|
|
+ // 尾巴交集
|
|
|
|
+ arr.push(workTimeStartTime);
|
|
|
|
+ }
|
|
|
|
+ if (startBetween && !endBetween) {
|
|
|
|
+ // 头部交集
|
|
|
|
+ arr.push(workTimeEndTime);
|
|
|
|
+ }
|
|
|
|
+ if (!startBetween && !endBetween) {
|
|
|
|
+ //无交集
|
|
|
|
+ arr.push(workTimeStartTime);
|
|
|
|
+ arr.push(workTimeEndTime);
|
|
|
|
+ }
|
|
|
|
+ arr = [...new Set(arr)].sort();
|
|
|
|
+ for (let j = 0; j < arr.length; j += 2) {
|
|
|
|
+ const element = arr[j].slice(0, 2) + ':' + arr[j].slice(2);
|
|
|
|
+ const elemNext = arr[j + 1].slice(0, 2) + ':' + arr[j + 1].slice(2);
|
|
|
|
+ timeArr.push(`${element}-${elemNext}`);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 会议时间
|
|
|
|
+ showSpace.meetTime &&
|
|
|
|
+ showSpace.meetTime.forEach((item) => {
|
|
|
|
+ timeArr.push(`${item.meetTimeStartTime}-${item.meetTimeEndTime}`);
|
|
|
|
+ });
|
|
|
|
+ // 工作时间
|
|
|
|
+ showSpace.workTimeStartTime &&
|
|
|
|
+ timeArr.push(`${showSpace.workTimeStartTime}-${showSpace.workTimeEndTime}`);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 加班时间
|
|
|
|
+ showSpace.overTimeStartTime &&
|
|
|
|
+ timeArr.push(`${showSpace.overTimeStartTime}-${showSpace.overTimeEndTime}`);
|
|
|
|
+
|
|
|
|
+ if (timeArr.length == 0) timeArr = ['--'];
|
|
|
|
+ return timeArr;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ getData();
|
|
}, []);
|
|
}, []);
|
|
|
|
|
|
return (
|
|
return (
|
|
@@ -118,10 +224,17 @@ export default ({ onClose }) => {
|
|
<div className={styles.show}>
|
|
<div className={styles.show}>
|
|
<div className={styles.tileline}>
|
|
<div className={styles.tileline}>
|
|
<img src={officeImg} className={styles.titleIcon}></img>
|
|
<img src={officeImg} className={styles.titleIcon}></img>
|
|
- <span>1#-1312</span>
|
|
|
|
|
|
+ <span>{showSpace.localName}</span>
|
|
</div>
|
|
</div>
|
|
<div className={styles.timeLine}>
|
|
<div className={styles.timeLine}>
|
|
- 使用时间:<span>08:00-20:00</span>
|
|
|
|
|
|
+ 使用时间:
|
|
|
|
+ {operateTime().map((item, idx) => {
|
|
|
|
+ return (
|
|
|
|
+ <span className={styles.pdr10} key={idx}>
|
|
|
|
+ {item}
|
|
|
|
+ </span>
|
|
|
|
+ );
|
|
|
|
+ })}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div className={styles.close} onClick={onClose}>
|
|
<div className={styles.close} onClick={onClose}>
|
|
@@ -145,15 +258,21 @@ export default ({ onClose }) => {
|
|
</div>
|
|
</div>
|
|
<div className={styles.devices}>
|
|
<div className={styles.devices}>
|
|
<Row gutter={[12, 18]}>
|
|
<Row gutter={[12, 18]}>
|
|
- <Col span={12}>
|
|
|
|
- <AirEq></AirEq>
|
|
|
|
- </Col>
|
|
|
|
- <Col span={12}>
|
|
|
|
- <LampEq></LampEq>
|
|
|
|
- </Col>
|
|
|
|
- <Col span={12}>
|
|
|
|
- <CurtainEq></CurtainEq>
|
|
|
|
- </Col>
|
|
|
|
|
|
+ {showEqCard('airConditioner') && (
|
|
|
|
+ <Col span={12}>
|
|
|
|
+ <AirEq spaceId={showSpace.id} projectId={projectId}></AirEq>
|
|
|
|
+ </Col>
|
|
|
|
+ )}
|
|
|
|
+ {showEqCard('light') && (
|
|
|
|
+ <Col span={12}>
|
|
|
|
+ <LampEq spaceId={showSpace.id} projectId={projectId}></LampEq>
|
|
|
|
+ </Col>
|
|
|
|
+ )}
|
|
|
|
+ {showEqCard('curtain') && (
|
|
|
|
+ <Col span={12}>
|
|
|
|
+ <CurtainEq spaceId={showSpace.id} projectId={projectId}></CurtainEq>
|
|
|
|
+ </Col>
|
|
|
|
+ )}
|
|
</Row>
|
|
</Row>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|