From 4e65306c1ea5f9b19529625bb89330035cafdc4a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 05 十一月 2026 20:20:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_新疆_新高电力' into dev_新疆_新高电力
---
src/views/mes/workbench/components/tabs/ProductIssueLineFormModal.vue | 40 +++++++++++++++++++++++++++++-----------
1 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/src/views/mes/workbench/components/tabs/ProductIssueLineFormModal.vue b/src/views/mes/workbench/components/tabs/ProductIssueLineFormModal.vue
index 78f182f..d67d83f 100644
--- a/src/views/mes/workbench/components/tabs/ProductIssueLineFormModal.vue
+++ b/src/views/mes/workbench/components/tabs/ProductIssueLineFormModal.vue
@@ -2,19 +2,20 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { MesWmProductIssueLineApi } from '#/api/mes/wm/productissue/line';
-import { computed, markRaw, ref } from 'vue';
+import { computed, ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
import { message } from 'ant-design-vue';
import { useVbenForm } from '#/adapter/form';
+import { getWorkOrderBomListByTaskId } from '#/api/mes/pro/workorder/bom';
+import { getProductIssue } from '#/api/mes/wm/productissue';
import {
createProductIssueLine,
getProductIssueLine,
updateProductIssueLine,
} from '#/api/mes/wm/productissue/line';
-import { MdItemSelect } from '#/views/mes/md/item/components';
const emit = defineEmits(['success']);
const formData = ref<MesWmProductIssueLineApi.ProductIssueLine>();
@@ -25,13 +26,18 @@
});
/** 鐗╂枡琛岃〃鍗� schema */
-function buildLineFormSchema(): VbenFormSchema[] {
+function buildLineFormSchema(options: { label: string; value: number }[] = []): VbenFormSchema[] {
return [
{
fieldName: 'itemId',
label: '浜у搧鐗╂枡',
- component: markRaw(MdItemSelect),
- componentProps: { placeholder: '璇烽�夋嫨浜у搧鐗╂枡' },
+ component: 'Select',
+ componentProps: {
+ options,
+ showSearch: true,
+ optionFilterProp: 'label',
+ placeholder: options.length ? '璇烽�夋嫨褰撳墠宸ュ簭鐗╂枡' : '璇峰厛缁存姢褰撳墠宸ュ簭鎶曞叆鐗╂枡',
+ },
rules: 'selectRequired',
},
{
@@ -91,14 +97,26 @@
}
const data = modalApi.getData<{ id?: number; issueId: number }>();
issueId.value = data.issueId;
- if (!data.id) {
- await formApi.resetForm();
- return;
- }
modalApi.lock();
try {
- formData.value = await getProductIssueLine(data.id);
- await formApi.setValues(formData.value);
+ const issue = await getProductIssue(data.issueId);
+ const boms = issue.taskId ? await getWorkOrderBomListByTaskId(issue.taskId) : [];
+ const optionMap = new Map<number, { label: string; value: number }>();
+ for (const item of boms) {
+ if (item.itemId != null) {
+ optionMap.set(item.itemId, {
+ value: item.itemId,
+ label: `${item.itemCode ?? ''} ${item.itemName ?? ''}`.trim(),
+ });
+ }
+ }
+ const options = [...optionMap.values()];
+ await formApi.updateSchema(buildLineFormSchema(options));
+ await formApi.resetForm();
+ if (data.id) {
+ formData.value = await getProductIssueLine(data.id);
+ await formApi.setValues(formData.value);
+ }
} finally {
modalApi.unlock();
}
--
Gitblit v1.9.3