From b176162c23294d8d1bfb9f09cf6bb759efb0124a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 15 七月 2026 14:10:26 +0800
Subject: [PATCH] 银川 1.库存现有量添加自定义出库入库功能 2.整理重复文件
---
src/views/basicData/mdm/data.ts | 222 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 163 insertions(+), 59 deletions(-)
diff --git a/src/views/basicData/mdm/data.ts b/src/views/basicData/mdm/data.ts
index f294908..bbde65a 100644
--- a/src/views/basicData/mdm/data.ts
+++ b/src/views/basicData/mdm/data.ts
@@ -5,31 +5,29 @@
import { getDictOptions } from "#/packages/effects/hooks/src";
import { z } from '#/adapter/form';
+import { getItemTypeSimpleList } from '#/api/mes/md/item/type';
import { getUnitPage } from '#/api/mdm/unit';
-/** 鐗╂枡绫诲瀷閫夐」 */
-export const ITEM_TYPE_OPTIONS = [
- { label: "鍘熸枡", value: 1 },
- { label: "鍗婃垚鍝�", value: 2 },
- { label: "鎴愬搧", value: 3 },
- { label: "杈呮枡", value: 4 },
-];
+// 缂撳瓨鍗曚綅鍒楄〃
+let unitListCache: any[] | null = null;
+let unitListPromise: Promise<any[]> | null = null;
-/** 鐗╂枡绫诲瀷鏄犲皠 */
-export const ITEM_TYPE_MAP: Record<number, string> = {
- 1: "鍘熸枡",
- 2: "鍗婃垚鍝�",
- 3: "鎴愬搧",
- 4: "杈呮枡",
-};
-
-/** 鐗╂枡绫诲瀷棰滆壊鏄犲皠 */
-export const ITEM_TYPE_COLOR_MAP: Record<number, string> = {
- 1: "green",
- 2: "orange",
- 3: "blue",
- 4: "purple",
-};
+/** 鑾峰彇鍗曚綅鍒楄〃锛堝甫缂撳瓨锛� */
+async function getUnitListCached() {
+ if (unitListCache) {
+ return unitListCache;
+ }
+ if (unitListPromise) {
+ return unitListPromise;
+ }
+ unitListPromise = getUnitPage({ pageNo: 1, pageSize: 100, status: 0 }).then((res) => {
+ unitListCache = res.list || [];
+ return unitListCache;
+ }).finally(() => {
+ unitListPromise = null;
+ });
+ return unitListPromise;
+}
/** 鏂板/淇敼鐨勮〃鍗� */
export function useFormSchema(): VbenFormSchema[] {
@@ -61,15 +59,20 @@
rules: "required",
},
{
- component: "RadioGroup",
- fieldName: "itemType",
- label: "鐗╂枡绫诲瀷",
+ component: "ApiSelect",
+ fieldName: "categoryId",
+ label: "鐗╂枡鍒嗙被",
+ rules: "selectRequired",
componentProps: {
- options: ITEM_TYPE_OPTIONS,
- buttonStyle: "solid",
- optionType: "button",
+ placeholder: "璇烽�夋嫨鐗╂枡鍒嗙被",
+ allowClear: true,
+ api: async () => {
+ const res = await getItemTypeSimpleList();
+ return res || [];
+ },
+ labelField: "name",
+ valueField: "id",
},
- rules: "required",
},
{
component: "Input",
@@ -88,10 +91,7 @@
componentProps: {
placeholder: "璇烽�夋嫨璁¢噺鍗曚綅",
allowClear: true,
- api: async () => {
- const res = await getUnitPage({ pageNo: 1, pageSize: 100, status: 0 });
- return res.list || [];
- },
+ api: getUnitListCached,
labelField: "name",
valueField: "id",
},
@@ -104,10 +104,7 @@
componentProps: {
placeholder: "璇烽�夋嫨杈呭崟浣�1",
allowClear: true,
- api: async () => {
- const res = await getUnitPage({ pageNo: 1, pageSize: 100, status: 0 });
- return res.list || [];
- },
+ api: getUnitListCached,
labelField: "name",
valueField: "id",
},
@@ -132,10 +129,7 @@
componentProps: {
placeholder: "璇烽�夋嫨杈呭崟浣�2",
allowClear: true,
- api: async () => {
- const res = await getUnitPage({ pageNo: 1, pageSize: 100, status: 0 });
- return res.list || [];
- },
+ api: getUnitListCached,
labelField: "name",
valueField: "id",
},
@@ -238,13 +232,13 @@
component: 'Switch',
fieldName: 'isBatchManaged',
label: '鎵规绠$悊',
- defaultValue: true,
+ defaultValue: false,
componentProps: {
class: "w-auto",
checkedChildren: "鏄�",
unCheckedChildren: "鍚�",
},
- rules: z.boolean().default(true),
+ rules: z.boolean().default(false),
},
{
component: "Switch",
@@ -288,6 +282,126 @@
rows: 3,
},
},
+ // ===== 鎵规灞炴�ч厤缃紙isBatchManaged = true 鏃舵樉绀猴級 =====
+ {
+ component: "Divider",
+ fieldName: "batchConfigDivider",
+ label: "鎵规灞炴�ч厤缃�",
+ formItemClass: "col-span-2",
+ componentProps: {
+ orientation: "left",
+ plain: true,
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "produceDateFlag",
+ label: "鐢熶骇鏃ユ湡蹇呭~",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "expireDateFlag",
+ label: "鏈夋晥鏈熷繀濉�",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "receiptDateFlag",
+ label: "鍏ュ簱鏃ユ湡蹇呭~",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "vendorFlag",
+ label: "渚涘簲鍟嗗繀濉�",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "purchaseOrderCodeFlag",
+ label: "閲囪喘璁㈠崟鍙峰繀濉�",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "lotNumberFlag",
+ label: "鐢熶骇鎵瑰彿蹇呭~",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
+ {
+ component: "Switch",
+ fieldName: "qualityStatusFlag",
+ label: "璐ㄩ噺鐘舵�佸繀濉�",
+ defaultValue: false,
+ componentProps: {
+ class: "w-auto",
+ checkedChildren: "鏄�",
+ unCheckedChildren: "鍚�",
+ },
+ dependencies: {
+ triggerFields: ["isBatchManaged"],
+ show: (values) => values.isBatchManaged === true,
+ },
+ },
];
}
@@ -310,16 +424,6 @@
componentProps: {
placeholder: "璇疯緭鍏ョ墿鏂欏悕绉�",
allowClear: true,
- },
- },
- {
- fieldName: "itemType",
- label: "鐗╂枡绫诲瀷",
- component: "Select",
- componentProps: {
- placeholder: "璇烽�夋嫨鐗╂枡绫诲瀷",
- allowClear: true,
- options: ITEM_TYPE_OPTIONS,
},
},
{
@@ -355,6 +459,12 @@
minWidth: 150,
},
{
+ field: "categoryName",
+ title: "鐗╂枡鍒嗙被",
+ minWidth: 120,
+ slots: { default: "categoryName" },
+ },
+ {
field: "unitMeasureName",
title: "鍗曚綅",
minWidth: 80,
@@ -383,12 +493,6 @@
field: "warehouseName",
title: "榛樿浠撳簱",
minWidth: 100,
- },
- {
- field: "itemType",
- title: "鐗╂枡绫诲瀷",
- minWidth: 100,
- slots: { default: "itemType" },
},
{
field: "purchasePrice",
--
Gitblit v1.9.3