完成购物车所有功能

This commit is contained in:
gyq
2024-03-01 16:15:22 +08:00
parent d2689b226c
commit e925948dcd
6 changed files with 417 additions and 48 deletions

View File

@@ -40,7 +40,7 @@ import { queryProductSku } from '@/api/product'
const store = useUser();
const emit = defineEmits(['success'])
const type = ref('shop')
const dialogVisible = ref(false)
const goods = ref({})
@@ -54,7 +54,16 @@ const loading = ref(false)
// 确认选择规格
function submitSku() {
dialogVisible.value = false
emit('success', goodsInfo.value)
switch (type.value) {
case 'shop':
emit('success', goodsInfo.value)
break;
case 'cart':
emit('success', goods.value)
break;
default:
break;
}
}
// 选择规格
@@ -99,10 +108,13 @@ async function queryProductSkuAjax() {
loading.value = true
const res = await queryProductSku({
shopId: store.userInfo.shopId,
productId: goods.value.id,
productId: type.value == 'shop' ? goods.value.id : goods.value.productId,
spec_tag: selectedSkuTag.value
})
goodsInfo.value = res
if (type.value == 'cart') {
goods.value.skuId = res.id
}
setTimeout(() => {
loading.value = false
}, 100)
@@ -113,21 +125,37 @@ async function queryProductSkuAjax() {
}
// 显示规格
function show(item) {
function show(item, t = 'shop') {
goodsInfo.value = {}
goods.value = {}
selectedSkuNum.value = 0
dialogVisible.value = true
goods.value = ""
goods.value = item
type.value = t
if (typeof goods.value.tbProductSpec.specList == 'string') {
goods.value.tbProductSpec.specList = JSON.parse(goods.value.tbProductSpec.specList)
goods.value.tbProductSpec.specList.map(item => {
let arr = []
item.value.map(val => {
arr.push({
active: false,
name: val
})
switch (type.value) {
case 'shop':
arr.push({
active: false,
name: val
})
break;
case 'cart':
// 如果从购物车选择规格需要做选中效果
arr.push({
active: goods.value.skuName.includes(val),
name: val
})
break;
default:
break;
}
})
item.value = arr
})