gaoluyang
22 小时以前 cd8b52bdf89a4d1101f72e0ece9f4df22a3d3f7a
src/views/wls/returnissue/data.ts
@@ -1,6 +1,7 @@
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesWmMaterialStockApi } from '#/api/mes/wm/materialstock';
import type { MesWmProductIssueLineApi } from '#/api/mes/wm/productissue/line';
import type { MesWmReturnIssueApi } from '#/api/mes/wm/returnissue';
import type { MesWmReturnIssueDetailApi } from '#/api/mes/wm/returnissue/detail';
import type { MesWmReturnIssueLineApi } from '#/api/mes/wm/returnissue/line';
@@ -10,7 +11,6 @@
import {
  DICT_TYPE,
  MesAutoCodeRuleCode,
  MesProWorkOrderStatusEnum,
} from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
@@ -20,6 +20,7 @@
import { generateAutoCode } from '#/api/mes/md/autocode/record';
import { MdWorkstationSelect } from '#/views/mes/md/workstation/components';
import { ProWorkOrderSelect } from '#/views/mes/pro/workorder/components';
import { WmProductIssueLineSelect } from '#/views/wls/productissue/components';
import { WmMaterialStockSelect } from '#/views/wls/materialstock/components';
import {
  WmWarehouseAreaSelect,
@@ -107,7 +108,6 @@
      label: '生产订单',
      component: markRaw(ProWorkOrderSelect),
      componentProps: {
        status: MesProWorkOrderStatusEnum.CONFIRMED,
      },
      rules: 'selectRequired',
    },
@@ -125,9 +125,9 @@
      component: 'DatePicker',
      componentProps: {
        class: '!w-full',
        format: 'YYYY-MM-DD HH:mm:ss',
        format: 'YYYY-MM-DD',
        placeholder: '请选择退料日期',
        showTime: true,
        showTime: false,
        valueFormat: 'YYYY-MM-DD HH:mm:ss',
      },
    },
@@ -223,7 +223,7 @@
      field: 'returnDate',
      title: '退料日期',
      width: 180,
      formatter: 'formatDateTime',
      formatter: 'formatDate',
    },
    {
      field: 'status',
@@ -316,27 +316,29 @@
}
/** 退料单行新增/修改的表单 */
export function useLineFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
export function useLineFormSchema(
  formApi?: VbenFormApi,
  workOrderId?: number,
): VbenFormSchema[] {
  return [
    {
      fieldName: 'materialStockId',
      label: '库存记录',
      component: markRaw(WmMaterialStockSelect),
      fieldName: 'issueLineId',
      label: '领料记录',
      component: markRaw(WmProductIssueLineSelect),
      componentProps: {
        // 选择库存记录后,自动回填物料/批次/数量
        onChange: async (stock?: MesWmMaterialStockApi.MaterialStock) => {
        workOrderId,
        onChange: async (line?: MesWmProductIssueLineApi.ProductIssueLine) => {
          await formApi?.setValues({
            batchCode: stock?.batchCode,
            batchId: stock?.batchId,
            itemId: stock?.itemId,
            materialDisplayName: stock
              ? [stock.itemName, stock.specification].filter(Boolean).join(' | ')
            batchCode: line?.batchCode,
            batchId: line?.batchId,
            itemId: line?.itemId,
            materialDisplayName: line
              ? [line.itemName, line.specification].filter(Boolean).join(' | ')
              : undefined,
            quantity: stock?.quantity,
            quantityMax: stock?.quantity,
            quantity: line?.quantity,
            quantityMax: line?.quantity,
          });
        },
        virtualFilter: 'only',
      },
      rules: 'selectRequired',
    },
@@ -390,7 +392,7 @@
      component: 'Input',
      componentProps: {
        disabled: true,
        placeholder: '选择库存后自动带出',
        placeholder: '选择领料记录后自动带出',
      },
    },
    {
@@ -399,7 +401,7 @@
      component: 'Input',
      componentProps: {
        disabled: true,
        placeholder: '选择库存后自动带出',
        placeholder: '选择领料记录后自动带出',
      },
    },
    {