| | |
| | | import type { VxeTableGridOptions } from '#/adapter/vxe-table'; |
| | | import type { ErpPurchaseInvoiceApi } from '#/api/erp/purchase/invoice'; |
| | | |
| | | import { useRouter } from 'vue-router'; |
| | | |
| | | import { Page, useVbenModal } from '@vben/common-ui'; |
| | | import { downloadFileFromBlobPart } from '@vben/utils'; |
| | | |
| | |
| | | deletePurchaseInvoice, |
| | | exportPurchaseInvoice, |
| | | getPurchaseInvoicePage, |
| | | submitPurchaseInvoice, |
| | | } from '#/api/erp/purchase/invoice'; |
| | | import { $t } from '#/locales'; |
| | | |
| | |
| | | import Form from './modules/form.vue'; |
| | | |
| | | defineOptions({ name: 'ErpPurchaseInvoice' }); |
| | | |
| | | const { push } = useRouter(); |
| | | |
| | | const [FormModal, formModalApi] = useVbenModal({ |
| | | connectedComponent: Form, |
| | |
| | | } finally { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | /** 提交审核 */ |
| | | async function handleSubmit(row: ErpPurchaseInvoiceApi.PurchaseInvoice) { |
| | | const hideLoading = message.loading({ |
| | | content: '提交审核中...', |
| | | duration: 0, |
| | | }); |
| | | try { |
| | | await submitPurchaseInvoice(row.id!); |
| | | message.success('提交审核成功'); |
| | | handleRefresh(); |
| | | } finally { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | /** 查看审批详情 */ |
| | | function handleProcessDetail(row: ErpPurchaseInvoiceApi.PurchaseInvoice) { |
| | | push({ |
| | | name: 'BpmProcessInstanceDetail', |
| | | query: { id: row.processInstanceId }, |
| | | }); |
| | | } |
| | | |
| | | const [Grid, gridApi] = useVbenVxeGrid({ |
| | |
| | | <Tag v-if="!row.hasAttachment" color="warning">未上传</Tag> |
| | | <Tag v-else color="success">已上传</Tag> |
| | | </template> |
| | | <template #auditStatus="{ row }"> |
| | | <Tag v-if="row.auditStatus === 0" color="default">未提交</Tag> |
| | | <Tag v-else-if="row.auditStatus === 10" color="warning">审批中</Tag> |
| | | <Tag v-else-if="row.auditStatus === 20" color="success">审核通过</Tag> |
| | | <Tag v-else-if="row.auditStatus === 30" color="error">审核不通过</Tag> |
| | | <Tag v-else-if="row.auditStatus === 40" color="default">已作废</Tag> |
| | | </template> |
| | | <template #actions="{ row }"> |
| | | <TableAction |
| | | :actions="[ |
| | |
| | | type: 'link', |
| | | icon: ACTION_ICON.EDIT, |
| | | auth: ['erp:purchase-invoice:update'], |
| | | ifShow: row.auditStatus === 0, |
| | | onClick: handleEdit.bind(null, row), |
| | | }, |
| | | { |
| | | label: '提交审核', |
| | | type: 'link', |
| | | auth: ['erp:purchase-invoice:update'], |
| | | onClick: handleSubmit.bind(null, row), |
| | | ifShow: row.auditStatus === 0, |
| | | }, |
| | | { |
| | | label: '查看审批', |
| | | type: 'link', |
| | | auth: ['erp:purchase-invoice:query'], |
| | | onClick: handleProcessDetail.bind(null, row), |
| | | ifShow: row.auditStatus !== 0 && !!row.processInstanceId, |
| | | }, |
| | | { |
| | | label: $t('common.delete'), |
| | |
| | | danger: true, |
| | | icon: ACTION_ICON.DELETE, |
| | | auth: ['erp:purchase-invoice:delete'], |
| | | ifShow: row.auditStatus !== 20, |
| | | popConfirm: { |
| | | title: $t('ui.actionMessage.deleteConfirm', [row.no]), |
| | | confirm: handleDelete.bind(null, row), |