Commit fa48d7ed519b6530178af505b88dcc4c5e251172
1 parent
c6bcf6c4
报价后保存
Showing
2 changed files
with
472 additions
and
41 deletions
src/components/QuickQuote/index.jsx
| ... | ... | @@ -903,7 +903,6 @@ const QuickQuoteEvent = props => { |
| 903 | 903 | }; |
| 904 | 904 | // 入口 |
| 905 | 905 | const QuickQuote = baseProps => { |
| 906 | - console.log("🚀 ~ baseProps:", baseProps); | |
| 907 | 906 | const props = QuickQuoteEvent(baseProps); |
| 908 | 907 | const [treeClassName, setTreeClassName] = useState(""); |
| 909 | 908 | |
| ... | ... | @@ -1644,7 +1643,6 @@ const BoxComponent = props => { |
| 1644 | 1643 | }); |
| 1645 | 1644 | }); |
| 1646 | 1645 | } |
| 1647 | - console.log(slaveRowData, "slaveRowData"); | |
| 1648 | 1646 | |
| 1649 | 1647 | const svgProps = { |
| 1650 | 1648 | ...props, |
| ... | ... | @@ -2253,7 +2251,6 @@ const BoxModelSelectedModal = props => { |
| 2253 | 2251 | fixedHeight: "calc(100vh - 365px)", |
| 2254 | 2252 | noVlistTable: true, |
| 2255 | 2253 | onCostomColums: columns => { |
| 2256 | - console.log("🚀 ~ columns:", columns); | |
| 2257 | 2254 | columns |
| 2258 | 2255 | .filter(item => item.dataIndex?.includes("Path")) |
| 2259 | 2256 | .forEach(column => { | ... | ... |
src/mobile/quotation/detailNew.jsx
| ... | ... | @@ -13,6 +13,8 @@ import Typesetting from "@/components/Common/Typesetting/typesetting"; |
| 13 | 13 | import DynamicSVG from "@/components/Common/BoxDesignCompontent/svg"; |
| 14 | 14 | import ShowImgM from "@/components/Common/BoxShowImgMaterial/indexNew"; |
| 15 | 15 | import CommonBase from "@/components/Common/CommonBase"; |
| 16 | +import { cloneDeep } from "lodash"; | |
| 17 | +import moment from "moment"; | |
| 16 | 18 | const QuickQuoteEvent = props => { |
| 17 | 19 | const { location } = props; |
| 18 | 20 | const selectedNode = JSON.parse(location.state).quotationData; |
| ... | ... | @@ -88,6 +90,50 @@ const QuickQuoteEvent = props => { |
| 88 | 90 | const [enabled, setEnabled] = useState(props.enabled); |
| 89 | 91 | |
| 90 | 92 | useEffect(() => { |
| 93 | + const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}`; | |
| 94 | + commonServices | |
| 95 | + .getService(props.token, configUrl) | |
| 96 | + .then(({ data: masterReturn }) => { | |
| 97 | + if (masterReturn.code === 1) { | |
| 98 | + const formData = masterReturn.dataset.rows[0].formData; | |
| 99 | + const masterConfig = formData.find(x => x.sTbName === "QuoQuotationmaster"); | |
| 100 | + const processConfig = formData.find(x => x.sTbName === "QuoQuotationprocess"); | |
| 101 | + const materialsConfig = formData.find(x => x.sTbName === "QuoQuotationmaterials"); | |
| 102 | + const slaveConfig = formData.find(x => x.sTbName === "QuoQuotationslave"); | |
| 103 | + const controlConfig = formData.find(x => x.sTbName === "QuoQuotationcontrol"); | |
| 104 | + let colorConfigGrdVisible; | |
| 105 | + const colorConfigTrue = formData.find(item => item.sTbName === "quoquotationparam"); | |
| 106 | + if (commonUtils.isNotEmptyObject(colorConfigTrue)) { | |
| 107 | + colorConfigGrdVisible = colorConfigTrue.bGrdVisible; | |
| 108 | + if (colorConfigGrdVisible) { | |
| 109 | + colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn); | |
| 110 | + } | |
| 111 | + } | |
| 112 | + const colorConfig = colorConfigGrdVisible ? colorConfigTrue : ""; | |
| 113 | + /* 合版信息表 */ | |
| 114 | + const packConfig = formData.find(item => item.sTbName === "quoquotationcontrolcombine"); | |
| 115 | + let checkConfig = {}; | |
| 116 | + let checkColumn = {}; | |
| 117 | + if (commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === "sysbillcheckresult"))) { | |
| 118 | + checkConfig = formData.find(item => item.bGrd && item.sTbName === "sysbillcheckresult"); | |
| 119 | + checkColumn = commonFunc.getHeaderConfig(checkConfig); | |
| 120 | + } | |
| 121 | + props.onSaveState(pre => ({ | |
| 122 | + ...pre, | |
| 123 | + formData, | |
| 124 | + masterConfig, | |
| 125 | + processConfig, | |
| 126 | + materialsConfig, | |
| 127 | + slaveConfig, | |
| 128 | + controlConfig, | |
| 129 | + colorConfig, | |
| 130 | + packConfig, | |
| 131 | + checkConfig, | |
| 132 | + })); | |
| 133 | + //setState(pre => ({ ...pre, selectedNode ,formData, masterConfig, processConfig, materialsConfig, slaveConfig})); | |
| 134 | + } | |
| 135 | + }) | |
| 136 | + .catch(error => {}); | |
| 91 | 137 | setState(pre => ({ ...pre, selectedNode })); |
| 92 | 138 | }, []); |
| 93 | 139 | |
| ... | ... | @@ -98,7 +144,9 @@ const QuickQuoteEvent = props => { |
| 98 | 144 | useEffect(() => { |
| 99 | 145 | // 获取 masterConfig |
| 100 | 146 | |
| 101 | - const sActiveId = "172129113112117428019179600"; | |
| 147 | + const { masterConfig, token } = props; | |
| 148 | + const quickQuoteConfig = masterConfig?.gdsconfigformslave.find(item => item.sControlName === "BtnQuickQuote") || {}; | |
| 149 | + const { sActiveId = "172129113112117428019179600" } = quickQuoteConfig; | |
| 102 | 150 | const configUrls = `${commonConfig.server_host}business/getModelBysId/${sActiveId}?sModelsId=${sActiveId}`; |
| 103 | 151 | commonServices.getService(props.app.token, configUrls).then(async ({ data: configReturn }) => { |
| 104 | 152 | if (configReturn.code === 1) { |
| ... | ... | @@ -411,7 +459,7 @@ const QuickQuoteEvent = props => { |
| 411 | 459 | loading: true, |
| 412 | 460 | }, |
| 413 | 461 | () => { |
| 414 | - props.onButtonClick("BtnDraft"); | |
| 462 | + props.onButtonClick("BtnDraft", { ...props }); | |
| 415 | 463 | } |
| 416 | 464 | ); |
| 417 | 465 | }; |
| ... | ... | @@ -421,7 +469,6 @@ const QuickQuoteEvent = props => { |
| 421 | 469 | // 核价按钮 |
| 422 | 470 | addState.handleCalcPrice = async () => { |
| 423 | 471 | const { masterData = {}, slaveData = [], selectedNode = {}, extraParts = {} } = state; |
| 424 | - | |
| 425 | 472 | if (commonUtils.isEmptyObject(selectedNode)) { |
| 426 | 473 | // message.error("请先选择产品"); |
| 427 | 474 | Toast.show({ |
| ... | ... | @@ -538,6 +585,7 @@ const QuickQuoteEvent = props => { |
| 538 | 585 | if (dataReturn.code === 1) { |
| 539 | 586 | // const { app, sModelsId } = props; |
| 540 | 587 | // const { slaveConfig, masterData: masterData1, processConfig, materialsConfig } = state; |
| 588 | + | |
| 541 | 589 | const { slaveConfig, masterData: masterData1, materialsConfig, processConfig, sModelsId, app } = props; |
| 542 | 590 | const { productClassify, partsNewInfo = [], productProcessInfo, partsInfo: partsOldInfo } = dataReturn.dataset.rows[0]; |
| 543 | 591 | |
| ... | ... | @@ -863,7 +911,8 @@ const QuickQuoteEvent = props => { |
| 863 | 911 | const result = await props.handleCalculation( |
| 864 | 912 | false, |
| 865 | 913 | { ...masterProps, ...newState, manyqtysConfig: state.manyConfig, manyqtysData: state.manyData }, |
| 866 | - true | |
| 914 | + true, | |
| 915 | + props | |
| 867 | 916 | ); |
| 868 | 917 | |
| 869 | 918 | if (commonUtils.isEmptyObject(result)) { |
| ... | ... | @@ -1073,7 +1122,7 @@ const sortData = (tableData, processData) => { |
| 1073 | 1122 | return processData; |
| 1074 | 1123 | }; |
| 1075 | 1124 | // 计算数量 |
| 1076 | -const handleCalculation = async (bSave, nextProps, isWait) => { | |
| 1125 | +const handleCalculation = async (bSave, nextProps, isWait, props) => { | |
| 1077 | 1126 | const dataUrl = `${commonConfig.server_host}business/addQuotationsheet?sModelsId=${nextProps.sModelsId}`; |
| 1078 | 1127 | const { |
| 1079 | 1128 | masterConfig, |
| ... | ... | @@ -1099,6 +1148,376 @@ const handleCalculation = async (bSave, nextProps, isWait) => { |
| 1099 | 1148 | let { slaveData, controlData, materialsData, processData, masterData, manyqtysData, packData } = nextProps; |
| 1100 | 1149 | const sMakePerson = masterData.sMakePerson; |
| 1101 | 1150 | const data = []; |
| 1151 | + data.push(commonBusiness.mergeData("master", `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true)); | |
| 1152 | + data.push(commonBusiness.mergeData("slave", `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true)); | |
| 1153 | + data.push(commonBusiness.mergeData("control", `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true)); | |
| 1154 | + data.push(commonBusiness.mergeData("materials", `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true)); | |
| 1155 | + data.push(commonBusiness.mergeData("process", `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true)); | |
| 1156 | + if (commonUtils.isNotEmptyObject(manyqtysConfig)) { | |
| 1157 | + data.push( | |
| 1158 | + commonBusiness.mergeData( | |
| 1159 | + "manyqtys", | |
| 1160 | + `${manyqtysConfig.sTbName.toLowerCase()}_tmp`, | |
| 1161 | + manyqtysData?.map(item => { | |
| 1162 | + delete item.manyData; | |
| 1163 | + return item; | |
| 1164 | + }), | |
| 1165 | + [], | |
| 1166 | + true | |
| 1167 | + ) | |
| 1168 | + ); | |
| 1169 | + } | |
| 1170 | + | |
| 1171 | + data.push(commonBusiness.mergeData("pack", `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true)); | |
| 1172 | + const value = { data, sClientType: "1", sGuid: masterData.sId }; | |
| 1173 | + | |
| 1174 | + const cacheIndex = dQuickQuoteProductQty === undefined ? -1 : manyDataCache.findIndex(item => item.dManyQty === dQuickQuoteProductQty); | |
| 1175 | + if (cacheIndex === -1) { | |
| 1176 | + // message.warning("自动计算中,请稍后再试。"); | |
| 1177 | + Toast.show({ | |
| 1178 | + content: "自动计算中,请稍后再试。", | |
| 1179 | + }); | |
| 1180 | + } | |
| 1181 | + const dataReturn = cacheIndex === -1 ? (await commonServices.postValueService(props.app.token, value, dataUrl)).data : manyDataCache[cacheIndex]; | |
| 1182 | + if (dataReturn.code === 1) { | |
| 1183 | + /* 成功 */ | |
| 1184 | + const valueReturn = dataReturn.dataset.rows[0]; | |
| 1185 | + const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`]; | |
| 1186 | + if (commonUtils.isNotEmptyArr(masterDataArr)) { | |
| 1187 | + masterData = masterDataArr[0]; | |
| 1188 | + } | |
| 1189 | + if (cacheIndex !== -1) { | |
| 1190 | + // masterData.handleType = nextProps.masterData.handleType || "update"; | |
| 1191 | + masterData.sQuoConfig = nextProps.masterData.sQuoConfig; | |
| 1192 | + masterData.sFormId = nextProps.masterData.sFormId; | |
| 1193 | + masterData.sBillNo = nextProps.masterData.sBillNo; | |
| 1194 | + } | |
| 1195 | + masterData.handleType = masterData.sBillNo ? "update" : "add"; | |
| 1196 | + if (masterData.handleType === "update" && !commonUtils.isEmpty(sMakePerson)) { | |
| 1197 | + masterData.sMakePerson = sMakePerson; | |
| 1198 | + } | |
| 1199 | + slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`].map(item => { | |
| 1200 | + item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; | |
| 1201 | + return item; | |
| 1202 | + }); | |
| 1203 | + controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`].map(item => { | |
| 1204 | + item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; | |
| 1205 | + return item; | |
| 1206 | + }); | |
| 1207 | + materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`].map(item => { | |
| 1208 | + item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; | |
| 1209 | + return item; | |
| 1210 | + }); | |
| 1211 | + processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`].map(item => { | |
| 1212 | + item.handleType = dQuickQuoteProductQty ? "add" : item.handleType; | |
| 1213 | + return item; | |
| 1214 | + }); | |
| 1215 | + processData = props.sortData(controlData, processData); | |
| 1216 | + const addState = {}; | |
| 1217 | + if (commonUtils.isNotEmptyObject(manyqtysConfig)) { | |
| 1218 | + manyqtysData = valueReturn[`${manyqtysConfig.sTbName.toLowerCase()}_tmp`]?.map((item, index) => { | |
| 1219 | + return { | |
| 1220 | + ...item, | |
| 1221 | + sId: manyqtysData[index] ? manyqtysData[index].sId : item.sId, | |
| 1222 | + handleType: dQuickQuoteProductQty ? "add" : item.handleType, | |
| 1223 | + }; | |
| 1224 | + }); | |
| 1225 | + if (cacheIndex === -1 && manyqtysData?.some(item => item.manyData)) { | |
| 1226 | + addState.manyDataCache = manyqtysData.map((item, index) => { | |
| 1227 | + let result = {}; | |
| 1228 | + if (index === 0) { | |
| 1229 | + result = Object.keys(valueReturn).reduce((pre, cur) => { | |
| 1230 | + if (cur !== `${manyqtysConfig.sTbName.toLowerCase()}_tmp`) { | |
| 1231 | + pre[cur] = valueReturn[cur]; | |
| 1232 | + } | |
| 1233 | + return pre; | |
| 1234 | + }, {}); | |
| 1235 | + } else { | |
| 1236 | + result = commonUtils.convertStrToObj(item.manyData); | |
| 1237 | + } | |
| 1238 | + | |
| 1239 | + result[`${manyqtysConfig.sTbName.toLowerCase()}_tmp`] = cloneDeep(manyqtysData).map(item => { | |
| 1240 | + delete item.manyData; | |
| 1241 | + return item; | |
| 1242 | + }); | |
| 1243 | + | |
| 1244 | + const { sId, sBillNo, sFormId } = masterData; | |
| 1245 | + const row = Object.keys(result).reduce((pre, cur) => { | |
| 1246 | + if (cur === `${masterConfig.sTbName.toLowerCase()}_tmp`) { | |
| 1247 | + pre[cur] = result[cur].map(item => ({ | |
| 1248 | + ...item, | |
| 1249 | + sId, | |
| 1250 | + sBillNo: sBillNo || item.sBillNo, | |
| 1251 | + sFormId, | |
| 1252 | + })); | |
| 1253 | + } else if (cur.includes("_tmp")) { | |
| 1254 | + pre[cur] = result[cur].map(item => ({ | |
| 1255 | + ...item, | |
| 1256 | + sParentId: sId, | |
| 1257 | + handleType: "add", | |
| 1258 | + })); | |
| 1259 | + } else { | |
| 1260 | + pre[cur] = result[cur]; | |
| 1261 | + } | |
| 1262 | + return pre; | |
| 1263 | + }, {}); | |
| 1264 | + | |
| 1265 | + return { | |
| 1266 | + code: 1, | |
| 1267 | + dManyQty: item.dManyQty, | |
| 1268 | + dataset: { | |
| 1269 | + rows: [row], | |
| 1270 | + }, | |
| 1271 | + }; | |
| 1272 | + }); | |
| 1273 | + } | |
| 1274 | + } | |
| 1275 | + | |
| 1276 | + packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`]; | |
| 1277 | + /* 计算成功后自动调用保存 */ | |
| 1278 | + if (bSave) { | |
| 1279 | + const data = []; | |
| 1280 | + data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData])); | |
| 1281 | + data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData)); | |
| 1282 | + data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData)); | |
| 1283 | + data.push(commonBusiness.mergeData("materials", materialsConfig.sTbName, materialsData, materialsDelData)); | |
| 1284 | + data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData)); | |
| 1285 | + | |
| 1286 | + if (commonUtils.isNotEmptyObject(manyqtysConfig)) { | |
| 1287 | + data.push(commonBusiness.mergeData("manyqtys", manyqtysConfig.sTbName, manyqtysData, manyqtysDelData)); | |
| 1288 | + } | |
| 1289 | + | |
| 1290 | + data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData)); | |
| 1291 | + data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData)); | |
| 1292 | + props.onSaveData({ | |
| 1293 | + data, | |
| 1294 | + sClientType: "1", | |
| 1295 | + loading: false, | |
| 1296 | + sSysLogSrcId: masterData.sId, | |
| 1297 | + }); | |
| 1298 | + props.onSaveState({ | |
| 1299 | + slaveData, | |
| 1300 | + packData, | |
| 1301 | + controlData, | |
| 1302 | + materialsData, | |
| 1303 | + processData, | |
| 1304 | + masterData, | |
| 1305 | + manyqtysData, | |
| 1306 | + ...addState, | |
| 1307 | + }); | |
| 1308 | + } else { | |
| 1309 | + if (isWait) { | |
| 1310 | + return { | |
| 1311 | + slaveData, | |
| 1312 | + controlData, | |
| 1313 | + materialsData, | |
| 1314 | + processData, | |
| 1315 | + masterData, | |
| 1316 | + manyqtysData, | |
| 1317 | + loading: false, | |
| 1318 | + packData, | |
| 1319 | + ...addState, | |
| 1320 | + }; | |
| 1321 | + } else { | |
| 1322 | + props.onSaveState({ | |
| 1323 | + slaveData, | |
| 1324 | + controlData, | |
| 1325 | + materialsData, | |
| 1326 | + processData, | |
| 1327 | + masterData, | |
| 1328 | + manyqtysData, | |
| 1329 | + loading: false, | |
| 1330 | + packData, | |
| 1331 | + ...addState, | |
| 1332 | + }); | |
| 1333 | + } | |
| 1334 | + // message.success(commonFunc.getConfigShowName(masterConfig, "BtnCalculation") + commonFunc.showMessage(app.commonConst, "handleSuccess")); | |
| 1335 | + } | |
| 1336 | + } else { | |
| 1337 | + /* 失败 */ | |
| 1338 | + props.onSaveState({ | |
| 1339 | + loading: false, | |
| 1340 | + }); | |
| 1341 | + // this.props.getServiceError(dataReturn); | |
| 1342 | + } | |
| 1343 | +}; | |
| 1344 | +/** 按钮操作事件 */ | |
| 1345 | +const handleButtonClick = async (name, props) => { | |
| 1346 | + if (name === "BtnDraft") { | |
| 1347 | + const { | |
| 1348 | + masterConfig, | |
| 1349 | + masterData, | |
| 1350 | + slaveConfig, | |
| 1351 | + slaveData, | |
| 1352 | + slaveDelData, | |
| 1353 | + controlConfig, | |
| 1354 | + controlData, | |
| 1355 | + controlDelData, | |
| 1356 | + materialsConfig, | |
| 1357 | + materialsData, | |
| 1358 | + materialsDelData, | |
| 1359 | + processConfig, | |
| 1360 | + processData, | |
| 1361 | + processDelData, | |
| 1362 | + colorConfig, | |
| 1363 | + colorData, | |
| 1364 | + colorDelData, | |
| 1365 | + packConfig, | |
| 1366 | + packData, | |
| 1367 | + packDelData, | |
| 1368 | + } = props; | |
| 1369 | + const data = []; | |
| 1370 | + slaveConfig.gdsconfigformslave.forEach(itemConfig => { | |
| 1371 | + slaveData | |
| 1372 | + .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") | |
| 1373 | + .forEach(itemData => { | |
| 1374 | + itemData.NoVerify = "NoVerify"; | |
| 1375 | + const firstDataIndex = itemConfig.sName.substring(0, 1); | |
| 1376 | + if (commonUtils.isEmpty(itemData[itemConfig.sName])) { | |
| 1377 | + itemData[itemConfig.sName] = | |
| 1378 | + firstDataIndex === "s" | |
| 1379 | + ? "" | |
| 1380 | + : firstDataIndex === "d" || firstDataIndex === "i" | |
| 1381 | + ? 0 | |
| 1382 | + : firstDataIndex === "b" | |
| 1383 | + ? false | |
| 1384 | + : firstDataIndex === "t" | |
| 1385 | + ? moment(new Date()).format(props.app.dateFormat) | |
| 1386 | + : undefined; | |
| 1387 | + } | |
| 1388 | + }); | |
| 1389 | + }); | |
| 1390 | + controlConfig.gdsconfigformslave.forEach(itemConfig => { | |
| 1391 | + controlData | |
| 1392 | + .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") | |
| 1393 | + .forEach(itemData => { | |
| 1394 | + itemData.NoVerify = "NoVerify"; | |
| 1395 | + const firstDataIndex = itemConfig.sName.substring(0, 1); | |
| 1396 | + if (commonUtils.isEmpty(itemData[itemConfig.sName])) { | |
| 1397 | + itemData[itemConfig.sName] = | |
| 1398 | + firstDataIndex === "s" | |
| 1399 | + ? "" | |
| 1400 | + : firstDataIndex === "d" || firstDataIndex === "i" | |
| 1401 | + ? 0 | |
| 1402 | + : firstDataIndex === "b" | |
| 1403 | + ? false | |
| 1404 | + : firstDataIndex === "t" | |
| 1405 | + ? moment(new Date()).format(props.app.dateFormat) | |
| 1406 | + : undefined; | |
| 1407 | + } | |
| 1408 | + }); | |
| 1409 | + }); | |
| 1410 | + | |
| 1411 | + materialsConfig.gdsconfigformslave.forEach(itemConfig => { | |
| 1412 | + materialsData | |
| 1413 | + .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") | |
| 1414 | + .forEach(itemData => { | |
| 1415 | + itemData.NoVerify = "NoVerify"; | |
| 1416 | + const firstDataIndex = itemConfig.sName.substring(0, 1); | |
| 1417 | + if (commonUtils.isEmpty(itemData[itemConfig.sName])) { | |
| 1418 | + itemData[itemConfig.sName] = | |
| 1419 | + firstDataIndex === "s" | |
| 1420 | + ? "" | |
| 1421 | + : firstDataIndex === "d" || firstDataIndex === "i" | |
| 1422 | + ? 0 | |
| 1423 | + : firstDataIndex === "b" | |
| 1424 | + ? false | |
| 1425 | + : firstDataIndex === "t" | |
| 1426 | + ? moment(new Date()).format(props.app.dateFormat) | |
| 1427 | + : undefined; | |
| 1428 | + } | |
| 1429 | + }); | |
| 1430 | + }); | |
| 1431 | + | |
| 1432 | + processConfig.gdsconfigformslave.forEach(itemConfig => { | |
| 1433 | + processData | |
| 1434 | + .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") | |
| 1435 | + .forEach(itemData => { | |
| 1436 | + itemData.NoVerify = "NoVerify"; | |
| 1437 | + const firstDataIndex = itemConfig.sName.substring(0, 1); | |
| 1438 | + if (commonUtils.isEmpty(itemData[itemConfig.sName])) { | |
| 1439 | + itemData[itemConfig.sName] = | |
| 1440 | + firstDataIndex === "s" | |
| 1441 | + ? "" | |
| 1442 | + : firstDataIndex === "d" || firstDataIndex === "i" | |
| 1443 | + ? 0 | |
| 1444 | + : firstDataIndex === "b" | |
| 1445 | + ? false | |
| 1446 | + : firstDataIndex === "t" | |
| 1447 | + ? moment(new Date()).format(props.app.dateFormat) | |
| 1448 | + : undefined; | |
| 1449 | + } | |
| 1450 | + }); | |
| 1451 | + }); | |
| 1452 | + | |
| 1453 | + if (commonUtils.isNotEmptyObject(packConfig)) { | |
| 1454 | + packConfig.gdsconfigformslave.forEach(itemConfig => { | |
| 1455 | + packData | |
| 1456 | + .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") | |
| 1457 | + .forEach(itemData => { | |
| 1458 | + itemData.NoVerify = "NoVerify"; | |
| 1459 | + const firstDataIndex = itemConfig.sName.substring(0, 1); | |
| 1460 | + if (commonUtils.isEmpty(itemData[itemConfig.sName])) { | |
| 1461 | + itemData[itemConfig.sName] = | |
| 1462 | + firstDataIndex === "s" | |
| 1463 | + ? "" | |
| 1464 | + : firstDataIndex === "d" || firstDataIndex === "i" | |
| 1465 | + ? 0 | |
| 1466 | + : firstDataIndex === "b" | |
| 1467 | + ? false | |
| 1468 | + : firstDataIndex === "t" | |
| 1469 | + ? moment(new Date()).format(props.app.dateFormat) | |
| 1470 | + : undefined; | |
| 1471 | + } | |
| 1472 | + }); | |
| 1473 | + }); | |
| 1474 | + } | |
| 1475 | + | |
| 1476 | + if (commonUtils.isNotEmptyObject(colorConfig)) { | |
| 1477 | + colorConfig.gdsconfigformslave.forEach(itemConfig => { | |
| 1478 | + colorData | |
| 1479 | + .filter(itemData => itemData.handleType === "add" || itemData.handleType === "update") | |
| 1480 | + .forEach(itemData => { | |
| 1481 | + itemData.NoVerify = "NoVerify"; | |
| 1482 | + const firstDataIndex = itemConfig.sName.substring(0, 1); | |
| 1483 | + if (commonUtils.isEmpty(itemData[itemConfig.sName])) { | |
| 1484 | + itemData[itemConfig.sName] = | |
| 1485 | + firstDataIndex === "s" | |
| 1486 | + ? "" | |
| 1487 | + : firstDataIndex === "d" || firstDataIndex === "i" | |
| 1488 | + ? 0 | |
| 1489 | + : firstDataIndex === "b" | |
| 1490 | + ? false | |
| 1491 | + : firstDataIndex === "t" | |
| 1492 | + ? moment(new Date()).format(props.app.dateFormat) | |
| 1493 | + : undefined; | |
| 1494 | + } | |
| 1495 | + }); | |
| 1496 | + }); | |
| 1497 | + } | |
| 1498 | + | |
| 1499 | + data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData])); | |
| 1500 | + data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData)); | |
| 1501 | + data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData)); | |
| 1502 | + data.push(commonBusiness.mergeData("materials", materialsConfig.sTbName, materialsData, materialsDelData)); | |
| 1503 | + data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData)); | |
| 1504 | + if (commonUtils.isNotEmptyObject(colorConfig)) { | |
| 1505 | + data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData)); | |
| 1506 | + } | |
| 1507 | + if (commonUtils.isNotEmptyObject(packConfig)) { | |
| 1508 | + data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData)); | |
| 1509 | + } | |
| 1510 | + props.onSaveData({ | |
| 1511 | + data, | |
| 1512 | + sClientType: "1", | |
| 1513 | + loading: false, | |
| 1514 | + sSysLogSrcId: masterData.sId, | |
| 1515 | + bIsUnCcg: false, | |
| 1516 | + }); | |
| 1517 | + } | |
| 1518 | +}; | |
| 1519 | +const handleSaveData = async (params, props) => { | |
| 1520 | + console.log("🚀 ~ handleSaveData ~ params:", params); | |
| 1102 | 1521 | }; |
| 1103 | 1522 | const getProps = baseProps => { |
| 1104 | 1523 | const { location, quotationData, app, sModelsId } = baseProps; |
| ... | ... | @@ -1114,7 +1533,7 @@ const getProps = baseProps => { |
| 1114 | 1533 | pageNum: 1, |
| 1115 | 1534 | pageSize: 20, |
| 1116 | 1535 | }; |
| 1117 | - const retrunData = await commonServices.postValueService(props.token, body, url); | |
| 1536 | + const retrunData = await commonServices.postValueService(token, body, url); | |
| 1118 | 1537 | if (retrunData.data.code === 1) { |
| 1119 | 1538 | /* 获取数据集 */ |
| 1120 | 1539 | const { rows, totalPageCount, currentPageNo, totalCount } = retrunData.data.dataset; |
| ... | ... | @@ -1126,47 +1545,54 @@ const getProps = baseProps => { |
| 1126 | 1545 | }; |
| 1127 | 1546 | } |
| 1128 | 1547 | }; |
| 1548 | + // 定义 onSaveState 函数 | |
| 1549 | + const onSaveState = (updateFunction, callback) => { | |
| 1550 | + setState(prevState => { | |
| 1551 | + let newState = prevState; // 初始状态下不修改状态 | |
| 1552 | + // 确保 updateFunction 是一个函数 | |
| 1553 | + if (typeof updateFunction === "function") { | |
| 1554 | + newState = updateFunction(prevState); | |
| 1555 | + } | |
| 1129 | 1556 | |
| 1130 | - // 获取主表信息 | |
| 1131 | - useEffect(() => { | |
| 1132 | - const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}`; | |
| 1133 | - commonServices | |
| 1134 | - .getService(token, configUrl) | |
| 1135 | - .then(({ data: masterReturn }) => { | |
| 1136 | - if (masterReturn.code === 1) { | |
| 1137 | - const formData = masterReturn.dataset.rows[0].formData; | |
| 1138 | - const processConfig = formData.find(x => x.sTbName === "QuoQuotationprocess"); | |
| 1139 | - const materialsConfig = formData.find(x => x.sTbName === "QuoQuotationmaterials"); | |
| 1140 | - const slaveConfig = formData.find(x => x.sTbName === "QuoQuotationslave"); | |
| 1141 | - setState(pre => ({ ...pre, formData, processConfig, materialsConfig, slaveConfig })); | |
| 1142 | - } | |
| 1143 | - }) | |
| 1144 | - .catch(error => {}); | |
| 1145 | - }, [sModelsId]); | |
| 1557 | + // 执行回调函数(如果存在) | |
| 1558 | + if (typeof callback === "function") { | |
| 1559 | + callback(); | |
| 1560 | + } | |
| 1146 | 1561 | |
| 1147 | - // 处理 formData | |
| 1148 | - let props = { | |
| 1562 | + return newState; // 返回新的状态,可能未修改 | |
| 1563 | + }); | |
| 1564 | + }; | |
| 1565 | + | |
| 1566 | + const slaveData = []; | |
| 1567 | + let slaveRow = {}; | |
| 1568 | + slaveRow.handleType = "add"; | |
| 1569 | + slaveRow.sId = commonUtils.createSid(); | |
| 1570 | + slaveRow.key = commonUtils.createSid(); | |
| 1571 | + slaveRow.sParentId = commonUtils.createSid(); | |
| 1572 | + slaveRow.sNodeId = commonUtils.createSid(); | |
| 1573 | + slaveRow.bDefault = false; | |
| 1574 | + slaveRow.iOrder = 1; | |
| 1575 | + slaveData.push(slaveRow); | |
| 1576 | + | |
| 1577 | + return { | |
| 1149 | 1578 | ...baseProps, |
| 1150 | 1579 | selectedNode: quotationData, |
| 1151 | - state: {}, | |
| 1152 | 1580 | manyDataCache: [], |
| 1153 | 1581 | token: baseProps.app.token, |
| 1154 | - onSaveState: setState, | |
| 1582 | + slaveData, | |
| 1155 | 1583 | getSqlDropDownData, |
| 1156 | 1584 | onMaterialsChange: handleMaterialsChange, |
| 1157 | 1585 | sortData, |
| 1158 | 1586 | handleCalculation, |
| 1159 | - }; | |
| 1160 | - return { | |
| 1161 | - ...props, | |
| 1587 | + onSaveState, | |
| 1588 | + onSaveData: handleSaveData, | |
| 1589 | + onButtonClick: handleButtonClick, | |
| 1162 | 1590 | ...state, |
| 1163 | 1591 | }; |
| 1164 | 1592 | }; |
| 1165 | 1593 | const QuotationAllprogressDetail = baseProps => { |
| 1166 | 1594 | const masterProps = getProps(baseProps); |
| 1167 | - console.log("🚀 ~ masterProps:", masterProps); | |
| 1168 | 1595 | const props = QuickQuoteEvent(masterProps); |
| 1169 | - | |
| 1170 | 1596 | const { selectedNode, location, quotationData, app, sModelsId } = props; |
| 1171 | 1597 | const { showName, sUnit } = quotationData; |
| 1172 | 1598 | const timeRef = useRef(0); |
| ... | ... | @@ -1880,22 +2306,30 @@ const BoxComponent = props => { |
| 1880 | 2306 | }; |
| 1881 | 2307 | const { loading } = props; |
| 1882 | 2308 | // 核价事件 |
| 1883 | - const onCalcPrice = async () => { | |
| 2309 | + const onCalcPrice = () => { | |
| 1884 | 2310 | const addState = { |
| 1885 | 2311 | ...props.onGetAllDelData(), |
| 1886 | 2312 | manyDataCache: [], |
| 1887 | 2313 | }; |
| 1888 | - | |
| 2314 | + const data = { | |
| 2315 | + masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, | |
| 2316 | + ...addState, | |
| 2317 | + }; | |
| 1889 | 2318 | props.onSaveState( |
| 1890 | - { | |
| 1891 | - masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, | |
| 1892 | - ...addState, | |
| 1893 | - }, | |
| 2319 | + pre => ({ ...pre, ...data }), | |
| 1894 | 2320 | () => { |
| 1895 | 2321 | props.handleCalcPrice(); |
| 1896 | 2322 | } |
| 1897 | 2323 | ); |
| 1898 | - await props.handleCalcPrice(); | |
| 2324 | + // props.onSaveState( | |
| 2325 | + // { | |
| 2326 | + // masterData: { ...props.masterData, handleType: props.masterData.handleType || "update" }, | |
| 2327 | + // ...addState, | |
| 2328 | + // }, | |
| 2329 | + // () => { | |
| 2330 | + // props.handleCalcPrice(); | |
| 2331 | + // } | |
| 2332 | + // ); | |
| 1899 | 2333 | }; |
| 1900 | 2334 | return ( |
| 1901 | 2335 | <div> | ... | ... |