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) } }
}`
)
})