import { Checkbox, message } from "antd/lib/index"; import { Modal, Button, Descriptions, Input, Select } from 'antd'; import React from 'react'; import { initFilter, extendRule, extendInclude, extendIgnoreDataRule, guid, showFiles, showJoinsHtml, showDetailModal, GetFileModel } from "../../../utils/common"; import { ExportToExcel } from '@woowalker/feui' import styles from '../HI/StepForm.css'; import ReactToPrint from "react-to-print"; import config from "../../../config.js"; import XLSX from 'xlsx'; import { connect } from 'dva'; import FormPage from '../../../components/FormPage' class SC028ShowPrint extends React.Component { constructor(props) { super(props); this.state = { data: null, item: null, btndisplay: 'none', isTaskCheck: false, //是否待办 审批 JOINRESULT: 10, //10 参加 20 请假 NOTJOINREASON: '',//请假原因 isReasonShow: false, isHasOpinion: false, isHostSign: false,//是否主持人确定 isRecordSign: false,//是否记录人确定 isSend: false,//是否发送短信 listFiles: [],//附件地址 isFilesView: 'none', tmpData: {}, fileData: [], fileForm: { title: "", visible: false, }, } } 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); } } onTableBtnExport() { // let TableWrap = document.getElementById('table1' + this.props.record.ID); let TableWrap = document.getElementById('table1'); let Table = TableWrap.getElementsByTagName('table1')[0]; const wb = XLSX.utils.table_to_book(Table); XLSX.writeFile(wb, this.props.record.Nav_Department.NAME + ".xlsx") } //审批意见 改变 NOTJOINREASONCHANGE = (val) => { this.state.NOTJOINREASON = val } //请假/参加 sureCheck = () => { if (this.state.JOINRESULT == 20 && (this.state.NOTJOINREASON == undefined || this.state.NOTJOINREASON == null || this.state.NOTJOINREASON.length < 1)) { message.error("请填写请假原因!"); return false } let json = initFilter(this.props.login.OrgId, this.props.data.id, null, null, null, this.props.data.TaskID, this.state.JOINRESULT, this.state.NOTJOINREASON); extendIgnoreDataRule(json) this.props.dispatch({ type: 'app/getDataByPost', payload: json, url: 'SC/SCMTMeeting/PAllCheck', onComplete: (ret) => { if (ret) { this.props.data.onCancel(); } } }); } //发送短信 sendMsg = () => { if (confirm('确定发送短信?')) { let json = initFilter(this.props.login.OrgId, this.props.data.id); extendIgnoreDataRule(json) this.props.dispatch({ type: 'app/getDataByPost', payload: json, url: 'SC/SCMTMeeting/SendMsg', onComplete: (ret) => { if (ret) { this.props.data.onCancel(); } } }); } } // //请假/参加 // sureCheck = (val) => { // if (val && val == 20 && (this.state.NOTJOINREASON == undefined || this.state.NOTJOINREASON == null || this.state.NOTJOINREASON.length < 1)) { // message.error("请填写请假备注!"); // return false // } // let json = initFilter(this.props.login.OrgId, this.props.data.id, null, null, null, this.props.data.TaskID, val, this.state.NOTJOINREASON); // this.props.dispatch({ // type: 'app/getDataByPost', // payload: json, // url: 'SC/SCMTMeeting/PAllCheck', // onComplete: (ret) => { // if (ret) { // this.props.data.onCancel(); // } // } // }); // } //加载数据(传过来的参数都在props里面,包括登录信息) loadData = (id) => { var taskID = this.props.data.TaskID var loginID = this.props.login.user.ID var orgId = this.props.login ? this.props.login.OrgId : ''; //登录后有存储登录信息 let json = initFilter(orgId); extendRule(json, 'ID', 1, id); //ID=‘’,字段,等于,条件值, 1代表=,2代表不等于,3小于,4小于等于,5大于,6大于等于,7以开始的Like,8以结束的Like,9包含 extendInclude(json, 'Nav_Department'); extendInclude(json, 'Nav_Minutes'); extendInclude(json, 'Nav_User_Originator'); extendInclude(json, 'Nav_UserHost'); extendInclude(json, 'Nav_UserRecorder'); extendInclude(json, 'Nav_ListMeetingContent.Nav_ContentName'); extendInclude(json, 'Nav_ListMeetingContent.Nav_ContentName.Nav_ListContent.Nav_ListContentDeal'); extendInclude(json, 'Nav_ListPAll'); extendInclude(json, 'Nav_ListPAll.Nav_User.Nav_Department'); // extendInclude(json, 'Nav_ListPAll.Nav_User.Nav_Department.Nav_Parent'); //是不是有些时候会报错? extendInclude(json, 'Nav_ListPAll.Nav_User.Nav_Person.Nav_Post'); extendInclude(json, 'Nav_ListPReView.Nav_User'); extendInclude(json, 'Nav_Files.Nav_ImgFile'); extendInclude(json, 'Nav_FilesOfficialseal.Nav_ImgFile'); extendInclude(json, 'Nav_Approve.Nav_ApproveDetails.Nav_ApproveUser'); extendIgnoreDataRule(json) var that = this this.props.dispatch({ type: 'app/getDataByPost', payload: json, url: 'SC/SCMTMeeting/GetSuitDevlop',// url: 'SC/MtMeeting/Get', onComplete: (ret) => { //返回查询结果ret var isTaskCheck = false var isHasOpinion = false var isHostSign = false//是否主持人确定 var isRecordSign = false//是否记录人确定 var isSend = false//是否记录人确定 // var listfiles = [] // var listfilesType = [] if (ret) { //判断是否有记录 if (ret.STATUS >= 20 && taskID != undefined && taskID.length > 0) { if (ret.USER_ID_HOST == loginID || ret.USER_ID_RECORDER == loginID) { //后台查看 task 是否已经操作过 isTaskCheck = true } if (!isTaskCheck && ret.Nav_ListPAll != null) { for (let i = 0; i < ret.Nav_ListPAll.length; i++) { // JOINRESULT // debugger if (ret.Nav_ListPAll[i].USER_ID == loginID && (ret.Nav_ListPAll[i].JOINRESULT == undefined || ret.Nav_ListPAll[i].JOINRESULT == null)) { isTaskCheck = true break } } } } if (isTaskCheck && ((that.props.data.tableKey == null) || (that.props.data.tableKey != undefined && that.props.data.tableKey == "2"))) { isTaskCheck = false } if (ret.Nav_ListMeetingContent != null && ret.Nav_ListMeetingContent.length > 0) { for (let j = 0; j < ret.Nav_ListMeetingContent.length; j++) { if (!isHasOpinion && ret.Nav_ListMeetingContent[j].Nav_ContentName != null && ret.Nav_ListMeetingContent[j].Nav_ContentName.Nav_ListContent != null && ret.Nav_ListMeetingContent[j].Nav_ContentName.Nav_ListContent.length > 0) { isHasOpinion = true } } } //判断 主持人 记录人 是否确定 if (ret.Nav_ListPAll != undefined) { for (let i = 0; i < ret.Nav_ListPAll.length; i++) { if (ret.Nav_ListPAll[i].USER_ID == ret.USER_ID_RECORDER) { if (ret.Nav_ListPAll[i].JOINRESULT) { isRecordSign = true } } else if (ret.Nav_ListPAll[i].USER_ID == ret.USER_ID_HOST) { if (ret.Nav_ListPAll[i].JOINRESULT) { isHostSign = true } } } } } // this.props.login // debugger //isSend 是否发送短信 if (ret.IS_SEND && !ret.IS_SENDED && ret.STATUS > 0 && ret.STATUS <= 20) { isSend = true } // if (ret.Nav_Files && ret.Nav_Files.length > 0) { // ret.Nav_Files.forEach(e => { // listfiles.push(e.Nav_ImgFile.FILE_PATH) // if (e.Nav_ImgFile.FILE_TYPE.indexOf('application/vnd.openxmlformats') > -1 || e.Nav_ImgFile.FILE_TYPE.indexOf('text/') > -1 || e.Nav_ImgFile.FILE_TYPE.indexOf('application/octet-stream') > -1) { // listfilesType.push(e.Nav_ImgFile.FILE_PATH.split('.')[1]) // } else { // listfilesType.push(e.Nav_ImgFile.FILE_TYPE.split('/')[1]) // } // }); // } this.setState({ //设置setState全局变量 data: ret, //将ret对象赋值给data, data供页面调用 isTaskCheck: isTaskCheck,//有taskID 状态 审核完成 登陆者 属于参会人 isHasOpinion: isHasOpinion,//有会议意见 isHostSign: isHostSign,//是否主持人确定 isRecordSign: isRecordSign,//是否记录人确定 isSend: isSend,//是否发送短信 tmpData: {} // listFiles: listfiles, //附件 // listFilesType: listfilesType, }) } }); } filesViewChange = () => { //抽屉查看 方法弃用 this.state.isFilesView = 'block' if (this.state.data.Nav_Files && this.state.data.Nav_Files.length > 0) { const newtmpData = { data: { id: this.props.data.id, visible: ((this.state.isFilesView && this.state.isFilesView == "block") ? true : false), key: guid(), listFiles: this.state.data.Nav_Files, title: '附件查看' }, formCode: "PF141", } this.setState({ tmpData: newtmpData, }); } else { message.error("没有可查看的附件!") } } callBackFiles = (id) => { // $(id).show() // this.forceUpdate() } //渲染页面 render() { const { data, isTaskCheck, isSend, isHostSign, isRecordSign, isReasonShow } = this.state; const CheckboxGroup = Checkbox.Group; return
{/* */} {/* this.filesViewChange() 抽屉 */} { isSend ? : null } {isTaskCheck ? : null } {/* { this.setState({ Note: evt.target.value }) }} > */} {/* {isTaskCheck ?
} content={() => this.componentRef} pageStyle={"#tableId" + this.props.data.id + " { padding:0 40px;} img{width :120px}"} /> {isReasonShow ? { this.setState({ NOTJOINREASON: evt.target.value }) }}> : null}



备注: this.NOTJOINREASONCHANGE(evt.target.value)} />
: null } */}
{/* 安全检查 */}
(this.componentRef = el)} style={{ padding: '20px', paddingTop: '20px' }} id={'tableId' + this.props.data.id}>

会议通知

{ data ?
{data.Nav_Department?.NAME} {data.Nav_User_Originator?.NAME} {data.CODE} {/* {this.props.app.enums.SCMEETINGTYPE.enums[data.MEETINGTYPE]} */} {data.THEME} { data.MEETINGTYPE < 40 ? { data.Nav_ListMeetingContent?.map((item, i) => { return (i > 0 ? "," : "") + item.Nav_ContentName.NAME }) } : null //CONTENT } { showJoinsHtml(data.Nav_ListPAll, isTaskCheck, data.STATUS) // data.Nav_ListPAll?.map((item, i) => { // if ((item.PERSONNATURE == null || item.PERSONNATURE == 10) && (item.PERSONTYPE == 10 || item.PERSONTYPE == 40)) {//评审人 可能也加入到 参会人员中 || item.PERSONTYPE == 40 // if (!isTaskCheck&&(data.STATUS == 0 || data.STATUS == 20)) { // return (i > 0 ? "," : "") + item.Nav_User.NAME // } else { // // 人员 参会反馈情况 有 黑色 无 红色 // return ( {(i > 0 ? "," : "") + item.Nav_User.NAME}) // } // } // }) } { isHostSign ? data.Nav_UserHost?.NAME : {data.Nav_UserHost?.NAME} } { isRecordSign ? data.Nav_UserRecorder?.NAME : {data.Nav_UserRecorder?.NAME} // data.Nav_UserRecorder?.NAME } {(data.MEETINGTYPE != null && data.MEETINGTYPE == 30) ? { // data.Nav_ListPReView data.Nav_ListPReView?.map((item, i) => { if (data.STATUS == 0 || data.STATUS == 20) { return (i > 0 ? "," : "") + item.Nav_User.NAME } else { // 人员 参会反馈情况 有 黑色 无 红色 // 查找参会人员 中 是否参加 信息 // data.Nav_ListPAll return ( {(i > 0 ? "," : "") + item.Nav_User.NAME}) } }) } : null} {data.BEGIN_TIME} {/* {data.ADDRESS} */} { data.MEETINGTYPE > 30 ? {data.ADDRESS} : {data.ADDRESS} } { data.MEETINGTYPE > 30 ? {data.CONTENT} : null } {/* {this.props.app.enums.PFStandardStatus.enums[data.STATUS]} */} { showFiles(data.Nav_FilesOfficialseal, config.picServerHost, this) } { showFiles(data.Nav_Files, config.picServerHost, this) } {/*
*/} {/* { showApprove(data.Nav_Approve?.Nav_ApproveDetails, this.props.app.enums.NodeApproveStatus.enums, config.picServerHost) } */}
: null } {/* 显示会议意见 */} {/* { isHasOpinion ? {data?.Nav_ListMeetingContent.map((item, i) => { return item.Nav_ContentName.Nav_ListContent?.map((itemContent, j) => { return }) })}

会议意见

题目 选项
{itemContent.TITLE} { itemContent.CHECKTYPE == 20 ? { return itemContentDetail.CONTENTDETAIL }) } /> : { itemContent?.Nav_ListContentDeal?.map((itemContentDetail, k) => { return {itemContentDetail.CONTENTDETAIL} }) } }
: null } */} {/* 参加 或者请假 */} {/* 如果会议已经开始了 显示 会议人员名单 序号 "部门/车间 班组人员归到车间" 姓名 岗位 参加/请假 */} { // data?.Nav_Minutes && data?.Nav_ListPAll ? 签到的时候不显示 会议人员名单 !isTaskCheck && data?.Nav_ListPAll ? {/* style={{ width: '100%', marginTop: '15px', textAlign: 'center', borderTop: '1px solid #333', borderLeft: '1px solid #333' }} className={styles.PrintForm} */} {/*部门/车间 班组人员归到车间 */} {data?.Nav_ListPAll?.map((item, i) => { if (item.PERSONNATURE == null || item.PERSONNATURE == 10) { return {/* */} {/* //是不是有些时候会报错?*/} } })}

会议人员名单

工号 姓名 部门/车间/班组岗位 参会反馈情况
{(i + 1)}{item.Nav_User.CODE}{item.Nav_User.Nav_Department?.NAME}{item.Nav_User.NAME} {item.Nav_User.Nav_Department?.NAME} {item.Nav_User.Nav_Person?.Nav_Post?.NAME} {(item.JOINRESULT == undefined || item.JOINRESULT == null) ? "" : (this.props.app.enums.JoinTaskResult.enums[item.JOINRESULT] == '未完成' ? '未确定' : (this.props.app.enums.JoinTaskResult.enums[item.JOINRESULT] == "参加" ? "参加" : (this.props.app.enums.JoinTaskResult.enums[item.JOINRESULT] + "(" + item.NOTJOINREASON + ")")))}
: null } {/* 参加 请假 */} {/* {isTaskCheck ?



备注: this.NOTJOINREASONCHANGE(evt.target.value)} />
: null } */} {/* 附件查看 */} {/*
{ (data && data.Nav_Files) ? showFilesView(data.Nav_Files, config.picServerHost) : null }
*/}
{ GetFileModel(Modal, FormPage, this, this.state.fileForm.visible) }
} } export default connect(({ login, app }) => ({ login, app }))(SC028ShowPrint)