From f6f1ee0952e5763ae86cabec00097af8f0ce1d37 Mon Sep 17 00:00:00 2001
From: zhangzhen <525765282@qq.com>
Date: Fri, 27 Jun 2025 14:51:55 +0800
Subject: [PATCH] 优化必填校验;
---
src/components/QuickQuote/index.jsx | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 53 insertions(+), 33 deletions(-)
diff --git a/src/components/QuickQuote/index.jsx b/src/components/QuickQuote/index.jsx
index 162d62a..24c4bb5 100644
--- a/src/components/QuickQuote/index.jsx
+++ b/src/components/QuickQuote/index.jsx
@@ -166,6 +166,17 @@ const QuickQuoteEvent = props => {
props.onSaveState({ masterData: { ...props.masterData, sQuoConfig: JSON.stringify(addState.onGetFilterState(state)) }, quickQuoteModel: false });
};
+ // 获取国际化名称
+ const getI18nName = (sFieldName, sDefault) => {
+ return commonFunc.showMessage(props.app?.commonConst, sFieldName) || sDefault;
+ };
+
+ addState.getI18nName = getI18nName;
+
+ addState.getI18nNameList = (...list) => {
+ return list.map(item => getI18nName(...item));
+ };
+
addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => {
const { masterData = {}, slaveData = [], selectedNode = {}, manyData = [] } = state;
const extraState = {
@@ -277,12 +288,12 @@ const QuickQuoteEvent = props => {
} else {
if (iIndex === -1) {
slaveData.push({
+ ...commonFunc.getDefaultData(slaveConfig, { tree: selectedNode }),
...changeValue,
sId: commonUtils.createSid(),
handleType: "add",
sBoxModel: boxModel,
sTreeNodeName,
- ...commonFunc.getDefaultData(slaveConfig, { tree: selectedNode }),
});
} else {
slaveData[iIndex] = {
@@ -467,25 +478,22 @@ const QuickQuoteEvent = props => {
// 核价按钮
addState.handleCalcPrice = async () => {
- const { masterData = {}, slaveData = [], selectedNode = {}, extraParts = {} } = state;
+ const { masterConfig, masterData = {}, slaveConfig, slaveData = [], selectedNode = {}, extraParts = {} } = state;
if (commonUtils.isEmptyObject(selectedNode)) {
- message.error("请先选择产品");
+ message.error("请先选择产品", 2);
return;
}
- const mustFieldsMap = {
- sCustomerName: "请先选择客户名称",
- sProductName: "请先输入产品名称",
- sProductUnit: "请先输入产品单位",
- dLength: "请先输入长度",
- dWidth: "请先输入宽度",
- dProductQty: "请先输入数量",
- };
- const checkResult = Object.keys(mustFieldsMap).find(item => masterData[item] === undefined);
- if (checkResult) {
- message.error(mustFieldsMap[checkResult]);
- return;
+ const errMsgList = [];
+ const masterConfigMust = masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.bNotEmpty);
+ const checkResult = masterConfigMust.filter(item => !masterData[item.sName]);
+ if (checkResult.length) {
+ errMsgList.push(
+ checkResult.map(item => 【{item.showName}】),
+ {getI18nName("isNotNull")},
+
+ );
}
const { bBox, showName, sId } = selectedNode;
@@ -494,13 +502,36 @@ const QuickQuoteEvent = props => {
sAllPartsName = showName;
}
- const slaveRowDataList =
- slaveData
- .filter(item => item.sTreeNodeName === showName && item.materialsInfo && !item.materialsInfo.some(x => !x.sMaterialsName))
- .filter(item => (bBox ? item.sName : true))
- .filter(item => item.sPrint !== undefined && item.sColor !== undefined && item.iPrintModePo !== undefined) || [];
- if (!slaveRowDataList.length) {
- message.error("请至少保证一个部件的材料信息填写完整");
+ const slaveConfigMust = slaveConfig.gdsconfigformslave
+ .filter(item => item.bVisible && item.iTag && item.bNotEmpty && item.sName !== "sMaterialsName")
+ .filter(item => (bBox ? true : item.sName !== "sName"));
+
+ const sMaterialsNameConfig = slaveConfig.gdsconfigformslave.find(item => item.sName === "sMaterialsName");
+
+ const errorList = [];
+ const partsList = [];
+ slaveData.forEach(slaveRowData => {
+ const list = slaveConfigMust.filter(item => !slaveRowData[item.sName]);
+ if (!slaveRowData.materialsInfo || slaveRowData.materialsInfo.some(item => !item.sMaterialsName)) {
+ list.push(sMaterialsNameConfig);
+ }
+ errorList.push(list);
+ partsList.push(slaveRowData.sBoxModel);
+ });
+
+ if (!errorList.some(item => !item.length)) {
+ errMsgList.push(
+ errorList.map((item, index0) => [
+ {partsList[index0]}:,
+ ...item.map(config => 【{config.showName}】),
+ {getI18nName("isNotNull")},
+
,
+ ])
+ );
+ }
+
+ if (errMsgList.length) {
+ message.error(errMsgList, 3);
return;
}
@@ -958,17 +989,6 @@ const QuickQuoteEvent = props => {
}
};
- // 获取国际化名称
- const getI18nName = (sFieldName, sDefault) => {
- return commonFunc.showMessage(props.app?.commonConst, sFieldName) || sDefault;
- };
-
- addState.getI18nName = getI18nName;
-
- addState.getI18nNameList = (...list) => {
- return list.map(item => getI18nName(...item));
- };
-
return {
...props,
onDataChange0: props.onDataChange,
--
libgit2 0.22.2