Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
merchant-manage-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
merchant-manage-ui
Commits
2fbbeff5
Commit
2fbbeff5
authored
Apr 10, 2023
by
陈万宝
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:更新库存
parent
887124e8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
117 additions
and
42 deletions
+117
-42
FormTakeaway.jsx
src/pages/ServiceGoods/components/FormTakeaway.jsx
+117
-42
No files found.
src/pages/ServiceGoods/components/FormTakeaway.jsx
View file @
2fbbeff5
...
...
@@ -72,7 +72,7 @@ const TakeawayGoodsInfo = forwardRef((props, ref) => {
const
[
unitsList
,
setUnitsList
]
=
useState
([]);
const
[
takeawayData
,
setTakeawayData
]
=
useState
({});
let
[
multiSpu
,
setMultiSpu
]
=
useState
([]);
le
t
[
singularSpu
,
setSingularSpu
]
=
useState
([]);
cons
t
[
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
);
singularSpu
Data
=
[{
...
temp
,
specs
:
[
specs
]
}];
setSingularSpu
(
singularSpu
Data
);
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
?
singularSpu
Data
:
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
'
)
{
m
ultiSpu
.
map
(
item
=>
{
tempM
ultiSpu
.
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
'
)
{
m
ultiSpu
.
map
(
item
=>
{
tempM
ultiSpu
.
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
(
m
ultiSpu
);
// setMultiSpu(tempM
ultiSpu);
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}>
{
m
ultiSpu.length > 0 &&
m
ultiSpu?.map((item, idx) => (
{
tempM
ultiSpu.length > 0 &&
tempM
ultiSpu?.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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment