feat: search ui

This commit is contained in:
tim
2025-07-08 20:36:59 +08:00
parent b8ea48b4a1
commit a0d42360c6
2 changed files with 41 additions and 40 deletions
+1 -7
View File
@@ -1,13 +1,7 @@
<template> <template>
<div class="dropdown" ref="wrapper"> <div class="dropdown" ref="wrapper">
<div class="dropdown-display" @click="toggle"> <div class="dropdown-display" @click="toggle">
<slot <slot name="display" :selected="selectedLabels" :toggle="toggle" :search="search" :setSearch="setSearch">
name="display"
:selected="selectedLabels"
:toggle="toggle"
:search="search"
:setSearch="setSearch"
>
<template v-if="multiple"> <template v-if="multiple">
<span v-if="selectedLabels.length"> <span v-if="selectedLabels.length">
<template v-for="(label, idx) in selectedLabels" :key="label.id"> <template v-for="(label, idx) in selectedLabels" :key="label.id">
@@ -9,12 +9,14 @@
</div> </div>
</template> </template>
<template #option="{ option }"> <template #option="{ option }">
<div class="search-option-item">
<i :class="['result-icon', iconMap[option.type] || 'fas fa-question']"></i> <i :class="['result-icon', iconMap[option.type] || 'fas fa-question']"></i>
<div class="result-body"> <div class="result-body">
<div class="result-main" v-html="highlight(option.text)"></div> <div class="result-main" v-html="highlight(option.text)"></div>
<div v-if="option.subText" class="result-sub" v-html="highlight(option.subText)"></div> <div v-if="option.subText" class="result-sub" v-html="highlight(option.subText)"></div>
<div v-if="option.extra" class="result-extra" v-html="highlight(option.extra)"></div> <div v-if="option.extra" class="result-extra" v-html="highlight(option.extra)"></div>
</div> </div>
</div>
</template> </template>
</Dropdown> </Dropdown>
</div> </div>
@@ -89,6 +91,11 @@ export default {
max-width: 600px; max-width: 600px;
} }
.search-option-item {
display: flex;
gap: 10px;
}
.search-option { .search-option {
display: flex; display: flex;
align-items: center; align-items: center;