Files
fe_service_ebtp_frontend/src/pages/Invoice/Supplier/index.tsx

163 lines
4.5 KiB
TypeScript
Raw Normal View History

2022-03-10 14:24:13 +08:00
import React, { useState, useRef, useEffect } from 'react';
import { Button, Card } from 'antd';
2020-12-23 11:14:35 +08:00
import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table';
2022-03-10 14:24:13 +08:00
import { addInvoice, getList } from './service';
import EditInvoiceSupplier from './components/EditInvoiceSupplier';
import { handleUpdate } from './utils';
import ViewInvoiceSupplier from './components/ViewInvoiceSupplier';
import '@/assets/zjl_style.less';
import { btnAuthority } from '@/utils/authority';
2020-12-23 11:14:35 +08:00
2022-03-10 14:24:13 +08:00
const InvoiceSupplier: React.FC<{}> = () => {
2020-12-23 11:14:35 +08:00
const actionRef = useRef<ActionType>();
//修改页面显隐
const [updateModalVis, handleUpdateModalVis] = useState<boolean>(false);
2022-03-10 14:24:13 +08:00
//查看页面显隐
const [viewModalVis, handleViewModalVis] = useState<boolean>(false);
2020-12-23 11:14:35 +08:00
//存值
2022-03-10 14:24:13 +08:00
const [recordValues, setRecordValues] = useState<any>();
//分页参数
const [page, setPage] = useState<any>({
pageSize: 10,
pageNo: 1,
});
const toEdit = (param: any) => {
setRecordValues(param);
handleUpdateModalVis(true);
};
2020-12-23 11:14:35 +08:00
2022-03-10 14:24:13 +08:00
const toView = (param: any) => {
setRecordValues(param);
handleViewModalVis(true);
};
const columns: ProColumns<any>[] = [
{
title: '序号',
dataIndex: 'key',
key: 'key',
width: 50,
2022-03-10 14:24:13 +08:00
search: false,
},
2020-12-23 11:14:35 +08:00
{
2022-03-10 14:24:13 +08:00
title: '项目名称',
dataIndex: 'projectName',
key: 'projectName',
},
{
title: '公司名称',
dataIndex: 'companyName',
key: 'companyName',
},
{
title: '发票类型',
dataIndex: 'type',
key: 'type',
valueType: 'select',
width: 115,
2020-12-23 11:14:35 +08:00
valueEnum: {
2022-03-10 14:24:13 +08:00
'0': '增值税普通发票',
'1': '增值税专用发票',
2020-12-23 11:14:35 +08:00
},
2022-03-10 14:24:13 +08:00
search: false,
2020-12-23 11:14:35 +08:00
},
{
2022-03-10 14:24:13 +08:00
title: '发票状态',
dataIndex: 'state',
valueType: 'select',
width: 75,
2020-12-23 11:14:35 +08:00
valueEnum: {
2022-03-10 14:24:13 +08:00
'0': '未开',
'1': '已开',
2020-12-23 11:14:35 +08:00
},
},
{
2022-03-10 14:24:13 +08:00
title: '是否需要邮寄',
width: 100,
2022-03-10 14:24:13 +08:00
render:(_: any,record: any) => record.isMail == -1 ? '无需邮寄' : '需要邮寄',
search: false,
},
{
title: '操作',
dataIndex: 'option',
width: 70,
2020-12-23 11:14:35 +08:00
valueType: 'option',
2022-03-10 14:24:13 +08:00
search: false,
render: (_, record) =>
record.state == 1 ? (
<Button type="text" key="view" onClick={() => toView(record)}>
</Button>
) : (
<Button type="text" key="edit" onClick={() => toEdit(record)} hidden={btnAuthority(["ebtp-supplier"])}>
</Button>
),
2020-12-23 11:14:35 +08:00
},
];
return (
2022-03-10 14:24:13 +08:00
<Card
title="我的发票列表"
bodyStyle={{ padding: '1px 24px' }}
style={{ borderRadius: 6 }}
className="confirm"
>
<ProTable
actionRef={actionRef} //action触发后更新表格
columns={columns} //表格
2020-12-23 11:14:35 +08:00
search={{ labelWidth: 70, span: 6 }}
2022-03-10 14:24:13 +08:00
onReset={() => setPage({ pageSize: 10, pageNo: 1 })}
pagination={{
defaultPageSize: 10,
onChange: (page, pageSize) => setPage({ pageSize: pageSize, pageNo: page }),
onShowSizeChange: (current, pageSize) => setPage({ pageSize: pageSize, pageNo: current }),
}} //默认显示条数
options={false}
size="small"
request={async (params) =>
await getList(params, page).then((res) => {
let data = res.data.records;
data.forEach((ele: any, index: any) => {
ele.key = res.data.size * (res.data.current - 1) + index + 1;
});
return {
data: data,
total: res.data.total,
success: res.success,
pageSize: res.data.size,
current: res.data.current,
};
})
}
2020-12-23 11:14:35 +08:00
/>
2022-03-10 14:24:13 +08:00
<EditInvoiceSupplier
onCancel={() => {
handleUpdateModalVis(false);
setRecordValues(undefined);
actionRef.current?.reload?.();
}}
onSubmit={async (value) => {
const success = await handleUpdate(value);
if (success) {
2020-12-23 11:14:35 +08:00
handleUpdateModalVis(false);
2022-03-10 14:24:13 +08:00
setRecordValues(undefined);
actionRef.current?.reload?.();
}
}}
modalVisible={updateModalVis}
values={recordValues}
/>
<ViewInvoiceSupplier
onCancel={() => {
handleViewModalVis(false);
setRecordValues(undefined);
}}
modalVisible={viewModalVis}
values={recordValues}
/>
</Card>
);
2020-12-23 11:14:35 +08:00
};
2022-03-10 14:24:13 +08:00
export default InvoiceSupplier;