完成购物车所有功能
This commit is contained in:
@@ -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
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user