| | |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | |
| | | |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | v-bind:class="activeClass == 0 ? 'btn-color' : ''" |
| | |
| | | >全部 |
| | | </el-button> |
| | | </template> |
| | | |
| | | |
| | | <template slot="menuLeft"> |
| | | <el-button type="warning" |
| | | size="mini" |
| | | plain |
| | | icon="el-icon-download" |
| | | @click="handleExport">导出 |
| | | <el-button |
| | | type="warning" |
| | | size="mini" |
| | | plain |
| | | icon="el-icon-download" |
| | | @click="handleExport" |
| | | >导出 |
| | | </el-button> |
| | | <el-button type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-pie-chart" |
| | | @click="handleExportStatis">导出报表 |
| | | <el-button |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-pie-chart" |
| | | @click="handleExportStatis" |
| | | >导出报表 |
| | | </el-button> |
| | | </template> |
| | | |
| | | |
| | | |
| | | <template slot-scope="{ row }" slot="jtype"> |
| | | <el-tag |
| | | >{{ |
| | |
| | | }} |
| | | </el-tag> |
| | | </template> |
| | | |
| | | |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | icon="el-icon-s-order" |
| | |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | |
| | | |
| | | <el-dialog |
| | | class="real-dialog" |
| | | title="警情核实" |
| | |
| | | controls |
| | | ></video> |
| | | </el-dialog> |
| | | |
| | | |
| | | <el-dialog |
| | | class="ss-video-dialog" |
| | | :modal="false" |
| | |
| | | controls |
| | | ></video> |
| | | </el-dialog> |
| | | |
| | | |
| | | <el-form |
| | | :model="form" |
| | | label-position="right" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <el-row> |
| | | <el-col span="12"> |
| | | <el-form-item label="报警时间"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <el-row> |
| | | <el-col span="12"> |
| | | <el-form-item label="备注"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <el-row :align="center"> |
| | | <el-col class="opt-btn"> |
| | | <el-form-item> |
| | |
| | | @click.stop="updateJtyep(form, 1, '办结')" |
| | | >办结 |
| | | </el-button> |
| | | |
| | | |
| | | <img |
| | | src="/img/police-num.png" |
| | | style="margin-top: -20px; height: 80px; vertical-align: middle" |
| | | alt="" |
| | | @click.stop="updateJtyep(form, 1, '推送110')" |
| | | /> |
| | | |
| | | |
| | | <el-button |
| | | type="primary" |
| | | @click.stop="updateJtyep(form, 1, '派送保安')" |
| | |
| | | </el-row> |
| | | </el-form> |
| | | </el-dialog> |
| | | |
| | | |
| | | <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap"> |
| | | <iframe |
| | | id="mapDiv" |
| | |
| | | <script> |
| | | import { getList, remove, update, add, getclient } from "@/api/real/real"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | |
| | | import Hls from "hls.js"; |
| | | |
| | | |
| | | import axios from "axios"; |
| | | |
| | | |
| | | import Recorder from "js-audio-recorder"; |
| | | |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | searchValue:[this.getStartTime(),this.getEndTime()], |
| | | searchValue: [this.getStartTime(), this.getEndTime()], |
| | | searchRange: true, |
| | | searchSpan: 5, |
| | | hide: true, |
| | |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | |
| | | |
| | | if ( |
| | | this.$route.query.waringType && |
| | | this.$route.query != undefined && |
| | |
| | | endTime: this.dateTime.day.endTime, |
| | | }; |
| | | } |
| | | |
| | | |
| | | if ( |
| | | this.$route.query.startTime != undefined && |
| | | this.$route.query.startTime != null && |
| | |
| | | }; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | |
| | | ...this.query, |
| | | }; |
| | | } |
| | | |
| | | |
| | | if (this.$route.query.timeDesc) { |
| | | values = { |
| | | ...params, |
| | |
| | | ...this.query, |
| | | }; |
| | | } |
| | | |
| | | |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | |
| | | item.waringType == "紧急求救" ? (item.waringType = "一键求助") : ""; |
| | | }); |
| | | this.page.total = data.total; |
| | | |
| | | |
| | | data.records.sort((a, b) => { |
| | | return a.jtype - b.jtype; |
| | | }); |
| | | |
| | | |
| | | this.data = data.records; |
| | | |
| | | |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | |
| | | // 当前时间 |
| | | var timestamp = Date.parse(new Date()); |
| | | var serverDate = new Date(timestamp); |
| | | |
| | | |
| | | // 本周周一的时间 |
| | | var mondayTime = |
| | | timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000; |
| | |
| | | currentData.getSeconds() < 10 |
| | | ? "0" + currentData.getSeconds() |
| | | : currentData.getSeconds(); |
| | | |
| | | |
| | | return { |
| | | day: { |
| | | beginTime: currentY + "-" + currentM + "-" + currentD + " 00:00:00", |
| | |
| | | }; |
| | | }); |
| | | }, |
| | | getStartTime(){ |
| | | if (this.$route.query.startTime != undefined && this.$route.query.startTime != null && this.$route.query.startTime != "" ) { |
| | | return this.$route.query.startTime |
| | | } |
| | | return ''; |
| | | }, |
| | | getEndTime(){ |
| | | if (this.$route.query.endTime != undefined && this.$route.query.endTime != null && this.$route.query.endTime != "" ) { |
| | | return this.$route.query.endTime |
| | | } |
| | | return ''; |
| | | }, |
| | | getStartTime() { |
| | | if ( |
| | | this.$route.query.startTime != undefined && |
| | | this.$route.query.startTime != null && |
| | | this.$route.query.startTime != "" |
| | | ) { |
| | | return this.$route.query.startTime; |
| | | } |
| | | return ""; |
| | | }, |
| | | getEndTime() { |
| | | if ( |
| | | this.$route.query.endTime != undefined && |
| | | this.$route.query.endTime != null && |
| | | this.$route.query.endTime != "" |
| | | ) { |
| | | return this.$route.query.endTime; |
| | | } |
| | | return ""; |
| | | }, |
| | | handleManage(row) { |
| | | this.form = row; |
| | | this.peopleList = [ |
| | |
| | | }, |
| | | updateJtyep(row, jtype, t) { |
| | | var that = this; |
| | | |
| | | |
| | | axios |
| | | .post( |
| | | "/api/blade-jfpts/alarm/alarm/updateJtype", |
| | |
| | | ) |
| | | .then(function () { |
| | | that.dialogTableVisible = false; |
| | | |
| | | |
| | | axios({ |
| | | method: "post", |
| | | url: `/api/blade-jfpts/rvideo/stop`, |
| | |
| | | jid: row.id, |
| | | }, |
| | | }).then((resdata) => {}); |
| | | |
| | | |
| | | that.onLoad(that.page, that.query); |
| | | that.$router.push({ |
| | | path: "/policeTracking/track", |
| | |
| | | }, |
| | | beginTimeOrEndTime(time) { |
| | | var beginTime = new Date(time); |
| | | |
| | | |
| | | var endTime = new Date(new Date(time).valueOf() - 1000 * 60 * 60 * 3); |
| | | |
| | | |
| | | var beginY = beginTime.getFullYear(); |
| | | |
| | | |
| | | var beginM = |
| | | beginTime.getMonth() + 1 < 10 |
| | | ? "0" + (beginTime.getMonth() + 1) |
| | | : beginTime.getMonth() + 1; |
| | | |
| | | |
| | | var beginD = |
| | | beginTime.getDate() < 10 |
| | | ? "0" + beginTime.getDate() |
| | | : beginTime.getDate(); |
| | | |
| | | |
| | | var beginH = |
| | | beginTime.getHours() < 10 |
| | | ? "0" + beginTime.getHours() |
| | | : beginTime.getHours(); |
| | | |
| | | |
| | | var beginm = |
| | | beginTime.getMinutes() < 10 |
| | | ? "0" + beginTime.getMinutes() |
| | | : beginTime.getMinutes(); |
| | | |
| | | |
| | | var begins = |
| | | beginTime.getSeconds() < 10 |
| | | ? "0" + beginTime.getSeconds() |
| | | : beginTime.getSeconds(); |
| | | |
| | | |
| | | var endY = endTime.getFullYear(); |
| | | |
| | | |
| | | var endM = |
| | | endTime.getMonth() + 1 < 10 |
| | | ? "0" + (endTime.getMonth() + 1) |
| | | : endTime.getMonth() + 1; |
| | | |
| | | |
| | | var endD = |
| | | endTime.getDate() < 10 ? "0" + endTime.getDate() : endTime.getDate(); |
| | | |
| | | |
| | | var endH = |
| | | endTime.getHours() < 10 ? "0" + endTime.getHours() : endTime.getHours(); |
| | | |
| | | |
| | | var endm = |
| | | endTime.getMinutes() < 10 |
| | | ? "0" + endTime.getMinutes() |
| | | : endTime.getMinutes(); |
| | | |
| | | |
| | | var ends = |
| | | endTime.getSeconds() < 10 |
| | | ? "0" + endTime.getSeconds() |
| | |
| | | "Content-type": "application/x-www-form-urlencoded", |
| | | }, |
| | | }); |
| | | |
| | | |
| | | //this.form.serialNumber |
| | | newAxios |
| | | .post( |
| | |
| | | ) |
| | | .then((result) => { |
| | | that.videoSource = result.data.data.m3u8; |
| | | |
| | | |
| | | if (Hls.isSupported()) { |
| | | var dom = document.getElementById("real_video_conversation"); |
| | | |
| | | |
| | | that.hls = new Hls(); |
| | | |
| | | |
| | | var m3u8Url = decodeURIComponent(that.videoSource); |
| | | |
| | | |
| | | that.hls.loadSource(m3u8Url); |
| | | |
| | | |
| | | that.hls.attachMedia(dom); |
| | | |
| | | |
| | | that.hls.on(Hls.Events.MANIFEST_PARSED, function () { |
| | | dom.play(); |
| | | }); |
| | | |
| | | |
| | | that.hls.on(Hls.Events.ERROR, function (event, data) { |
| | | console.log(data, 4566824159, "视频播放有问题!!!"); |
| | | if (data.fatal) { |
| | |
| | | }, |
| | | closeRealVideoBox() { |
| | | var dom = document.getElementById("real_video_conversation"); |
| | | |
| | | |
| | | if (dom.getAttribute("src") != "") { |
| | | dom.pause(); |
| | | |
| | | |
| | | dom.setAttribute("src", ""); |
| | | |
| | | |
| | | this.hls.destroy(); |
| | | } |
| | | }, |
| | |
| | | var dom = document.getElementById("real_old_video"); |
| | | dom.pause(); |
| | | }, |
| | | |
| | | |
| | | aKeyToCall() { |
| | | this.isActive = true; |
| | | var that = this; |
| | |
| | | // compiling: false,(0.x版本中生效,1.x增加中) // 是否边录边转换,默认是false |
| | | }); |
| | | } |
| | | |
| | | |
| | | // 一键呼叫相关函数 |
| | | that.recorder.start().then( |
| | | () => { |
| | |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | |
| | | // 序列号后期待修改 |
| | | aKeyStopCall() { |
| | | this.isActive = false; |
| | |
| | | "Content-Type": "application/json;", |
| | | }, |
| | | }); |
| | | |
| | | |
| | | var wavAxios = axios.create({ |
| | | baseURL: "https://web.byisf.com", |
| | | withCredentials: false, |
| | | }); |
| | | |
| | | |
| | | var that = this; |
| | | |
| | | |
| | | newCallAxios |
| | | .post( |
| | | `/api_control`, |
| | |
| | | .then((result) => { |
| | | var formData = new FormData(); |
| | | // that.recorder.downloadWAV("新文件"); |
| | | |
| | | |
| | | var blob = that.recorder.getPCMBlob(); //获取pcm格式音频数据 |
| | | //此处获取到blob对象后需要设置fileName满足当前项目上传需求,其它项目可直接传把blob作为file塞入formData |
| | | var newbolb = new Blob([blob], { type: "audio/pcm" }); |
| | | var fileOfBlob = new File([newbolb], new Date().getTime() + ".pcm"); |
| | | formData.append("file", fileOfBlob); |
| | | |
| | | |
| | | var wavBlob = that.recorder.getWAVBlob(); |
| | | |
| | | |
| | | var wavformData = new FormData(); |
| | | var wavform = new File([wavBlob], new Date().getTime() + ".wav"); |
| | | wavformData.append("file", wavform); |
| | |
| | | wavformData.entries(), |
| | | 132 |
| | | ); |
| | | |
| | | |
| | | axios({ |
| | | method: "post", |
| | | url: "/api/blade-jfpts/xlfeedback/xlfeedback/put-objecty", |
| | |
| | | }).then((resdata) => { |
| | | console.log(resdata); |
| | | }); |
| | | |
| | | |
| | | newCallAxios |
| | | .post(`/api_control`, blob, { |
| | | params: { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | |
| | | peopleOrPhone(e) { |
| | | this.peopleList.forEach((item) => { |
| | | if (item.label == e) { |
| | |
| | | this.$confirm("是否导出实时警情数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }).then(() => { |
| | | window.open(`/api/blade-jfpts/alarm/alarm/export-alarm?beginTime=${this.$route.query.startTime}&endTime=${this.$route.query.endTime}&waringType=${this.$route.query.waringType}&timeDesc=${this.$route.query.timeDesc}`); |
| | | window.open( |
| | | `/api/blade-jfpts/alarm/alarm/export-alarm?beginTime=${this.$route.query.startTime}&endTime=${this.$route.query.endTime}&waringType=${this.$route.query.waringType}&timeDesc=${this.$route.query.timeDesc}` |
| | | ); |
| | | }); |
| | | }, |
| | | //数据报表导出 |
| | | handleExportStatis() { |
| | | this.$confirm("是否导出实时警情数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | let beginTime = this.$route.query.startTime==undefined? '':this.$route.query.startTime; |
| | | let endTime = this.$route.query.endTime==undefined? '':this.$route.query.endTime; |
| | | let waringType = this.$route.query.waringType==undefined? '':this.$route.query.waringType; |
| | | let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc; |
| | | window.open(`http://localhost:8108/ureport/preview?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`); |
| | | //window.open(`http://localhost:8108/ureport/excel?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`); |
| | | }); |
| | | } |
| | | handleExportStatis() { |
| | | this.$confirm("是否导出实时警情数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(() => { |
| | | let beginTime = |
| | | this.$route.query.startTime == undefined |
| | | ? "" |
| | | : this.$route.query.startTime; |
| | | let endTime = |
| | | this.$route.query.endTime == undefined |
| | | ? "" |
| | | : this.$route.query.endTime; |
| | | let waringType = |
| | | this.$route.query.waringType == undefined |
| | | ? "" |
| | | : this.$route.query.waringType; |
| | | let timeDesc = |
| | | this.$route.query.timeDesc == undefined |
| | | ? "" |
| | | : this.$route.query.timeDesc; |
| | | window.open( |
| | | `http://localhost:8108/ureport/preview?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}` |
| | | ); |
| | | //window.open(`http://localhost:8108/ureport/excel?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .el-card__body .waringTypeClass { |
| | | width: 12%; |
| | | } |
| | | |
| | | |
| | | /*页面样式*/ |
| | | .el-card__body .cityClass1 { |
| | | width: 155px; |
| | | padding-right: 0px !important; |
| | | } |
| | | |
| | | |
| | | .el-card__body .cityClass2 { |
| | | width: 100px; |
| | | padding-left: 0px !important; |
| | | padding-right: 0px !important; |
| | | } |
| | | |
| | | |
| | | .el-card__body .cityClass3 { |
| | | width: 100px; |
| | | padding-left: 0px !important; |
| | | padding-right: 0px !important; |
| | | } |
| | | |
| | | |
| | | /*新增窗体样式*/ |
| | | .el-dialog .cityClass1 { |
| | | width: 220px; |
| | | padding-right: 0px !important; |
| | | } |
| | | |
| | | |
| | | .el-dialog .cityClass2 { |
| | | width: 110px; |
| | | padding-left: 5px !important; |
| | | padding-right: 5px !important; |
| | | } |
| | | |
| | | |
| | | .el-dialog .cityClass3 { |
| | | width: 110px; |
| | | padding-left: 0px !important; |
| | | padding-right: 0px !important; |
| | | } |
| | | |
| | | |
| | | .cityClassParams .avue-form__group.avue-form__group--flex { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | |
| | | .cityClassParams .cityClassSelect { |
| | | flex: 1; |
| | | margin: 0 !important; |
| | | padding-left: 0px !important; |
| | | padding-right: 0px !important; |
| | | } |
| | | |
| | | |
| | | .cityClassParams .cityClassSelect:nth-child(2) { |
| | | margin: 0 10px !important; |
| | | } |
| | | |
| | | |
| | | .cityClassParams .cityClassSelect .el-form-item { |
| | | margin-bottom: 0px !important; |
| | | } |
| | | |
| | | |
| | | .cityClassParams .cityClassSelect .el-form-item .el-input__inner { |
| | | height: 28px !important; |
| | | line-height: 28px !important; |
| | | } |
| | | |
| | | |
| | | .cityClass2 div label { |
| | | display: none; |
| | | } |
| | | |
| | | |
| | | .cityClass3 div label { |
| | | display: none; |
| | | } |
| | | |
| | | |
| | | .old-video-dialog { |
| | | position: absolute !important; |
| | | top: 0 !important; |
| | |
| | | height: 100% !important; |
| | | width: 476px !important; |
| | | } |
| | | |
| | | |
| | | .old-video-dialog .el-dialog { |
| | | position: absolute !important; |
| | | top: 0 !important; |
| | |
| | | margin-top: 15vh !important; |
| | | height: 538px; |
| | | } |
| | | |
| | | |
| | | .old-video-dialog .el-dialog .el-dialog__body { |
| | | height: calc(100% - 54px); |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | |
| | | .el-button.active { |
| | | background: #ff0000 !important; |
| | | } |
| | | |
| | | |
| | | .el-button.btn-color { |
| | | color: rgb(255, 255, 255); |
| | | background-color: rgb(64, 158, 255); |
| | | border-color: rgb(64, 158, 255); |
| | | } |
| | | |
| | | |
| | | .tabFontSize { |
| | | font-size: 15px; |
| | | } |