From 80bd7bd22c749305fc2732cef9e8dfc0c465baad Mon Sep 17 00:00:00 2001 From: Fantasy Date: Thu, 17 Nov 2022 16:29:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(sku):=20=E4=BF=AE=E5=A4=8D=E7=A6=81?= =?UTF-8?q?=E7=94=A8=E5=B1=9E=E6=80=A7=E4=BB=8D=E4=BC=9A=E8=A2=AB=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=80=89=E4=B8=AD=E7=9A=84=E9=97=AE=E9=A2=98=20(#1126?= =?UTF-8?q?1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(sku): 支持属性的禁用状态 * fix(sku): 修复禁用属性仍会被默认选中的问题 * chore(sku): drop console Co-authored-by: neverland --- src/sku/Sku.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/sku/Sku.js b/src/sku/Sku.js index b1a0d6279..a0f99e426 100644 --- a/src/sku/Sku.js +++ b/src/sku/Sku.js @@ -419,14 +419,22 @@ export default createComponent({ this.selectedProp[item.k_id] = selectedProp[item.k_id]; } }); + if (isEmpty(this.selectedProp)) { this.propList.forEach((item) => { // 没有加价的属性,默认选中第一个 if (item?.v?.length > 0) { const { v, k_id } = item; const isHasConfigPrice = v.some((i) => +i.price !== 0); + // 没有加价属性 if (!isHasConfigPrice) { - this.selectedProp[k_id] = [v[0].id]; + // 找到第一个不被禁用的属性 + // 历史如果没有 text_status 字段的,就相当于沿用直接原来的逻辑取第一个属性 + const firstEnableProp = v.find((prop) => prop.text_status !== 0); + + if (firstEnableProp) { + this.selectedProp[k_id] = [firstEnableProp.id]; + } } } });