diff --git a/package.json b/package.json
index 1aa9f70..5e1eb88 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"url": "https://gitee.com/y_project/MuYu-Cloud.git"
},
"dependencies": {
+ "@amap/amap-jsapi-loader": "^1.0.1",
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
diff --git a/src/api/manage/fenceAPI.js b/src/api/manage/fenceAPI.js
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/api/manage/fenceAPI.js
@@ -0,0 +1 @@
+
diff --git a/src/api/school/info.js b/src/api/school/info.js
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/api/school/info.js
@@ -0,0 +1 @@
+
diff --git a/src/api/totalEquipment/totalEquipmentRequest.js b/src/api/totalEquipment/totalEquipmentRequest.js
new file mode 100644
index 0000000..e69de29
diff --git a/src/api/vehicle/fence.js b/src/api/vehicle/fence.js
new file mode 100644
index 0000000..064959f
--- /dev/null
+++ b/src/api/vehicle/fence.js
@@ -0,0 +1,85 @@
+import request from '@/utils/request'
+
+// 查询电子围栏列表
+export function listFence(data) {
+ return request({
+ url: '/vehicles/sysCorpuscleFence/list',
+ method: 'POST',
+ data: data
+ })
+}
+/**
+ * 导出
+ * @param response 请求响应
+ * @param etlDictionaries 导出数据信息
+ */
+export function selectSourceExport(data){
+ return request({
+ url: "/vehicles/sysCorpuscleFence/export",
+ method: "POST",
+ data: data
+ })
+}
+/**
+ * 根据电子围栏表ID查询数据源信息
+ * @param etlSysCorpuscleFenceId 请求对象
+ * @return 返回结果
+ */
+export function getFence(id) {
+ return request({
+ url: '/vehicles/sysCorpuscleFence/' + id,
+ method: 'GET'
+ })
+}
+/**
+ * 新增(添加)电子围栏
+ * @param sysCorpuscleFenceAddReq 请求对象
+ * @return 返回结果
+ */
+export function addFence(data) {
+ return request({
+ url: '/vehicles/sysCorpuscleFence/addSysCorpuscleFence',
+ method: 'POST',
+ data: data
+ })
+}
+
+/**
+ * 修改电子围栏
+ * @param sysCorpuscleFence 请求对象
+ * @return 返回结果
+ */
+export function updateFence(data) {
+ return request({
+ url: '/vehicles/sysCorpuscleFence/updSysCorpuscleFence',
+ method: 'POST',
+ data: data
+ })
+}
+
+/**
+ * 电子围栏表信息表删除
+ * @param etlSysCorpuscleFenceId 请求对象
+ * @return 返回结果
+ */
+export function delFence(id) {
+ return request({
+ url: '/vehicles/sysCorpuscleFence/' + id,
+ method: 'DELETE'
+ })
+}
+
+export function getFencePath(id){
+ return request({
+ url: '/vehicles/sysCorpuscleFence/' + id,
+ method: 'GET'
+ })
+}
+
+export function saveFencePath(data){
+ return request({
+ url: '/vehicles/sysCorpuscleFence/updSysCorpuscleFence',
+ method: 'POST',
+ data: data
+ })
+}
diff --git a/src/api/vehicle/info.js b/src/api/vehicle/info.js
new file mode 100644
index 0000000..51ca945
--- /dev/null
+++ b/src/api/vehicle/info.js
@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询车辆信息列表
+export function listInfo(query) {
+ return request({
+ url: '/vehicle/info/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询车辆信息详细
+export function getInfo(id) {
+ return request({
+ url: '/vehicle/info/' + id,
+ method: 'get'
+ })
+}
+
+// 新增车辆信息
+export function addInfo(data) {
+ return request({
+ url: '/vehicle/info',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改车辆信息
+export function updateInfo(data) {
+ return request({
+ url: '/vehicle/info',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除车辆信息
+export function delInfo(id) {
+ return request({
+ url: '/vehicle/info/' + id,
+ method: 'delete'
+ })
+}
+
+export function realTimeLocus(vin){
+ return request({
+ url: '/vehicle/info/realTimeLocus/' + vin,
+ method: 'get'
+ })
+}
+
+export function realTimeLocusDel(vin){
+ return request({
+ url: '/vehicle/info/realTimeLocus/' + vin,
+ method: 'delete'
+ })
+}
+
+export function getVehicleDataByVin(vin){
+ return request({
+ url: '/vehicle/info/data/' + vin,
+ method: 'get'
+ })
+}
+export function getVehicleIndexData(){
+ return request({
+ url: '/vehicle/info/indexData/',
+ method: 'get'
+ })
+}
+
+
diff --git a/src/api/vehicle/move.js b/src/api/vehicle/move.js
new file mode 100644
index 0000000..b962fe7
--- /dev/null
+++ b/src/api/vehicle/move.js
@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询车辆运行记录列表
+export function listMove(query) {
+ return request({
+ url: '/vehicle/move/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询车辆运行记录详细
+export function getMove(id) {
+ return request({
+ url: '/vehicle/move/' + id,
+ method: 'get'
+ })
+}
+
+// 新增车辆运行记录
+export function addMove(data) {
+ return request({
+ url: '/vehicle/move',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改车辆运行记录
+export function updateMove(data) {
+ return request({
+ url: '/vehicle/move',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除车辆运行记录
+export function delMove(id) {
+ return request({
+ url: '/vehicle/move/' + id,
+ method: 'delete'
+ })
+}
+
+
+
+// 准备开始历史数据
+export function historyMoveStart(vin,startTime, endTime) {
+ return request({
+ url: '/vehicle/move/historyMove/' + vin + "/" + startTime + "/" + endTime,
+ method: 'get'
+ })
+}
+// 查看结束历史数据
+export function historyMoveDel(vin) {
+ return request({
+ url: '/vehicle/move/historyMove/' + vin,
+ method: 'DELETE'
+ })
+}
+
+
+// 历史数据
+export function historyMove(vin) {
+ return request({
+ url: '/vehicle/move/history/' + vin,
+ method: 'get'
+ })
+}
diff --git a/src/views/fence/AMAP/Test.vue b/src/views/fence/AMAP/Test.vue
new file mode 100644
index 0000000..bb77523
--- /dev/null
+++ b/src/views/fence/AMAP/Test.vue
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/fence/AMAP/index.vue b/src/views/fence/AMAP/index.vue
new file mode 100644
index 0000000..84e35e2
--- /dev/null
+++ b/src/views/fence/AMAP/index.vue
@@ -0,0 +1,168 @@
+
+