71787242f43fe1e3ab1bd3fa663fc933.json 16 KB

1
  1. {"remainingRequest":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/layout/index.vue?vue&type=style&index=0&id=13877386&lang=scss&scoped=true","dependencies":[{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/layout/index.vue","mtime":1708395041882},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/css-loader/dist/cjs.js","mtime":1708395146948},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1708395147772},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/postcss-loader/src/index.js","mtime":1708395147225},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/sass-loader/dist/cjs.js","mtime":1708395146389},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js","mtime":1708395147382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKDQpAaW1wb3J0ICJ+QC9zdHlsZXMvbWl4aW4uc2NzcyI7DQpAaW1wb3J0ICJ+QC9zdHlsZXMvdmFyaWFibGVzLnNjc3MiOw0KDQoubmF2LWhlYWRlciB7DQogIGJhY2tncm91bmQ6IHJlZDsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogNTBweDsNCn0NCg0KLnNpZGViYXItY29udGFpbmVyIHsNCiAgdG9wOiA1MHB4ICFpbXBvcnRhbnQ7DQogIGhlaWdodDogY2FsYygxMDAlICsgNTBweCk7DQp9DQoNCi5ob21lLWxpc3Qgew0KICB3aWR0aDogMzUlOw0KDQogIDo6di1kZWVwIC5lbC1kaWFsb2dfX2JvZHkgew0KICAgIHBhZGRpbmc6IDAgMjBweDsNCiAgfQ0KfQ0KDQouYXBwLXdyYXBwZXIgew0KICBAaW5jbHVkZSBjbGVhcmZpeDsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHdpZHRoOiAxMDAlOw0KDQogICYubW9iaWxlLm9wZW5TaWRlYmFyIHsNCiAgICBwb3NpdGlvbjogZml4ZWQ7DQogICAgdG9wOiAwOw0KICB9DQp9DQoNCi5kcmF3ZXItYmcgew0KICBiYWNrZ3JvdW5kOiAjMDAwOw0KICBvcGFjaXR5OiAwLjM7DQogIHdpZHRoOiAxMDAlOw0KICB0b3A6IDA7DQogIGhlaWdodDogMTAwJTsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB6LWluZGV4OiA5OTk7DQp9DQoNCi5maXhlZC1oZWFkZXIgew0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHRvcDogNTBweDsNCiAgcmlnaHQ6IDA7DQogIC8vIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7DQogIHotaW5kZXg6IDk7DQogIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzaWRlQmFyV2lkdGh9KTsNCiAgdHJhbnNpdGlvbjogd2lkdGggMC4yOHM7DQp9DQoNCi5oaWRlU2lkZWJhciAuZml4ZWQtaGVhZGVyIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCi5tb2JpbGUgLmZpeGVkLWhlYWRlciB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoud2FybmluZy12aWV3IHsNCiAgcGFkZGluZzogNXB4Ow0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGRpc3BsYXk6IGZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICBsaW5lLWhlaWdodDogMTVweDsNCg0KICAuc3RhdHVzLWljb24gew0KICAgIHBhZGRpbmc6IDNweCA3cHg7DQogICAgYmFja2dyb3VuZC1jb2xvcjogI2Q2OGUxNTsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgcmlnaHQ6IDVweDsNCiAgICB0b3A6IDVweDsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIGNvbG9yOiAjZmZmOw0KICAgIGxpbmUtaGVpZ2h0OiAxZW07DQoNCiAgICAmLnN0YXR1cy1pY29uLTIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzcwZDJmZjsNCiAgICB9DQogIH0NCg0KICAud2FybmluZy1pbWFnZSB7DQogICAgd2lkdGg6IDgwcHg7DQogICAgaGVpZ2h0OiA4MHB4Ow0KICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7DQogICAgbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KICB9DQoNCiAgLndhcm5pbmctY29udGVudCB7DQogICAgY29sb3I6ICM4ZWFjYzg7DQogICAgZm9udC1zaXplOiAxM3B4Ow0KICAgIGZsZXg6IDE7DQoNCiAgICAudGV4dC1iYXNlIHsNCiAgICAgIGNvbG9yOiAjMzMzOw0KICAgICAgbWFyZ2luLXRvcDogNHB4Ow0KICAgIH0NCg0KICAgIC50ZXh0LTEgew0KICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIGNvbG9yOiAjMjc2NmRkOw0KICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIH0NCiAgfQ0KDQogIC53YXJuaW5nLW9wZXJhdGlvbiB7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgY29sb3I6ICNmZmY7DQogICAgbWFyZ2luLXRvcDogNHB4Ow0KICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7DQoNCiAgICAuYnV0dG9uLTEgew0KICAgICAgd2lkdGg6IDYwcHg7DQogICAgICBwYWRkaW5nOiAycHggMHB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgfQ0KDQogICAgLmJ1dHRvbi0yIHsNCiAgICAgIHdpZHRoOiA2MHB4Ow0KICAgICAgcGFkZGluZzogMnB4IDBweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICB9DQogIH0NCn0NCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+NA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/layout","sourcesContent":["<template>\r\n <div :class=\"classObj\" class=\"app-wrapper\">\r\n <!-- <div v-if=\"device==='mobile'&&sidebar.opened\" class=\"drawer-bg\" @click=\"handleClickOutside\" /> -->\r\n\r\n <div :class=\"{ 'fixed-header': fixedHeader }\">\r\n <navbar />\r\n <breadcrumb v-if=\"isHome == false\" class=\"breadcrumb-container\" />\r\n </div>\r\n <sidebar v-if=\"!$store.state.app.videoListMagnify\" class=\"sidebar-container\" />\r\n <div class=\"main-container\">\r\n <app-main />\r\n </div>\r\n\r\n <el-dialog width=\"30%\" v-for=\"(item, index) in warningSocketList\" :visible.sync=\"item.show\"\r\n :top=\"100 + index * 40 + 'px'\" class=\"0\" title=\"报警信息提示\" :show-close=\"false\" :close-on-click-modal=\"false\">\r\n <!-- <div style=\"display: flex;align-items: center;\">\r\n <img style=\"width: 70px;height: 70px;margin-right: 15px;\" :src=\"warningSocket.data.imageUrls\">\r\n <div>\r\n <div> {{ warningSocket.data.railwayName }}</div>\r\n <div style=\"padding: 2px 10px;margin-top: 5px;border-radius: 5px;display: flex;\">\r\n <div style=\"margin-right: 10px;\">{{ warningSocket.data.alarmTime }}</div>\r\n <div style=\"margin-right: 10px;\">{{ warningSocket.data.releasedTime }}</div>\r\n <div style=\"margin-right: 10px;\">{{ warningSocket.data.alarmType == 1 ? '泥石流' : '' }}</div>\r\n <div style=\"margin-right: 15px;\">{{ warningSocket.data.lineDirStr }}</div>\r\n <div style=\"margin-right: 15px;\">里程位置{{ warningSocket.data.alarmMile }}</div>\r\n <div style=\"margin-right: 15px;\">里程范围 {{ warningSocket.data.beginMile }}</div>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"warning-view\">\r\n <!-- <el-image style=\"color:cornflowerblue\" class=\"warning-image\" cursor:pointer :src=\"item.imageUrls[0]\"\r\n :preview-src-list=\"item.imageUrls\" fit=\"contain\"></el-image> -->\r\n <img style=\"width: 200px; margin-right: 15px\" :src=\"item.data.imageUrls && item.data.imageUrls[0]\" />\r\n <div class=\"warning-content\">\r\n <div class=\"text-base text-1\">\r\n 报警线路:{{ item.data.railwayName }}\r\n </div>\r\n <div class=\"text-base\">\r\n <span>{{\r\n item.data.alarmType == 1\r\n ? \"泥石流\"\r\n : item.data.alarmType == 2\r\n ? \"异物侵限\"\r\n : \"断轨监测\"\r\n }},</span>\r\n <span>{{ item.data.lineDirStr }},</span>\r\n <span>里程位置{{ item.data.alarmMile }}</span>\r\n </div>\r\n\r\n <!-- <div class=\"text-base\"></div> -->\r\n <!-- <div class=\"text-base\">行别:</div> -->\r\n\r\n <!-- <div class=\"text-base\">经度纬度:54,345,65.235</div> -->\r\n <div class=\"text-base\">{{ item.data.alarmTime }}</div>\r\n </div>\r\n </div>\r\n\r\n <span slot=\"footer\" class=\"dialog-footer\" style=\"display: flex; align-items: center; justify-content: center\">\r\n <div style=\"margin-right: 15px\" class=\"sp-button-submit\" @click=\"warningSocketButton(1, index, item.data)\">\r\n 立即处理\r\n </div>\r\n <div class=\"sp-button-reset\" @click=\"warningSocketButton(2, index, item.data)\">\r\n 我知道了\r\n </div>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { Navbar, Sidebar, AppMain } from \"./components\";\r\nimport Breadcrumb from \"@/components/Breadcrumb\";\r\nimport ResizeMixin from \"./mixin/ResizeHandler\";\r\nimport Socket from \"@/socket/socket\";\r\nimport { msgAlarmRead } from \"@/api/alarmList\";\r\nimport { sdkGetMessage } from \"@/api/sdk\";\r\nimport store from \"@/store\";\r\n\r\nexport default {\r\n name: \"Layout\",\r\n components: {\r\n Navbar,\r\n Sidebar,\r\n Breadcrumb,\r\n AppMain,\r\n },\r\n mixins: [ResizeMixin],\r\n watch: {\r\n \"$route.path\"(newValue) {\r\n if (newValue != \"/dashboard\") {\r\n this.$store.dispatch(\"app/openSideBar\", { withoutAnimation: false });\r\n }\r\n },\r\n },\r\n computed: {\r\n isHome() {\r\n return this.$route.path == \"/dashboard\";\r\n },\r\n sidebar() {\r\n return this.$store.state.app.sidebar;\r\n },\r\n device() {\r\n return this.$store.state.app.device;\r\n },\r\n fixedHeader() {\r\n return this.$store.state.settings.fixedHeader;\r\n },\r\n classObj() {\r\n return {\r\n hideSidebar: !this.sidebar.opened && this.isHome == true,\r\n openSidebar: this.sidebar.opened,\r\n ishome: this.isHome == true,\r\n withoutAnimation: this.sidebar.withoutAnimation,\r\n // mobile: this.device === 'mobile' // 不再有移动端\r\n };\r\n },\r\n },\r\n data() {\r\n return {\r\n warningSocketList: [],\r\n };\r\n },\r\n mounted() {\r\n this.startWebSocket();\r\n },\r\n methods: {\r\n handleClickOutside() {\r\n this.$store.dispatch(\"app/closeSideBar\", { withoutAnimation: false });\r\n },\r\n // 开始连接webSocket\r\n startWebSocket() {\r\n return new Promise((resolve, reject) => {\r\n console.log(\"Socket建立链接\");\r\n this.socket = new Socket({\r\n \"socket-open\": (socket) => {\r\n console.log(\"Socket开启连接\");\r\n socket.sendLogin();\r\n\r\n sdkGetMessage();\r\n\r\n resolve();\r\n },\r\n \"socket-message\": (res) => {\r\n console.log(\"Socket接受信息\", res);\r\n if (res.code == 110) {\r\n // this.warningSocket.show = true\r\n // this.warningSocket.data = res.data\r\n // console.log(this.warningSocket.data)\r\n\r\n this.warningSocketList.push({\r\n show: true,\r\n data: res.data,\r\n });\r\n\r\n if (document.querySelector('audio')) {\r\n document.querySelector(\"audio\").play()\r\n } else {\r\n var audio = document.createElement(\"audio\")\r\n audio.src = './video.mp3'\r\n document.body.append(audio)\r\n audio.play()\r\n\r\n setTimeout(() => {\r\n document.body.removeChild(audio)\r\n }, 3000)\r\n }\r\n this.$store.state.app.warningSocket.list.push(res.data);\r\n this.$store.state.app.warningSocket.list = JSON.parse(\r\n JSON.stringify(this.$store.state.app.warningSocket.list)\r\n );\r\n }\r\n },\r\n \"socket-close\": () => {\r\n // this.$message.error(\"连接系统中断\");\r\n this.startWebSocket();\r\n },\r\n \"socket-error\": () => {\r\n this.$message.error(\"连接系统失败,请刷新重试或联系客服\");\r\n },\r\n });\r\n this.socket.setVm(this);\r\n this.socket.onInit();\r\n });\r\n },\r\n warningSocketButton(type, index, data) {\r\n console.log(data, '99999')\r\n for (\r\n var i = 0;\r\n i < this.$store.state.app.warningSocket.list.length;\r\n i++\r\n ) {\r\n if (data.id === this.$store.state.app.warningSocket.list[i].id) {\r\n this.$store.state.app.warningSocket.list.splice(i, 1);\r\n }\r\n }\r\n if (type === 1) {\r\n msgAlarmRead({ pushId: data.pushId });\r\n sessionStorage.row = JSON.stringify(data)\r\n this.$router.push({\r\n path: \"/alarmDetail\",\r\n query: {\r\n id: data.id,\r\n cameraCode: data.cameraCode || 200,\r\n alarmId: data.alarmId,\r\n },\r\n });\r\n } else if (type === 2) {\r\n // this.$store.commit('app/warningSocketAdd', this.warningSocket.data)\r\n console.log(\"已读消息\", data);\r\n msgAlarmRead({ pushId: data.pushId });\r\n\r\n this.$store.commit(\"app/homeWarningChange\");\r\n }\r\n\r\n this.warningSocketList[index].show = false;\r\n this.warningSocketList.splice(index, 1);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import \"~@/styles/mixin.scss\";\r\n@import \"~@/styles/variables.scss\";\r\n\r\n.nav-header {\r\n background: red;\r\n width: 100%;\r\n height: 50px;\r\n}\r\n\r\n.sidebar-container {\r\n top: 50px !important;\r\n height: calc(100% + 50px);\r\n}\r\n\r\n.home-list {\r\n width: 35%;\r\n\r\n ::v-deep .el-dialog__body {\r\n padding: 0 20px;\r\n }\r\n}\r\n\r\n.app-wrapper {\r\n @include clearfix;\r\n position: relative;\r\n height: 100%;\r\n width: 100%;\r\n\r\n &.mobile.openSidebar {\r\n position: fixed;\r\n top: 0;\r\n }\r\n}\r\n\r\n.drawer-bg {\r\n background: #000;\r\n opacity: 0.3;\r\n width: 100%;\r\n top: 0;\r\n height: 100%;\r\n position: absolute;\r\n z-index: 999;\r\n}\r\n\r\n.fixed-header {\r\n position: fixed;\r\n top: 50px;\r\n right: 0;\r\n // background-color: #F5F5F5;\r\n z-index: 9;\r\n width: calc(100% - #{$sideBarWidth});\r\n transition: width 0.28s;\r\n}\r\n\r\n.hideSidebar .fixed-header {\r\n width: 100%;\r\n}\r\n\r\n.mobile .fixed-header {\r\n width: 100%;\r\n}\r\n\r\n.warning-view {\r\n padding: 5px;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n line-height: 15px;\r\n\r\n .status-icon {\r\n padding: 3px 7px;\r\n background-color: #d68e15;\r\n position: absolute;\r\n right: 5px;\r\n top: 5px;\r\n font-size: 12px;\r\n border-radius: 5px;\r\n color: #fff;\r\n line-height: 1em;\r\n\r\n &.status-icon-2 {\r\n background-color: #70d2ff;\r\n }\r\n }\r\n\r\n .warning-image {\r\n width: 80px;\r\n height: 80px;\r\n border: 1px solid #fff;\r\n margin-right: 10px;\r\n }\r\n\r\n .warning-content {\r\n color: #8eacc8;\r\n font-size: 13px;\r\n flex: 1;\r\n\r\n .text-base {\r\n color: #333;\r\n margin-top: 4px;\r\n }\r\n\r\n .text-1 {\r\n margin-bottom: 10px;\r\n color: #2766dd;\r\n font-size: 15px;\r\n }\r\n }\r\n\r\n .warning-operation {\r\n display: flex;\r\n font-size: 12px;\r\n color: #fff;\r\n margin-top: 4px;\r\n justify-content: flex-end;\r\n\r\n .button-1 {\r\n width: 60px;\r\n padding: 2px 0px;\r\n border-radius: 5px;\r\n border: 1px solid #fff;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .button-2 {\r\n width: 60px;\r\n padding: 2px 0px;\r\n border-radius: 5px;\r\n margin-left: 5px;\r\n border: 1px solid #fff;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}