「 联想搜索 」 组件根据给定的关键词,搜索出相关的内容并给予提示,且支持远程搜索 / 搜索结果分页配置等。
< template >
< mi-search :data ="data " search-key ="title " />
</ template >
< script setup lang ="ts ">
import { ref } from 'vue'
import type { SearchData } from '@makeit/admin-pro'
import { ExclamationCircleOutlined , DashboardOutlined } from '@ant-design/icons-vue'
const data = ref < SearchData [ ] > ( [
{
title : `关于 MAP` ,
summary : `框架特性 · 设计初衷` ,
icon : ExclamationCircleOutlined ,
path : '/about'
} ,
{
title : `控制中心` ,
summary : `纵观全局 · 运筹帷幄` ,
icon : DashboardOutlined ,
path : '/dashboard'
}
] )
</ script >
< template >
<!-- api ( string ) -->
< mi-search search-key ="title " search-action ="/v1/search/components " />
<!-- action ( function ) -->
< mi-search :data ="data " search-key ="title " :search-action ="() => handleSearchData() " />
</ template >
< script setup lang ="ts ">
import { ref } from 'vue'
import type { SearchData } from '@makeit/admin-pro'
const data = ref < SearchData [ ] > ( )
const getSearchData = ( ) : SearchData [ ] => {
// do something
return [ ]
}
const handleSearchData = async ( ) => {
// do something
// get search data
data . value = await getSearchData ( )
}
</ script >
< template >
< mi-search search-key ="title " :data ="data ">
< template v-slot:itemTemplate >
< div class ="avatar ">
< mi-search-key type ="image " tag ="img " name ="avatar " />
</ div >
< div class ="info ">
< div class ="title ">
< mi-search-key name ="title " />
</ div >
< div class ="content ">
< mi-search-key name ="content " />
</ div >
</ div >
</ template >
</ mi-search >
</ template >
< script setup lang ="ts ">
import { ref } from 'vue'
import type { SearchData } from '@makeit/admin-pro'
import { ThunderboltOutlined , CrownOutlined } from '@ant-design/icons-vue'
const data = ref < SearchData [ ] > ( [
{
title : `快速上手` ,
summary : `一目十行 · 滴水成冰` ,
icon : ThunderboltOutlined ,
path : '/start'
} ,
{
title : `主题定制` ,
summary : `精妙绝伦 · 美不胜收` ,
icon : CrownOutlined ,
path : '/theming'
}
] )
</ script >
< style lang ="less " scope >
.avatar {
width: 2rem;
/* ... */
}
</ style >
请查看 「 主题配置
」组件
Token
默认值
--mi-search-key
--mi-primary
--mi-search-loading
--mi-primary
--mi-search-input-text
--mi-primary
--mi-search-input-background-color
transparent
--mi-search-input-background-gradient-start
transparent
--mi-search-input-background-gradient-stop
transparent
--mi-search-input-placeholder
--mi-on-surface-variant
--mi-search-input-border
rgba(--mi-rgb-on-surface-variant, .5)
--mi-search-list-border
rgba(--mi-rgb-on-surface-variant, .5);
--mi-search-list-background-color
transparent
--mi-search-list-background-gradient-start
--mi-surface
--mi-search-list-background-gradient-stop
--mi-surface-variant
--mi-search-list-item-divider
rgba(--mi-rgb-on-surface-variant, .15)
--mi-search-list-item-title
--mi-on-surface-variant
--mi-search-list-item-summary
rgba(--mi-rgb-on-surface-variant, .6)
--mi-search-list-item-avatar-border
--mi-primary
--mi-search-list-pagination-border
rgba(--mi-rgb-on-surface-variant, .3)
--mi-search-list-pagination-background
rgba(--mi-rgb-surface-variant, .2)
--mi-search-list-pagination-input-border
rgba(--mi-rgb-on-surface-variant, .3)
--mi-search-list-pagination-input-text
--mi-shadow
--mi-search-list-pagination-control-default
--mi-on-surface-variant
--mi-search-list-pagination-control-disabled
rgba(--mi-rgb-on-surface-variant, .2)
MiSearch
属性 ( Properties
)
参数
类型
默认值
说明
width
number | string |
DeviceSize
''
搜索框宽度
height
number | string |
DeviceSize
''
搜索框高度
radius
number | string |
DeviceSize
48
搜索框圆角弧度
value ( v-model )
number | string
48
搜索值
placeholder
string
'搜索'
搜索框占位内容
suffix
vSlot
<SearchOutlined />
后缀
searchParams
object
{}
搜索参数
searchMethod
string
get
搜索请求方式
searchAction
string | function
''
搜索动作
searchKey
string
''
搜索关键词 key
( 必填 )
searchDelay
number | string
''
搜索延迟
listWidth
number | string |
DeviceSize
''
列表宽度
listHeight
number | string |
DeviceSize
''
列表高度
listRadius
number | string |
DeviceSize
8
列表圆角弧度
listAnimation
string
8
列表动画效果
listNoDataText
string | vSlot
'暂无符合条件的数据'
搜素结果无数据提示语
itemTemplate
vSlot
''
自定义 item
模板
pagination
boolean
true
是否分页
pageSize
number | string |
DeviceSize
10
分页每页数据
data
SearchData
[]
本地搜索数据
方法
返回值
说明
pressEnter
Search
键盘 Enter
键按下的回调事件
itemClick
None
搜索列表 Item
点击回调事件
change
None
搜索 Key
改变的回调事件
close
None
搜索列表关闭的回调事件
MiSearchKey <mi-search-key>
MiSearchKey
属性 ( Properties
)
参数
类型
默认值
说明
name
string
''
名称 ( 必填 )
tag
string
span
标签 keyof HTMLElementTagNameMap
type
string
text
类型 ['text', 'image', 'link']
content
vSlot
''
内容