From 900936db56deed38f4801b95c91e964359c54798 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jun 2024 02:05:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=95=86=E5=93=81=E5=B1=9E=E6=80=A7):=20?= =?UTF-8?q?=E5=A4=9A=20sku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/product/components/item.vue | 98 ++++++++----- pages/product/components/mutipleSku.vue | 22 +++ pages/product/js/sku.js | 26 ++-- pages/product/manageGoods.vue | 1 + pages/product/sku.vue | 179 +++++++++++------------- peach/store/trade.js | 30 ++-- static/point.png | Bin 12244 -> 0 bytes static/upload-camera.png | Bin 7663 -> 0 bytes 8 files changed, 198 insertions(+), 158 deletions(-) create mode 100644 pages/product/components/mutipleSku.vue delete mode 100644 static/point.png delete mode 100644 static/upload-camera.png diff --git a/pages/product/components/item.vue b/pages/product/components/item.vue index 95aaddb..815a9b5 100644 --- a/pages/product/components/item.vue +++ b/pages/product/components/item.vue @@ -1,48 +1,72 @@ diff --git a/pages/product/components/mutipleSku.vue b/pages/product/components/mutipleSku.vue new file mode 100644 index 0000000..b85aad6 --- /dev/null +++ b/pages/product/components/mutipleSku.vue @@ -0,0 +1,22 @@ + + + \ No newline at end of file diff --git a/pages/product/js/sku.js b/pages/product/js/sku.js index c4f5f1d..56cc18b 100644 --- a/pages/product/js/sku.js +++ b/pages/product/js/sku.js @@ -6,6 +6,9 @@ import { SPEC_TYPE } from "./config"; const pickerRef = ref(null); +// 多属性商品 sku 列表 +const skus = ref([]); + const propertyList = ref([]); const goodsPropertyList = ref([]); @@ -29,22 +32,23 @@ function onRDPickerConfirm(e) { } function pickerProperty() { - let index = specType ? 1 : 0; + let index = specType.value ? 1 : 0; pickerRef.value.onOpen([index]); } -function onPropertyConfirm(e) { - getGoodsProperty(); +async function onPropertyConfirm(e) { + await getGoodsProperty(); console.log(e); } async function getGoodsProperty() { let { data } = await GoodsApi.getHistoryProperty(); - propertyList.value = []; // 把 propertyList 中 id 相同的属性合并,并去重 propertyList.value = peach.$store("trade").selectedProperty; + console.log(propertyList.value); + // 根据已经选择数据,设置默认选中 data.forEach((item) => { // 判断属性是否已经选中 @@ -58,7 +62,7 @@ async function getGoodsProperty() { if (item.checked) { item.propertyValues.forEach((child) => { let childResult = propertyParent?.children.some( - (schild) => schild?.id === child.id + (schild) => schild === child.id ); console.log(childResult); child.checked = childResult ? true : false; @@ -69,18 +73,22 @@ async function getGoodsProperty() { goodsPropertyList.value = data; } -const specType = computed(() => peach.$store("trade").specType); +const specType = computed(() => peach.$store("trade").goodsInfo.specType); function initial() { onLoad(() => { - formData.value.specType = specType ? true : false; - formData.value.specText = SPEC_TYPE[specType ? 1 : 0].label; - getGoodsProperty(); + formData.value.specType = specType.value ? true : false; + formData.value.specText = SPEC_TYPE[specType.value ? 1 : 0].label; + skus.value = peach.$store("trade").skus; + if (specType.value) { + getGoodsProperty(); + } }); } export { initial, + skus, pickerRef, pickerProperty, propertyListRef, diff --git a/pages/product/manageGoods.vue b/pages/product/manageGoods.vue index d402948..b0e9e57 100644 --- a/pages/product/manageGoods.vue +++ b/pages/product/manageGoods.vue @@ -245,6 +245,7 @@ function clickSetProperty() { peach.$store('trade').$patch({ selectedProperty: result, goodsInfo: formData.value, + skus: formData.value.skus }) peach.$router.go('/pages/product/sku') } diff --git a/pages/product/sku.vue b/pages/product/sku.vue index 0d27af8..1f80a78 100644 --- a/pages/product/sku.vue +++ b/pages/product/sku.vue @@ -1,79 +1,60 @@