2024-05-27 09:25:22 +08:00
import { Button , Input , Descriptions , message } from 'antd' ;
const { TextArea } = Input ;
import React from 'react' ;
import { initFilter , extendIgnoreDataRule , extendRule , extendInclude , showUserSign } from "../../../utils/common" ;
import ReactToPrint from "react-to-print" ;
import { ExportToExcel } from '@woowalker/feui'
import XLSX from 'xlsx' ;
import { connect } from 'dva' ;
import config from "../../../config.js" ;
import styles from '../HI/StepForm.css' ;
class BS044Check extends React . Component {
constructor ( props ) {
super ( props ) ;
this . state = {
data : null ,
BtnAgreeDisplay : 'none' ,
DEALSITUATION : 0 ,
DEALOPINION : '' ,
loginid : this . props . login . user . ID ,
isDealUserCheck : false , //是否 整改责任人 确认
isCheckerCheck : false , //是否 验收人 确认
isOKLoad : false ,
isRejectLoad : 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 ) ;
}
}
//审批意见 改变
DEALOPINIONCHANGE = ( val ) => {
this . state . DEALOPINION = val
}
//完成情况 改变
DEALSITUATIONCHANGE = ( val ) => {
this . state . DEALSITUATION = val
}
sureCheck = ( val ) => {
//驳回 10
if ( val == 10 ) {
this . setState ( {
isRejectLoad : true ,
isOKLoad : false ,
} )
} else {
//同意 40
this . setState ( {
isOKLoad : true ,
isRejectLoad : false
} )
}
if ( val && val == 10 && ( this . state . DEALOPINION == undefined || this . state . DEALOPINION == null || this . state . DEALOPINION . length < 1 ) ) {
message . error ( "请填写驳回的验收意见!" ) ;
this . setState ( {
isRejectLoad : false ,
isOKLoad : false ,
} )
return false
}
// let json = initFilter(this.props.login.OrgId, this.props.data.id, null, null, null, this.props.data.TaskID, this.state.DEALSITUATION, this.state.DEALOPINION);
let json = initFilter ( this . props . login . OrgId , this . props . data . id , null , null , null , this . props . data . TaskID , val , this . state . DEALOPINION ) ;
extendIgnoreDataRule ( json )
this . props . dispatch ( {
type : 'app/getDataByPost' ,
payload : json ,
url : 'BS/BSRiskSubmit/CheckDeal' ,
onComplete : ( ret ) => {
if ( ret ) {
this . setState ( {
isRejectLoad : false ,
isOKLoad : false ,
} )
this . props . data . onCancel ( ) ;
}
}
} ) ;
}
loadData = ( ) => {
let json = initFilter ( this . props . login . OrgId ) ;
extendRule ( json , 'ID' , 1 , this . props . data . id ) ;
extendInclude ( json , 'Nav_UserDeal.Nav_UserSignFiles.Nav_ImgFile.Nav_File' ) ;
extendInclude ( json , 'Nav_UserDeal.Nav_UserSignFiles.Nav_User' ) ;
extendInclude ( json , 'Nav_UserCheck.Nav_UserSignFiles.Nav_ImgFile.Nav_File' ) ;
extendInclude ( json , 'Nav_UserActualDeal' ) ;
extendInclude ( json , 'Nav_SubmitNoticePerson' ) ;
extendInclude ( json , 'Nav_UserDeal.Nav_Department' ) ;
extendInclude ( json , 'Nav_SubmitContent.Nav_Question' ) ;
// extendInclude(json, 'Nav_ListUserSign.Nav_User.Nav_UserSignFiles.Nav_ImgFile.Nav_File');
// extendInclude(json, 'Nav_ListCheckUserSign.Nav_User.Nav_UserSignFiles.Nav_ImgFile.Nav_File');
extendInclude ( json , 'Nav_Files.Nav_ImgFile.Nav_File' ) ;
extendInclude ( json , 'Nav_FilesAfter.Nav_ImgFile.Nav_File' ) ;
this . props . dispatch ( {
type : 'app/getDataByPost' ,
payload : json ,
url : 'BS/RiskSubmitContentDeal/Get' ,
onComplete : ( ret ) => {
if ( ret ) {
this . setState ( { //设置setState全局变量
data : ret , //将ret对象赋值给data, data供页面调用
DEALSITUATION : ret . DEALSITUATION ,
isDealUserCheck : ( this . state . loginid == ret . Nav _SubmitContent . DEAL _USER _ID && ret . Nav _SubmitContent . RiskContentState == 36 ) ? true : false ,
isCheckerCheck : ( this . state . loginid == ret . Nav _SubmitContent . CHECK _USER _ID && ret . Nav _SubmitContent . RiskContentState == 37 ) ? true : false ,
} )
// this.DEALOPINIONCHANGE(ret.DEALOPINION)
}
}
} ) ;
}
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 , "隐患整改记录表.xlsx" )
}
render ( ) {
const { data , isDealUserCheck , isCheckerCheck , isOKLoad , isRejectLoad } = this . state ;
const enums = this . props . data . enums ? this . props . data . enums : this . props . app . enums ; ;
return < div >
< div style = { { padding : '10px' } } >
< table >
< tbody >
< tr >
< td > < ReactToPrint trigger = { ( ) => < Button icon = { 'printer' } > 打印 < /Button>} content={() => this.componentRef} pageStyle={"#tableId" + this.props.data.id + " { padding:0 40px;} img{width :120px}"} / > < / t d >
< td > < ExportToExcel fileName = '隐患整改记录表' tableId = { 'tableId' + this . props . data . id } / > < / t d >
< / t r >
< / t b o d y >
< / t a b l e >
< / d i v >
{ /* 检查表制定 */ }
< div ref = { el => ( this . componentRef = el ) } style = { { padding : '20px' , paddingTop : '20px' } } id = { 'tableId' + this . props . data . id } >
< h1 style = { { textAlign : 'center' , margin : '15px' } } > 隐患整改记录表 < / h 1 >
{
data ? < div >
< Descriptions title = "" size = "middle" bordered >
< Descriptions . Item label = "编号" > { data . CODE } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "整改截止时间" > { data . ENDDATE } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "整改落实人" > { data . Nav _UserActualDeal . NAME } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "整改部门" > { data . Nav _UserDeal . Nav _Department . NAME } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "整改责任人" > { data . Nav _SubmitContent . RiskContentState < 37 ? < a className = { styles . red } > { data . Nav _UserDeal . NAME } < / a > : d a t a . N a v _ U s e r D e a l . N A M E } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "验收人" > { data . Nav _SubmitContent . RiskContentState < 38 ? < a className = { styles . red } > { data . Nav _UserCheck . NAME } < / a > : d a t a . N a v _ U s e r C h e c k . N A M E } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "验收时间" > { data . CHCECKTIME } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "通知单编号" > { data . Nav _SubmitNoticePerson . CODE } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "检查问题" > { data . Nav _SubmitContent != null ? data . Nav _SubmitContent . DESCREPTION : "" } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "整改建议与措施" > { data . Nav _SubmitContent . DEMAND } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "整改后情况描述" > { data . DEALDESCRIBE } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "隐患地点" > { data . Nav _SubmitContent . ADDRESS } < / D e s c r i p t i o n s . I t e m >
2024-06-27 14:28:34 +08:00
< Descriptions . Item label = "备注" > { data . REMARK } < / D e s c r i p t i o n s . I t e m >
2024-05-27 09:25:22 +08:00
{ /* <hr></hr> */ }
< Descriptions . Item label = "附件(整改前)" > {
data . Nav _Files && data . Nav _Files . map ( ( item , i ) => {
return < a width = { '20%' } title = { item . Nav _ImgFile . FILE _NAME } target = '_blank' href = { config . picServerHost + item . Nav _ImgFile . Nav _File . FILE _PATH } > { item . Nav _ImgFile . FILE _NAME } < / a >
} )
} < / D e s c r i p t i o n s . I t e m >
{ /* <Descriptions.Item label="整改情况描述">{data.DEALDESCRIBE}</Descriptions.Item> */ }
< Descriptions . Item label = "附件(整改后)" > {
data . Nav _FilesAfter && data . Nav _FilesAfter . map ( ( item , i ) => {
return < a width = { '20%' } title = { item . Nav _ImgFile . FILE _NAME } target = '_blank' href = { config . picServerHost + item . Nav _ImgFile . Nav _File . FILE _PATH } > { item . Nav _ImgFile . FILE _NAME } < / a >
} )
} < / D e s c r i p t i o n s . I t e m >
{ /* <hr></hr> */ }
< Descriptions . Item label = "整改责任人签名" > { data . Nav _SubmitContent . RiskContentState > 36 ? showUserSign ( data . Nav _UserDeal , config . picServerHost ) : null } < / D e s c r i p t i o n s . I t e m >
< Descriptions . Item label = "验收人签名" > { data . Nav _SubmitContent . RiskContentState >= 38 ? showUserSign ( data . Nav _UserCheck , config . picServerHost ) : null } < / D e s c r i p t i o n s . I t e m >
< / D e s c r i p t i o n s >
{ ( isDealUserCheck || isCheckerCheck ) ?
< table style = { { width : '100%' , margin : '0,0,0,0' , lineHeight : '35px' } } >
< tbody >
< tr > < td colSpan = { 2 } > < br > < / b r > < h r > < / h r > < / t d > < / t r >
< tr >
{ data . Nav _SubmitContent . RiskContentState == 36 ? < th style = { { float : "right" } } > 审核意见 : < / t h > : < t h s t y l e = { { f l o a t : " r i g h t " } } > 验 收 意 见 : < / t h > }
< td >
{ /* placeholder='如驳回,请详细描述整改情况' */ }
< Input . TextArea style = { { width : '96%' , margin : '0 0 0 15px' } } onChange = { ( evt ) => this . DEALOPINIONCHANGE ( evt . target . value ) } / > { /* defaultValue={data.DEALOPINION} */ }
< / t d >
< / t r >
< tr >
< th > < / t h >
< td >
< Button style = { { width : '120px' , height : '38px' , margin : '20px 0 20px 15px' } } type = { 'primary' } icon = { 'check' } loading = { isOKLoad } onClick = { ( ) => this . sureCheck ( 40 ) } > 同意 < / B u t t o n >
{ /* 默认未完成 */ }
< Button style = { { width : '120px' , height : '38px' , margin : '20px 0 20px 30px' , backgroundColor : "#ED7D31" , borderColor : "#ED7D31" } } loading = { isRejectLoad } type = "primary" htmlType = "submit" icon = "close" size = "50px" onClick = { ( ) => this . sureCheck ( 10 ) } > 驳回 < / B u t t o n >
< / t d >
< / t r >
< / t b o d y >
< / t a b l e >
: null
}
< / d i v > : n u l l
}
< / d i v >
< / d i v >
}
}
export default connect ( ( { login , app } ) => ( { login , app } ) ) ( BS044Check )