import { Button, Descriptions, Row, Col, Form, Input, Select, Table } from 'antd';
import React from 'react';
import { connect } from 'dva';
import { initFilter, extendRule, extendInclude, setDataFieldValue, guid, initQueryFilter } from "../../../utils/common";
import ReactToPrint from "react-to-print";
import styles from '../HI/StepForm.css';
import config from "../../../config";
import XLSX from 'xlsx';
import FormPage from '../../../components/FormPage'
class HM121ShowPrint extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            tmpData: {},
            data: null
        };
    };
    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 = (dataId) => {
        let json = initFilter(this.props.login.OrgId);
        extendRule(json, 'ID', 1, dataId);
        this.props.dispatch({
            type: 'app/getDataByPost',
            payload: json,
            url: 'HM/HMEvaluateResult/FullGet',
            onComplete: (ret) => {
                if (this.props.data && this.props.data.loadDataDeal) {
                    this.props.data.loadDataDeal(1);
                }
                this.onClickApprove(false);
                if (ret) {
                    this.setState({ data: ret })
                }
            }
        });
    }
    onClickApprove = (appVisible) => {
        const newtmpData = {
            data: { id: this.props.data.id, isShow: true, key: guid(), appVisible: appVisible, BtnAgreeDisplay: 'inline' },
            formCode: "PF123",
        }
        this.setState({
            tmpData: newtmpData,
        });
    }
    getChild = (data) => {
        const enums = this.props.app.enums;
        if (data.EVALUATE_TYPE === 2) {
            return <>
                
                    | 序号 | 
                    辨识区域 | 
                    辨识对象 | 
                    风险类别 | 
                    风险名称 | 
                    风险地点 | 
                    岗位 | 
                    设备设施 | 
                    {/* 相关设施 |  */}
                    {/* 作业环节 |  */}
                    风险评价 | 
                    风险等级 | 
                    风险控制 | 
                    责任单位 | 
                    责任岗位 | 
                
                
                    | L | 
                    E | 
                    C | 
                    D | 
                    个体防护措施 | 
                    工程控制措施 | 
                    管理控制措施 | 
                    教育培训措施 | 
                    应急处置措施 | 
                
                {
                    data.Nav_Risks && data.Nav_Risks.map((item, index) => {
                        return 
                            | {index + 1} | 
                            {item.Nav_Area ? item.Nav_Area.NAME : ''} | 
                            {item.Nav_Identifying ? item.Nav_Identifying.NAME : ''} | 
                            {item.Nav_Type ? item.Nav_Type.NAME : ''} | 
                            {item.NAME} | 
                            {item.RISK_PLACE} | 
                            {
                                item.Nav_EvaluateRiskWorkduty && item.Nav_EvaluateRiskWorkduty.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskWorkduty.length - 1)) {
                                        return ite.Nav_Post.NAME
                                    } else {
                                        return ite.Nav_Post.NAME + '  '
                                    }
                                })
                            } | 
                            {
                                item.Nav_EvaluateRiskEquipment && item.Nav_EvaluateRiskEquipment.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskEquipment.length - 1)) {
                                        return ite.Nav_Equipment.NAME
                                    } else {
                                        return ite.Nav_Equipment.NAME + '  '
                                    }
                                })} | 
                            {/* {
                                item.Nav_EvaluateRiskFacilities && item.Nav_EvaluateRiskFacilities.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskFacilities.length - 1)) {
                                        return ite.Nav_Facilities.NAME
                                    } else {
                                        return ite.Nav_Facilities.NAME + '  '
                                    }
                                })} |  */}
                            {item.EVALUATE_L} | 
                            {item.EVALUATE_E} | 
                            {item.EVALUATE_C} | 
                            {item.EVALUATE_SCORE} | 
                            {enums.EvaluateLevelEnum.enums[item.EVALUATE_LEVEL]} | 
                            {
                                item.Nav_EvaluateRiskIndividualMeasures && item.Nav_EvaluateRiskIndividualMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskIndividualMeasures.length - 1)) {
                                        return ite.Nav_IndividualMeasures.NAME
                                    } else {
                                        return ite.Nav_IndividualMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateRiskEngineeringMeasures && item.Nav_EvaluateRiskEngineeringMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskEngineeringMeasures.length - 1)) {
                                        return ite.Nav_EngineeringMeasures.NAME
                                    } else {
                                        return ite.Nav_EngineeringMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateRiskManagementMeasures && item.Nav_EvaluateRiskManagementMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskManagementMeasures.length - 1)) {
                                        return ite.Nav_ManagementMeasures.NAME
                                    } else {
                                        return ite.Nav_ManagementMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateRiskEducationMeasures && item.Nav_EvaluateRiskEducationMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskEducationMeasures.length - 1)) {
                                        return ite.Nav_EducationMeasures.NAME
                                    } else {
                                        return ite.Nav_EducationMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateRiskEmergencyMeasures && item.Nav_EvaluateRiskEmergencyMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateRiskEmergencyMeasures.length - 1)) {
                                        return ite.Nav_EmergencyMeasures.NAME
                                    } else {
                                        return ite.Nav_EmergencyMeasures.NAME + '  '
                                    }
                                })} | 
                            {item.Nav_DepartmentLiable ? item.Nav_DepartmentLiable.NAME : ''} | 
                            {item.Nav_PostLiable ? item.Nav_PostLiable.NAME : ''} | 
                        
                    })
                }
            >
        } else {
            return <>
                
                    | 序号 | 
                    职业危害名称 | 
                    职业危害位置 | 
                    暴露时间 | 
                    暴露限值 | 
                    暴露限值单位 | 
                    暴露人数 | 
                    可能造成的职业风险 | 
                    危害等级 | 
                    监测措施 | 
                    个体防护措施 | 
                    工程控制措施 | 
                    管理控制措施 | 
                    教育培训措施 | 
                    应急处置措施 | 
                    责任单位 | 
                    责任岗位 | 
                
                {
                    data.Nav_Hazards && data.Nav_Hazards.map((item, index) => {
                        return 
                            | {index + 1} | 
                            {item.Nav_Identifying.NAME} | 
                            {item.HAZARD_POSITION} | 
                            {item.EXPOSURE_TIME} | 
                            {item.EXPOSURE_LIMIT_VALUE} | 
                            {item.Nav_Identifying ? item.Nav_Identifying.LIMIT_UNIT : ''} | 
                            {item.EXPOSURE_NUMBER} | 
                            {item.Nav_OccupationalRisk ? item.Nav_OccupationalRisk.NAME : ''} | 
                            {enums.HazardLevelEnum.enums[item.HAZARD_LEVEL]} | 
                            {item.Nav_MonitorMeasures ? item.Nav_MonitorMeasures.NAME : ''} | 
                            {
                                item.Nav_EvaluateHazardIndividualMeasures && item.Nav_EvaluateHazardIndividualMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateHazardIndividualMeasures.length - 1)) {
                                        return ite.Nav_IndividualMeasures.NAME
                                    } else {
                                        return ite.Nav_IndividualMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateHazardEngineeringMeasures && item.Nav_EvaluateHazardEngineeringMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateHazardEngineeringMeasures.length - 1)) {
                                        return ite.Nav_EngineeringMeasures.NAME
                                    } else {
                                        return ite.Nav_EngineeringMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateHazardManagementMeasures && item.Nav_EvaluateHazardManagementMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateHazardManagementMeasures.length - 1)) {
                                        return ite.Nav_ManagementMeasures.NAME
                                    } else {
                                        return ite.Nav_ManagementMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateHazardEducationMeasures && item.Nav_EvaluateHazardEducationMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateHazardEducationMeasures.length - 1)) {
                                        return ite.Nav_EducationMeasures.NAME
                                    } else {
                                        return ite.Nav_EducationMeasures.NAME + '  '
                                    }
                                })} | 
                            {
                                item.Nav_EvaluateHazardEmergencyMeasures && item.Nav_EvaluateHazardEmergencyMeasures.map((ite, i) => {
                                    if (i == (item.Nav_EvaluateHazardEmergencyMeasures.length - 1)) {
                                        return ite.Nav_EmergencyMeasures.NAME
                                    } else {
                                        return ite.Nav_EmergencyMeasures.NAME + '  '
                                    }
                                })} | 
                            {item.Nav_DepartmentLiable ? item.Nav_DepartmentLiable.NAME : ''} | 
                            {item.Nav_PostLiable ? item.Nav_PostLiable.NAME : ''} | 
                        
                    })
                }
            >
        }
    }
    onTableBtnExport() {
        let TableWrap = document.getElementById('tableId' + this.props.data.id);
        let Table = TableWrap.getElementsByTagName('table')[0];
        const wb = XLSX.utils.table_to_book(Table);
        XLSX.writeFile(wb, this.props.record.Nav_Department.NAME + ".xlsx")
    }
    render() {
        const { data } = this.state;
        const content = ['', '职业危害辨识', '危险源与风险辨识'];
        return 
            
                
                 }
                    content={() => this.componentRef}
                />
                
            
             (this.componentRef = el)} id={'tableId' + this.props.data.id} style={{ padding: '20px' }}>
                
评价记录表
                {
                    data ? 
                        
                            {data.CODE}
                            {content[data.EVALUATE_TYPE]}
                            {data.Nav_NoteTaker ? data.Nav_NoteTaker.NAME : ''}
                            {data.START_TIME}
                            {data.END_TIME}
                             {
                                data.Nav_Files && data.Nav_Files.map((item, i) => {
                                    return {item.Nav_ImgFile.FILE_NAME} 
                                })
                            }
                            {data.Nav_Requirement ? data.Nav_Requirement.NAME : ''}
                        
                        
                        
                      : null
                }
            
 
         
    }
}
export default connect(({ login, app }) => ({ login, app }))(HM121ShowPrint)