| | |
| | | <script lang="ts" setup> |
| | | import type { VxeTableGridOptions } from '#/adapter/vxe-table'; |
| | | import type { ErpSaleOrderApi } from '#/api/erp/sale/order'; |
| | | import type { MesWmSalesNoticeApi } from '#/api/mes/wm/salesnotice'; |
| | | |
| | | import { Page, useVbenModal } from '@vben/common-ui'; |
| | |
| | | |
| | | import { Button, message, Tag } from 'ant-design-vue'; |
| | | |
| | | import { ref } from 'vue'; |
| | | import { useRouter } from 'vue-router'; |
| | | |
| | | import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; |
| | | import { |
| | | deleteSalesNotice, |
| | | exportSalesNotice, |
| | | generateFromSaleOrder, |
| | | generateProductSales, |
| | | getSalesNoticePage, |
| | | } from '#/api/mes/wm/salesnotice'; |
| | | import { $t } from '#/locales'; |
| | | import SaleOrderSelectDialog from '#/views/erp/sale/order/components/select-dialog.vue'; |
| | | |
| | | import { useGridColumns, useGridFormSchema } from './data'; |
| | | import Form from './modules/form.vue'; |
| | |
| | | gridApi.query(); |
| | | } |
| | | |
| | | /** 创建发货通知单 */ |
| | | function handleCreate() { |
| | | formModalApi.setData({ formType: 'create' }).open(); |
| | | const saleOrderSelectRef = ref<InstanceType<typeof SaleOrderSelectDialog>>(); |
| | | |
| | | /** 从销售订单生成发货通知单 */ |
| | | function handleGenerateFromSaleOrder() { |
| | | saleOrderSelectRef.value?.open([], { multiple: false }); |
| | | } |
| | | |
| | | /** 选择销售订单后生成发货通知单 */ |
| | | async function handleSaleOrderSelected(rows: ErpSaleOrderApi.SaleOrder[]) { |
| | | const order = rows[0]; |
| | | if (!order?.id) { |
| | | return; |
| | | } |
| | | try { |
| | | await generateFromSaleOrder(order.id); |
| | | message.success('生成发货通知单成功'); |
| | | handleRefresh(); |
| | | } catch (e) { |
| | | console.error(e); |
| | | } |
| | | } |
| | | |
| | | /** 查看发货通知单 */ |
| | |
| | | |
| | | <template> |
| | | <Page auto-content-height><FormModal @success="handleRefresh" /> |
| | | <SaleOrderSelectDialog |
| | | ref="saleOrderSelectRef" |
| | | @selected="handleSaleOrderSelected" |
| | | /> |
| | | |
| | | <Grid table-title="发货通知单列表"> |
| | | <template #toolbar-tools> |
| | | <TableAction |
| | | :actions="[ |
| | | { |
| | | label: $t('ui.actionTitle.create', ['发货通知单']), |
| | | label: '从销售订单生成', |
| | | type: 'primary', |
| | | icon: ACTION_ICON.ADD, |
| | | auth: ['mes:wm-sales-notice:create'], |
| | | onClick: handleCreate, |
| | | onClick: handleGenerateFromSaleOrder, |
| | | }, |
| | | { |
| | | label: $t('ui.actionTitle.export'), |