云
9 天以前 ec8ff4f6259404460a0b4437e29a40986c2c4b9d
src/views/erp/sale/order/index.vue
@@ -9,6 +9,7 @@
import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';
import { message, Tag, Tooltip } from 'ant-design-vue';
import dayjs from 'dayjs';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
@@ -22,6 +23,7 @@
} from '#/api/erp/sale/order';
import { generateFromSaleOrder } from '#/api/mes/wm/salesnotice';
import { $t } from '#/locales';
import { automaticApproval } from '#/store/audit-policy';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
@@ -57,8 +59,25 @@
/** 导出表格 */
async function handleExport() {
  const data = await exportSaleOrder(await gridApi.formApi.getValues());
  const data = await exportSaleOrder(
    normalizeDateRange(await gridApi.formApi.getValues()),
  );
  downloadFileFromBlobPart({ fileName: '销售订单.xls', source: data });
}
/** 日期筛选覆盖所选起止日期的全天,兼容后端时间类型。 */
function normalizeDateRange(values: Record<string, any>) {
  const range = values.orderTime;
  if (!Array.isArray(range) || range.length !== 2 || !range.every(Boolean)) {
    return values;
  }
  return {
    ...values,
    orderTime: [
      dayjs(range[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss'),
      dayjs(range[1]).endOf('day').format('YYYY-MM-DD HH:mm:ss'),
    ],
  };
}
/** 导入销售订单 */
@@ -94,18 +113,18 @@
/** 提交销售订单审批(协同办公) */
async function handleSubmit(row: ErpSaleOrderApi.SaleOrder) {
  // 获取可用的审批流程定义
  const processList = await getSaleOrderApproveProcessList();
  if (isEmpty(processList)) {
  const processList = automaticApproval.value ? [] : await getSaleOrderApproveProcessList();
  if (!automaticApproval.value && isEmpty(processList)) {
    message.error('销售订单审批流程未配置,请先在「协同办公→流程管理」中创建并发布销售订单审批流程');
    return;
  }
  const hideLoading = message.loading({
    content: '正在提交审批...',
    content: automaticApproval.value ? '正在提交生效...' : '正在提交审批...',
    duration: 0,
  });
  try {
    await submitSaleOrder(row.id!, processList[0].key);
    message.success('提交审批成功,请到协同办公中处理');
    await submitSaleOrder(row.id!, automaticApproval.value ? 'sale_order_approve' : processList[0]!.key);
    message.success(automaticApproval.value ? '已提交生效' : '提交审批成功,请到协同办公中处理');
    handleRefresh();
  } finally {
    hideLoading();
@@ -208,7 +227,7 @@
      ajax: {
        query: async ({ page }, formValues) => {
          // 生产状态搜索参数转换:-1(无需生产) → needProduction=0
          const { productionStatus, ...rest } = formValues;
          const { productionStatus, ...rest } = normalizeDateRange(formValues);
          const params: Record<string, any> = { ...rest };
          if (productionStatus === -1) {
            params.needProduction = 0;