Commit f3126363 authored by FE-安焕焕's avatar FE-安焕焕 👣

修改驳回原因的问题

parent 7fb2c753
import React, { useState, useRef } from 'react'; import React, { useState, useRef } from 'react';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import { Input, Button, Popconfirm, notification } from 'antd'; import { Button, Popconfirm, notification } from 'antd';
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { actionStatus, settleStatus } from './data'; import { actionStatus, settleStatus } from './data';
import style from './style.less'; import style from './style.less';
import { query, updateStatus, download, docQuery } from './service'; import { query, updateStatus, download, docQuery } from './service';
import FileModal from './fileModal'; import FileModal from './fileModal';
import UploadModal from './uploadModal'; import UploadModal from './uploadModal';
import RemarkModal from './remarkModal';
const { TextArea } = Input;
export default () => { export default () => {
const protable = useRef(); const protable = useRef();
const [refuse, setRefuse] = useState(''); const remarkRef = useRef();
const [showViewFile, setShowViewFile] = useState(false); const [showViewFile, setShowViewFile] = useState(false);
const [viewFileData, setViewFileData] = useState([]); const [viewFileData, setViewFileData] = useState([]);
const [showViewUpload, setShowViewUpload] = useState(false); const [showViewUpload, setShowViewUpload] = useState(false);
const [settlementNoV, setSettlementNo] = useState(''); const [settlementNoV, setSettlementNo] = useState('');
const [remarkShow, setRemarkShow] = useState(false);
const [rowInfo, setRowInfo] = useState({});
const reload = () => { const reload = () => {
if (protable?.current?.reload) { if (protable?.current?.reload) {
protable.current.reload(); protable.current.reload();
} }
}; };
const confirmText = '您是否已确认结算金额是否正确?确认后无法撤回'; const confirmText = '您是否已确认结算金额是否正确?确认后无法撤回';
const confirmAction = async (r, isRefuse) => { const confirmAction = async (r, isRefuse, refuse) => {
if (isRefuse && !refuse) { if (isRefuse && !refuse) {
notification.error({ message: '请输入拒绝原因' }); notification.error({ message: '请输入拒绝原因' });
return; return;
...@@ -37,9 +39,6 @@ export default () => { ...@@ -37,9 +39,6 @@ export default () => {
reload(); reload();
} }
}; };
const refuseContent = ({ target: { value } }) => {
setRefuse(value);
};
const uploadInvoice = ({ settlementNo }) => { const uploadInvoice = ({ settlementNo }) => {
setSettlementNo(settlementNo); setSettlementNo(settlementNo);
setShowViewUpload(true); setShowViewUpload(true);
...@@ -48,15 +47,19 @@ export default () => { ...@@ -48,15 +47,19 @@ export default () => {
// type 1非财务 2财务 // type 1非财务 2财务
download({ settlementNo, type: 1 }); download({ settlementNo, type: 1 });
}; };
const clearRefuseContent = () => { const clearRefuseContent = r => {
setRefuse(''); setRowInfo(r);
if (remarkRef.current.init) {
remarkRef.current.reset();
}
setRemarkShow(true);
}; };
const viewAccessory = async ({ settlementNo }) => { const viewAccessory = async ({ settlementNo }) => {
const data = await docQuery(settlementNo); const data = await docQuery(settlementNo);
setViewFileData(data); setViewFileData(data);
setShowViewFile(true); setShowViewFile(true);
}; };
const refuseNode = () => <TextArea rows={4} onChange={refuseContent} value={refuse} />;
const tableRenderBtn = r => ( const tableRenderBtn = r => (
<div> <div>
<p> <p>
...@@ -66,28 +69,20 @@ export default () => { ...@@ -66,28 +69,20 @@ export default () => {
onConfirm={() => confirmAction(r)} onConfirm={() => confirmAction(r)}
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
disabled={r.settlementStatus !== 2}
> >
<Button disabled={r.settlementStatus !== 2} type="primary" className="mr10"> <Button type="primary" className="mr10" disabled={r.settlementStatus !== 2}>
确认 确认
</Button> </Button>
</Popconfirm> </Popconfirm>
<Popconfirm <Button
icon={null} type="primary"
placement="topLeft" onClick={() => clearRefuseContent(r)}
title={refuseNode()} className="mr10"
onConfirm={() => confirmAction(r, true)} disabled={r.settlementStatus !== 2}
okText="确认"
cancelText="取消"
> >
<Button 拒绝
disabled={r.settlementStatus !== 2} </Button>
type="primary"
onClick={clearRefuseContent}
className="mr10"
>
拒绝
</Button>
</Popconfirm>
<Button type="primary" onClick={() => uploadInvoice(r)} disabled={r.settlementStatus !== 6}> <Button type="primary" onClick={() => uploadInvoice(r)} disabled={r.settlementStatus !== 6}>
上传发票 上传发票
</Button> </Button>
...@@ -192,6 +187,14 @@ export default () => { ...@@ -192,6 +187,14 @@ export default () => {
reload(); reload();
}} }}
/> />
<RemarkModal
visible={remarkShow}
submit={remark => {
confirmAction(rowInfo, true, remark);
}}
onCancel={() => setRemarkShow(false)}
ref={remarkRef}
/>
</PageHeaderWrapper> </PageHeaderWrapper>
); );
}; };
import { Modal, Input } from 'antd';
import React, { Component } from 'react';
const { TextArea } = Input;
// eslint-disable-next-line react/prefer-stateless-function
class fileModal extends Component {
state = {
remarks: '',
};
inputChange = ({ target: { value } }) => {
this.setState({ remarks: value });
};
reset = () => {
this.setState({ remarks: '' });
};
render() {
const { visible } = this.props;
return (
<Modal
title="驳回原因"
visible={visible}
onOk={() => {
this.props.submit(this.state.remarks);
}}
onCancel={this.props.onCancel}
width="500px"
>
<div>
<TextArea value={this.state.remarks} rows={4} onChange={this.inputChange} />
</div>
</Modal>
);
}
}
export default fileModal;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment