Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
RuoYi Vue
Commits
c5ef0336
Unverified
Commit
c5ef0336
authored
Apr 05, 2023
by
若依
Committed by
Gitee
Apr 05, 2023
Browse files
!676 优化选择图标组件
Merge pull request !676 from 也曾为你像超人/master
parents
cfce89be
4eea8cdb
Changes
2
Hide whitespace changes
Inline
Side-by-side
ruoyi-ui/src/components/IconSelect/index.vue
View file @
c5ef0336
<!-- @author zhengjie -->
<
template
>
<div
class=
"icon-body"
>
<el-input
v-model=
"name"
style=
"position: relative;"
clearable
placeholder=
"请输入图标名称"
@
clear=
"filterIcons"
@
input
.native
=
"filterIcons"
>
<i
slot=
"suffix"
class=
"el-icon-search el-input__icon"
/>
</el-input>
<div
class=
"icon-list"
>
<div
v-for=
"(item, index) in iconList"
:key=
"index"
@
click=
"selectedIcon(item)"
>
<svg-icon
:icon-class=
"item"
style=
"height: 30px;width: 16px;"
/>
<span>
{{
item
}}
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
icons
from
'
./requireIcons
'
export
default
{
name
:
'
IconSelect
'
,
data
()
{
return
{
name
:
''
,
iconList
:
icons
}
},
methods
:
{
filterIcons
()
{
this
.
iconList
=
icons
if
(
this
.
name
)
{
this
.
iconList
=
this
.
iconList
.
filter
(
item
=>
item
.
includes
(
this
.
name
))
}
},
selectedIcon
(
name
)
{
this
.
$emit
(
'
selected
'
,
name
)
document
.
body
.
click
()
},
reset
()
{
this
.
name
=
''
this
.
iconList
=
icons
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
.icon-body
{
width
:
100%
;
padding
:
10px
;
.icon-list
{
height
:
200px
;
overflow-y
:
scroll
;
div
{
height
:
30px
;
line-height
:
30px
;
margin-bottom
:
-5px
;
cursor
:
pointer
;
width
:
33%
;
float
:
left
;
}
span
{
display
:
inline-block
;
vertical-align
:
-0
.15em
;
fill
:
currentColor
;
overflow
:
hidden
;
}
}
}
</
style
>
<!-- @author zhengjie -->
<
template
>
<div
class=
"icon-body"
>
<el-input
v-model=
"name"
style=
"position: relative;"
clearable
placeholder=
"请输入图标名称"
@
clear=
"filterIcons"
@
input=
"filterIcons"
>
<i
slot=
"suffix"
class=
"el-icon-search el-input__icon"
/>
</el-input>
<div
class=
"icon-list"
>
<div
v-for=
"(item, index) in iconList"
:key=
"index"
@
click=
"selectedIcon(item)"
>
<svg-icon
:icon-class=
"item"
style=
"height: 30px;width: 16px;"
/>
<span>
{{
item
}}
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
icons
from
'
./requireIcons
'
export
default
{
name
:
'
IconSelect
'
,
data
()
{
return
{
name
:
''
,
iconList
:
icons
}
},
methods
:
{
filterIcons
()
{
this
.
iconList
=
icons
if
(
this
.
name
)
{
this
.
iconList
=
this
.
iconList
.
filter
(
item
=>
item
.
includes
(
this
.
name
))
}
},
selectedIcon
(
name
)
{
this
.
$emit
(
'
selected
'
,
name
)
document
.
body
.
click
()
},
reset
()
{
this
.
name
=
''
this
.
iconList
=
icons
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
.icon-body
{
width
:
100%
;
padding
:
10px
;
.icon-list
{
height
:
200px
;
overflow-y
:
scroll
;
div
{
height
:
30px
;
line-height
:
30px
;
margin-bottom
:
-5px
;
cursor
:
pointer
;
width
:
33%
;
float
:
left
;
}
span
{
display
:
inline-block
;
vertical-align
:
-0
.15em
;
fill
:
currentColor
;
overflow
:
hidden
;
}
}
}
</
style
>
ruoyi-ui/src/views/system/menu/index.vue
View file @
c5ef0336
...
...
@@ -77,7 +77,7 @@
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
...
...
@@ -140,8 +140,7 @@
v-if=
"form.icon"
slot=
"prefix"
:icon-class=
"form.icon"
class=
"el-input__icon"
style=
"height: 32px;width: 16px;"
style=
"width: 25px;"
/>
<i
v-else
slot=
"prefix"
class=
"el-icon-search el-input__icon"
/>
</el-input>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment