Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
68367fb8
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
大约 1 年 前同步成功
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zentaoatf
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
68367fb8
编写于
5月 25, 2023
作者:
Z
zhaoke
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'main' of git.zcorp.cc:pangu/zentaoatf
上级
199450cb
343aabe8
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
218 addition
and
169 deletion
+218
-169
ui/src/components/DropdownMenu.vue
ui/src/components/DropdownMenu.vue
+216
-169
ui/src/views/site/SiteNav.vue
ui/src/views/site/SiteNav.vue
+2
-0
未找到文件。
ui/src/components/DropdownMenu.vue
浏览文件 @
68367fb8
...
@@ -7,8 +7,14 @@
...
@@ -7,8 +7,14 @@
ref=
"menuRef"
ref=
"menuRef"
>
>
<template
v-if=
"state.show"
>
<template
v-if=
"state.show"
>
<input
type=
"text"
class=
"keywords"
v-if=
"filter"
v-model=
"keywords"
@
input=
"onKeywordsChanged"
@
click.stop
/>
<List
<List
:items=
"items
"
:items=
"itemsToShow
"
:replaceFields=
"replaceFields"
:replaceFields=
"replaceFields"
:checkedKey=
"checkedKey"
:checkedKey=
"checkedKey"
:activeKey=
"activeKey"
:activeKey=
"activeKey"
...
@@ -18,18 +24,32 @@
...
@@ -18,18 +24,32 @@
:divider=
"listDivider"
:divider=
"listDivider"
@
click=
"emit('click', $event)"
@
click=
"emit('click', $event)"
/>
/>
<slot
/>
<slot/>
</
template
>
</
template
>
</div>
</div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
withDefaults
,
defineProps
,
ref
,
reactive
,
onMounted
,
onUnmounted
,
computed
,
defineEmits
}
from
'
vue
'
;
import
{
computed
,
defineEmits
,
defineProps
,
onMounted
,
onUnmounted
,
reactive
,
ref
,
withDefaults
}
from
'
vue
'
;
import
{
useWindowSize
,
onClickOutside
}
from
'
@vueuse/core
'
import
{
onClickOutside
,
useWindowSize
}
from
'
@vueuse/core
'
import
List
from
'
./List.vue
'
;
import
List
from
'
./List.vue
'
;
import
{
ListItemKey
,
ListItemProps
}
from
'
./ListItem.vue
'
;
import
{
ListItemKey
,
ListItemProps
}
from
'
./ListItem.vue
'
;
export
type
DropdownMenuPosition
=
'
bottom
'
|
'
left
'
|
'
right
'
|
'
top
'
|
'
bottom-left
'
|
'
bottom-right
'
|
'
top-left
'
|
'
top-right
'
|
'
left-top
'
|
'
left-bottom
'
|
'
right-top
'
|
'
right-bottom
'
|
{
left
:
number
,
top
:
number
}
|
((
toggleElement
:
HTMLElement
)
=>
{
left
:
number
,
top
:
number
});
export
type
DropdownMenuPosition
=
'
bottom
'
|
'
left
'
|
'
right
'
|
'
top
'
|
'
bottom-left
'
|
'
bottom-right
'
|
'
top-left
'
|
'
top-right
'
|
'
left-top
'
|
'
left-bottom
'
|
'
right-top
'
|
'
right-bottom
'
|
{
left
:
number
,
top
:
number
}
|
((
toggleElement
:
HTMLElement
)
=>
{
left
:
number
,
top
:
number
});
const
props
=
withDefaults
(
defineProps
<
{
const
props
=
withDefaults
(
defineProps
<
{
toggle
?:
object
|
string
,
toggle
?:
object
|
string
,
...
@@ -50,6 +70,7 @@ const props = withDefaults(defineProps<{
...
@@ -50,6 +70,7 @@ const props = withDefaults(defineProps<{
menuClass
?:
string
,
menuClass
?:
string
,
limitInWindow
?:
boolean
,
limitInWindow
?:
boolean
,
menuStyle
?:
object
menuStyle
?:
object
filter
?:
boolean
}
>
(),
{
hideOnClickAway
:
true
,
hideOnClickMenu
:
true
});
}
>
(),
{
hideOnClickAway
:
true
,
hideOnClickMenu
:
true
});
const
menuRef
=
ref
<
HTMLElement
>
();
const
menuRef
=
ref
<
HTMLElement
>
();
...
@@ -57,6 +78,8 @@ const cleanUpRef = ref();
...
@@ -57,6 +78,8 @@ const cleanUpRef = ref();
const
state
=
reactive
({
show
:
!!
props
.
defaultShow
,
showed
:
false
});
const
state
=
reactive
({
show
:
!!
props
.
defaultShow
,
showed
:
false
});
const
showTimerRef
=
ref
<
number
>
(
0
);
const
showTimerRef
=
ref
<
number
>
(
0
);
const
keywords
=
ref
(
''
)
function
_toggle
(
show
?:
boolean
)
{
function
_toggle
(
show
?:
boolean
)
{
if
(
show
===
undefined
)
{
if
(
show
===
undefined
)
{
show
=
!
state
.
show
;
show
=
!
state
.
show
;
...
@@ -87,7 +110,17 @@ function _handleClickMenu(event: MouseEvent) {
...
@@ -87,7 +110,17 @@ function _handleClickMenu(event: MouseEvent) {
}
}
}
}
const
emit
=
defineEmits
<
{(
type
:
'
click
'
,
event
:
{
originalEvent
:
Event
,
key
:
ListItemKey
,
item
:
ListItemProps
|
Record
<
string
,
any
>
})
:
void
}
>
();
const
itemsToShow
=
computed
(()
=>
{
let
arr
=
props
.
items
?.
filter
((
item
)
=>
{
return
!
keywords
.
value
||
item
.
name
.
indexOf
(
keywords
.
value
)
>
-
1
;
})
return
arr
})
const
onKeywordsChanged
=
()
=>
{
console
.
log
(
'
onKeywordsChanged
'
)
}
const
emit
=
defineEmits
<
{
(
type
:
'
click
'
,
event
:
{
originalEvent
:
Event
,
key
:
ListItemKey
,
item
:
ListItemProps
|
Record
<
string
,
any
>
}):
void
}
>
();
onClickOutside
(
menuRef
,
_event
=>
{
onClickOutside
(
menuRef
,
_event
=>
{
if
(
props
.
hideOnClickAway
&&
state
.
showed
)
{
if
(
props
.
hideOnClickAway
&&
state
.
showed
)
{
...
@@ -228,11 +261,25 @@ onUnmounted(() => {
...
@@ -228,11 +261,25 @@ onUnmounted(() => {
padding-top
:
var
(
--space-sm
);
padding-top
:
var
(
--space-sm
);
padding-bottom
:
var
(
--space-sm
);
padding-bottom
:
var
(
--space-sm
);
}
}
.dropdown-menu
:deep
(
.list-item
)
{
.dropdown-menu
:deep
(
.list-item
)
{
padding-left
:
var
(
--space-lg
);
padding-left
:
var
(
--space-lg
);
padding-right
:
var
(
--space-lg
);
padding-right
:
var
(
--space-lg
);
}
}
.dropdown-menu
:deep
(
.list-item.has-checkmark
)
{
.dropdown-menu
:deep
(
.list-item.has-checkmark
)
{
padding-right
:
var
(
--space-sm
);
padding-right
:
var
(
--space-sm
);
}
}
.dropdown-menu
.keywords
{
margin
:
3px
10px
;
padding
:
0
5px
;
height
:
22px
;
outline
:
0
;
}
.dropdown-menu
.keywords
input
{
}
</
style
>
</
style
>
ui/src/views/site/SiteNav.vue
浏览文件 @
68367fb8
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
<DropdownMenu
<DropdownMenu
v-if=
"products.length > 0"
v-if=
"products.length > 0"
:filter=
"true"
toggle=
"#productMenuToggle"
toggle=
"#productMenuToggle"
class=
"scrollbar-y scrollbar-hover"
class=
"scrollbar-y scrollbar-hover"
:items=
"products"
:items=
"products"
...
@@ -43,6 +44,7 @@
...
@@ -43,6 +44,7 @@
@
click=
"selectProduct"
@
click=
"selectProduct"
:replaceFields=
"replaceFields"
:replaceFields=
"replaceFields"
/>
/>
<SitesModal
<SitesModal
:show=
"showSitesModal"
:show=
"showSitesModal"
@
cancel=
"sitesModalClose"
@
cancel=
"sitesModalClose"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录