diff --git a/package.json b/package.json
index 01fa3fd..0b9d762 100644
--- a/package.json
+++ b/package.json
@@ -102,6 +102,7 @@
         "ant-design-vue/es/tag/style/css",
         "ant-design-vue/es/time-picker/style/css",
         "ant-design-vue/es/tooltip/style/css",
+        "ant-design-vue/es/tree-select/style/css",
         "ant-design-vue/es/tree/style/css",
         "ant-design-vue/es/upload/style/css",
         "axios",
diff --git a/src/assets/icons/import.svg b/src/assets/icons/import.svg
new file mode 100644
index 0000000..ffee70b
--- /dev/null
+++ b/src/assets/icons/import.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1694067782275" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5140" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><path d="M746.666667 469.333333H554.666667V213.333333l42.666666 42.666667 51.2 51.2L746.666667 213.333333l59.733333 59.733334-98.133333 98.133333 21.333333 21.333333 38.4 34.133334 42.666667 42.666666h-64zM512 213.333333v85.333334H298.666667v426.666666h426.666666v-213.333333h85.333334v298.666667H213.333333V213.333333h298.666667z" fill="#ffffff" p-id="5141"></path></svg>
\ No newline at end of file
diff --git a/src/components/common/topbar.vue b/src/components/common/topbar.vue
index 69e4462..ed22a27 100644
--- a/src/components/common/topbar.vue
+++ b/src/components/common/topbar.vue
@@ -41,7 +41,7 @@ import { message } from 'ant-design-vue'
 import { defineComponent, onMounted, ref } from 'vue'
 import { getRoot } from '/@/root'
 import { getPlatformInfo } from '/@/api/manage'
-import { ELocalStorageKey, ERouterName } from '/@/types'
+import { ELocalStorageKey, ERouterName, TabName } from '/@/types'
 import { UserOutlined, ExportOutlined } from '@ant-design/icons-vue'
 import cloudapi from '/@/assets/icons/cloudapi.png'
 
@@ -61,10 +61,10 @@ interface IOptions {
 const username = ref(localStorage.getItem(ELocalStorageKey.Username))
 const workspaceName = ref('')
 const options = [
-  { key: 0, label: ERouterName.WORKSPACE.charAt(0).toUpperCase() + ERouterName.WORKSPACE.substr(1), path: '/' + ERouterName.WORKSPACE },
-  { key: 1, label: ERouterName.MEMBERS.charAt(0).toUpperCase() + ERouterName.MEMBERS.substr(1), path: '/' + ERouterName.MEMBERS },
-  { key: 2, label: ERouterName.DEVICES.charAt(0).toUpperCase() + ERouterName.DEVICES.substr(1), path: '/' + ERouterName.DEVICES },
-  { key: 3, label: ERouterName.FIRMWARES.charAt(0).toUpperCase() + ERouterName.FIRMWARES.substr(1), path: '/' + ERouterName.FIRMWARES },
+  { key: 0, label: TabName.WORKSPACE, path: '/' + ERouterName.WORKSPACE },
+  { key: 1, label: TabName.MEMBERS, path: '/' + ERouterName.MEMBERS },
+  { key: 2, label: TabName.DEVICES, path: '/' + ERouterName.DEVICES },
+  { key: 3, label: TabName.FIRMWARES, path: '/' + ERouterName.FIRMWARES },
 ]
 
 const selected = ref<string>(root.$route.path)
diff --git a/src/pages/page-web/projects/layer.vue b/src/pages/page-web/projects/layer.vue
index 76fa96d..8110d5c 100644
--- a/src/pages/page-web/projects/layer.vue
+++ b/src/pages/page-web/projects/layer.vue
@@ -3,8 +3,12 @@
     <div style="height: 50px; line-height: 50px; border-bottom: 1px solid #4f4f4f; font-weight: 450;">
       <a-row>
         <a-col :span="1"></a-col>
-        <a-col :span="22">标注</a-col>
-        <a-col :span="1"></a-col>
+        <a-col :span="20">标注</a-col>
+        <a-col :span="1">
+          <a-tooltip title="导入">
+            <img :src="importImg" class="img-icon" @click="openFileDialog" />
+          </a-tooltip>
+        </a-col>
       </a-row>
     </div>
     <div class="scrollbar" :style="{ height: scorllHeight + 'px'}">
@@ -102,6 +106,42 @@
         <a-button type="primary" @click="deleteElement">删除</a-button>
       </div>
     </a-drawer>
+    <a-modal v-model:visible="importVisible" :closable="false"  :maskClosable="false" class="modal-layer-content">
+      <template #title>
+        <div class="model-title">移动到</div>
+      </template>
+      <a-form :model="state" class="form-content">
+        <a-form-item label="文件" style="color:#fff">
+          <a-upload
+          accept=".kml"
+          action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
+          :file-list="fileList"
+          @change="handleChange"
+          >
+            <a-button class="btn-color">
+              <upload-outlined></upload-outlined>
+              上传文件
+            </a-button>
+          </a-upload>
+        </a-form-item>
+        <a-form-item label="文件夹" style="color:#fff">
+          <a-tree-select
+          v-model:value="state.file"
+          style="width: 100%"
+          :tree-data="fileTree"
+          allow-clear
+          placeholder="Please select"
+          tree-node-filter-prop="label"
+          />
+        </a-form-item>
+      </a-form>
+      <template #footer>
+        <div>
+          <a-button  large class="btn-primary btn-color" @click='importVisible=false'>取消</a-button>
+          <a-button  type="primary" large class="btn-primary" @click='importSubmit()'>确定</a-button>
+        </div>
+      </template>
+    </a-modal>
   </div>
 </template>
 
@@ -121,12 +161,13 @@ import { GeojsonCoordinate, LayerResource } from '/@/types/map'
 import { Color, GeoType } from '/@/types/mapLayer'
 import { generatePoint } from '/@/utils/genjson'
 import { gcj02towgs84, wgs84togcj02 } from '/@/vendors/coordtransform'
+import importImg from '/@/assets/icons/import.svg'
 
 const root = getRoot()
 const store = useMyStore()
 let useGMapCoverHook = useGMapCover(store)
 console.log('store', store)
-const mapLayers = ref(store.state.Layers)
+const mapLayers = ref(store?.state?.Layers)
 const checkedKeys = ref<string[]>([])
 const selectedKeys = ref<string[]>([])
 const selectedKey = ref<string>('')
@@ -441,12 +482,121 @@ function updateCoordinates (transformType: string, element: LayerResource) {
     }
   }
 }
