From 306ef09707d6bcf9ffa67de55f86ab6f4362deee Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 18 七月 2025 10:04:01 +0800
Subject: [PATCH] 2025.7.18 动态溯源-测试版本

---
 src/components/search/SearchBar.vue |   88 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 73 insertions(+), 15 deletions(-)

diff --git a/src/components/search/SearchBar.vue b/src/components/search/SearchBar.vue
index 1c1202d..16572cc 100644
--- a/src/components/search/SearchBar.vue
+++ b/src/components/search/SearchBar.vue
@@ -2,14 +2,27 @@
   <BaseCard size="middle-s" direction="down">
     <template #content>
       <el-form :inline="true">
-        <OptionMission v-model="mission"></OptionMission>
-        <OptionType v-model="formSearch.type"></OptionType>
+        <OptionMission v-model="mission" @init-over="initOver"></OptionMission>
+        <OptionType
+          v-model="formSearch.deviceType"
+          @init-over="initOver"
+        ></OptionType>
         <OptionDevice
-          :type="formSearch.type"
+          :type="formSearch.deviceType"
           v-model="formSearch.deviceCode"
+          @init-over="initOver"
         ></OptionDevice>
-        <OptionTime v-model="formSearch.timeArray"></OptionTime>
-        <el-button type="primary" class="el-button-custom" @click="handleClick">
+        <OptionTime
+          v-model="formSearch.timeArray"
+          :start-date="dateRange[0]"
+          :end-date="dateRange[1]"
+        ></OptionTime>
+        <el-button
+          :loading="loading"
+          type="primary"
+          class="el-button-custom"
+          @click="handleClick"
+        >
           鍒嗘瀽
         </el-button>
       </el-form>
@@ -18,19 +31,28 @@
 </template>
 
 <script>
+// 鍙兘浼氭湁寤舵椂鍒濆鍖栫殑閫夐」鎬绘暟锛屽寘鎷蛋鑸换鍔°�佽澶囩被鍨嬨�佽澶囩紪鍙�
+const MAX_INIT = 3;
+// 宸插垵濮嬪寲鐨勯�夐」鏁�
+let initCount = 0;
+let initEvents = [];
+
 // 鎼滅储妗�
 export default {
   props: {
+    loading: Boolean,
     searchTime: Array
   },
   data() {
     return {
-      mission: {},
+      mission: undefined,
       formSearch: {
-        type: '',
+        deviceType: '',
         deviceCode: '',
         timeArray: []
-      }
+      },
+      // 鍙�夋棩鏈熻寖鍥达紝鏍规嵁璧拌埅浠诲姟鍐冲畾
+      dateRange: []
     };
   },
   emits: ['search'],
@@ -42,23 +64,54 @@
     },
     mission(nV, oV) {
       if (nV != oV) {
-        this.formSearch.timeArray = [
-          new Date(nV.startTime),
-          new Date(nV.endTime)
-        ];
-        this.formSearch.type = nV.deviceType;
-        this.formSearch.deviceCode = nV.deviceCode;
+        this.onInit(() => {
+          setTimeout(() => {
+            // 寤舵椂璧嬪�硷紝鍥犱负deviceType鍜宒eviceCode涔熸湁榛樿鍒濆鍊�
+            this.formSearch.timeArray = [
+              new Date(nV.startTime),
+              new Date(nV.endTime)
+            ];
+            this.dateRange = [new Date(nV.startTime), new Date(nV.endTime)];
+            this.formSearch.deviceType = nV.deviceType;
+            this.formSearch.deviceCode = nV.deviceCode;
+            // 浠h〃棣栨杩涘叆鐣岄潰锛屾鏃惰嚜鍔ㄦ墽琛岄涓换鍔$殑鏁版嵁鏌ヨ鎿嶄綔
+            if (oV == undefined) {
+              this.handleClick();
+            }
+          }, 500);
+        });
       }
     }
   },
   methods: {
+    // 鍚勯�夐」鍒濆鍖栧姞杞藉畬鎴愬垽瀹�
+    initOver() {
+      initCount++;
+      if (initCount == MAX_INIT && initEvents.length > 0) {
+        initEvents.forEach((e) => {
+          e();
+        });
+        initEvents = [];
+      }
+    },
+    onInit(event) {
+      if (initCount == MAX_INIT) {
+        event();
+      } else {
+        initEvents.push(event);
+      }
+    },
     handleClick() {
       this.$emit('search', { ...this.formSearch, mission: this.mission });
     }
+  },
+  created() {
+    initCount = 0;
+    initEvents = [];
   }
 };
 </script>
-<style lang="scss">
+<style scoped lang="scss">
 .map-date-selector {
   display: inline-block;
   position: relative;
@@ -72,4 +125,9 @@
 
 .p-events-auto {
 }
+
+.el-form-item {
+  margin-bottom: 0px;
+  margin-right: 8px !important;
+}
 </style>

--
Gitblit v1.9.3