From 33a6362a6e50684b3652d6ac8bd7a61a9978f11b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 13 六月 2026 14:40:48 +0800
Subject: [PATCH] 君歌 1.对于新增订单需流转协同办公进行审批,审批完成流转生产管控-生产订单 2.客户分类修改为:核心、重要、普通、一般。 3.可对报价多次修改,修改后流转至协同办公-协同审批-报价审批,并对每次报价进行记录。 4.不合格管理字段按照单据进行修改。 5.谁登记的客户只能看见自己的,负责人(维护人)可以转移,操作加一个‘客户交接’按钮选择要交接给的负责人

---
 src/components/HeaderSearch/index.vue |   84 ++++++++++++++++++++++++++++--------------
 1 files changed, 56 insertions(+), 28 deletions(-)

diff --git a/src/components/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue
index 89a9478..a81dd98 100644
--- a/src/components/HeaderSearch/index.vue
+++ b/src/components/HeaderSearch/index.vue
@@ -1,13 +1,13 @@
 <template>
   <div class="header-search">
     <svg-icon class-name="search-icon" icon-class="search" @click.stop="click" />
-    <el-dialog
-      v-model="show"
-      width="600"
-      @close="close"
-      :show-close="false"
-      append-to-body
-    >
+    <el-dialog
+      v-model="show"
+      width="600"
+      @close="close"
+      :show-close="true"
+      append-to-body
+    >
       <el-input
         v-model="search"
         ref="headerSearchSelectRef"
@@ -15,6 +15,7 @@
         @input="querySearch"
         prefix-icon="Search"
         placeholder="鑿滃崟鎼滅储锛屾敮鎸佹爣棰樸�乁RL妯$硦鏌ヨ"
+        clearable
       >
       </el-input>
 
@@ -39,28 +40,51 @@
   </div>
 </template>
 
-<script setup>
-import Fuse from 'fuse.js'
-import { getNormalPath } from '@/utils/ruoyi'
-import { isHttp } from '@/utils/validate'
-import usePermissionStore from '@/store/modules/permission'
-
-const search = ref('')
-const options = ref([])
-const searchPool = ref([])
-const show = ref(false)
+<script setup>
+import Fuse from 'fuse.js'
+import { getNormalPath } from '@/utils/ruoyi'
+import { isHttp } from '@/utils/validate'
+import usePermissionStore from '@/store/modules/permission'
+
+const props = defineProps({
+  keyword: {
+    type: String,
+    default: ''
+  }
+})
+
+const search = ref('')
+const options = ref([])
+const searchPool = ref([])
+const show = ref(false)
 const fuse = ref(undefined)
 const headerSearchSelectRef = ref(null)
 const router = useRouter()
 const routes = computed(() => usePermissionStore().defaultRoutes)
 
-function click() {
-  show.value = !show.value
-  if (show.value) {
-    headerSearchSelectRef.value && headerSearchSelectRef.value.focus()
-    options.value = searchPool.value
-  }
-}
+function click() {
+  show.value = !show.value
+  if (show.value) {
+    syncSearchFromKeyword()
+    nextTick(() => {
+      headerSearchSelectRef.value && headerSearchSelectRef.value.focus()
+    })
+  }
+}
+
+function syncSearchFromKeyword() {
+  search.value = props.keyword?.trim?.() ?? ''
+  querySearch(search.value)
+}
+
+function open(keyword = props.keyword) {
+  show.value = true
+  search.value = keyword?.trim?.() ?? ''
+  querySearch(search.value)
+  nextTick(() => {
+    headerSearchSelectRef.value && headerSearchSelectRef.value.focus()
+  })
+}
 
 function close() {
   headerSearchSelectRef.value && headerSearchSelectRef.value.blur()
@@ -159,10 +183,14 @@
   searchPool.value = generateRoutes(routes.value)
 })
 
-watch(searchPool, (list) => {
-  initFuse(list)
-})
-</script>
+watch(searchPool, (list) => {
+  initFuse(list)
+})
+
+defineExpose({
+  open
+})
+</script>
 
 <style lang='scss' scoped>
 .header-search {

--
Gitblit v1.9.3