From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/views/mall/product/spu/components/index.ts | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/src/views/mall/product/spu/components/index.ts b/src/views/mall/product/spu/components/index.ts
new file mode 100644
index 0000000..e2cbe73
--- /dev/null
+++ b/src/views/mall/product/spu/components/index.ts
@@ -0,0 +1,54 @@
+import SkuList from './SkuList.vue'
+import { Spu } from '@/api/mall/product/spu'
+
+interface PropertyAndValues {
+ id: number
+ name: string
+ values?: PropertyAndValues[]
+}
+
+interface RuleConfig {
+ // 闇�瑕佹牎楠岀殑瀛楁
+ // 渚嬶細name: 'name' 鍒欒〃绀烘牎楠� sku.name 鐨勫��
+ // 渚嬶細name: 'productConfig.stock' 鍒欒〃绀烘牎楠� sku.productConfig.name 鐨勫��,姝ゅ productConfig 琛ㄧず鎴戝湪 Sku 涓婃墿灞曠殑灞炴��
+ name: string
+ // 鏍¢獙瑙勬牸涓轰竴涓瘉鎺夊嚱鏁帮紝鍏朵腑 arg 涓洪渶瑕佹牎楠岀殑瀛楁鐨勫�笺��
+ // 渚嬶細闇�瑕佹牎楠屼环鏍煎繀椤诲ぇ浜�0.01
+ // {
+ // name:'price',
+ // rule:(arg: number) => arg > 0.01
+ // }
+ rule: (arg: any) => boolean
+ // 鏍¢獙涓嶉�氳繃鏃剁殑娑堟伅鎻愮ず
+ message: string
+}
+
+/**
+ * 鑾峰緱鍟嗗搧鐨勮鏍煎垪琛� - 鍟嗗搧鐩稿叧鐨勫叕鍏卞嚱鏁�
+ *
+ * @param spu
+ * @return PropertyAndValues 瑙勬牸鍒楄〃
+ */
+const getPropertyList = (spu: Spu): PropertyAndValues[] => {
+ // 鐩存帴鎷胯繑鍥炵殑 skus 灞炴�ч�嗗悜鐢熸垚鍑� propertyList
+ const properties: PropertyAndValues[] = []
+ // 鍙湁鏄瑙勬牸鎵嶅鐞�
+ if (spu.specType) {
+ spu.skus?.forEach((sku) => {
+ sku.properties?.forEach(({ propertyId, propertyName, valueId, valueName }) => {
+ // 娣诲姞灞炴��
+ if (!properties?.some((item) => item.id === propertyId)) {
+ properties.push({ id: propertyId!, name: propertyName!, values: [] })
+ }
+ // 娣诲姞灞炴�у��
+ const index = properties?.findIndex((item) => item.id === propertyId)
+ if (!properties[index].values?.some((value) => value.id === valueId)) {
+ properties[index].values?.push({ id: valueId!, name: valueName! })
+ }
+ })
+ })
+ }
+ return properties
+}
+
+export { SkuList, PropertyAndValues, RuleConfig, getPropertyList }
--
Gitblit v1.8.0