From 4864fb66c5f34115ccdcbfa6f66d7acdbac7723c Mon Sep 17 00:00:00 2001 From: wenmine Date: Mon, 22 Apr 2024 11:36:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(dsl-page):=E4=BF=AE=E5=A4=8D=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E8=BF=90=E8=A1=8C=E4=B8=AD=E5=AF=B9=E4=BA=8Eprops?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=BC=95=E7=94=A8utils=E5=87=BA=E7=A0=81?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98=20(#346)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(dsl-page):修复对于props属性引用utils出码报错的问题 * fix(dsl-page):修复对于props属性引用utils出码报错的问题-review --- packages/vue-generator/src/generator/page.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/vue-generator/src/generator/page.js b/packages/vue-generator/src/generator/page.js index fad6884..099f0d6 100644 --- a/packages/vue-generator/src/generator/page.js +++ b/packages/vue-generator/src/generator/page.js @@ -159,6 +159,15 @@ function handleBinding(props, attrsArr, description, state) { return attrsArr.push(`v-model${modelArgs}="${item.value.replace(/this\.(props\.)?/g, '')}"`) } + // 弥补在recurseChildren方法中,当children为undefined,但是该元素的props存在变量绑定的情况,此变量绑定的为 + // 当前JSResources在props的使用场景为变量绑定,使用范式一般为:this.xxx + const pickResourceKeys = item.value?.match(/(?<=this\.)\w+/g) || [] + const itemObject = Object.fromEntries(pickResourceKeys.map((key) => [key, true])) + + Object.keys(description.jsResource).forEach((jsResourceKey) => { + description.jsResource[jsResourceKey] = description.jsResource[jsResourceKey] || itemObject[jsResourceKey] + }) + // expression 使用 v-bind 绑定 return attrsArr.push(`:${key}="${item.value.replace(/this\.(props\.)?/g, '')}"`) }