流程可视化

This commit is contained in:
yunkexin 2025-11-19 09:15:50 +08:00
parent f8f1b95f21
commit 0e25699153
3 changed files with 1024 additions and 580 deletions

View File

@ -0,0 +1,265 @@
.flowchart {
display: flex;
flex-wrap: wrap;
/* 关键:内容过多时自动换行 */
gap: 16px;
/* 项之间的间距 */
padding: 10px 0;
width: 100%;
/* 确保容器宽度充足 */
}
.logListContainer {
padding-left: 30px;
/* 确保左侧始终有30px间距 */
width: calc(100% - 180px);
/* 减去左侧步骤区域的宽度,避免溢出 */
}
/* 单个日志项样式 - 控制最小宽度避免过度挤压 */
.step {
width: 100px;
height: 40px;
background-color: #4472C4;
/* #f0f0f0; */
color: white;
border: 1px solid #ddd;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
position: relative;
border-radius: 5px;
}
.stepno {
width: 100px;
height: 40px;
background-color: #A5A5A5;
/* #f0f0f0; */
color: white;
border: 1px solid #ddd;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
position: relative;
border-radius: 5px;
}
/* 长方形 */
.rectangle {
width: 20px;
height: 50px;
/* margin-top: -70px; */
margin-top: 8px;
margin-left: 45px;
position: relative;
background-color: #ADCDEA;
/* transform: rotate(-40deg); */
/* 旋转角度 */
}
.rectangleno {
width: 20px;
height: 50px;
/* margin-top: -70px; */
margin-top: 8px;
margin-left: 45px;
position: relative;
background-color: #A5A5A5;
/* transform: rotate(-40deg); */
/* 旋转角度 */
}
.rectangleno::after {
content: '';
position: absolute;
bottom: -13px;
/* 根据需要调整 */
left: 50%;
width: 0;
height: 0;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
border-top: 20px solid #A5A5A5;
/* 线条颜色 #ddd*/
transform: translateX(-50%);
}
/* 模拟线条 */
/* .step:not(:last-child)::after { */
.rectangle::after {
content: '';
position: absolute;
bottom: -13px;
/* 根据需要调整 */
left: 50%;
width: 0;
height: 0;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
border-top: 20px solid #ADCDEA;
/* 线条颜色 #ddd*/
transform: translateX(-50%);
}
.step::after {
content: '';
position: absolute;
/* bottom: -13px; */
/* 根据需要调整 */
/* left: 50%; */
margin-left: 150px;
width: 0;
height: 0;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
/* border-left: 20px solid transparent; */
border-left: 20px solid #ADCDEA;
/* border-color: #ADCDEA; */
/* border: 1px solid #A5A5A5; */
/* border-left: 20px solid transparent;
border-right: 20px solid transparent; */
/* border-top: 20px solid #ADCDEA; */
/* 线条颜色 #ddd*/
/* transform: translateX(-50%); */
}
/* #ADCDEA 天蓝*/
/* #70AD47 绿色 */
/* #A5A5A5 灰色 深 */
/* #D9D9D9 灰色 */
/* #FFC000 橙色 浅 */
/* #ED7D31 橙色 深 */
/* 横向布局 */
.flowchartx {
flex-direction: row;
/* justify-content: space-between; */
/* width: 100%; */
display: flex;
flex-wrap: wrap;
flex: 1;
}
/* 横向item */
.stepx {
/* margin-right: 15px; */
width: 120px;
height: 40px;
background-color: #70AD47;
color: white;
border: 1px solid white;
/* border: 1px solid #ddd; */
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
position: relative;
border-radius: 50px;
margin-left: 25px;
}
/* 超时处理 */
.stepxOutTime {
/* margin-right: 15px; */
width: 120px;
height: 40px;
background-color: #FFC000;
color: white;
border: 1px solid white;
/* border: 1px solid #ddd; */
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
position: relative;
border-radius: 50px;
margin-left: 25px;
}
/* 未处理 */
.stepxEnable {
/* margin-right: 15px; */
width: 120px;
height: 40px;
background-color: #A5A5A5;
color: white;
border: 1px solid white;
/* border: 1px solid #ddd; */
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
position: relative;
border-radius: 50px;
margin-left: 25px;
}
.stepxLeft50 {
margin-left: 50px;
}
/* 横向箭头线 */
.linex {
margin-left: 10px;
width: 60px;
height: 5px;
/* margin-top: -70px; */
/* margin-top: 8px; */
/* margin-left: -30px; */
margin-top: 40px;
position: relative;
background-color: #ADCDEA;
/* transform: rotate(-40deg); */
/* 旋转角度 */
}
/* 横向箭头 */
.linex::after {
content: '';
position: absolute;
margin-left: 30px;
margin-top: -5px;
width: 0;
height: 0;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
border-left: 8px solid #ADCDEA;
}
.discribeSpan {
display: flex;
width: 120px;
/* width: 100%; */
height: 70px;
margin-top: -25px;
border-radius: 5px;
background: #D9D9D9;
flex-direction: column;
align-items: flex-start;
margin-left: 25px;
}
.discribeSpanUser {
margin-top: 28px;
font-size: smaller;
padding: 0 0 0 5px;
}
.discribeSpanTime {
font-size: smaller;
padding: 0 0 0 5px;
}
/* 横向布局 */

