Commit 86a05485500eba6e03535df30cab66d5520afc1e
1 parent
fe5d2f05
快速报价核价
Showing
7 changed files
with
266 additions
and
53 deletions
src/components/QuickQuote/index.jsx
| ... | ... | @@ -17,7 +17,6 @@ import Typesetting from "@/components/Common/Typesetting/typesetting"; |
| 17 | 17 | import DynamicSVG from "@/components/Common/BoxDesignCompontent/svg"; |
| 18 | 18 | // 事件 |
| 19 | 19 | const QuickQuoteEvent = props => { |
| 20 | - console.log("🚀 ~ QuickQuoteEvent:", props) | |
| 21 | 20 | const addState = {}; |
| 22 | 21 | |
| 23 | 22 | addState.onGetFilterState = (state, bInit) => { |
| ... | ... | @@ -613,7 +612,6 @@ const QuickQuoteEvent = props => { |
| 613 | 612 | const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName"); |
| 614 | 613 | if (iIndex > -1) { |
| 615 | 614 | const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", processConfig.gdsconfigformslave[iIndex]); |
| 616 | - console.log("🚀 ~ addState.handleCalcPrice= ~ sqlDropDownData:", sqlDropDownData) | |
| 617 | 615 | dropDownDataProcessName = sqlDropDownData.dropDownData; |
| 618 | 616 | processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; |
| 619 | 617 | } |
| ... | ... | @@ -845,7 +843,6 @@ const QuickQuoteEvent = props => { |
| 845 | 843 | { ...props, ...newState, manyqtysConfig: state.manyConfig, manyqtysData: state.manyData }, |
| 846 | 844 | true |
| 847 | 845 | ); |
| 848 | - | |
| 849 | 846 | if (commonUtils.isEmptyObject(result)) { |
| 850 | 847 | setState(pre => ({ ...pre, calcPriceLoading: false })); |
| 851 | 848 | return; |
| ... | ... | @@ -1363,7 +1360,6 @@ const BoxComponent = props => { |
| 1363 | 1360 | onDataChange: (name, sFieldName, changeValue, sId, dropDownData, isWait) => { |
| 1364 | 1361 | const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); |
| 1365 | 1362 | const iIndex1 = slaveData[iIndex].sBackProcessData.findIndex(item => item[child.sName]); |
| 1366 | - console.log("🚀 ~ child:", child) | |
| 1367 | 1363 | slaveData[iIndex].sBackProcessData[iIndex1][sFieldName] = changeValue[sFieldName]; |
| 1368 | 1364 | const { dManualLength, dManualWidth } = slaveData[iIndex].sBackProcessData[iIndex1]; |
| 1369 | 1365 | if (dManualLength !== undefined && dManualWidth !== undefined) { | ... | ... |
src/mobile/quotation/detailNew.jsx
| 1 | 1 | import { useRef, useEffect, useState, useCallback, useMemo } from "react"; |
| 2 | 2 | import { history } from "umi"; |
| 3 | 3 | import { Toast, Input, Tabs, Selector, Grid, Image, Button, Checkbox, Switch, Dialog } from "antd-mobile"; |
| 4 | -import { AddOutline, MinusOutline } from "antd-mobile-icons"; | |
| 4 | +import { AddOutline, MinusOutline, EditFill } from "antd-mobile-icons"; | |
| 5 | 5 | import commonConfig from "@/utils/config"; |
| 6 | 6 | import * as commonServices from "@/services/services"; |
| 7 | 7 | import * as commonFunc from "@/components/Common/commonFunc"; |
| 8 | 8 | import * as commonBusiness from "@/components/Common/commonBusiness"; |
| 9 | 9 | import styles from "./quotationDetail.less"; |
| 10 | 10 | import SelectInput from "../components/SelectInput"; |
| 11 | -import JsonData from "./index.json"; | |
| 12 | -import PropsJson from "./props.json"; | |
| 13 | -import ProcessData from "./process.json"; | |
| 14 | 11 | import * as commonUtils from "@/utils/utils"; |
| 15 | 12 | import Typesetting from "@/components/Common/Typesetting/typesetting"; |
| 16 | 13 | import DynamicSVG from "@/components/Common/BoxDesignCompontent/svg"; |
| 17 | 14 | import ShowImgM from "@/components/Common/BoxShowImgMaterial/indexNew"; |
| 15 | +import CommonBase from "@/components/Common/CommonBase"; | |
| 18 | 16 | const QuickQuoteEvent = props => { |
| 19 | 17 | const { location } = props; |
| 20 | 18 | const selectedNode = JSON.parse(location.state).quotationData; |
| ... | ... | @@ -116,7 +114,8 @@ const QuickQuoteEvent = props => { |
| 116 | 114 | commonServices.getService(props.app.token, configUrls).then(({ data: configReturn }) => { |
| 117 | 115 | if (configReturn.code === 1) { |
| 118 | 116 | const formData = configReturn.dataset.rows[0].formData; |
| 119 | - setState(pre => ({ ...pre, formData, masterConfig: formData[0], processConfig: ProcessData })); | |
| 117 | + // 需要查询到processConfig和materialsConfig | |
| 118 | + setState(pre => ({ ...pre, formData, masterConfig: formData[0], processConfig: {} })); | |
| 120 | 119 | } |
| 121 | 120 | }); |
| 122 | 121 | }, []); |
| ... | ... | @@ -167,7 +166,7 @@ const QuickQuoteEvent = props => { |
| 167 | 166 | }; |
| 168 | 167 | |
| 169 | 168 | if (name === "master") { |
| 170 | - const masterDataNew = { ...masterData, ...changeValue }; | |
| 169 | + let masterDataNew = { ...masterData, ...changeValue }; | |
| 171 | 170 | masterDataNew.handleType = masterDataNew.handleType || "update"; |
| 172 | 171 | masterDataNew.sId = masterDataNew.sId || commonUtils.createSid(); |
| 173 | 172 | if (sFieldName === "dProductQty") { |
| ... | ... | @@ -176,6 +175,9 @@ const QuickQuoteEvent = props => { |
| 176 | 175 | dProductQty: changeValue.dProductQty, |
| 177 | 176 | })); |
| 178 | 177 | } |
| 178 | + if (sFieldName === "sCustomerName") { | |
| 179 | + masterDataNew = { ...masterDataNew, sCustomerId: changeValue.sId }; | |
| 180 | + } | |
| 179 | 181 | setState(pre => ({ ...pre, masterData: masterDataNew, ...extraState })); |
| 180 | 182 | } else if (name.includes("slave")) { |
| 181 | 183 | const boxModel = name.replace("slaveUp", "").replace("slaveDown", ""); |
| ... | ... | @@ -297,8 +299,6 @@ const QuickQuoteEvent = props => { |
| 297 | 299 | dMachineLength: slaveData[saveIndex].dWlcd, |
| 298 | 300 | }; |
| 299 | 301 | } |
| 300 | - console.log("dropDownData", slaveData); | |
| 301 | - | |
| 302 | 302 | setState(pre => ({ ...pre, slaveData, ...extraState })); |
| 303 | 303 | } else if (name === "finished") { |
| 304 | 304 | const { productProcessInfo = [] } = masterData; |
| ... | ... | @@ -448,7 +448,6 @@ const QuickQuoteEvent = props => { |
| 448 | 448 | |
| 449 | 449 | const checkResult = Object.keys(mustFieldsMap).find(item => masterData[item] === undefined); |
| 450 | 450 | if (checkResult) { |
| 451 | - // message.error(mustFieldsMap[checkResult]); | |
| 452 | 451 | Toast.show({ |
| 453 | 452 | icon: "fail", |
| 454 | 453 | content: mustFieldsMap[checkResult], |
| ... | ... | @@ -523,6 +522,7 @@ const QuickQuoteEvent = props => { |
| 523 | 522 | iPositiveColor: Number(item.sColor), |
| 524 | 523 | sPartsName: item.sBoxModel, |
| 525 | 524 | materialsInfo: item.materialsInfo?.filter(x => commonUtils.isNotEmptyObject(x)), |
| 525 | + iPrintModePo: Number(item.value), | |
| 526 | 526 | processInfo: |
| 527 | 527 | item.sBackProcessData?.map(item => ({ |
| 528 | 528 | ...item, |
| ... | ... | @@ -536,14 +536,13 @@ const QuickQuoteEvent = props => { |
| 536 | 536 | delete paramMap.sPartsStyle; |
| 537 | 537 | } |
| 538 | 538 | // 先用好的数据模拟后面在调整 |
| 539 | - const newParamMap = JsonData; | |
| 539 | + // const newParamMap = JsonData; | |
| 540 | 540 | const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; |
| 541 | - const dataReturn = (await commonServices.postValueService(token, newParamMap, url)).data; | |
| 541 | + const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; | |
| 542 | 542 | |
| 543 | 543 | if (dataReturn.code === 1) { |
| 544 | - const { app, sModelsId } = props; | |
| 545 | - const { slaveConfig, masterData: masterData1, materialsConfig, processConfig } = state; | |
| 546 | - console.log("🚀 ~ addState.handleCalcPrice= ~ state:", materialsConfig,slaveConfig) | |
| 544 | + const { app, sModelsId, materialsConfig } = props; | |
| 545 | + const { slaveConfig, masterData: masterData1, processConfig } = state; | |
| 547 | 546 | const { productClassify, partsNewInfo = [], productProcessInfo, partsInfo: partsOldInfo } = dataReturn.dataset.rows[0]; |
| 548 | 547 | |
| 549 | 548 | const slaveData = []; |
| ... | ... | @@ -593,7 +592,10 @@ const QuickQuoteEvent = props => { |
| 593 | 592 | partsOldInfo.forEach(item => { |
| 594 | 593 | if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { |
| 595 | 594 | errorFlag = true; |
| 596 | - props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); | |
| 595 | + // props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); | |
| 596 | + Toast.show({ | |
| 597 | + content: `${item.sPartsName} ${item.errorFlag}`, | |
| 598 | + }); | |
| 597 | 599 | } |
| 598 | 600 | }); |
| 599 | 601 | } |
| ... | ... | @@ -635,9 +637,7 @@ const QuickQuoteEvent = props => { |
| 635 | 637 | const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName"); |
| 636 | 638 | if (iIndex > -1) { |
| 637 | 639 | const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", processConfig.gdsconfigformslave[iIndex]); |
| 638 | - if (sqlDropDownData) { | |
| 639 | - dropDownDataProcessName = sqlDropDownData.dropDownData; | |
| 640 | - } | |
| 640 | + dropDownDataProcessName = sqlDropDownData.dropDownData; | |
| 641 | 641 | processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; |
| 642 | 642 | } |
| 643 | 643 | } |
| ... | ... | @@ -860,9 +860,7 @@ const QuickQuoteEvent = props => { |
| 860 | 860 | Loading: false, |
| 861 | 861 | // quickQuoteModel: false, |
| 862 | 862 | }; |
| 863 | - | |
| 864 | 863 | delete newState.masterData.sQuoConfig; |
| 865 | - | |
| 866 | 864 | const result = await props.handleCalculation( |
| 867 | 865 | false, |
| 868 | 866 | { ...props, ...newState, manyqtysConfig: state.manyConfig, manyqtysData: state.manyData }, |
| ... | ... | @@ -879,7 +877,6 @@ const QuickQuoteEvent = props => { |
| 879 | 877 | ...item, |
| 880 | 878 | sParentId: newState.masterData.sId, |
| 881 | 879 | })); |
| 882 | - | |
| 883 | 880 | setState(pre => { |
| 884 | 881 | const preNew = { ...pre, manyData: result.manyqtysData, calcPriceLoading: false, calcPriceFinished: true }; |
| 885 | 882 | const stateNew = { ...newState, ...result }; |
| ... | ... | @@ -932,9 +929,174 @@ const QuickQuoteEvent = props => { |
| 932 | 929 | masterConfig: masterConfig && masterConfig.length ? masterConfig[0] : {}, |
| 933 | 930 | }; |
| 934 | 931 | }; |
| 935 | - | |
| 932 | +const handleMaterialsChange = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => { | |
| 933 | + const { sComputeId, sConversionComputeId, sReConversionComputeId } = tableDataRow; | |
| 934 | + if ( | |
| 935 | + sFieldName === "sMaterialsNo" || | |
| 936 | + sFieldName === "sMaterialsName" || | |
| 937 | + sFieldName === "dAuxiliaryQty" || | |
| 938 | + sFieldName === "dReelAuxiliaryQty" || | |
| 939 | + sFieldName === "dConversionQty" || | |
| 940 | + sFieldName === "sMaterialsStyle" || | |
| 941 | + sFieldName === "dProductQty" | |
| 942 | + ) { | |
| 943 | + if (sFieldName === "dReelAuxiliaryQty") { | |
| 944 | + if (tableDataRow.sMaterialsUnit === "吨" && tableDataRow.bReel && tableDataRow.dGramWeight > 0) { | |
| 945 | + tableDataRow = commonBusiness.getMaterialsQty( | |
| 946 | + app, | |
| 947 | + { ...tableDataRow, sMaterialsStyle: tableDataRow.sReelMaterialsStyle }, | |
| 948 | + "dReelAuxiliaryQty", | |
| 949 | + "dMaterialsQty" | |
| 950 | + ); | |
| 951 | + tableDataRow.dAuxiliaryQty = tableDataRow.dMaterialsQty; | |
| 952 | + tableDataRow.sMaterialsStyle = | |
| 953 | + tableDataRow.sMaterialsStyle !== undefined && tableDataRow.sMaterialsStyle.split("*").length > 1 | |
| 954 | + ? tableDataRow.sMaterialsStyle.split("*")[0] | |
| 955 | + : tableDataRow.sMaterialsStyle; | |
| 956 | + tableDataRow.sAuxiliaryUnit = tableDataRow.sMaterialsUnit; | |
| 957 | + } else if (tableDataRow.sMaterialsUnit.toUpper() === "M2" && tableDataRow.bReel) { | |
| 958 | + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dReelAuxiliaryQty", "dMaterialsQty"); | |
| 959 | + tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; | |
| 960 | + } else { | |
| 961 | + tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; | |
| 962 | + } | |
| 963 | + } | |
| 964 | + if (commonUtils.isEmpty(sComputeId) && sFieldName !== "dConversionQty") { | |
| 965 | + if (sFieldName === "dProductQty") { | |
| 966 | + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dProductQty", "dMaterialsQty"); | |
| 967 | + } else { | |
| 968 | + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dAuxiliaryQty", "dMaterialsQty"); | |
| 969 | + } | |
| 970 | + } else if (!commonUtils.isEmpty(sComputeId)) { | |
| 971 | + tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({ | |
| 972 | + token, | |
| 973 | + sModelsId, | |
| 974 | + masterData, | |
| 975 | + tableDataRow, | |
| 976 | + sComputeId, | |
| 977 | + }); | |
| 978 | + } | |
| 979 | + if (sFieldName !== "dConversionQty" && !commonUtils.isEmpty(sConversionComputeId)) { | |
| 980 | + tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ | |
| 981 | + token, | |
| 982 | + sModelsId, | |
| 983 | + masterData, | |
| 984 | + tableDataRow, | |
| 985 | + sComputeId: sConversionComputeId, | |
| 986 | + }); | |
| 987 | + } | |
| 988 | + } else if (sFieldName === "dMaterialsQty") { | |
| 989 | + const { sReComputeId } = tableDataRow; | |
| 990 | + if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) { | |
| 991 | + tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, "dAuxiliaryQty"); | |
| 992 | + } else if (tableDataRow.bInverse) { | |
| 993 | + tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({ | |
| 994 | + token, | |
| 995 | + sModelsId, | |
| 996 | + masterData, | |
| 997 | + tableDataRow, | |
| 998 | + sComputeId: sReComputeId, | |
| 999 | + }); | |
| 1000 | + if (commonUtils.isNotEmptyArr(tableDataRow.dAuxiliaryQty) && tableDataRow.dAuxiliaryQty !== 0) { | |
| 1001 | + tableDataRow.dProductQty = tableDataRow.dAuxiliaryQty; | |
| 1002 | + } | |
| 1003 | + } | |
| 1004 | + if (!commonUtils.isEmpty(sReConversionComputeId)) { | |
| 1005 | + tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ | |
| 1006 | + token, | |
| 1007 | + sModelsId, | |
| 1008 | + masterData, | |
| 1009 | + tableDataRow, | |
| 1010 | + sComputeId: sReConversionComputeId, | |
| 1011 | + }); | |
| 1012 | + } | |
| 1013 | + } else if (sFieldName === "dAuxiliaryLossQty") { | |
| 1014 | + if (commonUtils.isEmpty(sComputeId)) { | |
| 1015 | + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, sFieldName, "dLossQty"); | |
| 1016 | + } else { | |
| 1017 | + tableDataRow.dLossQty = await commonBusiness.getFormulaValue({ | |
| 1018 | + token, | |
| 1019 | + sModelsId, | |
| 1020 | + masterData, | |
| 1021 | + tableDataRow, | |
| 1022 | + sComputeId, | |
| 1023 | + }); | |
| 1024 | + } | |
| 1025 | + if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { | |
| 1026 | + tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; | |
| 1027 | + tableDataRow.dMaterialsQty = commonUtils.convertFixNum(tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty, 6); | |
| 1028 | + } | |
| 1029 | + } else if (sFieldName === "dLossQty") { | |
| 1030 | + const { sReComputeId } = tableDataRow; | |
| 1031 | + if (commonUtils.isEmpty(sReComputeId)) { | |
| 1032 | + tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, "dAuxiliaryLossQty"); | |
| 1033 | + } else { | |
| 1034 | + tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({ | |
| 1035 | + token, | |
| 1036 | + sModelsId, | |
| 1037 | + masterData, | |
| 1038 | + tableDataRow, | |
| 1039 | + sComputeId: sReComputeId, | |
| 1040 | + }); | |
| 1041 | + } | |
| 1042 | + if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { | |
| 1043 | + tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; | |
| 1044 | + tableDataRow.dMaterialsQty = tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty; | |
| 1045 | + } | |
| 1046 | + } else if (sFieldName === "sProcessId" || sFieldName === "sProcessNo" || sFieldName === "sProcessName") { | |
| 1047 | + const sProcessId = changeValue.sProcessId; | |
| 1048 | + const url = `${commonConfig.server_host}process/outsideprocess?sModelsId=${sModelsId}&sProcessId=${sProcessId}`; | |
| 1049 | + const dataReturn = (await commonServices.getService(token, url)).data; | |
| 1050 | + if (dataReturn.code === 1) { | |
| 1051 | + if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) { | |
| 1052 | + tableDataRow.dMaterialsPrice = dataReturn.dataset.rows[0].dMaterialsPrice; | |
| 1053 | + } | |
| 1054 | + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, "dMaterialsPrice", masterData, tableDataRow); | |
| 1055 | + } | |
| 1056 | + } | |
| 1057 | + return tableDataRow; | |
| 1058 | +}; | |
| 1059 | +const sortData = (tableData, processData) => { | |
| 1060 | + processData.sort((g1, g2) => { | |
| 1061 | + const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId); | |
| 1062 | + let sPartOrder1 = `0000${iIndex1}`; | |
| 1063 | + sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3); | |
| 1064 | + let sOrder1 = `000${g1.iOrder}`; | |
| 1065 | + sOrder1 = sOrder1.substring(sOrder1.length - 3); | |
| 1066 | + | |
| 1067 | + const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId); | |
| 1068 | + let sPartOrder2 = `0000${iIndex2}`; | |
| 1069 | + sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3); | |
| 1070 | + let sOrder2 = `000${g2.iOrder}`; | |
| 1071 | + sOrder2 = sOrder2.substring(sOrder2.length - 3); | |
| 1072 | + return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10); | |
| 1073 | + }); | |
| 1074 | + return processData; | |
| 1075 | +}; | |
| 936 | 1076 | const QuotationAllprogressDetail = baseProps => { |
| 937 | - const { location, quotationData, app } = baseProps; | |
| 1077 | + const { location, quotationData, app, sModelsId } = baseProps; | |
| 1078 | + const getSqlDropDownDatas = async (formId, name, showConfig, record, sKeyUpFilterName, pageNum) => { | |
| 1079 | + const url = `${commonConfig.server_host}business/getSelectLimit/${showConfig.sId}?sModelsId=${sModelsId}`; | |
| 1080 | + const body = { | |
| 1081 | + sSqlCondition: { | |
| 1082 | + sSqlCondition: "", | |
| 1083 | + }, | |
| 1084 | + sKeyUpFilterName: "", | |
| 1085 | + pageNum: 1, | |
| 1086 | + pageSize: 20, | |
| 1087 | + }; | |
| 1088 | + const retrunData = await commonServices.postValueService(propss.token, body, url); | |
| 1089 | + if (retrunData.data.code === 1) { | |
| 1090 | + /* 获取数据集 */ | |
| 1091 | + const { rows, totalPageCount, currentPageNo, totalCount } = retrunData.data.dataset; | |
| 1092 | + return { | |
| 1093 | + dropDownData: rows, | |
| 1094 | + totalPageCount, | |
| 1095 | + currentPageNo, | |
| 1096 | + totalCount, | |
| 1097 | + }; | |
| 1098 | + } | |
| 1099 | + }; | |
| 938 | 1100 | // 处理 formData |
| 939 | 1101 | let propss = { |
| 940 | 1102 | ...baseProps, |
| ... | ... | @@ -945,25 +1107,16 @@ const QuotationAllprogressDetail = baseProps => { |
| 945 | 1107 | onSaveState: newState => { |
| 946 | 1108 | propss = { ...propss, ...newState }; |
| 947 | 1109 | }, |
| 948 | - getSqlDropDownData: async sId => { | |
| 949 | - const url = `${commonConfig.server_host}business/getSelectLimit/${sId}`; | |
| 950 | - const body = { | |
| 951 | - sSqlCondition: { | |
| 952 | - sSqlCondition: "", | |
| 953 | - }, | |
| 954 | - sKeyUpFilterName: "", | |
| 955 | - pageNum: 1, | |
| 956 | - pageSize: 20, | |
| 957 | - }; | |
| 958 | - const retrunData = await commonServices.postValueService(propss.token, body, url); | |
| 959 | - console.log("🚀 ~ retrunData:", retrunData); | |
| 960 | - }, | |
| 1110 | + getSqlDropDownData: getSqlDropDownDatas, | |
| 1111 | + onMaterialsChange: handleMaterialsChange, | |
| 1112 | + sortData, | |
| 961 | 1113 | }; |
| 962 | 1114 | |
| 963 | 1115 | const props = QuickQuoteEvent(propss); |
| 964 | 1116 | const { selectedNode } = props; |
| 965 | 1117 | const { showName, sUnit } = quotationData; |
| 966 | 1118 | const timeRef = useRef(0); |
| 1119 | + | |
| 967 | 1120 | useEffect(() => { |
| 968 | 1121 | const getDropDownData = async props => { |
| 969 | 1122 | props.setState(pre => { |
| ... | ... | @@ -1072,8 +1225,11 @@ const QuotationDetail = props => { |
| 1072 | 1225 | tableName: "master", |
| 1073 | 1226 | }; |
| 1074 | 1227 | return ( |
| 1075 | - <div> | |
| 1076 | - <div>{selectedNode?.showName || "Loading..."}</div> | |
| 1228 | + <div className={styles.quotationBody}> | |
| 1229 | + <div className={styles.boxTitle}> | |
| 1230 | + {selectedNode?.showName || "Loading..."} | |
| 1231 | + <EditFill color="#BFBFBF" style={{ marginLeft: "1rem" }} /> | |
| 1232 | + </div> | |
| 1077 | 1233 | <div> |
| 1078 | 1234 | <MasterComponent {...viewProps} /> |
| 1079 | 1235 | </div> |
| ... | ... | @@ -1132,11 +1288,11 @@ const MasterComponent = props => { |
| 1132 | 1288 | return ( |
| 1133 | 1289 | <div> |
| 1134 | 1290 | <div className={styles.customer}> |
| 1135 | - <div>{customerProps.formData?.showName}</div> | |
| 1291 | + <div>{customerProps.itemDetail?.showName}</div> | |
| 1136 | 1292 | <SelectInput {...customerProps} /> |
| 1137 | 1293 | </div> |
| 1138 | 1294 | <div className={styles.customer}> |
| 1139 | - <div>{productProps.formData?.showName}</div> | |
| 1295 | + <div>{productProps.itemDetail?.showName}</div> | |
| 1140 | 1296 | <SelectInput {...productProps} /> |
| 1141 | 1297 | </div> |
| 1142 | 1298 | <div className={styles.customer}> |
| ... | ... | @@ -1227,7 +1383,6 @@ const BoxComponent = props => { |
| 1227 | 1383 | const { state, boxModel } = props; |
| 1228 | 1384 | const { activeKey, slaveConfig, masterData, selectedNode, boxConfig, downAbleConfigs = [], slaveData } = state || {}; |
| 1229 | 1385 | const slaveRowData = slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === boxModel) || {}; |
| 1230 | - | |
| 1231 | 1386 | const { sModelsId } = props; |
| 1232 | 1387 | const [selectList, setSelectList] = useState([]); |
| 1233 | 1388 | const [boxTypeList, setBoxTypeList] = useState([]); |
| ... | ... | @@ -1577,7 +1732,6 @@ const BoxComponent = props => { |
| 1577 | 1732 | height: 150, |
| 1578 | 1733 | size: 9, |
| 1579 | 1734 | }; |
| 1580 | - console.log(showImgMProps, "showImgMProps"); | |
| 1581 | 1735 | |
| 1582 | 1736 | const handleChange = v => { |
| 1583 | 1737 | if (v.length) { |
| ... | ... | @@ -1695,6 +1849,7 @@ const BoxComponent = props => { |
| 1695 | 1849 | value={selected ? [selected] : []} |
| 1696 | 1850 | onChange={v => handleChange(v)} |
| 1697 | 1851 | /> |
| 1852 | + <div className={styles.line}></div> | |
| 1698 | 1853 | <div> |
| 1699 | 1854 | <Grid columns={4} gap={8}> |
| 1700 | 1855 | {upViewProps |
| ... | ... | @@ -1716,7 +1871,10 @@ const BoxComponent = props => { |
| 1716 | 1871 | {slaveRowData && slaveRowData.sPackPath ? <Image src={slaveRowData.sPackPath} width={125} height={125} fit="fill" /> : ""} |
| 1717 | 1872 | </div> |
| 1718 | 1873 | <div> |
| 1719 | - <div>印刷信息</div> | |
| 1874 | + <div className={styles.boxTitle}> | |
| 1875 | + 印刷信息 | |
| 1876 | + <EditFill color="#BFBFBF" style={{ marginLeft: "1rem" }} /> | |
| 1877 | + </div> | |
| 1720 | 1878 | <Grid columns={3} gap={8}> |
| 1721 | 1879 | {upViewProps12 |
| 1722 | 1880 | ? upViewProps12.viewConfigs.map(x => ( |
| ... | ... | @@ -1731,7 +1889,11 @@ const BoxComponent = props => { |
| 1731 | 1889 | </Grid> |
| 1732 | 1890 | </div> |
| 1733 | 1891 | <div> |
| 1734 | - <div>拼版信息</div> | |
| 1892 | + <div className={styles.boxTitle}> | |
| 1893 | + 拼版信息 | |
| 1894 | + <EditFill color="#BFBFBF" style={{ marginLeft: "1rem" }} /> | |
| 1895 | + </div> | |
| 1896 | + | |
| 1735 | 1897 | <Grid columns={3} gap={8}> |
| 1736 | 1898 | {upViewProps20 |
| 1737 | 1899 | ? upViewProps20.viewConfigs.map(x => ( |
| ... | ... | @@ -1757,7 +1919,11 @@ const BoxComponent = props => { |
| 1757 | 1919 | <MaterialsComponent {...props} slaveRowData={slaveRowData} boxModel={boxModel} /> |
| 1758 | 1920 | </div> |
| 1759 | 1921 | <div> |
| 1760 | - <div>后道参数</div> | |
| 1922 | + <div className={styles.boxTitle}> | |
| 1923 | + 后道参数 | |
| 1924 | + <EditFill color="#BFBFBF" style={{ marginLeft: "1rem" }} /> | |
| 1925 | + </div> | |
| 1926 | + | |
| 1761 | 1927 | {downViewProps.viewConfigs.map((x, i) => ( |
| 1762 | 1928 | <div> |
| 1763 | 1929 | <div className={styles.backBox}> |
| ... | ... | @@ -1777,7 +1943,11 @@ const BoxComponent = props => { |
| 1777 | 1943 | </div> |
| 1778 | 1944 | <div> |
| 1779 | 1945 | <div className={styles.projectBtn}> |
| 1780 | - 多数量报价 | |
| 1946 | + <div className={styles.boxTitle} style={{ marginTop: "2rem" }}> | |
| 1947 | + 多数量报价 | |
| 1948 | + <EditFill color="#BFBFBF" style={{ marginLeft: "1rem" }} /> | |
| 1949 | + </div> | |
| 1950 | + | |
| 1781 | 1951 | {/* <Button color="primary" fill="solid" loading={loading} onClick={props.onAdd}> |
| 1782 | 1952 | 新报价 |
| 1783 | 1953 | </Button> |
| ... | ... | @@ -1899,18 +2069,31 @@ const MaterialsComponent = props => { |
| 1899 | 2069 | tableName: `slaveUp${boxModel}`, |
| 1900 | 2070 | onDataChange: (name, sFieldName, changeValue, sId, dropDownData, isWait) => { |
| 1901 | 2071 | const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); |
| 2072 | + const { sMaterialsName, sMaterialsNo, sMaterialsId, sAuxiliaryUnit, sMaterialsUnit, dGramWeight, sMaterialsType, dWlkd, dWlcd } = changeValue; | |
| 2073 | + const masterials = { | |
| 2074 | + sMaterialsName, | |
| 2075 | + sMaterialsNo, | |
| 2076 | + sMaterialsId, | |
| 2077 | + sAuxiliaryUnit, | |
| 2078 | + sMaterialsUnit, | |
| 2079 | + dGramWeight, | |
| 2080 | + sMaterialsType, | |
| 2081 | + dWlkd, | |
| 2082 | + dWlcd, | |
| 2083 | + }; | |
| 1902 | 2084 | if (iIndex !== -1) { |
| 1903 | - slaveData[iIndex].materialsInfo = materialsInfo.map((item, i) => (i === index ? { ...item, ...changeValue } : item)); | |
| 2085 | + slaveData[iIndex].materialsInfo = materialsInfo.map((item, i) => (i === index ? { ...item, ...masterials } : item)); | |
| 1904 | 2086 | slaveRowData = slaveData[iIndex]; |
| 1905 | 2087 | } else { |
| 1906 | 2088 | const { selectedNode = {} } = state; |
| 1907 | 2089 | const { showName: sTreeNodeName } = selectedNode; |
| 2090 | + | |
| 1908 | 2091 | slaveData.push({ |
| 1909 | 2092 | sId: commonUtils.createSid(), |
| 1910 | 2093 | handleType: "add", |
| 1911 | 2094 | sBoxModel: boxModel, |
| 1912 | 2095 | sTreeNodeName, |
| 1913 | - materialsInfo: materialsInfo.map((item, i) => (i === index ? { ...item, ...changeValue } : item)), | |
| 2096 | + materialsInfo: materialsInfo.map((item, i) => (i === index ? { ...item, ...masterials } : item)), | |
| 1914 | 2097 | }); |
| 1915 | 2098 | } |
| 1916 | 2099 | props.setState(pre => ({ ...pre, slaveData, slaveRowData, ...extraState })); | ... | ... |
src/mobile/quotation/index.css
| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | display: flex; |
| 6 | 6 | align-items: center; |
| 7 | 7 | justify-content: center; |
| 8 | + overflow: hidden; | |
| 8 | 9 | } |
| 9 | 10 | .quotationBox .quotationNavigation { |
| 10 | 11 | width: 30%; |
| ... | ... | @@ -16,6 +17,7 @@ |
| 16 | 17 | .quotationBox .quotationContent { |
| 17 | 18 | width: 70%; |
| 18 | 19 | height: 100%; |
| 20 | + overflow-y: auto; | |
| 19 | 21 | } |
| 20 | 22 | .quotationBox .quotationContent .contentItem { |
| 21 | 23 | width: 92%; | ... | ... |
src/mobile/quotation/index.jsx
| ... | ... | @@ -118,7 +118,7 @@ const ContentComponent = props => { |
| 118 | 118 | <div className={styles.content}> |
| 119 | 119 | {contentList.map(item => ( |
| 120 | 120 | <div key={item.key} className={styles.contentItem} onClick={handleGridClick(item)}> |
| 121 | - <img src={Icon5} alt="" className={styles.contentItemImg} /> | |
| 121 | + <img src={'http://8.130.144.93:8088/xlyEntry/file/downloadLogo?sLogoName=logosPackPath%E9%A3%9E%E6%9C%BA%E7%9B%92&date=1747049329258'} alt="" className={styles.contentItemImg} /> | |
| 122 | 122 | <span className={styles.contentItemTitle}>{item.showName}</span> |
| 123 | 123 | </div> |
| 124 | 124 | ))} | ... | ... |
src/mobile/quotation/index.less
| ... | ... | @@ -6,6 +6,7 @@ |
| 6 | 6 | display: flex; |
| 7 | 7 | align-items: center; |
| 8 | 8 | justify-content: center; |
| 9 | + overflow: hidden; | |
| 9 | 10 | .quotationNavigation { |
| 10 | 11 | width: 30%; |
| 11 | 12 | height: 100%; |
| ... | ... | @@ -16,6 +17,7 @@ |
| 16 | 17 | .quotationContent { |
| 17 | 18 | width: 70%; |
| 18 | 19 | height: 100%; |
| 20 | + overflow-y: auto; | |
| 19 | 21 | .contentItem { |
| 20 | 22 | width: 92%; |
| 21 | 23 | height: 7.5rem; | ... | ... |
src/mobile/quotation/quotationDetail.css
| ... | ... | @@ -111,3 +111,18 @@ |
| 111 | 111 | align-items: center; |
| 112 | 112 | justify-content: space-between; |
| 113 | 113 | } |
| 114 | +.boxTitle { | |
| 115 | + font-size: 1.5rem; | |
| 116 | + font-weight: 700; | |
| 117 | + margin-bottom: 2rem; | |
| 118 | + margin-top: 1rem; | |
| 119 | +} | |
| 120 | +.quotationBody { | |
| 121 | + font-size: 1.25rem; | |
| 122 | +} | |
| 123 | +.quotationBody .line { | |
| 124 | + width: 100%; | |
| 125 | + height: 1px; | |
| 126 | + margin-top: 1rem; | |
| 127 | + background-color: #dededf; | |
| 128 | +} | ... | ... |
src/mobile/quotation/quotationDetail.less
| ... | ... | @@ -119,4 +119,19 @@ |
| 119 | 119 | display: flex; |
| 120 | 120 | align-items: center; |
| 121 | 121 | justify-content: space-between; |
| 122 | +} | |
| 123 | +.boxTitle{ | |
| 124 | + font-size: 1.5rem; | |
| 125 | + font-weight: 700; | |
| 126 | + margin-bottom: 2rem; | |
| 127 | + margin-top: 1rem; | |
| 128 | +} | |
| 129 | +.quotationBody{ | |
| 130 | + font-size: 1.25rem; | |
| 131 | + .line{ | |
| 132 | + width: 100%; | |
| 133 | + height: 1px; | |
| 134 | + margin-top: 1rem; | |
| 135 | + background-color: #dededf; | |
| 136 | + } | |
| 122 | 137 | } |
| 123 | 138 | \ No newline at end of file | ... | ... |