Commit 6f61bf2e40d8f071b528bf650de564b1ba38eebe
1 parent
c317470e
快速报价app
Showing
4 changed files
with
79 additions
and
30 deletions
src/components/Common/BoxDesignCompontent/index.js
| ... | ... | @@ -337,7 +337,10 @@ const BoxDesignCompontent = baseProps => { |
| 337 | 337 | setBoxList(updatedBoxList); |
| 338 | 338 | }; |
| 339 | 339 | const getImage = fileName => { |
| 340 | - const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&sModelsId=100&token=${props.token}`; | |
| 340 | + // const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&sModelsId=100&token=${props.token}`; | |
| 341 | + const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&scale=0.1&sModelsId=100&token=${props.token}` | |
| 342 | + console.log("🚀 ~ imageUrl:", imageUrl) | |
| 343 | + | |
| 341 | 344 | return imageUrl; |
| 342 | 345 | }; |
| 343 | 346 | // 下来框 |
| ... | ... | @@ -345,7 +348,7 @@ const BoxDesignCompontent = baseProps => { |
| 345 | 348 | return ( |
| 346 | 349 | <Select.Option key={option.sId} value={option.sCode} label={option.sName} image={getImage(option.sMakeUpPath)}> |
| 347 | 350 | <div style={{ display: "flex", alignItems: "center" }}> |
| 348 | - {option.sMakeUpPath ? <img src={getImage(option.sMakeUpPath)} alt={option.sName} style={{ width: 24, height: 24, marginRight: 8 }} /> : ""} | |
| 351 | + {option.sMakeUpPath ? <img src={getImage(option.sMakeUpPath)} style={{ width: 24, height: 24, marginRight: 8 }} /> : ""} | |
| 349 | 352 | <span>{option.sName}</span> |
| 350 | 353 | </div> |
| 351 | 354 | </Select.Option> |
| ... | ... | @@ -397,7 +400,6 @@ const BoxDesignCompontent = baseProps => { |
| 397 | 400 | submitSlaveData.concat(newSlaveData); |
| 398 | 401 | |
| 399 | 402 | // 处理计算公式 |
| 400 | - console.log(boxList, "boxList"); | |
| 401 | 403 | // 计算展长公式 sLengthFormula |
| 402 | 404 | let sLengthFormula = ""; |
| 403 | 405 | let sWidthFormula = ""; | ... | ... |
src/components/QuickQuote/index.jsx
| ... | ... | @@ -1537,7 +1537,7 @@ const BoxComponent = props => { |
| 1537 | 1537 | const className = target.getAttribute("class"); |
| 1538 | 1538 | const nodeName = target.nodeName; |
| 1539 | 1539 | if (className?.includes("select") && nodeName === "DIV") return; |
| 1540 | - | |
| 1540 | + | |
| 1541 | 1541 | props.setState(pre => ({ |
| 1542 | 1542 | ...pre, |
| 1543 | 1543 | backendParamsConfig: commonUtils.convertStrToObj( | ... | ... |
src/mobile/components/SelectInput.jsx
| ... | ... | @@ -31,6 +31,8 @@ const SelectInput = props => { |
| 31 | 31 | if (!viewRow.sBackProcessData) return; |
| 32 | 32 | // const data = viewRow.sBackProcessData[downIndex][itemDetail.sName]; |
| 33 | 33 | // setValue(data); |
| 34 | + } else if (tableName.includes('sBackendParams')) { | |
| 35 | + setValue(itemDetail.sParamDefault) | |
| 34 | 36 | } else { |
| 35 | 37 | setValue(viewRowNew || ""); // 动态更新 value |
| 36 | 38 | } |
| ... | ... | @@ -175,7 +177,7 @@ const SelectInput = props => { |
| 175 | 177 | <Checkbox |
| 176 | 178 | style={{ height: "3.125rem" }} |
| 177 | 179 | onChange={val => { |
| 178 | - props.onDataChange(tableName, itemDetail.sName, { [itemDetail.sName]: val }, null, coplyColumns); | |
| 180 | + props.onDataChange(tableName, itemDetail.sName, { [itemDetail.sName]: val,label:val }, null, coplyColumns); | |
| 179 | 181 | }} |
| 180 | 182 | /> |
| 181 | 183 | ) : ( | ... | ... |
src/mobile/quotation/detailNew.jsx
| ... | ... | @@ -142,6 +142,7 @@ const QuickQuoteEvent = props => { |
| 142 | 142 | }; |
| 143 | 143 | |
| 144 | 144 | addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => { |
| 145 | + console.log("🚀 ~ changeValue:", name, changeValue); | |
| 145 | 146 | const { mastersId } = props; |
| 146 | 147 | const { masterData = {}, slaveData = [], selectedNode = {} } = state; |
| 147 | 148 | const extraState = { |
| ... | ... | @@ -1399,7 +1400,10 @@ const BoxComponent = props => { |
| 1399 | 1400 | const showUpAbleConfigsExtra = upAbleConfigsExtra.filter(x => x.bVisible === 1); |
| 1400 | 1401 | let boxList = []; |
| 1401 | 1402 | // if(!masterData) return |
| 1402 | - if (slaveRowData && slaveRowData.sColumnNameConfig && masterData?.dLength && masterData?.dWidth && masterData?.dHeight) { | |
| 1403 | + if ( | |
| 1404 | + (slaveRowData && slaveRowData.sColumnNameConfig && masterData?.dLength && masterData?.dWidth && masterData?.dHeight) || | |
| 1405 | + (selectedNode.sTypeKey === "kapai" && slaveRowData.sColumnNameConfig && masterData.dLength && masterData.dWidth) | |
| 1406 | + ) { | |
| 1403 | 1407 | const slaveNewData = JSON.parse(slaveRowData.sColumnNameConfig); |
| 1404 | 1408 | const tables = [ |
| 1405 | 1409 | { name: "盒型类别", value: slaveRowData.sBoxType, type: null }, |
| ... | ... | @@ -1501,8 +1505,14 @@ const BoxComponent = props => { |
| 1501 | 1505 | if (item.sName === "dSumPQty" && selectedNode.sTypeKey !== "huace") { |
| 1502 | 1506 | return false; |
| 1503 | 1507 | } |
| 1504 | - const { bAdvancedSetting } = slaveRowData; | |
| 1505 | - if ((item.sName === "dPortrait" && !bAdvancedSetting) || (item.sName === "dHorizontal" && !bAdvancedSetting)) { | |
| 1508 | + const { bAdvancedSetting, bFlap, bFold } = slaveRowData; | |
| 1509 | + const shouldExcludeItem = (condition, itemNameList) => !condition && itemNameList.includes(item.sName); | |
| 1510 | + | |
| 1511 | + if ( | |
| 1512 | + shouldExcludeItem(bAdvancedSetting, ["dPortrait", "dHorizontal"]) || | |
| 1513 | + shouldExcludeItem(bFlap, ["dFlap"]) || | |
| 1514 | + shouldExcludeItem(bFold, ["sFold", "dAdhesive", "dFold"]) | |
| 1515 | + ) { | |
| 1506 | 1516 | return false; |
| 1507 | 1517 | } |
| 1508 | 1518 | |
| ... | ... | @@ -1819,35 +1829,56 @@ const BoxComponent = props => { |
| 1819 | 1829 | // const nodeName = target.nodeName; |
| 1820 | 1830 | // if (className?.includes("select") && nodeName === "DIV") return; |
| 1821 | 1831 | if (!sBackProcessData) return; |
| 1832 | + const detail = sBackProcessData.find(item => item[showConfig.sName0 || showConfig.sName]); | |
| 1833 | + let data = commonUtils.convertStrToObj(detail?.sParamConfig, []); | |
| 1834 | + if (detail) { | |
| 1835 | + // 确保 detail.sBackendParams 是一个数组 | |
| 1836 | + detail.sBackendParams = Array.isArray(detail.sBackendParams) ? detail.sBackendParams : []; | |
| 1837 | + // 过滤掉 undefined 或 null 值 | |
| 1838 | + detail.sBackendParams = detail.sBackendParams.filter(param => param !== undefined && param !== null); | |
| 1839 | + | |
| 1840 | + data.forEach((x, i) => { | |
| 1841 | + const backendParam = detail.sBackendParams[i] || {}; // 如果是 undefined,则使用空对象 | |
| 1842 | + x.sParamDefault = x.sFieldName !== "" ? backendParam[x.sFieldName] : backendParam.label || x.sParamDefault; | |
| 1843 | + }); | |
| 1844 | + } | |
| 1822 | 1845 | props.setState(pre => ({ |
| 1823 | 1846 | ...pre, |
| 1824 | - backendParamsConfig: commonUtils.convertStrToObj(sBackProcessData.find(item => item[showConfig.sName0 || showConfig.sName])?.sParamConfig, []), | |
| 1847 | + backendParamsConfig: detail ? data : [], | |
| 1825 | 1848 | backendConfig: { sParentFieldsName: showConfig.sName, sBoxModel: boxModel }, |
| 1826 | 1849 | })); |
| 1827 | 1850 | }; |
| 1828 | 1851 | // 如果是卡牌那么默认使用矩形 |
| 1829 | 1852 | // const currentBoxModel = "slaveUp" + props.boxModel; |
| 1830 | 1853 | // props.onDataChange(currentBoxModel, "sName", { sName: item.sName }, item.sId, boxsList); |
| 1831 | - if (selectedNode.sTypeKey === "kapai") { | |
| 1832 | - console.log(5555555); | |
| 1833 | - | |
| 1834 | - } | |
| 1854 | + | |
| 1855 | + useEffect(() => { | |
| 1856 | + if (selectedNode.sTypeKey === "kapai") { | |
| 1857 | + const data = selectList.find(x => x.sTypes === "6"); | |
| 1858 | + if (!data) return; | |
| 1859 | + const currentBoxModel = "slaveUp" + props.boxModel; | |
| 1860 | + props.onDataChange(currentBoxModel, "sName", { sName: data.sName }, data.sId, selectList); | |
| 1861 | + } | |
| 1862 | + }, [selectedNode.sTypeKey, selectList]); | |
| 1863 | + | |
| 1835 | 1864 | return ( |
| 1836 | 1865 | <div> |
| 1837 | 1866 | {selectedNode.bBox ? ( |
| 1838 | 1867 | <div> |
| 1839 | - {true ? ( | |
| 1840 | - <Selector | |
| 1841 | - columns={4} | |
| 1842 | - options={boxTypeList} | |
| 1843 | - style={{ "--padding": "0.8rem 0" }} | |
| 1844 | - value={selected ? [selected] : []} | |
| 1845 | - onChange={v => handleChange(v)} | |
| 1846 | - /> | |
| 1868 | + {selectedNode.sTypeKey !== "kapai" ? ( | |
| 1869 | + <div> | |
| 1870 | + <Selector | |
| 1871 | + columns={4} | |
| 1872 | + options={boxTypeList} | |
| 1873 | + style={{ "--padding": "0.8rem 0" }} | |
| 1874 | + value={selected ? [selected] : []} | |
| 1875 | + onChange={v => handleChange(v)} | |
| 1876 | + /> | |
| 1877 | + <div className={styles.line}></div> | |
| 1878 | + </div> | |
| 1847 | 1879 | ) : ( |
| 1848 | 1880 | "" |
| 1849 | 1881 | )} |
| 1850 | - <div className={styles.line}></div> | |
| 1851 | 1882 | <div> |
| 1852 | 1883 | <Grid columns={4} gap={8}> |
| 1853 | 1884 | {upViewProps |
| ... | ... | @@ -2448,12 +2479,9 @@ const BackendParamsExtraComponent = props => { |
| 2448 | 2479 | const { sParentFieldsName, sBoxModel } = backendConfig; |
| 2449 | 2480 | |
| 2450 | 2481 | // 使用 useMemo 缓存计算结果 |
| 2451 | - const slaveRowData = useMemo(() => { | |
| 2452 | - return slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === sBoxModel) || {}; | |
| 2453 | - }, [slaveData, selectedNode, sBoxModel]); | |
| 2482 | + const slaveRowData = slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === sBoxModel) || {}; | |
| 2454 | 2483 | |
| 2455 | 2484 | const { sBackProcessData = [] } = slaveRowData; |
| 2456 | - | |
| 2457 | 2485 | const viewConfigs = backendParamsConfig.map((item, index) => ({ |
| 2458 | 2486 | ...item, |
| 2459 | 2487 | sName0: `sParam${index + 1}`, |
| ... | ... | @@ -2462,6 +2490,8 @@ const BackendParamsExtraComponent = props => { |
| 2462 | 2490 | sDropDownType: item.sParamDropDown ? "sql" : "", |
| 2463 | 2491 | iColValue: 4, |
| 2464 | 2492 | sVisColumnName: "sProcessName", |
| 2493 | + value: item.sId, | |
| 2494 | + label: item.sParamDefault, | |
| 2465 | 2495 | })); |
| 2466 | 2496 | |
| 2467 | 2497 | const viewProps = { |
| ... | ... | @@ -2502,8 +2532,10 @@ const BackendParamsExtraComponent = props => { |
| 2502 | 2532 | const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); |
| 2503 | 2533 | const iIndex1 = slaveData[iIndex].sBackProcessData.findIndex(item => item[sParentFieldsName]); |
| 2504 | 2534 | const showConfig = viewConfigs.find(item => item.sName === sFieldName); |
| 2535 | + let extraState = {}; | |
| 2536 | + | |
| 2505 | 2537 | const dropDownDataSelected = dropDownData?.length |
| 2506 | - ? dropDownData.find(item => item.sId === changeValue[sFieldName]) | |
| 2538 | + ? dropDownData.find(item => item.label === changeValue[sFieldName]) | |
| 2507 | 2539 | : { |
| 2508 | 2540 | sId: commonUtils.createSid(), |
| 2509 | 2541 | value: changeValue[sFieldName], |
| ... | ... | @@ -2528,11 +2560,24 @@ const BackendParamsExtraComponent = props => { |
| 2528 | 2560 | slaveData[iIndex].sBackProcessData[iIndex1].dManualValue = dManualLength * dManualWidth; |
| 2529 | 2561 | } |
| 2530 | 2562 | } |
| 2531 | - props.setState(pre => ({ ...pre, slaveData })); | |
| 2563 | + // const detail = sBackProcessData.find(item => item[showConfig.sName0 || showConfig.sName]); | |
| 2564 | + // let data = commonUtils.convertStrToObj(detail?.sParamConfig, []); | |
| 2565 | + // if (detail) { | |
| 2566 | + // // 确保 detail.sBackendParams 是一个数组 | |
| 2567 | + // detail.sBackendParams = Array.isArray(detail.sBackendParams) ? detail.sBackendParams : []; | |
| 2568 | + // // 过滤掉 undefined 或 null 值 | |
| 2569 | + // detail.sBackendParams = detail.sBackendParams.filter(param => param !== undefined && param !== null); | |
| 2570 | + | |
| 2571 | + // data.forEach((x, i) => { | |
| 2572 | + // const backendParam = detail.sBackendParams[i] || {}; // 如果是 undefined,则使用空对象 | |
| 2573 | + // x.sParamDefault = x.sFieldName !== "" ? backendParam[x.sFieldName] : backendParam.label || x.sParamDefault; | |
| 2574 | + // }); | |
| 2575 | + // } | |
| 2576 | + // (backendParamsConfig = detail ? data : []), | |
| 2577 | + props.setState(pre => ({ ...pre, slaveData, ...extraState })); | |
| 2532 | 2578 | }, |
| 2533 | 2579 | }; |
| 2534 | 2580 | |
| 2535 | - const onCostomClick = () => {}; | |
| 2536 | 2581 | if (!viewConfigs.length) return; |
| 2537 | 2582 | return ( |
| 2538 | 2583 | <div> |
| ... | ... | @@ -2546,7 +2591,7 @@ const BackendParamsExtraComponent = props => { |
| 2546 | 2591 | <Grid.Item> |
| 2547 | 2592 | <div className={styles.customer} key={x.id || x.showName}> |
| 2548 | 2593 | <div>{x.showName}</div> |
| 2549 | - <SelectInput {...viewProps} itemDetail={x} getSqlDropDownData={viewProps.getSqlDropDownData} onDataChange={props.onDataChange} /> | |
| 2594 | + <SelectInput {...viewProps} itemDetail={x} getSqlDropDownData={viewProps.getSqlDropDownData} onDataChange={viewProps.onDataChange} /> | |
| 2550 | 2595 | </div> |
| 2551 | 2596 | </Grid.Item> |
| 2552 | 2597 | ))} | ... | ... |