/* eslint-disable array-callback-return,no-undef */ import React, { Component } from 'react'; import { Table, Button, Checkbox, Input, message } from 'antd-v4'; import config from '@/utils/config'; import styles from '@/index.less'; import AntdDraggableModal from '@/components/Common/AntdDraggableModal'; const InputGroup = Input.Group; const { TextArea } = Input; class CheckModel extends Component { constructor(props) { super(props); this.state = { visible: props.visible, sActiveId: props.sActiveId, /* 窗体Id */ sReturnMessage: props.sReturnMessage, sCheckModelId: props.sCheckModelId, loading: false, data: [], dataPerson: [], listVisible: false, inputValue: '', checkDisplay: '', checked: '', sTbName: props.sTbName, sBillKey: props.sBillKey, sBillNo: props.sBillNo, sCheckMemo: '', }; this.header = {}; } componentWillMount() { const { systemData } = this.props.app; const ckxTmpCheck = systemData.filter(item => (item.sName === 'CkxTmpCheck'))[0]; const checkDisplay = ckxTmpCheck.sValue === '0' ? 'none' : 'block'; this.setState({ checkDisplay }); } componentWillReceiveProps(nextProps) { const { gdsformconst, sReturnMessage, sBillNo } = nextProps; if (sReturnMessage.length > 0) { const data = []; sReturnMessage.forEach((child, i) => { const sName = child.split('-'); data.push({ key: i, condition: sName[0], sMemo: sName[1], }); }); this.setState({ data, sBillNo }); } const checkCondition = gdsformconst.filter(item => (item.sName === 'checkCondition')); const checkSmemo = gdsformconst.filter(item => (item.sName === 'checkSmemo')); const checkUserId = gdsformconst.filter(item => (item.sName === 'checkUserId')); const checkUserName = gdsformconst.filter(item => (item.sName === 'checkUserName')); if (checkCondition.length > 0) { this.header.checkCondition = checkCondition[0].showName; } if (checkSmemo.length > 0) { this.header.checkSmemo = checkSmemo[0].showName; } if (checkUserId.length > 0) { this.header.checkUserId = checkUserId[0].showName; } if (checkUserName.length > 0) { this.header.checkUserName = checkUserName[0].showName; } this.setState({ visible: nextProps.visible, sCheckModelId: nextProps.sCheckModelId, sReturnMessage: nextProps.sReturnMessage, }); } /* 取消 */ handleCancel = () => { this.setState({ visible: false }); } handleChange = (e) => { this.setState({ checked: e.target.checked, sCheckMemo: e.target.value }); } handleOk = () => { const { checked, sCheckModelId, sTbName, sBillKey, sBillNo, sReturnMessage, dataPerson, sCheckMemo, } = this.state; const { sActiveId } = this.state; const { token } = this.props.app; const url = `${config.server_host}business/doExamine?sModelsId=${sActiveId}`; if (checked === true) { const paramsMap = { iFlag: 1, iTmpCheck: 1, sFormGuid: sActiveId, sGuid: this.props.app.currentPane.checkedId, }; const value = { sClientType: '1', sProName: sBillKey, paramsMap, }; const options = { method: 'POST', headers: { 'Content-Type': 'application/json', authorization: token, }, body: JSON.stringify(value), }; fetch(url, options).then(response => response.json()).then((json) => { if (json.code === 1) { message.success(json.msg); } else { message.error(json.msg); } }); } else { let dataPersonString = ''; for (const item of dataPerson) { dataPersonString = `${dataPersonString},${item.userId}`; } dataPersonString = dataPersonString.substring(1); const paramsMap = { sFormGuid: sActiveId, sBillKey, sTbName, sGuid: this.props.app.currentPane.checkedId, sBillNo, sCheckCondition: sReturnMessage, sMemo: sCheckMemo, sCheckModelGuid: sCheckModelId, sCheckPerson: dataPersonString, }; const value = { sClientType: '1', sProName: 'Sp_System_AutoSendCheckMsg', paramsMap, }; const options = { method: 'POST', headers: { 'Content-Type': 'application/json', authorization: token, }, body: JSON.stringify(value), }; fetch(url, options).then(response => response.json()).then((json) => { if (json.code === 1) { message.success(json.msg); } else { message.error(json.msg); } }); } this.setState({ visible: false }); }; handlePpopUp = () => { const { sCheckModelId } = this.props; const { sActiveId } = this.state; const { token } = this.props.app; const url = `${config.server_host}checkModel/getUserListByModelId/${sCheckModelId}?sModelsId=${sActiveId}`; const options = { method: 'GET', headers: { 'Content-Type': 'application/json', authorization: token, }, }; fetch(url, options).then(response => response.json()).then((json) => { const { dataPerson } = this.state; if (json.code === 1) { const { rows } = json.dataset; rows.forEach((child) => { dataPerson.push({ key: child.sUserId, userId: child.sUserId, UserName: child.sUserName, }); }); this.setState({ dataPerson }); message.success(json.msg); } else { message.error(json.msg); } }); this.setState({ listVisible: true }); }; handleDoubleClick = (record) => { this.setState({ inputValue: record.UserName, listVisible: false }); }; render() { const { loading } = this.state; const { visible, data, listVisible, dataPerson, inputValue, } = this.state; const columns = [{ title: this.header.checkCondition !== undefined ? this.header.checkCondition : '审核条件', dataIndex: 'condition', key: 'condition', }, { title: this.header.checkSmemo !== undefined ? this.header.checkSmemo : '备注', dataIndex: 'sMemo', key: 'sMemo', }]; const columnsPerson = [{ title: this.header.checkUserId !== undefined ? this.header.checkUserId : '人员编号', dataIndex: 'userId', key: 'userId', }, { title: this.header.checkUserName !== undefined ? this.header.checkUserName : '人员名称', dataIndex: 'UserName', key: 'UserName', }]; return (