Commit 7f17dfc3a02152d303e03e96a26eb0ce820df9c5

Authored by 陈鑫涛
1 parent 676f1770

快速报价app

Too many changes to show.

To preserve performance only 2 of 6 files are displayed.

src/mobile/components/SelectInput.jsx
... ... @@ -15,22 +15,20 @@ const SelectInput = props => {
15 15 const [searchValue, setSearchValue] = useState("");
16 16 const [visible, setVisible] = useState(false);
17 17 const { sId } = props.itemDetail || {};
18   - const { viewRow, itemDetail, sModelsId, sValue, name, id, No, quotationData, showDropDown } = props || {};
  18 + const { tableName, viewRow, itemDetail, sModelsId, sValue, name, id, No, quotationData, showDropDown } = props || {};
  19 + const { masterData } = props.state;
19 20 const [bCanInput, setBCanInput] = useState(props.bCanInput);
20 21 const { bReadonly } = itemDetail || {};
21   - console.log("🚀 ~ formDatassss:", bReadonly);
22   -
23 22 // useEffect(() => {
24 23 // setValue(props.sValue || ""); // 动态更新 value
25 24 // }, [props.sValue]);
26 25 useEffect(() => {
27   - if (!itemDetail) return;
28   - console.log(itemDetail.sName, 'viewRowNew');
  26 + if (!itemDetail) return;
  27 + console.log(itemDetail, tableName, "viewRowNew");
29 28  
30   - const viewRowNew = itemDetail.sName ? viewRow?.[itemDetail.sName] : "";
31   - console.log("🚀 ~ useEffect ~ viewRowNew:", viewRowNew);
32   - setValue(viewRowNew || ""); // 动态更新 value
33   -}, [itemDetail, itemDetail?.sName, viewRow]);
  29 + const viewRowNew = itemDetail.sName ? viewRow?.[itemDetail.sName] : "";
  30 + setValue(viewRowNew || ""); // 动态更新 value
  31 + }, [itemDetail, itemDetail?.sName, viewRow]);
