Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cocktail-party-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cocktail-party
cocktail-party-server
Commits
a4fe88ca
Unverified
提交
a4fe88ca
authored
4月 23, 2023
作者:
若依
提交者:
Gitee
4月 23, 2023
浏览文件
操作
浏览文件
下载
差异文件
!707 恢复翻页/切换路由滚动功能
Merge pull request !707 from 也曾为你像超人/master
上级
af15a3b2
6a18e063
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
138 行增加
和
137 行删除
+138
-137
index.vue
ruoyi-ui/src/components/IconSelect/index.vue
+10
-18
AppMain.vue
ruoyi-ui/src/layout/components/AppMain.vue
+23
-0
ScrollPane.vue
ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
+94
-94
index.vue
ruoyi-ui/src/layout/index.vue
+11
-25
没有找到文件。
ruoyi-ui/src/components/IconSelect/index.vue
浏览文件 @
a4fe88ca
...
@@ -5,16 +5,14 @@
...
@@ -5,16 +5,14 @@
<i
slot=
"suffix"
class=
"el-icon-search el-input__icon"
/>
<i
slot=
"suffix"
class=
"el-icon-search el-input__icon"
/>
</el-input>
</el-input>
<div
class=
"icon-list"
>
<div
class=
"icon-list"
>
<el-scrollbar>
<div
class=
"list-container"
>
<div
class=
"list-container"
>
<div
v-for=
"(item, index) in iconList"
class=
"icon-item-wrapper"
:key=
"index"
@
click=
"selectedIcon(item)"
>
<div
v-for=
"(item, index) in iconList"
class=
"icon-item-wrapper"
:key=
"index"
@
click=
"selectedIcon(item)"
>
<div
:class=
"['icon-item',
{ active: activeIcon === item }]">
<div
:class=
"['icon-item',
{ active: activeIcon === item }]">
<svg-icon
:icon-class=
"item"
class-name=
"icon"
style=
"height: 25px;width: 16px;"
/>
<svg-icon
:icon-class=
"item"
class-name=
"icon"
style=
"height: 30px;width: 16px;"
/>
<span>
{{
item
}}
</span>
<span
:title=
"item"
>
{{
item
}}
</span>
</div>
</div>
</div>
</div>
</div>
</
el-scrollbar
>
</
div
>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -63,27 +61,21 @@ export default {
...
@@ -63,27 +61,21 @@ export default {
}
}
.icon-list
{
.icon-list
{
height
:
200px
;
height
:
200px
;
::v-deep
.el-scrollbar
{
overflow
:
auto
;
height
:
100%
;
.el-scrollbar__wrap
{
overflow-x
:
hidden
;
}
}
.list-container
{
.list-container
{
display
:
flex
;
display
:
flex
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
.icon-item-wrapper
{
.icon-item-wrapper
{
width
:
calc
(
100%
/
3
);
width
:
calc
(
100%
/
3
);
height
:
30px
;
height
:
25px
;
line-height
:
30px
;
line-height
:
25px
;
margin-bottom
:
-5px
;
cursor
:
pointer
;
cursor
:
pointer
;
display
:
flex
;
display
:
flex
;
.icon-item
{
.icon-item
{
display
:
flex
;
display
:
flex
;
max-width
:
100%
;
max-width
:
100%
;
height
:
100%
;
height
:
100%
;
padding
:
0
2
px
;
padding
:
0
5
px
;
&
:hover
{
&
:hover
{
background
:
#ececec
;
background
:
#ececec
;
border-radius
:
5px
;
border-radius
:
5px
;
...
...
ruoyi-ui/src/layout/components/AppMain.vue
浏览文件 @
a4fe88ca
...
@@ -50,3 +50,26 @@ export default {
...
@@ -50,3 +50,26 @@ export default {
}
}
}
}
</
style
>
</
style
>
<
style
lang=
"scss"
>
// fix css style bug in open el-dialog
.el-popup-parent--hidden
{
.fixed-header
{
padding-right
:
6px
;
}
}
::-webkit-scrollbar
{
width
:
6px
;
height
:
6px
;
}
::-webkit-scrollbar-track
{
background-color
:
#f1f1f1
;
}
::-webkit-scrollbar-thumb
{
background-color
:
#c0c0c0
;
border-radius
:
3px
;
}
</
style
>
ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
浏览文件 @
a4fe88ca
<
template
>
<
template
>
<el-scrollbar
ref=
"scrollContainer"
:vertical=
"false"
class=
"scroll-container"
@
wheel
.
native
.
prevent=
"handleScroll"
>
<el-scrollbar
ref=
"scrollContainer"
:vertical=
"false"
class=
"scroll-container"
@
wheel
.
native
.
prevent=
"handleScroll"
>
<slot
/>
<slot
/>
</el-scrollbar>
</el-scrollbar>
</
template
>
</
template
>
<
script
>
<
script
>
const
tagAndTagSpacing
=
4
// tagAndTagSpacing
const
tagAndTagSpacing
=
4
// tagAndTagSpacing
export
default
{
export
default
{
name
:
'ScrollPane'
,
name
:
'ScrollPane'
,
data
()
{
data
()
{
return
{
return
{
left
:
0
left
:
0
}
}
},
},
computed
:
{
computed
:
{
scrollWrapper
()
{
scrollWrapper
()
{
return
this
.
$refs
.
scrollContainer
.
$refs
.
wrap
return
this
.
$refs
.
scrollContainer
.
$refs
.
wrap
}
}
},
},
mounted
()
{
mounted
()
{
this
.
scrollWrapper
.
addEventListener
(
'scroll'
,
this
.
emitScroll
,
true
)
this
.
scrollWrapper
.
addEventListener
(
'scroll'
,
this
.
emitScroll
,
true
)
},
},
beforeDestroy
()
{
beforeDestroy
()
{
this
.
scrollWrapper
.
removeEventListener
(
'scroll'
,
this
.
emitScroll
)
this
.
scrollWrapper
.
removeEventListener
(
'scroll'
,
this
.
emitScroll
)
},
},
methods
:
{
methods
:
{
handleScroll
(
e
)
{
handleScroll
(
e
)
{
const
eventDelta
=
e
.
wheelDelta
||
-
e
.
deltaY
*
40
const
eventDelta
=
e
.
wheelDelta
||
-
e
.
deltaY
*
40
const
$scrollWrapper
=
this
.
scrollWrapper
const
$scrollWrapper
=
this
.
scrollWrapper
$scrollWrapper
.
scrollLeft
=
$scrollWrapper
.
scrollLeft
+
eventDelta
/
4
$scrollWrapper
.
scrollLeft
=
$scrollWrapper
.
scrollLeft
+
eventDelta
/
4
},
},
emitScroll
()
{
emitScroll
()
{
this
.
$emit
(
'scroll'
)
this
.
$emit
(
'scroll'
)
},
},
moveToTarget
(
currentTag
)
{
moveToTarget
(
currentTag
)
{
const
$container
=
this
.
$refs
.
scrollContainer
.
$el
const
$container
=
this
.
$refs
.
scrollContainer
.
$el
const
$containerWidth
=
$container
.
offsetWidth
const
$containerWidth
=
$container
.
offsetWidth
const
$scrollWrapper
=
this
.
scrollWrapper
const
$scrollWrapper
=
this
.
scrollWrapper
const
tagList
=
this
.
$parent
.
$refs
.
tag
const
tagList
=
this
.
$parent
.
$refs
.
tag
let
firstTag
=
null
let
firstTag
=
null
let
lastTag
=
null
let
lastTag
=
null
// find first tag and last tag
// find first tag and last tag
if
(
tagList
.
length
>
0
)
{
if
(
tagList
.
length
>
0
)
{
firstTag
=
tagList
[
0
]
firstTag
=
tagList
[
0
]
lastTag
=
tagList
[
tagList
.
length
-
1
]
lastTag
=
tagList
[
tagList
.
length
-
1
]
}
}
if
(
firstTag
===
currentTag
)
{
if
(
firstTag
===
currentTag
)
{
$scrollWrapper
.
scrollLeft
=
0
$scrollWrapper
.
scrollLeft
=
0
}
else
if
(
lastTag
===
currentTag
)
{
}
else
if
(
lastTag
===
currentTag
)
{
$scrollWrapper
.
scrollLeft
=
$scrollWrapper
.
scrollWidth
-
$containerWidth
$scrollWrapper
.
scrollLeft
=
$scrollWrapper
.
scrollWidth
-
$containerWidth
}
else
{
}
else
{
// find preTag and nextTag
// find preTag and nextTag
const
currentIndex
=
tagList
.
findIndex
(
item
=>
item
===
currentTag
)
const
currentIndex
=
tagList
.
findIndex
(
item
=>
item
===
currentTag
)
const
prevTag
=
tagList
[
currentIndex
-
1
]
const
prevTag
=
tagList
[
currentIndex
-
1
]
const
nextTag
=
tagList
[
currentIndex
+
1
]
const
nextTag
=
tagList
[
currentIndex
+
1
]
// the tag's offsetLeft after of nextTag
// the tag's offsetLeft after of nextTag
const
afterNextTagOffsetLeft
=
nextTag
.
$el
.
offsetLeft
+
nextTag
.
$el
.
offsetWidth
+
tagAndTagSpacing
const
afterNextTagOffsetLeft
=
nextTag
.
$el
.
offsetLeft
+
nextTag
.
$el
.
offsetWidth
+
tagAndTagSpacing
// the tag's offsetLeft before of prevTag
// the tag's offsetLeft before of prevTag
const
beforePrevTagOffsetLeft
=
prevTag
.
$el
.
offsetLeft
-
tagAndTagSpacing
const
beforePrevTagOffsetLeft
=
prevTag
.
$el
.
offsetLeft
-
tagAndTagSpacing
if
(
afterNextTagOffsetLeft
>
$scrollWrapper
.
scrollLeft
+
$containerWidth
)
{
if
(
afterNextTagOffsetLeft
>
$scrollWrapper
.
scrollLeft
+
$containerWidth
)
{
$scrollWrapper
.
scrollLeft
=
afterNextTagOffsetLeft
-
$containerWidth
$scrollWrapper
.
scrollLeft
=
afterNextTagOffsetLeft
-
$containerWidth
}
else
if
(
beforePrevTagOffsetLeft
<
$scrollWrapper
.
scrollLeft
)
{
}
else
if
(
beforePrevTagOffsetLeft
<
$scrollWrapper
.
scrollLeft
)
{
$scrollWrapper
.
scrollLeft
=
beforePrevTagOffsetLeft
$scrollWrapper
.
scrollLeft
=
beforePrevTagOffsetLeft
}
}
}
}
}
}
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.scroll-container
{
.scroll-container
{
white-space
:
nowrap
;
white-space
:
nowrap
;
position
:
relative
;
position
:
relative
;
overflow
:
hidden
;
overflow
:
hidden
;
width
:
100%
;
width
:
100%
;
::v-deep
{
::v-deep
{
.el-scrollbar__bar
{
.el-scrollbar__bar
{
bottom
:
0px
;
bottom
:
0px
;
}
}
.el-scrollbar__wrap
{
.el-scrollbar__wrap
{
height
:
49px
;
height
:
39px
;
}
}
}
}
}
}
</
style
>
</
style
>
ruoyi-ui/src/layout/index.vue
浏览文件 @
a4fe88ca
<
template
>
<
template
>
<div
:class=
"classObj"
class=
"app-wrapper"
:style=
"
{'--current-color': theme}">
<div
:class=
"classObj"
class=
"app-wrapper"
:style=
"
{'--current-color': theme}">
<div
v-if=
"device==='mobile'&&sidebar.opened"
class=
"drawer-bg"
@
click=
"handleClickOutside"
/>
<div
v-if=
"device==='mobile'&&sidebar.opened"
class=
"drawer-bg"
@
click=
"handleClickOutside"
/>
<sidebar
v-if=
"!sidebar.hide"
class=
"sidebar-container"
/>
<sidebar
v-if=
"!sidebar.hide"
class=
"sidebar-container"
/>
<div
:class=
"
{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
<div
:class=
"
{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
<el-scrollbar>
<div
:class=
"
{'fixed-header':fixedHeader}">
<div
:class=
"
{'fixed-header':fixedHeader}">
<navbar/>
<navbar/>
<tags-view
v-if=
"needTagsView"
/>
<tags-view
v-if=
"needTagsView"
/>
</div>
<app-main/>
<right-panel>
<settings/>
</right-panel>
</el-scrollbar>
</div>
</div>
<app-main/>
<right-panel>
<settings/>
</right-panel>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -74,18 +72,6 @@ export default {
...
@@ -74,18 +72,6 @@ export default {
height
:
100%
;
height
:
100%
;
width
:
100%
;
width
:
100%
;
.el-scrollbar
{
height
:
100%
;
}
::v-deep
.el-scrollbar__bar.is-vertical
{
z-index
:
10
;
}
::v-deep
.el-scrollbar__wrap
{
overflow-x
:
hidden
;
}
&
.mobile.openSidebar
{
&
.mobile.openSidebar
{
position
:
fixed
;
position
:
fixed
;
top
:
0
;
top
:
0
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论