+/** 导入文件--------------start */
+const importVisible = ref(false)
+const state = reactive({ name: '', file: '' })
+const fileList = ref()
+const fileTree = [
+  {
+    label: 'Node1',
+    value: '0-0',
+    children: [
+      {
+        label: 'Child Node1',
+        value: '0-0-0',
+      },
+    ],
+  },
+  {
+    label: 'Node2',
+    value: '0-1',
+
+    children: [
+      {
+        label: 'Child Node3',
+        value: '0-1-0',
+        disabled: true,
+      },
+      {
+        label: 'Child Node4',
+        value: '0-1-1',
+      },
+      {
+        label: 'Child Node5',
+        value: '0-1-2',
+      },
+    ],
+  },
+]
+
+// 打开文件导入弹框
+const openFileDialog = () => {
+  importVisible.value = true
+}
+// 确认导入操作
+const importSubmit = () => {
+
+}
+// const beforeUpload = (file:any) => {
+// //   fileList.value = [file]
+// // }
+const handleChange = (info: any) => {
+  let resFileList = [...info.fileList]
+  resFileList = resFileList.slice(-1)
+  resFileList = resFileList.map(file => {
+    if (file.response) {
+      file.url = file.response.url
+    }
+    return file
+  })
+  fileList.value = resFileList
+}
+
+/** 导入文件--------------end */
 </script>
 
 <style lang="scss" scoped>
+
 @import '/@/styles/index.scss';
+::v-deep(.ant-modal-content){
+  background-color: #1c1c1c;
+
+}
+.btn-color{
+    background-color: #3c3c3c;
+    border:none;
+    color:#fff;
+    &:hover{
+    background-color: #666;
+
+    }
+  }
+.form-content{
+  ::v-deep(.ant-form-item-label>label){
+    color:#ffffffa6
+  }
+  ::v-deep(.ant-select-selector){
+    background-color:#3c3c3c !important;
+    border:none !important;
+  }
+}
+.img-icon{
+  cursor: pointer;
+  width:22px;
+  height:22px;
+}
+
+.model-title{
+  cursor: move ;
+  text-align: center;
+  border: none;
+  color:#fff;
+  width:100%;
+}
 </style>
 <style lang="scss">
+.modal-layer-content{
+  .ant-modal-content{
+    background-color: #1c1c1c !important;
+  }
+  .ant-modal-header{
+    background-color: #282828;
+    border:none;
+  }
+  .ant-modal-footer{
+    border:none;
+  }
+}
 .drawer-element-wrapper {
   .ant-drawer-content {
     background-color: $dark-highlight;
@@ -491,4 +641,5 @@ function updateCoordinates (transformType: string, element: LayerResource) {
 .scrollbar {
   overflow: auto;
 }
+
 </style>
diff --git a/src/types/enums.ts b/src/types/enums.ts
index 43248fa..7aa4d47 100644
--- a/src/types/enums.ts
+++ b/src/types/enums.ts
@@ -136,3 +136,9 @@ export enum EHmsLevel {
     CAUTION,
     WARN,
 }
+export enum TabName {
+    WORKSPACE = '工作区',
+    MEMBERS = '人员管理',
+    DEVICES = '设备管理',
+    FIRMWARES='固件管理'
+}