| | |
| | | import type { MesWmSalesNoticeApi } from '#/api/mes/wm/salesnotice'; |
| | | |
| | | import { Page, useVbenModal } from '@vben/common-ui'; |
| | | import { MesWmSalesNoticeStatusEnum } from '@vben/constants'; |
| | | import { MesWmSalesNoticeOutStatusEnum, MesWmSalesNoticeStatusEnum } from '@vben/constants'; |
| | | import { downloadFileFromBlobPart } from '@vben/utils'; |
| | | |
| | | import { Button, message } from 'ant-design-vue'; |
| | | import { Button, message, Tag } from 'ant-design-vue'; |
| | | |
| | | import { useRouter } from 'vue-router'; |
| | | |
| | |
| | | |
| | | const router = useRouter(); |
| | | |
| | | const outStatusLabelMap: Record<number, string> = { |
| | | [MesWmSalesNoticeOutStatusEnum.NONE]: '未出库', |
| | | [MesWmSalesNoticeOutStatusEnum.PARTIAL]: '部分出库', |
| | | [MesWmSalesNoticeOutStatusEnum.ALL]: '全部出库', |
| | | }; |
| | | const outStatusColorMap: Record<number, string> = { |
| | | [MesWmSalesNoticeOutStatusEnum.NONE]: 'default', |
| | | [MesWmSalesNoticeOutStatusEnum.PARTIAL]: 'warning', |
| | | [MesWmSalesNoticeOutStatusEnum.ALL]: 'success', |
| | | }; |
| | | |
| | | /** 刷新表格 */ |
| | | function handleRefresh() { |
| | | gridApi.query(); |
| | |
| | | formModalApi.setData({ formType: 'update', id: row.id }).open(); |
| | | } |
| | | |
| | | /** 执行出库 */ |
| | | function handleFinish(row: MesWmSalesNoticeApi.SalesNotice) { |
| | | formModalApi.setData({ formType: 'finish', id: row.id }).open(); |
| | | } |
| | | |
| | | /** 生成销售出库单 */ |
| | | async function handleGenerateProductSales(row: MesWmSalesNoticeApi.SalesNotice) { |
| | | try { |
| | | const productSalesId = await generateProductSales(row.id!); |
| | | message.success('生成销售出库单成功'); |
| | | // 跳转到销售出库单页面 |
| | | router.push({ |
| | | path: '/wls/product-sales', |
| | | query: { id: productSalesId }, |
| | | name: 'MesWmProductSales', |
| | | query: { id: String(productSalesId) }, |
| | | }); |
| | | } catch (e) { |
| | | console.error(e); |
| | |
| | | {{ row.code }} |
| | | </Button> |
| | | </template> |
| | | <template #outStatus="{ row }"> |
| | | <Tag :color="outStatusColorMap[row.outStatus ?? 0]">{{ outStatusLabelMap[row.outStatus ?? 0] }}</Tag> |
| | | </template> |
| | | <template #actions="{ row }"> |
| | | <TableAction |
| | | :actions="[ |
| | |
| | | auth: ['mes:wm-product-sales:create'], |
| | | ifShow: row.status === MesWmSalesNoticeStatusEnum.APPROVED, |
| | | onClick: handleGenerateProductSales.bind(null, row), |
| | | }, |
| | | { |
| | | label: '执行出库', |
| | | type: 'link', |
| | | auth: ['mes:wm-sales-notice:update'], |
| | | ifShow: row.status === MesWmSalesNoticeStatusEnum.APPROVED, |
| | | onClick: handleFinish.bind(null, row), |
| | | }, |
| | | ]" |
| | | /> |