import { message } from "antd/lib/index"; import { Button, Popconfirm, Row, Col, Checkbox, Radio, Form, Input, Select, Table, Upload, Icon, PageHeader, Modal } from 'antd'; import React from 'react'; import { initFilter, extendRule, extendInclude, extendIgnoreDataRule, setDataFieldValue, guid, initQueryFilter } from "../../../utils/common"; import ReactToPrint from "react-to-print"; import styles from '../../CustomPages/HI/StepForm.css'; import XLSX from 'xlsx'; import { connect } from 'dva'; import moment from 'moment'; import config from "../../../config"; class SCShowPrint extends React.Component { constructor(props) { super(props); this.state = { data: null, TYPE: this.props.data.TYPE, LIST: this.props.data.LIST, PRINT: null, }; }; componentDidMount() { if (window.navigator.userAgent.indexOf("Windows") < 1) { this.setState({ isMobile: true }) } 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); } } BtnClose = () => { if (typeof this.props.data.onCancel != "undefined" && typeof this.props.data.onCancel == 'function') this.props.data.onCancel(); } fmtEnum(name, value) { const enums = this.props.app.enums; if (!enums || !enums[name]) return ''; return enums[name].enums[value] || ''; } loadData = (dataId) => { if (dataId == "") return; let json = initFilter(this.props.login.OrgId, '', null, null, null); if (this.props.data.isView) { extendRule(json, 'ID', 1, dataId); } else { extendRule(json, 'Nav_Versions.ID', 9, dataId); } json.OrgType = 2; extendInclude(json, 'Nav_Post'); extendInclude(json, 'Nav_Versions'); extendInclude(json, 'Nav_Versions.Nav_User'); extendInclude(json, 'Nav_Versions.Nav_Department'); extendInclude(json, 'Nav_Files.Nav_ImgFile.Nav_File'); extendIgnoreDataRule(json) this.props.dispatch({ type: 'app/getDataByPost', payload: json, url: 'SC/System/Get', onComplete: (ret) => { if (!ret) return; ret.Nav_Versions.sort((a, b) => { return a.VERSION - b.VERSION }); if (this.props.formCode == "SC005_VIEW") { ret.Nav_Versions = ret.Nav_Versions.filter(t => t.STATUS == 2 || t.STATUS == 3); } this.setState({ data: ret, TYPE: ret.TYPE, PRINT: this.state.LIST ? null : ret.Nav_Versions[ret.Nav_Versions.length - 1], }) } }); } onTableBtnExport() { let TableWrap = document.getElementById('tableId' + this.props.data.id); let Table = TableWrap.getElementsByTagName('table')[0]; const wb = XLSX.utils.table_to_book(Table); let name = this.fmtName(); if (this.state.data && this.state.data.CODE) name += '-' + this.state.data.CODE; name += '.xlsx'; XLSX.writeFile(wb, name) } fmtName() { let fix = this.state.PRINT && this.state.PRINT.IS_ANNUL ? '废除' : '修订'; if (this.state.TYPE === 0) { return `制度${fix}记录表` } else if (this.state.TYPE === 1) { return `安全生产责任制${fix}记录表` } else if (this.state.TYPE === 2) { return `岗位安全操作规程和指导书${fix}记录表` } } fmtTime(time) { time = time || ''; return time.substr(0, 10); } render() { const { data } = this.state; const ver = data && data.Nav_Versions.find(it => it.STATUS == 1 || it.FILE_STATUS == 1) return
{ this.state.PRINT &&
} content={() => this.componentRef} /> { this.state.LIST && }
}
(this.componentRef = el)} style={{ padding: '20px' }} id={'tableId' + this.props.data.id}> { this.state.PRINT &&

{this.fmtName()}

} { !this.state.PRINT && this.state.LIST && { this.state.TYPE === 1 && } { data && data.Nav_Versions && data.Nav_Versions.map((it, idx) => { return { this.state.TYPE === 1 && } { !this.state.PRINT.IS_ANNUL && } { !this.state.PRINT.IS_ANNUL && }
编号 {data ? data.CODE : null} 名称 {data ? data.NAME : null}
序号 版本号 修订/废除原因 修订概要责任制说明编制单位 编制/废除时间 颁布时间 录入人员 文件状态 文件附件 查看
{idx + 1} {`${it.VERSION}.0`} {it.VERSION !== 1 ? it.REASON : null} {it.VERSION !== 1 ? it.SUMMARY : null}{it.NOTE}{it.Nav_Department.NAME} {this.fmtTime(it.EDIT_TIME)} {this.fmtTime(it.PUBLISH_TIME)} {it.Nav_User.NAME} {this.fmtEnum('SCSystemFileStatus', it.FILE_STATUS)} { it.Nav_Files && it.Nav_Files.map((file, i) => { return {this.fmtTime(this.state.PRINT.TIME)} 名称 {data && data.NAME} 编号 {data && data.CODE}
{this.state.PRINT.IS_ANNUL ? '废除原因' : '修订原因'} {this.state.PRINT.REASON}
制定要求 {this.state.PRINT.REQUIRE}
修订概要 {this.state.PRINT.SUMMARY}
文件附件 { this.state.PRINT.Nav_Files && this.state.PRINT.Nav_Files.map((file, i) => { return