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