From 9f56562835a641f5547d1989de426ff47610963f Mon Sep 17 00:00:00 2001 From: wenmine Date: Sun, 17 Mar 2024 22:49:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(dsl-page):=E4=BF=AE=E5=A4=8D=E5=AF=B9?= =?UTF-8?q?=E4=BA=8Eprops=E5=B1=9E=E6=80=A7=E5=BC=95=E7=94=A8utils?= =?UTF-8?q?=E5=87=BA=E7=A0=81=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/vue-generator/src/generator/page.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/vue-generator/src/generator/page.js b/packages/vue-generator/src/generator/page.js index fad6884fd4..491a3a50d2 100644 --- a/packages/vue-generator/src/generator/page.js +++ b/packages/vue-generator/src/generator/page.js @@ -159,6 +159,12 @@ function handleBinding(props, attrsArr, description, state) { return attrsArr.push(`v-model${modelArgs}="${item.value.replace(/this\.(props\.)?/g, '')}"`) } + // 弥补在recurseChildren方法中,当children为undefined,但是该元素的props存在变量绑定的情况 + Object.keys(description.jsResource).forEach((jsResourceKey) => { + description.jsResource[jsResourceKey] = + description.jsResource[jsResourceKey] || item.value.includes(`.${jsResourceKey}.`) + }) + // expression 使用 v-bind 绑定 return attrsArr.push(`:${key}="${item.value.replace(/this\.(props\.)?/g, '')}"`) } From 7ab4ded477c198713151785cbef0fe61a4372c53 Mon Sep 17 00:00:00 2001 From: wenmine Date: Fri, 19 Apr 2024 17:02:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(dsl-page):=E4=BF=AE=E5=A4=8D=E5=AF=B9?= =?UTF-8?q?=E4=BA=8Eprops=E5=B1=9E=E6=80=A7=E5=BC=95=E7=94=A8utils?= =?UTF-8?q?=E5=87=BA=E7=A0=81=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?-review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/vue-generator/src/generator/page.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/vue-generator/src/generator/page.js b/packages/vue-generator/src/generator/page.js index 491a3a50d2..099f0d67bc 100644 --- a/packages/vue-generator/src/generator/page.js +++ b/packages/vue-generator/src/generator/page.js @@ -159,10 +159,13 @@ function handleBinding(props, attrsArr, description, state) { return attrsArr.push(`v-model${modelArgs}="${item.value.replace(/this\.(props\.)?/g, '')}"`) } - // 弥补在recurseChildren方法中,当children为undefined,但是该元素的props存在变量绑定的情况 + // 弥补在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] || item.value.includes(`.${jsResourceKey}.`) + description.jsResource[jsResourceKey] = description.jsResource[jsResourceKey] || itemObject[jsResourceKey] }) // expression 使用 v-bind 绑定