src/views/wls/salesnotice/index.vue
@@ -3,10 +3,10 @@
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';
@@ -29,6 +29,17 @@
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();
@@ -49,20 +60,14 @@
  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);
@@ -150,6 +155,9 @@
          {{ row.code }}
        </Button>
      </template>
      <template #outStatus="{ row }">
        <Tag :color="outStatusColorMap[row.outStatus ?? 0]">{{ outStatusLabelMap[row.outStatus ?? 0] }}</Tag>
      </template>
      <template #actions="{ row }">
        <TableAction
          :actions="[
@@ -180,13 +188,6 @@
              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),
            },
          ]"
        />