From 545fff234b8560c0db142767134783e99fe48705 Mon Sep 17 00:00:00 2001
From: pushuo <229102104@qq.com>
Date: Wed, 20 Jul 2022 15:01:50 +0800
Subject: [PATCH] wip
---
.../admin/views/layouts/master.blade.php | 2 +-
.../views/pages/products/form/form.blade.php | 7 ++-
themes/default/product.blade.php | 49 ++++++++++++++++---
3 files changed, 49 insertions(+), 9 deletions(-)
diff --git a/resources/beike/admin/views/layouts/master.blade.php b/resources/beike/admin/views/layouts/master.blade.php
index 0a401ac0..c017ab3d 100644
--- a/resources/beike/admin/views/layouts/master.blade.php
+++ b/resources/beike/admin/views/layouts/master.blade.php
@@ -4,6 +4,7 @@
+
@@ -17,7 +18,6 @@
-
beike admin
@stack('header')
{{-- --}}
diff --git a/resources/beike/admin/views/pages/products/form/form.blade.php b/resources/beike/admin/views/pages/products/form/form.blade.php
index f2f6b499..bfc7ec6e 100644
--- a/resources/beike/admin/views/pages/products/form/form.blade.php
+++ b/resources/beike/admin/views/pages/products/form/form.blade.php
@@ -140,11 +140,14 @@
el: '#app',
data: {
form: {
- variables: @json($product->variables ?? []),
+ // 字符串转json
+ variables: JSON.parse(@json($product->variables ?? [])),
+ {{-- variables: @json($product->variables ?? []), --}}
skus: @json($product->skus ?? []),
},
source: {
- variables: @json($product->variables ?? []),
+ {{-- variables: @json($product->variables ?? []), --}}
+ variables: JSON.parse(@json($product->variables ?? [])),
},
editing: {
isVariable: @json(($product->variables ?? null) != null),
diff --git a/themes/default/product.blade.php b/themes/default/product.blade.php
index ae9c7cdd..5083bdba 100644
--- a/themes/default/product.blade.php
+++ b/themes/default/product.blade.php
@@ -120,9 +120,22 @@
data: {
selectedVariantsIndex: [], // 选中的变量索引
+ product: {
+ id: 0,
+ image: "",
+ model: "",
+ origin_price: 0,
+ origin_price_format: "",
+ position: 0,
+ price: 0,
+ price_format: "",
+ quantity: 0,
+ sku: "",
+ },
source: {
skus: @json($product['skus']),
- variables: @json($product['variables']),
+ // variables: @json($product['variables']),
+ variables: JSON.parse(@json($product['variables'] ?? [])),
}
},
@@ -142,22 +155,46 @@
// console.log(this.selectedVariantsIndex)
this.checkedVariants()
+ this.getSku();
},
methods: {
- checkedVariableValue(variable_idnex, value_index,value) {
- this.source.variables[variable_idnex].values[value_index].selected = !value.selected
+ checkedVariableValue(variable_idnex, value_index, value) {
+ this.source.variables[variable_idnex].values.forEach((v, i) => {
+ v.selected = false
+ if (i == value_index) {
+ v.selected = true
+ }
+ })
+
+ // 获取选中的 variables 内 value的 下标 index 填充到 selectedVariantsIndex 中
+ this.source.variables.forEach((variable, index) => {
+ variable.values.forEach((value, value_index) => {
+ if (value.selected) {
+ this.selectedVariantsIndex[index] = value_index
+ }
+ })
+ })
+
+ this.getSku();
},
// 把对应 selectedVariantsIndex 下标选中 variables -> values 的 selected 字段为 true
checkedVariants() {
this.source.variables.forEach((variable, index) => {
- variable.values.forEach(value => {
- value.selected = false
- })
+ // variable.values.forEach(value => {
+ // value.selected = false
+ // })
variable.values[this.selectedVariantsIndex[index]].selected = true
})
},
+
+ // 根据 selectedVariantsIndex 下标获取对应的 sku
+ getSku() {
+ const sku = this.source.skus.find(sku => sku.variants.toString() === this.selectedVariantsIndex.toString())
+ console.log(sku);
+ this.product = sku
+ }
}
})