|
@@ -0,0 +1,1398 @@
|
|
|
+<template>
|
|
|
+ <el-row class="contentBox">
|
|
|
+ <transition name="el-fade-in-linear">
|
|
|
+ <el-col class="leftBox" v-show="leftBtn">
|
|
|
+ <el-col class="leftTop">
|
|
|
+ <h4>警情时段分布</h4>
|
|
|
+ <el-row class="leftTopContent">
|
|
|
+ <el-row class="selectBar">
|
|
|
+ <el-form :inline="true" size="mini" :model="barForm">
|
|
|
+ <el-form-item label="场所分类">
|
|
|
+ <el-select v-model="barForm.fireType" @change="getHouse()" filterable clearable placeholder="场所" >
|
|
|
+ <el-option :label="item" :value="item" v-for="(item,ind) in fireTypeList" :key="ind"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="fireBar">
|
|
|
+ <line-smooth ref="lineSmooth" :dataMap="houseList"></line-smooth>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ <el-col class="leftBot">
|
|
|
+ <h4>历史警情趋势图</h4>
|
|
|
+ <el-row class="leftBotContent">
|
|
|
+ <el-row class="selectBar">
|
|
|
+ <el-row>
|
|
|
+ <el-button size="mini" @click="searchTime(1)" :class="{ btnClick: timeArea === 1 }">近一年</el-button>
|
|
|
+ <el-button size="mini" @click="searchTime(3)" :class="{ btnClick: timeArea === 3 }">近三年</el-button>
|
|
|
+ <el-button size="mini" @click="searchTime(5)" :class="{ btnClick: timeArea === 5 }">近五年</el-button>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="fireBar">
|
|
|
+ <bar-chart ref="barChart" :dataMap="monthList"></bar-chart>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-col>
|
|
|
+ </transition>
|
|
|
+ <transition name="el-fade-in-linear">
|
|
|
+ <el-col class="centerBox" :style="{'max-width':leftBtn && rightBtn ? '8rem' :!leftBtn && !rightBtn ? '100%' : leftBtn || rightBtn ? '16rem' : '8rem'}">
|
|
|
+ <el-row class="leftBtn btnW" @click="leftBtnClick()">
|
|
|
+ <i :class="leftBtn ? 'el-icon-arrow-left' : 'el-icon-arrow-right'"></i>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="centerContent" id="mapF"></el-row>
|
|
|
+
|
|
|
+ <el-row class="rightBtn btnW" @click="rightBtnClick()">
|
|
|
+ <i :class="rightBtn ? 'el-icon-arrow-right' : 'el-icon-arrow-left'"></i>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="mapTips">
|
|
|
+ <el-checkbox-group v-model="checkList" class="yxj">
|
|
|
+ <el-checkbox label="全选"></el-checkbox>
|
|
|
+ <el-checkbox label="实时警情"></el-checkbox>
|
|
|
+ <el-checkbox label="重点单位"></el-checkbox>
|
|
|
+ <el-checkbox label="消防站"></el-checkbox>
|
|
|
+ <el-checkbox label="消防车"></el-checkbox>
|
|
|
+ <el-checkbox label="微型消防车"></el-checkbox>
|
|
|
+ <el-checkbox label="实景监控视频"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ </transition>
|
|
|
+ <transition name="el-fade-in-linear">
|
|
|
+ <el-col class="rightBox" v-show="rightBtn">
|
|
|
+ <el-col class="rightTop">
|
|
|
+ <h4>警情处置情况</h4>
|
|
|
+ <div class="rightBoxCon">
|
|
|
+ <el-row>
|
|
|
+ <el-row class="rightTopTitle"><span>火灾</span></el-row>
|
|
|
+ <el-row class="rightTopChart">
|
|
|
+ <gauge ref="gauge1" :dataMap="proptionList.find(val=>val.type === '火灾') && proptionList.find(val=>val.type === '火灾').number/(proptionList.find(val=>val.type === '火灾').number + proptionList.find(val=>val.type === '社会救助').number + proptionList.find(val=>val.type === '抢险救援').number) || 0" :dataNumber="proptionList.find(val=>val.type === '火灾') && proptionList.find(val=>val.type === '火灾').number || 0" color="#468EFD"></gauge>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="rightTopNumber">
|
|
|
+ <span>
|
|
|
+ 同比:{{proptionList.find(val=>val.type === '火灾') && (proptionList.find(val=>val.type === '火灾').radio * 100).toFixed(2) || 0}}%
|
|
|
+ <span :style="{color: proptionList.find(val=>val.type === '火灾') && proptionList.find(val=>val.type === '火灾').sameStatus === 2 ? 'green' : 'red'}">
|
|
|
+ <i class="iconfont" v-if="proptionList.find(val=>val.type === '火灾')"
|
|
|
+ :class="proptionList.find(val=>val.type === '火灾').sameStatus === 1 ? 'icon-arrowTop-fill' : proptionList.find(val=>val.type === '火灾').sameStatus === 2 ? 'icon-xiajiantou-' : ''"></i>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-row class="rightTopTitle"><span>社会救助</span></el-row>
|
|
|
+ <el-row class="rightTopChart">
|
|
|
+ <gauge ref="gauge2" :dataMap="proptionList.find(val=>val.type === '社会救助') && proptionList.find(val=>val.type === '社会救助').number/(proptionList.find(val=>val.type === '火灾').number + proptionList.find(val=>val.type === '社会救助').number + proptionList.find(val=>val.type === '抢险救援').number) || 0" :dataNumber="proptionList.find(val=>val.type === '社会救助') && proptionList.find(val=>val.type === '社会救助').number || 0" color="#06B1B9"></gauge>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="rightTopNumber">
|
|
|
+ <span>
|
|
|
+ 同比:{{proptionList.find(val=>val.type === '社会救助') && (proptionList.find(val=>val.type === '社会救助').radio * 100).toFixed(2) || 0}}%
|
|
|
+ <span :style="{color: proptionList.find(val=>val.type === '社会救助') && proptionList.find(val=>val.type === '社会救助').sameStatus === 2 ? 'green' : 'red'}">
|
|
|
+ <i class="iconfont" v-if="proptionList.find(val=>val.type === '社会救助')"
|
|
|
+ :class="proptionList.find(val=>val.type === '社会救助').sameStatus === 1 ? 'icon-arrowTop-fill' : proptionList.find(val=>val.type === '社会救助').sameStatus === 2 ? 'icon-xiajiantou-' : ''"></i>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-row class="rightTopTitle"><span>抢险救援</span></el-row>
|
|
|
+ <el-row class="rightTopChart">
|
|
|
+ <gauge ref="gauge3" :dataMap="proptionList.find(val=>val.type === '抢险救援') && proptionList.find(val=>val.type === '抢险救援').number/ (proptionList.find(val=>val.type === '火灾').number + proptionList.find(val=>val.type === '社会救助').number + proptionList.find(val=>val.type === '抢险救援').number) || 0" :dataNumber="proptionList.find(val=>val.type === '抢险救援') && proptionList.find(val=>val.type === '抢险救援').number || 0" color="#E4951E"></gauge>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="rightTopNumber">
|
|
|
+ <span>
|
|
|
+ 同比:{{proptionList.find(val=>val.type === '抢险救援') && (proptionList.find(val=>val.type === '抢险救援').radio * 100).toFixed(2) || 0}}%
|
|
|
+ <span :style="{color: proptionList.find(val=>val.type === '抢险救援') && proptionList.find(val=>val.type === '抢险救援').sameStatus === 2 ? 'green' : 'red'}">
|
|
|
+ <i class="iconfont" v-if="proptionList.find(val=>val.type === '抢险救援')"
|
|
|
+ :class="proptionList.find(val=>val.type === '抢险救援').sameStatus === 1 ? 'icon-arrowTop-fill' : proptionList.find(val=>val.type === '抢险救援').sameStatus === 2 ? 'icon-xiajiantou-' : ''"></i>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col class="rightBot">
|
|
|
+ <h4>实时警情处理</h4>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ class="transparentTableRow"
|
|
|
+ height="100%"
|
|
|
+ row-style="height:.425rem;"
|
|
|
+ cell-style="height:.425rem;box-sizing: border-box;"
|
|
|
+ style="width: 100%; margin: 0 auto"
|
|
|
+ @row-click="rowClickMap"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ show-overflow-tooltip
|
|
|
+ v-for="item in headerData"
|
|
|
+ :key="item.prop"
|
|
|
+ :prop="item.prop"
|
|
|
+ align="center"
|
|
|
+ min-width="11%"
|
|
|
+ :label="item.name"
|
|
|
+ >
|
|
|
+ <template v-if="item.prop === 'type'" #default="scope">
|
|
|
+ <el-tooltip placement="left">
|
|
|
+ <template #content>
|
|
|
+ <div class="tableTooltip">
|
|
|
+ <div class="tableTitle">
|
|
|
+ <div>执勤力量</div>
|
|
|
+ </div>
|
|
|
+ <el-row class="tableContent">
|
|
|
+ <el-col :span="20">案件编号:{{scope.row.ajbh}}</el-col>
|
|
|
+ <el-col :span="4" class="tipdan">原始工单</el-col>
|
|
|
+ <el-col :span="24">发现时间:{{scope.row.tzsj}}</el-col>
|
|
|
+ <el-col :span="24">案件类型:{{scope.row.ajlx}}</el-col>
|
|
|
+ <el-col :span="12">所属街道:{{scope.row.streettown}}</el-col>
|
|
|
+ <el-col :span="12">处置网格:</el-col>
|
|
|
+ <el-col :span="24">发生地址:{{scope.row.afdz}}</el-col>
|
|
|
+ <el-col :span="24">案件描述:{{scope.row.gisX}}</el-col>
|
|
|
+ <el-col :span="12">主责部门:{{scope.row.zhongdui}}</el-col>
|
|
|
+ <el-col :span="12">案件状态:{{scope.row.ajzt}}</el-col>
|
|
|
+ <el-col :span="12">处置截止:{{scope.row.tssj}}</el-col>
|
|
|
+ <el-col :span="12">附件:{{scope.row.jlzt}}</el-col>
|
|
|
+ <el-col :span="24">案件渠道来源:{{scope.row.jlzt}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="liucheng">
|
|
|
+ <el-col :span="6">
|
|
|
+ <img src="~@a/img/icon/lc1.png" alt="" />
|
|
|
+ <div class="jz">立案</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <img src="~@a/img/icon/lc2.png" alt="" />
|
|
|
+ <div class="jz">派遣</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <img src="~@a/img/icon/lc3.png" alt="" />
|
|
|
+ <div class="jz">处置</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <img src="~@a/img/icon/lc4.png" alt="" />
|
|
|
+ <div class="jz">结案</div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="tablePersonnel">
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <!-- <div>{{scope.row.commander}}</div>
|
|
|
+ <div>指挥员</div> -->
|
|
|
+ </el-col>
|
|
|
+ <!-- <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.correspondent}}</div>
|
|
|
+ <div>通讯员</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.firemen}}</div>
|
|
|
+ <div>消防员</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.driver}}</div>
|
|
|
+ <div>驾驶员</div>
|
|
|
+ </el-col> -->
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template>
|
|
|
+ <i class="iconfont"
|
|
|
+ :class="{
|
|
|
+ 'icon-icon-test' : scope.row['ajlxdm'] == 1,
|
|
|
+ 'icon-jiuyuan': scope.row['ajlxdm'] == 2,
|
|
|
+ 'icon-minzhengtubiao1-08':scope.row['ajlxdm'] == 3,
|
|
|
+ }"
|
|
|
+ :style="{color: scope.row['ajdj'] == '零级' ? 'green' : scope.row['ajdj'] == '一级' ? '#eec10d' : scope.row['ajdj'] == '二级' ? '#ff730c' : scope.row['ajdj'] == '三级' ? '#ff0012' : '#2e98f2'}"
|
|
|
+ v-if="item.prop === 'type'"></i>
|
|
|
+ <div class="name-wrapper" v-else>{{ scope.row[item.prop] }}</div>
|
|
|
+ </template>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ <template v-else #default="scope">
|
|
|
+ {{ item.prop === 'type' ? '' : item.prop === 'lasj' ? scope.row[item.prop] && scope.row[item.prop].slice(5) : item.prop === 'afdz' ? scope.row[item.prop].replace(new RegExp("闵行区 ",""),"") : item.prop === 'status' ? (scope.row[item.prop] == 1 ? '可用' : '不可用') : scope.row[item.prop]}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-card class="box-card" v-if="isVideo">
|
|
|
+ <template #header>
|
|
|
+ <div class="card-header">
|
|
|
+ <span>实时视频</span>
|
|
|
+ <i class="el-icon-close" @click="isVideo = false"></i>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- <img src="~@a/img/test/car.png" alt=""> -->
|
|
|
+ <!-- controls -->
|
|
|
+ <video src="~@a/img/test/card.mp4" class="videoBox" autoplay height="auto"></video>
|
|
|
+ <!-- <video-player class="video-player vjs-custom-skin"
|
|
|
+ ref="videoPlayer"
|
|
|
+ :playsinline="true"
|
|
|
+ :options="playerOptions">
|
|
|
+ </video-player> -->
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+ <el-col class="rightBot2">
|
|
|
+ <h4>历史案件</h4>
|
|
|
+ <el-col class="shui">
|
|
|
+ <el-col class="title">
|
|
|
+ 水系统检测设备(300)
|
|
|
+ </el-col>
|
|
|
+ <el-col class="title1">
|
|
|
+ 上线率:99%
|
|
|
+ </el-col>
|
|
|
+ <el-col class="title2">
|
|
|
+ 接单率:99%
|
|
|
+ </el-col>
|
|
|
+ <el-col class="title3">
|
|
|
+ 处置率:99%
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-table
|
|
|
+ :data="tableData2"
|
|
|
+ class="transparentTableRow"
|
|
|
+ height="100%"
|
|
|
+ row-style="height:.425rem;"
|
|
|
+ cell-style="height:.425rem;box-sizing: border-box;"
|
|
|
+ style="width: 100%; margin: 0 auto"
|
|
|
+ @row-click="rowClickMap"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ show-overflow-tooltip
|
|
|
+ v-for="item in headerData2"
|
|
|
+ :key="item.prop"
|
|
|
+ :prop="item.prop"
|
|
|
+ align="center"
|
|
|
+
|
|
|
+ :label="item.name"
|
|
|
+ >
|
|
|
+ <template v-if="item.prop === 'type'" #default="scope">
|
|
|
+ <el-tooltip placement="left">
|
|
|
+ <template #content>
|
|
|
+ <div class="tableTooltip">
|
|
|
+ <div class="tableTitle">
|
|
|
+ <div>案件详情</div>
|
|
|
+ </div>
|
|
|
+ <el-row class="tableContent">
|
|
|
+ <el-col :span="24">案件编号:{{scope.row.ajbh}}</el-col>
|
|
|
+ <el-col :span="24">发现时间:{{scope.row.tzsj}}</el-col>
|
|
|
+ <el-col :span="24">案件类型:{{scope.row.ajlx}}</el-col>
|
|
|
+ <el-col :span="12">所属街道:{{scope.row.streettown}}</el-col>
|
|
|
+ <el-col :span="12">处置网格:</el-col>
|
|
|
+ <el-col :span="24">发生地址:{{scope.row.afdz}}</el-col>
|
|
|
+ <el-col :span="24">案件描述:{{scope.row.gisX}}</el-col>
|
|
|
+ <el-col :span="12">主责部门:{{scope.row.zhongdui}}</el-col>
|
|
|
+ <el-col :span="12">案件状态:{{scope.row.ajzt}}</el-col>
|
|
|
+ <el-col :span="12">处置截止:{{scope.row.tssj}}</el-col>
|
|
|
+ <el-col :span="12">附件:{{scope.row.jlzt}}</el-col>
|
|
|
+ <el-col :span="24">案件渠道来源:{{scope.row.jlzt}}</el-col>
|
|
|
+ <el-col :span="10" @click="isVideo = true" style="color:#0ADAFF;text-decoration: underline;cursor: pointer;">实时视频</el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="tablePersonnel">
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.commander}}</div>
|
|
|
+ <div>指挥员</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.correspondent}}</div>
|
|
|
+ <div>通讯员</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.firemen}}</div>
|
|
|
+ <div>消防员</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <img src="~@a/img/test/bg1.png" alt="" />
|
|
|
+ <div>{{scope.row.driver}}</div>
|
|
|
+ <div>驾驶员</div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template>
|
|
|
+ <i class="iconfont"
|
|
|
+ :class="{
|
|
|
+ 'icon-icon-test' : scope.row['ajlxdm'] == 1,
|
|
|
+ 'icon-jiuyuan': scope.row['ajlxdm'] == 2,
|
|
|
+ 'icon-minzhengtubiao1-08':scope.row['ajlxdm'] == 3,
|
|
|
+ }"
|
|
|
+ :style="{color: scope.row['ajdj'] == '零级' ? 'green' : scope.row['ajdj'] == '一级' ? '#eec10d' : scope.row['ajdj'] == '二级' ? '#ff730c' : scope.row['ajdj'] == '三级' ? '#ff0012' : '#2e98f2'}"
|
|
|
+ v-if="item.prop === 'type'"></i>
|
|
|
+ <div class="name-wrapper" v-else>{{ scope.row[item.prop] }}</div>
|
|
|
+ </template>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ <template v-else #default="scope">
|
|
|
+ {{ item.prop === 'type' ? '' : item.prop === 'lasj' ? scope.row[item.prop] && scope.row[item.prop].slice(5) : item.prop === 'afdz' ? scope.row[item.prop].replace(new RegExp("闵行区 ",""),"") : item.prop === 'status' ? (scope.row[item.prop] == 1 ? '可用' : '不可用') : scope.row[item.prop]}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-card class="box-card" v-if="isVideo">
|
|
|
+ <template #header>
|
|
|
+ <div class="card-header">
|
|
|
+ <span>实时视频</span>
|
|
|
+ <i class="el-icon-close" @click="isVideo = false"></i>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- <img src="~@a/img/test/car.png" alt=""> -->
|
|
|
+ <!-- controls -->
|
|
|
+ <video src="~@a/img/test/card.mp4" class="videoBox" autoplay height="auto"></video>
|
|
|
+ <!-- <video-player class="video-player vjs-custom-skin"
|
|
|
+ ref="videoPlayer"
|
|
|
+ :playsinline="true"
|
|
|
+ :options="playerOptions">
|
|
|
+ </video-player> -->
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </transition>
|
|
|
+ </el-row>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import barChart from "@c/bar";
|
|
|
+import lineSmooth from "@c/line-smooth";
|
|
|
+import gauge from "@c/gauge/indexcom";
|
|
|
+import linstener from "@c/mixins/linstener";
|
|
|
+//import map from "@c/mixins/map-data";
|
|
|
+import map from "@c/mixins/map-gaodecom";
|
|
|
+
|
|
|
+
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ checkList:[],
|
|
|
+ tableData: [],
|
|
|
+ headerData: [
|
|
|
+ { prop: "type", name: "类型" },
|
|
|
+ { prop: "lasj", name: "立案时间" },
|
|
|
+ { prop: "ajdj", name: "警情等级" },
|
|
|
+ { prop: "afdz", name: "案发地址" },
|
|
|
+ { prop: "cdcl", name: "调动车辆" },
|
|
|
+ { prop: "bcxx", name: "原因" },
|
|
|
+ { prop: "czdx", name: "处置对象" },
|
|
|
+ { prop: "zhongdui", name: "所属中队" },
|
|
|
+ { prop: "ajzt", name: "状况" },
|
|
|
+ ],
|
|
|
+ tableData2: [],
|
|
|
+ headerData2: [
|
|
|
+
|
|
|
+ { prop: "ajbh", name: "案件编号" },
|
|
|
+ { prop: "tzsj", name: "发现时间" },
|
|
|
+ { prop: "ajxz", name: "案发性质" },
|
|
|
+ { prop: "streettown", name: "所属街道" },
|
|
|
+ { prop: "ajzt", name: "案件状态" },
|
|
|
+ ],
|
|
|
+ isVideo:false,
|
|
|
+ playerOptions: {
|
|
|
+ playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
|
|
|
+ autoplay: false, //如果true,浏览器准备好时开始回放。
|
|
|
+ muted: false, // 默认情况下将会消除任何音频。
|
|
|
+ loop: false, // 导致视频一结束就重新开始。
|
|
|
+ preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
|
|
|
+ language: "zh-CN",
|
|
|
+ aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
|
|
|
+ fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
|
|
|
+ sources: [{
|
|
|
+ type: "video/mp4",
|
|
|
+ src: require("../assets/img/test/card.mp4"), //视频url地址
|
|
|
+ }, ],
|
|
|
+ poster: require("../assets/img/test/car.png"), //你的封面地址
|
|
|
+ // width: document.documentElement.clientWidth,
|
|
|
+ notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
|
|
|
+ controlBar: {
|
|
|
+ timeDivider: true,
|
|
|
+ durationDisplay: true,
|
|
|
+ remainingTimeDisplay: false,
|
|
|
+ fullscreenToggle: true, //全屏按钮
|
|
|
+ },
|
|
|
+ },
|
|
|
+ barForm: {
|
|
|
+ fireType: "",
|
|
|
+ address: "",
|
|
|
+ },
|
|
|
+ monthList:[],
|
|
|
+ houseList:[],
|
|
|
+ proptionList:[],
|
|
|
+ proptionMapList:[],
|
|
|
+ timeArea: 1,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ mixins: [linstener,map],
|
|
|
+ components: { barChart, lineSmooth, gauge},
|
|
|
+ created() {
|
|
|
+ this.getData();
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ window.addEventListener(
|
|
|
+ "resize",
|
|
|
+ () =>
|
|
|
+ this.resizeTimeActions([
|
|
|
+ this.$refs.gauge1,
|
|
|
+ this.$refs.gauge2,
|
|
|
+ this.$refs.gauge3,
|
|
|
+ this.$refs.lineSmooth,
|
|
|
+ this.$refs.barChart,
|
|
|
+ ]),
|
|
|
+ true
|
|
|
+ );
|
|
|
+ this.initMap()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ async getData() {
|
|
|
+ let res = await this.$axios.all([
|
|
|
+ this.$axios.get(this.$api.fire.fireType),
|
|
|
+ ]);
|
|
|
+ if (res[0]) this.fireTypeList = res[0].data;
|
|
|
+ this.getPage();
|
|
|
+ this.getPageMap();
|
|
|
+ this.getHouse();
|
|
|
+ // this.getProption();
|
|
|
+ this.getMonth();
|
|
|
+ this.getZhanbi()
|
|
|
+ this.getXiangqingPage()
|
|
|
+ this.getXiangqingOne()
|
|
|
+ },
|
|
|
+ // 实时警情处理
|
|
|
+ async getPage() {
|
|
|
+ let res = await this.$axios.get(this.$api.jqzhcz.page +
|
|
|
+ "?" +
|
|
|
+ this.$qs.stringify({
|
|
|
+ current: 1,
|
|
|
+ size: 150,
|
|
|
+ })
|
|
|
+ );
|
|
|
+ if (res) {
|
|
|
+ this.tableData = res.data.records;
|
|
|
+ this.tableData2 = res.data.records;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 实时警情处理
|
|
|
+ async getPageMap() { //撒点
|
|
|
+ let res = await this.$axios.get(this.$api.jqzhcz.pageMap +
|
|
|
+ "?" +
|
|
|
+ this.$qs.stringify({
|
|
|
+ startTime: '2021-01-01 00:00:00',
|
|
|
+ endTime: '2021-12-05 23:59:59',
|
|
|
+ })
|
|
|
+ );
|
|
|
+ if (res){
|
|
|
+ // window.jMap.Locate.clearLocate()
|
|
|
+ this.proptionMapList = res.data.records.slice(0,30)
|
|
|
+ var arr =[]
|
|
|
+ arr.push(res.data.records.slice(0,30))
|
|
|
+ this.addMarker(arr,"selfManagement")
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async rowClickMap(row){
|
|
|
+ console.log(row)
|
|
|
+ if(this.proptionMapList.every(val=>val.id !== row.id)){
|
|
|
+ this.addMarker([row])
|
|
|
+ window.jMap.goTo({
|
|
|
+ x: Number(row.gisX),
|
|
|
+ y: Number(row.gisY),
|
|
|
+ radius: 1000
|
|
|
+ }, {
|
|
|
+ duration: 3,
|
|
|
+ offset: {
|
|
|
+ heading: -4,
|
|
|
+ pitch: -70,
|
|
|
+ range: 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.addMarkerInfo(row)
|
|
|
+ },
|
|
|
+ // 创建标点和点击事件
|
|
|
+ // addMarker(lnglats,type) {
|
|
|
+ // console.log(lnglats)
|
|
|
+ // var a = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2F53%2F0a%2Fda%2F530adad966630fce548cd408237ff200.jpg"
|
|
|
+ // let target = lnglats.map((val) => {
|
|
|
+ // if (type == 'selfManagement') {
|
|
|
+ // icon = val.waterAdministrative === '单位' ? this.icon1 : val.waterAdministrative === '市政' ? this.icon2 : val.waterAdministrative === '社区' || val.waterAdministrative === '居民' ? this.icon3 : "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2F53%2F0a%2Fda%2F530adad966630fce548cd408237ff200.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640926840&t=3457fc1dea60f60f3cd55e48ca6c287c"
|
|
|
+ // }else{
|
|
|
+ // icon = val.waterAdministrative === '单位' ? a : val.waterAdministrative === '市政' ? a : val.waterAdministrative === '社区' || val.waterAdministrative === '居民' ? a : a
|
|
|
+ // }
|
|
|
+ // console.log(icon)
|
|
|
+ // let marker = {
|
|
|
+ // id: val.id,
|
|
|
+ // attrbutes: val,
|
|
|
+ // position: { x: val.gisX, y: val.gisY, z: 0 },
|
|
|
+ // image: { url: icon,width:29.5,height:48.5 },
|
|
|
+ // };
|
|
|
+ // return marker
|
|
|
+ // })
|
|
|
+ // window.jMap.Locate.pointLocate(target, {
|
|
|
+ // isZoom: false,
|
|
|
+ // scaleByDistance: { minScaling: 0, maxScaling: 1, minDistance: 1000, maxDistance: 30000 },
|
|
|
+ // click: async (val) => {
|
|
|
+ // console.log(val)
|
|
|
+ // let res = await this.$axios.get(this.$api.house.one +
|
|
|
+ // "?" +
|
|
|
+ // this.$qs.stringify({
|
|
|
+ // id: val.attrbutes.id,
|
|
|
+ // })
|
|
|
+ // );
|
|
|
+ // if (res){
|
|
|
+ // this.addMarkerInfo(res.data)
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // },
|
|
|
+ // 标点点击弹窗
|
|
|
+ // addMarkerInfo(res) {
|
|
|
+ // if (this.oldPopupId && res.id === this.oldPopupId) {
|
|
|
+ // window.jMap.Popup.hide();
|
|
|
+ // return this.oldPopup = null
|
|
|
+ // }
|
|
|
+ // window.jMap.Popup.show({
|
|
|
+ // id: res.id,
|
|
|
+ // //使用自定义窗体
|
|
|
+ // position: { x: Number(res.gisX), y: Number(res.gisY), z: Number(0) }, //使用自定义窗体
|
|
|
+ // element: `<div class="ysc-dynamic-layer ys-css3-box" onclick="vue.removePopup">
|
|
|
+ // <div class="tableTooltip mapTab">
|
|
|
+ // <div class="tableTitle">
|
|
|
+ // <div>${res.ajlx}</div>
|
|
|
+ // </div>
|
|
|
+ // <el-row class="tableContent">
|
|
|
+ // <div class="max">案发地址:${res.afdz}</div>
|
|
|
+ // <div class="max2">案件性质:${res.ajxz}</div>
|
|
|
+ // <div class="max2">案件状态:${res.ajzt}</div>
|
|
|
+ // <div class="max">立案时间:${res.lasj}</div>
|
|
|
+ // <div class="max2">警情等级:${res.ajdj}</div>
|
|
|
+ // <div class="max2">所属中队:${res.zhongdui}</div>
|
|
|
+ // <div class="max2">调动车辆:${res.cdcl}</div>
|
|
|
+ // <div class="max2">状况:${res.ajzt}</div>
|
|
|
+ // <div class="max" :title="${res.bcxx}">报警原因:${res.bcxx}</div>
|
|
|
+ // <div class="max2">死亡人数:${res.qrqk}</div>
|
|
|
+ // <div class="max2">受伤人数:${res.qrqk}</div>
|
|
|
+ // <div class="max2">经济损失:${res.qrqk}</div>
|
|
|
+ // </el-row>
|
|
|
+ // </div>
|
|
|
+ // </div>`,
|
|
|
+ // }, { isZoom: false, offset: [-170, -310] });
|
|
|
+ // this.oldPopup = res.id
|
|
|
+ // },
|
|
|
+ // 警情时段分布
|
|
|
+ async getHouse() {
|
|
|
+ // let res = await this.$axios.get(this.$api.house.alertStatisticsByHouse +
|
|
|
+ // "?" +
|
|
|
+ // this.$qs.stringify({
|
|
|
+ // fireType: this.barForm.fireType,
|
|
|
+ // startTime: this.$store.state.timeList[0] || "",
|
|
|
+ // endTime: this.$store.state.timeList[1] || "",
|
|
|
+ // }));
|
|
|
+ // if (res){
|
|
|
+ // this.houseList = res.data
|
|
|
+ // this.$refs.lineSmooth.getData()
|
|
|
+ // }
|
|
|
+ // let res = await this.$axios.get(this.$api.jqzhcz.house +
|
|
|
+ // "?" +
|
|
|
+ // this.$qs.stringify({
|
|
|
+
|
|
|
+ // startTime: this.$store.state.timeList[0] ,
|
|
|
+ // endTime: this.$store.state.timeList[1] ,
|
|
|
+ // }));
|
|
|
+ // console.log(res)
|
|
|
+ this.houseList =[]
|
|
|
+ this.$refs.lineSmooth.getData()
|
|
|
+ // let res2 = await this.$axios.get(this.$api.jqzhcz.month +
|
|
|
+ // "?" +
|
|
|
+ // this.$qs.stringify({
|
|
|
+ // // fireType: this.barForm.fireType,
|
|
|
+ // startTime: "2021-01-01",
|
|
|
+ // endTime: "2021-12-31",
|
|
|
+ // }));
|
|
|
+ // console.log(res2)
|
|
|
+ // if (res){
|
|
|
+ // this.houseList = res.data
|
|
|
+ // this.$refs.lineSmooth.getData()
|
|
|
+ // }
|
|
|
+
|
|
|
+ },
|
|
|
+ // 警情处置情况
|
|
|
+ async getProption() { //旧
|
|
|
+ // let res = await this.$axios.get(this.$api.house.alertStatistics +
|
|
|
+ // "?" +
|
|
|
+ // this.$qs.stringify({
|
|
|
+ // startTime: this.$store.state.timeList[0] || "",
|
|
|
+ // endTime: this.$store.state.timeList[1] || "",
|
|
|
+ // }));
|
|
|
+ // if (res){
|
|
|
+ // console.log(res.data)
|
|
|
+ // this.proptionList = res.data;
|
|
|
+ // this.proptionList[4] = res.data.reduce((data, rel) => {
|
|
|
+ // console.log(data + rel.number)
|
|
|
+ // return data + rel.number;
|
|
|
+ // }, 0);
|
|
|
+ // console.log(this.proptionList[4]);
|
|
|
+ // this.$refs.gauge1.getData();
|
|
|
+ // this.$refs.gauge2.getData();
|
|
|
+ // this.$refs.gauge3.getData();
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ // 历史警情趋势图
|
|
|
+ async getMonth() {
|
|
|
+ // let res = await this.$axios.get(
|
|
|
+ // this.$api.house.alertStatisticsByMonth +
|
|
|
+ // "?" +
|
|
|
+ // this.$qs.stringify({
|
|
|
+ // startTime: (new Date().getFullYear() - this.timeArea) + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() + ' 00:00:00',
|
|
|
+ // endTime: new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() + ' 00:00:00',
|
|
|
+ // })
|
|
|
+ // );
|
|
|
+ // if (res) {
|
|
|
+ // this.monthList = res.data;
|
|
|
+ // this.$refs.barChart.getData();
|
|
|
+ // }
|
|
|
+
|
|
|
+ let res = await this.$axios.get(
|
|
|
+ this.$api.jqzhcz.month +
|
|
|
+ "?" +
|
|
|
+ this.$qs.stringify({
|
|
|
+ startTime: (new Date().getFullYear() - this.timeArea) + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() + ' 00:00:00',
|
|
|
+ endTime: new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() + ' 00:00:00',
|
|
|
+ })
|
|
|
+ );
|
|
|
+ console.log(res)
|
|
|
+ if (res) {
|
|
|
+ this.monthList = res.data;
|
|
|
+ this.$refs.barChart.getData();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ searchTime(val){
|
|
|
+ this.timeArea = val
|
|
|
+ this.getMonth()
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ // 警情占比
|
|
|
+ async getZhanbi() {
|
|
|
+ let res = await this.$axios.get(this.$api.jqzhcz.alertStatistics +
|
|
|
+ "?" +
|
|
|
+ this.$qs.stringify({
|
|
|
+ // fireType: this.barForm.fireType,
|
|
|
+ startTime: "2021-01-01",
|
|
|
+ endTime: "2021-12-31",
|
|
|
+ }));
|
|
|
+ console.log(res)
|
|
|
+ this.proptionList = res.data
|
|
|
+ },
|
|
|
+ // 警情详情
|
|
|
+ async getXiangqingPage() {
|
|
|
+ let res = await this.$axios.get(this.$api.jqzhcz.page +
|
|
|
+ "?" +
|
|
|
+ this.$qs.stringify({
|
|
|
+ // fireType: this.barForm.fireType,
|
|
|
+ current: 1,
|
|
|
+ size: 10,
|
|
|
+ }));
|
|
|
+ console.log(res)
|
|
|
+ // {
|
|
|
+ // "status": "SUCCESS",
|
|
|
+ // "code": "0",
|
|
|
+ // "msg": null,
|
|
|
+ // "data": {
|
|
|
+ // "records": [
|
|
|
+ // {
|
|
|
+ // "gisX": 121.38267900,
|
|
|
+ // "gisY": 31.14120400,
|
|
|
+ // "sjc": "2015-10-29 10:57:44",
|
|
|
+ // "id": "00021f6556c34d44a75ea287f40bed42",
|
|
|
+ // "zgzd": "闵行",
|
|
|
+ // "ajsjd": "10:00-11:00",
|
|
|
+ // "tzdcsj": null,
|
|
|
+ // "tzcssj": null,
|
|
|
+ // "tzkzsj": null,
|
|
|
+ // "tzxmsj": null,
|
|
|
+ // "tzfdsj": "0:7:6",
|
|
|
+ // "qy": "中外环间",
|
|
|
+ // "ajlx": "火灾",
|
|
|
+ // "afdz": "闵行区 顾戴路1126弄9号207室",
|
|
|
+ // "lasj": "2015-10-29 10:57:43",
|
|
|
+ // "larq": "2015-10-29",
|
|
|
+ // "czdx": "一般居民",
|
|
|
+ // "ajlxdm": "1",
|
|
|
+ // "ajdj": "一级",
|
|
|
+ // "zhongdui": "七宝",
|
|
|
+ // "qx": "闵行区",
|
|
|
+ // "ajbh": "201510291056595218104104",
|
|
|
+ // "ajzt": "归档",
|
|
|
+ // "ajxz": "实警",
|
|
|
+ // "tzsj": "2015-10-29 10:57:53",
|
|
|
+ // "dcsj": null,
|
|
|
+ // "cssj": null,
|
|
|
+ // "kzsj": null,
|
|
|
+ // "xmsj": null,
|
|
|
+ // "fdsj": "2015-10-29 11:04:59",
|
|
|
+ // "bcxx": "房间床上着火,房间内无人",
|
|
|
+ // "cdcl": 3,
|
|
|
+ // "ajqy": null,
|
|
|
+ // "bdpAudit": null,
|
|
|
+ // "zgjgbh": null,
|
|
|
+ // "streettown": "莘庄镇",
|
|
|
+ // "created": null,
|
|
|
+ // "updated": "2021-11-02 15:14:26",
|
|
|
+ // "yxx": false,
|
|
|
+ // "qrqk": 1,
|
|
|
+ // "fairIs": 2,
|
|
|
+ // "callPolice": null,
|
|
|
+ // "policePhone": null,
|
|
|
+ // "propertyLoss": null,
|
|
|
+ // "deathToll": null,
|
|
|
+ // "nonFatal": null,
|
|
|
+ // "carList": null
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // "gisX": 121.40478000,
|
|
|
+ // "gisY": 31.13490600,
|
|
|
+ // "sjc": "2021-07-27 20:24:07",
|
|
|
+ // "id": "00043690ffe64c8d87957771d16594e9",
|
|
|
+ // "zgzd": "徐汇",
|
|
|
+ // "ajsjd": "04:00-05:00",
|
|
|
+ // "tzdcsj": "0:7:49",
|
|
|
+ // "tzcssj": null,
|
|
|
+ // "tzkzsj": null,
|
|
|
+ // "tzxmsj": null,
|
|
|
+ // "tzfdsj": "0:29:35",
|
|
|
+ // "qy": "内中环间",
|
|
|
+ // "ajlx": "抢险救援",
|
|
|
+ // "afdz": "闵行区 梅陇二村6号604室(防汛)",
|
|
|
+ // "lasj": "2021-07-26 04:50:47",
|
|
|
+ // "larq": "2021-07-26",
|
|
|
+ // "czdx": "高空排险",
|
|
|
+ // "ajlxdm": "2",
|
|
|
+ // "ajdj": "零级",
|
|
|
+ // "zhongdui": "梅陇",
|
|
|
+ // "qx": "闵行区",
|
|
|
+ // "ajbh": "202107260447261682268891",
|
|
|
+ // "ajzt": "待审",
|
|
|
+ // "ajxz": "实警",
|
|
|
+ // "tzsj": "2021-07-26 04:50:51",
|
|
|
+ // "dcsj": "2021-07-26 04:58:40",
|
|
|
+ // "cssj": null,
|
|
|
+ // "kzsj": null,
|
|
|
+ // "xmsj": null,
|
|
|
+ // "fdsj": "2021-07-26 05:20:26",
|
|
|
+ // "bcxx": "雨棚快要掉落,请民警到场处理。坠物。高空取物。\n",
|
|
|
+ // "cdcl": 1,
|
|
|
+ // "ajqy": null,
|
|
|
+ // "bdpAudit": null,
|
|
|
+ // "zgjgbh": null,
|
|
|
+ // "streettown": null,
|
|
|
+ // "created": "2021-07-26 04:52:12",
|
|
|
+ // "updated": "2021-11-02 15:14:26",
|
|
|
+ // "yxx": false,
|
|
|
+ // "qrqk": 0,
|
|
|
+ // "fairIs": 2,
|
|
|
+ // "callPolice": null,
|
|
|
+ // "policePhone": null,
|
|
|
+ // "propertyLoss": null,
|
|
|
+ // "deathToll": null,
|
|
|
+ // "nonFatal": null,
|
|
|
+ // "carList": null
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // "gisX": 121.34898300,
|
|
|
+ // "gisY": 31.18285500,
|
|
|
+ // "sjc": "2015-09-27 13:14:52",
|
|
|
+ // "id": "00045528b7c2454795ef5d6de8812a03",
|
|
|
+ // "zgzd": "闵行",
|
|
|
+ // "ajsjd": "13:00-14:00",
|
|
|
+ // "tzdcsj": "0:9:31",
|
|
|
+ // "tzcssj": null,
|
|
|
+ // "tzkzsj": null,
|
|
|
+ // "tzxmsj": "0:10:5",
|
|
|
+ // "tzfdsj": "0:15:36",
|
|
|
+ // "qy": "外环以外",
|
|
|
+ // "ajlx": "火灾",
|
|
|
+ // "afdz": "闵行区 航东路750弄13号门口",
|
|
|
+ // "lasj": "2015-09-27 13:14:52",
|
|
|
+ // "larq": "0000-00-00",
|
|
|
+ // "czdx": "室外电力设施",
|
|
|
+ // "ajlxdm": "1",
|
|
|
+ // "ajdj": "一级",
|
|
|
+ // "zhongdui": "新虹",
|
|
|
+ // "qx": "闵行区",
|
|
|
+ // "ajbh": "2015092713134186813030",
|
|
|
+ // "ajzt": "归档",
|
|
|
+ // "ajxz": "实警",
|
|
|
+ // "tzsj": "2015-09-27 13:14:58",
|
|
|
+ // "dcsj": "2015-09-27 13:24:29",
|
|
|
+ // "cssj": null,
|
|
|
+ // "kzsj": null,
|
|
|
+ // "xmsj": "2015-09-27 13:25:03",
|
|
|
+ // "fdsj": "2015-09-27 13:30:34",
|
|
|
+ // "bcxx": "上址着火,请民警到场处理。(已处电力公司)",
|
|
|
+ // "cdcl": 1,
|
|
|
+ // "ajqy": null,
|
|
|
+ // "bdpAudit": null,
|
|
|
+ // "zgjgbh": null,
|
|
|
+ // "streettown": "新虹街道",
|
|
|
+ // "created": "2021-03-24 14:35:04",
|
|
|
+ // "updated": "2021-11-02 15:14:26",
|
|
|
+ // "yxx": false,
|
|
|
+ // "qrqk": 1,
|
|
|
+ // "fairIs": 2,
|
|
|
+ // "callPolice": null,
|
|
|
+ // "policePhone": null,
|
|
|
+ // "propertyLoss": null,
|
|
|
+ // "deathToll": null,
|
|
|
+ // "nonFatal": null,
|
|
|
+ // "carList": null
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // "gisX": 121.40045166,
|
|
|
+ // "gisY": 31.10819244,
|
|
|
+ // "sjc": "2020-04-29 09:30:06",
|
|
|
+ // "id": "0004c48e2c5c4b8180f9bbf700c1114b",
|
|
|
+ // "zgzd": "闵行",
|
|
|
+ // "ajsjd": "13:00-14:00",
|
|
|
+ // "tzdcsj": "0:19:51",
|
|
|
+ // "tzcssj": null,
|
|
|
+ // "tzkzsj": null,
|
|
|
+ // "tzxmsj": null,
|
|
|
+ // "tzfdsj": "0:20:39",
|
|
|
+ // "qy": "外环以外",
|
|
|
+ // "ajlx": "抢险救援",
|
|
|
+ // "afdz": "闵行区 莘南花苑二村100号601室",
|
|
|
+ // "lasj": "2020-02-04 13:11:51",
|
|
|
+ // "larq": "0000-00-00",
|
|
|
+ // "czdx": "人员被困",
|
|
|
+ // "ajlxdm": "2",
|
|
|
+ // "ajdj": "一级",
|
|
|
+ // "zhongdui": "莘庄",
|
|
|
+ // "qx": "闵行区",
|
|
|
+ // "ajbh": "202002041309076733036985",
|
|
|
+ // "ajzt": "待审",
|
|
|
+ // "ajxz": "实警",
|
|
|
+ // "tzsj": "2020-02-04 13:11:51",
|
|
|
+ // "dcsj": "2020-02-04 13:31:42",
|
|
|
+ // "cssj": null,
|
|
|
+ // "kzsj": null,
|
|
|
+ // "xmsj": null,
|
|
|
+ // "fdsj": "2020-02-04 13:32:30",
|
|
|
+ // "bcxx": "报警人称内屋的门打不开,一九岁的孩子被困在内,无不适。\u0003",
|
|
|
+ // "cdcl": 1,
|
|
|
+ // "ajqy": null,
|
|
|
+ // "bdpAudit": null,
|
|
|
+ // "zgjgbh": null,
|
|
|
+ // "streettown": null,
|
|
|
+ // "created": "2021-03-24 14:35:04",
|
|
|
+ // "updated": "2021-11-02 15:14:26",
|
|
|
+ // "yxx": false,
|
|
|
+ // "qrqk": 0,
|
|
|
+ // "fairIs": 2,
|
|
|
+ // "callPolice": null,
|
|
|
+ // "policePhone": null,
|
|
|
+ // "propertyLoss": null,
|
|
|
+ // "deathToll": null,
|
|
|
+ // "nonFatal": null,
|
|
|
+ // "carList": null
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // "gisX": 121.42002100,
|
|
|
+ // "gisY": 31.04428800,
|
|
|
+ // "sjc": "2020-01-19 08:57:06",
|
|
|
+ // "id": "000651ba959f4fd6a55725c2d3579955",
|
|
|
+ // "zgzd": "闵行",
|
|
|
+ // "ajsjd": "14:00-15:00",
|
|
|
+ // "tzdcsj": "0:17:0",
|
|
|
+ // "tzcssj": null,
|
|
|
+ // "tzkzsj": null,
|
|
|
+ // "tzxmsj": "0:17:25",
|
|
|
+ // "tzfdsj": "0:19:34",
|
|
|
+ // "qy": "外环以外",
|
|
|
+ // "ajlx": "火灾",
|
|
|
+ // "afdz": "闵行区 S32 往外地方向 过S4 50米(误报)",
|
|
|
+ // "lasj": "2019-12-02 14:23:13",
|
|
|
+ // "larq": "0000-00-00",
|
|
|
+ // "czdx": "机动车",
|
|
|
+ // "ajlxdm": "1",
|
|
|
+ // "ajdj": "一级",
|
|
|
+ // "zhongdui": "闵行",
|
|
|
+ // "qx": "闵行区",
|
|
|
+ // "ajbh": "2019120214205201402828",
|
|
|
+ // "ajzt": "归档",
|
|
|
+ // "ajxz": "虚警",
|
|
|
+ // "tzsj": "2019-12-02 14:23:38",
|
|
|
+ // "dcsj": "2019-12-02 14:40:38",
|
|
|
+ // "cssj": null,
|
|
|
+ // "kzsj": null,
|
|
|
+ // "xmsj": "2019-12-02 14:41:03",
|
|
|
+ // "fdsj": "2019-12-02 14:43:12",
|
|
|
+ // "bcxx": "面包车引擎盖线路着火,冒烟,请民警到场处理。消防共听",
|
|
|
+ // "cdcl": 3,
|
|
|
+ // "ajqy": null,
|
|
|
+ // "bdpAudit": null,
|
|
|
+ // "zgjgbh": null,
|
|
|
+ // "streettown": "莘庄镇",
|
|
|
+ // "created": "2021-03-24 14:35:04",
|
|
|
+ // "updated": "2021-11-02 15:14:26",
|
|
|
+ // "yxx": false,
|
|
|
+ // "qrqk": 1,
|
|
|
+ // "fairIs": 2,
|
|
|
+ // "callPolice": null,
|
|
|
+ // "policePhone": null,
|
|
|
+ // "propertyLoss": null,
|
|
|
+ // "deathToll": null,
|
|
|
+ // "nonFatal": null,
|
|
|
+ // "carList": null
|
|
|
+ // }
|
|
|
+ // ],
|
|
|
+ // "total": 33766,
|
|
|
+ // "size": 5,
|
|
|
+ // "current": 1
|
|
|
+ // },
|
|
|
+ // "exception": null
|
|
|
+ // }
|
|
|
+
|
|
|
+ },
|
|
|
+ async getXiangqingOne() {
|
|
|
+ let res = await this.$axios.get(this.$api.jqzhcz.one +
|
|
|
+ "?" +
|
|
|
+ this.$qs.stringify({
|
|
|
+ id: "00021f6556c34d44a75ea287f40bed42",
|
|
|
+ }));
|
|
|
+ console.log(res)
|
|
|
+ // {
|
|
|
+ // "status": "SUCCESS",
|
|
|
+ // "code": "0",
|
|
|
+ // "msg": null,
|
|
|
+ // "data": {
|
|
|
+ // "gisX": 121.382679,
|
|
|
+ // "gisY": 31.141204,
|
|
|
+ // "sjc": "2015-10-29 10:57:44",
|
|
|
+ // "id": "00021f6556c34d44a75ea287f40bed42",
|
|
|
+ // "zgzd": "闵行",
|
|
|
+ // "ajsjd": "10:00-11:00",
|
|
|
+ // "tzdcsj": null,
|
|
|
+ // "tzcssj": null,
|
|
|
+ // "tzkzsj": null,
|
|
|
+ // "tzxmsj": null,
|
|
|
+ // "tzfdsj": "0:7:6",
|
|
|
+ // "qy": "中外环间",
|
|
|
+ // "ajlx": "火灾",
|
|
|
+ // "afdz": "闵行区 顾戴路1126弄9号207室",
|
|
|
+ // "lasj": "2015-10-29 10:57:43",
|
|
|
+ // "larq": "2015-10-29",
|
|
|
+ // "czdx": "一般居民",
|
|
|
+ // "ajlxdm": "1",
|
|
|
+ // "ajdj": "一级",
|
|
|
+ // "zhongdui": "七宝",
|
|
|
+ // "qx": "闵行区",
|
|
|
+ // "ajbh": "201510291056595218104104",
|
|
|
+ // "ajzt": "归档",
|
|
|
+ // "ajxz": "实警",
|
|
|
+ // "tzsj": "2015-10-29 10:57:53",
|
|
|
+ // "dcsj": null,
|
|
|
+ // "cssj": null,
|
|
|
+ // "kzsj": null,
|
|
|
+ // "xmsj": null,
|
|
|
+ // "fdsj": "2015-10-29 11:04:59",
|
|
|
+ // "bcxx": "房间床上着火,房间内无人",
|
|
|
+ // "cdcl": 3,
|
|
|
+ // "ajqy": null,
|
|
|
+ // "bdpAudit": null,
|
|
|
+ // "zgjgbh": null,
|
|
|
+ // "streettown": "莘庄镇",
|
|
|
+ // "created": null,
|
|
|
+ // "updated": "2021-11-02 15:14:26",
|
|
|
+ // "yxx": false,
|
|
|
+ // "qrqk": 1,
|
|
|
+ // "fairIs": 2,
|
|
|
+ // "callPolice": null,
|
|
|
+ // "policePhone": null,
|
|
|
+ // "propertyLoss": null,
|
|
|
+ // "deathToll": null,
|
|
|
+ // "nonFatal": null,
|
|
|
+ // "carList": []
|
|
|
+ // },
|
|
|
+ // "exception": null
|
|
|
+ // }
|
|
|
+
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.videoBox{
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+}
|
|
|
+.contentBox {
|
|
|
+ display: flex;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding-bottom: 0.125rem;
|
|
|
+ color: #fff;
|
|
|
+ // font-family: "DS", "DS-B", "DS-BB", "DS-BS";
|
|
|
+ & > .el-col {
|
|
|
+ flex: 1;
|
|
|
+ max-width: 8rem;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ .leftBox {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex-direction: column;
|
|
|
+ box-sizing: border-box;
|
|
|
+ & > .el-col {
|
|
|
+ flex: 1;
|
|
|
+ max-height: 50%;
|
|
|
+ background: url('~@a/img/enforce/bg1.png') no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ position: relative;
|
|
|
+ h4 {
|
|
|
+ font-size: 0.2125rem;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ margin: 0 auto;
|
|
|
+ text-align: center;
|
|
|
+ color: #00ffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .leftTop {
|
|
|
+ padding: 0.375rem 0.475rem 0.1875rem;
|
|
|
+ margin-bottom: 0.125rem;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ .leftTopContent {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: block;
|
|
|
+ .selectBar {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ height: 0.875rem;
|
|
|
+ padding: 0.25rem 0;
|
|
|
+ }
|
|
|
+ .fireBar {
|
|
|
+ height: calc(100% - 0.875rem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .leftBot {
|
|
|
+ padding: 0.375rem 0.45rem 0.1875rem;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .leftBotContent {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: block;
|
|
|
+ .selectBar {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-start;
|
|
|
+ height: 0.875rem;
|
|
|
+ padding: 0.25rem 0;
|
|
|
+ .el-row{
|
|
|
+ display: flex;
|
|
|
+ .el-button {
|
|
|
+ // width: 0.375rem;
|
|
|
+ height: 0.325rem;
|
|
|
+ min-height: auto;
|
|
|
+ padding: 0 .0625rem;
|
|
|
+ margin-right: 0.075rem;
|
|
|
+ margin-left: 0;
|
|
|
+ background: #000707;
|
|
|
+ color: #fff;
|
|
|
+ border: 1px solid;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-radius: .0375rem;
|
|
|
+ font-size: 0.15rem;
|
|
|
+ border-image: linear-gradient(0deg, #0461c2 0%, #0ecdf1 100%) 1 1;
|
|
|
+ }
|
|
|
+ .btnClick {
|
|
|
+ color: #fccf2a;
|
|
|
+ border-image: linear-gradient(0deg, #ff6800 0%, #fccf2a 100%) 1 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .fireBar {
|
|
|
+ height: calc(100% - 0.875rem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .rightBox {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex-direction: column;
|
|
|
+ box-sizing: border-box;
|
|
|
+ & > .el-col {
|
|
|
+ flex: 1;
|
|
|
+ background: url(~@a/img/enforce/bg1.png) no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ position: relative;
|
|
|
+ h4 {
|
|
|
+ font-size: 0.2125rem;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ margin: 0 auto;
|
|
|
+ text-align: center;
|
|
|
+ color: #00ffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .rightTop {
|
|
|
+ padding: 0.1rem 0.475rem 0.1875rem;
|
|
|
+ margin-bottom: 0.125rem;
|
|
|
+ max-height:30%;
|
|
|
+ .rightBoxCon {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ & > .el-row {
|
|
|
+ flex: none;
|
|
|
+ width: 33.33%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ }
|
|
|
+ .rightTopTitle {
|
|
|
+ span {
|
|
|
+ font-size: 0.2125rem;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ .rightTopNumber {
|
|
|
+ width:80%;
|
|
|
+ margin: 0 10%;
|
|
|
+ justify-content: center;
|
|
|
+ &>span {
|
|
|
+ margin: 0 auto;
|
|
|
+ padding: 0.1rem 0.2rem;
|
|
|
+ font-size: 0.14rem;
|
|
|
+ border-radius: 0.1875rem;
|
|
|
+ display: flex;
|
|
|
+ box-shadow: inset 0 0 0.2rem 0.0125rem #30cfff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .rightTopChart {
|
|
|
+ margin: 0.1rem 0 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .rightBot {
|
|
|
+ flex: 1;
|
|
|
+ max-height: 35%;
|
|
|
+ padding: 0.5rem 0.35rem 0.25rem;
|
|
|
+ box-sizing: border-box;
|
|
|
+ position: relative;
|
|
|
+ /deep/ .cell {
|
|
|
+
|
|
|
+ text-align: center !important;
|
|
|
+ }
|
|
|
+ /deep/ td{
|
|
|
+ min-width: auto !important;
|
|
|
+ width: auto !important;
|
|
|
+ text-align: left !important;
|
|
|
+ padding:0;
|
|
|
+ }
|
|
|
+ /deep/ .box-card{
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ margin: auto;
|
|
|
+ border-radius: 3%;
|
|
|
+ width: 80%;
|
|
|
+ max-height: 100%;
|
|
|
+ box-shadow: inset 0 0 0.2rem 0.0125rem #30cfff;
|
|
|
+ background: rgba(0, 44, 110, 0.6);
|
|
|
+ border: none;
|
|
|
+ color: #FFF;
|
|
|
+ .el-card__header{
|
|
|
+ padding: .125rem;
|
|
|
+ border-color: #30cfff;
|
|
|
+ .card-header{
|
|
|
+ display: flex;
|
|
|
+ font-size: .2rem;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ i{
|
|
|
+ font-size: .275rem;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ img{
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .rightBot2 {
|
|
|
+ flex: 1;
|
|
|
+ max-height: 34%;
|
|
|
+ margin-top:1%;
|
|
|
+ padding: 0.5rem 0.35rem 0.25rem;
|
|
|
+ box-sizing: border-box;
|
|
|
+ position: relative;
|
|
|
+ .shui{
|
|
|
+ box-shadow: inset 0 0 0.2rem 0.0125rem #30cfff;
|
|
|
+ background: rgba(0, 44, 110, 0.5);
|
|
|
+
|
|
|
+ margin:-10px 0px 10px 0;
|
|
|
+ font-size: 14px;
|
|
|
+ padding:6px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 14px;
|
|
|
+ text-align: left;
|
|
|
+ width:100%;
|
|
|
+ .title{
|
|
|
+ width:34%;
|
|
|
+ }
|
|
|
+ .title1{
|
|
|
+ width:22%;
|
|
|
+
|
|
|
+ }
|
|
|
+ .title2{
|
|
|
+ width:22%;
|
|
|
+ color:red
|
|
|
+ }
|
|
|
+ .title3{
|
|
|
+ width:22%;
|
|
|
+ color:#00ffff
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /deep/ .cell {
|
|
|
+ text-align: center !important;
|
|
|
+ }
|
|
|
+ /deep/ td{
|
|
|
+ min-width: auto !important;
|
|
|
+ width: auto !important;
|
|
|
+ text-align: left !important;
|
|
|
+ padding:0;
|
|
|
+ }
|
|
|
+ /deep/ .el-table__body-wrapper{
|
|
|
+ height: 65% !important;;
|
|
|
+ }
|
|
|
+ /deep/ .box-card{
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ margin: auto;
|
|
|
+ border-radius: 3%;
|
|
|
+ width: 80%;
|
|
|
+ max-height: 100%;
|
|
|
+ box-shadow: inset 0 0 0.2rem 0.0125rem #30cfff;
|
|
|
+ background: rgba(0, 44, 110, 0.6);
|
|
|
+ border: none;
|
|
|
+ color: #FFF;
|
|
|
+ .el-card__header{
|
|
|
+ padding: .125rem;
|
|
|
+ border-color: #30cfff;
|
|
|
+ .card-header{
|
|
|
+ display: flex;
|
|
|
+ font-size: .2rem;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ i{
|
|
|
+ font-size: .275rem;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ img{
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+.tableTooltip{
|
|
|
+ width:400px;
|
|
|
+}
|
|
|
+.liucheng{
|
|
|
+ width:100%;
|
|
|
+ position: relative;
|
|
|
+ padding:20px;
|
|
|
+ img{
|
|
|
+ width:100%;
|
|
|
+ }
|
|
|
+ .jz{
|
|
|
+ font-size:14px;
|
|
|
+ color:#fff;
|
|
|
+ list-style: 50%;
|
|
|
+ text-align: center;
|
|
|
+ position: absolute;
|
|
|
+ top:35%;
|
|
|
+ width:23%;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+.tipdan{
|
|
|
+ background: url("~@a/img/qyzz/baogao.png") no-repeat ;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ margin:10px 10px 0 0;
|
|
|
+ font-size: 14px;
|
|
|
+ padding:4px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.mapTips{
|
|
|
+ border:1px solid #00ffff;
|
|
|
+ border-radius: 4px;
|
|
|
+ margin:0 8px 10px 0;
|
|
|
+ box-shadow:0px 0px 10px #00ffff;
|
|
|
+ .el-checkbox{
|
|
|
+ color:#fff;
|
|
|
+ }
|
|
|
+}
|
|
|
+/deep/ .el-checkbox__inner{
|
|
|
+ background-color:transparent;
|
|
|
+}
|
|
|
+// /deep/ .el-checkbox__inner{
|
|
|
+// background-color:transparent;
|
|
|
+// border-color: #00ffff;
|
|
|
+// }
|
|
|
+// /deep/ .el-checkbox__input.is-checked{
|
|
|
+// background-color:transparent;
|
|
|
+// border-color: #00ffff;
|
|
|
+// }
|
|
|
+
|
|
|
+@media screen and (min-width: 1940px) {
|
|
|
+ .contentBox .rightBox .rightTop .rightBoxCon .rightTopChart{
|
|
|
+ height:150px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style>
|
|
|
+.el-checkbox{
|
|
|
+ padding-bottom:6px;
|
|
|
+ display: block;
|
|
|
+ border-bottom:1px solid #00ffff;
|
|
|
+ padding:2px 0 2px 8px;
|
|
|
+ width:100%;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+.el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate
|
|
|
+ .el-checkbox__inner{
|
|
|
+ background-color:transparent;
|
|
|
+ border-color:#00ffff;
|
|
|
+ border-bottom:1px solid #00ffff;
|
|
|
+
|
|
|
+ }
|
|
|
+ .el-checkbox__input.is-checked + .el-checkbox__label {
|
|
|
+ color: #00ffff;
|
|
|
+ background-color:transparent;
|
|
|
+ }
|
|
|
+ .el-checkbox.is-bordered.is-checked{
|
|
|
+ border-color: #00ffff;
|
|
|
+ background-color:transparent;
|
|
|
+ }
|
|
|
+ .el-checkbox__input.is-focus .el-checkbox__inner{
|
|
|
+ border-color: #00ffff;
|
|
|
+ background-color:transparent;
|
|
|
+ }
|
|
|
+</style>
|