import React, { useState, useEffect, useRef } from "react"; import { connect } from "react-redux"; import { Button, Form, Modal, Skeleton, Pagination, Table } from "@douyinfe/semi-ui"; import moment from "moment"; import PerfectScrollbar from "perfect-scrollbar"; import './inspection.less' import { log } from "ezuikit-js"; let projectScrollbar; let timer const Inspection = ({ dispatch, actions, user, route, statistic }) => { const { problem } = actions const [selectProject, setSelectProject] = useState([]) //所选项目 const [applyFilter, setApplyFilter] = useState([]) //应用筛选 const [patrolAbnormal, setPatrolAbnormal] = useState([]) //巡检异常信息 const [checkPatrol, setCheckPatrol] = useState({}) //巡检异常查询 const [unfold, setUnfold] = useState(true) //展开收起 const [picturePop, setPicturePop] = useState(false) //图片弹窗 const [pictureId, setPictureId] = useState() //图片id const [pictureData, setPictureData] = useState({}) //图片数据 const [notRead, setNotRead] = useState(0) //已阅图片数量 const api = useRef(); const unfoldApi = useRef(false); // console.log(actions); useEffect(() => { dispatch(problem.getProjectPoms()).then((res) => { // console.log(res.payload.data); if (res.success) { let project = [] let apply = [] res.payload.data?.rows?.map(v => { project.push({ name: v.pepProjectName || v.name || v.id, value: v.id }) v.apps.map(app => apply.push({ name: app.name, value: app.id })) }) setSelectProject(project) setApplyFilter(apply) } }) }, []) useEffect(() => { if (projectScrollbar) projectScrollbar.destroy() const domEquipment = document.getElementById("inspection"); if (unfold) { projectScrollbar = new PerfectScrollbar("#inspection", { suppressScrollY: true, }); if (domEquipment && projectScrollbar) projectScrollbar.update() } else { projectScrollbar = new PerfectScrollbar("#inspection", { suppressScrollX: true, }) if (domEquipment && projectScrollbar) projectScrollbar.update() } }) useEffect(() => { dispatch(problem.getAlarmLnspection(checkPatrol)).then((res) => { // console.log(res.payload.data); if (res.success) { setPatrolAbnormal(res.payload.data) setNotRead(res.payload.data.filter(v => !v.notedTime).length) } }) }, [checkPatrol]); useEffect(() => { if (patrolAbnormal && pictureId >= 0) { if (timer) clearTimeout(timer) timer = setTimeout(() => { if (!patrolAbnormal[pictureId]?.notedTime) { patrolAbnormal[pictureId].notedPepUser = user.name patrolAbnormal[pictureId].notedPepUserId = user.id patrolAbnormal[pictureId].notedTime = new Date() setPatrolAbnormal(patrolAbnormal) setNotRead(notRead - 1) setPictureData(patrolAbnormal[pictureId]) dispatch(problem.putAlarmApplicationNoted({ inspectionId: patrolAbnormal[pictureId].id })) } }, 2000) setPictureData(patrolAbnormal[pictureId]) } }, [pictureId]); return (