云
2026-10-26 bae93b624d8d68ed2fe540c381a58b47082c1309
src/views/mes/pro/route/modules/process-form.vue
@@ -6,7 +6,7 @@
import { useVbenModal } from '@vben/common-ui';
import { message } from 'ant-design-vue';
import { Alert, message } from 'ant-design-vue';
import { useVbenForm } from '#/adapter/form';
import { getProcessSimpleList } from '#/api/mes/pro/process';
@@ -15,6 +15,7 @@
  getRouteProcess,
  updateRouteProcess,
} from '#/api/mes/pro/route/process';
import { getRouteProductListByRoute } from '#/api/mes/pro/route/product';
import { $t } from '#/locales';
import { useRouteProcessFormSchema } from '../data';
@@ -31,7 +32,7 @@
  commonConfig: {
    componentProps: { class: 'w-full' },
    formItemClass: 'col-span-1',
    labelWidth: 150,
    labelWidth: 130,
  },
  layout: 'horizontal',
  schema: [],
@@ -40,13 +41,14 @@
});
/** 加载工序选项后再生成 schema(避免下拉空选项) */
async function loadSchema(): Promise<VbenFormSchema[]> {
async function loadSchema(routeId: number): Promise<VbenFormSchema[]> {
  const list = await getProcessSimpleList();
  const options = (list || []).map((item) => ({
    label: item.name ?? '',
    value: item.id!,
  }));
  return useRouteProcessFormSchema(options);
  const products = routeId ? await getRouteProductListByRoute(routeId) : [];
  return useRouteProcessFormSchema(options, products);
}
const [Modal, modalApi] = useVbenModal({
@@ -76,15 +78,6 @@
      formData.value = undefined;
      return;
    }
    modalApi.lock();
    try {
      // 工序下拉依赖远程数据,schema 在弹窗打开时再生成
      const schema = await loadSchema();
      formApi.setState({ schema });
    } finally {
      modalApi.unlock();
    }
    // 加载数据
    const data = modalApi.getData<{
      id?: number;
      maxSort?: number;
@@ -93,6 +86,15 @@
    if (!data) {
      return;
    }
    modalApi.lock();
    try {
      // 工序下拉依赖远程数据,schema 在弹窗打开时再生成
      const schema = await loadSchema(data.routeId);
      formApi.setState({ schema });
    } finally {
      modalApi.unlock();
    }
    // 加载数据
    if (!data.id) {
      // 新增时,默认序号 = maxSort + 1,并给一个默认甘特图颜色
      await formApi.setValues({
@@ -116,6 +118,13 @@
<template>
  <Modal :title="getTitle" class="w-3/5">
    <Alert
      class="mx-4 mb-4"
      message="按实际生产节点配置产出"
      description="中间工序没有独立产出时可留空;形成半成品时选择对应半成品,末道工序必须选择全部成品。归属表示该产出属于哪个产品:多产品共用的半成品选“通用”,产品专属(尤其是成品)归属到自身产品。如开启报工自动扣料,报工时会按工序投料配置扣减库存。"
      show-icon
      type="info"
    />
    <Form class="mx-4" />
  </Modal>
</template>