|
@@ -12,7 +12,8 @@
|
|
|
<div class="alarm-title-right"></div>
|
|
|
</div>
|
|
|
<div class="alarm-content" style="background: #0F152B">
|
|
|
- <chart-pie v-if="alarmPie.length > 0" :data="alarmPie"></chart-pie>
|
|
|
+ <alarm-pie v-if="alarmPie.length > 0" :id="'0'" :text="'今日报警总量'" :pieData="alarmPie" @setOpen="openCall"></alarm-pie>
|
|
|
+<!-- <chart-pie v-if="alarmPie.length > 0" :data="alarmPie"></chart-pie>-->
|
|
|
<div v-else style="line-height: 200px; font-size: 22px; color: white">暂无数据</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -26,7 +27,7 @@
|
|
|
<div class="alarm-title-right"></div>
|
|
|
</div>
|
|
|
<div class="alarm-content">
|
|
|
- <alarm-bar :barData="list"></alarm-bar>
|
|
|
+ <alarm-bar :barData="list" @setOpen="setRank"></alarm-bar>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -86,7 +87,8 @@
|
|
|
<div class="alarm-title-right"></div>
|
|
|
</div>
|
|
|
<div class="alarm-content">
|
|
|
- <chart-pie v-if="pieData.length > 0" :text="'近7日事件总量'" :id="'1'" :data="pieData"></chart-pie>
|
|
|
+ <alarm-pie v-if="pieData.length > 0" :id="'1'" :text="'近7日事件总量'" :pieData="pieData" @setOpen="openEvent"></alarm-pie>
|
|
|
+<!-- <chart-pie v-if="pieData.length > 0" :text="'近7日事件总量'" :id="'1'" :data="pieData"></chart-pie>-->
|
|
|
<div v-else style="line-height: 250px; text-align: center; width: 100%; font-size: 18px; color: white;">暂无数据</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -100,7 +102,7 @@
|
|
|
<div class="alarm-title-right"></div>
|
|
|
</div>
|
|
|
<div class="alarm-content">
|
|
|
- <alarm-bar v-if="barData.salvProValue.length > 0" :bar-data="barData"></alarm-bar>
|
|
|
+ <alarm-bar v-if="barData.salvProValue.length > 0" :bar-data="barData" @setOpen="openEvent"></alarm-bar>
|
|
|
<div v-else style="line-height: 250px; text-align: center; width: 100%; font-size: 18px; color: white;">暂无数据</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -114,7 +116,7 @@
|
|
|
<div class="alarm-title-right"></div>
|
|
|
</div>
|
|
|
<div class="alarm-content">
|
|
|
- <div class="alarm-box">
|
|
|
+ <div class="alarm-box" @click="openDevice">
|
|
|
<div class="box-item" v-for="(item, i) in devList" :key="i">
|
|
|
<div class="box-bg">
|
|
|
<div class="box-absolute">{{item.value}}</div>
|
|
@@ -208,29 +210,205 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="bio-dialog" v-show="showDialog" @click="showDialog = false">
|
|
|
+ <div class="dialog-content3">
|
|
|
+ <div class="dialog-title">今日报警</div>
|
|
|
+ <div class="base-banner3">
|
|
|
+ <template v-if="callType === 0">
|
|
|
+ <template v-if="personList.length > 0 ">
|
|
|
+ <new-table v-if="callType === 0" :title="'报警列表'" :list-data="personList" :height="650" :table-items="personItem">
|
|
|
+ <template #recordImage="scope">
|
|
|
+ <img :src="scope.row.recordImage" height="75px" alt="">
|
|
|
+ </template>
|
|
|
+ <template #name>
|
|
|
+ <span>陌生人</span>
|
|
|
+ </template>
|
|
|
+ </new-table>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <template v-if="listItem.length > 0">
|
|
|
+ <new-table :title="'报警列表'" :list-data="listItem" :height="650" :table-items="tableItem">
|
|
|
+ </new-table>
|
|
|
+ <div @click.stop>
|
|
|
+ <table-footer :totals="total" :size="pageSize" @sizeChange="sizeChange" @pageChange="pageChange"></table-footer>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="bio-dialog" v-show="eventDialog" @click="eventDialog = false">
|
|
|
+ <div class="dialog-content3">
|
|
|
+ <div class="dialog-title">事件分布</div>
|
|
|
+ <div class="base-banner3">
|
|
|
+ <template v-if="sort === 0">
|
|
|
+ <template v-if="sevenPersonList.length > 0">
|
|
|
+ <new-table :title="'报警列表'" :list-data="sevenPersonList" :height="650" :table-items="personItem">
|
|
|
+ <template #recordImage="scope">
|
|
|
+ <img :src="scope.row.recordImage" height="75px" alt="">
|
|
|
+ </template>
|
|
|
+ <template #name>
|
|
|
+ <span>陌生人</span>
|
|
|
+ </template>
|
|
|
+ </new-table>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="sort === 2">
|
|
|
+ <div @click.stop>
|
|
|
+ <template v-if="gateList.length > 0">
|
|
|
+ <new-table :title="'报警列表'" :list-data="gateList" :height="650" :table-items="gateItem">
|
|
|
+ <template #alarmPicture="scope">
|
|
|
+ <img :src="scope.row.imgUrl" height="75px" alt="">
|
|
|
+ </template>
|
|
|
+ <template #handler="scope">
|
|
|
+ <el-button @click="playBack(scope.row)" size="mini">回放</el-button>
|
|
|
+ </template>
|
|
|
+ </new-table>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div v-if="gateList.length > 0" @click.stop>
|
|
|
+ <table-footer :totals="gateTotal" :size="pageSize" @sizeChange="eventChange" @pageChange="eventPageChange"></table-footer>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="sort === 3">
|
|
|
+ <div @click.stop>
|
|
|
+ <template v-if="gateList.length > 0">
|
|
|
+ <new-table :title="'报警列表'" :list-data="gateList" :height="650" :table-items="sizhuItem">
|
|
|
+ <template #alarmPicture="scope">
|
|
|
+ <img :src="scope.row.imgUrl" height="75px" alt="">
|
|
|
+ </template>
|
|
|
+ <template #handler="scope">
|
|
|
+ <el-button @click="playBack(scope.row)" size="mini">回放</el-button>
|
|
|
+ </template>
|
|
|
+ </new-table>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div @click.stop v-if="gateList.length > 0">
|
|
|
+ <table-footer :totals="gateTotal" :size="pageSize" @sizeChange="eventChange" @pageChange="eventPageChange"></table-footer>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="sort === 4">
|
|
|
+ <div @click.stop>
|
|
|
+ <template v-if="carList.length > 0">
|
|
|
+ <new-table :title="'报警列表'" :list-data="carList" :height="650" :table-items="carItem">
|
|
|
+ <!-- 车辆烘干 -->
|
|
|
+ <template #chekOk="scope">
|
|
|
+ <span>{{ scope.row.chekOk === "1" ? "是" : "否" }}</span>
|
|
|
+ </template>
|
|
|
+ <template #handlerDrying="scope">
|
|
|
+ <el-button @click="playEcharts(scope.row)" size="mini">查看本次烘干温度详情</el-button>
|
|
|
+ </template>
|
|
|
+ </new-table>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ <div @click.stop v-if="carList.length > 0">
|
|
|
+ <table-footer :totals="carTotal" :size="pageSize" @sizeChange="carChange" @pageChange="carPageChange"></table-footer>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 回放 -->
|
|
|
+ <el-dialog
|
|
|
+ width="60%"
|
|
|
+ :visible.sync="modalDevice"
|
|
|
+ :close-on-click-modal="false">
|
|
|
+ <iframe
|
|
|
+ :src="'static/dahua/index.html?' + rtsp"
|
|
|
+ frameborder="0"
|
|
|
+ style="width: 100%; height: 600px"
|
|
|
+ >
|
|
|
+ </iframe>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog title="温度详情" :visible.sync="tempVisible" width="80%">
|
|
|
+ <div style="width: 100%; height: 500px">
|
|
|
+ <chart-car-drying :tempList="tempChartData"></chart-car-drying>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="tempVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="tempVisible = false">
|
|
|
+ 确 定
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <div class="bio-dialog" v-show="deviceShow" @click="deviceShow = false">
|
|
|
+ <div class="dialog-content3">
|
|
|
+ <div class="dialog-title">设备列表</div>
|
|
|
+ <div class="base-banner3">
|
|
|
+ <template v-if="deviceList.length > 0">
|
|
|
+ <new-table :height="650" :title="'设备列表'" :list-data="deviceList" :table-items="deviceItem">
|
|
|
+ <!-- table-col -->
|
|
|
+ <template #state="scope">
|
|
|
+ <el-tag
|
|
|
+ size="small"
|
|
|
+ :type="scope.row.state === 1 ? 'success' : 'danger'"
|
|
|
+ >
|
|
|
+ {{ scope.row.state === 1 ? "正常" : "异常" }}
|
|
|
+ </el-tag>
|
|
|
+ </template>
|
|
|
+ </new-table>
|
|
|
+ <div @click.stop>
|
|
|
+ <table-footer :totals="deviceTotal" :size="pageSize" @sizeChange="devChange" @pageChange="devPageChange"></table-footer>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="text-align: center; color: white">暂无记录</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import ChartPie from "@/views/Alarm/chart/ChartPie";
|
|
|
+// import ChartPie from "@/views/Alarm/chart/ChartPie";
|
|
|
import AlarmBar from "@/views/Alarm/chart/AlarmBar";
|
|
|
// import CostPie from "@/views/Alarm/chart/CostPie";
|
|
|
// import ChartBar from "@/views/BioSafety/chart/ChartBar";
|
|
|
+import AlarmPie from "@/views/Alarm/chart/AlarmPie";
|
|
|
import { swiper, swiperSlide } from 'vue-awesome-swiper'
|
|
|
import 'swiper/css/swiper.css'
|
|
|
-import {getAlarmList, getWeekInfo, getPersonList, getAlarmRate, getCountByDay, getDevice} from "@/utils/api";
|
|
|
+import {getAlarmList, getWeekInfo, getPersonList, getAlarmRate, getCountByDay, getDevice, getCarWashVideo, getDeviceList } from "@/utils/api";
|
|
|
+import {gateSeven, getCallDetail, getCarDrying, getCarDryingTemp } from "@/utils/chenApi";
|
|
|
import img from '@/assets/Alarm/111.png';
|
|
|
import {timeDate} from "@/utils";
|
|
|
import { mapState } from "vuex";
|
|
|
+import NewTable from "@/components/newTable/NewTable";
|
|
|
+import TableFooter from "@/components/TableFooter";
|
|
|
+import ChartCarDrying from "@/views/Alarm/chart/ChartCarDrying";
|
|
|
|
|
|
export default {
|
|
|
name: "Alarm",
|
|
|
components: {
|
|
|
- ChartPie,
|
|
|
+ // ChartPie,
|
|
|
AlarmBar,
|
|
|
// CostPie,
|
|
|
swiper,
|
|
|
- swiperSlide
|
|
|
+ swiperSlide,
|
|
|
+ AlarmPie,
|
|
|
+ NewTable,
|
|
|
+ TableFooter,
|
|
|
+ ChartCarDrying
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -297,6 +475,203 @@ export default {
|
|
|
name: '设备异常率',
|
|
|
value: '0'
|
|
|
},
|
|
|
+ ],
|
|
|
+ callType: 1,
|
|
|
+ outPersonList: [],
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 20,
|
|
|
+ total: 0,
|
|
|
+ listItem: [],
|
|
|
+ showDialog: false,
|
|
|
+ tableItem: [
|
|
|
+ {
|
|
|
+ prop: 'warningName',
|
|
|
+ label: '报警类型'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'warningTime',
|
|
|
+ label: '报警时间'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'levelName',
|
|
|
+ label: '报警等级',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'msg',
|
|
|
+ label: '报警内容',
|
|
|
+ minWidth: 200
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ personItem: [
|
|
|
+ {
|
|
|
+ prop: 'swingTime',
|
|
|
+ label: '抓拍时间'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '抓拍图片',
|
|
|
+ slotName: 'recordImage'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '人员姓名',
|
|
|
+ slotName: 'name'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '抓拍区域',
|
|
|
+ prop: 'deviceName'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ sort: '',
|
|
|
+ gateList: [],
|
|
|
+ eventDialog: false,
|
|
|
+ gateItem: [
|
|
|
+ {
|
|
|
+ prop: 'alarmDate',
|
|
|
+ label: '时间',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'alarmDate'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'alarmPosition',
|
|
|
+ label: '地点',
|
|
|
+ minWidth: '100',
|
|
|
+ slotName: 'alarmPosition'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'alarmPicture',
|
|
|
+ label: '车辆图片',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'alarmPicture'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'alarmTypeName',
|
|
|
+ label: '类型',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'alarmTypeName'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '操作',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'handler'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ gateTotal: 0,
|
|
|
+ modalDevice: false,
|
|
|
+ rtsp: '',
|
|
|
+ sizhuItem: [
|
|
|
+ {
|
|
|
+ prop: 'alarmDate',
|
|
|
+ label: '时间',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'alarmDate'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'alarmPosition',
|
|
|
+ label: '地点',
|
|
|
+ minWidth: '100',
|
|
|
+ slotName: 'alarmPosition'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'alarmPicture',
|
|
|
+ label: '死猪图片',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'alarmPicture'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'alarmTypeName',
|
|
|
+ label: '类型',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'alarmTypeName'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '操作',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'handler'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ sevenPersonList: [],
|
|
|
+ sevenItem: [],
|
|
|
+ personTotal: 0,
|
|
|
+ carList: [],
|
|
|
+ carItem: [
|
|
|
+ {
|
|
|
+ prop: 'eventTime',
|
|
|
+ label: '发生时间',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'eventTime'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'location',
|
|
|
+ label: '发生地点',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'location'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'chekOk',
|
|
|
+ label: '烘干是否达标',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'chekOk'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '操作',
|
|
|
+ minWidth: '150',
|
|
|
+ slotName: 'handlerDrying'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ carTotal: 0,
|
|
|
+ tempVisible: false,
|
|
|
+ tempChartData: {},
|
|
|
+ deviceShow: false,
|
|
|
+ deviceList: [],
|
|
|
+ deviceTotal: 0,
|
|
|
+ deviceItem: [
|
|
|
+ {
|
|
|
+ prop: "deviceName",
|
|
|
+ label: "设备名称",
|
|
|
+ minWidth: 100,
|
|
|
+ slotName: "deviceName",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "deviceCode",
|
|
|
+ label: "设备编号",
|
|
|
+ minWidth: 100,
|
|
|
+ slotName: "deviceCode",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "deviceType",
|
|
|
+ label: "型号",
|
|
|
+ minWidth: 100,
|
|
|
+ slotName: "deviceType",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "factory",
|
|
|
+ label: "厂家",
|
|
|
+ minWidth: 100,
|
|
|
+ slotName: "factory",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "worker",
|
|
|
+ label: "维保人",
|
|
|
+ minWidth: 100,
|
|
|
+ slotName: "worker",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "mainParams",
|
|
|
+ label: "基本参数",
|
|
|
+ minWidth: 120,
|
|
|
+ slotName: "mainParams",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "state",
|
|
|
+ label: "状态",
|
|
|
+ minWidth: 120,
|
|
|
+ slotName: "state",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "record",
|
|
|
+ label: "维修记录",
|
|
|
+ minWidth: 120,
|
|
|
+ slotName: "record",
|
|
|
+ },
|
|
|
]
|
|
|
}
|
|
|
},
|
|
@@ -304,6 +679,38 @@ export default {
|
|
|
...mapState(['ip'])
|
|
|
},
|
|
|
methods: {
|
|
|
+ devChange(val) {
|
|
|
+ this.pageSize = val;
|
|
|
+ this.initDev()
|
|
|
+ },
|
|
|
+ devPageChange(val) {
|
|
|
+ this.pageNum = val;
|
|
|
+ this.initDev()
|
|
|
+ },
|
|
|
+ sizeChange(val) {
|
|
|
+ this.pageSize = val;
|
|
|
+ this.initAlarm()
|
|
|
+ },
|
|
|
+ pageChange(val) {
|
|
|
+ this.pageNum = val;
|
|
|
+ this.initAlarm();
|
|
|
+ },
|
|
|
+ eventChange(val) {
|
|
|
+ this.pageSize = val;
|
|
|
+ this.initEvent()
|
|
|
+ },
|
|
|
+ eventPageChange(val) {
|
|
|
+ this.pageNum = val;
|
|
|
+ this.initEvent();
|
|
|
+ },
|
|
|
+ carChange(val) {
|
|
|
+ this.pageSize = val;
|
|
|
+ this.initCar()
|
|
|
+ },
|
|
|
+ carPageChange(val) {
|
|
|
+ this.pageNum = val;
|
|
|
+ this.initCar();
|
|
|
+ },
|
|
|
alarmClick(num) {
|
|
|
this.num = num;
|
|
|
if(num === 1) {
|
|
@@ -485,7 +892,6 @@ export default {
|
|
|
this.barData.salvProValue.push(item.value);
|
|
|
})
|
|
|
this.pieData = res.data;
|
|
|
- console.log(this.pieData);
|
|
|
}
|
|
|
this.pieLoading = false;
|
|
|
} else {
|
|
@@ -509,6 +915,189 @@ export default {
|
|
|
this.dialog = true;
|
|
|
this.selectImg = item.recordImage;
|
|
|
this.selectItems = item;
|
|
|
+ },
|
|
|
+ openCall(val) {
|
|
|
+ this.pageNum = 1;
|
|
|
+ this.listItem = [];
|
|
|
+ this.showDialog = true;
|
|
|
+ let name = val.name;
|
|
|
+ switch (name) {
|
|
|
+ case '生态监测':
|
|
|
+ this.callType = 1;
|
|
|
+ this.initAlarm();
|
|
|
+ break;
|
|
|
+ case '环境监测':
|
|
|
+ this.callType = 2;
|
|
|
+ this.initAlarm();
|
|
|
+ break;
|
|
|
+ case '人员违规':
|
|
|
+ this.callType = 0;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ setRank(val) {
|
|
|
+ this.pageNum = 1;
|
|
|
+ this.listItem = [];
|
|
|
+ this.showDialog = true;
|
|
|
+ let name = val.name;
|
|
|
+ switch (name) {
|
|
|
+ case '一级':
|
|
|
+ this.callType = 3;
|
|
|
+ break;
|
|
|
+ case '二级':
|
|
|
+ this.callType = 4;
|
|
|
+ break;
|
|
|
+ case '三级':
|
|
|
+ this.callType = 5;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.initAlarm()
|
|
|
+ },
|
|
|
+ initAlarm() {
|
|
|
+ let params= {
|
|
|
+ type: this.callType,
|
|
|
+ current: this.pageNum,
|
|
|
+ size: this.pageSize
|
|
|
+ }
|
|
|
+ getCallDetail(params).then(res => {
|
|
|
+ if(res.code === 10000) {
|
|
|
+ this.listItem = res.data.records;
|
|
|
+ this.total = res.data.total;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ openEvent(val) {
|
|
|
+ this.eventDialog = true;
|
|
|
+ let name = val.name;
|
|
|
+ this.pageNum = 1;
|
|
|
+ switch (name) {
|
|
|
+ case '车辆洗消':
|
|
|
+ this.sort = 2;
|
|
|
+ this.initEvent()
|
|
|
+ break;
|
|
|
+ case '死猪运输':
|
|
|
+ this.sort = 3;
|
|
|
+ this.initEvent()
|
|
|
+ break;
|
|
|
+ case '人员违规':
|
|
|
+ this.sort = 0;
|
|
|
+ this.sevenPerson()
|
|
|
+ break;
|
|
|
+ case '车辆烘干':
|
|
|
+ this.sort = 4;
|
|
|
+ this.initCar();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return
|
|
|
+ }
|
|
|
+ },
|
|
|
+ initEvent() {
|
|
|
+ let endTime = timeDate(new Date().getTime());
|
|
|
+ let startTime = timeDate(new Date().getTime() - 1000 * 60 * 60 * 24 * 7);
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ alarmStartDateString: startTime + ' 00:00:00',
|
|
|
+ alarmEndDateString: endTime + ' 00:00:00',
|
|
|
+ pageNum: this.pageNum,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ sort: this.sort,
|
|
|
+ }
|
|
|
+ gateSeven(params).then(res => {
|
|
|
+ if(res.code === 0) {
|
|
|
+ const result = JSON.parse(res.data.result);
|
|
|
+ this.gateList = result.data.pageData;
|
|
|
+ this.gateTotal = parseInt(res.total);
|
|
|
+ this.gateList.forEach(item => {
|
|
|
+ item.imgUrl = `${this.ip}/video/picture/get?alarmPicture=${item.alarmPicture}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ playBack(item) {
|
|
|
+ this.modalDevice = true
|
|
|
+ getCarWashVideo({
|
|
|
+ happendTime: item.alarmDate,
|
|
|
+ channelName: item.alarmPosition,
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ this.rtsp = res.URL;
|
|
|
+ this.videoVisible = true;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 7天人员违规
|
|
|
+ sevenPerson() {
|
|
|
+ let endTime = timeDate(new Date().getTime());
|
|
|
+ let startTime = timeDate(new Date().getTime() - 1000 * 60 * 60 * 24 * 7);
|
|
|
+ let params = {
|
|
|
+ pageNum: this.pageNum,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ startSwingTime: startTime + ' 00:00:00',
|
|
|
+ endSwingTime: endTime + ' 00:00:00',
|
|
|
+ containDomain: 1,
|
|
|
+ openResult: 0
|
|
|
+ }
|
|
|
+ getPersonList(params).then(async res => {
|
|
|
+ if(res.code == 0) {
|
|
|
+ let result = JSON.parse(res.result);
|
|
|
+ this.sevenPersonList = result.data.pageData;
|
|
|
+ // const { token } = await getFaceToken();
|
|
|
+ this.sevenPersonList.forEach((item) => {
|
|
|
+ item.channelName = item.channelName.split("人脸门禁")[0];
|
|
|
+ item.recordImage = `${this.ip}/video/picture/get?alarmPicture=${item.recordImage}`;
|
|
|
+ // item.recordImage = `https://36.26.62.70:447/evo-pic/${item.recordImage}?token=${token}&oss_addr=172.16.3.223:8925`;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 车辆烘干
|
|
|
+ initCar() {
|
|
|
+ let endTime = timeDate(new Date().getTime());
|
|
|
+ let startTime = timeDate(new Date().getTime() - 1000 * 60 * 60 * 24 * 7);
|
|
|
+ getCarDrying({
|
|
|
+ startTimeString: startTime + " 00:00:00",
|
|
|
+ endTimeString: endTime + " 23:59:59",
|
|
|
+ current: this.pageNum,
|
|
|
+ size: this.pageSize,
|
|
|
+ }).then((res) => {
|
|
|
+ if (res && res.code === 10000) {
|
|
|
+ this.carList = res.data.records;
|
|
|
+ this.carTotal = res.data.total;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ playEcharts(row) {
|
|
|
+ getCarDryingTemp({
|
|
|
+ deviceId: row.deviceId,
|
|
|
+ eventTimeString: row.eventTime,
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code === 10000) {
|
|
|
+ this.tempChartData = res.data;
|
|
|
+ this.tempVisible = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ openDevice() {
|
|
|
+ this.deviceShow = true;
|
|
|
+ this.pageNum = 1;
|
|
|
+ this.initDev();
|
|
|
+ },
|
|
|
+ initDev() {
|
|
|
+ let params = {
|
|
|
+ pageNo: this.pageNum,
|
|
|
+ pageSize: this.pageSize
|
|
|
+ }
|
|
|
+ getDeviceList(params).then(res => {
|
|
|
+ if (res.code === 10000) {
|
|
|
+ this.deviceList = res.data.content;
|
|
|
+ this.deviceTotal = res.data.totalElements;
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
@@ -519,6 +1108,46 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
+ /deep/.el-pagination__total {
|
|
|
+ color: #fff
|
|
|
+ }
|
|
|
+ /deep/.el-table th.el-table__cell {
|
|
|
+ background-color: #009cff !important;
|
|
|
+ color: white;
|
|
|
+ }
|
|
|
+ /deep/.el-table tr {
|
|
|
+ background-color: rgba(0, 0, 205, .8);
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ /deep/.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
|
|
|
+ color: #009cff;
|
|
|
+ }
|
|
|
+ /deep/.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar {
|
|
|
+ /*滚动条整体样式*/
|
|
|
+ width : 5px; /*高宽分别对应横竖滚动条的尺寸*/
|
|
|
+ height: 1px;
|
|
|
+ }
|
|
|
+ /deep/.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb {
|
|
|
+ /*滚动条里面小方块*/
|
|
|
+ border-radius : 8px;
|
|
|
+ background-color: #535353;
|
|
|
+ background-image: -webkit-linear-gradient(
|
|
|
+ 45deg,
|
|
|
+ rgba(255, 255, 255, 0.2) 25%,
|
|
|
+ transparent 25%,
|
|
|
+ transparent 50%,
|
|
|
+ rgba(255, 255, 255, 0.2) 50%,
|
|
|
+ rgba(255, 255, 255, 0.2) 75%,
|
|
|
+ transparent 75%,
|
|
|
+ transparent
|
|
|
+ );
|
|
|
+ }
|
|
|
+ /deep/.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-track {
|
|
|
+ /*滚动条里面轨道*/
|
|
|
+ box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2);
|
|
|
+ /*background : #ededed;*/
|
|
|
+ border-radius: 10px;
|
|
|
+ }
|
|
|
.alarm {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
@@ -757,6 +1386,7 @@ export default {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
display: flex;
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
|
.box-item {
|
|
|
flex: 1;
|
|
@@ -794,6 +1424,21 @@ export default {
|
|
|
|
|
|
/*background-color: black;*/
|
|
|
}
|
|
|
+ .dialog-content3 {
|
|
|
+ width: 1400px;
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
+ }
|
|
|
+ .dialog-title {
|
|
|
+ color: white;
|
|
|
+ font-size: 16px;
|
|
|
+ position: absolute;
|
|
|
+ top: -10px;
|
|
|
+ left: 50%;
|
|
|
+ transform: translate(-50%, 0);
|
|
|
+ }
|
|
|
.base-banner1 {
|
|
|
width: 800px;
|
|
|
height: 600px;
|
|
@@ -824,4 +1469,13 @@ export default {
|
|
|
text-align: left;
|
|
|
padding-left: 50px;
|
|
|
}
|
|
|
+ .base-banner3 {
|
|
|
+ width: 1400px;
|
|
|
+ height: 800px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding: 40px 40px 20px 50px;
|
|
|
+ align-items: center;
|
|
|
+ background: url("../../assets/BioSafety/box2222.png") no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ }
|
|
|
</style>
|