From 3df96cc4dade2aa2cf58a611647339f1b636a9a4 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期三, 26 八月 2026 11:27:23 +0800
Subject: [PATCH] feat(wls): 限制产品入库选择未开工的生产订单

---
 src/views/wls/productreceipt/data.ts                     |    3 ++-
 src/views/mes/pro/workorder/components/select-dialog.vue |    6 +++++-
 src/views/mes/pro/workorder/components/select.vue        |    5 ++++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/views/mes/pro/workorder/components/select-dialog.vue b/src/views/mes/pro/workorder/components/select-dialog.vue
index 2f000dc..250ddd8 100644
--- a/src/views/mes/pro/workorder/components/select-dialog.vue
+++ b/src/views/mes/pro/workorder/components/select-dialog.vue
@@ -1,4 +1,4 @@
-锘�<script lang="ts" setup>
+<script lang="ts" setup>
 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
 import type { MesProWorkOrderApi } from '#/api/mes/pro/workorder';
 
@@ -21,10 +21,12 @@
   defineProps<{
     status?: number;
     type?: number;
+    checkMethod?: (row: MesProWorkOrderApi.WorkOrder) => boolean;
   }>(),
   {
     status: undefined,
     type: undefined,
+    checkMethod: undefined,
   },
 );
 const emit = defineEmits<{
@@ -133,10 +135,12 @@
       highlight: true,
       range: true,
       reserve: true,
+      checkMethod: props.checkMethod ? ({ row }) => props.checkMethod!(row) : undefined,
     },
     radioConfig: {
       highlight: true,
       trigger: 'row',
+      checkMethod: props.checkMethod ? ({ row }) => props.checkMethod!(row) : undefined,
     },
     proxyConfig: {
       ajax: {
diff --git a/src/views/mes/pro/workorder/components/select.vue b/src/views/mes/pro/workorder/components/select.vue
index 6788174..39dd494 100644
--- a/src/views/mes/pro/workorder/components/select.vue
+++ b/src/views/mes/pro/workorder/components/select.vue
@@ -1,4 +1,4 @@
-锘�<script lang="ts" setup>
+<script lang="ts" setup>
 import type { MesProWorkOrderApi } from '#/api/mes/pro/workorder';
 
 import { computed, ref, useAttrs, watch } from 'vue';
@@ -21,6 +21,7 @@
     placeholder?: string;
     status?: number;
     type?: number;
+    checkMethod?: (row: MesProWorkOrderApi.WorkOrder) => boolean;
   }>(),
   {
     allowClear: true,
@@ -29,6 +30,7 @@
     placeholder: '璇烽�夋嫨璁㈠崟',
     status: undefined,
     type: undefined,
+    checkMethod: undefined,
   },
 );
 
@@ -140,6 +142,7 @@
     ref="dialogRef"
     :status="status"
     :type="type"
+    :check-method="checkMethod"
     @selected="handleSelected"
   />
 </template>
diff --git a/src/views/wls/productreceipt/data.ts b/src/views/wls/productreceipt/data.ts
index 07cc1bf..f249a84 100644
--- a/src/views/wls/productreceipt/data.ts
+++ b/src/views/wls/productreceipt/data.ts
@@ -1,4 +1,4 @@
-锘縤mport type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
+import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
 import type { MesWmMaterialStockApi } from '#/api/mes/wm/materialstock';
 import type { MesWmProductReceiptApi } from '#/api/mes/wm/productreceipt';
@@ -108,6 +108,7 @@
       component: markRaw(ProWorkOrderSelect),
       componentProps: {
         status: MesProWorkOrderStatusEnum.CONFIRMED,
+        checkMethod: (row: any) => row.productionStatus !== 0,
       },
     },
     {

--
Gitblit v1.9.3