From ec763e1cb7dca873caf4afbc0dfde047b51753d3 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 17 十月 2025 17:26:54 +0800
Subject: [PATCH] 2025.10.17
---
src/components/search/SearchBar.vue | 92 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 80 insertions(+), 12 deletions(-)
diff --git a/src/components/search/SearchBar.vue b/src/components/search/SearchBar.vue
index 68ee8ed..16572cc 100644
--- a/src/components/search/SearchBar.vue
+++ b/src/components/search/SearchBar.vue
@@ -1,15 +1,28 @@
<template>
- <BaseCard class="">
+ <BaseCard size="middle-s" direction="down">
<template #content>
<el-form :inline="true">
- <OptionMission v-model="formSearch.missionCode"></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,37 +31,87 @@
</template>
<script>
+// 鍙兘浼氭湁寤舵椂鍒濆鍖栫殑閫夐」鎬绘暟锛屽寘鎷蛋鑸换鍔°�佽澶囩被鍨嬨�佽澶囩紪鍙�
+const MAX_INIT = 3;
+// 宸插垵濮嬪寲鐨勯�夐」鏁�
+let initCount = 0;
+let initEvents = [];
+
// 鎼滅储妗�
export default {
props: {
+ loading: Boolean,
searchTime: Array
},
data() {
return {
+ mission: undefined,
formSearch: {
- missionCode: '',
- type: '',
+ deviceType: '',
deviceCode: '',
timeArray: []
- }
+ },
+ // 鍙�夋棩鏈熻寖鍥达紝鏍规嵁璧拌埅浠诲姟鍐冲畾
+ dateRange: []
};
},
emits: ['search'],
watch: {
searchTime(nV, oV) {
if (nV != oV) {
- this.timeArray = this.searchTime;
+ this.formSearch.timeArray = this.searchTime;
+ }
+ },
+ mission(nV, oV) {
+ if (nV != oV) {
+ 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);
+ 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;
@@ -62,4 +125,9 @@
.p-events-auto {
}
+
+.el-form-item {
+ margin-bottom: 0px;
+ margin-right: 8px !important;
+}
</style>
--
Gitblit v1.9.3