34 32 const [columns, setColumns] = useState([]);
35 33 const [coplyColumns, setCopyColumns] = useState(columns);
36 34 const getSqlDropDownData = async searchValue => {
... ... @@ -46,7 +44,7 @@ const SelectInput = props => {
46 44 commonServices.postValueService(props.app.token, body, url).then(res => {
47 45 if (res.data.code === 1) {
48 46 const list = res.data.dataset.rows?.map(item => ({
49   - label: item.sCustomerName || item.sName || item.sProcessName || item.sColorName,
  47 + label: item.sCustomerName || item.sName || item.sProcessName || item.sColorName || item.sMaterialsName,
50 48 value: item.sId || item.sSlaveId,
51 49 }));
52 50 setColumns(list);
... ... @@ -84,6 +82,8 @@ const SelectInput = props => {
84 82 debouncedChangeOption(val);
85 83 };
86 84 useEffect(() => {
  85 + console.log("🚀 ~ useEffect ~ itemDetailssss:", itemDetail)
  86 +
87 87 if (!visible) return;
88 88 let { sDropDownType } = itemDetail;
89 89 if (sDropDownType === "sql") {
... ... @@ -105,8 +105,6 @@ const SelectInput = props => {
105 105 useCallback;
106 106  
107 107 const clickBtn = () => {
108   - console.log(itemDetail, "clickBtn");
109   -
110 108 setVisible(true);
111 109 };
112 110 return (
... ... @@ -117,7 +115,13 @@ const SelectInput = props => {
117 115 value={value}
118 116 onChange={val => {
119 117 setValue(val);
120   - props.setState(pre => ({ ...pre,[itemDetail.sName]:val}));
  118 + // 如果是master
  119 + if (tableName === "master") {
  120 + masterData[itemDetail.sName] = val;
  121 + props.setState(pre => ({ ...pre, masterData }));
  122 + } else {
  123 + props.setState(pre => ({ ...pre, [itemDetail.sName]: val }));
  124 + }
121 125 }}
122 126 readOnly={bReadonly}
123 127 />
... ...
src/mobile/quotation/detailNew.jsx
... ... @@ -896,16 +896,23 @@ const QuickQuoteEvent = props => {
896 896 masterConfig: masterConfig && masterConfig.length ? masterConfig[0] : {},
897 897 };
898 898 };
  899 +const getProps = props => {
  900 + const { state } = props;
899 901  
  902 + return {
  903 + ...props,
  904 + };
  905 +};
900 906 const QuotationAllprogressDetail = baseProps => {
901 907 // const props = QuickQuoteEvent(baseProps);
902 908 const [state, setState] = useState(JsonData.state);
903   - const props = {
  909 + const propss = {
904 910 ...baseProps,
905 911 ...JsonData,
906 912 setState,
907 913 state,
908 914 };
  915 + const props = getProps(propss);
909 916 return (
910 917 <div className={styles.quotationDetailBox}>
911 918 <QuotationDetail {...props} />
... ... @@ -914,10 +921,9 @@ const QuotationAllprogressDetail = baseProps =&gt; {
914 921 };
915 922  
916 923 const QuotationDetail = props => {
917   - const { location, app, sModelsId, state, masterData, selectedNode = {} } = props;
918   - console.log("🚀 ~ QuotationDetail:", props);
  924 + const { location, app, sModelsId, state, selectedNode = {} } = props;
919 925 const { token } = app;
920   - const { formData = [], masterConfig } = state || {};
  926 + const { formData = [], masterConfig, slaveRowData, masterData } = state || {};
921 927 const { quotationData } = JSON.parse(location.state) || {};
922 928 if (!masterConfig) return;
923 929 //masterData 主表数据
... ... @@ -931,7 +937,6 @@ const QuotationDetail = props =&gt; {
931 937 viewRow: { ...masterData, sProductClassifyId: selectedNode.sId },
932 938 tableName: "master",
933 939 };
934   - console.log("🚀 ~ viewProps:", viewProps);
935 940  
936 941 return (
937 942 <div>
... ... @@ -947,64 +952,48 @@ const QuotationDetail = props =&gt; {
947 952 );
948 953 };
949 954 const MasterComponent = props => {
950   - console.log("🚀 ~ MasterComponent:", props);
951 955 const { viewConfigs, masterData } = props;
952 956  
953 957 const customer = viewConfigs?.find(x => x.sName === "sCustomerName") || {};
954 958 const customerProps = {
955 959 ...props,
956 960 itemDetail: customer,
957   - sValue: masterData.sCustomerName,
958   - id: masterData.sCustomerId,
959   - No: masterData.sCustomerNo,
960 961 };
961 962 const product = viewConfigs?.find(x => x.sName === "sProductName") || {};
962 963 const productProps = {
963 964 ...props,
964 965 itemDetail: product,
965   - bCanInput: true,
966   - sValue: masterData.sProductName,
967 966 };
968 967 const dLength = viewConfigs?.find(x => x.sName === "dLength") || {};
969 968  
970 969 const dLengthProps = {
971 970 ...props,
972 971 itemDetail: dLength,
973   - bCanInput: true,
974   - sValue: masterData.dLength,
975 972 };
976 973 const dWidth = viewConfigs?.find(x => x.sName === "dWidth") || {};
977 974 const dWidthProps = {
978 975 ...props,
979 976 itemDetail: dWidth,
980   - bCanInput: true,
981   - sValue: masterData.dWidth,
982 977 };
983 978 const dHeight = viewConfigs?.find(x => x.sName === "dHeight") || {};
984 979 const dHeightProps = {
985 980 ...props,
986 981 itemDetail: dHeight,
987   - bCanInput: true,
988   - sValue: masterData.dHeight,
989 982 };
990 983 const dProductQty = viewConfigs?.find(x => x.sName === "dProductQty") || {};
991 984 const dProductQtyProps = {
992 985 ...props,
993 986 itemDetail: dProductQty,
994   - bCanInput: true,
995   - sValue: masterData.dProductQty,
996 987 };
997 988 const sProductUnit = viewConfigs?.find(x => x.sName === "sProductUnit") || {};
998 989 const sProductUnitProps = {
999 990 ...props,
1000 991 itemDetail: sProductUnit,
1001   - sValue: masterData.sProductUnit,
1002 992 };
1003 993 const sDeliverName = viewConfigs?.find(x => x.sName === "sDeliverName") || {};
1004 994 const sDeliverNameProps = {
1005 995 ...props,
1006 996 itemDetail: sDeliverName,
1007   - sValue: masterData.sDeliverName,
1008 997 };
1009 998 const baseProps = {
1010 999 ...props,
... ... @@ -1097,15 +1086,16 @@ const QuotationTabs = props =&gt; {
1097 1086 const BoxComponent = props => {
1098 1087 const { state, boxModel } = props;
1099 1088 const { activeKey, slaveConfig, masterData, selectedNode, boxConfig, downAbleConfigs = [], slaveData } = state || {};
1100   - console.log("🚀 ~ BoxComponent:", slaveData);
1101 1089 const { sModelsId } = props;
1102 1090 const [selectList, setSelectList] = useState([]);
1103 1091 const [boxTypeList, setBoxTypeList] = useState([]);
1104 1092 const [searchValue, setSearchValue] = useState("");
1105   - const [slaveRowData, setSlaveRowData] = useState(null);
1106 1093 const [boxPopup, setBoxPopup] = useState(false);
1107 1094 const [boxsList, setBoxsList] = useState([]);
1108 1095 const [selected, setSelected] = useState(null);
  1096 + const slaveRowDatas = slaveData.find(item => item.sTreeNodeName === selectedNode.showName && item.sBoxModel === boxModel) || {};
  1097 + const [slaveRowData, setSlaveRowData] = useState(slaveRowDatas);
  1098 +
1109 1099 // 获取盒型信息
1110 1100 useEffect(() => {
1111 1101 const sId = "17428091410008594700322758474000";
... ... @@ -1288,21 +1278,26 @@ const BoxComponent = props =&gt; {
1288 1278 const upViewProps20 = getUpViewPropsByITag(20);
1289 1279  
1290 1280 // 后道参数
  1281 + const { sBackProcessData } = slaveRowData || [];
  1282 + const downViewConfigs = downAbleConfigs
  1283 + .filter(item => item.sPartsName === boxModel || !item.sPartsName)
  1284 + .map((item, i) => {
  1285 + return {
  1286 + ...item,
  1287 + isSelect: sBackProcessData.length && sBackProcessData[i].sId ? true : false,
  1288 + };
  1289 + });
  1290 +
1291 1291 const downViewProps = {
1292 1292 ...props,
1293   - viewConfigs: downAbleConfigs
1294   - .filter(item => item.sPartsName === boxModel || !item.sPartsName)
1295   - .map(item => {
1296   - return {
1297   - ...item,
1298   - isSelect: false,
1299   - };
1300   - }),
  1293 + viewConfigs: downViewConfigs,
1301 1294 tableConfig: { ...slaveConfig, gdsconfigformslave: downAbleConfigs },
1302 1295 iColValueView: 24,
1303 1296 viewRow: slaveRowData,
1304 1297 tableName: `slaveDown${boxModel}`,
1305 1298 };
  1299 + console.log(downViewProps,'downViewProps');
  1300 +
1306 1301 const calcMethodData = commonUtils.convertStrToObj(slaveRowData?.sColumnNameConfigExclusion, []);
1307 1302 const radioValue = calcMethodData[0]?.sCode;
1308 1303 const [materialLength, setMaterialLength] = useState(0);
... ... @@ -1444,7 +1439,7 @@ const BoxComponent = props =&gt; {
1444 1439 // };
1445 1440 // setSlaveRowData(rowData);
1446 1441 // setSelected(selectListDetail?.sBoxType);
1447   - },[slaveData]);
  1442 + }, [slaveData]);
1448 1443 return (
1449 1444 <div>
1450 1445 <Selector
... ... @@ -1511,14 +1506,15 @@ const BoxComponent = props =&gt; {
1511 1506 </div>
1512 1507 </div>
1513 1508 <div>
1514   - <MaterialsComponent {...props} />
  1509 + <MaterialsComponent {...props} slaveRowData={slaveRowData} boxModel={boxModel} />
1515 1510 </div>
1516 1511 <div>
1517 1512 <div>后道参数</div>
1518 1513 {downViewProps.viewConfigs.map((x, i) => (
1519   - <div>
1520   - {x.showName}
  1514 + <div className={styles.backBox}>
  1515 + <div className={styles.backEnd}>{x.showName}</div>
1521 1516 <Switch
  1517 + checked={x.isSelect}
1522 1518 onChange={async val => {
1523 1519 console.log(val, x, "val");
1524 1520 }}
... ... @@ -1571,6 +1567,7 @@ const BoxComponent = props =&gt; {
1571 1567 ...Object.assign({}, ...slaveNewData),
1572 1568 };
1573 1569 setSlaveRowData(rowData);
  1570 + // props.setState(pre => ({ ...pre, slaveRowData:rowData }));
1574 1571 setBoxPopup(false);
1575 1572 }}
1576 1573 >
... ... @@ -1615,7 +1612,6 @@ const MaterialsComponent = props =&gt; {
1615 1612 return item;
1616 1613 }
1617 1614 });
1618   -
1619 1615 const extraState = {
1620 1616 calcPriceFinished: false,
1621 1617 manyData: [],
... ... @@ -1662,7 +1658,7 @@ const MaterialsComponent = props =&gt; {
1662 1658 材料信息
1663 1659 <div className={styles.materialsLine}>
1664 1660 <div className={styles.selectInput} style={{ width: "50%" }}>
1665   - <SelectInput {...viewProps} />
  1661 + <SelectInput {...viewProps} itemDetail={materialsConfigNew[0]} />
1666 1662 </div>
1667 1663 <div className={styles.materialBtns}>
1668 1664 <div className={styles.materialBtns}>
... ... @@ -1711,8 +1707,16 @@ const MaterialsComponent = props =&gt; {
1711 1707 }
1712 1708 : { width: "1.93rem", height: "1.93rem", display: "flex", justifyContent: "center", alignItems: "center", textAlign: "center" }
1713 1709 }
  1710 + onClick={() => {
  1711 + const iIndex = slaveData.findIndex(item => item.sId === slaveRowData.sId);
  1712 + const rowIndex = materialsInfo.findIndex((item, i) => i === index);
  1713 + const materialsInfoNew = [...materialsInfo];
  1714 + materialsInfoNew.splice(rowIndex, 1);
  1715 + slaveData[iIndex].materialsInfo = materialsInfoNew;
  1716 + props.setState(pre => ({ ...pre, slaveData, ...extraState }));
  1717 + }}
1714 1718 >
1715   - <AddOutline />
  1719 + <MinusOutline />
1716 1720 </Button>
1717 1721 </div>
1718 1722 </div>
... ...