Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
81e9dd76
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
81e9dd76
编写于
5月 20, 2021
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(h5): 1. button disabled inoperative 2. label-click
上级
120c69a2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
51 addition
and
16 deletion
+51
-16
packages/uni-components/src/components/button/index.tsx
packages/uni-components/src/components/button/index.tsx
+51
-16
未找到文件。
packages/uni-components/src/components/button/index.tsx
浏览文件 @
81e9dd76
import
{
inject
}
from
'
vue
'
import
{
inject
,
onBeforeUnmount
,
ref
}
from
'
vue
'
import
{
useI18n
,
initI18nButtonMsgsOnce
}
from
'
@dcloudio/uni-core
'
import
{
defineBuiltInComponent
}
from
'
../../helpers/component
'
import
{
useHover
}
from
'
../../helpers/useHover
'
import
{
useBooleanAttr
}
from
'
../../helpers/useBooleanAttr
'
import
{
UniFormCtx
,
uniFormKey
}
from
'
../form
'
import
{
uniLabelKey
,
UniLabelCtx
}
from
'
../label
'
import
{
useListeners
}
from
'
../../helpers/useListeners
'
import
{
useAttrs
}
from
'
../../helpers/useAttrs
'
export
default
/*#__PURE__*/
defineBuiltInComponent
({
inheritAttrs
:
false
,
name
:
'
Button
'
,
props
:
{
id
:
{
...
...
@@ -41,7 +45,8 @@ export default /*#__PURE__*/ defineBuiltInComponent({
default
:
''
,
},
},
setup
(
props
,
{
slots
})
{
setup
(
props
,
{
slots
,
emit
})
{
const
rootRef
=
ref
<
HTMLElement
|
null
>
(
null
)
if
(
__PLATFORM__
===
'
app
'
)
{
initI18nButtonMsgsOnce
()
}
...
...
@@ -51,10 +56,13 @@ export default /*#__PURE__*/ defineBuiltInComponent({
)
const
{
hovering
,
binding
}
=
useHover
(
props
)
const
{
t
}
=
useI18n
()
function
onClick
()
{
const
onClick
=
(
e
:
Event
,
isLabelClick
:
boolean
)
=>
{
if
(
props
.
disabled
)
{
return
}
if
(
isLabelClick
)
{
rootRef
.
value
!
.
click
()
}
const
formType
=
props
.
formType
if
(
formType
)
{
if
(
!
uniForm
)
{
...
...
@@ -74,23 +82,49 @@ export default /*#__PURE__*/ defineBuiltInComponent({
)
}
}
const
uniLabel
=
inject
<
UniLabelCtx
>
(
uniLabelKey
,
false
as
unknown
as
UniLabelCtx
)
if
(
!!
uniLabel
)
{
uniLabel
.
addHandler
(
onClick
)
onBeforeUnmount
(()
=>
{
uniLabel
.
removeHandler
(
onClick
)
})
}
useListeners
(
props
,
{
'
label-click
'
:
onClick
})
const
{
$listeners
,
$attrs
,
$excludeAttrs
}
=
useAttrs
({
excludeListeners
:
true
,
})
const
_listeners
=
Object
.
create
(
null
)
let
events
=
[
'
onClick
'
,
'
onTap
'
]
if
(
$listeners
.
value
)
{
Object
.
keys
(
$listeners
.
value
).
forEach
((
e
)
=>
{
if
(
props
.
disabled
&&
events
.
includes
(
e
))
{
return
}
_listeners
[
e
]
=
(
$listeners
.
value
as
any
)[
e
]
})
}
return
()
=>
{
const
hoverClass
=
props
.
hoverClass
const
booleanAttrs
=
useBooleanAttr
(
props
,
'
disabled
'
)
if
(
hoverClass
&&
hoverClass
!==
'
none
'
)
{
return
(
<
uni
-
button
onClick
=
{
onClick
}
class
=
{
hovering
.
value
?
hoverClass
:
''
}
{
...
binding
}
{
...
booleanAttrs
}
>
{
slots
.
default
&&
slots
.
default
()
}
</
uni
-
button
>
)
}
const
hasHoverClass
=
hoverClass
&&
hoverClass
!==
'
none
'
return
(
<
uni
-
button
onClick
=
{
onClick
}
{
...
booleanAttrs
}
>
<
uni
-
button
ref
=
{
rootRef
}
onClick
=
{
onClick
}
class
=
{
hasHoverClass
&&
hovering
.
value
?
hoverClass
:
''
}
{
...(
hasHoverClass
&&
binding
)
}
{
...
booleanAttrs
}
{
...
_listeners
}
{
...
$attrs
.
value
}
{
...
$excludeAttrs
.
value
}
>
{
slots
.
default
&&
slots
.
default
()
}
</
uni
-
button
>
)
...
...
@@ -100,6 +134,7 @@ export default /*#__PURE__*/ defineBuiltInComponent({
function
openFeedback
(
titleText
:
string
,
sendText
:
string
)
{
const
feedback
=
plus
.
webview
.
create
(
// @ts-ignore
'
https://service.dcloud.net.cn/uniapp/feedback.html
'
,
'
feedback
'
,
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录