Commit f6f1ee0952e5763ae86cabec00097af8f0ce1d37

Authored by zhangzzzz
1 parent 3bf6a85b

优化必填校验;

src/components/QuickQuote/index.jsx
@@ -166,6 +166,17 @@ const QuickQuoteEvent = props => { @@ -166,6 +166,17 @@ const QuickQuoteEvent = props => {
166 props.onSaveState({ masterData: { ...props.masterData, sQuoConfig: JSON.stringify(addState.onGetFilterState(state)) }, quickQuoteModel: false }); 166 props.onSaveState({ masterData: { ...props.masterData, sQuoConfig: JSON.stringify(addState.onGetFilterState(state)) }, quickQuoteModel: false });
167 }; 167 };
168 168
  169 + // 获取国际化名称
  170 + const getI18nName = (sFieldName, sDefault) => {
  171 + return commonFunc.showMessage(props.app?.commonConst, sFieldName) || sDefault;
  172 + };
  173 +
  174 + addState.getI18nName = getI18nName;
  175 +
  176 + addState.getI18nNameList = (...list) => {
  177 + return list.map(item => getI18nName(...item));
  178 + };
  179 +
169 addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => { 180 addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => {
170 const { masterData = {}, slaveData = [], selectedNode = {}, manyData = [] } = state; 181 const { masterData = {}, slaveData = [], selectedNode = {}, manyData = [] } = state;
171 const extraState = { 182 const extraState = {
@@ -277,12 +288,12 @@ const QuickQuoteEvent = props => { @@ -277,12 +288,12 @@ const QuickQuoteEvent = props => {
277 } else { 288 } else {
278 if (iIndex === -1) { 289 if (iIndex === -1) {
279 slaveData.push({ 290 slaveData.push({
  291 + ...commonFunc.getDefaultData(slaveConfig, { tree: selectedNode }),
280 ...changeValue, 292 ...changeValue,
281 sId: commonUtils.createSid(), 293 sId: commonUtils.createSid(),
282 handleType: "add", 294 handleType: "add",
283 sBoxModel: boxModel, 295 sBoxModel: boxModel,
284 sTreeNodeName, 296 sTreeNodeName,
285 - ...commonFunc.getDefaultData(slaveConfig, { tree: selectedNode }),  
286 }); 297 });
287 } else { 298 } else {
288 slaveData[iIndex] = { 299 slaveData[iIndex] = {
@@ -467,25 +478,22 @@ const QuickQuoteEvent = props => { @@ -467,25 +478,22 @@ const QuickQuoteEvent = props => {
467 478
468 // 核价按钮 479 // 核价按钮
469 addState.handleCalcPrice = async () => { 480 addState.handleCalcPrice = async () => {
470 - const { masterData = {}, slaveData = [], selectedNode = {}, extraParts = {} } = state; 481 + const { masterConfig, masterData = {}, slaveConfig, slaveData = [], selectedNode = {}, extraParts = {} } = state;
471 482
472 if (commonUtils.isEmptyObject(selectedNode)) { 483 if (commonUtils.isEmptyObject(selectedNode)) {
473 - message.error("请先选择产品"); 484 + message.error("请先选择产品", 2);
474 return; 485 return;
475 } 486 }
476 - const mustFieldsMap = {  
477 - sCustomerName: "请先选择客户名称",  
478 - sProductName: "请先输入产品名称",  
479 - sProductUnit: "请先输入产品单位",  
480 - dLength: "请先输入长度",  
481 - dWidth: "请先输入宽度",  
482 - dProductQty: "请先输入数量",  
483 - };  
484 487
485 - const checkResult = Object.keys(mustFieldsMap).find(item => masterData[item] === undefined);  
486 - if (checkResult) {  
487 - message.error(mustFieldsMap[checkResult]);  
488 - return; 488 + const errMsgList = [];
  489 + const masterConfigMust = masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.bNotEmpty);
  490 + const checkResult = masterConfigMust.filter(item => !masterData[item.sName]);
  491 + if (checkResult.length) {
  492 + errMsgList.push(
  493 + checkResult.map(item => <span>【{item.showName}】</span>),
  494 + <span>{getI18nName("isNotNull")}</span>,
  495 + <br />
  496 + );
489 } 497 }
490 498
491 const { bBox, showName, sId } = selectedNode; 499 const { bBox, showName, sId } = selectedNode;
@@ -494,13 +502,36 @@ const QuickQuoteEvent = props =&gt; { @@ -494,13 +502,36 @@ const QuickQuoteEvent = props =&gt; {
494 sAllPartsName = showName; 502 sAllPartsName = showName;
495 } 503 }
496 504
497 - const slaveRowDataList =  
498 - slaveData  
499 - .filter(item => item.sTreeNodeName === showName && item.materialsInfo && !item.materialsInfo.some(x => !x.sMaterialsName))  
500 - .filter(item => (bBox ? item.sName : true))  
501 - .filter(item => item.sPrint !== undefined && item.sColor !== undefined && item.iPrintModePo !== undefined) || [];  
502 - if (!slaveRowDataList.length) {  
503 - message.error("请至少保证一个部件的材料信息填写完整"); 505 + const slaveConfigMust = slaveConfig.gdsconfigformslave
  506 + .filter(item => item.bVisible && item.iTag && item.bNotEmpty && item.sName !== "sMaterialsName")
  507 + .filter(item => (bBox ? true : item.sName !== "sName"));
  508 +
  509 + const sMaterialsNameConfig = slaveConfig.gdsconfigformslave.find(item => item.sName === "sMaterialsName");
  510 +
  511 + const errorList = [];
  512 + const partsList = [];
  513 + slaveData.forEach(slaveRowData => {
  514 + const list = slaveConfigMust.filter(item => !slaveRowData[item.sName]);
  515 + if (!slaveRowData.materialsInfo || slaveRowData.materialsInfo.some(item => !item.sMaterialsName)) {
  516 + list.push(sMaterialsNameConfig);
  517 + }
  518 + errorList.push(list);
  519 + partsList.push(slaveRowData.sBoxModel);
  520 + });
  521 +
  522 + if (!errorList.some(item => !item.length)) {
  523 + errMsgList.push(
  524 + errorList.map((item, index0) => [
  525 + <span>{partsList[index0]}:</span>,
  526 + ...item.map(config => <span>【{config.showName}】</span>),
  527 + <span>{getI18nName("isNotNull")}</span>,
  528 + <br />,
  529 + ])
  530 + );
  531 + }
  532 +
  533 + if (errMsgList.length) {
  534 + message.error(errMsgList, 3);
504 return; 535 return;
505 } 536 }
506 537
@@ -958,17 +989,6 @@ const QuickQuoteEvent = props =&gt; { @@ -958,17 +989,6 @@ const QuickQuoteEvent = props =&gt; {
958 } 989 }
959 }; 990 };
960 991
961 - // 获取国际化名称  
962 - const getI18nName = (sFieldName, sDefault) => {  
963 - return commonFunc.showMessage(props.app?.commonConst, sFieldName) || sDefault;  
964 - };  
965 -  
966 - addState.getI18nName = getI18nName;  
967 -  
968 - addState.getI18nNameList = (...list) => {  
969 - return list.map(item => getI18nName(...item));  
970 - };  
971 -  
972 return { 992 return {
973 ...props, 993 ...props,
974 onDataChange0: props.onDataChange, 994 onDataChange0: props.onDataChange,