From d042bb3c5679375956c7616e6b1afe681fb82d9b Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 24 十二月 2025 16:12:02 +0800
Subject: [PATCH] fix: 甲方小程序
---
packages/components/src/Sku/Sku.vue | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/packages/components/src/Sku/Sku.vue b/packages/components/src/Sku/Sku.vue
new file mode 100644
index 0000000..51d1786
--- /dev/null
+++ b/packages/components/src/Sku/Sku.vue
@@ -0,0 +1,58 @@
+<template>
+ <nut-sku
+ v-model:visible="visible"
+ :sku="sku"
+ :goods="goods"
+ @selectSku="selectSku"
+ class="pro-sku"
+ >
+ <template #sku-header-price>
+ <div class="pro-sku-header">
+ <div class="pro-sku-header-title">{{ goods.name }}</div>
+ <nut-price :price="goods.price" />
+ </div>
+ </template>
+ </nut-sku>
+</template>
+
+<script setup lang="ts">
+import { toThousand } from '@12333/utils';
+import { Goods, SkuItem } from './sku';
+
+defineOptions({
+ name: 'Sku',
+});
+
+type Props = {
+ sku: SkuItem[];
+};
+
+const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel<boolean>('visible');
+const goods = defineModel<Goods>('goods');
+
+const selectSku = (ss) => {
+ const { sku, skuIndex, parentSku, parentIndex } = ss;
+ if (sku.disable) return false;
+ props.sku[parentIndex].list.forEach((s) => {
+ s.active = s.id == sku.id;
+ });
+ goods.value = {
+ ...goods.value,
+ skuId: sku.id,
+ price: toThousand(sku.price),
+ };
+};
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.pro-sku {
+ .pro-sku-header {
+ flex: 1;
+ min-height: 0;
+ }
+}
+</style>
--
Gitblit v1.10.0