Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
cube-ui
提交
4743c043
C
cube-ui
项目概览
DiDi
/
cube-ui
12 个月 前同步成功
通知
34
Star
9078
Fork
1508
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cube-ui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4743c043
编写于
11月 16, 2017
作者:
D
dolymood
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update action-sheet, dialog, picker, popup, time-picker components to singleton
上级
e7188ad8
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
37 addition
and
16 deletion
+37
-16
src/common/helpers/create-api-component.js
src/common/helpers/create-api-component.js
+27
-8
src/common/helpers/instantiate-component.js
src/common/helpers/instantiate-component.js
+5
-3
src/modules/action-sheet/api.js
src/modules/action-sheet/api.js
+1
-1
src/modules/dialog/api.js
src/modules/dialog/api.js
+1
-1
src/modules/picker/api.js
src/modules/picker/api.js
+1
-1
src/modules/popup/api.js
src/modules/popup/api.js
+1
-1
src/modules/time-picker/api.js
src/modules/time-picker/api.js
+1
-1
未找到文件。
src/common/helpers/create-api-component.js
浏览文件 @
4743c043
...
...
@@ -5,9 +5,16 @@ export default function createAPIComponent(Vue, Component, events = [], single =
let
singleComponent
let
singleInstance
const
api
=
{
open
(
data
,
renderFn
)
{
if
(
singleComponent
)
{
singleInstance
.
updateRenderData
(
data
)
open
(
data
,
renderFn
,
instanceSingle
)
{
if
(
typeof
renderFn
!==
'
function
'
)
{
instanceSingle
=
renderFn
renderFn
=
null
}
if
(
instanceSingle
===
undefined
)
{
instanceSingle
=
single
}
if
(
instanceSingle
&&
singleComponent
)
{
singleInstance
.
updateRenderData
(
data
,
renderFn
)
singleInstance
.
$forceUpdate
()
// singleComponent.show && singleComponent.show()
return
singleComponent
...
...
@@ -19,18 +26,30 @@ export default function createAPIComponent(Vue, Component, events = [], single =
component
.
remove
=
function
()
{
originRemove
&&
originRemove
.
call
(
this
)
instance
.
destroy
()
singleComponent
=
null
singleInstance
=
null
if
(
instanceSingle
)
{
singleComponent
=
null
singleInstance
=
null
}
}
const
originShow
=
component
.
show
component
.
show
=
function
()
{
originShow
&&
originShow
.
call
(
this
)
return
this
}
const
originHide
=
component
.
hide
component
.
hide
=
function
()
{
originHide
&&
originHide
.
call
(
this
)
return
this
}
if
(
s
ingle
)
{
if
(
instanceS
ingle
)
{
singleComponent
=
component
singleInstance
=
instance
}
// component.show && component.show()
return
component
},
create
(
config
,
renderFn
)
{
return
api
.
open
(
parseRenderData
(
config
,
events
),
renderFn
)
create
(
config
,
renderFn
,
single
)
{
return
api
.
open
(
parseRenderData
(
config
,
events
),
renderFn
,
single
)
}
}
return
api
...
...
src/common/helpers/instantiate-component.js
浏览文件 @
4743c043
export
default
function
instantiateComponent
(
Vue
,
Component
,
data
,
renderFn
)
{
let
renderData
let
childrenRenderFn
const
instance
=
new
Vue
({
render
(
createElement
)
{
return
createElement
(
Component
,
renderData
,
renderFn
?
[
r
enderFn
(
createElement
)]
:
[])
return
createElement
(
Component
,
renderData
,
childrenRenderFn
?
[
childrenR
enderFn
(
createElement
)]
:
[])
},
methods
:
{
init
()
{
...
...
@@ -14,10 +15,11 @@ export default function instantiateComponent(Vue, Component, data, renderFn) {
}
}
})
instance
.
updateRenderData
=
function
(
data
)
{
instance
.
updateRenderData
=
function
(
data
,
render
)
{
renderData
=
data
childrenRenderFn
=
render
}
instance
.
updateRenderData
(
data
)
instance
.
updateRenderData
(
data
,
renderFn
)
instance
.
$mount
()
instance
.
init
()
const
component
=
instance
.
$children
[
0
]
...
...
src/modules/action-sheet/api.js
浏览文件 @
4743c043
import
createAPI
from
'
../../common/helpers/create-api
'
export
default
function
addActionSheet
(
Vue
,
ActionSheet
)
{
createAPI
(
Vue
,
ActionSheet
,
[
'
select
'
,
'
cancel
'
])
createAPI
(
Vue
,
ActionSheet
,
[
'
select
'
,
'
cancel
'
]
,
true
)
}
src/modules/dialog/api.js
浏览文件 @
4743c043
import
createAPI
from
'
../../common/helpers/create-api
'
export
default
function
addDialog
(
Vue
,
Dialog
)
{
const
dialog
=
createAPI
(
Vue
,
Dialog
,
[
'
confirm
'
,
'
cancel
'
,
'
close
'
,
'
btn-click
'
,
'
link-click
'
])
const
dialog
=
createAPI
(
Vue
,
Dialog
,
[
'
confirm
'
,
'
cancel
'
,
'
close
'
,
'
btn-click
'
,
'
link-click
'
]
,
true
)
const
types
=
[
'
alert
'
,
'
confirm
'
]
types
.
forEach
((
type
)
=>
{
dialog
[
type
]
=
function
(
config
,
renderFn
)
{
...
...
src/modules/picker/api.js
浏览文件 @
4743c043
import
createAPI
from
'
../../common/helpers/create-api
'
export
default
function
addPicker
(
Vue
,
Picker
)
{
createAPI
(
Vue
,
Picker
,
[
'
select
'
,
'
value-change
'
,
'
cancel
'
,
'
change
'
])
createAPI
(
Vue
,
Picker
,
[
'
select
'
,
'
value-change
'
,
'
cancel
'
,
'
change
'
]
,
true
)
}
src/modules/popup/api.js
浏览文件 @
4743c043
import
createAPI
from
'
../../common/helpers/create-api
'
export
default
function
addPopup
(
Vue
,
Popup
)
{
createAPI
(
Vue
,
Popup
,
[
'
mask-click
'
])
createAPI
(
Vue
,
Popup
,
[
'
mask-click
'
]
,
true
)
}
src/modules/time-picker/api.js
浏览文件 @
4743c043
import
createAPI
from
'
../../common/helpers/create-api
'
export
default
function
addTimePicker
(
Vue
,
TimePicker
)
{
createAPI
(
Vue
,
TimePicker
,
[
'
select
'
,
'
cancel
'
,
'
change
'
])
createAPI
(
Vue
,
TimePicker
,
[
'
select
'
,
'
cancel
'
,
'
change
'
]
,
true
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录