diff --git a/packages/uni-cli-shared/src/vue/transforms/vOn.ts b/packages/uni-cli-shared/src/vue/transforms/vOn.ts index 65b13e1c9bf580b2dda8a82e0cb2d13c1fda9533..d1b1aefa99da2a66ccbbf4fc5573d6c47bfaffa3 100644 --- a/packages/uni-cli-shared/src/vue/transforms/vOn.ts +++ b/packages/uni-cli-shared/src/vue/transforms/vOn.ts @@ -1,3 +1,4 @@ +import { customizeEvent } from '@dcloudio/uni-shared' import { ExpressionNode, DirectiveNode, @@ -46,7 +47,13 @@ export function createTransformOn( } const value = res.props[0].value as ExpressionNode res.props[0].value = createCustomEventExpr() - addEventOpts(arg.content, value, node) + addEventOpts( + node.tagType === ElementTypes.COMPONENT + ? customizeEvent(arg.content) + : arg.content, + value, + node + ) return res } } diff --git a/packages/uni-mp-baidu/__tests__/vOn.spec.ts b/packages/uni-mp-baidu/__tests__/vOn.spec.ts index 4d60c0787db3e0068bdda1cc8caee8d44030399c..3b3c1e63d14124b91112878538b450d89a1cf354 100644 --- a/packages/uni-mp-baidu/__tests__/vOn.spec.ts +++ b/packages/uni-mp-baidu/__tests__/vOn.spec.ts @@ -22,10 +22,10 @@ describe('mp-baidu: transform v-on', () => { }), test(`multi custom event`, () => { assert( - ``, - ``, + ``, + ``, `(_ctx, _cache) => { - return { a: { 'custom-mount': _o($event => { _ctx.mount(); _ctx.created(); }), 'unmount': _o(_ctx.unmount) } } + return { a: { 'updateModelValue': _o(_ctx.changeHandle), 'customMount': _o($event => { _ctx.mount(); _ctx.created(); }), 'unmount': _o(_ctx.unmount) } } }` ) }) diff --git a/packages/uni-mp-kuaishou/__tests__/vOn.spec.ts b/packages/uni-mp-kuaishou/__tests__/vOn.spec.ts index fcffbfbb3d92cd09ffc9d9093776f101d13153a4..dd7d4d6acd7420d85a1f285078686d0f0c379a03 100644 --- a/packages/uni-mp-kuaishou/__tests__/vOn.spec.ts +++ b/packages/uni-mp-kuaishou/__tests__/vOn.spec.ts @@ -45,7 +45,7 @@ describe('mp-kuaishou: transform v-on', () => { ``, ``, `(_ctx, _cache) => { - return { a: { 'custom-mount': _o($event => { _ctx.mount(); _ctx.created(); }), 'unmount': _o(_ctx.unmount) } } + return { a: { 'customMount': _o($event => { _ctx.mount(); _ctx.created(); }), 'unmount': _o(_ctx.unmount) } } }` ) })