diff --git a/src/components/vk-data-goods-sku-popup/vk-data-goods-sku-popup.d.ts b/src/components/vk-data-goods-sku-popup/vk-data-goods-sku-popup.d.ts
index 1ca47a6..b1e04b3 100644
--- a/src/components/vk-data-goods-sku-popup/vk-data-goods-sku-popup.d.ts
+++ b/src/components/vk-data-goods-sku-popup/vk-data-goods-sku-popup.d.ts
@@ -82,13 +82,13 @@ export type SkuPopupProps = {
selectArr?: string[]
/** 打开弹出层 */
- onOpen: () => void
+ open: () => void
/** 关闭弹出层 */
- onClose: () => void
+ close: () => void
/** 点击加入购物车时(需选择完SKU才会触发)*/
- onAddCart: (event: SkuPopupEvent) => void
+ cart: (event: SkuPopupEvent) => void
/** 点击立即购买时(需选择完SKU才会触发)*/
- onBuyNow: (event: SkuPopupEvent) => void
+ buy: (event: SkuPopupEvent) => void
}
/** 商品信息本地数据源 */
diff --git a/src/pages/goods/goods.vue b/src/pages/goods/goods.vue
index eba8289..5d6001b 100644
--- a/src/pages/goods/goods.vue
+++ b/src/pages/goods/goods.vue
@@ -32,7 +32,7 @@
选择
- 请选择商品规格
+ {{ selectedSku }}
送至
@@ -105,8 +105,8 @@
- 加入购物车
- 立即购买
+ 加入购物车
+ 立即购买
@@ -118,10 +118,15 @@
@@ -130,11 +135,16 @@
import { getGoodsAPI } from '@/services/goods'
import type { GoodsResult } from '@/types/goods'
import { onLoad } from '@dcloudio/uni-app'
-import { ref } from 'vue'
+import { computed, ref } from 'vue'
import ServicePanel from './components/ServicePanel.vue'
import AddressPanel from './components/AddressPanel.vue'
import PageSkeleton from './components/PageSkeleton.vue'
-import type { SkuPopupLocaldata } from '@/components/vk-data-goods-sku-popup/vk-data-goods-sku-popup'
+import type {
+ SkuPopupEvent,
+ SkuPopupInstance,
+ SkuPopupLocaldata,
+} from '@/components/vk-data-goods-sku-popup/vk-data-goods-sku-popup'
+import { postMemberCart } from '@/services/cart'
// 获取屏幕边界到安全区域距离
const { safeAreaInsets } = uni.getSystemInfoSync()
@@ -221,7 +231,48 @@ onLoad(async () => {
// SKU 商品规格弹出层
const isShowSkuPopup = ref(false)
-const localdata = ref({} as SkuPopupLocaldata)
+// SKU 商品规格弹出层实例
+const skuPopupRef = ref()
+// SKU 商品规格弹出层数据
+const localdata = ref({} as SkuPopupLocaldata)
+// SKU 商品规格弹出层模式
+enum SkuMode {
+ Both = 1,
+ AddCart = 2,
+ BuyNow = 3,
+}
+const skuMode = ref(SkuMode.Both)
+
+// 选中的 SKU
+const selectedSku = computed(() => {
+ return skuPopupRef.value?.selectArr?.join(' ').trim() || '请选择商品规格'
+})
+
+// 点击商品页面的 购物车/立即购买 按钮弹出 SKU 商品规格弹出层
+const showSkuPopup = (mode: SkuMode) => {
+ skuMode.value = mode
+ isShowSkuPopup.value = true
+}
+
+// 加入购物车
+const handlerAddCart = async (e: SkuPopupEvent) => {
+ const res = await postMemberCart({
+ skuId: e._id,
+ count: e.buy_num,
+ })
+ if (res.code == '1') {
+ await uni.showToast({
+ icon: 'success',
+ title: '添加成功',
+ })
+ isShowSkuPopup.value = false
+ }
+}
+
+// 立即购买
+const handlerBuyNow = () => {
+ console.log('立即购买')
+}