View File

@ -1,13 +1,21 @@
import { Button, Descriptions, Badge, Popconfirm, Row, Col, Form, Input, Select, Table } from 'antd'; import { Button, Descriptions, Badge, Popconfirm, Row, Col, Form, Input, Select, Table } from 'antd';
import React from 'react'; import React from 'react';
import { initFilter, extendRule, extendInclude, setDataFieldValue, showApprove, guid, ShowDateTime } from '../../../utils/common'; import {
initFilter,
extendRule,
extendInclude,
setDataFieldValue,
showApprove,
guid,
ShowDateTime,
} from '../../../utils/common.js';
import ReactToPrint from 'react-to-print'; import ReactToPrint from 'react-to-print';
import { ExportToExcel } from '@woowalker/feui' import { ExportToExcel } from '@woowalker/feui';
import XLSX from 'xlsx'; import XLSX from 'xlsx';
import { connect } from 'dva'; import { connect } from 'dva';
import moment from 'moment'; import moment from 'moment';
import { message } from 'antd/lib/index'; import { message } from 'antd/lib/index';
import styles from '../../../components/CustomPages/HI/OperateLog.css'; import styles from './OperateLog.css';
import config from '../../../config.js'; import config from '../../../config.js';
class SK006ShowOperateLog extends React.Component { class SK006ShowOperateLog extends React.Component {
@ -17,7 +25,7 @@ class SK006ShowOperateLog extends React.Component {
data: null, data: null,
riskCount: 1, riskCount: 1,
riskHeight: 50, riskHeight: 50,
opEnd: null opEnd: null,
// dateFirst: [ // dateFirst: [
// [{ OPERATEPOINT: 10 }, { OPERATEPOINT: 20 }, { OPERATEPOINT: 30 }, { OPERATEPOINT: 40 }], // [{ OPERATEPOINT: 10 }, { OPERATEPOINT: 20 }, { OPERATEPOINT: 30 }, { OPERATEPOINT: 40 }],
// [{ OPERATEPOINT: 48 }, { OPERATEPOINT: 50 }, { OPERATEPOINT: 60 }, { OPERATEPOINT: 70 }, { OPERATEPOINT: 80 }], // [{ OPERATEPOINT: 48 }, { OPERATEPOINT: 50 }, { OPERATEPOINT: 60 }, { OPERATEPOINT: 70 }, { OPERATEPOINT: 80 }],
@ -26,12 +34,11 @@ class SK006ShowOperateLog extends React.Component {
// [{ OPERATEPOINT: 140 }, { OPERATEPOINT: 150 }, { OPERATEPOINT: 160 }, { OPERATEPOINT: 180 }, { OPERATEPOINT: 190 }, { OPERATEPOINT: 200 }, { OPERATEPOINT: 210 }, { OPERATEPOINT: 220 }] // [{ OPERATEPOINT: 140 }, { OPERATEPOINT: 150 }, { OPERATEPOINT: 160 }, { OPERATEPOINT: 180 }, { OPERATEPOINT: 190 }, { OPERATEPOINT: 200 }, { OPERATEPOINT: 210 }, { OPERATEPOINT: 220 }]
// ] // ]
// ] // ]
} };
} }
componentDidMount() { componentDidMount() {
if (this.props.data?.id) if (this.props.data?.id) this.loadData(this.props.data?.id);
this.loadData(this.props.data?.id);
} }
componentWillReceiveProps(NextProps) { componentWillReceiveProps(NextProps) {
@ -46,48 +53,47 @@ class SK006ShowOperateLog extends React.Component {
this.props.dispatch({ this.props.dispatch({
type: 'app/getDataByPost', type: 'app/getDataByPost',
payload: json, payload: json,
url: 'SK/SKSecurityInspectionNotice/SKOrderEntities', url: 'SK/SKSecurityInspectionNotice/OperateLogView',
onComplete: (ret) => { onComplete: (ret) => {
if (ret) { if (ret) {
let riskCount = 1 let riskCount = 1;
riskCount = ret.length - 3 riskCount = ret.length - 3;
var isEnd = false var isEnd = false;
var opEnd = null var opEnd = null;
if (ret[ret.length - 1].length == 1 && ret[ret.length - 1][0].OPERATEPOINT == 220) { if (ret[ret.length - 1].length == 1 && ret[ret.length - 1][0].OPERATEPOINT == 220) {
isEnd = true isEnd = true;
riskCount = riskCount - 1 riskCount = riskCount - 1;
opEnd = ret[ret.length - 1][0] opEnd = ret[ret.length - 1][0];
} }
let dataRiskMore = [] let dataRiskMore = [];
if (riskCount > 0) { if (riskCount > 0) {
var countOpeate = ret.length var countOpeate = ret.length;
if (isEnd) countOpeate-- if (isEnd) countOpeate--;
for (let i = 4; i < countOpeate; i++) { for (let i = 4; i < countOpeate; i++) {
dataRiskMore.push(ret[i]) dataRiskMore.push(ret[i]);
} }
} }
if (riskCount == 0) riskCount = 1 if (riskCount == 0) riskCount = 1;
let riskHeight = 65 * riskCount let riskHeight = 65 * riskCount;
this.setState({ this.setState({
data: ret, data: ret,
dataRiskMore: dataRiskMore, dataRiskMore: dataRiskMore,
riskCount: riskCount, riskCount: riskCount,
opEnd: opEnd, opEnd: opEnd,
riskHeight: riskHeight riskHeight: riskHeight,
})
}
}
}); });
} }
},
});
};
render() { render() {
const { data, riskCount, dataRiskMore, opEnd, riskHeight } = this.state; const { data, riskCount, dataRiskMore, opEnd, riskHeight } = this.state;
const enums = this.props.data.enums ? this.props.data.enums : this.props.app.enums; const enums = this.props.data.enums ? this.props.data.enums : this.props.app.enums;
return <div style={{ textAlign: 'center', margin: "30px 0 0 50px" }}> return (
<div style={{ textAlign: 'center', margin: '30px 0 0 50px' }}>
<table style={{ marginBottom: '50px' }}>
<table style={{ marginBottom: "50px" }} > <tbody>
<tbody >
{/* <tr> {/* <tr>
<td style={{ width: "150px", textAlign: "center" }}> <td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.rectangle} id="step0"></div> <div className={styles.rectangle} id="step0"></div>
@ -97,509 +103,77 @@ class SK006ShowOperateLog extends React.Component {
</tr> */} </tr> */}
{/* 检查任务 */} {/* 检查任务 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}> {data &&
<div className={styles.step} id="ste1">安全检查通知</div> data?.map((item, index) => {
<div className={styles.rectangle} id="step1"></div> // 判断当前item的logList中是否所有STATUS都是0
</td> const allStatusZero = item.logList?.every((log) => log.STATUS === 0);
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{ {
data && data[0]?.map((item, index) => { return (
let resultdiv = [] <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'flex-start' }}>
for (let i = 0; i < 2; i++) { <div style={{ width: '150px', textAlign: 'center', marginRight: '30px' }}>
if (i == 0) { <div className={allStatusZero ? styles.stepno : styles.step} id="ste1">
resultdiv.push( {item.FORM_NAME}
item.OPERTETIME ? </div>
( {index < data.length - 1 && (
//有操作 <div className={allStatusZero ? styles.rectangleno : styles.rectangle} id="step1"></div>
item.ISINTTIME ? )}
(//按时完成 绿色 </div>
<div className={styles.logListContainer}>
<div className={styles.flowchartx}>
{item.logList &&
item.logList.map((item1, index1) => {
{
return (
<div
style={{
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
}}
key={index1}
>
<div> <div>
<div className={styles.stepx} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div> <div
<div id="step02" className={styles.discribeSpan}> className={
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span> item1.STATUS == 0
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span> ? styles.stepxEnable
</div> : item1.STATUS == 5
</div> ? styles.stepx
) : styles.stepxOutTime
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step02" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step02" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[0].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
} }
id="step20"
>
{item1.NAME}
</div> </div>
</td> <div id="step21" className={styles.discribeSpan}>
</tr> <span className={styles.discribeSpanUser}> 用户{item1.USER_NAME}</span>
<span className={styles.discribeSpanTime}>
{' '}
时间{ShowDateTime(item1.DEAL_DATE, 'MM-dd HH:mm')}
</span>
</div>
</div>
{index1 < item.logList.length - 1 ? <div className={styles.linex}></div> : null}
</div>
);
}
})}
</div>
</div>
</div>
);
}
})}
{/* 检查任务 */} {/* 检查任务 */}
{/* 检查记录 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste2">安全检查记录</div>
<div className={styles.rectangle} id="step2"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[1]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step21" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step21" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step21" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[1].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 检查记录 */}
{/* 检查记录汇总 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste3">安全检查记录汇总</div>
<div className={styles.rectangle} id="step3"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[2]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step31" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step31" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step31" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[2].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 检查记录汇总 */}
{/* 隐患上报 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste4">隐患上报</div>
<div className={styles.rectangle} id="step4"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[3]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step41" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step41" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step41" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[3].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患上报 */}
{/* 隐患确认单 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste5">隐患确认单</div>
<div className={styles.rectangle} id="step5"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[4]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step51" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step51" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step51" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[4].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患确认单 */}
{/* 隐患整改通知 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste6">隐患整改通知</div>
<div className={styles.rectangle} id="step6"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[5]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step61" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step61" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step61" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[5].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患整改通知 */}
{/* 隐患整改记录 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste7">隐患整改记录</div>
{/* <div className={styles.rectangle} id="step7"></div> */}
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[6]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step71" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step71" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step71" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[6].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患整改记录 */} {/* 隐患整改记录 */}
</tbody> </tbody>
</table> </table>
</div> </div>
);
} }
} }
export default connect(({ login, app }) => ({ login, app }))(SK006ShowOperateLog) export default connect(({ login, app }) => ({ login, app }))(SK006ShowOperateLog);

