From d460a2475ccf345d119701f3c631584f747ce2f5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 15 六月 2026 17:17:25 +0800
Subject: [PATCH] 君歌 1.不需要bom、生产核算 2.新增销售台账后自动生成一个生产订单,然后对订单进行排产 3.生产排产要求可以选择计划时间,时间格式为年月日+时分秒;也要可以多选报工人 4.web和app生产报工中要细分报工开始和报工结束两个操作,根据操作的提交时间记录实际报工时长展示报工台账中 5.报工人选择的谁,只有在相关账号才能看到可报工的数据 6.不合格管理字段按照单据进行修改。 7.生产工时、质量问题汇总、客户档案、销售及回款都能从各模块中导出数据

---
 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