diff --git a/snowy-admin-web/package.json b/snowy-admin-web/package.json
index 606bb814..63a8bc6f 100644
--- a/snowy-admin-web/package.json
+++ b/snowy-admin-web/package.json
@@ -17,6 +17,7 @@
"prod": "vite --mode production"
},
"dependencies": {
+ "@amap/amap-jsapi-loader": "1.0.1",
"@ant-design/colors": "7.0.0",
"@ant-design/icons-vue": "6.1.0",
"@antv/g2plot": "2.4.28",
diff --git a/snowy-admin-web/src/components/Map/aMap/README.md b/snowy-admin-web/src/components/Map/aMap/README.md
new file mode 100644
index 00000000..5a986520
--- /dev/null
+++ b/snowy-admin-web/src/components/Map/aMap/README.md
@@ -0,0 +1,198 @@
+AMap
+====
+
+> 高德地图组件,常用于地图展示使用
+
+该组件由 [小诺开源技术](https://www.xiaonuo.vip) 封装
+
+
+### 使用方式
+
+```vue
+
+
+
+
+
+```
+
+### Prop属性
+
+| 名称 | 说明 | 类型 | 默认值 |
+|---------------|---------------------|---------|--------|
+| mid | 容器ID | String | 时间戳 |
+| apiKey | 地图Key | String | |
+| center | 地图中心点 | String | 自动定位 |
+| plugins | 地图控件 | Array | |
+| viewMode | 效果:2D,3D | String | 3D |
+| zoom | 地图缩放比例 | Number | 12 |
+| pitch | 地图俯仰角度,有效范围 0-83 | String | 50 |
+| mapStyle | 地图样式 | String | normal |
+| markerCluster | 点聚合 | Boolean | true |
+
+#### 地图控件
+
+- AMap.ToolBar:缩放工具条
+- AMap.Scale:比例尺
+- AMap.HawkEye:鹰眼
+- AMap.MapType:图层切换
+- AMap.Geolocation:定位
+- AMap.MarkerCluster:点聚合
+
+#### 地图样式
+
+- normal
+- macaron
+- dark
+- fresh
+- grey
+
+### 事件
+
+| 名称 | 说明 | 参数 | 参数类型 |
+|-------------|---------------|----------|-------|
+| complete | 当地图初始化完成时触发 | - | - |
+| markerClick | 当点击了点覆盖物时触发 | position | Array |
+
+### 方法
+
+| 名称 | 说明 | 参数 | 参数类型 |
+|---------------------|----------|---------------------|-------------------|
+| renderMarker | 渲染 点标记 | dataArr | Array |
+| renderCircleMarker | 渲染 圆点标记 | dataArr | Array |
+| renderSimpleMarker | 渲染 简单点标记 | dataArr, theme | Array, String |
+| renderAwesomeMarker | 渲染 字体点标记 | dataArr | Array |
+| renderPolyline | 渲染 线 | dataArr,opt | Array,JSON |
+| renderCircle | 渲染 圆 | position,radius,opt | Array,Number,JSON |
+| renderPolygon | 渲染 面 | dataArr,opt | Array,JSON |
+| renderInfoWindow | 渲染 信息窗体 | dataArr | Array |
+| openInfoWindow | 打开 信息窗体 | position | Array |
+| clearOverlay | 清理 覆盖物 | | |
+
+### 方法参数```dataArr```结构
+
+> 点标记
+
+```json
+[{
+ "position": "坐标数组",
+ "title": "鼠标滑过点标记时的文字提示",
+ "content": "显示内容,content有效时,icon属性将被覆盖",
+ "icon": "图标",
+ "label": {
+ "content": "文本标注"
+ }
+}]
+```
+
+> 圆点标记
+
+```json
+[{
+ "position": "坐标数组,圆心位置",
+ "radius": "圆点半径",
+ "strokeColor": "线条颜色,默认#006600",
+ "fillColor": "填充颜色,默认#006600"
+}]
+```
+
+> 简单点标记
+
+```json
+[{
+ "position": "坐标数组",
+ "label": "前景文字",
+ "labelStyle": {
+ "color": "颜色",
+ "fontSize": "字体大小"
+ },
+ "style": "背景图标样式"
+}]
+```
+
+> 字体点标记
+
+```json
+[{
+ "position": "坐标数组",
+ "awesomeIcon": "图标,参见:http://fontawesome.io/icons/",
+ "labelStyle": {
+ "color": "颜色",
+ "fontSize": "字体大小"
+ },
+ "style": "背景图标样式"
+}]
+```
+
+> 线、面
+
+```json
+[{
+ "position": "坐标数组"
+}]
+```
+
+> 信息窗体
+
+```json
+[{
+ "position": "坐标数组",
+ "content": "显示内容,文本数组,会以换行进行连接"
+}]
+```
+
+### 方法参数```opt```结构
+
+> 线
+
+```json
+{
+ "strokeColor": "边线颜色,默认blue",
+ "strokeWeight": "边线宽度,默认2",
+ "strokeOpacity": "边线透明度,默认0.5",
+ "isOutline": "是否显示描边,默认false",
+ "borderWeight": "描边宽度,默认1"
+}
+```
+
+> 圆、面
+
+```json
+{
+ "strokeColor": "边线颜色,默认blue",
+ "strokeWeight": "边线宽度,默认2",
+ "strokeOpacity": "边线透明度,默认0.5",
+ "fillColor": "填充颜色,默认blue",
+ "fllOpacity": "填充透明度,默认0.5"
+}
+```
diff --git a/snowy-admin-web/src/components/Map/aMap/index.vue b/snowy-admin-web/src/components/Map/aMap/index.vue
new file mode 100644
index 00000000..08378b35
--- /dev/null
+++ b/snowy-admin-web/src/components/Map/aMap/index.vue
@@ -0,0 +1,410 @@
+
+
+
+
+
+
+
diff --git a/snowy-admin-web/src/views/exm/map/aMap.vue b/snowy-admin-web/src/views/exm/map/aMap.vue
new file mode 100644
index 00000000..353bf056
--- /dev/null
+++ b/snowy-admin-web/src/views/exm/map/aMap.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+