vk-u-goods-sku-popup商品 sku 选择器组件
vk-u-goods-sku-popup 是一个商品多规格 sku 选择器组件。此插件为 vk-unicloud-router 插件的一部分独立出来而形成的。
基本使用示例
<vk-u-goods-sku-popup v-model="sku_key" :custom-action="findGoodsInfo" :mode="1" border-radius="20" @add-cart="addCart" @buy-now="buyNow" ></vk-u-goods-sku-popup>
methods: {
// 加入购物车前的判断
addCartFn(obj) {
let {
selectShop
} = obj;
// 模拟添加到购物车,请替换成你自己的添加到购物车逻辑
let res = {};
let name = selectShop.goods_name;
if (selectShop.sku_name != "默认") {
name += "-" + selectShop.sku_name;
}
res.msg = `$ {name}已添加到购物车`;
if (typeof obj.success == "function") obj.success(res);
},
// 加入购物车按钮
addCart(selectShop) {
console.log("监听 - 加入购物车");
that.addCartFn({
selectShop: selectShop,
success: function(res) {
// 实际业务时,请替换自己的加入购物车逻辑
that.toast(res.msg);
}
});
},
// 立即购买
buyNow(selectShop) {
console.log("监听 - 立即购买");
that.addCartFn({
selectShop: selectShop,
success: function(res) {
// 实际业务时,请替换自己的立即购买逻辑
that.toast("立即购买");
}
});
},
/**
* 获取商品信息
* 这里可以看到每次打开SKU都会去重新请求商品信息,为的是每次打开SKU组件可以实时看到剩余库存
*/
findGoodsInfo() {
return new Promise(function(resolve, reject) {
// 这里是获取商品信息的后端请求,可以用你自己的方式请求获取,本例子中用的是unicloud的云函数获取商品信息
that.callFunction({
success(data) {
resolve(data.goodsInfo);
}
});
});
},
toast(msg) {
uni.showToast({
title: msg,
icon: "none"
});
},
callFunction(obj) {
uni.showLoading({
title: '请求中'
});
uniCloud.callFunction({
name: 'findGoodsInfo',
data: {
goods_id: that.goods_id
},
success(res) {
console.log(res);
if (typeof obj.success == "function") obj.success(res.result);
},
fail(err) {
console.error(err);
},
complete() {
uni.hideLoading();
}
});
},
}评论
