From c9026a45cc485b5a32f5340481c2d12d610060af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B8=80=E4=B8=87?=
<52823142+Ten-K@users.noreply.github.com>
Date: Wed, 9 Mar 2022 13:54:16 +0800
Subject: [PATCH] feat: menu search (#209)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: menu search
* style(layout): 剔除windcss依赖
---
src/assets/svg/enter_outlined.svg | 1 +
src/assets/svg/mdi_keyboard_esc.svg | 1 +
.../ReIcon/src/iconifyIconOffline.ts | 8 +
src/layout/components/navbar.vue | 3 +
.../search/components/SearchFooter.vue | 42 +++++
.../search/components/SearchModal.vue | 165 ++++++++++++++++++
.../search/components/SearchResult.vue | 90 ++++++++++
.../components/search/components/index.ts | 3 +
.../components/search/components/types.ts | 1 +
src/layout/components/search/index.vue | 30 ++++
src/layout/components/sidebar/horizontal.vue | 3 +
src/layout/components/sidebar/mixNav.vue | 3 +
src/layout/hooks/useBoolean.ts | 26 +++
src/style/sidebar.scss | 6 +
14 files changed, 382 insertions(+)
create mode 100644 src/assets/svg/enter_outlined.svg
create mode 100644 src/assets/svg/mdi_keyboard_esc.svg
create mode 100644 src/layout/components/search/components/SearchFooter.vue
create mode 100644 src/layout/components/search/components/SearchModal.vue
create mode 100644 src/layout/components/search/components/SearchResult.vue
create mode 100644 src/layout/components/search/components/index.ts
create mode 100644 src/layout/components/search/components/types.ts
create mode 100644 src/layout/components/search/index.vue
create mode 100644 src/layout/hooks/useBoolean.ts
diff --git a/src/assets/svg/enter_outlined.svg b/src/assets/svg/enter_outlined.svg
new file mode 100644
index 000000000..ad3f9395f
--- /dev/null
+++ b/src/assets/svg/enter_outlined.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/mdi_keyboard_esc.svg b/src/assets/svg/mdi_keyboard_esc.svg
new file mode 100644
index 000000000..8008fdfbd
--- /dev/null
+++ b/src/assets/svg/mdi_keyboard_esc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/ReIcon/src/iconifyIconOffline.ts b/src/components/ReIcon/src/iconifyIconOffline.ts
index 7ba8a2354..299b41d0f 100644
--- a/src/components/ReIcon/src/iconifyIconOffline.ts
+++ b/src/components/ReIcon/src/iconifyIconOffline.ts
@@ -27,6 +27,7 @@ import Notebook from "@iconify-icons/ep/notebook";
import Rank from "@iconify-icons/ep/rank";
import videoPlay from "@iconify-icons/ep/video-play";
import Monitor from "@iconify-icons/ep/monitor";
+import Search from "@iconify-icons/ep/search";
addIcon("check", Check);
addIcon("menu", Menu);
addIcon("home-filled", HomeFilled);
@@ -52,6 +53,7 @@ addIcon("notebook", Notebook);
addIcon("video-play", videoPlay);
addIcon("rank", Rank);
addIcon("monitor", Monitor);
+addIcon("search", Search);
// remixicon
import arrowRightSLine from "@iconify-icons/ri/arrow-right-s-line";
@@ -63,6 +65,9 @@ import questionLine from "@iconify-icons/ri/question-line";
import checkboxCircleLine from "@iconify-icons/ri/checkbox-circle-line";
import informationLine from "@iconify-icons/ri/information-line";
import closeCircleLine from "@iconify-icons/ri/close-circle-line";
+import arrowUpLine from "@iconify-icons/ri/arrow-up-line";
+import arrowDownLine from "@iconify-icons/ri/arrow-down-line";
+import bookmark2Line from "@iconify-icons/ri/bookmark-2-line";
addIcon("arrow-right-s-line", arrowRightSLine);
addIcon("arrow-left-s-line", arrowLeftSLine);
addIcon("logout-circle-r-line", logoutCircleRLine);
@@ -72,6 +77,9 @@ addIcon("question-line", questionLine);
addIcon("checkbox-circle-line", checkboxCircleLine);
addIcon("information-line", informationLine);
addIcon("close-circle-line", closeCircleLine);
+addIcon("arrow-up-line", arrowUpLine);
+addIcon("arrow-down-line", arrowDownLine);
+addIcon("bookmark-2-line", bookmark2Line);
// Font Awesome 4
import faUser from "@iconify-icons/fa/user";
diff --git a/src/layout/components/navbar.vue b/src/layout/components/navbar.vue
index 01ee8f46d..9612f517c 100644
--- a/src/layout/components/navbar.vue
+++ b/src/layout/components/navbar.vue
@@ -2,6 +2,7 @@
import { useI18n } from "vue-i18n";
import { useNav } from "../hooks/nav";
import { useRoute } from "vue-router";
+import Search from "./search/index.vue";
import Notice from "./notice/index.vue";
import mixNav from "./sidebar/mixNav.vue";
import avatars from "/@/assets/avatars.jpg";
@@ -58,6 +59,8 @@ function translationEn() {