Commit 2fbbeff5 authored by 陈万宝's avatar 陈万宝

feat:更新库存

parent 887124e8
...@@ -72,7 +72,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -72,7 +72,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
const [unitsList, setUnitsList] = useState([]); const [unitsList, setUnitsList] = useState([]);
const [takeawayData, setTakeawayData] = useState({}); const [takeawayData, setTakeawayData] = useState({});
let [multiSpu, setMultiSpu] = useState([]); let [multiSpu, setMultiSpu] = useState([]);
let [singularSpu, setSingularSpu] = useState([]); const [singularSpu, setSingularSpu] = useState([]);
const [intactData, setIntactData] = useState({}); const [intactData, setIntactData] = useState({});
const [repertoryState, setRepertoryState] = useState(''); const [repertoryState, setRepertoryState] = useState('');
const [repertoryModel, setRepertoryModel] = useState({}); const [repertoryModel, setRepertoryModel] = useState({});
...@@ -100,15 +100,17 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -100,15 +100,17 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
return null; return null;
} }
}; };
// 过滤对象 // // 过滤存在的sku对象
const objectComparison = (item, itm) => { // const objectComparison = (item, itm) => {
const { // console.log(item, itm, '==========');
serviceItem: { maxStock, autoStock, productStock }, // const {
} = itm; // serviceItem: { maxStock, autoStock, productStock },
const params = { maxStock, autoStock, productStock: productStock || itm.productStock }; // } = itm;
const temp = { ...item, ...params }; // const params = { maxStock, autoStock, productStock: productStock || itm.productStock };
return temp; // const temp = { ...item, ...params };
}; // return temp;
// };
const takeawayCalc = takeawayData => { const takeawayCalc = takeawayData => {
// 商品基本信息编辑商品名称 // 商品基本信息编辑商品名称
const { infoMation: name, infoMation, takeawayItem } = takeawayData; const { infoMation: name, infoMation, takeawayItem } = takeawayData;
...@@ -137,11 +139,10 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -137,11 +139,10 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
let { unit } = takeawayItem; let { unit } = takeawayItem;
unit = (unit && (Array.isArray(unit) && unit?.length && unit?.slice(1).toString())) || unit; unit = (unit && (Array.isArray(unit) && unit?.length && unit?.slice(1).toString())) || unit;
console.log(takeawayItem, 'takeawayItem');
const singularSpecList = [{ specGroupName: '份量', generateSku: 1, specs: [] }]; // 单规格 const singularSpecList = [{ specGroupName: '份量', generateSku: 1, specs: [] }]; // 单规格
const multiSpecList = [{ specGroupName: '份量', generateSku: 1, specs: [] }]; // 多规格 const multiSpecList = [{ specGroupName: '份量', generateSku: 1, specs: [] }]; // 多规格
// const multiSpu = customer.isEdit ? skuList:[]; // 多库存spu、
// let singularSpu = []; // 单库存spu let singularSpuData = []; // 单库存spu
const saleTimesTemp = []; const saleTimesTemp = [];
if (saleTimes.length) { if (saleTimes.length) {
saleTimes.forEach(item => { saleTimes.forEach(item => {
...@@ -186,12 +187,11 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -186,12 +187,11 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
} }
console.log('specs====', specs); console.log('specs====', specs);
singularSpecList[0].specs = [specs]; singularSpecList[0].specs = [specs];
singularSpu = [{ ...temp, specs: [specs] }]; singularSpuData = [{ ...temp, specs: [specs] }];
setSingularSpu(singularSpu); setSingularSpu(singularSpuData);
console.log('singularSpu', singularSpu); console.log('singularSpu', singularSpu);
} }
console.log('name || editData.name', name, editData.name, weight);
// 多规格 // 多规格
if (+repertoryType === 2) { if (+repertoryType === 2) {
// if (name || editData.name) { // if (name || editData.name) {
...@@ -203,9 +203,9 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -203,9 +203,9 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
if (specsItem && !specsItem.generateSku) { if (specsItem && !specsItem.generateSku) {
specsItem.generateSku = 1; specsItem.generateSku = 1;
} }
if (specsItem.specGroupName) { if (specsItem?.specGroupName) {
specsItem?.specs?.forEach(itm => { specsItem.specs.forEach(itm => {
itm.specGroupName = specsItem.specGroupName; itm.specGroupName = specsItem?.specGroupName;
}); });
} }
multiSpecList.push(specsItem); multiSpecList.push(specsItem);
...@@ -253,6 +253,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -253,6 +253,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
multiSpu.map(item => { multiSpu.map(item => {
item.salePrice = 0; item.salePrice = 0;
item.unique = '';
item.unique = item?.specs item.unique = item?.specs
.map(itm => { .map(itm => {
if (itm?.unit) { if (itm?.unit) {
...@@ -260,6 +261,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -260,6 +261,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
itm?.unit && itm?.unit &&
(Array.isArray(itm?.unit) ? itm?.unit.slice(itm?.unit.length - 1)[0] : itm?.unit); (Array.isArray(itm?.unit) ? itm?.unit.slice(itm?.unit.length - 1)[0] : itm?.unit);
} }
console.log(' itm.unit', itm.unit);
if (itm?.unit && peopleUnits.includes(itm.unit)) { if (itm?.unit && peopleUnits.includes(itm.unit)) {
delete itm.quantity; delete itm.quantity;
} }
...@@ -269,20 +271,71 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -269,20 +271,71 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
}) })
.toString(); .toString();
}); });
// 编辑数据
console.log('multiSpu', multiSpu); if (customer.isEdit) {
if (tempMultiSpu.length) { const uniqueArr = tempMultiSpu.map(item => item.unique);
const multiSpuUnique = multiSpu.map(item => item.unique);
// 新增对比数据
multiSpu.forEach((item, index) => { multiSpu.forEach((item, index) => {
tempMultiSpu.forEach((itm, idx) => { if (!uniqueArr.includes(item.unique)) {
tempMultiSpu.push({
...item,
serviceItem: { ...temp.serviceItem, maxStock: 0, autoStock: 0, productStock: 0 },
id: '',
});
}
});
// // 删除对比数据
// tempMultiSpu.forEach((item, index) => {
// console.log('33333', index);
// if (multiSpu.length !== tempMultiSpu.length) {
// if (!multiSpuUnique.includes(item.unique)) {
// tempMultiSpu.splice(index, 1);
// }
// }
// });
while (multiSpu.length !== tempMultiSpu.length) {
tempMultiSpu.forEach((item, index) => {
if (!multiSpuUnique.includes(item.unique)) {
tempMultiSpu.splice(index, 1);
}
});
}
// 库存设置
multiSpu.map(item => {
tempMultiSpu.forEach(itm => {
if (item.unique === itm.unique) { if (item.unique === itm.unique) {
item.serviceItem = objectComparison(item.serviceItem, itm); item.serviceItem = { ...item.serviceItem, ...itm.serviceItem };
} }
}); });
return item;
}); });
setTempMultiSpu(tempMultiSpu);
setMultiSpu(JSON.parse(JSON.stringify(multiSpu)));
console.log('tempMultiSpu', tempMultiSpu);
console.log('multiSpu', multiSpu);
} }
// 新增
if (!customer.isEdit) {
// multiSpuData.forEach((item, index) => {
// console.log('index====', index);
// });
console.log(multiSpu, 'multiSpumultiSpu'); // console.log('tempMultiSpu', tempMultiSpu);
setMultiSpu(JSON.parse(JSON.stringify(multiSpu))); // console.log('multiSpuData', multiSpuData);
setTempMultiSpu(multiSpu);
setMultiSpu(multiSpu);
}
// console.log('multiSpu', multiSpu);
// console.log('tempMultiSpu', tempMultiSpu);
// console.log('multiSpuData', multiSpuData);
// setTempMultiSpu(JSON.parse(JSON.stringify(tempMultiSpu)))
// setMultiSpu(JSON.parse(JSON.stringify(tempMultiSpu)));
// } // }
} }
// +repertoryType === 1 单规格 2多规格 // +repertoryType === 1 单规格 2多规格
...@@ -298,7 +351,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -298,7 +351,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
repertoryType, repertoryType,
singleDelivery, singleDelivery,
specList: +repertoryType === 1 ? singularSpecList : multiSpecList, // 单库存和多库存specList specList: +repertoryType === 1 ? singularSpecList : multiSpecList, // 单库存和多库存specList
items: +repertoryType === 1 ? singularSpu : JSON.parse(JSON.stringify(multiSpu)), items: +repertoryType === 1 ? singularSpuData : JSON.parse(JSON.stringify(multiSpu)),
// categoryId: // categoryId:
// ( // (
// infoMation?.categoryId && // infoMation?.categoryId &&
...@@ -323,13 +376,35 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -323,13 +376,35 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
// : localStorage.get(localAutoSaveKey) || {}; // : localStorage.get(localAutoSaveKey) || {};
setTakeawayData(takeawayData); setTakeawayData(takeawayData);
takeawayCalc(takeawayData); takeawayCalc(takeawayData);
const multiSpuUnique = multiSpu.map(item => item.unique);
// 删除对比数据
// if (multiSpu.length !== tempMultiSpu.length) {
// tempMultiSpu.forEach((item, index) => {
// if (!multiSpuUnique.includes(item.unique)) {
// tempMultiSpu.splice(index, 1);
// }
// });
// }
while (multiSpu.length !== tempMultiSpu.length) {
tempMultiSpu.forEach((item, index) => {
if (!multiSpuUnique.includes(item.unique)) {
tempMultiSpu.splice(index, 1);
}
});
}
console.log(multiSpuUnique, 'multiSpuUnique');
console.log(tempMultiSpu, 'tempMultiSpu');
console.log(multiSpu, 'multiSpu');
setTempMultiSpu(JSON.parse(JSON.stringify(tempMultiSpu)));
}, 400); }, 400);
// 设置库存 // 设置库存
const modifiedInventory = (type, idx, values) => { const modifiedInventory = (type, idx, values) => {
const { productStock, maxStock, autoStock } = values; const { productStock, maxStock, autoStock } = values;
console.log('idx', idx); console.log('idx', idx);
if (type === 'multi') { if (type === 'multi') {
multiSpu.map(item => { tempMultiSpu.map(item => {
if (item.unique === idx) { if (item.unique === idx) {
item.serviceItem.productStock = productStock; item.serviceItem.productStock = productStock;
item.serviceItem.autoStock = autoStock; item.serviceItem.autoStock = autoStock;
...@@ -339,17 +414,20 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -339,17 +414,20 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
}); });
} }
if (type === 'all') { if (type === 'all') {
multiSpu.map(item => { tempMultiSpu.map(item => {
item.serviceItem.productStock = productStock; item.serviceItem.productStock = productStock;
item.serviceItem.autoStock = autoStock; item.serviceItem.autoStock = autoStock;
item.serviceItem.maxStock = maxStock; item.serviceItem.maxStock = maxStock;
return item; return item;
}); });
} }
const temp = JSON.parse(JSON.stringify(multiSpu)); // const temp = JSON.parse(JSON.stringify(multiSpu));
tempMultiSpu.push(...temp);
// if (!customer.isEdit) {
// tempMultiSpu.push(...temp);
// }
setTempMultiSpu(tempMultiSpu); setTempMultiSpu(tempMultiSpu);
setMultiSpu(multiSpu); // setMultiSpu(tempMultiSpu);
getFormValues(); getFormValues();
return false; return false;
}; };
...@@ -515,9 +593,9 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -515,9 +593,9 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
const weight = specList?.filter(item => item.specGroupName === '份量'); const weight = specList?.filter(item => item.specGroupName === '份量');
const specs = specList?.filter(item => item.specGroupName !== '份量'); const specs = specList?.filter(item => item.specGroupName !== '份量');
const tempWeightName = JSON.parse(sessionStorage.getItem('weightUnits')); const tempWeightName = JSON.parse(sessionStorage.getItem('weightUnits'));
weight?.forEach(item => { weight.forEach(item => {
if (item?.specs?.length) { if (item?.specs?.length) {
item?.specs?.forEach(itm => { item.specs.forEach(itm => {
if (tempWeightName.includes(itm.unit)) { if (tempWeightName.includes(itm.unit)) {
itm.quantity = itm.quantity =
itm?.quantity.indexOf('约') > -1 ? itm?.quantity.slice(1) : itm?.quantity || ''; itm?.quantity.indexOf('约') > -1 ? itm?.quantity.slice(1) : itm?.quantity || '';
...@@ -553,15 +631,12 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -553,15 +631,12 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
} else { } else {
// 多规格 // 多规格
setRepertoryType('2'); setRepertoryType('2');
const {
serviceItem: { saleTimeType, saleDates, saleTimes },
} = editData?.skuList[0];
const specList = editData?.specList; const specList = editData?.specList;
const weight = specList.filter(item => item.specGroupName === '份量'); const weight = specList.filter(item => item.specGroupName === '份量');
const tempWeightName = JSON.parse(sessionStorage.getItem('weightUnits')); const tempWeightName = JSON.parse(sessionStorage.getItem('weightUnits'));
weight?.forEach(item => { weight.forEach(item => {
if (item?.specs?.length) { if (item?.specs?.length) {
item.specs?.forEach(itm => { item.specs.forEach(itm => {
if (tempWeightName.includes(itm.unit)) { if (tempWeightName.includes(itm.unit)) {
itm.quantity = itm.quantity =
itm?.quantity?.indexOf('约') > -1 itm?.quantity?.indexOf('约') > -1
...@@ -1237,8 +1312,8 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -1237,8 +1312,8 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
统一设置库存 统一设置库存
</Button> </Button>
<div className={styles.rowWarp}> <div className={styles.rowWarp}>
{multiSpu.length > 0 && {tempMultiSpu.length > 0 &&
multiSpu?.map((item, idx) => ( tempMultiSpu?.map((item, idx) => (
<> <>
{item.unique && ( {item.unique && (
<> <>
...@@ -1256,7 +1331,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => { ...@@ -1256,7 +1331,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
showAddRepertoryModal('multi', `${item.unique}`, item); // 多个库存 showAddRepertoryModal('multi', `${item.unique}`, item); // 多个库存
}} }}
> >
去设置 去设置{item.id}
</div> </div>
</div> </div>
</Form.Item> </Form.Item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment