From e4994fccfb49ebfb108ba62cbd82aea4e004f6d8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 15 十月 2026 10:02:46 +0800
Subject: [PATCH] fix(mes/qc): 不合格品处理单的不合格物料改查 MDM 物料
---
src/views/wls/returnvendor/data.ts | 58 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 38 insertions(+), 20 deletions(-)
diff --git a/src/views/wls/returnvendor/data.ts b/src/views/wls/returnvendor/data.ts
index 5d2b324..ced93ac 100644
--- a/src/views/wls/returnvendor/data.ts
+++ b/src/views/wls/returnvendor/data.ts
@@ -1,5 +1,6 @@
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+import type { MdmItemApi } from '#/api/mdm/item';
import type { MesWmMaterialStockApi } from '#/api/mes/wm/materialstock';
import type { MesWmReturnVendorApi } from '#/api/mes/wm/returnvendor';
import type { MesWmReturnVendorDetailApi } from '#/api/mes/wm/returnvendor/detail';
@@ -12,11 +13,15 @@
import { Button } from 'ant-design-vue';
import { generateAutoCode } from '#/api/mes/md/autocode/record';
-import { MdItemSelect } from '#/views/mes/md/item/components';
+import { MdmItemSelect } from '#/views/basicData/mdm/components';
import { MdVendorSelect } from '#/views/mes/md/vendor/components';
import { ErpPurchaseOrderSelect } from '#/views/erp/purchase/order/components';
import { WmBatchSelect } from '#/views/wls/batch/components';
import { WmMaterialStockSelect } from '#/views/wls/materialstock/components';
+import {
+ buildItemUnitSchema,
+ useLineUnitHandlers,
+} from '#/views/wls/utils/item-unit-convert';
import {
WmWarehouseAreaSelect,
WmWarehouseLocationSelect,
@@ -137,7 +142,7 @@
format: 'YYYY-MM-DD HH:mm:ss',
placeholder: '璇烽�夋嫨閫�璐ф棩鏈�',
showTime: true,
- valueFormat: 'x',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
rules: 'required',
},
@@ -301,9 +306,24 @@
minWidth: 120,
},
{
+ field: 'itemModel',
+ title: '鐗╂枡鍨嬪彿',
+ minWidth: 120,
+ },
+ {
field: 'unitMeasureName',
- title: '鍗曚綅',
- width: 80,
+ title: '涓昏閲忓崟浣�',
+ width: 100,
+ },
+ {
+ field: 'enterUnitMeasureName',
+ title: '褰曞叆鍗曚綅',
+ width: 90,
+ },
+ {
+ field: 'enterQuantity',
+ title: '褰曞叆鏁伴噺',
+ width: 100,
},
{
field: 'quantity',
@@ -333,28 +353,23 @@
vendorId?: number,
formApi?: VbenFormApi,
): VbenFormSchema[] {
+ const unitHandlers = useLineUnitHandlers(formApi);
return [
{
fieldName: 'itemId',
label: '浜у搧鐗╂枡',
- component: markRaw(MdItemSelect),
+ component: markRaw(MdmItemSelect),
componentProps: {
placeholder: '璇烽�夋嫨浜у搧鐗╂枡',
+ // 鍒囨崲浜у搧鍚庯紝閲嶆柊璁板綍鐗╂枡涓诲崟浣嶅苟娓呯┖鍨嬪彿銆佸綍鍏ュ崟浣嶅彛寰�
+ onChange: async (item?: MdmItemApi.Item) => {
+ await unitHandlers.handleItemChange(item?.id);
+ },
},
rules: 'selectRequired',
},
- {
- fieldName: 'quantity',
- label: '閫�璐ф暟閲�',
- component: 'InputNumber',
- componentProps: {
- class: '!w-full',
- min: 0,
- placeholder: '璇疯緭鍏ラ��璐ф暟閲�',
- precision: 2,
- },
- rules: 'required',
- },
+ // 鐗╂枡鍨嬪彿 / 褰曞叆鍗曚綅 / 褰曞叆鏁伴噺 / 閫�璐ф暟閲忥紙鐗╂枡涓诲崟浣嶅彛寰勶級
+ ...buildItemUnitSchema(formApi, { quantityLabel: '閫�璐ф暟閲�' }),
{
fieldName: 'batchId',
label: '鎵规鍙�',
@@ -439,7 +454,10 @@
}
/** 鎷h揣鏄庣粏鏂板/淇敼鐨勮〃鍗� */
-export function useDetailFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
+export function useDetailFormSchema(
+ formApi?: VbenFormApi,
+ onStockChange?: (stock?: MesWmMaterialStockApi.MaterialStock) => void,
+): VbenFormSchema[] {
return [
{
fieldName: 'quantityMax',
@@ -452,7 +470,7 @@
{
fieldName: 'itemId',
label: '鐗╂枡',
- component: markRaw(MdItemSelect),
+ component: markRaw(MdmItemSelect),
componentProps: {
disabled: true,
},
@@ -464,10 +482,10 @@
componentProps: {
// 閫夋嫨搴撳瓨璁板綍鍚庯紝鑷姩鍥炲~浠撳簱/搴撳尯/搴撲綅/鎵规/鏁伴噺
onChange: async (stock?: MesWmMaterialStockApi.MaterialStock) => {
+ onStockChange?.(stock);
await formApi?.setValues({
areaId: stock?.areaId,
batchCode: stock?.batchCode,
- batchId: stock?.batchId,
locationId: stock?.locationId,
quantity: stock?.quantity,
quantityMax: stock?.quantity,
--
Gitblit v1.9.3