diff --git a/package-lock.json b/package-lock.json
index c3e83c8..e865e3e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"dependencies": {
"axios": "^1.9.0",
"core-js": "^3.6.5",
+ "echarts": "^5.6.0",
"element-ui": "^2.15.14",
"lodash": "^4.17.21",
"mapbox-gl": "^2.15.0",
@@ -6291,6 +6292,20 @@
"safer-buffer": "^2.1.0"
}
},
+ "node_modules/echarts": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.6.0.tgz",
+ "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==",
+ "dependencies": {
+ "tslib": "2.3.0",
+ "zrender": "5.6.1"
+ }
+ },
+ "node_modules/echarts/node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ },
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -17487,6 +17502,19 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
"dev": true
+ },
+ "node_modules/zrender": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.1.tgz",
+ "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==",
+ "dependencies": {
+ "tslib": "2.3.0"
+ }
+ },
+ "node_modules/zrender/node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
},
"dependencies": {
@@ -22265,6 +22293,22 @@
"safer-buffer": "^2.1.0"
}
},
+ "echarts": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.6.0.tgz",
+ "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==",
+ "requires": {
+ "tslib": "2.3.0",
+ "zrender": "5.6.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ }
+ }
+ },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -31208,6 +31252,21 @@
"dev": true
}
}
+ },
+ "zrender": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.1.tgz",
+ "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==",
+ "requires": {
+ "tslib": "2.3.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ }
+ }
}
}
}
diff --git a/package.json b/package.json
index 6f41495..23d1da7 100644
--- a/package.json
+++ b/package.json
@@ -9,18 +9,19 @@
"lint": "eslint --ext .js,.vue src"
},
"dependencies": {
- "core-js": "^3.6.5",
- "vue": "^2.6.11",
- "vuex": "^3.4.0",
"axios": "^1.9.0",
+ "core-js": "^3.6.5",
+ "echarts": "^5.6.0",
"element-ui": "^2.15.14",
"lodash": "^4.17.21",
"mapbox-gl": "^2.15.0",
"mqtt": "^2.18.9",
"normalize.css": "^8.0.1",
"nprogress": "^0.2.0",
+ "vue": "^2.6.11",
"vue-router": "^3.6.5",
- "vue-template-compiler": "^2.7.16"
+ "vue-template-compiler": "^2.7.16",
+ "vuex": "^3.4.0"
},
"devDependencies": {
"@mapbox/mapbox-gl-draw": "^1.5.0",
@@ -45,4 +46,4 @@
"main": ".eslintrc.js",
"author": "",
"license": "ISC"
-}
\ No newline at end of file
+}
diff --git a/src/components/DateRangePicker.vue b/src/components/DateRangePicker.vue
new file mode 100644
index 0000000..63f342d
--- /dev/null
+++ b/src/components/DateRangePicker.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
diff --git a/src/router/index.js b/src/router/index.js
index 9a73165..57ce50b 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -99,6 +99,17 @@ const routes = [
roles: ['admin', 'editor'],
tapName: 'plane'
}
+ },
+ {
+ path: '/register/flyData',
+ component: () => import('@/views/layout/components/main/register/flyData'),
+ meta: {
+ title: '飞行数据统计',
+ icon: 'el-icon-data-line',
+ roles: ['admin', 'editor'],
+ tapName: 'plane',
+ hidden: true
+ }
}
]
},
diff --git a/src/store/modules/app.js b/src/store/modules/app.js
index e6d0297..64cbde2 100644
--- a/src/store/modules/app.js
+++ b/src/store/modules/app.js
@@ -5,10 +5,11 @@ const state = {
isWideScreen: window.innerWidth < 480, // 屏幕宽度是否小于480
defaultLonLat: null, // 地图默认经纬度
defaultZoom: null, // 地图默认缩放
- orderSerch: null, // 订单列表页搜索条件
- /* 页面临时传参 */
- toMessageIdArr: [] // 用户管理 发布公告页面 id临时传参
+ /* 页面参数 */
+ orderSerch: null, // 订单列表页搜索条件
+ toMessageIdArr: [], // 用户管理 发布公告页面 id临时传参
+ toFlyDataIdArr: [] // 飞机飞行数据 临时传参
}
const mutations = {
@@ -56,8 +57,13 @@ const mutations = {
},
/* 临时传参 */
+ // 管理员管理 发布公告页面 传递id数组
setToMessageIdArr (state, idArr) {
state.toMessageIdArr = idArr
+ },
+ // 飞机飞行数据 传递id数组
+ setToFlyDataIdArr (state, idArr) {
+ state.toFlyDataIdArr = idArr
}
}
diff --git a/src/utils/api/table.js b/src/utils/api/table.js
index 7c15488..683dd52 100644
--- a/src/utils/api/table.js
+++ b/src/utils/api/table.js
@@ -161,3 +161,20 @@ export async function pubMessage (tit, message, idArr, endTime) {
const res = await api.post('pubMessage', params, 'Admin') // 模块名根据你实际配置来
return res
}
+
+/**
+ * @abstract 获取指定飞机组的飞行数据(按时间范围)
+ * @param {Array} idArr 飞机ID数组
+ * @param {Number} startTime 开始时间
+ * @param {Number} endTime 结束时间
+ * @returns 飞行数据列表
+ */
+export async function getFlyData (idArr, startTime, endTime) {
+ const params = new URLSearchParams()
+ params.append('idArr', idArr.join(',')) // 后端只收字符串,用逗号分隔
+ params.append('startTime', startTime)
+ params.append('endTime', endTime)
+
+ const res = await api.post('getFlyDataByIdArr', params, 'Plane')
+ return res
+}
diff --git a/src/views/layout/components/main/register/flyData.vue b/src/views/layout/components/main/register/flyData.vue
new file mode 100644
index 0000000..ad097b4
--- /dev/null
+++ b/src/views/layout/components/main/register/flyData.vue
@@ -0,0 +1,303 @@
+
+
+
+
+
+
+
diff --git a/src/views/layout/components/main/register/index.vue b/src/views/layout/components/main/register/index.vue
index bd0c902..4924826 100644
--- a/src/views/layout/components/main/register/index.vue
+++ b/src/views/layout/components/main/register/index.vue
@@ -6,6 +6,7 @@
删除
编辑
+ 飞行数据
@@ -116,6 +117,17 @@ export default {
this.$message.error('只能选择一条记录')
}
},
+ /**
+ * @description: 跳转到飞机数据统计页面
+ */
+ toFlyDataPage (selIdArr) {
+ if (selIdArr.length === 0) {
+ this.$message.error('请选择至少一架飞机')
+ } else {
+ this.$store.commit('app/setToFlyDataIdArr', selIdArr)// 传参
+ this.$router.push('/register/flyData/')
+ }
+ },
/**
* @description: 删除飞机
*/