diff --git a/src/components/Common/BoxShowImgMaterial/indexNew.js b/src/components/Common/BoxShowImgMaterial/indexNew.js index 0096bd6..4117a4f 100644 --- a/src/components/Common/BoxShowImgMaterial/indexNew.js +++ b/src/components/Common/BoxShowImgMaterial/indexNew.js @@ -191,7 +191,6 @@ const BoxShowImgMaterial = props => { const isShow = isDPartsLength && slaveDataDetail && slaveDataDetail.dMachineLength && slaveDataDetail.dMaxWidth && slaveDataDetail.dMaxLength && isMax; - console.log(slaveDataDetail?.dMaxWidth,slaveDataDetail?.dMaxLength,slaveDataDetail?.dMachineLength,slaveDataDetail?.dMachineWidth,'dropDownData'); return ( <> diff --git a/src/mobile/components/SelectInput.jsx b/src/mobile/components/SelectInput.jsx index 76bfdec..1d1d942 100644 --- a/src/mobile/components/SelectInput.jsx +++ b/src/mobile/components/SelectInput.jsx @@ -22,7 +22,7 @@ const SelectInput = props => { if (!itemDetail) return; const viewRowNew = itemDetail.sName ? viewRow?.[itemDetail.sName] : ""; if (itemDetail.sDropDownType === "const") { - return + return; } if (tableName.includes("slaveDown")) { if (!viewRow.sBackProcessData) return; @@ -46,7 +46,7 @@ const SelectInput = props => { }; commonServices.postValueService(props.app.token, body, url).then(res => { if (res.data.code === 1) { - const list = res.data.dataset.rows?.map((item,i) => ({ + const list = res.data.dataset.rows?.map((item, i) => ({ label: item.sCustomerName || item.sName || item.sProcessName || item.sColorName || item.sMaterialsName, value: item.sId || item.sSlaveId, ...item, @@ -57,6 +57,11 @@ const SelectInput = props => { }); }; const handleConfirm = () => { + if (!values[0]) { + setVisible(false); + + return; + } const index = columns.findIndex(item => item.value === values[0]); const data = coplyColumns[index]; data[itemDetail.sName] = data[itemDetail.sName] ? data[itemDetail.sName] : data.label || data.sName || data.sProcessName || data.sColorName; diff --git a/src/mobile/quotation/detailNew.jsx b/src/mobile/quotation/detailNew.jsx index cdaa2ea..5745cb3 100644 --- a/src/mobile/quotation/detailNew.jsx +++ b/src/mobile/quotation/detailNew.jsx @@ -16,11 +16,9 @@ import CommonBase from "@/components/Common/CommonBase"; import { cloneDeep } from "lodash"; import moment from "moment"; const QuickQuoteEvent = props => { - const { location } = props; - const selectedNode = JSON.parse(location.state).quotationData; + const { location, selectedNode, sModelsId } = props; + // const selectedNode = JSON.parse(location.state).quotationData; const addState = {}; - const [masterConfig, setMasterConfig] = useState(null); - const { sModelsId } = props; addState.onGetFilterState = (state, bInit) => { const result = Object.keys(state).reduce((pre, cur) => { @@ -84,74 +82,24 @@ const QuickQuoteEvent = props => { const [state, setState] = useState(addState.onGetFilterState(sQuoConfig, true)); - const { formData = [] } = state; + const { formData = [], masterConfig } = state; const { bLinkFieledClick } = props; const [hideBackBtn, setHideBackBtn] = useState(false); const [enabled, setEnabled] = useState(props.enabled); - - useEffect(() => { - const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}`; - commonServices - .getService(props.token, configUrl) - .then(async ({ data: masterReturn }) => { - if (masterReturn.code === 1) { - const formData = masterReturn.dataset.rows[0].formData; - const masterConfig = formData.find(x => x.sTbName === "QuoQuotationmaster"); - const processConfig = formData.find(x => x.sTbName === "QuoQuotationprocess"); - const materialsConfig = formData.find(x => x.sTbName === "QuoQuotationmaterials"); - const slaveConfig = formData.find(x => x.sTbName === "QuoQuotationslave"); - const controlConfig = formData.find(x => x.sTbName === "QuoQuotationcontrol"); - let colorConfigGrdVisible; - const colorConfigTrue = formData.find(item => item.sTbName === "quoquotationparam"); - if (commonUtils.isNotEmptyObject(colorConfigTrue)) { - colorConfigGrdVisible = colorConfigTrue.bGrdVisible; - if (colorConfigGrdVisible) { - colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn); - } - } - const colorConfig = colorConfigGrdVisible ? colorConfigTrue : ""; - /* 合版信息表 */ - const packConfig = formData.find(item => item.sTbName === "quoquotationcontrolcombine"); - let checkConfig = {}; - let checkColumn = {}; - if (commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === "sysbillcheckresult"))) { - checkConfig = formData.find(item => item.bGrd && item.sTbName === "sysbillcheckresult"); - checkColumn = commonFunc.getHeaderConfig(checkConfig); - } - props.onSaveState(pre => ({ - ...pre, - formData, - masterConfig, - processConfig, - materialsConfig, - slaveConfig, - controlConfig, - colorConfig, - packConfig, - checkConfig, - })); - //setState(pre => ({ ...pre, selectedNode ,formData, masterConfig, processConfig, materialsConfig, slaveConfig})); - } - }) - .catch(error => {}); - setState(pre => ({ ...pre, selectedNode })); - }, []); - useEffect(() => { setHideBackBtn(!bLinkFieledClick); setEnabled(!bLinkFieledClick || props.enabled); }, [bLinkFieledClick, props.enabled]); useEffect(() => { // 获取 masterConfig - const { masterConfig, token } = props; const quickQuoteConfig = masterConfig?.gdsconfigformslave.find(item => item.sControlName === "BtnQuickQuote") || {}; - const { sActiveId = "172129113112117428019179600" } = quickQuoteConfig; + const { sActiveId } = quickQuoteConfig; const configUrls = `${commonConfig.server_host}business/getModelBysId/${sActiveId}?sModelsId=${sActiveId}`; commonServices.getService(props.app.token, configUrls).then(async ({ data: configReturn }) => { if (configReturn.code === 1) { const formData = configReturn.dataset.rows[0].formData; - setState(pre => ({ ...pre, formData, masterConfig: formData[0] })); + setState(pre => ({ ...pre, formData, selectedNode, masterConfig: formData[0] })); } }); }, []); @@ -326,16 +274,12 @@ const QuickQuoteEvent = props => { dMaxWidth: Number(selectedNode.sMachineStyle.split("*")[1]), }; } + if (sFieldName === "sPrint") { slaveData[saveIndex] = { ...slaveData[saveIndex], sProcessId: changeValue.sId, sPrintProcessId: changeValue.sId, - }; - } - if (sFieldName === "sPrint") { - slaveData[saveIndex] = { - ...slaveData[saveIndex], dMachineWidth: slaveData[saveIndex].dWlkd, dMachineLength: slaveData[saveIndex].dWlcd, }; @@ -343,7 +287,7 @@ const QuickQuoteEvent = props => { setState(pre => ({ ...pre, slaveData, ...extraState })); } else if (name === "finished") { const { productProcessInfo = [] } = masterData; - const dropDownDataSelected = dropDownData.find(item => item.sId === changeValue[sFieldName]); + const dropDownDataSelected = dropDownData.find(item => item.sId === changeValue.sId); dropDownDataSelected && (dropDownDataSelected[sFieldName] = dropDownDataSelected.sProcessName); const iIndex = productProcessInfo.findIndex(item => item.sProductClassifyId === dropDownData[0].sProductClassifyId); if (iIndex === -1) { @@ -394,6 +338,8 @@ const QuickQuoteEvent = props => { // 存草稿 const onSaveDraft = (nextState = state, nextProps = props) => { + console.log(nextProps,'stateNew'); + const { masterData = {} } = nextState; const { sProductName, sProductNo, sCustomerName, sCustomerId, sCustomerNo } = masterData; if (!sProductName || !sCustomerName) { @@ -403,7 +349,6 @@ const QuickQuoteEvent = props => { }); return; } - props.onSaveState( { ...addState.onGetAllDelData(), @@ -458,8 +403,10 @@ const QuickQuoteEvent = props => { }), loading: true, }, - () => { - props.onButtonClick("BtnDraft", { ...props }); + (newState) => { + console.log(newState,'newState'); + + props.onButtonClick("BtnDraft", { ...props,...newState }); } ); }; @@ -551,8 +498,6 @@ const QuickQuoteEvent = props => { }) .filter(item => commonUtils.isNotEmptyObject(item) && item.materialsInfo && item.materialsInfo.length) .map(item => { - // slaveData里的sMaterialRate sMaterialsStyle - return { ...Object.keys(item).reduce((pre, cur) => { if (typeof item[cur] !== "object") { @@ -929,8 +874,10 @@ const QuickQuoteEvent = props => { const preNew = { ...pre, manyData: result.manyqtysData, calcPriceLoading: false, calcPriceFinished: true }; const stateNew = { ...newState, ...result }; props.onSaveState(stateNew, () => { + // stateNew nextProps onSaveDraft(preNew, stateNew); }); + console.log("🚀 ~ addState.handleCalcPrice= ~ stateNew:", stateNew) return preNew; }); } else { @@ -974,745 +921,12 @@ const QuickQuoteEvent = props => { enabled, state, setState, - masterConfig: masterConfig && masterConfig.length ? masterConfig[0] : {}, - }; -}; -const handleMaterialsChange = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => { - const { sComputeId, sConversionComputeId, sReConversionComputeId } = tableDataRow; - if ( - sFieldName === "sMaterialsNo" || - sFieldName === "sMaterialsName" || - sFieldName === "dAuxiliaryQty" || - sFieldName === "dReelAuxiliaryQty" || - sFieldName === "dConversionQty" || - sFieldName === "sMaterialsStyle" || - sFieldName === "dProductQty" - ) { - if (sFieldName === "dReelAuxiliaryQty") { - if (tableDataRow.sMaterialsUnit === "吨" && tableDataRow.bReel && tableDataRow.dGramWeight > 0) { - tableDataRow = commonBusiness.getMaterialsQty( - app, - { ...tableDataRow, sMaterialsStyle: tableDataRow.sReelMaterialsStyle }, - "dReelAuxiliaryQty", - "dMaterialsQty" - ); - tableDataRow.dAuxiliaryQty = tableDataRow.dMaterialsQty; - tableDataRow.sMaterialsStyle = - tableDataRow.sMaterialsStyle !== undefined && tableDataRow.sMaterialsStyle.split("*").length > 1 - ? tableDataRow.sMaterialsStyle.split("*")[0] - : tableDataRow.sMaterialsStyle; - tableDataRow.sAuxiliaryUnit = tableDataRow.sMaterialsUnit; - } else if (tableDataRow.sMaterialsUnit.toUpper() === "M2" && tableDataRow.bReel) { - tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dReelAuxiliaryQty", "dMaterialsQty"); - tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; - } else { - tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; - } - } - if (commonUtils.isEmpty(sComputeId) && sFieldName !== "dConversionQty") { - if (sFieldName === "dProductQty") { - tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dProductQty", "dMaterialsQty"); - } else { - tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dAuxiliaryQty", "dMaterialsQty"); - } - } else if (!commonUtils.isEmpty(sComputeId)) { - tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({ - token, - sModelsId, - masterData, - tableDataRow, - sComputeId, - }); - } - if (sFieldName !== "dConversionQty" && !commonUtils.isEmpty(sConversionComputeId)) { - tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ - token, - sModelsId, - masterData, - tableDataRow, - sComputeId: sConversionComputeId, - }); - } - } else if (sFieldName === "dMaterialsQty") { - const { sReComputeId } = tableDataRow; - if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) { - tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, "dAuxiliaryQty"); - } else if (tableDataRow.bInverse) { - tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({ - token, - sModelsId, - masterData, - tableDataRow, - sComputeId: sReComputeId, - }); - if (commonUtils.isNotEmptyArr(tableDataRow.dAuxiliaryQty) && tableDataRow.dAuxiliaryQty !== 0) { - tableDataRow.dProductQty = tableDataRow.dAuxiliaryQty; - } - } - if (!commonUtils.isEmpty(sReConversionComputeId)) { - tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ - token, - sModelsId, - masterData, - tableDataRow, - sComputeId: sReConversionComputeId, - }); - } - } else if (sFieldName === "dAuxiliaryLossQty") { - if (commonUtils.isEmpty(sComputeId)) { - tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, sFieldName, "dLossQty"); - } else { - tableDataRow.dLossQty = await commonBusiness.getFormulaValue({ - token, - sModelsId, - masterData, - tableDataRow, - sComputeId, - }); - } - if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { - tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; - tableDataRow.dMaterialsQty = commonUtils.convertFixNum(tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty, 6); - } - } else if (sFieldName === "dLossQty") { - const { sReComputeId } = tableDataRow; - if (commonUtils.isEmpty(sReComputeId)) { - tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, "dAuxiliaryLossQty"); - } else { - tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({ - token, - sModelsId, - masterData, - tableDataRow, - sComputeId: sReComputeId, - }); - } - if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { - tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; - tableDataRow.dMaterialsQty = tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty; - } - } else if (sFieldName === "sProcessId" || sFieldName === "sProcessNo" || sFieldName === "sProcessName") { - const sProcessId = changeValue.sProcessId; - const url = `${commonConfig.server_host}process/outsideprocess?sModelsId=${sModelsId}&sProcessId=${sProcessId}`; - const dataReturn = (await commonServices.getService(token, url)).data; - if (dataReturn.code === 1) { - if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) { - tableDataRow.dMaterialsPrice = dataReturn.dataset.rows[0].dMaterialsPrice; - } - tableDataRow = commonBusiness.getCalculateAllMoney(app, models, "dMaterialsPrice", masterData, tableDataRow); - } - } - return tableDataRow; -}; -const sortData = (tableData, processData) => { - processData.sort((g1, g2) => { - const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId); - let sPartOrder1 = `0000${iIndex1}`; - sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3); - let sOrder1 = `000${g1.iOrder}`; - sOrder1 = sOrder1.substring(sOrder1.length - 3); - - const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId); - let sPartOrder2 = `0000${iIndex2}`; - sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3); - let sOrder2 = `000${g2.iOrder}`; - sOrder2 = sOrder2.substring(sOrder2.length - 3); - return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10); - }); - return processData; -}; -// 计算数量 -const handleCalculation = async (bSave, nextProps, isWait, props) => { - const dataUrl = `${commonConfig.server_host}business/addQuotationsheet?sModelsId=${nextProps.sModelsId}`; - const { - masterConfig, - slaveConfig, - slaveDelData, - controlConfig, - controlDelData, - colorConfig, - colorData, - colorDelData, - materialsConfig, - materialsDelData, - processConfig, - processDelData, - app, - manyqtysConfig, - manyqtysDelData, - packConfig, - packDelData, - manyDataCache = [], - dQuickQuoteProductQty, - } = nextProps; - let { slaveData, controlData, materialsData, processData, masterData, manyqtysData, packData } = nextProps; - const sMakePerson = masterData.sMakePerson; - const data = []; - data.push(commonBusiness.mergeData("master", `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true)); - data.push(commonBusiness.mergeData("slave", `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true)); - data.push(commonBusiness.mergeData("control", `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true)); - data.push(commonBusiness.mergeData("materials", `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true)); - data.push(commonBusiness.mergeData("process", `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true)); - if (commonUtils.isNotEmptyObject(manyqtysConfig)) { - data.push( - commonBusiness.mergeData( - "manyqtys", - `${manyqtysConfig.sTbName.toLowerCase()}_tmp`, - manyqtysData?.map(item => { - delete item.manyData; - return item; - }), - [], - true - ) - ); - } - - data.push(commonBusiness.mergeData("pack", `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true)); - const value = { data, sClientType: "1", sGuid: masterData.sId }; - - const cacheIndex = dQuickQuoteProductQty === undefined ? -1 : manyDataCache.findIndex(item => item.dManyQty === dQuickQuoteProductQty); - if (cacheIndex === -1) { - // message.warning("自动计算中,请稍后再试。"); - Toast.show({ - content: "自动计算中,请稍后再试。", - }); - } - const dataReturn = cacheIndex === -1 ? (await commonServices.postValueService(props.app.token, value, dataUrl)).data : manyDataCache[cacheIndex]; - if (dataReturn.code === 1) { - /* 成功 */ - const valueReturn = dataReturn.dataset.rows[0]; - const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`]; - if (commonUtils.isNotEmptyArr(masterDataArr)) { - masterData = masterDataArr[0]; - } - if (cacheIndex !== -1) { - // masterData.handleType = nextProps.masterData.handleType || "update"; - masterData.sQuoConfig = nextProps.masterData.sQuoConfig; - masterData.sFormId = nextProps.masterData.sFormId; - masterData.sBillNo = nextProps.masterData.sBillNo; - } - masterData.handleType = masterData.sBillNo ? "update" : "add"; - if (masterData.handleType === "update" && !commonUtils.isEmpty(sMakePerson)) { - masterData.sMakePerson = sMakePerson; - } - slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`].map(item => { - item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; - return item; - }); - controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`].map(item => { - item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; - return item; - }); - materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`].map(item => { - item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; - return item; - }); - processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`].map(item => { - item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; - return item; - }); - processData = props.sortData(controlData, processData); - const addState = {}; - if (commonUtils.isNotEmptyObject(manyqtysConfig)) { - manyqtysData = valueReturn[`${manyqtysConfig.sTbName.toLowerCase()}_tmp`]?.map((item, index) => { - return { - ...item, - sId: manyqtysData[index] ? manyqtysData[index].sId : item.sId, - handleType: dQuickQuoteProductQty ? "add" : item.handleType, - }; - }); - if (cacheIndex === -1 && manyqtysData?.some(item => item.manyData)) { - addState.manyDataCache = manyqtysData.map((item, index) => { - let result = {}; - if (index === 0) { - result = Object.keys(valueReturn).reduce((pre, cur) => { - if (cur !== `${manyqtysConfig.sTbName.toLowerCase()}_tmp`) { - pre[cur] = valueReturn[cur]; - } - return pre; - }, {}); - } else { - result = commonUtils.convertStrToObj(item.manyData); - } - - result[`${manyqtysConfig.sTbName.toLowerCase()}_tmp`] = cloneDeep(manyqtysData).map(item => { - delete item.manyData; - return item; - }); - - const { sId, sBillNo, sFormId } = masterData; - const row = Object.keys(result).reduce((pre, cur) => { - if (cur === `${masterConfig.sTbName.toLowerCase()}_tmp`) { - pre[cur] = result[cur].map(item => ({ - ...item, - sId, - sBillNo: sBillNo || item.sBillNo, - sFormId, - })); - } else if (cur.includes("_tmp")) { - pre[cur] = result[cur].map(item => ({ - ...item, - sParentId: sId, - handleType: "add", - })); - } else { - pre[cur] = result[cur]; - } - return pre; - }, {}); - - return { - code: 1, - dManyQty: item.dManyQty, - dataset: { - rows: [row], - }, - }; - }); - } - } - - packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`]; - /* 计算成功后自动调用保存 */ - if (bSave) { - const data = []; - data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData])); - data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData)); - data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData)); - data.push(commonBusiness.mergeData("materials", materialsConfig.sTbName, materialsData, materialsDelData)); - data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData)); - - if (commonUtils.isNotEmptyObject(manyqtysConfig)) { - data.push(commonBusiness.mergeData("manyqtys", manyqtysConfig.sTbName, manyqtysData, manyqtysDelData)); - } - - data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData)); - data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData)); - props.onSaveData({ - data, - sClientType: "1", - loading: false, - sSysLogSrcId: masterData.sId, - },props); - props.onSaveState({ - slaveData, - packData, - controlData, - materialsData, - processData, - masterData, - manyqtysData, - ...addState, - }); - } else { - if (isWait) { - return { - slaveData, - controlData, - materialsData, - processData, - masterData, - manyqtysData, - loading: false, - packData, - ...addState, - }; - } else { - props.onSaveState({ - slaveData, - controlData, - materialsData, - processData, - masterData, - manyqtysData, - loading: false, - packData, - ...addState, - }); - } - // message.success(commonFunc.getConfigShowName(masterConfig, "BtnCalculation") + commonFunc.showMessage(app.commonConst, "handleSuccess")); - } - } else { - /* 失败 */ - props.onSaveState({ - loading: false, - }); - // this.props.getServiceError(dataReturn); - } -}; -/** 按钮操作事件 */ -const handleButtonClick = async (name, props) => { - console.log("🚀 ~ handleButtonClick ~ props:", props) - if (name === "BtnDraft") { - const { - masterConfig, - masterData, - slaveConfig, - slaveData, - slaveDelData, - controlConfig, - controlData, // 需要 - controlDelData, - materialsConfig, - materialsData, - materialsDelData, - processConfig, - processData, - processDelData, - colorConfig, - colorData, - colorDelData, - packConfig, - packData, // 需要 - packDelData, - } = props; - const data = []; - slaveConfig.gdsconfigformslave.forEach(itemConfig => { - slaveData - .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") - .forEach(itemData => { - itemData.NoVerify = "NoVerify"; - const firstDataIndex = itemConfig.sName.substring(0, 1); - if (commonUtils.isEmpty(itemData[itemConfig.sName])) { - itemData[itemConfig.sName] = - firstDataIndex === "s" - ? "" - : firstDataIndex === "d" || firstDataIndex === "i" - ? 0 - : firstDataIndex === "b" - ? false - : firstDataIndex === "t" - ? moment(new Date()).format(props.app.dateFormat) - : undefined; - } - }); - }); - controlConfig.gdsconfigformslave.forEach(itemConfig => { - controlData - .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") - .forEach(itemData => { - itemData.NoVerify = "NoVerify"; - const firstDataIndex = itemConfig.sName.substring(0, 1); - if (commonUtils.isEmpty(itemData[itemConfig.sName])) { - itemData[itemConfig.sName] = - firstDataIndex === "s" - ? "" - : firstDataIndex === "d" || firstDataIndex === "i" - ? 0 - : firstDataIndex === "b" - ? false - : firstDataIndex === "t" - ? moment(new Date()).format(props.app.dateFormat) - : undefined; - } - }); - }); - - materialsConfig.gdsconfigformslave.forEach(itemConfig => { - materialsData - .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") - .forEach(itemData => { - itemData.NoVerify = "NoVerify"; - const firstDataIndex = itemConfig.sName.substring(0, 1); - if (commonUtils.isEmpty(itemData[itemConfig.sName])) { - itemData[itemConfig.sName] = - firstDataIndex === "s" - ? "" - : firstDataIndex === "d" || firstDataIndex === "i" - ? 0 - : firstDataIndex === "b" - ? false - : firstDataIndex === "t" - ? moment(new Date()).format(props.app.dateFormat) - : undefined; - } - }); - }); - - processConfig.gdsconfigformslave.forEach(itemConfig => { - processData - .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") - .forEach(itemData => { - itemData.NoVerify = "NoVerify"; - const firstDataIndex = itemConfig.sName.substring(0, 1); - if (commonUtils.isEmpty(itemData[itemConfig.sName])) { - itemData[itemConfig.sName] = - firstDataIndex === "s" - ? "" - : firstDataIndex === "d" || firstDataIndex === "i" - ? 0 - : firstDataIndex === "b" - ? false - : firstDataIndex === "t" - ? moment(new Date()).format(props.app.dateFormat) - : undefined; - } - }); - }); - - if (commonUtils.isNotEmptyObject(packConfig)) { - packConfig.gdsconfigformslave.forEach(itemConfig => { - packData - .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") - .forEach(itemData => { - itemData.NoVerify = "NoVerify"; - const firstDataIndex = itemConfig.sName.substring(0, 1); - if (commonUtils.isEmpty(itemData[itemConfig.sName])) { - itemData[itemConfig.sName] = - firstDataIndex === "s" - ? "" - : firstDataIndex === "d" || firstDataIndex === "i" - ? 0 - : firstDataIndex === "b" - ? false - : firstDataIndex === "t" - ? moment(new Date()).format(props.app.dateFormat) - : undefined; - } - }); - }); - } - - if (commonUtils.isNotEmptyObject(colorConfig)) { - colorConfig.gdsconfigformslave.forEach(itemConfig => { - colorData - .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") - .forEach(itemData => { - itemData.NoVerify = "NoVerify"; - const firstDataIndex = itemConfig.sName.substring(0, 1); - if (commonUtils.isEmpty(itemData[itemConfig.sName])) { - itemData[itemConfig.sName] = - firstDataIndex === "s" - ? "" - : firstDataIndex === "d" || firstDataIndex === "i" - ? 0 - : firstDataIndex === "b" - ? false - : firstDataIndex === "t" - ? moment(new Date()).format(props.app.dateFormat) - : undefined; - } - }); - }); - } - - data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData])); - data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData)); - data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData)); - data.push(commonBusiness.mergeData("materials", materialsConfig.sTbName, materialsData, materialsDelData)); - data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData)); - if (commonUtils.isNotEmptyObject(colorConfig)) { - data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData)); - } - if (commonUtils.isNotEmptyObject(packConfig)) { - data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData)); - } - // 核价后保存 - props.onSaveData({ - data, - sClientType: "1", - loading: false, - sSysLogSrcId: masterData.sId, - bIsUnCcg: false, - },props); - } -}; -const handleSaveData = async (params, props) => { - const { - token, - sModelsId, - currentId, - masterData, - masterConfig, - slaveConfig, - checkConfig, - billnosetting, - app, - sModelsType, - controlConfig, - materialsConfig, - processConfig, - colorConfig, - packConfig, - orderDetailConfig, - dispatch, - slaveChildConfig, - } = props; - const { userinfo } = app; - const { copyTo } = app.currentPane; - const onSendSocketMessage = props.handleSendSocketMessage; - const BtnSave = commonFunc.showMessage(app.commonConst, "BtnSave"); /* 保存 */ - params.optName = BtnSave; - const returnData = await commonBusiness.saveData({ token, value: params, sModelsId }); - if (commonUtils.isNotEmptyObject(returnData)) { - if (commonUtils.isNotEmptyObject(copyTo)) { - const { slaveData } = copyTo; - const sIdArray = []; - slaveData.forEach(item => { - const redisKey = item.sSlaveId; - sIdArray.push(redisKey); - }); - const sId = sIdArray.toString(); - onSendSocketMessage("copyfinish", "noAction", sId, userinfo.sId, null, null); - } - onSendSocketMessage("release", "noAction", currentId, userinfo.sId, null, null); - props.onSaveState({ - enabled: false, - currentId: masterData.sId, - }); - // 保存后更新panes,currentPane的checkedId,防止浏览器刷新时重新又变成新增。 - const iPaneIndex = app.panes.findIndex(item => item.key === app.currentPane.key); - app.panes[iPaneIndex].checkedId = masterData.sId; - app.currentPane.checkedId = masterData.sId; - // dispatch({ type: "app/savePanesAndCurrentPane", payload: { panes: app.panes, currentPane: app.currentPane } }); - - // if (billnosetting.bAutoCheck) { - // await this.handleAudit(1); - // } else { - // await this.handleGetData(masterConfig, slaveConfig, checkConfig); - // if ((sModelsType.includes("sales/salesOrder") || sModelsType.includes("manufacture/workOrder")) && !commonUtils.isEmpty(controlConfig)) { - // await this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig); - // } else if (sModelsType === "purchase/purchaseOrder") { - // await this.handleGetOneMemoData("orderDetail", orderDetailConfig); - // } else if (sModelsType === "sales/salesSgoods" && !commonUtils.isEmpty(slaveChildConfig)) { - // await this.handleGetOneMemoData("slaveChild", slaveChildConfig); - // } - // if (this.props.app.currentPane.refresh !== undefined) { - // this.props.app.currentPane.refresh(); - // } - // } - props.onSaveState({ - loading: false, - }); - return true; - } else { - props.onSaveState({ - loading: false, - }); - return false; - } -}; -const getProps = baseProps => { - const { location, quotationData, app, sModelsId } = baseProps; - const { token } = app; - const [state, setState] = useState(null); - const [isInitialized, setIsInitialized] = useState(false); - const getSqlDropDownData = async (formId, name, showConfig, record, sKeyUpFilterName, pageNum) => { - const url = `${commonConfig.server_host}business/getSelectLimit/${showConfig.sId}?sModelsId=${sModelsId}`; - const body = { - sSqlCondition: { - sSqlCondition: "", - }, - sKeyUpFilterName: "", - pageNum: 1, - pageSize: 20, - }; - const retrunData = await commonServices.postValueService(token, body, url); - if (retrunData.data.code === 1) { - /* 获取数据集 */ - const { rows, totalPageCount, currentPageNo, totalCount } = retrunData.data.dataset; - return { - dropDownData: rows, - totalPageCount, - currentPageNo, - totalCount, - }; - } - }; - // 定义 onSaveState 函数 - const onSaveState = (updateFunction, callback) => { - setState(prevState => { - let newState = prevState; // 初始状态下不修改状态 - // 确保 updateFunction 是一个函数 - if (typeof updateFunction === "function") { - newState = updateFunction(prevState); - } - - // 执行回调函数(如果存在) - if (typeof callback === "function") { - callback(); - } - - return newState; // 返回新的状态,可能未修改 - }); - }; - const { slaveData = [], packData = [], colorData = [], controlData = [], processData = [], materialsData = [] } = baseProps; - - // 在组件挂载时初始化数据 - useEffect(() => { - if (!isInitialized) { - const slaveRow = { - handleType: "add", - sId: commonUtils.createSid(), - key: commonUtils.createSid(), - sParentId: commonUtils.createSid(), - sNodeId: commonUtils.createSid(), - bDefault: false, - iOrder: 1, - }; - slaveData.push(slaveRow); - - const packRow = { - sId: commonUtils.createSid(), - handleType: "add", - sSlaveId: commonUtils.createSid(), - iOrder: 1, - sParentId: commonUtils.createSid(), - sControlId: commonUtils.createSid(), - dProductQty: 0, - dCombineQty: 1, - }; - packData.push(packRow); - const controlRow = { - dSumPQty: 2, - iPrintMode: 0, - iPositiveColor: 4, - iOppositeColor: 4, - sSlaveId: " ", - iPrintModePo: 2, - handleType: "add", - sId: commonUtils.createSid(), - sParentId: commonUtils.createSid(), - key: commonUtils.createSid(), - bDefault: false, - iOrder: 1, - sCombinedMemo: "合版信息", - sAllId: commonUtils.createSid(), - dPartsQty: 0, - }; - controlData.push(controlRow); - setState(prevState => ({ - ...prevState, - slaveData, - packData, - controlData, - colorData, - processData, - materialsData, - })); - - setIsInitialized(true); - } - }, [isInitialized]); - return { - ...baseProps, - selectedNode: quotationData, - manyDataCache: [], - token: baseProps.app.token, - getSqlDropDownData, - onMaterialsChange: handleMaterialsChange, - sortData, - handleCalculation, - onSaveState, - onSaveData: handleSaveData, - onButtonClick: handleButtonClick, - ...state, }; }; +// 入口 const QuotationAllprogressDetail = baseProps => { - const masterProps = getProps(baseProps); - const props = QuickQuoteEvent(masterProps); + // const masterProps = getProps(baseProps); + const props = QuickQuoteEvent(baseProps); const { selectedNode, location, quotationData, app, sModelsId } = props; const { showName, sUnit } = quotationData; const timeRef = useRef(0); @@ -2431,25 +1645,25 @@ const BoxComponent = props => { ...props.onGetAllDelData(), manyDataCache: [], }; - const data = { - masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, - ...addState, - }; + // const data = { + // masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, + // ...addState, + // }; + // props.onSaveState( + // pre => ({ ...pre, ...data }), + // (newState) => { + // props.handleCalcPrice(); + // } + // ); props.onSaveState( - pre => ({ ...pre, ...data }), + { + masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, + ...addState, + }, () => { props.handleCalcPrice(); } ); - // props.onSaveState( - // { - // masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, - // ...addState, - // }, - // () => { - // props.handleCalcPrice(); - // } - // ); }; return (