Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MuGuiLin
uni-app
提交
cb83dea9
U
uni-app
项目概览
MuGuiLin
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cb83dea9
编写于
1月 15, 2022
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp-alipay): 支付宝小程序组件事件监听 #2273
上级
79caaa9c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
25 addition
and
8 deletion
+25
-8
packages/uni-template-compiler/__tests__/compiler-mp-alipay.spec.js
...ni-template-compiler/__tests__/compiler-mp-alipay.spec.js
+4
-4
packages/uni-template-compiler/lib/constants.js
packages/uni-template-compiler/lib/constants.js
+1
-0
packages/uni-template-compiler/lib/script/traverse/data/index.js
...s/uni-template-compiler/lib/script/traverse/data/index.js
+16
-1
src/platforms/mp-alipay/runtime/wrapper/util.js
src/platforms/mp-alipay/runtime/wrapper/util.js
+4
-3
未找到文件。
packages/uni-template-compiler/__tests__/compiler-mp-alipay.spec.js
浏览文件 @
cb83dea9
...
...
@@ -46,8 +46,8 @@ describe('mp:compiler-mp-alipay', () => {
'
<component1 vue-id="{{
\'
551070e6-1-
\'
+__i0__}}" ref="__r" data-ref-in-for="{{c4}}" a:for="{{items}}" a:for-item="item" a:for-index="__i0__" onVueInit="__l"></component1>
'
)
assertCodegen
(
'
<component1 @change="onChange">text</component1>
'
,
'
<component1 onChange="__e"
vue-id="551070e6-1" data-event-opts="{{[[
\'
^change
\'
,[[
\'
onChange
\'
]]]]}}" data-com-type="wx" ref="__r
" onVueInit="__l">text</component1>
'
,
'
<component1 @change="onChange"
@cancle="onCancle"
>text</component1>
'
,
'
<component1 onChange="__e"
onCancle="__e" vue-id="551070e6-1" data-event-opts="{{[[
\'
^change
\'
,[[
\'
onChange
\'
]]],[
\'
^cancle
\'
,[[
\'
onCancle
\'
]]]]}}" data-com-type="wx" ref="__r" data-event-list="onChange,onCancle
" onVueInit="__l">text</component1>
'
,
undefined
,
undefined
,
{
...
...
@@ -55,8 +55,8 @@ describe('mp:compiler-mp-alipay', () => {
}
)
assertCodegen
(
'
<credit-pay @change="onChange">text</credit-pay>
'
,
'
<credit-pay onChange="__e"
vue-id="551070e6-1" data-event-opts="{{[[
\'
^change
\'
,[[
\'
onChange
\'
]]]]}}" data-com-type="wx" ref="__r
" onVueInit="__l">text</credit-pay>
'
,
'
<credit-pay @change="onChange"
@cancle="onCancle"
>text</credit-pay>
'
,
'
<credit-pay onChange="__e"
onCancle="__e" vue-id="551070e6-1" data-event-opts="{{[[
\'
^change
\'
,[[
\'
onChange
\'
]]],[
\'
^cancle
\'
,[[
\'
onCancle
\'
]]]]}}" data-com-type="wx" ref="__r" data-event-list="onChange,onCancle
" onVueInit="__l">text</credit-pay>
'
,
undefined
,
undefined
,
{
...
...
packages/uni-template-compiler/lib/constants.js
浏览文件 @
cb83dea9
...
...
@@ -63,6 +63,7 @@ module.exports = {
ATTR_DATA_EVENT_OPTS
:
'
data-event-opts
'
,
ATTR_DATA_COM_TYPE
:
'
data-com-type
'
,
ATTR_DATA_EVENT_PARAMS
:
'
data-event-params
'
,
ATTR_DATA_EVENT_LIST
:
'
data-event-list
'
,
ATTE_DATA_CUSTOM_HIDDEN
:
'
data-custom-hidden
'
,
INTERNAL_GET_ORIG
,
INTERNAL_GET_CLASS
,
...
...
packages/uni-template-compiler/lib/script/traverse/data/index.js
浏览文件 @
cb83dea9
const
t
=
require
(
'
@babel/types
'
)
const
{
ATTR_DATA_COM_TYPE
ATTR_DATA_COM_TYPE
,
ATTR_DATA_EVENT_LIST
}
=
require
(
'
../../../constants
'
)
const
processRef
=
require
(
'
./ref
'
)
...
...
@@ -51,6 +52,20 @@ module.exports = function traverseData (path, state, tagName) {
t
.
stringLiteral
(
'
__r
'
)
)
)
const
properties
=
path
.
node
.
properties
.
find
(
prop
=>
prop
.
key
.
name
===
'
on
'
).
value
.
properties
const
list
=
[]
for
(
let
index
=
0
;
index
<
properties
.
length
;
index
++
)
{
const
element
=
properties
[
index
]
if
(
element
.
value
.
value
===
'
__e
'
)
{
list
.
push
(
element
.
key
.
value
)
}
}
addAttrProperties
.
push
(
t
.
objectProperty
(
t
.
stringLiteral
(
ATTR_DATA_EVENT_LIST
),
t
.
stringLiteral
(
list
.
join
(
'
,
'
))
)
)
}
}
...
...
src/platforms/mp-alipay/runtime/wrapper/util.js
浏览文件 @
cb83dea9
...
...
@@ -115,11 +115,12 @@ export function handleRef (ref) {
if
(
ref
.
props
[
'
data-com-type
'
]
===
'
wx
'
)
{
const
eventProps
=
{}
let
refProps
=
ref
.
props
let
eventList
=
refProps
[
'
data-event-list
'
].
split
(
'
,
'
)
// 初始化支付宝小程序组件事件
Object
.
keys
(
refProps
).
forEach
(
key
=>
{
const
handler
=
refProps
[
key
]
const
res
=
key
.
match
(
/^on
([
A-Z
])(\S
*
)
/
)
if
(
res
&&
typeof
handler
===
'
function
'
&&
handler
.
name
===
'
bound handleEvent
'
)
{
if
(
eventList
.
includes
(
key
))
{
const
handler
=
refProps
[
key
]
const
res
=
key
.
match
(
/^on
([
A-Z
])(\S
*
)
/
)
const
event
=
res
&&
(
res
[
1
].
toLowerCase
()
+
res
[
2
])
refProps
[
key
]
=
eventProps
[
key
]
=
function
()
{
const
props
=
Object
.
assign
({},
refProps
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录