View File

@ -0,0 +1,605 @@
import { Button, Descriptions, Badge, Popconfirm, Row, Col, Form, Input, Select, Table } from 'antd';
import React from 'react';
import { initFilter, extendRule, extendInclude, setDataFieldValue, showApprove, guid, ShowDateTime } from '../../../utils/common.js';
import ReactToPrint from 'react-to-print';
import { ExportToExcel } from '@woowalker/feui'
import XLSX from 'xlsx';
import { connect } from 'dva';
import moment from 'moment';
import { message } from 'antd/lib/index';
import styles from '../../../components/CustomPages/HI/OperateLog.css';
import config from '../../../config.js';
class SK006ShowOperateLog extends React.Component {
constructor(props) {
super(props);
this.state = {
data: null,
riskCount: 1,
riskHeight: 50,
opEnd: null
// dateFirst: [
// [{ OPERATEPOINT: 10 }, { OPERATEPOINT: 20 }, { OPERATEPOINT: 30 }, { OPERATEPOINT: 40 }],
// [{ OPERATEPOINT: 48 }, { OPERATEPOINT: 50 }, { OPERATEPOINT: 60 }, { OPERATEPOINT: 70 }, { OPERATEPOINT: 80 }],
// [{ OPERATEPOINT: 130 }],
// [
// [{ OPERATEPOINT: 140 }, { OPERATEPOINT: 150 }, { OPERATEPOINT: 160 }, { OPERATEPOINT: 180 }, { OPERATEPOINT: 190 }, { OPERATEPOINT: 200 }, { OPERATEPOINT: 210 }, { OPERATEPOINT: 220 }]
// ]
// ]
}
}
componentDidMount() {
if (this.props.data?.id)
this.loadData(this.props.data?.id);
}
componentWillReceiveProps(NextProps) {
if (NextProps.data?.id && this.props.data?.id != NextProps.data?.id) {
this.loadData(NextProps.data?.id);
}
}
loadData = (id) => {
var orgId = this.props.login ? this.props.login.OrgId : '';
let json = initFilter(orgId, id);
this.props.dispatch({
type: 'app/getDataByPost',
payload: json,
url: 'SK/SKSecurityInspectionNotice/SKOrderEntities',
onComplete: (ret) => {
if (ret) {
let riskCount = 1
riskCount = ret.length - 3
var isEnd = false
var opEnd = null
if (ret[ret.length - 1].length == 1 && ret[ret.length - 1][0].OPERATEPOINT == 220) {
isEnd = true
riskCount = riskCount - 1
opEnd = ret[ret.length - 1][0]
}
let dataRiskMore = []
if (riskCount > 0) {
var countOpeate = ret.length
if (isEnd) countOpeate--
for (let i = 4; i < countOpeate; i++) {
dataRiskMore.push(ret[i])
}
}
if (riskCount == 0) riskCount = 1
let riskHeight = 65 * riskCount
this.setState({
data: ret,
dataRiskMore: dataRiskMore,
riskCount: riskCount,
opEnd: opEnd,
riskHeight: riskHeight
})
}
}
});
}
render() {
const { data, riskCount, dataRiskMore, opEnd, riskHeight } = this.state;
const enums = this.props.data.enums ? this.props.data.enums : this.props.app.enums;
return <div style={{ textAlign: 'center', margin: "30px 0 0 50px" }}>
<table style={{ marginBottom: "50px" }} >
<tbody >
{/* <tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.rectangle} id="step0"></div>
</td>
<td colSpan={10}>
</td>
</tr> */}
{/* 检查任务 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste1">安全检查通知</div>
<div className={styles.rectangle} id="step1"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[0]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step02" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step02" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step02" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step01">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[0].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 检查任务 */}
{/* 检查记录 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste2">安全检查记录</div>
<div className={styles.rectangle} id="step2"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[1]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step21" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step21" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step21" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step20">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[1].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 检查记录 */}
{/* 检查记录汇总 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste3">安全检查记录汇总</div>
<div className={styles.rectangle} id="step3"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[2]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step31" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step31" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step31" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step30">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[2].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 检查记录汇总 */}
{/* 隐患上报 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste4">隐患上报</div>
<div className={styles.rectangle} id="step4"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[3]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step41" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step41" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step41" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step40">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[3].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患上报 */}
{/* 隐患确认单 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste5">隐患确认单</div>
<div className={styles.rectangle} id="step5"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[4]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step51" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step51" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step51" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step50">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[4].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患确认单 */}
{/* 隐患整改通知 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste6">隐患整改通知</div>
<div className={styles.rectangle} id="step6"></div>
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[5]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step61" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step61" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step61" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step60">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[5].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患整改通知 */}
{/* 隐患整改记录 */}
<tr>
<td style={{ width: "150px", textAlign: "center" }}>
<div className={styles.step} id="ste7">隐患整改记录</div>
{/* <div className={styles.rectangle} id="step7"></div> */}
</td>
<td colSpan={10} style={{ paddingLeft: "30px" }}>
<div className={styles.flowchartx} >
{
data && data[6]?.map((item, index) => {
let resultdiv = []
for (let i = 0; i < 2; i++) {
if (i == 0) {
resultdiv.push(
item.OPERTETIME ?
(
//有操作
item.ISINTTIME ?
(//按时完成 绿色
<div>
<div className={styles.stepx} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step71" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>
)
:
( //超时完成 橙色
<div>
<div className={styles.stepxOutTime} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step71" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间{ShowDateTime(item.OPERTETIME, "MM-dd HH:mm")}</span>
</div>
</div>)
)
:
(
//没有操作 灰色
item.USRTNAME ? (
//有用户信息 写入用户
<div>
<div className={styles.stepxEnable} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
<div id="step71" className={styles.discribeSpan}>
<span className={styles.discribeSpanUser}> 用户{item.USRTNAME}</span>
<span className={styles.discribeSpanTime}> 时间</span>
</div>
</div>
) : (
//没有用户信息
<div>
<div className={styles.stepxEnable} id="step70">{enums.SKOPERATEPOINT_Enums.enums[item.OPERATEPOINT]}</div>
</div>
)
)
)
} else if (index != data[6].length - 1) {
resultdiv.push(
<div className={styles.linex}></div>
)
}
}
return resultdiv
})
}
</div>
</td>
</tr>
{/* 隐患整改记录 */}
</tbody>
</table>
</div>
}
}
export default connect(({ login, app }) => ({ login, app }))(SK006ShowOperateLog)