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/mes/pro/workorder/components/select-dialog.vue | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/views/mes/pro/workorder/components/select-dialog.vue b/src/views/mes/pro/workorder/components/select-dialog.vue
index a675091..250ddd8 100644
--- a/src/views/mes/pro/workorder/components/select-dialog.vue
+++ b/src/views/mes/pro/workorder/components/select-dialog.vue
@@ -4,8 +4,8 @@
import { computed, nextTick, ref } from 'vue';
-import { DICT_TYPE } from '../../../../../packages/constants/src';
-import { getDictLabel } from '../../../../../packages/effects/hooks/src';
+import { DICT_TYPE } from '@vben/constants';
+import { getDictLabel } from '@vben/hooks';
import { Alert, Button, message, Modal } from 'ant-design-vue';
@@ -21,10 +21,12 @@
defineProps<{
status?: number;
type?: number;
+ checkMethod?: (row: MesProWorkOrderApi.WorkOrder) => boolean;
}>(),
{
status: undefined,
type: undefined,
+ checkMethod: undefined,
},
);
const emit = defineEmits<{
@@ -33,14 +35,14 @@
const open = ref(false); // 寮圭獥鏄惁鎵撳紑
const multiple = ref(false); // 鏄惁澶氶�夛紱榛樿鎸夊崟閫夐�夋嫨鍣ㄤ娇鐢�
-const selectedRows = ref<MesProWorkOrderApi.WorkOrder[]>([]); // 宸查�夊伐鍗曞垪琛�
-const preSelectedIds = ref<number[]>([]); // 棰勯�夊伐鍗曠紪鍙峰垪琛�
+const selectedRows = ref<MesProWorkOrderApi.WorkOrder[]>([]); // 宸查�夎鍗曞垪琛�
+const preSelectedIds = ref<number[]>([]); // 棰勯�夎鍗曠紪鍙峰垪琛�
const typeTip = computed(() => {
if (props.type === undefined) {
return '';
}
- return `浠呭睍绀恒��${getDictLabel(DICT_TYPE.MES_PRO_WORK_ORDER_TYPE, props.type)}銆戠被鍨嬬殑宸ュ崟`;
+ return `浠呭睍绀恒��${getDictLabel(DICT_TYPE.MES_PRO_WORK_ORDER_TYPE, props.type)}銆戠被鍨嬬殑璁㈠崟`;
});
/** 鑾峰彇澶氶�夎褰曪紝鍖呭惈 VXE reserve 璺ㄩ〉璁板綍 */
@@ -94,7 +96,7 @@
handleConfirm();
}
-/** 鍥炴樉棰勯�夊伐鍗� */
+/** 鍥炴樉棰勯�夎鍗� */
async function applyPreSelection() {
if (preSelectedIds.value.length === 0) {
return;
@@ -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: {
@@ -182,7 +186,7 @@
}
}
-/** 鎵撳紑宸ュ崟閫夋嫨寮圭獥 */
+/** 鎵撳紑璁㈠崟閫夋嫨寮圭獥 */
async function openModal(
selectedIds?: number[],
options?: { multiple?: boolean },
@@ -200,12 +204,12 @@
await applyPreSelection();
}
-/** 鍏抽棴宸ュ崟閫夋嫨寮圭獥 */
+/** 鍏抽棴璁㈠崟閫夋嫨寮圭獥 */
function closeModal() {
open.value = false;
}
-/** 纭閫夋嫨宸ュ崟 */
+/** 纭閫夋嫨璁㈠崟 */
function handleConfirm() {
const rows = multiple.value ? getMultipleSelectedRows() : selectedRows.value;
if (rows.length === 0) {
@@ -222,7 +226,7 @@
<template>
<Modal
v-model:open="open"
- title="鐢熶骇宸ュ崟閫夋嫨"
+ title="鐢熶骇璁㈠崟閫夋嫨"
width="80%"
:destroy-on-close="true"
@ok="handleConfirm"
@@ -235,7 +239,7 @@
show-icon
class="!mb-3"
/>
- <Grid table-title="鐢熶骇宸ュ崟鍒楄〃" />
+ <Grid table-title="鐢熶骇璁㈠崟鍒楄〃" />
<template #footer>
<Button @click="closeModal">鍙栨秷</Button>
<Button type="primary" @click="handleConfirm">纭畾</Button>
--
Gitblit v1.9.3