From dbb6c528f885e9a086ae23764521a5c33b96563d Mon Sep 17 00:00:00 2001 From: xuechunyuan <17853500702@163.com> Date: Mon, 14 Aug 2023 17:59:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BB=88=E7=AB=AF=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D=E6=9F=A5=E8=AF=A2=EF=BC=8C=E7=94=B5=E5=AD=90=E5=9B=B4?= =?UTF-8?q?=E6=A0=8F=E3=80=81=E7=94=B5=E5=AD=90=E5=8C=BA=E5=9F=9F=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=81=94=E8=B0=83\?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 4 +- src/api/rails/rails.js | 58 ++- .../wirelessintrusion/wirelessintrusion.js | 12 + src/router/axios.js | 21 +- src/views/alarmcenter/index.vue | 2 +- src/views/alarmcenter/peopleposition/list.vue | 387 ++++++--------- src/views/map/index.vue | 64 ++- src/views/rails/arealist.vue | 444 ++++++++++++++++++ src/views/rails/list.vue | 129 +++-- src/views/wirelessintrusion/device/list.vue | 16 +- src/views/wirelessintrusion/warn/record.vue | 2 +- 11 files changed, 800 insertions(+), 339 deletions(-) create mode 100644 src/views/rails/arealist.vue diff --git a/src/App.vue b/src/App.vue index 59a6cd3..ff6d27b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -102,10 +102,10 @@ export default { this.reconnect();//重连 }, websocketsend(messsage) { - that.websocket.send(messsage) + this.websocket.send(messsage) }, closeWebSocket() { // 关闭websocket - that.websocket.close() + this.websocket.close() }, }, computed: {} diff --git a/src/api/rails/rails.js b/src/api/rails/rails.js index f17226a..a60b69f 100644 --- a/src/api/rails/rails.js +++ b/src/api/rails/rails.js @@ -5,7 +5,7 @@ const baseUrl = process.env.NODE_ENV === 'production' ? 'http://182.139.182.190: //围栏列表 export const getRailsList = (token, params) => { return request({ - url: baseUrl + '/api/electronicFence/getRails', + url: baseUrl + '/api/electronicFencePlatform/rail/page', method: 'get', headers: { Authorization: token @@ -28,7 +28,7 @@ export const railsDetail = (token, id) => { //围栏删除 export const railsDelete = (token, data) => { return request({ - url: baseUrl + '/api/electronicFence/rails', + url: baseUrl + '/api/electronicFencePlatform/deleteRail', method: 'delete', headers: { Authorization: token @@ -40,7 +40,7 @@ export const railsDelete = (token, data) => { //围栏新增 export const railsAdd = (token, data) => { return request({ - url: baseUrl + '/api/electronicFence/rails', + url: baseUrl + '/api/electronicFencePlatform/rail', method: 'post', headers: { Authorization: token @@ -52,7 +52,45 @@ export const railsAdd = (token, data) => { //围栏编辑 export const railsUpdate = (token, data) => { return request({ - url: baseUrl + '/api/electronicFence/edit', + url: baseUrl + '/api/electronicFencePlatform/editRail', + method: 'put', + headers: { + Authorization: token + }, + data: data, + authorization: false + }) +} + +/////////////////////////////////////////////////////////////////////////////////////////// +//电子区域列表 +export const getRegionRailsList = (token, params) => { + return request({ + url: baseUrl + '/api/electronicFencePlatform/region/page', + method: 'get', + headers: { + Authorization: token + }, + params: params, + authorization: false + }) +} +//电子区域删除 +export const regionDelete = (token, data) => { + return request({ + url: baseUrl + '/api/electronicFencePlatform/deleteRegion', + method: 'delete', + headers: { + Authorization: token + }, + data: data, + authorization: false + }) +} +//电子区域新增 +export const regionAdd = (token, data) => { + return request({ + url: baseUrl + '/api/electronicFencePlatform/region', method: 'post', headers: { Authorization: token @@ -61,4 +99,16 @@ export const railsUpdate = (token, data) => { authorization: false }) } +//电子区域编辑 +export const regionUpdate = (token, data) => { + return request({ + url: baseUrl + '/api/electronicFencePlatform/editRegion', + method: 'put', + headers: { + Authorization: token + }, + data: data, + authorization: false + }) +} diff --git a/src/api/wirelessintrusion/wirelessintrusion.js b/src/api/wirelessintrusion/wirelessintrusion.js index ba498d9..7ab891b 100644 --- a/src/api/wirelessintrusion/wirelessintrusion.js +++ b/src/api/wirelessintrusion/wirelessintrusion.js @@ -146,4 +146,16 @@ export const alarmInfoUpdate = (data) => { method: 'post', data: data }) +} +//定位设备列表 +export const terminalList = (token, params) => { + return request({ + url: baseUrl + '/api/deviceTerminal/device/terminal', + method: 'get', + headers: { + Authorization: token + }, + params: params, + authorization: false + }) } \ No newline at end of file diff --git a/src/router/axios.js b/src/router/axios.js index 3bb264b..92094da 100644 --- a/src/router/axios.js +++ b/src/router/axios.js @@ -72,9 +72,9 @@ axios.interceptors.response.use(res => { //如果在白名单里则自行catch逻辑处理 if (statusWhiteList.includes(status)) return Promise.reject(res); //如果是401则跳转到登录页面 - if (status === 401 && message.indexOf('/api/electronicFence') < 0 && message.indexOf('/system/dict/data/type/node_type') < 0 && message.indexOf('/system/dict/data/type/device_status') < 0 && message.indexOf('/api/bizDevice/list') < 0) store.dispatch('FedLogOut').then(() => router.push({path: '/login'})); + if (status === 401 && checkWhiteList(message)) store.dispatch('FedLogOut').then(() => router.push({path: '/login'})); // 如果请求为非200否者默认统一处理 - if (status !== 200 && message.indexOf('/api/electronicFence') < 0 && message.indexOf('/system/dict/data/type/node_type') < 0 && message.indexOf('/system/dict/data/type/device_status') < 0 && message.indexOf('/api/bizDevice/list') < 0) { + if (status !== 200 && checkWhiteList(message)) { Message({ message: message, type: 'error' @@ -87,4 +87,21 @@ axios.interceptors.response.use(res => { return Promise.reject(new Error(error)); }); +const whiteList = [ + '/api/electronicFence', + '/system/dict/data/type/node_type', + '/system/dict/data/type/device_status', + '/api/bizDevice/list', + '/api/deviceTerminal/device/terminal', + '/api/electronicFencePlatform', + '/api/electronicFencePlatform' +];//物联网平台白名单接口 +function checkWhiteList(message) { + let ret = true; + whiteList.map(item => { + ret = message.indexOf(item) < 0 ? false : true; + }) + return ret; +} + export default axios; diff --git a/src/views/alarmcenter/index.vue b/src/views/alarmcenter/index.vue index 2c1a990..294a148 100644 --- a/src/views/alarmcenter/index.vue +++ b/src/views/alarmcenter/index.vue @@ -271,7 +271,7 @@ export default { // 导出 handleExport() { let values = { - deviceType: func.toStr(this.query.deviceType) + deviceType: func.toStr(this.query.type) }; if (this.query.releaseTimeRange) { values = { diff --git a/src/views/alarmcenter/peopleposition/list.vue b/src/views/alarmcenter/peopleposition/list.vue index 691e24e..8a8108c 100644 --- a/src/views/alarmcenter/peopleposition/list.vue +++ b/src/views/alarmcenter/peopleposition/list.vue @@ -1,342 +1,251 @@ - + diff --git a/src/views/map/index.vue b/src/views/map/index.vue index 1365e01..502dff9 100644 --- a/src/views/map/index.vue +++ b/src/views/map/index.vue @@ -8,6 +8,24 @@ import Img from "@/assets/image/position_icon.png"; export default { name: "map", + props: { + sn: { + type: String, + default: '1918FA08DD37' + }, + floorNo: { + type: Number, + default: 3 + }, + x: { + type: Number, + default: 345 + }, + y: { + type: Number, + default: 268 + } + }, data() { return { }; @@ -17,6 +35,7 @@ export default { window.map = null; }, mounted() { + console.log('点位标注', this.sn); window.map = new jsmapbase.JSMap({ container: 'mapContainer', mapServerURL: 'data/map' @@ -34,26 +53,31 @@ export default { }//位置x,y的偏移量 }); window.map.addControl(floorControl); - console.log('点位标注') - //点位标注 - var imagerMarker = new jsmapbase.JSImageMarker({ - id: 'iamgeMareker1',//id - image: Img,//图片路径 - position: new jsmapbase.JSPoint(120.61988850529002, 31.37531834395683, 0),//坐标位置 - width: 55,//尺寸-宽 - height: 55,//尺寸-高 - floorId: 1,//楼层id - offset: jsmapbase.JSControlPosition.RIGHT_BOTTOM,//偏移位置 - depthTest: false,//是否开启深度检测 - show: true, //是否显示 - properties: { - name: 'test' - },//属性设置 - callback: (node) => { - console.log(node); - }//回调 - }); - window.map.addMarker(imagerMarker); + if(this.sn && this.floorNo && this.x && this.y) { + window.map._map.focusFloorId = this.floorNo; + let tool = new jsmapbase.JSMapCoordTool(window.map); + let pixel = tool.screenToMapCoordinate({x: this.x, y: this.y}); + console.log(this.x); + //点位标注 + var imagerMarker = new jsmapbase.JSImageMarker({ + id: 'iamgeMareker1',//id + image: Img,//图片路径 + position: new jsmapbase.JSPoint(pixel, 0),//坐标位置 + width: 55,//尺寸-宽 + height: 55,//尺寸-高 + floorId: this.floorNo,//楼层id + offset: jsmapbase.JSControlPosition.RIGHT_BOTTOM,//偏移位置 + depthTest: false,//是否开启深度检测 + show: true, //是否显示 + properties: { + name: 'test' + },//属性设置 + callback: (node) => { + console.log(node); + }//回调 + }); + window.map.addMarker(imagerMarker); + } }); }, methods: { diff --git a/src/views/rails/arealist.vue b/src/views/rails/arealist.vue new file mode 100644 index 0000000..4202ba1 --- /dev/null +++ b/src/views/rails/arealist.vue @@ -0,0 +1,444 @@ + + + + + diff --git a/src/views/rails/list.vue b/src/views/rails/list.vue index 5586efe..2086df8 100644 --- a/src/views/rails/list.vue +++ b/src/views/rails/list.vue @@ -22,48 +22,41 @@ - - + + - + + + + + + +
- 新增 + 新增
- - + @@ -75,6 +68,14 @@
+ + + + + + +