From cd8b52bdf89a4d1101f72e0ece9f4df22a3d3f7a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 15 十月 2026 16:03:32 +0800
Subject: [PATCH] feat(mdm): 物料列表隐藏辅单位与销售价列
---
src/views/basicData/mdm/data.ts | 178 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 123 insertions(+), 55 deletions(-)
diff --git a/src/views/basicData/mdm/data.ts b/src/views/basicData/mdm/data.ts
index 29076e7..051a99c 100644
--- a/src/views/basicData/mdm/data.ts
+++ b/src/views/basicData/mdm/data.ts
@@ -11,12 +11,17 @@
import { MesAutoCodeRuleCode } from '@vben/constants';
import { getItemTypeSimpleList } from '#/api/mes/md/item/type';
import { getUnitPage } from '#/api/mdm/unit';
+import { getWarehouseSimpleList } from '#/api/mes/wm/warehouse';
import { Button } from 'ant-design-vue';
// 缂撳瓨鍗曚綅鍒楄〃
let unitListCache: any[] | null = null;
let unitListPromise: Promise<any[]> | null = null;
+
+// 缂撳瓨浠撳簱鍒楄〃
+let warehouseListCache: any[] | null = null;
+let warehouseListPromise: Promise<any[]> | null = null;
/** 灏嗘墎骞冲垎绫诲垪琛ㄨ浆涓� TreeSelect 鎵�闇�鐨勬爲褰㈢粨鏋� */
export function buildCategoryTree(list: any[]): any[] {
@@ -53,9 +58,27 @@
return unitListPromise;
}
+/** 鑾峰彇浠撳簱鍒楄〃锛堝甫缂撳瓨锛� */
+async function getWarehouseListCached() {
+ if (warehouseListCache) {
+ return warehouseListCache;
+ }
+ if (warehouseListPromise) {
+ return warehouseListPromise;
+ }
+ warehouseListPromise = getWarehouseSimpleList().then((res) => {
+ warehouseListCache = res || [];
+ return warehouseListCache;
+ }).finally(() => {
+ warehouseListPromise = null;
+ });
+ return warehouseListPromise;
+}
+
/** 娓呴櫎鍗曚綅鍒楄〃缂撳瓨 */
export function clearUnitListCache() {
unitListCache = null;
+ warehouseListCache = null;
}
/** 鏂板/淇敼鐨勮〃鍗� */
@@ -188,11 +211,29 @@
},
},
{
- component: 'Input',
+ component: 'ApiSelect',
fieldName: 'warehouseId',
label: '榛樿浠撳簱',
componentProps: {
- placeholder: '璇疯緭鍏ラ粯璁や粨搴揑D',
+ placeholder: '璇烽�夋嫨榛樿浠撳簱',
+ allowClear: true,
+ api: getWarehouseListCached,
+ labelField: 'name',
+ valueField: 'id',
+ onChange: async (value: number | undefined) => {
+ const code = value
+ ? ((await getWarehouseListCached()).find((w: any) => w.id === value)?.code || '')
+ : '';
+ formApi?.setFieldValue('warehouseCode', code);
+ },
+ },
+ },
+ {
+ component: 'Input',
+ fieldName: 'warehouseCode',
+ dependencies: {
+ triggerFields: [''],
+ show: () => false,
},
},
{
@@ -282,17 +323,6 @@
rules: z.boolean().default(false),
},
{
- component: "Switch",
- fieldName: "syncMes",
- label: "鍚屾鍒� MES",
- componentProps: {
- class: "w-auto",
- checkedChildren: "鏄�",
- unCheckedChildren: "鍚�",
- },
- rules: z.boolean().default(false),
- },
- {
component: "InputNumber",
fieldName: "expiryDay",
label: "鏈夋晥鏈�(澶�)",
@@ -301,6 +331,17 @@
min: 0,
placeholder: "璇疯緭鍏ユ湁鏁堟湡",
},
+ },
+ {
+ component: 'Switch',
+ fieldName: 'syncMes',
+ label: '鍚屾鍒癕ES',
+ defaultValue: true,
+ componentProps: {
+ checkedChildren: '鏄�',
+ unCheckedChildren: '鍚�',
+ },
+ rules: z.boolean().default(true),
},
{
component: "RadioGroup",
@@ -510,69 +551,72 @@
title: "鍗曚綅",
minWidth: 80,
},
- {
- field: "unitMeasureName2",
- title: "杈呭崟浣�1",
- minWidth: 80,
- },
- {
- field: "unitMeasureRate1",
- title: "杈呭崟浣�1鎹㈢畻姣旂巼",
- minWidth: 130,
- },
- {
- field: "unitMeasureName3",
- title: "杈呭崟浣�2",
- minWidth: 80,
- },
- {
- field: "unitMeasureRate2",
- title: "杈呭崟浣�2鎹㈢畻姣旂巼",
- minWidth: 130,
- },
+ // 杈呭崟浣�1/杈呭崟浣�1鎹㈢畻姣旂巼/杈呭崟浣�2/杈呭崟浣�2鎹㈢畻姣旂巼锛氱墿鏂欏垪琛ㄤ笉鍐嶅睍绀猴紙琛ㄥ崟閲屼粛鍙淮鎶わ級锛岄渶瑕佹仮澶嶅氨鍙栨秷娉ㄩ噴
+ // {
+ // field: "unitMeasureName2",
+ // title: "杈呭崟浣�1",
+ // minWidth: 80,
+ // },
+ // {
+ // field: "unitMeasureRate1",
+ // title: "杈呭崟浣�1鎹㈢畻姣旂巼",
+ // minWidth: 130,
+ // },
+ // {
+ // field: "unitMeasureName3",
+ // title: "杈呭崟浣�2",
+ // minWidth: 80,
+ // },
+ // {
+ // field: "unitMeasureRate2",
+ // title: "杈呭崟浣�2鎹㈢畻姣旂巼",
+ // minWidth: 130,
+ // },
{
field: "warehouseName",
title: "榛樿浠撳簱",
minWidth: 100,
},
+ // 閿�鍞环锛氱墿鏂欏垪琛ㄤ笉鍐嶅睍绀猴紝闇�瑕佹仮澶嶅氨鍙栨秷娉ㄩ噴
+ // {
+ // field: "salesPrice",
+ // title: "閿�鍞环",
+ // minWidth: 100,
+ // formatter: ({ cellValue }) => {
+ // return cellValue != null ? `楼${Number(cellValue).toFixed(2)}` : "";
+ // },
+ // },
{
- field: "purchasePrice",
- title: "閲囪喘浠�",
- minWidth: 100,
- formatter: ({ cellValue }) => {
- return cellValue != null ? `楼${Number(cellValue).toFixed(2)}` : "";
- },
- },
- {
- field: "salesPrice",
- title: "閿�鍞环",
- minWidth: 100,
- formatter: ({ cellValue }) => {
- return cellValue != null ? `楼${Number(cellValue).toFixed(2)}` : "";
- },
+ field: "createTime",
+ title: "鍒涘缓鏃堕棿",
+ minWidth: 180,
+ formatter: 'formatDate',
},
{
field: "isBatchManaged",
title: "鎵规绠$悊",
- minWidth: 80,
+ width: 80,
+ fixed: "right",
slots: { default: "isBatchManaged" },
+ },
+ {
+ field: "syncedMes",
+ title: "鍚屾鐘舵��",
+ width: 100,
+ fixed: "right",
+ slots: { default: "syncedMes" },
},
{
field: "status",
title: "鐘舵��",
- minWidth: 80,
+ width: 80,
+ fixed: "right",
cellRender: {
name: "CellDict",
props: { type: DICT_TYPE.COMMON_STATUS },
},
},
{
- field: "createTime",
- title: "鍒涘缓鏃堕棿",
- minWidth: 180,
- formatter: "formatDateTime",
- },
- {
title: "鎿嶄綔",
width: 180,
fixed: "right",
@@ -580,3 +624,27 @@
},
];
}
+
+/** 鐗╂枡瀵煎叆鐨勮〃鍗� */
+export function useImportFormSchema(): VbenFormSchema[] {
+ return [
+ {
+ fieldName: 'file',
+ label: '鐗╂枡鏁版嵁',
+ component: 'Upload',
+ rules: 'required',
+ help: '浠呭厑璁稿鍏� xls銆亁lsx 鏍煎紡鏂囦欢',
+ },
+ {
+ fieldName: 'updateSupport',
+ label: '鏄惁瑕嗙洊',
+ component: 'Switch',
+ componentProps: {
+ checkedChildren: '鏄�',
+ unCheckedChildren: '鍚�',
+ },
+ rules: z.boolean().default(false),
+ help: '鏄惁鏇存柊宸茬粡瀛樺湪鐨勭墿鏂欐暟鎹�',
+ },
+ ];
+}
--
Gitblit v1.9.3