|
@@ -1,5 +1,5 @@
|
|
<template>
|
|
<template>
|
|
- <ElDialog v-model="showSearch" :show-close="false" title="菜单搜索">
|
|
|
|
|
|
+ <ElDialog v-if="isModal" v-model="showSearch" :show-close="false" title="菜单搜索">
|
|
<el-select
|
|
<el-select
|
|
filterable
|
|
filterable
|
|
:reserve-keyword="false"
|
|
:reserve-keyword="false"
|
|
@@ -17,11 +17,34 @@
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</ElDialog>
|
|
</ElDialog>
|
|
|
|
+ <div v-else class="custom-hover" @click.stop="showTopSearch = !showTopSearch">
|
|
|
|
+ <Icon icon="ep:search" />
|
|
|
|
+ <el-select
|
|
|
|
+ filterable
|
|
|
|
+ :reserve-keyword="false"
|
|
|
|
+ remote
|
|
|
|
+ placeholder="请输入菜单内容"
|
|
|
|
+ :remote-method="remoteMethod"
|
|
|
|
+ class="overflow-hidden transition-all-600"
|
|
|
|
+ :class="showTopSearch ? 'w-220px ml2' : 'w-0'"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ >
|
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
|
+defineProps({
|
|
|
|
+ isModal: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: true
|
|
|
|
+ }
|
|
|
|
+})
|
|
|
|
+
|
|
const router = useRouter() // 路由对象
|
|
const router = useRouter() // 路由对象
|
|
const showSearch = ref(false) // 是否显示弹框
|
|
const showSearch = ref(false) // 是否显示弹框
|
|
|
|
+const showTopSearch = ref(false) // 是否显示顶部搜索框
|
|
const value: Ref = ref('') // 用户输入的值
|
|
const value: Ref = ref('') // 用户输入的值
|
|
|
|
|
|
const routers = router.getRoutes() // 路由对象
|
|
const routers = router.getRoutes() // 路由对象
|
|
@@ -50,14 +73,21 @@ function remoteMethod(data) {
|
|
|
|
|
|
function handleChange(path) {
|
|
function handleChange(path) {
|
|
router.push({ path })
|
|
router.push({ path })
|
|
|
|
+ hiddenTopSearch();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function hiddenTopSearch() {
|
|
|
|
+ showTopSearch.value = false
|
|
}
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
window.addEventListener('keydown', listenKey)
|
|
window.addEventListener('keydown', listenKey)
|
|
|
|
+ window.addEventListener('click', hiddenTopSearch)
|
|
})
|
|
})
|
|
|
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
window.removeEventListener('keydown', listenKey)
|
|
window.removeEventListener('keydown', listenKey)
|
|
|
|
+ window.removeEventListener('click', hiddenTopSearch)
|
|
})
|
|
})
|
|
|
|
|
|
// 监听 ctrl + k
|
|
// 监听 ctrl + k
|