import { message } from "antd/lib/index"; import { Layout, Tabs, Steps, Button, Popconfirm, Row, Col, Icon, Form, Input, Select, Table, Drawer } from 'antd'; import React from 'react'; import { PlusOutlined, ArrowRightOutlined, SearchOutlined } from '@ant-design/icons'; import ReactToPrint from "react-to-print"; import styles from '../HI/StepForm.css'; import config from "../../../config"; import XLSX from 'xlsx'; import { connect } from 'dva'; const { Header, Footer, Sider, Content } = Layout; const TabPane = Tabs.TabPane; const { TextArea } = Input; const { Step } = Steps; import { extend, extendRule, initFilter, initQueryFilter, getOnlyPropertyData, extendInclude, empty, getDataFieldValue, guid, initFilterGroup, extendGroupRule, getIsPC } from "../../../utils/common"; import FormPage from '../../../components/FormPage' class PFCommonApprove extends React.Component { constructor(props) { super(props) this.state = { title: '流程审核', data: {}, approveCode: '', isCurrent: false, tmpData: {}, visible: false, userData: [], selectUserId: '', appVisible: false, comVisible: true, btnDisplay: 'block', stepDisplay: 'block', isRequired: false, isPC: getIsPC(), BtnAgreeDisplay: 'none', BtnRejectDisplay: 'none', isOKLoad: false, isRejectLoad: false, REJECT_INTERFACE: '' } }; 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); } } compare = (val1, val2) => { return val1.NUM - val2.NUM; }; onchange = (e) => { let tmpData = { ...this.state.data }; tmpData.CurrentNode.NODE_APPROVE_STATUS = e; this.setState({ data: tmpData }) } selectChange = (e) => { const jsonUser = initFilter(this.props.login.OrgId, '', '', 0, 1) extendRule(jsonUser, "NAME", 1, e); this.props.dispatch({ type: 'app/getDataByPost', url: 'FM/User/OrderEntities', payload: jsonUser, onlyData: false, onComplete: (ret) => { this.setState({ userData: ret.Data }); } }); this.setState({ selectUserId: e }) } BtnClose = () => { if (typeof this.props.data.onCancel != "undefined" && typeof this.props.data.onCancel == 'function') this.props.data.onCancel(); } onsubmit = () => { this.props.form.validateFields((err, values) => { // console.log(this.state.data) //console.log('Received values of form: ', values); if (err) { return; } var newUrl = ''//新api判断 // switch (this.state.data.CALLBACK_INTERFACE) { // case 'BS/BSSafeCheck/CheckPlanAuditEnd': // case 'BS/BSSafeCheck/CheckAuditEnd': // case 'BS/BSRiskSubmit/Notice': // case 'BS/BSRiskSubmit/DealEnd': // case 'BS/BSRiskSubmitDelayApply/DealEnd': // case 'FO/FOCrucialLicenseJob/BackUpdate': // case 'FO/FOCrucialLicenseJobOutsource/BackUpdate': // case 'FO/FOJobEventRecord/BackUpdate': // newUrl = this.state.data.CALLBACK_INTERFACE + 'New' // break; // case 'TL/TLBack/BackUpdate': // case 'TL/TLBackRecord/BackUpdate': // case 'DM/DMDeviceBasePurchase/BackUpdate': // case 'DM/DMDeviceBasePurchase/BackUpdateUser': // newUrl = this.state.data.CALLBACK_INTERFACE // break; // default: // break; // } if (this.state.data.CALLBACK_INTERFACE && this.state.data.CALLBACK_INTERFACE.indexOf("New") > -1) { newUrl = this.state.data.CALLBACK_INTERFACE } if (this.props.data && this.props.data.TASK_ORGID && this.props.data.TASK_ORGID.length > 0 && this.props.data.TASK_ORGID !== this.props.login.OrgId) { this.state.data.Parameter22 = this.props.data.TASK_ORGID } if (newUrl.length > 0) { this.props.dispatch({ type: 'app/getDataByPost', url: newUrl, payload: this.state.data, onlyData: false, onComplete: (re) => { if (re && re.IsSuccessful) { message.success("提交审批成功"); this.BtnClose(); } else { this.setState({ isRequired: true, isOKLoad: false, isRejectLoad: false }) message.error("提交审批失败"); } } }) } else { this.props.dispatch({ type: 'app/getDataByPost', url: 'PF/Approve/Submit', payload: this.state.data, onlyData: false, onComplete: (re) => { if (re && re.IsSuccessful) { if (re.Data) { if (re.Data === "FO/FOCrucialLicenseJob/BackUpdateNew") { re.Data = "FO/FOCrucialLicenseJob/BackUpdate" } if (re.Data === "FO/FOJobEventRecord/BackUpdateNew") { re.Data = "FO/FOJobEventRecord/BackUpdate" } //回调函数 this.props.dispatch({ type: 'app/getDataByGet', url: re.Data + "?id=" + this.state.data.DATA_ID, onlyData: false, onComplete: (callbak) => { if (callbak && callbak.IsSuccessful) { message.success("提交审批成功"); this.BtnClose(); } else { //回调失败记录log this.props.dispatch({ type: 'app/getDataByPost', url: 'PF/Approve/AddLog', payload: this.state.data, onlyData: false, onComplete: (ret) => { if (ret && ret.IsSuccessful) { } } }) this.setState({ isRequired: true, isOKLoad: false, isRejectLoad: false }) message.error("提交审批成功,回调失败"); } } }); } else { // //回调失败记录log // this.props.dispatch({ // type: 'app/getDataByPost', // url: 'PF/Approve/AddLog', // payload: this.state.data, // onlyData: false, // onComplete: (ret) => { // if (ret && ret.IsSuccessful) { // } // } // }) message.success("提交审批成功"); this.BtnClose(); } } else { this.setState({ isRequired: true, isOKLoad: false, isRejectLoad: false }) message.error("提交审批失败"); } } }) } }); } onClick = (e) => { let tmpData = { ...this.state.data }; tmpData.TaskID = this.props.data.TaskID tmpData.CurrentNode.NODE_APPROVE_STATUS = 10; this.setState({ data: tmpData, isRequired: false, isRejectLoad: false, isOKLoad: true }, () => { this.onsubmit(); }) } onComplaint = (e) => { if (this.state.selectUserId === '') { message.error("请选择转办人"); return; } const json = initFilter(this.props.login.OrgId, this.state.data.CurrentNode.ID, '', 0, 1, this.state.selectUserId) this.props.dispatch({ type: 'app/getDataByPost', url: 'FM/FMNotificationTask/Complaint',//PF/Approve/Complaint payload: json, onlyData: false, onComplete: (re) => { if (re && re.IsSuccessful) { this.setState({ visible: false, userData: [], selectUserId: '', }); message.success("转办成功"); } else { message.error("转办失败"); } } }) } showDrawer = () => { const jsonUser = initFilter(this.props.login.OrgId, '', '', 0, 1) this.props.dispatch({ type: 'app/getDataByPost', url: 'FM/User/OrderEntities', payload: jsonUser, onlyData: false, onComplete: (ret) => { if (ret) { this.setState({ userData: ret.Data, }); } } }); this.setState({ visible: true, appVisible: false, }); }; showAppDrawer = () => { this.setState({ visible: false, appVisible: true, }); } onClose = () => { this.setState({ visible: false, appVisible: false, }); }; onRejectConfirm = () => { this.props.form.validateFields((err, values) => { console.log(this.state.data) //console.log('Received values of form: ', values); if (err) { this.setState({ isRejectLoad: false }) return; } this.state.data.TaskID = this.props.data.TaskID if (this.state.REJECT_INTERFACE && this.state.data) { this.props.dispatch({ type: 'app/getDataByPost', url: this.state.REJECT_INTERFACE, payload: this.state.data, onlyData: false, onComplete: (callbak) => { if (callbak && callbak.IsSuccessful) { message.success("驳回成功"); this.BtnClose(); } else { this.setState({ isRequired: true, isOKLoad: false, isRejectLoad: false }) message.error("驳回失败"); } } }); } else { message.success("驳回接口未配置或者未获取到审批数据"); this.setState({ isRequired: true, isOKLoad: false, isRejectLoad: false }) return; } }); } onReject = () => { // message.success("驳回功能完善中,暂无法使用"); // return; let tmpData = { ...this.state.data }; tmpData.CurrentNode.NODE_APPROVE_STATUS = 20; this.setState({ data: tmpData, isRequired: true, isOKLoad: false, isRejectLoad: true }, () => { this.onRejectConfirm(); }) } loadData(dataId) { let that = this; if (window.navigator.userAgent.indexOf("Windows") < 1) { that.setState({ appVisible: false, comVisible: false, btnDisplay: 'block', stepDisplay: 'none' }); } else { that.setState({ appVisible: false, comVisible: true, btnDisplay: 'none', stepDisplay: 'block' }); } const json = initFilter(that.props.login.OrgId) extendRule(json, 'ID', 1, dataId); json.Parameter22 = that.props.data.TASK_ORGID json.Parameter2 = that.props.data.TaskID extendInclude(json, "Nav_ApproveDetails") extendInclude(json, "Nav_ApproveDetails.Nav_ApproveUser") that.props.dispatch({ type: 'app/getDataByPost', url: 'PF/PFApprove/FullGet', payload: json, onlyData: false, onComplete: (re) => { if (re && re.IsSuccessful && re.Data && re.Data.Nav_ApproveDetails.length > 0) { const newtmpData = { data: { id: re.Data.DATA_ID, isShow: true, enums: that.props.app.enums, TASK_ORGID: that.props.data?.TASK_ORGID // loadDataDeal: this.loadDataDeal, // btnDisplay : 'none' }, formCode: re.Data.APPROVE_CODE, } re.Data.Nav_ApproveDetails.sort(that.compare); let currentNodes = re.Data.Nav_ApproveDetails?.filter(v => v.IS_CURRENT == true); let isCurrent = false; if (currentNodes && currentNodes.length > 0) { let currentUserNode = currentNodes.filter(v => v.APPROVE_USER_ID == that.props.login.userId); if (currentUserNode != null) { isCurrent = true; re.Data.CurrentNode = currentUserNode[0]; } else { re.Data.CurrentNode = currentNodes[0]; } if (re.Data.CurrentNode != undefined) { re.Data.CurrentNode.NODE_APPROVE_STATUS = 10; } } that.setState({ //editData, isCurrent, tmpData: newtmpData, title: re.Data.NAME, data: re.Data, BtnRejectDisplay: re.Data.REJECT_INTERFACE && newtmpData ? 'inline' : 'none', REJECT_INTERFACE: re.Data.REJECT_INTERFACE ? re.Data.REJECT_INTERFACE : '' }); if (that.props.data.tableKey === "2" || that.props.data.tableKey === undefined) { that.setState({ BtnAgreeDisplay: 'none' }) } else { that.setState({ BtnAgreeDisplay: 'inline' }) } //如果审批模板有配置驳回接口,才显示驳回按钮 // if (re.Data.APPROVE_TEMP_ID) { // const jsonReject = initFilter(that.props.login.OrgId) // extendRule(jsonReject, 'ID', 1, re.Data.APPROVE_TEMP_ID); // this.props.dispatch({ // type: 'app/getDataByPost', // url: 'PF/ApproveTemp/Get', // payload: jsonReject, // onlyData: false, // onComplete: (ret) => { // if (ret && ret.IsSuccessful) { // if (ret.Data && ret.Data.REJECT_INTERFACE) { // that.setState({ BtnRejectDisplay: 'inline', REJECT_INTERFACE: ret.Data.REJECT_INTERFACE }) // } else { // that.setState({ BtnRejectDisplay: 'none', REJECT_INTERFACE: '' }) // } // } // } // }) // } //如果状态为驳回,则修改为已阅,点开一次后列表不再显示 // if (re.Data.APPROVE_STATUS === 20) { // this.props.dispatch({ // type: 'app/getDataByPost', // url: 'PF/Approve/ChangeStatus', // payload: re.Data, // onlyData: false, // onComplete: (ret) => { // if (ret && ret.IsSuccessful) { // message.success("驳回的表单已阅后将不再显示"); // } // } // }); // } } } }) } loadDataDeal = (a) => { if (a == 1) { this.setState({ BtnAgreeDisplay: 'inline' }) } } render() { const enums = this.props.app ? this.props.app.enums : null; // const headColumnConfig = this.getEditConfig() //const columns = headColumnConfig ? headColumnConfig.columns : [] const { form, location, dispatch, match, loading } = this.props; const { userData } = this.state; const { getFieldDecorator, validateFields, validateFieldsAndScroll, setFieldsValue } = form; const formItemLayout = { // labelCol: { span: 2 }, // wrapperCol: { span: 20 }, }; const stepStyle = { marginBottom: 60, boxShadow: '0px -1px 0 0 #e8e8e8 inset', }; const onChangeRemark = (e) => { let tmpData = { ...this.state.data }; tmpData.CurrentNode.CONTEXT = e.target.value; this.setState({ data: tmpData }); } const LayoutStyle = { marginLeft: 200 } return ( // {/* */} {this.state.data?.Nav_ApproveDetails?.map((n) => { let status = 'wait'; let result = ''; if (n.NODE_APPROVE_STATUS == 10) { status = 'finish'; result = '同意'; } else if (n.NODE_APPROVE_STATUS == 20) { status = 'error'; result = '驳回'; } if (n.IS_CURRENT) { status = 'process'; } return {"审批人:" + n.Nav_ApproveUser?.NAME}
{"审批时间:" + (n.NODE_APPROVE_TIME == "0001-01-01 00:00:00" ? '' : n.NODE_APPROVE_TIME)}
{"审批结论:" + result}
{"审批意见:" + (n.CONTEXT == undefined ? '' : n.CONTEXT)} } status={status} /> })}
{/*
*/}
{/* {this.state.data?.Nav_ApproveDetails?.map((n) => { let status = 'wait'; if (n.NODE_APPROVE_STATUS == 10) { status = 'finish'; } else if (n.NODE_APPROVE_STATUS == 20) { status = 'error'; } if (n.IS_CURRENT) { status = 'process'; } return })} */} {/* style={this.state.comVisible?LayoutStyle:null} */} {/*
*/}
{/*onSubmit={this.onClick} className="ant-advanced-search-form"*/} {/* {getFieldDecorator('CODE', { validateTrigger: 'onBlur', initialValue: getDataFieldValue(this.state.data, 'CODE'), })()} {getFieldDecorator('NAME', { validateTrigger: 'onBlur', initialValue: getDataFieldValue(this.state.data, 'NAME'), })()} {getFieldDecorator('CurrentNode.NAME', { validateTrigger: 'onBlur', initialValue: getDataFieldValue(this.state.data, 'CurrentNode.NAME'), })()} {getFieldDecorator('CurrentNode.Nav_ApproveUser.NAME', { validateTrigger: 'onBlur', initialValue: getDataFieldValue(this.state.data, 'CurrentNode.Nav_ApproveUser.NAME'), })()} */} { this.state.isCurrent ? {/* */} {/*                                            
                                        */} {getFieldDecorator('CurrentNode.CONTEXT', { rules: [ { required: this.state.isRequired, message: `请输入审批意见!`, }, ], validateTrigger: 'onBlur', initialValue: getDataFieldValue(this.state.data, 'CurrentNode.CONTEXT'), })(