Commit 3431a3ecc17d61522af7e0a2ed4873d42b3c74d2
1 parent
e1c42e86
快速报价app
Showing
8 changed files
with
3013 additions
and
149786 deletions
Too many changes to show.
To preserve performance only 4 of 8 files are displayed.
src/components/Common/Typesetting/typesetting.js
| @@ -21,7 +21,6 @@ const Typesetting = props => { | @@ -21,7 +21,6 @@ const Typesetting = props => { | ||
| 21 | boxHeight, | 21 | boxHeight, |
| 22 | textSize, | 22 | textSize, |
| 23 | } = props; | 23 | } = props; |
| 24 | - console.log("🚀 ~ typesettingsss:", props) | ||
| 25 | if (!slaveRowData) return | 24 | if (!slaveRowData) return |
| 26 | const { | 25 | const { |
| 27 | dSBLB, // 上边留白 | 26 | dSBLB, // 上边留白 |
| @@ -477,7 +476,6 @@ const Typesetting = props => { | @@ -477,7 +476,6 @@ const Typesetting = props => { | ||
| 477 | const propsDataWidth = Number(propsData.props.style.width.slice(0, -2)); | 476 | const propsDataWidth = Number(propsData.props.style.width.slice(0, -2)); |
| 478 | const propsDataHeight = Number(propsData.props.style.height.slice(0, -2)); | 477 | const propsDataHeight = Number(propsData.props.style.height.slice(0, -2)); |
| 479 | const propsDataTop = Number(propsData.props.style.top.slice(0, -2)); | 478 | const propsDataTop = Number(propsData.props.style.top.slice(0, -2)); |
| 480 | - console.log(innerDivs,'innerDivs'); | ||
| 481 | 479 | ||
| 482 | const newMaterialLength = propsDataLeft + innerWidthCombined; // 原纸长 | 480 | const newMaterialLength = propsDataLeft + innerWidthCombined; // 原纸长 |
| 483 | const newMaterialWidth = propsDataTop + propsDataHeight - dSBLB; | 481 | const newMaterialWidth = propsDataTop + propsDataHeight - dSBLB; |
| @@ -551,9 +549,7 @@ const Typesetting = props => { | @@ -551,9 +549,7 @@ const Typesetting = props => { | ||
| 551 | }, 0); // 使用 0 延迟,将任务放入事件队列 | 549 | }, 0); // 使用 0 延迟,将任务放入事件队列 |
| 552 | } | 550 | } |
| 553 | const isMax = slaveDataDetail?.dMaxLength && Number(slaveDataDetail?.dMaxLength) >= Number(slaveRowData?.dMachineLength); | 551 | const isMax = slaveDataDetail?.dMaxLength && Number(slaveDataDetail?.dMaxLength) >= Number(slaveRowData?.dMachineLength); |
| 554 | - console.log("🚀 ~ isMax:", isMax,slaveDataDetail,slaveRowData) | ||
| 555 | const isShow = slaveRowData && slaveRowData.dMachineLength && slaveRowData.dMaxWidth && slaveRowData.dMaxLength && isMax && innerDivs.length; | 552 | const isShow = slaveRowData && slaveRowData.dMachineLength && slaveRowData.dMaxWidth && slaveRowData.dMaxLength && isMax && innerDivs.length; |
| 556 | - console.log(innerDivs,cols,rows,'innerDivs'); | ||
| 557 | 553 | ||
| 558 | const onClick = () => { | 554 | const onClick = () => { |
| 559 | setIsModalOpen(true); | 555 | setIsModalOpen(true); |
src/components/QuickQuote/index.jsx
| @@ -906,7 +906,6 @@ const QuickQuoteEvent = props => { | @@ -906,7 +906,6 @@ const QuickQuoteEvent = props => { | ||
| 906 | // 入口 | 906 | // 入口 |
| 907 | const QuickQuote = baseProps => { | 907 | const QuickQuote = baseProps => { |
| 908 | const props = QuickQuoteEvent(baseProps); | 908 | const props = QuickQuoteEvent(baseProps); |
| 909 | - | ||
| 910 | const [treeClassName, setTreeClassName] = useState(""); | 909 | const [treeClassName, setTreeClassName] = useState(""); |
| 911 | 910 | ||
| 912 | // 监听页面滚动事件 | 911 | // 监听页面滚动事件 |
| @@ -1000,10 +999,11 @@ const TreeComponent = props => { | @@ -1000,10 +999,11 @@ const TreeComponent = props => { | ||
| 1000 | }; | 999 | }; |
| 1001 | const getDropDownData = async props => { | 1000 | const getDropDownData = async props => { |
| 1002 | const showDownConfig = slaveConfig.gdsconfigformslave.find(item => item.sControlName === "BtnDownConfig"); | 1001 | const showDownConfig = slaveConfig.gdsconfigformslave.find(item => item.sControlName === "BtnDownConfig"); |
| 1003 | - | ||
| 1004 | const downAbleConfigs = await getSqlDropDownData({ ...showDownConfig }); | 1002 | const downAbleConfigs = await getSqlDropDownData({ ...showDownConfig }); |
| 1005 | 1003 | ||
| 1006 | props.setState(pre => { | 1004 | props.setState(pre => { |
| 1005 | + console.log(pre,'pre'); | ||
| 1006 | + | ||
| 1007 | const { slaveData = [], slaveConfig } = pre; | 1007 | const { slaveData = [], slaveConfig } = pre; |
| 1008 | const addState = {}; | 1008 | const addState = {}; |
| 1009 | const defaultData = commonFunc.getDefaultData(slaveConfig); | 1009 | const defaultData = commonFunc.getDefaultData(slaveConfig); |
| @@ -1327,6 +1327,8 @@ const BoxComponent = props => { | @@ -1327,6 +1327,8 @@ const BoxComponent = props => { | ||
| 1327 | return props.getSqlDropDownData(...args); | 1327 | return props.getSqlDropDownData(...args); |
| 1328 | }, | 1328 | }, |
| 1329 | extraContent: child => { | 1329 | extraContent: child => { |
| 1330 | + console.log(child,'child'); | ||
| 1331 | + | ||
| 1330 | const value = sBackProcessData.find(item => item[child.sName]) || {}; | 1332 | const value = sBackProcessData.find(item => item[child.sName]) || {}; |
| 1331 | const { bSetArea, bSetQty, sName, sSetQtyUnt } = value; | 1333 | const { bSetArea, bSetQty, sName, sSetQtyUnt } = value; |
| 1332 | 1334 | ||
| @@ -1427,7 +1429,8 @@ const BoxComponent = props => { | @@ -1427,7 +1429,8 @@ const BoxComponent = props => { | ||
| 1427 | ); | 1429 | ); |
| 1428 | }, | 1430 | }, |
| 1429 | }; | 1431 | }; |
| 1430 | - | 1432 | + console.log(downViewProps,'downViewProps'); |
| 1433 | + | ||
| 1431 | // 获取sType为3的 | 1434 | // 获取sType为3的 |
| 1432 | const { productProcessInfo = [] } = masterData; | 1435 | const { productProcessInfo = [] } = masterData; |
| 1433 | const finishedViewProps = { | 1436 | const finishedViewProps = { |
src/mobile/components/SelectInput.jsx
| @@ -14,18 +14,21 @@ const SelectInput = props => { | @@ -14,18 +14,21 @@ const SelectInput = props => { | ||
| 14 | const [searchValue, setSearchValue] = useState(""); | 14 | const [searchValue, setSearchValue] = useState(""); |
| 15 | const [visible, setVisible] = useState(false); | 15 | const [visible, setVisible] = useState(false); |
| 16 | const { sId } = props.itemDetail || {}; | 16 | const { sId } = props.itemDetail || {}; |
| 17 | - const { tableName, viewRow, itemDetail, sModelsId, sValue, name, id, No, quotationData, showDropDown } = props || {}; | 17 | + const { downIndex, tableName, viewRow, itemDetail, sModelsId, sValue, name, id, No, quotationData, showDropDown } = props || {}; |
| 18 | const { masterData } = props.state; | 18 | const { masterData } = props.state; |
| 19 | const [bCanInput, setBCanInput] = useState(props.bCanInput); | 19 | const [bCanInput, setBCanInput] = useState(props.bCanInput); |
| 20 | const { bReadonly } = itemDetail || {}; | 20 | const { bReadonly } = itemDetail || {}; |
| 21 | - // useEffect(() => { | ||
| 22 | - // setValue(props.sValue || ""); // 动态更新 value | ||
| 23 | - // }, [props.sValue]); | ||
| 24 | useEffect(() => { | 21 | useEffect(() => { |
| 25 | if (!itemDetail) return; | 22 | if (!itemDetail) return; |
| 26 | 23 | ||
| 27 | const viewRowNew = itemDetail.sName ? viewRow?.[itemDetail.sName] : ""; | 24 | const viewRowNew = itemDetail.sName ? viewRow?.[itemDetail.sName] : ""; |
| 28 | - setValue(viewRowNew || ""); // 动态更新 value | 25 | + if (tableName.includes("slaveDown")) { |
| 26 | + if (!viewRow.sBackProcessData) return; | ||
| 27 | + const data = viewRow.sBackProcessData[downIndex][itemDetail.sName]; | ||
| 28 | + setValue(data); | ||
| 29 | + } else { | ||
| 30 | + setValue(viewRowNew || ""); // 动态更新 value | ||
| 31 | + } | ||
| 29 | }, [itemDetail, itemDetail?.sName, viewRow]); | 32 | }, [itemDetail, itemDetail?.sName, viewRow]); |
| 30 | const [columns, setColumns] = useState([]); | 33 | const [columns, setColumns] = useState([]); |
| 31 | const [coplyColumns, setCopyColumns] = useState(columns); | 34 | const [coplyColumns, setCopyColumns] = useState(columns); |
| @@ -33,7 +36,7 @@ const SelectInput = props => { | @@ -33,7 +36,7 @@ const SelectInput = props => { | ||
| 33 | const url = `${commonConfig.server_host}business/getSelectLimit/${sId}?sModelsId=${sModelsId}&sName=${""}`; | 36 | const url = `${commonConfig.server_host}business/getSelectLimit/${sId}?sModelsId=${sModelsId}&sName=${""}`; |
| 34 | const body = { | 37 | const body = { |
| 35 | sSqlCondition: { | 38 | sSqlCondition: { |
| 36 | - sProductClassifyId: quotationData?quotationData.sId:'', | 39 | + sProductClassifyId: quotationData ? quotationData.sId : "", |
| 37 | }, | 40 | }, |
| 38 | sKeyUpFilterName: searchValue, | 41 | sKeyUpFilterName: searchValue, |
| 39 | pageNum: 1, | 42 | pageNum: 1, |
| @@ -44,15 +47,19 @@ const SelectInput = props => { | @@ -44,15 +47,19 @@ const SelectInput = props => { | ||
| 44 | const list = res.data.dataset.rows?.map(item => ({ | 47 | const list = res.data.dataset.rows?.map(item => ({ |
| 45 | label: item.sCustomerName || item.sName || item.sProcessName || item.sColorName || item.sMaterialsName, | 48 | label: item.sCustomerName || item.sName || item.sProcessName || item.sColorName || item.sMaterialsName, |
| 46 | value: item.sId || item.sSlaveId, | 49 | value: item.sId || item.sSlaveId, |
| 50 | + ...item, | ||
| 47 | })); | 51 | })); |
| 48 | setColumns(list); | 52 | setColumns(list); |
| 49 | - setCopyColumns(list); | 53 | + setCopyColumns(res.data.dataset.rows); |
| 50 | } | 54 | } |
| 51 | }); | 55 | }); |
| 52 | }; | 56 | }; |
| 53 | const handleConfirm = () => { | 57 | const handleConfirm = () => { |
| 54 | - const data = columns.find(item => item.value === values[0]); | ||
| 55 | - setValue(data?.label || ""); | 58 | + const index = columns.findIndex(item => item.value === values[0]); |
| 59 | + const data = coplyColumns[index]; | ||
| 60 | + data[itemDetail.sName] = data.sName | ||
| 61 | + setValue(columns[index]?.label || ""); | ||
| 62 | + props.onDataChange(tableName, itemDetail.sName, data, null, coplyColumns); | ||
| 56 | setVisible(false); | 63 | setVisible(false); |
| 57 | }; | 64 | }; |
| 58 | 65 | ||
| @@ -81,16 +88,38 @@ const SelectInput = props => { | @@ -81,16 +88,38 @@ const SelectInput = props => { | ||
| 81 | }; | 88 | }; |
| 82 | useEffect(() => { | 89 | useEffect(() => { |
| 83 | if (!visible) return; | 90 | if (!visible) return; |
| 84 | - let { sDropDownType } = itemDetail; | ||
| 85 | - if (sDropDownType === "sql") { | ||
| 86 | - getSqlDropDownData(searchValue); | ||
| 87 | - } else if ((sDropDownType = "const")) { | ||
| 88 | - const list = Object.entries(JSON.parse(itemDetail.showDropDown)).map(([key, value]) => ({ | ||
| 89 | - label: value, | ||
| 90 | - value: key, | ||
| 91 | - })); | ||
| 92 | - setColumns(list); | ||
| 93 | - setCopyColumns(list); | 91 | + let { sDropDownType, sVisColumnName } = itemDetail; |
| 92 | + if (sVisColumnName && sVisColumnName === "sProcessName") { | ||
| 93 | + if (sDropDownType === "sql") { | ||
| 94 | + const list = JSON.parse(itemDetail.sChineseDropDown).map(x => { | ||
| 95 | + return { | ||
| 96 | + label: x.sProcessName, | ||
| 97 | + value: x.sId, | ||
| 98 | + ...x, | ||
| 99 | + }; | ||
| 100 | + }); | ||
| 101 | + setColumns(list); | ||
| 102 | + setCopyColumns(list); | ||
| 103 | + // getSqlDropDownData(searchValue); | ||
| 104 | + } else if ((sDropDownType = "const")) { | ||
| 105 | + const list = Object.entries(JSON.parse(itemDetail.showDropDown)).map(([key, value]) => ({ | ||
| 106 | + label: value, | ||
| 107 | + value: key, | ||
| 108 | + })); | ||
| 109 | + setColumns(list); | ||
| 110 | + setCopyColumns(list); | ||
| 111 | + } | ||
| 112 | + } else { | ||
| 113 | + if (sDropDownType === "sql") { | ||
| 114 | + getSqlDropDownData(searchValue); | ||
| 115 | + } else if ((sDropDownType = "const")) { | ||
| 116 | + const list = Object.entries(JSON.parse(itemDetail.showDropDown)).map(([key, value]) => ({ | ||
| 117 | + label: value, | ||
| 118 | + value: key, | ||
| 119 | + })); | ||
| 120 | + setColumns(list); | ||
| 121 | + setCopyColumns(list); | ||
| 122 | + } | ||
| 94 | } | 123 | } |
| 95 | }, [visible]); | 124 | }, [visible]); |
| 96 | useCallback; | 125 | useCallback; |
| @@ -111,13 +140,7 @@ const SelectInput = props => { | @@ -111,13 +140,7 @@ const SelectInput = props => { | ||
| 111 | value={value} | 140 | value={value} |
| 112 | onChange={val => { | 141 | onChange={val => { |
| 113 | setValue(val); | 142 | setValue(val); |
| 114 | - // 如果是master | ||
| 115 | - if (tableName === "master") { | ||
| 116 | - masterData[itemDetail.sName] = val; | ||
| 117 | - props.setState(pre => ({ ...pre, masterData })); | ||
| 118 | - } else { | ||
| 119 | - props.setState(pre => ({ ...pre, [itemDetail.sName]: val })); | ||
| 120 | - } | 143 | + props.onDataChange(tableName, itemDetail.sName, { [itemDetail.sName]: val }, null, coplyColumns); |
| 121 | }} | 144 | }} |
| 122 | readOnly={bReadonly} | 145 | readOnly={bReadonly} |
| 123 | /> | 146 | /> |
src/mobile/quotation/detailNew.jsx
| 1 | import { useRef, useEffect, useState, useCallback, useMemo } from "react"; | 1 | import { useRef, useEffect, useState, useCallback, useMemo } from "react"; |
| 2 | import { history } from "umi"; | 2 | import { history } from "umi"; |
| 3 | -import { Tabs, Selector, Grid, Image, Button, Checkbox, Switch, Dialog, Toast } from "antd-mobile"; | 3 | +import { Input, Tabs, Selector, Grid, Image, Button, Checkbox, Switch, Dialog, Toast } from "antd-mobile"; |
| 4 | import { AddOutline, MinusOutline } from "antd-mobile-icons"; | 4 | import { AddOutline, MinusOutline } from "antd-mobile-icons"; |
| 5 | import commonConfig from "@/utils/config"; | 5 | import commonConfig from "@/utils/config"; |
| 6 | import * as commonServices from "@/services/services"; | 6 | import * as commonServices from "@/services/services"; |
| @@ -80,12 +80,13 @@ const QuickQuoteEvent = props => { | @@ -80,12 +80,13 @@ const QuickQuoteEvent = props => { | ||
| 80 | 80 | ||
| 81 | const sQuoConfig = commonUtils.convertStrToObj(props.masterData.sQuoConfig, {}); | 81 | const sQuoConfig = commonUtils.convertStrToObj(props.masterData.sQuoConfig, {}); |
| 82 | 82 | ||
| 83 | - const [state, setState] = useState(props.state); | 83 | + const [state, setState] = useState(addState.onGetFilterState(sQuoConfig, true)); |
| 84 | 84 | ||
| 85 | const { formData = [] } = state; | 85 | const { formData = [] } = state; |
| 86 | const { bLinkFieledClick } = props; | 86 | const { bLinkFieledClick } = props; |
| 87 | const [hideBackBtn, setHideBackBtn] = useState(false); | 87 | const [hideBackBtn, setHideBackBtn] = useState(false); |
| 88 | const [enabled, setEnabled] = useState(props.enabled); | 88 | const [enabled, setEnabled] = useState(props.enabled); |
| 89 | + | ||
| 89 | useEffect(() => { | 90 | useEffect(() => { |
| 90 | setState(pre => ({ ...pre, selectedNode })); | 91 | setState(pre => ({ ...pre, selectedNode })); |
| 91 | }, []); | 92 | }, []); |
| @@ -95,27 +96,26 @@ const QuickQuoteEvent = props => { | @@ -95,27 +96,26 @@ const QuickQuoteEvent = props => { | ||
| 95 | }, [bLinkFieledClick, props.enabled]); | 96 | }, [bLinkFieledClick, props.enabled]); |
| 96 | useEffect(() => { | 97 | useEffect(() => { |
| 97 | // 获取 masterConfig | 98 | // 获取 masterConfig |
| 98 | - const configUrl = `${commonConfig.server_host}business/getModelBysId/${"172129113112117428019179600"}?sModelsId=${"172129113112117428019179600"}`; | 99 | + const { sModelsId } = props; |
| 100 | + const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}`; | ||
| 99 | commonServices | 101 | commonServices |
| 100 | .getService(props.app.token, configUrl) | 102 | .getService(props.app.token, configUrl) |
| 101 | .then(({ data: configReturn }) => { | 103 | .then(({ data: configReturn }) => { |
| 102 | if (configReturn.code === 1) { | 104 | if (configReturn.code === 1) { |
| 103 | const formData = configReturn.dataset.rows[0]?.formData; | 105 | const formData = configReturn.dataset.rows[0]?.formData; |
| 104 | setMasterConfig(formData); | 106 | setMasterConfig(formData); |
| 105 | - setState(pre => ({ ...pre, masterConfig: formData, slaveConfig: formData[1] })); | ||
| 106 | - } | ||
| 107 | - }) | ||
| 108 | - .catch(error => {}); | ||
| 109 | - const formDataUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}`; | ||
| 110 | - commonServices | ||
| 111 | - .getService(props.app.token, formDataUrl) | ||
| 112 | - .then(({ data: formDataReturn }) => { | ||
| 113 | - if (formDataReturn.code === 1) { | ||
| 114 | - const formDatas = formDataReturn.dataset.rows[0]?.formData; | ||
| 115 | - setState(pre => ({ ...pre, formData: formDatas })); | 107 | + // setState(pre => ({ ...pre, masterConfig: formData, slaveConfig: formData[1] })); |
| 116 | } | 108 | } |
| 117 | }) | 109 | }) |
| 118 | .catch(error => {}); | 110 | .catch(error => {}); |
| 111 | + const sActiveId = "172129113112117428019179600"; | ||
| 112 | + const configUrls = `${commonConfig.server_host}business/getModelBysId/${sActiveId}?sModelsId=${sActiveId}`; | ||
| 113 | + commonServices.getService(props.app.token, configUrls).then(({ data: configReturn }) => { | ||
| 114 | + if (configReturn.code === 1) { | ||
| 115 | + const formData = configReturn.dataset.rows[0].formData; | ||
| 116 | + setState(pre => ({ ...pre, formData, masterConfig: formData[0] })); | ||
| 117 | + } | ||
| 118 | + }); | ||
| 119 | }, []); | 119 | }, []); |
| 120 | 120 | ||
| 121 | // 获取盒型定义配置 | 121 | // 获取盒型定义配置 |
| @@ -158,7 +158,6 @@ const QuickQuoteEvent = props => { | @@ -158,7 +158,6 @@ const QuickQuoteEvent = props => { | ||
| 158 | 158 | ||
| 159 | addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => { | 159 | addState.onDataChange = (name, sFieldName, changeValue, sId, dropDownData, isWait) => { |
| 160 | const { masterData = {}, slaveData = [], selectedNode = {} } = state; | 160 | const { masterData = {}, slaveData = [], selectedNode = {} } = state; |
| 161 | - | ||
| 162 | const extraState = { | 161 | const extraState = { |
| 163 | calcPriceFinished: false, | 162 | calcPriceFinished: false, |
| 164 | manyData: [], | 163 | manyData: [], |
| @@ -174,7 +173,6 @@ const QuickQuoteEvent = props => { | @@ -174,7 +173,6 @@ const QuickQuoteEvent = props => { | ||
| 174 | dProductQty: changeValue.dProductQty, | 173 | dProductQty: changeValue.dProductQty, |
| 175 | })); | 174 | })); |
| 176 | } | 175 | } |
| 177 | - | ||
| 178 | setState(pre => ({ ...pre, masterData: masterDataNew, ...extraState })); | 176 | setState(pre => ({ ...pre, masterData: masterDataNew, ...extraState })); |
| 179 | } else if (name.includes("slave")) { | 177 | } else if (name.includes("slave")) { |
| 180 | const boxModel = name.replace("slaveUp", "").replace("slaveDown", ""); | 178 | const boxModel = name.replace("slaveUp", "").replace("slaveDown", ""); |
| @@ -895,18 +893,90 @@ const QuickQuoteEvent = props => { | @@ -895,18 +893,90 @@ const QuickQuoteEvent = props => { | ||
| 895 | masterConfig: masterConfig && masterConfig.length ? masterConfig[0] : {}, | 893 | masterConfig: masterConfig && masterConfig.length ? masterConfig[0] : {}, |
| 896 | }; | 894 | }; |
| 897 | }; | 895 | }; |
| 898 | - | 896 | +const getSqlDropDownData = async (sId, props) => { |
| 897 | + const { selectedNode } = props; | ||
| 898 | + const url = `${commonConfig.server_host}business/getSelectLimit/${sId}`; | ||
| 899 | + const body = { | ||
| 900 | + sSqlCondition: { | ||
| 901 | + sProductClassifyId: selectedNode.sId, | ||
| 902 | + }, | ||
| 903 | + sKeyUpFilterName: "", | ||
| 904 | + pageNum: 1, | ||
| 905 | + pageSize: 20, | ||
| 906 | + }; | ||
| 907 | + const retrunData = await commonServices.postValueService(props.app.token, body, url); | ||
| 908 | + const sColumnNameConfigStr = retrunData.data?.dataset?.rows?.[0]?.sColumnNameConfig; | ||
| 909 | + // 取上机尺寸 | ||
| 910 | + return commonUtils.convertStrToObj(sColumnNameConfigStr, []); | ||
| 911 | +}; | ||
| 899 | const QuotationAllprogressDetail = baseProps => { | 912 | const QuotationAllprogressDetail = baseProps => { |
| 900 | - const { location } = baseProps; | ||
| 901 | - // const props = QuickQuoteEvent(baseProps); | ||
| 902 | - // const [state, setState] = useState(JsonData.state); | 913 | + const { location, quotationData } = baseProps; |
| 914 | + // 处理 formData | ||
| 903 | const propss = { | 915 | const propss = { |
| 904 | - // ...baseProps, | ||
| 905 | - location, | ||
| 906 | - ...JsonData, | 916 | + ...baseProps, |
| 917 | + selectedNode: quotationData, | ||
| 918 | + state: {}, | ||
| 907 | }; | 919 | }; |
| 908 | const props = QuickQuoteEvent(propss); | 920 | const props = QuickQuoteEvent(propss); |
| 909 | - console.log("🚀 ~ QuotationAllprogressDetail:", props); | 921 | + const { selectedNode } = props; |
| 922 | + const { showName, sUnit } = quotationData; | ||
| 923 | + const timeRef = useRef(0); | ||
| 924 | + useEffect(() => { | ||
| 925 | + // props.setState(pre => | ||
| 926 | + // ({ ...pre, masterData: { ...quotationData, sProductName: showName, sProductUnit: sUnit } }) | ||
| 927 | + // ); | ||
| 928 | + props.setState(pre => { | ||
| 929 | + const { slaveData = [], slaveConfig } = pre; | ||
| 930 | + const addState = {}; | ||
| 931 | + const defaultData = commonFunc.getDefaultData(slaveConfig); | ||
| 932 | + const slaveDataNew = slaveData.filter(item => item.sTreeNodeName === selectedNode.showName); | ||
| 933 | + if (!slaveDataNew.length) { | ||
| 934 | + const sAllPartsName = selectedNode.sAllPartsName || selectedNode.showName; | ||
| 935 | + sAllPartsName.split(",").forEach((item, index) => { | ||
| 936 | + const tempData = { | ||
| 937 | + sId: commonUtils.createSid(), | ||
| 938 | + handleType: "add", | ||
| 939 | + ...defaultData, | ||
| 940 | + sBoxModel: item, | ||
| 941 | + sTreeNodeName: selectedNode.showName, | ||
| 942 | + }; | ||
| 943 | + if (selectedNode.sTypeKey === "huace") { | ||
| 944 | + if (index !== 0) { | ||
| 945 | + delete tempData.dSumPQty; | ||
| 946 | + } else { | ||
| 947 | + tempData.dSumPQty = 4; | ||
| 948 | + } | ||
| 949 | + } | ||
| 950 | + slaveDataNew.push(tempData); | ||
| 951 | + }); | ||
| 952 | + addState.slaveData = slaveDataNew; | ||
| 953 | + } | ||
| 954 | + if (timeRef.current > 1) { | ||
| 955 | + addState.slaveData = slaveDataNew; | ||
| 956 | + addState.extraParts = {}; | ||
| 957 | + } | ||
| 958 | + return { | ||
| 959 | + ...pre, | ||
| 960 | + ...addState, | ||
| 961 | + // downAbleConfigs: downAbleConfigs | ||
| 962 | + // .filter(item => item.sType === "2") | ||
| 963 | + // .map((item, index) => ({ | ||
| 964 | + // ...item, | ||
| 965 | + // sName: `sParams${index}`, | ||
| 966 | + // iColValue: item.iColValue || 4, | ||
| 967 | + // sVisColumnName: "sProcessName", | ||
| 968 | + // })), | ||
| 969 | + // finishedConfigs: downAbleConfigs | ||
| 970 | + // .filter(item => item.sType === "3") | ||
| 971 | + // .map((item, index) => ({ | ||
| 972 | + // ...item, | ||
| 973 | + // sName: `sParams${index}`, | ||
| 974 | + // iColValue: item.iColValue || 4, | ||
| 975 | + // sVisColumnName: "sProcessName", | ||
| 976 | + // })), | ||
| 977 | + }; | ||
| 978 | + }); | ||
| 979 | + }, []); | ||
| 910 | return ( | 980 | return ( |
| 911 | <div className={styles.quotationDetailBox}> | 981 | <div className={styles.quotationDetailBox}> |
| 912 | <QuotationDetail {...props} /> | 982 | <QuotationDetail {...props} /> |
| @@ -915,14 +985,11 @@ const QuotationAllprogressDetail = baseProps => { | @@ -915,14 +985,11 @@ const QuotationAllprogressDetail = baseProps => { | ||
| 915 | }; | 985 | }; |
| 916 | 986 | ||
| 917 | const QuotationDetail = props => { | 987 | const QuotationDetail = props => { |
| 918 | - const { location, app, sModelsId, state, selectedNode = {} } = props; | ||
| 919 | - const { token } = app; | ||
| 920 | - const { formData = [], masterConfig, slaveRowData, masterData } = state || {}; | ||
| 921 | - const { quotationData } = JSON.parse(location.state) || {}; | ||
| 922 | - if (!masterConfig) return; | ||
| 923 | - //masterData 主表数据 | ||
| 924 | - // 获取主表信息 | ||
| 925 | - const viewConfigs = masterConfig.gdsconfigformslave.filter(item => item.sName && item.bVisible); | 988 | + const { masterConfig, masterData = {}, selectedNode = {} } = props.state; |
| 989 | + if (!masterConfig) return ""; | ||
| 990 | + const ableConfigs = masterConfig.gdsconfigformslave.filter(item => item.sName && item.bVisible); | ||
| 991 | + // 处理长宽样式 | ||
| 992 | + const viewConfigs = selectedNode?.bBox ? ableConfigs : ableConfigs.filter(x => x.sName !== "dHeight"); | ||
| 926 | const viewProps = { | 993 | const viewProps = { |
| 927 | ...props, | 994 | ...props, |
| 928 | viewConfigs: viewConfigs, | 995 | viewConfigs: viewConfigs, |
| @@ -931,23 +998,20 @@ const QuotationDetail = props => { | @@ -931,23 +998,20 @@ const QuotationDetail = props => { | ||
| 931 | viewRow: { ...masterData, sProductClassifyId: selectedNode.sId }, | 998 | viewRow: { ...masterData, sProductClassifyId: selectedNode.sId }, |
| 932 | tableName: "master", | 999 | tableName: "master", |
| 933 | }; | 1000 | }; |
| 934 | - | ||
| 935 | return ( | 1001 | return ( |
| 936 | <div> | 1002 | <div> |
| 937 | - <div>{quotationData?.showName || "Loading..."}</div> | ||
| 938 | - | 1003 | + <div>{selectedNode?.showName || "Loading..."}</div> |
| 939 | <div> | 1004 | <div> |
| 940 | <MasterComponent {...viewProps} /> | 1005 | <MasterComponent {...viewProps} /> |
| 941 | </div> | 1006 | </div> |
| 942 | <div> | 1007 | <div> |
| 943 | - <QuotationTabs {...props} /> | 1008 | + <QuotationTabs {...props} quotationData={selectedNode} /> |
| 944 | </div> | 1009 | </div> |
| 945 | </div> | 1010 | </div> |
| 946 | ); | 1011 | ); |
| 947 | }; | 1012 | }; |
| 948 | const MasterComponent = props => { | 1013 | const MasterComponent = props => { |
| 949 | const { viewConfigs, masterData } = props; | 1014 | const { viewConfigs, masterData } = props; |
| 950 | - | ||
| 951 | const customer = viewConfigs?.find(x => x.sName === "sCustomerName") || {}; | 1015 | const customer = viewConfigs?.find(x => x.sName === "sCustomerName") || {}; |
| 952 | const customerProps = { | 1016 | const customerProps = { |
| 953 | ...props, | 1017 | ...props, |
| @@ -995,11 +1059,11 @@ const MasterComponent = props => { | @@ -995,11 +1059,11 @@ const MasterComponent = props => { | ||
| 995 | return ( | 1059 | return ( |
| 996 | <div> | 1060 | <div> |
| 997 | <div className={styles.customer}> | 1061 | <div className={styles.customer}> |
| 998 | - <div>{customerProps.formData.showName}</div> | 1062 | + <div>{customerProps.formData?.showName}</div> |
| 999 | <SelectInput {...customerProps} /> | 1063 | <SelectInput {...customerProps} /> |
| 1000 | </div> | 1064 | </div> |
| 1001 | <div className={styles.customer}> | 1065 | <div className={styles.customer}> |
| 1002 | - <div>{productProps.formData.showName}</div> | 1066 | + <div>{productProps.formData?.showName}</div> |
| 1003 | <SelectInput {...productProps} /> | 1067 | <SelectInput {...productProps} /> |
| 1004 | </div> | 1068 | </div> |
| 1005 | <div className={styles.customer}> | 1069 | <div className={styles.customer}> |
| @@ -1007,28 +1071,36 @@ const MasterComponent = props => { | @@ -1007,28 +1071,36 @@ const MasterComponent = props => { | ||
| 1007 | <div className={styles.sizeBox}> | 1071 | <div className={styles.sizeBox}> |
| 1008 | <div className={styles.sizeItem}> | 1072 | <div className={styles.sizeItem}> |
| 1009 | <div style={{ width: "70%" }}> | 1073 | <div style={{ width: "70%" }}> |
| 1010 | - <SelectInput {...dLengthProps} /> | 1074 | + <SelectInput {...dLengthProps} bCanInput={true} /> |
| 1011 | </div> | 1075 | </div> |
| 1012 | <div style={{ width: "30%", textAlign: "center" }}>X</div> | 1076 | <div style={{ width: "30%", textAlign: "center" }}>X</div> |
| 1013 | </div> | 1077 | </div> |
| 1014 | <div className={styles.sizeItem}> | 1078 | <div className={styles.sizeItem}> |
| 1015 | <div style={{ width: "70%" }}> | 1079 | <div style={{ width: "70%" }}> |
| 1016 | - <SelectInput {...dWidthProps} /> | 1080 | + <SelectInput {...dWidthProps} bCanInput={true} /> |
| 1017 | </div>{" "} | 1081 | </div>{" "} |
| 1018 | - <div style={{ width: "30%", textAlign: "center" }}>X</div> | 1082 | + {Object.keys(dHeight).length > 0 ? ( |
| 1083 | + <div style={{ width: "30%", textAlign: "center" }}>X</div> | ||
| 1084 | + ) : ( | ||
| 1085 | + <div style={{ width: "30%", textAlign: "center" }}>mm</div> | ||
| 1086 | + )} | ||
| 1019 | </div> | 1087 | </div> |
| 1020 | - <div className={styles.sizeItem}> | ||
| 1021 | - <div style={{ width: "70%" }}> | ||
| 1022 | - <SelectInput {...dHeightProps} /> | 1088 | + {Object.keys(dHeight).length > 0 ? ( |
| 1089 | + <div className={styles.sizeItem}> | ||
| 1090 | + <div style={{ width: "70%" }}> | ||
| 1091 | + <SelectInput {...dHeightProps} bCanInput={true} /> | ||
| 1092 | + </div> | ||
| 1093 | + <div style={{ width: "30%", textAlign: "center" }}>mm</div> | ||
| 1023 | </div> | 1094 | </div> |
| 1024 | - <div style={{ width: "30%", textAlign: "center" }}>mm</div> | ||
| 1025 | - </div> | 1095 | + ) : ( |
| 1096 | + "" | ||
| 1097 | + )} | ||
| 1026 | </div> | 1098 | </div> |
| 1027 | </div> | 1099 | </div> |
| 1028 | <div className={styles.sizeBox}> | 1100 | <div className={styles.sizeBox}> |
| 1029 | <div className={styles.customer}> | 1101 | <div className={styles.customer}> |
| 1030 | <div>数量</div> | 1102 | <div>数量</div> |
| 1031 | - <SelectInput {...dProductQtyProps} /> | 1103 | + <SelectInput {...dProductQtyProps} bCanInput={true} /> |
| 1032 | </div> | 1104 | </div> |
| 1033 | <div className={styles.customer}> | 1105 | <div className={styles.customer}> |
| 1034 | <div>单位</div> | 1106 | <div>单位</div> |
| @@ -1047,6 +1119,7 @@ const QuotationTabs = props => { | @@ -1047,6 +1119,7 @@ const QuotationTabs = props => { | ||
| 1047 | const { selectedNode } = state; | 1119 | const { selectedNode } = state; |
| 1048 | const sAllPartsName = selectedNode?.sAllPartsName; | 1120 | const sAllPartsName = selectedNode?.sAllPartsName; |
| 1049 | const sAllPartsNameList = sAllPartsName?.split(","); | 1121 | const sAllPartsNameList = sAllPartsName?.split(","); |
| 1122 | + // sAllPartsNameList.push('+') | ||
| 1050 | const [activeKey, setActiveKey] = useState(sAllPartsNameList && sAllPartsNameList.length ? sAllPartsNameList[0] : null); | 1123 | const [activeKey, setActiveKey] = useState(sAllPartsNameList && sAllPartsNameList.length ? sAllPartsNameList[0] : null); |
| 1051 | 1124 | ||
| 1052 | useEffect(() => { | 1125 | useEffect(() => { |
| @@ -1079,6 +1152,7 @@ const QuotationTabs = props => { | @@ -1079,6 +1152,7 @@ const QuotationTabs = props => { | ||
| 1079 | // 内容 | 1152 | // 内容 |
| 1080 | const BoxComponent = props => { | 1153 | const BoxComponent = props => { |
| 1081 | const { state, boxModel } = props; | 1154 | const { state, boxModel } = props; |
| 1155 | + console.log("🚀 ~ BoxComponent:", props, JsonData); | ||
| 1082 | const { activeKey, slaveConfig, masterData, selectedNode, boxConfig, downAbleConfigs = [], slaveData } = state || {}; | 1156 | const { activeKey, slaveConfig, masterData, selectedNode, boxConfig, downAbleConfigs = [], slaveData } = state || {}; |
| 1083 | const { sModelsId } = props; | 1157 | const { sModelsId } = props; |
| 1084 | const [selectList, setSelectList] = useState([]); | 1158 | const [selectList, setSelectList] = useState([]); |
| @@ -1087,7 +1161,8 @@ const BoxComponent = props => { | @@ -1087,7 +1161,8 @@ const BoxComponent = props => { | ||
| 1087 | const [boxPopup, setBoxPopup] = useState(false); | 1161 | const [boxPopup, setBoxPopup] = useState(false); |
| 1088 | const [boxsList, setBoxsList] = useState([]); | 1162 | const [boxsList, setBoxsList] = useState([]); |
| 1089 | const [selected, setSelected] = useState(null); | 1163 | const [selected, setSelected] = useState(null); |
| 1090 | - const slaveRowDatas = slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === boxModel) || {}; | 1164 | + const slaveRowDatas = slaveData?.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === boxModel) || {}; |
| 1165 | + console.log("🚀 ~ slaveRowDatas:", slaveRowDatas) | ||
| 1091 | const [slaveRowData, setSlaveRowData] = useState(slaveRowDatas); | 1166 | const [slaveRowData, setSlaveRowData] = useState(slaveRowDatas); |
| 1092 | 1167 | ||
| 1093 | // 获取盒型信息 | 1168 | // 获取盒型信息 |
| @@ -1100,6 +1175,7 @@ const BoxComponent = props => { | @@ -1100,6 +1175,7 @@ const BoxComponent = props => { | ||
| 1100 | pageNum: 1, | 1175 | pageNum: 1, |
| 1101 | pageSize: 20, | 1176 | pageSize: 20, |
| 1102 | }; | 1177 | }; |
| 1178 | + | ||
| 1103 | commonServices.postValueService(props.app.token, body, url).then(res => { | 1179 | commonServices.postValueService(props.app.token, body, url).then(res => { |
| 1104 | if (res.data.code === 1) { | 1180 | if (res.data.code === 1) { |
| 1105 | const list = res.data.dataset.rows.map(x => { | 1181 | const list = res.data.dataset.rows.map(x => { |
| @@ -1273,15 +1349,39 @@ const BoxComponent = props => { | @@ -1273,15 +1349,39 @@ const BoxComponent = props => { | ||
| 1273 | 1349 | ||
| 1274 | // 后道参数 | 1350 | // 后道参数 |
| 1275 | const { sBackProcessData } = slaveRowData || []; | 1351 | const { sBackProcessData } = slaveRowData || []; |
| 1276 | - const downViewConfigs = downAbleConfigs | ||
| 1277 | - .filter(item => item.sPartsName === boxModel || !item.sPartsName) | ||
| 1278 | - .map((item, i) => { | ||
| 1279 | - return { | ||
| 1280 | - ...item, | ||
| 1281 | - isSelect: sBackProcessData.length && sBackProcessData[i].sId ? true : false, | ||
| 1282 | - }; | ||
| 1283 | - }); | 1352 | + const [downAbleConfigsNew, setDownAbleConfigsNew] = useState([]); |
| 1353 | + useEffect(() => { | ||
| 1354 | + setDownAbleConfigsNew(downAbleConfigs); | ||
| 1355 | + }, [selectedNode.showName, boxModel]); | ||
| 1284 | 1356 | ||
| 1357 | + // 初始化状态,存储每个 Switch 的状态 | ||
| 1358 | + const [switchStates, setSwitchStates] = useState(null); | ||
| 1359 | + useEffect(() => { | ||
| 1360 | + if (!sBackProcessData) return; | ||
| 1361 | + const newSwitchStates = downAbleConfigsNew | ||
| 1362 | + .filter(item => item.sPartsName === boxModel || !item.sPartsName) | ||
| 1363 | + .reduce((acc, item, index) => { | ||
| 1364 | + acc[item.sName] = sBackProcessData[index][item.sName] !== ""; | ||
| 1365 | + return acc; | ||
| 1366 | + }, {}); | ||
| 1367 | + | ||
| 1368 | + setSwitchStates(newSwitchStates); | ||
| 1369 | + }, [downAbleConfigsNew, boxModel]); // 依赖数组 | ||
| 1370 | + | ||
| 1371 | + // 处理 Switch 变化的函数 | ||
| 1372 | + const handleSwitchChange = (sName, val) => { | ||
| 1373 | + setSwitchStates({ | ||
| 1374 | + ...switchStates, | ||
| 1375 | + [sName]: val, | ||
| 1376 | + }); | ||
| 1377 | + }; | ||
| 1378 | + // 过滤后的数据 | ||
| 1379 | + const downViewConfigs = downAbleConfigsNew | ||
| 1380 | + .filter(item => item.sPartsName === boxModel || !item.sPartsName) | ||
| 1381 | + .map(item => ({ | ||
| 1382 | + ...item, | ||
| 1383 | + isSelect: switchStates ? switchStates[item.sName] : false, | ||
| 1384 | + })); | ||
| 1285 | const downViewProps = { | 1385 | const downViewProps = { |
| 1286 | ...props, | 1386 | ...props, |
| 1287 | viewConfigs: downViewConfigs, | 1387 | viewConfigs: downViewConfigs, |
| @@ -1290,7 +1390,6 @@ const BoxComponent = props => { | @@ -1290,7 +1390,6 @@ const BoxComponent = props => { | ||
| 1290 | viewRow: slaveRowData, | 1390 | viewRow: slaveRowData, |
| 1291 | tableName: `slaveDown${boxModel}`, | 1391 | tableName: `slaveDown${boxModel}`, |
| 1292 | }; | 1392 | }; |
| 1293 | - console.log(downViewProps, "downViewProps"); | ||
| 1294 | 1393 | ||
| 1295 | const calcMethodData = commonUtils.convertStrToObj(slaveRowData?.sColumnNameConfigExclusion, []); | 1394 | const calcMethodData = commonUtils.convertStrToObj(slaveRowData?.sColumnNameConfigExclusion, []); |
| 1296 | const radioValue = calcMethodData[0]?.sCode; | 1395 | const radioValue = calcMethodData[0]?.sCode; |
| @@ -1416,6 +1515,75 @@ const BoxComponent = props => { | @@ -1416,6 +1515,75 @@ const BoxComponent = props => { | ||
| 1416 | } | 1515 | } |
| 1417 | }; | 1516 | }; |
| 1418 | 1517 | ||
| 1518 | + const getTableCloum = (i, child) => { | ||
| 1519 | + if (!sBackProcessData) return; | ||
| 1520 | + const value = sBackProcessData[i]; | ||
| 1521 | + const { bSetArea, bSetQty, sName, sSetQtyUnt } = value; | ||
| 1522 | + const viewConfigs = []; | ||
| 1523 | + if (bSetArea) { | ||
| 1524 | + viewConfigs.push({ | ||
| 1525 | + sName: "dManualLength", | ||
| 1526 | + showName: "x", | ||
| 1527 | + iColValue: bSetQty ? 8 : 12, | ||
| 1528 | + placeholder: "长", | ||
| 1529 | + value: value.dManualLength + "", | ||
| 1530 | + }); | ||
| 1531 | + viewConfigs.push({ | ||
| 1532 | + sName: "dManualWidth", | ||
| 1533 | + showName: "mm", | ||
| 1534 | + iColValue: bSetQty ? 8 : 12, | ||
| 1535 | + placeholder: "宽", | ||
| 1536 | + value: value.dManualWidth + "", | ||
| 1537 | + }); | ||
| 1538 | + } | ||
| 1539 | + if (bSetQty) { | ||
| 1540 | + viewConfigs.push({ | ||
| 1541 | + sName: "dManualQty", | ||
| 1542 | + showName: sSetQtyUnt || "", | ||
| 1543 | + iColValue: bSetArea ? 8 : 24, | ||
| 1544 | + placeholder: "数量", | ||
| 1545 | + value: value.dManualQty + "", | ||
| 1546 | + }); | ||
| 1547 | + } | ||
| 1548 | + const viewProps = { | ||
| 1549 | + ...props, | ||
| 1550 | + viewConfigs: viewConfigs, | ||
| 1551 | + tableConfig: { ...slaveConfig, gdsconfigformslave: viewConfigs }, | ||
| 1552 | + iColValueView: 24, | ||
| 1553 | + viewRow: value, | ||
| 1554 | + tableName: `slaveDown${boxModel}${sName}`, | ||
| 1555 | + onDataChange: (name, sFieldName, changeValue, sId, dropDownData, isWait) => { | ||
| 1556 | + const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); | ||
| 1557 | + const iIndex1 = slaveData[iIndex].sBackProcessData.findIndex(item => item[child.sName]); | ||
| 1558 | + slaveData[iIndex].sBackProcessData[iIndex1][sFieldName] = changeValue; | ||
| 1559 | + const { dManualLength, dManualWidth } = slaveData[iIndex].sBackProcessData[iIndex1]; | ||
| 1560 | + if (dManualLength !== undefined && dManualWidth !== undefined) { | ||
| 1561 | + slaveData[iIndex].sBackProcessData[iIndex1].dManualValue = dManualLength * dManualWidth; | ||
| 1562 | + } | ||
| 1563 | + props.setState(pre => ({ ...pre, slaveData })); | ||
| 1564 | + }, | ||
| 1565 | + }; | ||
| 1566 | + return viewConfigs.length ? ( | ||
| 1567 | + <Grid columns={3} gap={8}> | ||
| 1568 | + {viewProps.viewConfigs.map(x => ( | ||
| 1569 | + <Grid.Item> | ||
| 1570 | + <div className={styles.customer} key={x.id || x.showName} style={{ marginTop: "0", display: "flex", alignItems: "center" }}> | ||
| 1571 | + <Input | ||
| 1572 | + placeholder="" | ||
| 1573 | + value={x.value} | ||
| 1574 | + onChange={e => { | ||
| 1575 | + viewProps.onDataChange("", x.sName, e, ""); | ||
| 1576 | + }} | ||
| 1577 | + ></Input> | ||
| 1578 | + <div style={{ width: "30%", textAlign: "center" }}>{x.showName}</div> | ||
| 1579 | + </div> | ||
| 1580 | + </Grid.Item> | ||
| 1581 | + ))} | ||
| 1582 | + </Grid> | ||
| 1583 | + ) : ( | ||
| 1584 | + "" | ||
| 1585 | + ); | ||
| 1586 | + }; | ||
| 1419 | return ( | 1587 | return ( |
| 1420 | <div> | 1588 | <div> |
| 1421 | <Selector | 1589 | <Selector |
| @@ -1487,14 +1655,16 @@ const BoxComponent = props => { | @@ -1487,14 +1655,16 @@ const BoxComponent = props => { | ||
| 1487 | <div> | 1655 | <div> |
| 1488 | <div>后道参数</div> | 1656 | <div>后道参数</div> |
| 1489 | {downViewProps.viewConfigs.map((x, i) => ( | 1657 | {downViewProps.viewConfigs.map((x, i) => ( |
| 1490 | - <div className={styles.backBox}> | ||
| 1491 | - <div className={styles.backEnd}>{x.showName}</div> | ||
| 1492 | - <Switch | ||
| 1493 | - checked={x.isSelect} | ||
| 1494 | - onChange={async val => { | ||
| 1495 | - console.log(val, x, "val"); | ||
| 1496 | - }} | ||
| 1497 | - /> | 1658 | + <div> |
| 1659 | + <div className={styles.backBox}> | ||
| 1660 | + <div className={styles.backEnd}>{x.showName}</div> | ||
| 1661 | + <Switch checked={switchStates ? switchStates[x.sName] : ""} onChange={val => handleSwitchChange(x.sName, val)} /> | ||
| 1662 | + <div className={styles.customer} style={{ marginTop: "0", marginLeft: "2rem", width: "40%" }}> | ||
| 1663 | + <SelectInput {...downViewProps} itemDetail={x} downIndex={i} /> | ||
| 1664 | + </div> | ||
| 1665 | + {/* <div>{downViewProps.viewRow.sBackProcessData[i].bSetArea === 1 ? downViewProps.viewRow.sBackProcessData[i].bSetArea : ""}</div> */} | ||
| 1666 | + </div> | ||
| 1667 | + {getTableCloum(i, x)} | ||
| 1498 | </div> | 1668 | </div> |
| 1499 | ))} | 1669 | ))} |
| 1500 | </div> | 1670 | </div> |
| @@ -1542,8 +1712,10 @@ const BoxComponent = props => { | @@ -1542,8 +1712,10 @@ const BoxComponent = props => { | ||
| 1542 | ...data, | 1712 | ...data, |
| 1543 | ...Object.assign({}, ...slaveNewData), | 1713 | ...Object.assign({}, ...slaveNewData), |
| 1544 | }; | 1714 | }; |
| 1545 | - setSlaveRowData(rowData); | ||
| 1546 | - // props.setState(pre => ({ ...pre, slaveRowData:rowData })); | 1715 | + console.log("🚀 ~ rowData:", rowData); |
| 1716 | + | ||
| 1717 | + // setSlaveRowData(rowData); | ||
| 1718 | + props.setState(pre => ({ ...pre, slaveRowData: rowData })); | ||
| 1547 | setBoxPopup(false); | 1719 | setBoxPopup(false); |
| 1548 | }} | 1720 | }} |
| 1549 | > | 1721 | > |
| @@ -1562,7 +1734,8 @@ const BoxComponent = props => { | @@ -1562,7 +1734,8 @@ const BoxComponent = props => { | ||
| 1562 | // 材料组件 | 1734 | // 材料组件 |
| 1563 | const MaterialsComponent = props => { | 1735 | const MaterialsComponent = props => { |
| 1564 | const { state, boxModel } = props; | 1736 | const { state, boxModel } = props; |
| 1565 | - const { slaveRowData, slaveConfig, slaveData = [], selectedNode = {} } = state; | 1737 | + const { slaveConfig, slaveData = [], selectedNode = {} } = state; |
| 1738 | + let { slaveRowData } = state; | ||
| 1566 | if (!slaveRowData) return; | 1739 | if (!slaveRowData) return; |
| 1567 | const { sParam = "" } = selectedNode; | 1740 | const { sParam = "" } = selectedNode; |
| 1568 | const sParamList = sParam.split(","); | 1741 | const sParamList = sParam.split(","); |
| @@ -1613,6 +1786,7 @@ const MaterialsComponent = props => { | @@ -1613,6 +1786,7 @@ const MaterialsComponent = props => { | ||
| 1613 | const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); | 1786 | const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId); |
| 1614 | if (iIndex !== -1) { | 1787 | if (iIndex !== -1) { |
| 1615 | slaveData[iIndex].materialsInfo = materialsInfo.map((item, i) => (i === index ? { ...item, ...changeValue } : item)); | 1788 | slaveData[iIndex].materialsInfo = materialsInfo.map((item, i) => (i === index ? { ...item, ...changeValue } : item)); |
| 1789 | + slaveRowData = slaveData[iIndex]; | ||
| 1616 | } else { | 1790 | } else { |
| 1617 | const { selectedNode = {} } = state; | 1791 | const { selectedNode = {} } = state; |
| 1618 | const { showName: sTreeNodeName } = selectedNode; | 1792 | const { showName: sTreeNodeName } = selectedNode; |
| @@ -1624,8 +1798,7 @@ const MaterialsComponent = props => { | @@ -1624,8 +1798,7 @@ const MaterialsComponent = props => { | ||
| 1624 | materialsInfo: materialsInfo.map((item, i) => (i === index ? { ...item, ...changeValue } : item)), | 1798 | materialsInfo: materialsInfo.map((item, i) => (i === index ? { ...item, ...changeValue } : item)), |
| 1625 | }); | 1799 | }); |
| 1626 | } | 1800 | } |
| 1627 | - | ||
| 1628 | - props.setState(pre => ({ ...pre, slaveData, ...extraState })); | 1801 | + props.setState(pre => ({ ...pre, slaveData, slaveRowData, ...extraState })); |
| 1629 | }, | 1802 | }, |
| 1630 | }; | 1803 | }; |
| 1631 | 1804 | ||
| @@ -1664,7 +1837,8 @@ const MaterialsComponent = props => { | @@ -1664,7 +1837,8 @@ const MaterialsComponent = props => { | ||
| 1664 | materialsInfo: materialsInfoNew, | 1837 | materialsInfo: materialsInfoNew, |
| 1665 | }); | 1838 | }); |
| 1666 | } | 1839 | } |
| 1667 | - props.setState(pre => ({ ...pre, slaveData, ...extraState })); | 1840 | + slaveRowData.materialsInfo = materialsInfoNew; |
| 1841 | + props.setState(pre => ({ ...pre, slaveData, slaveRowData, ...extraState })); | ||
| 1668 | }} | 1842 | }} |
| 1669 | > | 1843 | > |
| 1670 | <AddOutline /> | 1844 | <AddOutline /> |
| @@ -1689,7 +1863,8 @@ const MaterialsComponent = props => { | @@ -1689,7 +1863,8 @@ const MaterialsComponent = props => { | ||
| 1689 | const materialsInfoNew = [...materialsInfo]; | 1863 | const materialsInfoNew = [...materialsInfo]; |
| 1690 | materialsInfoNew.splice(rowIndex, 1); | 1864 | materialsInfoNew.splice(rowIndex, 1); |
| 1691 | slaveData[iIndex].materialsInfo = materialsInfoNew; | 1865 | slaveData[iIndex].materialsInfo = materialsInfoNew; |
| 1692 | - props.setState(pre => ({ ...pre, slaveData, ...extraState })); | 1866 | + slaveRowData.materialsInfo = materialsInfoNew; |
| 1867 | + props.setState(pre => ({ ...pre, slaveData, slaveRowData, ...extraState })); | ||
| 1693 | }} | 1868 | }} |
| 1694 | > | 1869 | > |
| 1695 | <MinusOutline /> | 1870 | <MinusOutline /> |
| @@ -1720,18 +1895,20 @@ const ManyComponent = props => { | @@ -1720,18 +1895,20 @@ const ManyComponent = props => { | ||
| 1720 | })} | 1895 | })} |
| 1721 | </div> | 1896 | </div> |
| 1722 | <div> | 1897 | <div> |
| 1723 | - {data.map(item => { | ||
| 1724 | - return ( | ||
| 1725 | - <div className={styles.tableBox}> | ||
| 1726 | - <div className={styles.tableBody}>{item.dManyQty}</div> | ||
| 1727 | - <div className={styles.tableBody}>{item.dPrintMoney}</div> | ||
| 1728 | - <div className={styles.tableBody}>{item.dAfterProcessMoney}</div> | ||
| 1729 | - <div className={styles.tableBody}>{item.dMaterialsMoney}</div> | ||
| 1730 | - <div className={styles.tableBody}>{item.dManyPrice}</div> | ||
| 1731 | - <div className={styles.tableBody}> {item.dDiscountMoney}</div> | ||
| 1732 | - </div> | ||
| 1733 | - ); | ||
| 1734 | - })} | 1898 | + {data && data.length |
| 1899 | + ? data.map(item => { | ||
| 1900 | + return ( | ||
| 1901 | + <div className={styles.tableBox}> | ||
| 1902 | + <div className={styles.tableBody}>{item.dManyQty}</div> | ||
| 1903 | + <div className={styles.tableBody}>{item.dPrintMoney}</div> | ||
| 1904 | + <div className={styles.tableBody}>{item.dAfterProcessMoney}</div> | ||
| 1905 | + <div className={styles.tableBody}>{item.dMaterialsMoney}</div> | ||
| 1906 | + <div className={styles.tableBody}>{item.dManyPrice}</div> | ||
| 1907 | + <div className={styles.tableBody}> {item.dDiscountMoney}</div> | ||
| 1908 | + </div> | ||
| 1909 | + ); | ||
| 1910 | + }) | ||
| 1911 | + : ""} | ||
| 1735 | </div> | 1912 | </div> |
| 1736 | </div> | 1913 | </div> |
| 1737 | ); | 1914 | ); |