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, setDataFieldValue, guid, initQueryFilter } from "../../../utils/common"; import ReactToPrint from "react-to-print"; import styles from '../../CustomPages/HI/StepForm.css'; import SEstyles from './SE.css'; import XLSX from 'xlsx'; import { connect } from 'dva'; import moment from 'moment'; import config from "../../../config"; const Option = Select.Option; // public enum SETrainSurveyStatus // { // 草稿 = 0, // 调查中 = 1, // 汇总中 = 2, // 审阅中 = 3, // 完成 = 4, // } class SE019ShowPrint extends React.Component { constructor(props) { super(props); this.state = { data: null, confirmBtn: 'none', }; }; componentDidMount() { this.loadData(); } 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] || ''; } fmtJoinUsers = () => { let ret = []; if (this.state.data && this.state.data.Nav_OpinionList) { this.state.data.Nav_OpinionList.map(it => { if (it.Nav_User) { ret.push(it.Nav_User.NAME); } }) } return ret.join('、') } loadData = () => { if (this.props.data.id == "") return; let json = initFilter(this.props.login.OrgId, '', null, null, null); extendRule(json, 'ID', 1, this.props.data.id); json.OrgType = 2; extendInclude(json, 'Nav_OpinionList'); extendInclude(json, 'Nav_ResultList'); extendInclude(json, 'Nav_OpinionList.Nav_User'); extendInclude(json, 'Nav_ResultList.Nav_Subject'); json.IgnoreDataRule = true; this.props.dispatch({ type: 'app/getDataByPost', payload: json, url: 'SE/TrainingEffectEvaluation/Get', onComplete: (ret) => { if (!ret) return; if ( this.props.data.tableKey == "1") { this.setState({ confirmBtn: 'inline' }) } this.setState({ data: ret }) } }); } onTableBtnAgree() { this.props.dispatch({ type: 'app/getDataByPost', url: 'HM/HMNoticeRelease/PersonalAgree', payload: { ID: this.props.data.id, TaskID: this.props.data.TaskID, }, onComplete: (ret) => { if (ret) { message.success('确认成功!'); this.setState({ BtnAgreeDisplay: 'none' }) this.BtnClose(); } } }) } 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 = '培训效果评估表'; name += '.xlsx'; XLSX.writeFile(wb, name) } render() { const { data } = this.state; const enums = this.props.app.enums; const reportCount = data && data.Nav_Demands ? data.Nav_Demands.filter(i => i.OK).length : 0; const total = data && data.Nav_Demands ? data.Nav_Demands.length : 0; const rate = total === 0 ? 0 : Math.round(reportCount * 100 / total); return
} content={() => this.componentRef} />
(this.componentRef = el)} id={'tableId' + this.props.data.id} style={{ padding: '20px' }}>

培训效果评估表

{ this.state.data && this.state.data.Nav_ResultList.map((r, idx) => { return }) } { data && data.Nav_OpinionList && data.Nav_OpinionList.map((it, idx) => { return }) }
培训名称 {data ? data.NAME : null}
参与人员 {data ? this.fmtJoinUsers() : ''}
调查时间 {data ? data.START_TIME : null} 调查份数 {data ? data.SURVEY_NUMS : null} 反馈份数 {data ? data.FEEDBACK_NUMS : null} 反馈比例 {data ? data.FEEDBACK_RATIO : null}
评估结果
序号 题目 较好 一般
{idx + 1} {r.Nav_Subject.NAME} {r.GOOD_RATION} {r.BETTER_RATION} {r.NORMAL_RATION} {r.BAD_RATION}
培训改进意见
序号 姓名 意见
{idx + 1} {it.Nav_User && it.Nav_User.NAME} {it.OPINION_CONTENT}
} } export default connect(({ login, app }) => ({ login, app }))(SE019ShowPrint)