From 6e0afaa5762765fad3e47b52f05df5553818b5ea Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 02 Apr 2025 18:11:18 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard

---
 src/views/Home/SearchBox.vue |   64 +++++++++++++++++++++----------
 1 files changed, 43 insertions(+), 21 deletions(-)

diff --git a/src/views/Home/SearchBox.vue b/src/views/Home/SearchBox.vue
index 3691bad..7cceb4b 100644
--- a/src/views/Home/SearchBox.vue
+++ b/src/views/Home/SearchBox.vue
@@ -14,22 +14,53 @@
     </div>
     <div class="searchBtn"></div>
     <div class="region">
-      <el-select v-model="value2" placeholder="请选择查询">
-        <el-option
-          v-for="item in options1"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-        />
-      </el-select>
+      <el-tree-select
+        v-model="treeValue"
+        check-strictly
+        lazy
+        :load="load"
+        :props="props"
+        style="width: 240px"
+        @change="treeChange"
+      />
     </div>
   </div>
 </template>
 <script setup>
-const input3 = ref('');
+import { getRegion } from '@/api/home';
+import { useStore } from 'vuex';
 
+const store = useStore();
+const input3 = ref('');
+const userAreaCode = computed(() => store.state.user.userInfo.detail.areaCode);
+const selectedAreaCode = computed(() => store.state.user.selectedAreaCode);
 const value = ref('Option1');
-const value2 = ref('Optio44n1');
+const treeValue = ref(userAreaCode.value);
+let first = true;
+
+function treeChange(value) {
+  store.commit('setSelectedAreaCode', value);
+}
+
+const props = {
+  label: 'name',
+  value: 'code',
+  children: 'children',
+};
+const load = async (node, resolve) => {
+  if (first) {
+    first = false;
+    const res = await getRegion(userAreaCode.value);
+    const { provinceCode, provinceName } = res?.data?.data?.[0] || {};
+    resolve([{ code: provinceCode, name: provinceName }]);
+    return;
+  }
+  const code = node?.data?.code || userAreaCode.value;
+  if ((node?.data?.regionLevel || 0) > 2) return resolve([]);
+  getRegion(code).then(res => {
+    resolve(res?.data?.data || []);
+  });
+};
 
 const options = [
   {
@@ -38,20 +69,11 @@
   },
   {
     value: 'Optio44n1',
-    label: '事件',
+    label: '地址',
   },
 ];
 
-const options1 = [
-  {
-    value: 'Option1',
-    label: '南昌市',
-  },
-  {
-    value: 'Optio44n1',
-    label: '抚州市',
-  },
-];
+onMounted(() => {});
 </script>
 <style scoped lang="scss">
 .searchBox {

--
Gitblit v1.9.3