|
@@ -126,82 +126,91 @@ export default ({ onClose, showSpace }) => {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- const operateTime = () => {
|
|
|
+ const operateTime = useMemo(() => {
|
|
|
// 使用时间
|
|
|
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 (showSpace.meetTime && showSpace.workTimeStartTime) {
|
|
|
+ // let arr = [];
|
|
|
+ // const meetingArr = JSON.parse(JSON.stringify(showSpace.meetTime));
|
|
|
|
|
|
- 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}`);
|
|
|
- }
|
|
|
+ // 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}`);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ var runTimeStatus = '';
|
|
|
+ // 会议时间
|
|
|
+ showSpace.meetTime &&
|
|
|
+ showSpace.meetTime.length > 0 &&
|
|
|
+ (runTimeStatus = 'meetingBook') &&
|
|
|
+ showSpace.meetTime.forEach((item) => {
|
|
|
+ timeArr.push(`${item.meetTimeStartTime}-${item.meetTimeEndTime}`);
|
|
|
+ });
|
|
|
+ var workTime = '--';
|
|
|
+ // 工作时间
|
|
|
+ showSpace.workTimeStartTime &&
|
|
|
+ (workTime = `${showSpace.workTimeStartTime}-${showSpace.workTimeEndTime}`);
|
|
|
|
|
|
// 加班时间
|
|
|
- showSpace.overTimeStartTime &&
|
|
|
- timeArr.push(`${showSpace.overTimeStartTime}-${showSpace.overTimeEndTime}`);
|
|
|
+ showSpace.overTime &&
|
|
|
+ showSpace.overTime.length > 0 &&
|
|
|
+ (runTimeStatus = 'overtimeWork') &&
|
|
|
+ showSpace.overTime.forEach((item) => {
|
|
|
+ timeArr.push(`${item.overTimeStartTime}-${item.overTimeEndTime}`);
|
|
|
+ });
|
|
|
|
|
|
- if (timeArr.length == 0) timeArr = ['--'];
|
|
|
- return timeArr;
|
|
|
- };
|
|
|
+ //if (timeArr.length == 0) timeArr = ['--'];
|
|
|
+ //debugger;
|
|
|
+ return { workTime: workTime, runTimeStatus: runTimeStatus, timeArr: timeArr };
|
|
|
+ }, [showSpace]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
getData();
|
|
@@ -222,10 +231,35 @@ export default ({ onClose, showSpace }) => {
|
|
|
<div className={styles.tileline}>
|
|
|
<img src={officeImg} className={styles.titleIcon}></img>
|
|
|
<span>{showSpace.localName}</span>
|
|
|
+ {showSpace.isPassengerPass == true && (
|
|
|
+ <span className={styles.hasPerson}>
|
|
|
+ <Icon
|
|
|
+ className=""
|
|
|
+ type="youren"
|
|
|
+ style={{ color: '#CE9F27', fontWeight: 'bold', marginRight: '2px' }}
|
|
|
+ ></Icon>
|
|
|
+ 有人
|
|
|
+ </span>
|
|
|
+ )}
|
|
|
+ {showSpace.isPassengerPass == false && (
|
|
|
+ <span className={styles.hasPerson}>
|
|
|
+ <Icon
|
|
|
+ className=""
|
|
|
+ type="wuren"
|
|
|
+ style={{ color: '#8B949E', fontWeight: 'bold', marginRight: '2px' }}
|
|
|
+ ></Icon>
|
|
|
+ 无人
|
|
|
+ </span>
|
|
|
+ )}
|
|
|
</div>
|
|
|
<div className={styles.timeLine}>
|
|
|
- 使用时间:
|
|
|
- {operateTime().map((item, idx) => {
|
|
|
+ <span className={styles.pdr10}>工作时间:{operateTime.workTime}</span>
|
|
|
+ {operateTime.runTimeStatus == 'meetingBook'
|
|
|
+ ? '会议时间:'
|
|
|
+ : operateTime.runTimeStatus == 'overtimeWork'
|
|
|
+ ? '加班时间:'
|
|
|
+ : ''}
|
|
|
+ {operateTime.timeArr.map((item, idx) => {
|
|
|
return (
|
|
|
<span className={styles.pdr10} key={idx}>
|
|
|
{item}
|