import React, { PureComponent } from "react"; import { connect } from "dva"; import { Menu, Icon, Pagination, Table, Radio, Tabs, Row, Col, Card, Checkbox, message, Select } from "antd"; import styles from "./index.less"; import imgSrc from "./goods-img.png"; import GoodsBuyIpt from "../GoodsBuyIpt/index.js"; import EmptyData from "@/components/EmptyData/index"; import GridTable from "../GridTable/index"; import GoodsOptsDialog from "@/components/GoodsOptsDialog/index"; import { translateItemBomFromItem } from "@/pages/Buyer/orderEdit/orderTools"; import { goodsVersion, amountPrecision, unitPrecision } from '@/utils/common'; const RadioGroup = Radio.Group; const TabPane = Tabs.TabPane; const Option = Select.Option; class OrderGoodsList extends PureComponent { constructor(props) { super(props); this.state = { goodsOptsParam: { rowData: {} }, selectedGiftProms: [], // 选中的赠品行 selectedGoodsValues: [], // 选中复选框项 selectedPromStyle: "" // 选择促销 }; const { ifEditable } = this.props; this.columns = [ { title: "商品", dataIndex: "goodsId", key: "goodsId", width: "280px", render: (text, record, index) => (
{Number(index) + 1}

{record.goodsDisplayName}

编码:{record.goodsCode} 规格:{record.specification}

型号:{record.model}

{record.isGift == 1 ? "赠" : ""}

) }, { title: "商品选配", dataIndex: "baseGoodsOptValue", key: "baseGoodsOptValue", align: "right", render: (text, record, index) => { if (record.isOptional || record.baseGoodsOptValue) { return ( {record.baseGoodsOptValue || "添加选配"} ); } else { return null; } } }, { title: "单价", dataIndex: "salePrice", key: "salePrice", className: "alignRight", render: (text, record, index) => ( {amountPrecision(record.salePrice, "price", record.currencySign, 2)} /{record.mainNumUnitName} ) }, { title: "成交价", dataIndex: "dealPrice", key: "dealPrice", className: "alignRight", render: (text, record, index) => ( {amountPrecision(record.dealPrice, "price", record.currencySign, 2)} /{record.mainNumUnitName} ) }, // { // title: "库存量", // dataIndex: "stock", // key: "stock", // className: "alignRight", // render: (text, record, index) => ( // // {record.stock} // // {record.mainNumUnitName} // // // ) // }, { title: "订货量", dataIndex: "orderNum", key: "orderNum", className: ifEditable ? "thAlignCenter" : "alignRight", render: (text, record, index) => { if (!ifEditable) { return ( {record.orderNum} {record.orderNumUnitName} ); } else { return (
{record.orderNumUnitName}
); } } }, // { // title: "主数量", // dataIndex: "mainNum", // key: "mainNum", // className: "alignRight", // render: (text, record, index) => ( // // {record.mainNum} // // {record.mainNumUnitName} // // // ) // }, { title: "重量", dataIndex: "rowWeight", key: "rowWeight", className: "alignRight", render: (text, record, index) => ( {(text || 0).toFixed(2)} {record.weightUnitName || ""} ) }, // { // title: "体积", // dataIndex: "rowVolume", // key: "rowVolume", // className: "alignRight", // render: (text, record, index) => ( // // {(text || 0).toFixed(record.volumeUnitPrecision || 2)} // {record.volumeUnitName || ""} // // ) // }, { title: "金额", dataIndex: "amount", key: "amount", width: "100px", className: "alignRight", render: (text, record, index) => ( {amountPrecision(record.amount, "amount", record.currencySign, 2)} ) }, { title: "成交金额", dataIndex: "dealAmount", key: "dealAmount", width: "100px", className: "alignRight", render: (text, record, index) => (
{amountPrecision(record.dealAmount, "amount", record.currencySign, 2)}
) }, // { // title: "项目", // dataIndex: "projectId", // key: "projectId", // className: "thAlignCenter", // render: (text, record, index) => ( // // ) // }, { title: "", dataIndex: "operation", key: "operation", width: "20px", render: (text, record, index) => { if (ifEditable) { return (
); } } } ]; this.bomColumns = [ { title: "商品", dataIndex: "goodsId", key: "goodsId-bom", width: "25%", render: (text, record, index) => (

{record.goodsDisplayName}

{record.goodsCode}{goodsVersion(record.version)}

{record.isGift == 1 ? "赠" : ""}

) }, { title: "选配", dataIndex: "baseGoodsOptValue", key: "baseGoodsOptValue-bom", width: "15%", render: (text, record, index) => ( {record.baseGoodsOptValue} ) }, { title: "母件行号", dataIndex: "parentRowNum", key: "parentRowNum", width: "10%", className: "alignRight", render: (text, record, index) => ( {text} ) }, { title: "母件商品名称", dataIndex: "parentGoodsName", key: "parentGoodsName", width: "12%", className: "alignRight", render: (text, record, index) => ( {text} ) }, { title: "母件商品编码", dataIndex: "parentGoodsCode", key: "parentGoodsCode", width: "12%", className: "alignRight", render: (text, record, index) => ( {text} ) }, // { // title: "重量", // dataIndex: "rowWeight", // key: "rowWeight-bom", // className: "alignRight", // render: (text, record, index) => ( // // {(text || 0).toFixed(record.weightUnitPrecision || 2)} // {record.weightUnitName || ""} // // ) // }, // { // title: "单价", // dataIndex: "salePrice", // key: "salePrice-bom", // className: "alignRight", // render: (text, record, index) => ( // // // {amountPrecision(record.salePrice, "price", record.currencySign, record.currencyPriceScale)} // // // /{record.mainNumUnitName} // // // ) // }, // { // title: "成交价", // dataIndex: "dealPrice", // key: "dealPrice-bom", // className: "alignRight", // render: (text, record, index) => ( // // // {amountPrecision(record.dealPrice, "price", record.currencySign, record.currencyPriceScale)} // // // /{record.mainNumUnitName} // // // ) // }, { title: "订货量", dataIndex: "orderNum", key: "orderNum-bom", width: "12%", className: "alignRight", render: (text, record, index) => ( {record.orderNum} {record.orderNumUnitName} ) }, { title: "主数量", dataIndex: "mainNum", key: "mainNum-bom", width: "12%", className: "alignRight", render: (text, record, index) => ( {record.mainNum} {record.mainNumUnitName} ) }, // { // title: "重量", // dataIndex: "rowWeight", // key: "rowWeight-bom", // className: "alignRight", // render: (text, record, index) => ( // // {(text || 0).toFixed(record.weightUnitPrecision || 2)} // {record.weightUnitName || ""} // // ) // }, // { // title: "体积", // dataIndex: "rowVolume", // key: "rowVolume-bom", // className: "alignRight", // render: (text, record, index) => ( // // {(text || 0).toFixed(record.volumeUnitPrecision || 2)} // {record.volumeUnitName || ""} // // ) // }, // { // title: "金额", // dataIndex: "amount", // key: "amount-bom", // width: "100px", // className: "alignRight", // render: (text, record, index) => ( // // {amountPrecision(record.amount, "amount", record.currencySign, record.currencyAmountScale)} // // ) // }, // { // title: "成交金额", // dataIndex: "dealAmount", // key: "dealAmount-bom", // width: "100px", // className: "alignRight", // render: (text, record, index) => ( //
// // {amountPrecision(record.dealAmount, "amount", record.currencySign, record.currencyAmountScale)} // //
// ) // } ]; this.giftColumns = [ { title: "商品", dataIndex: "goodsId", key: "goodsId-gift", width: "70%", className: "thAlignCenter", render: (text, record, index) => (

{record.goodsDisplayName}

) }, { title: "订货量", dataIndex: "orderNum", key: "orderNum-gift", width: "20%", className: "alignRight", render: (text, record, index) => { let step = 1; if (record.combineType == 1) { step = (parseFloat(record.goodCombineNum) / parseFloat(record.conversionRate || "1")).toFixed(record.orderNumUnitScale || 0); } const disabled = (step == 1 ? false : true); return (
{record.orderNumUnitName}
); } }, { title: "操作", dataIndex: "operation", key: "operation-gift", width: "10%", className: "alignRight", render: (text, record, index) => { return (
删除
); } } ]; } componentWillReceiveProps(nextProps) { if ("orderCartData" in nextProps) { const orderCartData = nextProps.orderCartData; let totalDealAmount = 0; // 商品促销后总金额 // 封装商品行金额信息 for (let i = 0; i < orderCartData.length; i++) { if (orderCartData[i].isGift == 1) { continue; } orderCartData[i].mainNum = +(parseFloat(orderCartData[i].mainNum).toFixed(orderCartData[i].mainNumUnitScale || 0)); orderCartData[i].orderNum = +(parseFloat(orderCartData[i].orderNum).toFixed(orderCartData[i].orderNumUnitScale || 0)); // 计算体积、重量 orderCartData[i].rowVolume = parseFloat(orderCartData[i].volume || "0") * parseFloat(orderCartData[i].mainNum); orderCartData[i].rowWeight = parseFloat(orderCartData[i].weight || "0") * parseFloat(orderCartData[i].mainNum); // 计算商品金额:基准价 * 主数量 orderCartData[i].amount = parseFloat(orderCartData[i].salePrice || "0") * parseFloat(orderCartData[i].mainNum || "0"); // 计算促销后金额:促销价 * 主数量 - 均摊促销金额(整单降价均摊) const afterPromAmount = parseFloat(orderCartData[i].promPrice || "0") * parseFloat(orderCartData[i].mainNum || "0"); orderCartData[i].dealAmount = afterPromAmount - parseFloat(orderCartData[i].promAmount || "0"); totalDealAmount += afterPromAmount - parseFloat(orderCartData[i].promAmount || "0"); orderCartData[i].ext09 = orderCartData[i].salePrice || "0"; orderCartData[i].ext10 = afterPromAmount - parseFloat(orderCartData[i].promAmount || "0");; } // 冲抵费用均摊 const offsetAmount = parseFloat(nextProps.offsetAmount || "0"); if (offsetAmount > 0) { // 把冲抵费用均摊到商品行 const occupyRate = offsetAmount / totalDealAmount; let occupyStep = offsetAmount; for (let j = 0; j < orderCartData.length; j++) { if (orderCartData[j].isGift == 1) { continue; } if (j == orderCartData.length - 1) { orderCartData[j].offsetAmount = occupyStep; orderCartData[j].dealAmount -= occupyStep; break; } const dealAmout = parseFloat(orderCartData[j].promPrice || "0") * parseFloat(orderCartData[j].mainNum || "0") - parseFloat(orderCartData[j].promAmount || "0"); const offsetAmt = +(parseFloat(dealAmout * occupyRate).toFixed( orderCartData[j].currencyAmountScale )); occupyStep -= offsetAmt; orderCartData[j].offsetAmount = offsetAmt; orderCartData[j].dealAmount -= offsetAmt; } } // 计算成交价 orderCartData.forEach(item => item.dealPrice = item.dealAmount / item.mainNum); this.sumFun(orderCartData); } if ("promotionInfoData" in nextProps) { const promotionInfoData = nextProps.promotionInfoData; if (promotionInfoData) { // 默认选择的促销维度 const mutualRelationShip = promotionInfoData.mutualRelationShip; const { selectedPromStyle } = this.state; this.setState({ selectedPromStyle: selectedPromStyle ? selectedPromStyle : (mutualRelationShip ? mutualRelationShip[0].join(",") : "") }); // 对selectedGiftProms 进行封装,以方便后续赠品的勾选与移除 const giftProms = promotionInfoData.giftProms; if (giftProms) { const { selectedGiftProms } = this.state; const newGiftProms = giftProms.map(giftProm => { const findGiftProm = selectedGiftProms.find( item => `${item.activityId}${item.ruleId}` == `${giftProm.activityId}${giftProm.ruleId}` ); if (findGiftProm) { return findGiftProm; } else { const newGiftProm = Object.assign({}, giftProm, { giftDtos: null }); return newGiftProm; } }); this.setState({ selectedGiftProms: newGiftProms }); } } else { this.setState({ selectedPromStyle: "", selectedGoodsValues: [], selectedGiftProms: [] }); } } } onGoodsOptionalHandle(goods, index) { // const goodsOptsParam = { // rowData: goods, // goodsId: goods.goodsId, // baseGoodsOptId: goods.baseGoodsOptId, // rowIndex: index // }; // this.setState({ // goodsOptsParam: goodsOptsParam // }, () => { // this.props.dispatch({ // type: "global/goodsOptsVisible", // payload: true // }); // }); this.props.optClick && this.props.optClick(goods, index) } // 选择促销方式 onRadioChangeHandle(e) { e.preventDefault(); const { dispatch, promotionChange } = this.props; this.setState({ selectedPromStyle: e.target.value }); promotionChange(e.target.value); } // 勾选赠品 onCheckBoxChange(gift, giftDtos, e) { let { selectedGiftProms, selectedGoodsValues } = this.state; // todo... // 判断勾选的赠品是否固定组合 let isCombine = false; let combineGifts = []; const key = `${gift.activityId}${gift.ruleId}`; const goodsId = gift.goodsId; const conversionRate = parseFloat(gift.conversionRate || "1"); const goodsAmout = parseFloat(gift.goodsAmout || "0"); let orderNum = parseFloat(goodsAmout / conversionRate); let mainNum = goodsAmout; if (gift.combineType == 1) { const goodCombineNum = gift.goodCombineNum; orderNum = parseFloat(goodCombineNum / conversionRate); mainNum = goodCombineNum; isCombine = true; combineGifts = giftDtos.filter(item => item.giftId == gift.giftId); } gift.orderNum = +(orderNum.toFixed(gift.orderNumUnitScale || 0)); gift.mainNum = mainNum; gift.rowWeight = mainNum * parseFloat(gift.weight || "0"); gift.rowVolume = mainNum * parseFloat(gift.volume || "0"); // 勾选赠品 if (e.target.checked) { const validMsg = this.validGiftNum( gift, selectedGiftProms, mainNum ); if (validMsg) { message.info(validMsg); this.sumFun(); return false; } selectedGiftProms.forEach(giftProm => { const tempKey = `${giftProm.activityId}${giftProm.ruleId}`; if (tempKey == key) { let selectedgiftDtos = giftProm.giftDtos || []; if (isCombine) { combineGifts.forEach(item => { const goodCombineNum = item.goodCombineNum; item.orderNum = +(parseFloat(goodCombineNum / conversionRate).toFixed(item.orderNumUnitScale || 0)); item.mainNum = goodCombineNum; }); selectedgiftDtos = selectedgiftDtos.concat(combineGifts); } else { selectedgiftDtos = selectedgiftDtos.concat(gift); } giftProm.giftDtos = selectedgiftDtos; } return giftProm; }); if (!selectedGoodsValues.includes(e.target.value)) { if (isCombine) { combineGifts.forEach(item => { const valueKey = `${item.activityId}${item.ruleId}${item.goodsId}${gift.giftId}`; selectedGoodsValues.push(valueKey); }); } else { selectedGoodsValues.push(e.target.value); } } // 取消勾选 } else { selectedGiftProms = this.removeGiftsData(selectedGiftProms, gift, isCombine); if (isCombine) { selectedGoodsValues = selectedGoodsValues.filter( value => !value.endsWith(gift.giftId) ); } else { selectedGoodsValues = selectedGoodsValues.filter( value => value != e.target.value ); } } this.setState({ selectedGoodsValues: selectedGoodsValues, selectedGiftProms: selectedGiftProms.concat([]) }); this.props.setGiftItems(selectedGiftProms); this.sumFun(); } // 赠品数量修改 giftNumChange(gift, num) { const { selectedGiftProms } = this.state; const key = `${gift.activityId}${gift.ruleId}`; const goodsId = gift.goodsId; const orderNum = parseFloat(num); const mainNum = orderNum * (gift.conversionRate || "1"); const validMsg = this.validGiftNum(gift, selectedGiftProms, mainNum); if (validMsg) { message.info(validMsg); this.setState({ selectedGiftProms: selectedGiftProms.concat([]) }); this.sumFun(); return false; } let isCombine = false; if (gift.combineType == 1) { isCombine = true; } selectedGiftProms.forEach(giftProm => { const tempKey = `${giftProm.activityId}${giftProm.ruleId}`; if (tempKey == key) { if (isCombine) { giftProm.giftDtos.forEach(giftDto => { if (giftDto.giftId == gift.giftId) { const mainNum = parseFloat(giftDto.mainNum) + parseFloat(giftDto.goodCombineNum || "0"); const rate = parseFloat(giftDto.conversionRate || "1"); giftDto.orderNum = +(parseFloat(mainNum / rate).toFixed(giftDto.orderNumUnitScale || 0)); giftDto.mainNum = mainNum; giftDto.rowWeight = mainNum * parseFloat(giftDto.weight || "0"); giftDto.rowVolume = mainNum * parseFloat(giftDto.volume || "0"); } }); } else { giftProm.giftDtos.forEach(giftDto => { if (giftDto.goodsId == goodsId) { giftDto.orderNum = num; giftDto.mainNum = mainNum; giftDto.rowWeight = mainNum * parseFloat(giftDto.weight || "0"); giftDto.rowVolume = mainNum * parseFloat(giftDto.volume || "0"); } }); } } }); this.setState({ selectedGiftProms: selectedGiftProms.concat([]) }); this.props.setGiftItems(selectedGiftProms); this.sumFun(); } validGiftNum(gift, selectedGiftProms, num) { let validMsg = ""; const key = `${gift.activityId}${gift.ruleId}`; const belongGroupId = gift.belongGroupId; const goodsId = gift.goodsId; const conversionRate = parseFloat(gift.conversionRate || "1"); const goodsAmout = gift.goodsAmout; let totalMainNum = num; const findGiftProm = selectedGiftProms.find( giftProm => `${giftProm.activityId}${giftProm.ruleId}` == key ); if (findGiftProm && findGiftProm.giftDtos) { findGiftProm.giftDtos.forEach(giftDto => { if ( giftDto.belongGroupId == belongGroupId && giftDto.goodsId != goodsId ) { totalMainNum += parseFloat(giftDto.mainNum); } }); if (totalMainNum > goodsAmout) { validMsg += `不能超出【买赠】促销【${findGiftProm.description}】下,【${ gift.belongGroupName }】的可赠数量${Math.floor(goodsAmout / conversionRate)}`; } } return validMsg; } // 封装移除赠品数据的方法 removeGiftsData(selectedGiftProms, gift, isCombine) { // todo... const key = `${gift.activityId}${gift.ruleId}`; const goodsId = gift.goodsId; selectedGiftProms.forEach(giftProm => { const tempKey = `${giftProm.activityId}${giftProm.ruleId}`; if (tempKey == key) { const giftDtos = giftProm.giftDtos; let newGiftItems = giftDtos.filter(item => item.goodsId != goodsId); if (isCombine) { newGiftItems = giftDtos.filter(item => item.giftId != gift.giftId); } giftProm.giftDtos = newGiftItems; } return giftProm; }); return selectedGiftProms.concat([]); } // 移除赠品 delGiftHandle(gift) { const { selectedGiftProms, selectedGoodsValues } = this.state; // 判断勾选的赠品是否固定组合 let isCombine = false; if (gift.combineType == 1) { isCombine = true; } const newSelectedGiftActivitys = this.removeGiftsData( selectedGiftProms, gift, isCombine ); const value = `${gift.activityId}${gift.ruleId}${gift.goodsId}${gift.giftId}`; let newSelectedGiftValues = selectedGoodsValues.filter( item => item != value ); if (isCombine) { newSelectedGiftValues = selectedGoodsValues.filter( item => !item.endsWith(gift.giftId) ); } this.setState({ selectedGoodsValues: newSelectedGiftValues, selectedGiftProms: newSelectedGiftActivitys }); this.props.setGiftItems(newSelectedGiftActivitys); this.sumFun(); } recordValueChange(index, field, value) { const { orderCartData } = this.props; const newOrderCartData = orderCartData.concat([]); newOrderCartData[index][`${field}`] = value; this.props.dispatch({ type: "orderEdit/orderCartData", orderCartData: newOrderCartData }); } // 选配信息 addGoodsOptsInfo(goodsOpts, rowIndex) { const { orderCartData, dispatch } = this.props; const optResult = []; const id = []; const newOrderCartData = orderCartData.concat([]); // BOM选配赋值todo... goodsOpts.forEach(goodsOpt => { if (newOrderCartData[rowIndex][`reqOrderItemBoms`]) { newOrderCartData[rowIndex][`reqOrderItemBoms`].forEach(reqOrderItemBom => { if (reqOrderItemBom.childGoodsId == goodsOpt.goodsId) { reqOrderItemBom.baseGoodsOptId = goodsOpt.id; reqOrderItemBom.baseGoodsOptValue = goodsOpt.optResult; } }); } optResult.push(goodsOpt.optResult); id.push(goodsOpt.id); }); newOrderCartData[rowIndex][`baseGoodsOptId`] = id.join(","); newOrderCartData[rowIndex][`baseGoodsOptValue`] = optResult.join(","); dispatch({ type: "orderEdit/orderCartData", orderCartData: newOrderCartData }); } // 购买数量改变 buyNumChange(key, num) { const { orderCartData, dispatch } = this.props; const newOrderCartData = orderCartData.concat([]); const rowData = newOrderCartData[key]; const rate = parseFloat(rowData.conversionRate || "1"); newOrderCartData[key][`orderNum`] = +(num); newOrderCartData[key][`mainNum`] = +(num * rate); this.props.dispatch({ type: "orderEdit/orderCartData", orderCartData: newOrderCartData }); this.props.ifPromotion(true); } sumFun(data) { let orderCartData; if (data) { orderCartData = data; } else { orderCartData = this.props.orderCartData; } let newTotalAmount = 0; // 商品总金额 let newTotalDealAmount = 0; // 商品促销后总金额 let newAllWeight = 0; // 总重量 let newAllVolume = 0; // 总体积 let newTotalNum = 0; // 总数量(订货数量) let ext04 = 0; for (let i = 0; i < orderCartData.length; i++) { newTotalAmount += parseFloat(orderCartData[i].salePrice || "0") * parseFloat(orderCartData[i].mainNum || "0"); newTotalDealAmount += parseFloat(orderCartData[i].promPrice || "0") * parseFloat(orderCartData[i].mainNum || "0") - parseFloat(orderCartData[i].promAmount || "0"); newAllWeight += parseFloat(orderCartData[i].rowWeight); newAllVolume += parseFloat(orderCartData[i].rowVolume); newTotalNum += parseFloat(orderCartData[i].orderNum); ext04 += parseFloat(orderCartData[i].promPrice || "0") * parseFloat(orderCartData[i].mainNum || "0") - parseFloat(orderCartData[i].promAmount || "0") } this.fillGiftWeightAndVolume({ newTotalAmount, newTotalDealAmount, newAllWeight, newAllVolume, newTotalNum, ext04 }); } // 如果有赠品,补充赠品体积重量 fillGiftWeightAndVolume(value) { const { dispatch } = this.props; const { selectedGiftProms } = this.state; const newTotalAmount = value.newTotalAmount; const newTotalDealAmount = value.newTotalDealAmount; const ext04 = value.ext04; // 累加赠品数量、体积、重量 let newTotalNum = value.newTotalNum; let newAllWeight = value.newAllWeight || 0; let newAllVolume = value.newAllVolume || 0; if (selectedGiftProms && selectedGiftProms.length > 0) { selectedGiftProms.forEach(giftProm => { const giftDtos = giftProm.giftDtos; if (giftDtos && giftDtos.length > 0) { giftDtos.forEach(gift => { newAllWeight += parseFloat(gift.rowWeight); newAllVolume += parseFloat(gift.rowVolume); newTotalNum += parseFloat(gift.orderNum); }); } }); } this.props.onChange({ newTotalAmount, newTotalDealAmount, newAllWeight, newAllVolume, newTotalNum, ext04 }); } // 删除商品 delHandle(goodsItem) { const { orderCartData, dispatch } = this.props; // todo... const newOrderCartData = orderCartData.filter( item => goodsItem.goodsId != item.goodsId || goodsItem.ext05 != item.ext05 ); this.props.dispatch({ type: "orderEdit/orderCartData", orderCartData: newOrderCartData }); // 匹配促销信息 this.props.ifPromotion(true); } expandedRowRender(record) { const promotions = record.reqOrderPromRels; if (!promotions) return null; promotions.forEach(item => { let promWayName = ""; switch (item.promWay) { case 1: promWayName = "买赠"; break; case 2: promWayName = "降价"; break; default: break; } item.promWayName = promWayName; }); return promotions.map(item => { return (

{item.promWayName} {item.description}

); }); } render() { // ifEditable 订单是否可编辑, 默认可编辑:true const { orderCartData, ifEditable, promotionInfoData, projectData } = this.props; const { selectedGiftProms, selectedPromStyle } = this.state; if (!orderCartData || orderCartData.length < 1) return ; // 往商品行上封装项目 orderCartData.forEach(item => { item.projectData = projectData || []; }); const giftColumns = this.giftColumns; // 拼接买赠商品HTML const getGiftItemsHtml = giftProm => { const { selectedGoodsValues } = this.state; if (!giftProm) return null; const giftDtos = giftProm.giftDtos; if (!giftDtos) return null; const giftArray = []; for (let i = 0; i < giftDtos.length; i += 6) { giftArray.push(giftDtos.slice(i, i + 6)); } return giftArray.map(gifts => { return ( {gifts.map(gift => { return (

{gift.goodsDisplayName}

); })}
); }); }; // 拼接买赠活动HTML const getGiftActivityHtml = () => { return promotionInfoData.giftProms.map(giftProm => { return (
买赠 {giftProm.description} {getGiftItemsHtml(giftProm)}
); }); }; // 拼接已选的买赠商品HTML const getSelectedGiftItemsHtml = giftProm => { if (!giftProm) return null; const giftDtos = giftProm.giftDtos; if (!giftDtos) return null; return ( { } ); }; // 拼接已选的买赠活动HTML const getSelectedGiftActivityHtml = () => { if (!selectedGiftProms || selectedGiftProms.length < 1) { return null; } return selectedGiftProms.map(giftProm => { return (
0 ? "block" : "none" }} >
买赠{giftProm.description} {getSelectedGiftItemsHtml(giftProm)} ); }); }; const getPromStyleRadioHtml = promStyles => { if (!promStyles) return null; const val = promStyles.join(","); return promStyles.map(style => { let styleName = "买赠-基于商品"; if (style == 2) { styleName = "降价-基于商品"; } else if (style == 3) { styleName = "买赠-基于订单"; } else if (style == 4) { styleName = "降价-基于订单"; } return ( {styleName} ); }); }; const getPromoStyleHtml = () => { if (!selectedPromStyle || !promotionInfoData.mutualRelationShip) { return null; } return ( {getPromStyleRadioHtml(promotionInfoData.mutualRelationShip[0])} {getPromStyleRadioHtml(promotionInfoData.mutualRelationShip[1])} ); }; const getGiftPromsHtml = () => { if ( !promotionInfoData || !promotionInfoData.giftProms || promotionInfoData.giftProms.length < 1 ) { return null; } return ( {getGiftActivityHtml()} {getSelectedGiftActivityHtml()} ); }; // 整单降价促销 const getOrderPriceCutHtml = () => { if (!promotionInfoData || !promotionInfoData.orderPriceProm) return null; return (
降价 {promotionInfoData.orderPriceProm.description}
); }; const getPromotionInfoHtml = () => { // 货补不展示促销信息 if (!ifEditable) return null; return (
{/* 整单降价促销提示 start */} {getOrderPriceCutHtml()} {/* 整单降价促销提示 end */} {/* 订单促销维度选择 start */} {getPromoStyleHtml()} {/* 订单促销维度选择 end */} {/* 促销赠品选择 start */} {getGiftPromsHtml()} {/* 促销赠品选择 end */}
); }; const columns = this.columns; const bomColumns = this.bomColumns; let orderItemBomData = []; if (orderCartData && orderCartData.length > 0) { orderItemBomData = translateItemBomFromItem(orderCartData); } // 默认展开促销活动 const expandedTop = true; return (
{/* 商品行信息 start */} {/* */} {/*
*/} {/* 商品行信息 end */} {/* 促销信息 start */} {getPromotionInfoHtml()} {/* 促销信息 end */} ); } } export default OrderGoodsList;