From 74263a9de8425902fca4df518b2d2da269d8b512 Mon Sep 17 00:00:00 2001 From: yaoyun8 Date: Mon, 27 Nov 2023 18:02:15 -0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/canvas/src/components/render/render.js | 3 ++- packages/common/component/BindI18n.vue | 2 +- packages/vue-generator/src/generator/page.js | 7 ++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/canvas/src/components/render/render.js b/packages/canvas/src/components/render/render.js index f6d36f9ba9..42a7a69e79 100644 --- a/packages/canvas/src/components/render/render.js +++ b/packages/canvas/src/components/render/render.js @@ -160,7 +160,7 @@ const parseI18n = (i18n, scope, ctx) => { return parseExpression( { type: 'JSExpression', - value: `this.i18n('${i18n.key}')` + value: `this.i18n('${i18n.key}', ${JSON.stringify(i18n.params)})` }, scope, { i18n: i18nHost.global.t, ...ctx } @@ -169,6 +169,7 @@ const parseI18n = (i18n, scope, ctx) => { const renderDefault = (children, scope, parent) => children.map?.((child) => + // eslint-disable-next-line no-use-before-define h(renderer, { schema: child, scope, diff --git a/packages/common/component/BindI18n.vue b/packages/common/component/BindI18n.vue index b2d04a58f0..9a93a2494a 100644 --- a/packages/common/component/BindI18n.vue +++ b/packages/common/component/BindI18n.vue @@ -96,7 +96,7 @@ export default { const params = [] const data = props?.data?.params || {} - curValue.replace(/\$\{(.+?)\}/g, (substr, key) => { + curValue.replace(/\{(.+?)\}/g, (substr, key) => { key && params.push({ name: key, value: data[key] || '' }) }) paramsForm.value = params diff --git a/packages/vue-generator/src/generator/page.js b/packages/vue-generator/src/generator/page.js index d331e20a81..2bafcc5049 100644 --- a/packages/vue-generator/src/generator/page.js +++ b/packages/vue-generator/src/generator/page.js @@ -162,7 +162,12 @@ function handleBinding(props, attrsArr, description, state) { } if (propType === 'i18n') { - return attrsArr.push(`:${key}="t('${item.key}')"`) + const tArguments = [`'${item.key}'`] + const i18nParams = JSON.stringify(item.params)?.replace(/"/g, "'") + + i18nParams && tArguments.push(i18nParams) + + return attrsArr.push(`:${key}="t(${tArguments.join(',')})"`) } }) }