| | |
| | | |
| | | <template> |
| | | <div class="container"> |
| | | <left-container class="left-container" @showpeopledetail="showpeopledetail" @showlanddetail="showlanddetail" |
| | | @showkeypersondetail="showkeypersondetail" ref="leftContainer"></left-container> |
| | | <left-container |
| | | class="left-container" |
| | | @showpeopledetail="showpeopledetail" |
| | | @showlanddetail="showlanddetail" |
| | | @showkeypersondetail="showkeypersondetail" |
| | | ref="leftContainer" |
| | | ></left-container> |
| | | |
| | | <right-container class="right-container" @showequimentdetail="showequimentdetail" |
| | | @selectPoliceChangeEventData="selectPoliceChangeEventData" @changeActivityType="changeActivityType" |
| | | @activityChange="activityChange" ref="rightContainer"></right-container> |
| | | <right-container |
| | | class="right-container" |
| | | @showequimentdetail="showequimentdetail" |
| | | @selectPoliceChangeEventData="selectPoliceChangeEventData" |
| | | @changeActivityType="changeActivityType" |
| | | @activityChange="activityChange" |
| | | ref="rightContainer" |
| | | ></right-container> |
| | | |
| | | <bottom-container class="bottom-container" ref="bottomContainer" |
| | | <bottom-container |
| | | class="bottom-container" |
| | | ref="bottomContainer" |
| | | @changePoliceSituationHistoryType="changePoliceSituationHistoryType" |
| | | @changePoliceSituationTimeType="changePoliceSituationTimeType" |
| | | @policeSituationChange="policeSituationChange" @policeSituationSiteClick="policeSituationSiteClick"> |
| | | </bottom-container> |
| | | @policeSituationChange="policeSituationChange" |
| | | @policeSituationSiteClick="policeSituationSiteClick" |
| | | ></bottom-container> |
| | | |
| | | <div class="center-container"> |
| | | <div class="layers-control-btn house"> |
| | |
| | | </div> |
| | | |
| | | <div ref="RegionSelect" style="left: 0;" class="region-select"> |
| | | <map-select class="map-select" @selectCheck="policeStationSelect" :checkValue="policeStationCheckValue" |
| | | :options="policeStationOptions" :optionsName="'policeStationName'"></map-select> |
| | | <map-select |
| | | class="map-select" |
| | | @selectCheck="policeStationSelect" |
| | | :checkValue="policeStationCheckValue" |
| | | :options="policeStationOptions" |
| | | :optionsName="'policeStationName'" |
| | | ></map-select> |
| | | |
| | | <map-select class="map-select" @selectCheck="areaSelect" :checkValue="areaCheckValue" :options="areaOptions" |
| | | :optionsName="'areaCheckName'"></map-select> |
| | | <map-select |
| | | class="map-select" |
| | | @selectCheck="areaSelect" |
| | | :checkValue="areaCheckValue" |
| | | :options="areaOptions" |
| | | :optionsName="'areaCheckName'" |
| | | ></map-select> |
| | | |
| | | <map-select class="map-select" @selectCheck="housingSelect" :checkValue="housingCheckValue" |
| | | :options="housingOptions" :optionsName="'housingsName'"></map-select> |
| | | <map-select |
| | | class="map-select" |
| | | @selectCheck="housingSelect" |
| | | :checkValue="housingCheckValue" |
| | | :options="housingOptions" |
| | | :optionsName="'housingsName'" |
| | | ></map-select> |
| | | </div> |
| | | |
| | | <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose" |
| | | :close-on-click-modal="true"> |
| | | <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement" |
| | | style="object-fit: fill"></video> |
| | | <el-dialog |
| | | :title="dialogTitle" |
| | | :modal="true" |
| | | :visible.sync="dialogVisible" |
| | | :before-close="dialogBeforeClose" |
| | | :close-on-click-modal="true" |
| | | > |
| | | <video |
| | | src="/video/sp.mp4" |
| | | autoplay |
| | | controls |
| | | width="100%" |
| | | height="100%" |
| | | ref="videoElement" |
| | | style="object-fit: fill" |
| | | ></video> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="panoramaTitle" :modal="true" :visible.sync="panoramaVisible" |
| | | :before-close="panoramaBeforeClose" :close-on-click-modal="true" class="panorama-details-box"> |
| | | <!-- <iframe src="http://vr.jxpskj.com/JXSFKZQJ/QJ/" style="width: 100%; height: 100%;" frameborder="0"></iframe>--> |
| | | <iframe :src="panoramaVrUrl" style="width: 100%; height: 100%;" frameborder="0"/> |
| | | <el-dialog |
| | | :title="panoramaTitle" |
| | | :modal="true" |
| | | :visible.sync="panoramaVisible" |
| | | :before-close="panoramaBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="panorama-details-box" |
| | | > |
| | | <!-- <iframe src="http://vr.jxpskj.com/JXSFKZQJ/QJ/" style="width: 100%; height: 100%;" frameborder="0"></iframe>--> |
| | | <iframe :src="panoramaVrUrl" style="width: 100%; height: 100%;" frameborder="0" /> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="activityTitle" :modal="true" :visible.sync="activityVisible" |
| | | :before-close="activityBeforeClose" :close-on-click-modal="true" class="activity-details-box"> |
| | | <el-dialog |
| | | :title="activityTitle" |
| | | :modal="true" |
| | | :visible.sync="activityVisible" |
| | | :before-close="activityBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="activity-details-box" |
| | | > |
| | | <div class="item"> |
| | | <div>活动名称:</div> |
| | | <div>{{ activityDetailArr.activityName }}</div> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="phoneTitle" :modal="true" :visible.sync="phoneVisible" :before-close="phoneBeforeClose" |
| | | :close-on-click-modal="true" class="phone-details-box"> |
| | | <el-dialog |
| | | :title="phoneTitle" |
| | | :modal="true" |
| | | :visible.sync="phoneVisible" |
| | | :before-close="phoneBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="phone-details-box" |
| | | > |
| | | <div class="item"> |
| | | <div>责任人:</div> |
| | | <div>{{ phoneDetails.person }}</div> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="peopleTitle" :modal="true" :visible.sync="peopleVisible" :before-close="peopleBeforeClose" |
| | | :close-on-click-modal="true" class="area-details-box"> |
| | | <el-dialog |
| | | :title="peopleTitle" |
| | | :modal="true" |
| | | :visible.sync="peopleVisible" |
| | | :before-close="peopleBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="area-details-box" |
| | | > |
| | | <div class="item"> |
| | | <div>责任区负责人:</div> |
| | | <div>王某某</div> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="equimentTitle" :modal="true" :visible.sync="equimentVisible" |
| | | :before-close="equimentBeforeClose" :close-on-click-modal="true" class="equiment-details-box"> |
| | | <el-dialog |
| | | :title="equimentTitle" |
| | | :modal="true" |
| | | :visible.sync="equimentVisible" |
| | | :before-close="equimentBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="equiment-details-box" |
| | | > |
| | | <div class="equiment-detail"> |
| | | <div class="left"> |
| | | <el-tree :data="jurisdictionData" :props="defaultProps" @node-click="jurisdictionNodeClick" |
| | | ref="tree" node-key="id"></el-tree> |
| | | <el-tree |
| | | :data="jurisdictionData" |
| | | :props="defaultProps" |
| | | @node-click="jurisdictionNodeClick" |
| | | ref="tree" |
| | | node-key="id" |
| | | ></el-tree> |
| | | </div> |
| | | <div class="right"> |
| | | <div class="monitor" v-if="monitorContent"> |
| | | <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement" |
| | | style="object-fit: fill"></video> |
| | | <video |
| | | src="/video/sp.mp4" |
| | | autoplay |
| | | controls |
| | | width="100%" |
| | | height="100%" |
| | | ref="videoElement" |
| | | style="object-fit: fill" |
| | | ></video> |
| | | </div> |
| | | <div class="others" v-if="othersContent"> |
| | | <el-table :data="showArr.slice((currentPage - 1) * pagesize, currentPage * pagesize)" |
| | | <el-table |
| | | :data="showArr.slice((currentPage - 1) * pagesize, currentPage * pagesize)" |
| | | style="width: 100%" |
| | | :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" |
| | | :row-class-name="tableRowClassName"> |
| | | :row-class-name="tableRowClassName" |
| | | > |
| | | <el-table-column prop="carID" label="车牌号" v-if="carArrShow"></el-table-column> |
| | | <el-table-column prop="carType" label="车型" v-if="carArrShow"></el-table-column> |
| | | <el-table-column prop="phoneID" label="手台号" v-if="phoneArrShow"></el-table-column> |
| | | <el-table-column prop="phoneType" label="手台机型" v-if="phoneArrShow"></el-table-column> |
| | | <el-table-column prop="recorderID" label="执法记录仪号" v-if="recorderArrShow"></el-table-column> |
| | | <el-table-column prop="recorderType" label="记录仪机型" v-if="recorderArrShow"></el-table-column> |
| | | <el-table-column |
| | | prop="recorderID" |
| | | label="执法记录仪号" |
| | | v-if="recorderArrShow" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="recorderType" |
| | | label="记录仪机型" |
| | | v-if="recorderArrShow" |
| | | ></el-table-column> |
| | | <el-table-column prop="id" label="设备号" v-if="stateArrShow"></el-table-column> |
| | | <el-table-column prop="equimentType" label="设备类型" v-if="stateArrShow"></el-table-column> |
| | | <el-table-column prop="policeStation" label="所属派出所"></el-table-column> |
| | |
| | | <el-table-column prop="state" label="状态"></el-table-column> |
| | | </el-table> |
| | | <div class="pages"> |
| | | <el-pagination background layout="prev, pager, next" :total="showArr.length" |
| | | :page-size="pagesize" pager-count="3" :current-page="currentPage" |
| | | @current-change="handleCurrentChange"></el-pagination> |
| | | <el-pagination |
| | | background |
| | | layout="prev, pager, next" |
| | | :total="showArr.length" |
| | | :page-size="pagesize" |
| | | pager-count="3" |
| | | :current-page="currentPage" |
| | | @current-change="handleCurrentChange" |
| | | ></el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="landTitle" :modal="true" :visible.sync="landVisible" :before-close="landBeforeClose" |
| | | :close-on-click-modal="true" class="land-details-box"> |
| | | <el-table :data="landDetailArr" style="width: 100%" |
| | | <el-dialog |
| | | :title="landTitle" |
| | | :modal="true" |
| | | :visible.sync="landVisible" |
| | | :before-close="landBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="land-details-box" |
| | | > |
| | | <el-table |
| | | :data="landDetailArr" |
| | | style="width: 100%" |
| | | :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }"> |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }" |
| | | > |
| | | <el-table-column prop="housingEastate" label="小区名称" width="100"></el-table-column> |
| | | <el-table-column prop="location" label="位置" width="140"></el-table-column> |
| | | <el-table-column prop="area" label="面积" width="120"></el-table-column> |
| | |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="keyPersonTitle" :modal="true" :visible.sync="keyPersonVisible" |
| | | :before-close="keyPersonBeforeClose" :close-on-click-modal="true" class="keyPerson-details-box"> |
| | | <el-table :data="keyPersonDetailArr" style="width: 100%" |
| | | <el-dialog |
| | | :title="keyPersonTitle" |
| | | :modal="true" |
| | | :visible.sync="keyPersonVisible" |
| | | :before-close="keyPersonBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="keyPerson-details-box" |
| | | > |
| | | <el-table |
| | | :data="keyPersonDetailArr" |
| | | style="width: 100%" |
| | | :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }"> |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }" |
| | | > |
| | | <el-table-column prop="type" label="重点人员类型"></el-table-column> |
| | | <el-table-column prop="name" label="姓名"></el-table-column> |
| | | <el-table-column prop="sex" label="性别"></el-table-column> |
| | |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="policeSituationTitle" :modal="true" :visible.sync="policeSituationVisible" |
| | | :before-close="policeSituationBeforeClose" :close-on-click-modal="true" class="policeSituation-details-box"> |
| | | <el-dialog |
| | | :title="policeSituationTitle" |
| | | :modal="true" |
| | | :visible.sync="policeSituationVisible" |
| | | :before-close="policeSituationBeforeClose" |
| | | :close-on-click-modal="true" |
| | | class="policeSituation-details-box" |
| | | > |
| | | <div class="item"> |
| | | <div>所属派出所:</div> |
| | | <div>{{ policeSituationDetailArr.policeName }}</div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {getPanoramaList} from "@/api/panorama"; |
| | | import { getPanoramaList } from "@/api/panorama" |
| | | |
| | | let cylinderLayer = null |
| | | let circleLayer = null |
| | |
| | | import underwayArr from '@/assets/data/activitysData/underway.js' |
| | | import realtimeArr from '@/assets/data/policeSituationArr/realtimeArr.js' |
| | | import policeSituationHistoryArr from '@/assets/data/policeSituationArr/historyArr.js' |
| | | import {getPoliceStationList} from "@/api/dept"; |
| | | import {convertStringToList} from "@/utils/geometryStringTool"; |
| | | import { getPoliceStationList } from "@/api/dept" |
| | | import { convertStringToList } from "@/utils/geometryStringTool" |
| | | |
| | | export default { |
| | | data () { |
| | |
| | | dialogTitle: '', |
| | | dialogVisible: false, |
| | | panoramaTitle: '', |
| | | panoramaVrUrl:'', |
| | | panoramaVrUrl: '', |
| | | activityTitle: '', |
| | | equimentTitle: '', |
| | | keyPersonTitle: '', |
| | |
| | | this.underwayArr = underwayArr |
| | | this.policeSituationRealtimeArr = realtimeArr |
| | | this.policeSituationHistoryArr = policeSituationHistoryArr |
| | | this.getPanoramaList(); |
| | | this.getPanoramaList() |
| | | }, |
| | | |
| | | mounted () { |
| | | this.$nextTick(() => { |
| | | this.$nextTick(() => { |
| | | this.initPoliceStationLayer() |
| | | circleLayer = new global.DC.VectorLayer('circleLayer') |
| | | global.viewer.addLayer(circleLayer) |
| | |
| | | window.addEventListener('resize', this.setDomStyle) |
| | | }, |
| | | |
| | | watch:{ |
| | | "policeStationOptions":{ |
| | | handler(newVal){ |
| | | this.$nextTick(() => { |
| | | this.initPoliceStationLayer() |
| | | circleLayer = new global.DC.VectorLayer('circleLayer') |
| | | global.viewer.addLayer(circleLayer) |
| | | watch: { |
| | | "policeStationOptions": { |
| | | handler (newVal) { |
| | | this.$nextTick(() => { |
| | | this.initPoliceStationLayer() |
| | | circleLayer = new global.DC.VectorLayer('circleLayer') |
| | | global.viewer.addLayer(circleLayer) |
| | | |
| | | document.querySelector('.dc-container .dc-zoom-controller').classList.add('homebottom') |
| | | document.querySelector('.dc-container .dc-location-bar').classList.add('homebottom') |
| | | document.querySelector('.screen-full-btn').classList.add('homebottom') |
| | | document.querySelector('.image-switch-icon-btn').classList.add('iconbottom') |
| | | document.querySelector('.image-switch-img-btn').classList.add('imgbottom') |
| | | this.setDomStyle() |
| | | }) |
| | | // axios.get('/user/getUserList').then((res) => { |
| | | // console.log(res, 999) |
| | | // }} |
| | | document.querySelector('.dc-container .dc-zoom-controller').classList.add('homebottom') |
| | | document.querySelector('.dc-container .dc-location-bar').classList.add('homebottom') |
| | | document.querySelector('.screen-full-btn').classList.add('homebottom') |
| | | document.querySelector('.image-switch-icon-btn').classList.add('iconbottom') |
| | | document.querySelector('.image-switch-img-btn').classList.add('imgbottom') |
| | | this.setDomStyle() |
| | | }) |
| | | // axios.get('/user/getUserList').then((res) => { |
| | | // console.log(res, 999) |
| | | // }} |
| | | |
| | | window.addEventListener('resize', this.setDomStyle) |
| | | window.addEventListener('resize', this.setDomStyle) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | item.position.forEach(it => { |
| | | str = str + `${it[0]},${it[1]},${it[2]};` |
| | | }) |
| | | console.log('str', str) |
| | | this.$EventBus.$emit('layerPolygonAdd', { |
| | | layerName: 'polygonLayer', |
| | | positions: str, |
| | |
| | | /** |
| | | * 获取所有全景数据 |
| | | */ |
| | | getPanoramaList(){ |
| | | getPanoramaList().then(res=>{ |
| | | if (res.data.code == 200){ |
| | | let data = res.data.data |
| | | data.forEach(e=>{ |
| | | e.lng = e.longitude |
| | | e.lat = e.latitude |
| | | e.alt = 100 |
| | | e.url = '/img/icon/map-panorama.png' |
| | | }) |
| | | this.panoramaList = data |
| | | } |
| | | }) |
| | | getPanoramaList () { |
| | | getPanoramaList().then(res => { |
| | | if (res.data.code == 200) { |
| | | let data = res.data.data |
| | | data.forEach(e => { |
| | | e.lng = e.longitude |
| | | e.lat = e.latitude |
| | | e.alt = 100 |
| | | e.url = '/img/icon/map-panorama.png' |
| | | }) |
| | | this.panoramaList = data |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * 获取派出所和责任区数据 |
| | | */ |
| | | getPoliceStationList(){ |
| | | getPoliceStationList().then(res=>{ |
| | | if (res.data.code == 200){ |
| | | let data = res.data.data |
| | | data.forEach(policeStation=>{ |
| | | //派出所数据匹配 |
| | | policeStation.policeStationName= policeStation.deptName |
| | | policeStation.policeStationId = policeStation.id |
| | | policeStation.position = convertStringToList(policeStation.positionString) |
| | | if (policeStation.children&&policeStation.children.length>0){ |
| | | //责任区数据匹配 |
| | | policeStation.areaCheckOptions = policeStation.children |
| | | policeStation.areaCheckOptions.forEach(child=>{ |
| | | child.policeStationId = child.parentId |
| | | child.areaCheckId = child.id |
| | | child.areaCheckName = child.deptName |
| | | child.position = convertStringToList(child.positionString) |
| | | //小区数据匹配 |
| | | if (child.housingArr && child.housingArr.length>0){ |
| | | child.housingArr.forEach(community=>{ |
| | | community.policeStationId =policeStation.id |
| | | community.areaCheckId = child.id |
| | | community.housingsId=community.id |
| | | community.housingsName = community.name |
| | | community.position = convertStringToList(community.position) |
| | | }) |
| | | child.housingArr.unshift({housingsName: '全部'}) |
| | | } |
| | | getPoliceStationList () { |
| | | getPoliceStationList().then(res => { |
| | | if (res.data.code == 200) { |
| | | let data = res.data.data |
| | | data.forEach(policeStation => { |
| | | //派出所数据匹配 |
| | | policeStation.policeStationName = policeStation.deptName |
| | | policeStation.policeStationId = policeStation.id |
| | | policeStation.position = convertStringToList(policeStation.positionString) |
| | | if (policeStation.children && policeStation.children.length > 0) { |
| | | //责任区数据匹配 |
| | | policeStation.areaCheckOptions = policeStation.children |
| | | policeStation.areaCheckOptions.forEach(child => { |
| | | child.policeStationId = child.parentId |
| | | child.areaCheckId = child.id |
| | | child.areaCheckName = child.deptName |
| | | child.position = convertStringToList(child.positionString) |
| | | //小区数据匹配 |
| | | if (child.housingArr && child.housingArr.length > 0) { |
| | | child.housingArr.forEach(community => { |
| | | community.policeStationId = policeStation.id |
| | | community.areaCheckId = child.id |
| | | community.housingsId = community.id |
| | | community.housingsName = community.name |
| | | community.position = convertStringToList(community.position) |
| | | }) |
| | | child.housingArr.unshift({ housingsName: '全部' }) |
| | | } |
| | | }) |
| | | policeStation.areaCheckOptions.unshift({ areaCheckName: '全部' }) |
| | | policeStation.areaOptionArr = policeStation.areaCheckOptions |
| | | } |
| | | }) |
| | | policeStation.areaCheckOptions.unshift({areaCheckName: '全部'}) |
| | | policeStation.areaOptionArr = policeStation.areaCheckOptions |
| | | } |
| | | }) |
| | | |
| | | data.unshift({policeStationName: '全部'}) |
| | | this.policeStationOptions = data |
| | | this.areaOptionData = data |
| | | this.housingDate = data |
| | | } |
| | | data.unshift({ policeStationName: '全部' }) |
| | | this.policeStationOptions = data |
| | | this.areaOptionData = data |
| | | this.housingDate = data |
| | | } |
| | | }) |
| | | } |
| | | |
| | |
| | | background-color: #66b1ff87; |
| | | } |
| | | |
| | | :deep(.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content) { |
| | | :deep(.el-tree--highlight-current |
| | | .el-tree-node.is-current |
| | | > .el-tree-node__content) { |
| | | background: #454545; |
| | | } |
| | | |