Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
adff788d
Unverified
提交
adff788d
authored
5月 17, 2021
作者:
Netfan
提交者:
GitHub
5月 17, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
perf(tree): improve the beforeRightClick callback to support more configuration of the menu (#608)
上级
d34467d3
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
21 行增加
和
11 行删除
+21
-11
index.vue
src/components/Tree/src/index.vue
+12
-9
props.ts
src/components/Tree/src/props.ts
+2
-2
types.ts
src/components/Tree/src/types.ts
+7
-0
没有找到文件。
src/components/Tree/src/index.vue
浏览文件 @
adff788d
...
...
@@ -23,11 +23,12 @@
import
{
filter
}
from
'/@/utils/helper/treeHelper'
;
import
{
useTree
}
from
'./useTree'
;
import
{
useContextMenu
,
ContextMenuItem
}
from
'/@/hooks/web/useContextMenu'
;
import
{
useContextMenu
}
from
'/@/hooks/web/useContextMenu'
;
import
{
useExpose
}
from
'/@/hooks/core/useExpose'
;
import
{
useDesign
}
from
'/@/hooks/web/useDesign'
;
import
{
basicProps
}
from
'./props'
;
import
{
CreateContextOptions
}
from
'/@/components/ContextMenu'
;
interface
State
{
expandedKeys
:
Keys
;
...
...
@@ -128,18 +129,20 @@
async
function
handleRightClick
({
event
,
node
}:
Recordable
)
{
const
{
rightMenuList
:
menuList
=
[],
beforeRightClick
}
=
props
;
let
rightMenuList
:
ContextMenuItem
[]
=
[]
;
let
contextMenuOptions
:
CreateContextOptions
=
{
event
,
items
:
[]
}
;
if
(
beforeRightClick
&&
isFunction
(
beforeRightClick
))
{
rightMenuList
=
await
beforeRightClick
(
node
);
let
result
=
await
beforeRightClick
(
node
,
event
);
if
(
Array
.
isArray
(
result
))
{
contextMenuOptions
.
items
=
result
;
}
else
{
Object
.
assign
(
contextMenuOptions
,
result
);
}
}
else
{
rightMenuList
=
menuList
;
contextMenuOptions
.
items
=
menuList
;
}
if
(
!
rightMenuList
.
length
)
return
;
createContextMenu
({
event
,
items
:
rightMenuList
,
});
if
(
!
contextMenuOptions
.
items
?.
length
)
return
;
createContextMenu
(
contextMenuOptions
);
}
function
setExpandedKeys
(
keys
:
Keys
)
{
...
...
src/components/Tree/src/props.ts
浏览文件 @
adff788d
import
type
{
PropType
}
from
'vue'
;
import
type
{
ReplaceFields
,
ActionItem
,
Keys
,
CheckKeys
}
from
'./types'
;
import
type
{
ReplaceFields
,
ActionItem
,
Keys
,
CheckKeys
,
ContextMenuOptions
}
from
'./types'
;
import
type
{
ContextMenuItem
}
from
'/@/hooks/web/useContextMenu'
;
import
type
{
TreeDataItem
}
from
'ant-design-vue/es/tree/Tree'
;
import
{
propTypes
}
from
'/@/utils/propTypes'
;
...
...
@@ -53,7 +53,7 @@ export const basicProps = {
},
beforeRightClick
:
{
type
:
Function
as
PropType
<
(...
arg
:
any
)
=>
ContextMenuItem
[]
>
,
type
:
Function
as
PropType
<
(...
arg
:
any
)
=>
ContextMenuItem
[]
|
ContextMenuOptions
>
,
default
:
null
,
},
...
...
src/components/Tree/src/types.ts
浏览文件 @
adff788d
import
type
{
TreeDataItem
}
from
'ant-design-vue/es/tree/Tree'
;
import
{
ContextMenuItem
}
from
'/@/hooks/web/useContextMenu'
;
export
interface
ActionItem
{
render
:
(
record
:
Recordable
)
=>
any
;
show
?:
boolean
|
((
record
:
Recordable
)
=>
boolean
);
...
...
@@ -40,3 +41,9 @@ export interface InsertNodeParams {
list
?:
TreeDataItem
[];
push
?:
'push'
|
'unshift'
;
}
export
interface
ContextMenuOptions
{
icon
?:
string
;
styles
?:
any
;
items
?:
ContextMenuItem
[];
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论