diff --git a/src/views/ProductForm.vue b/src/views/ProductForm.vue index b0f8a7f..b0c7a3a 100644 --- a/src/views/ProductForm.vue +++ b/src/views/ProductForm.vue @@ -143,14 +143,15 @@ --> - -
商品可售库存数量
+ /> --> + 库存:{{ combinationsStock }} +
商品可售库存数量,当商品样式被设置时自动计算
@@ -771,6 +772,7 @@ const form = reactive({ status: 'pending', free_shipping: false }) +const combinationsStock = ref(0) // 规格管理相关数据 const specNames = ref([]) @@ -1038,11 +1040,15 @@ const loadSpecValues = async () => { // 加载规格组合 const loadCombinations = async (productId) => { - try { const { data } = await api.specifications.getCombinations(productId === undefined ? route.params.id : productId) combinations.value = data.data || [] + combinationsStock.value = 0 + for(const item of combinations.value){ + combinationsStock.value += item.stock + } } catch (error) { + console.error('加载规格组合失败:', error) combinations.value = [] } } @@ -1069,10 +1075,17 @@ const validateSpecs = () => { const deleteCombination = async (combination) => { try { await api.specifications.deleteCombination(combination.id) - await loadCombinations(newProductId.value) - ElMessage.success('删除规格组合成功') - // console.log('删除规格组合:', combination.id) + + // 确保使用正确的产品ID重新加载组合 + const productId = newProductId.value || route.params.id + if (productId) { + await loadCombinations(productId) + ElMessage.success('删除规格组合成功') + } else { + ElMessage.error('无法确定产品ID,请刷新页面') + } } catch (error) { + console.error('删除规格组合失败:', error) ElMessage.error('删除规格组合失败') } } @@ -1176,7 +1189,7 @@ const submitForm = async () => { price: form.price, points_price: form.points, // 前端 points -> 后端 points_price rongdou_price: form.rongdou_price || 0, - stock: form.stock, + stock: combinationsStock.value, image_url: form.image.replace('https://minio.zrbjr.com', ''), // 前端 image -> 后端 image_url images: JSON.stringify(form.images.map(img => img.replace('https://minio.zrbjr.com', ''))), videos: JSON.stringify(form.videos),