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

feat:更新库存

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