Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Dr.Disrespect
vue-vben-admin
提交
adff788d
V
vue-vben-admin
项目概览
Dr.Disrespect
/
vue-vben-admin
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-vben-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
adff788d
编写于
5月 17, 2021
作者:
N
Netfan
提交者:
GitHub
5月 17, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
perf(tree): improve the beforeRightClick callback to support more configuration of the menu (#608)
上级
d34467d3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
11 deletion
+21
-11
src/components/Tree/src/index.vue
src/components/Tree/src/index.vue
+12
-9
src/components/Tree/src/props.ts
src/components/Tree/src/props.ts
+2
-2
src/components/Tree/src/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
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录