Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/srs-police-affairs
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-05-08 18:34:01 |
| | | * @LastEditTime: 2023-05-11 09:36:50 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | that.switchImg() |
| | | |
| | | // 地形数据添加 |
| | | that.addTerrain() |
| | | // that.addTerrain() |
| | | |
| | | // 外网 |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | |
| | | <template> |
| | | <div v-show="dialogVisible && isShowActivityEditBox" class="draw-btn-box"> |
| | | <span @click="showEmitBox = !showEmitBox" class="emit-expend">{{showEmitBox? '收起': '展开'}}</span> |
| | | <span @click="showEmitBox = !showEmitBox" class="emit-expend">{{ showEmitBox ? '收起' : '展开' }}</span> |
| | | |
| | | <div v-show="showEmitBox" class="left"> |
| | | <h3>预案布置</h3> |
| | |
| | | <span>要素资源:</span> |
| | | <ul> |
| | | <li> |
| | | <button |
| | | @click="drawThreeArrow('billboard', 'police', 'policeman')" |
| | | title="警员" |
| | | > |
| | | <button @click="drawThreeArrow('billboard', 'police', 'policeman')" title="警员"> |
| | | <img src="/img/icon/police-people-btn.png" style="height:100%" /> |
| | | </button> |
| | | </li> |
| | | <li> |
| | | <button |
| | | @click="drawThreeArrow('billboard', 'police', 'policecar')" |
| | | title="警车" |
| | | > |
| | | <button @click="drawThreeArrow('billboard', 'police', 'policecar')" title="警车"> |
| | | <img src="/img/icon/car-btn.png" style="height:100%" /> |
| | | </button> |
| | | </li> |
| | | <li> |
| | | <button |
| | | @click="drawThreeArrow('billboard', 'icon', 'icon4')" |
| | | title="自定义图片标注" |
| | | >自定义图片标注</button> |
| | | <button @click="drawThreeArrow('billboard', 'icon', 'icon4')" title="自定义图片标注">自定义图片标注</button> |
| | | </li> |
| | | <li> |
| | | <button @click="drawThreeArrow('billboard', 'icon', 'icon5')" title="其他">其他</button> |
| | |
| | | <span>作战标绘:</span> |
| | | <ul> |
| | | <li> |
| | | <button |
| | | @click="drawThreeArrow('polygon', 'polygon', 'polygon')" |
| | | title="多边形" |
| | | >多边形</button> |
| | | <button @click="drawThreeArrow('polygon', 'polygon', 'polygon')" title="多边形">多边形</button> |
| | | </li> |
| | | <li> |
| | | <button |
| | | @click="drawThreeArrow('brokenline', 'brokenline', 'brokenline')" |
| | | title="折线" |
| | | >折线</button> |
| | | <button @click="drawThreeArrow('brokenline', 'brokenline', 'brokenline')" title="折线">折线</button> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | |
| | | <li> |
| | | <!-- <el-button |
| | | ></el-button>--> |
| | | <button |
| | | @click="drawThreeArrow('polyline', 'policecar', 'polyline')" |
| | | title="巡逻路线" |
| | | > |
| | | <button @click="drawThreeArrow('polyline', 'policecar', 'polyline')" title="巡逻路线"> |
| | | <img src="/img/icon/route1.png" style="height:100%" /> |
| | | </button> |
| | | </li> |
| | |
| | | currentEmitEl = overlayData |
| | | global.viewer.scene.globe.depthTestAgainstTerrain = true |
| | | if (overlayData.customType == 'polygon' || overlayData.customType == 'brokenline') { |
| | | if (overlayData.attrParams.item.areaType != 2) { |
| | | if (overlayData.attrParams.item.areaType != 2 && overlayData.attrParams.item.areaType != 3) { |
| | | drawThreeTool.edit(overlayData, (e) => { |
| | | let polygonPosition = e.positions.map(item => `${item.lng} ${item.lat}`).join() |
| | | const altitude = e.positions.map(item => item.alt).join() |
| | |
| | | |
| | | let polygonPosition = e.positions.map(item => `${item.lng} ${item.lat}`).join() |
| | | const altitude = e.positions.map(item => item.alt).join() |
| | | this.updateSecurityPlot({ id: overlayData.attrParams.id, position: polygonPosition, areaType: 2, altitude }, overlayData) |
| | | this.updateSecurityPlot({ id: overlayData.attrParams.id, position: polygonPosition, areaType: overlayData.attrParams.item.areaType, altitude }, overlayData) |
| | | global.viewer.scene.globe.depthTestAgainstTerrain = false |
| | | currentStatus = '' |
| | | }, true) |
| | |
| | | let positions = position.split(';').map((item, index) => `${item},140`) |
| | | positions.push(positions[0]) |
| | | positions = positions.join(';') |
| | | if (item.type == 5 && item.areaType == 2) { |
| | | if (item.type == 5 && (item.areaType == 2 || item.areaType == 3)) { |
| | | this.$parent.removeArrowsListLayer(addPlotOverlayData) |
| | | |
| | | addPlotOverlayData = new global.DC.Wall(positions) |
| | |
| | | this.$parent.isHaveFactor = true |
| | | } else if (item.type == 5) { |
| | | |
| | | if (item.areaType != 2) { |
| | | if (item.areaType != 2 && item.areaType != 3) { |
| | | addPlotOverlayData.setStyle({ |
| | | material: color, |
| | | outlineColor: global.DC.Namespace.Cesium.Color.fromBytes(r, g, b, 255) |
| | | }) |
| | | } else { |
| | | addPlotOverlayData.setStyle({ |
| | | material: new global.DC.WallImageTrailMaterialProperty({ |
| | | image: '/images/jjx.png', |
| | | color: color, |
| | | repeat: { |
| | | x: getLineSpeed(position.split(';').map(item => { |
| | | item.split(',') |
| | | if (item.areaType == 2) { |
| | | addPlotOverlayData.setStyle({ |
| | | material: new global.DC.WallImageTrailMaterialProperty({ |
| | | image: '/images/jjx.png', |
| | | color: color, |
| | | repeat: { |
| | | x: getLineSpeed(position.split(';').map(item => { |
| | | item.split(',') |
| | | |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | })), y: 1 |
| | | }, |
| | | speed: 10 |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | })), y: 1 |
| | | }, |
| | | speed: 10 |
| | | }) |
| | | }) |
| | | }) |
| | | } else { |
| | | addPlotOverlayData.setStyle({ |
| | | material: new global.DC.WallTrailMaterialProperty({ |
| | | color: color, |
| | | speed: 10 |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | this.$parent.isHaveArrow = true |
| | |
| | | |
| | | if (overlay.customType == 'polygon') { |
| | | |
| | | if (overlay.attrParams.item.areaType != 2) { |
| | | if (overlay.attrParams.item.areaType != 2 && overlay.attrParams.item.areaType != 3) { |
| | | overlay.setStyle({ |
| | | material: color, |
| | | outlineColor: outColor |
| | | }) |
| | | } else { |
| | | overlay.setStyle({ |
| | | material: new global.DC.WallImageTrailMaterialProperty({ |
| | | image: '/images/jjx.png', |
| | | color: color, |
| | | repeat: { |
| | | x: getLineSpeed(position.split(';').map(item => { |
| | | item.split(',') |
| | | if (overlay.attrParams.item.areaType == 2) { |
| | | overlay.setStyle({ |
| | | material: new global.DC.WallImageTrailMaterialProperty({ |
| | | image: '/images/jjx.png', |
| | | color: color, |
| | | repeat: { |
| | | x: getLineSpeed(position.split(';').map(item => { |
| | | item.split(',') |
| | | |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | })), y: 1 |
| | | }, |
| | | speed: 10 |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | })), y: 1 |
| | | }, |
| | | speed: 10 |
| | | }) |
| | | }) |
| | | }) |
| | | } else { |
| | | overlay.setStyle({ |
| | | material: new global.DC.WallTrailMaterialProperty({ |
| | | color: color, |
| | | speed: 10 |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | } else if (overlay.customType == 'billboard') { |
| | |
| | | overlay.attrParams.item.type = params.type |
| | | } |
| | | |
| | | if (params.areaType == 2) { |
| | | if (params.areaType == 2 || params.areaType == 3) { |
| | | overlay.attrParams.item.altitude = params.altitude |
| | | overlay.attrParams.item.position = `LINESTRING(${params.position})` |
| | | let positions = params.position.split(',').map(item => { |
| | |
| | | .right { |
| | | height: 100%; |
| | | |
| | | & > div { |
| | | &>div { |
| | | display: flex; |
| | | } |
| | | |
| | |
| | | label: '多边形' |
| | | }, { |
| | | value: 2, |
| | | label: '电子围栏' |
| | | label: '跑马灯' |
| | | }, { |
| | | value: 3, |
| | | label: '瀑布墙' |
| | | }], |
| | | |
| | | restPlotSelectArray: [ |
| | |
| | | <template> |
| | | <div> |
| | | <layers-show-control |
| | | :dialogVisible="dialogVisible" |
| | | :isHavePolice="isHavePolice" |
| | | :isHaveArrow="isHaveArrow" |
| | | :isHaveLine="isHaveLine" |
| | | :policeSwitch="policeSwitch" |
| | | :arrowBtnSwitch="arrowBtnSwitch" |
| | | :polylineBtnSwitch="polylineBtnSwitch" |
| | | ></layers-show-control> |
| | | <layers-show-control :dialogVisible="dialogVisible" :isHavePolice="isHavePolice" :isHaveArrow="isHaveArrow" |
| | | :isHaveLine="isHaveLine" :policeSwitch="policeSwitch" :arrowBtnSwitch="arrowBtnSwitch" |
| | | :polylineBtnSwitch="polylineBtnSwitch"></layers-show-control> |
| | | |
| | | <draw-btn-box |
| | | v-if="currentPlotType == 3" |
| | | ref="DRAWBTNBOX" |
| | | :dialogVisible="dialogVisible" |
| | | :isShowActivityEditBox="isShowActivityEditBox" |
| | | :showingSecurityId="showingSecurityId" |
| | | :policeSwitch="policeSwitch" |
| | | :polylineBtnSwitch="polylineBtnSwitch" |
| | | :arrowBtnSwitch="arrowBtnSwitch" |
| | | :policeIconId="policeIconId" |
| | | :lineWidth="lineWidth" |
| | | @setPoliceOption="setPoliceOption" |
| | | ></draw-btn-box> |
| | | <draw-btn-box v-if="currentPlotType == 3" ref="DRAWBTNBOX" :dialogVisible="dialogVisible" |
| | | :isShowActivityEditBox="isShowActivityEditBox" :showingSecurityId="showingSecurityId" |
| | | :policeSwitch="policeSwitch" :polylineBtnSwitch="polylineBtnSwitch" :arrowBtnSwitch="arrowBtnSwitch" |
| | | :policeIconId="policeIconId" :lineWidth="lineWidth" @setPoliceOption="setPoliceOption"></draw-btn-box> |
| | | |
| | | <two-draw-btn-box |
| | | v-if="currentPlotType == 1" |
| | | ref="DRAWBTNBOX" |
| | | :dialogVisible="dialogVisible" |
| | | :isShowActivityEditBox="isShowActivityEditBox" |
| | | :showingSecurityId="showingSecurityId" |
| | | :policeSwitch="policeSwitch" |
| | | :polylineBtnSwitch="polylineBtnSwitch" |
| | | :arrowBtnSwitch="arrowBtnSwitch" |
| | | :policeIconId="policeIconId" |
| | | :lineWidth="lineWidth" |
| | | @setPoliceOption="setPoliceOption" |
| | | ></two-draw-btn-box> |
| | | <two-draw-btn-box v-if="currentPlotType == 1" ref="DRAWBTNBOX" :dialogVisible="dialogVisible" |
| | | :isShowActivityEditBox="isShowActivityEditBox" :showingSecurityId="showingSecurityId" |
| | | :policeSwitch="policeSwitch" :polylineBtnSwitch="polylineBtnSwitch" :arrowBtnSwitch="arrowBtnSwitch" |
| | | :policeIconId="policeIconId" :lineWidth="lineWidth" @setPoliceOption="setPoliceOption"></two-draw-btn-box> |
| | | |
| | | <polygon-plot ref="PolygonPlotPage" :showingSecurityId="showingSecurityId"></polygon-plot> |
| | | |
| | | <polyline-plot ref="PolylinePlotPage" :showingSecurityId="showingSecurityId"></polyline-plot> |
| | | |
| | | <police-car-change |
| | | ref="PoliceCarChange" |
| | | :policeOption="policeOption" |
| | | :showingSecurityId="showingSecurityId" |
| | | ></police-car-change> |
| | | <police-car-change ref="PoliceCarChange" :policeOption="policeOption" |
| | | :showingSecurityId="showingSecurityId"></police-car-change> |
| | | |
| | | <police-person-change |
| | | ref="PolicePersonChange" |
| | | :policeTreeData="policeTreeData" |
| | | :showingSecurityId="showingSecurityId" |
| | | ></police-person-change> |
| | | <police-person-change ref="PolicePersonChange" :policeTreeData="policeTreeData" |
| | | :showingSecurityId="showingSecurityId"></police-person-change> |
| | | |
| | | <activity-detail |
| | | :dialogVisible="dialogVisible" |
| | | :activityDetails="activityDetails" |
| | | @closeActivityDetails="closeActivityDetails" |
| | | ></activity-detail> |
| | | <activity-detail :dialogVisible="dialogVisible" :activityDetails="activityDetails" |
| | | @closeActivityDetails="closeActivityDetails"></activity-detail> |
| | | |
| | | <video-control-box ref="VIDEOCONTROLBOX"></video-control-box> |
| | | </div> |
| | |
| | | positions = position.split(';').map((item, index) => `${item},140`) |
| | | positions.push(positions[0]) |
| | | positions = positions.join(';') |
| | | |
| | | coverage = new global.DC.Wall(positions) |
| | | coverage.setStyle({ |
| | | material: new global.DC.WallImageTrailMaterialProperty({ |
| | | image: '/images/jjx.png', |
| | | color: color.curColor, |
| | | repeat: { |
| | | x: getLineSpeed(position.split(';').map(item => { |
| | | item.split(',') |
| | | |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | })), y: 1 |
| | | }, |
| | | speed: 10 |
| | | if (params.areaType == 2) { |
| | | coverage.setStyle({ |
| | | material: new global.DC.WallImageTrailMaterialProperty({ |
| | | image: '/images/jjx.png', |
| | | color: color.curColor, |
| | | repeat: { |
| | | x: getLineSpeed(position.split(';').map(item => { |
| | | item.split(',') |
| | | |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | })), y: 1 |
| | | }, |
| | | speed: 10 |
| | | }) |
| | | }) |
| | | }) |
| | | } else { |
| | | coverage.setStyle({ |
| | | material: new global.DC.WallTrailMaterialProperty({ |
| | | color: color.curColor, |
| | | speed: 10 |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | } |
| | | |
| | | coverage.customType = 'polygon' |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-01-13 15:52:59 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-05-10 17:16:20 |
| | | * @LastEditTime: 2023-05-10 17:33:36 |
| | | * @FilePath: \srs-police-affairs\src\views\home\components\bottomContainer.vue |
| | | * @Description: |
| | | * |
| | |
| | | <div class="header"> |
| | | <div class="bottom-title">警情动态</div> |
| | | <div class="timeTab" v-show="historytype"> |
| | | <span class="beforetime" :class="{ choosed: timetype == 0 }" @click="timeTabClick(0)">周</span> |
| | | <span class="beforetime" :class="{ choosed: timetype == 1 }" @click="timeTabClick(1)">月</span> |
| | | <span class="beforetime" :class="{ choosed: timetype == 2 }" @click="timeTabClick(2)">自定义</span> |
| | | <span |
| | | class="beforetime" |
| | | :class="{ choosed: timetype == 0 }" |
| | | @click="timeTabClick(0)" |
| | | >周</span> |
| | | <span |
| | | class="beforetime" |
| | | :class="{ choosed: timetype == 1 }" |
| | | @click="timeTabClick(1)" |
| | | >月</span> |
| | | <span |
| | | class="beforetime" |
| | | :class="{ choosed: timetype == 2 }" |
| | | @click="timeTabClick(2)" |
| | | >自定义</span> |
| | | </div> |
| | | |
| | | <div class="timeSeclect" v-show="historytype"> |
| | | <div v-show="timetype == 0"> |
| | | <el-date-picker size="small" v-model="currentWeekTime" @change="datePickerChange" type="week" |
| | | align="center" format="yyyy 第 WW 周" placeholder="选择周" |
| | | popper-class="date-week-style"></el-date-picker> |
| | | <el-date-picker |
| | | size="small" |
| | | v-model="currentWeekTime" |
| | | @change="datePickerChange" |
| | | type="week" |
| | | align="center" |
| | | format="yyyy 第 WW 周" |
| | | placeholder="选择周" |
| | | popper-class="date-week-style" |
| | | ></el-date-picker> |
| | | </div> |
| | | <div v-show="timetype == 1"> |
| | | <el-date-picker size="small" v-model="currentMonthTime" @change="datePickerChange" type="month" |
| | | align="center" placeholder="选择月" popper-class="date-mouth-style"></el-date-picker> |
| | | <el-date-picker |
| | | size="small" |
| | | v-model="currentMonthTime" |
| | | @change="datePickerChange" |
| | | type="month" |
| | | align="center" |
| | | placeholder="选择月" |
| | | popper-class="date-mouth-style" |
| | | ></el-date-picker> |
| | | </div> |
| | | <div v-show="timetype == 2"> |
| | | <el-date-picker size="small" :clearable="false" v-model="currentTime" type="daterange" |
| | | align="center" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" |
| | | @change="datePickerChange" :picker-options="pickerOptions" |
| | | popper-class="date-day-style"></el-date-picker> |
| | | <el-date-picker |
| | | size="small" |
| | | :clearable="false" |
| | | v-model="currentTime" |
| | | type="daterange" |
| | | align="center" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | @change="datePickerChange" |
| | | :picker-options="pickerOptions" |
| | | popper-class="date-day-style" |
| | | ></el-date-picker> |
| | | </div> |
| | | <div> |
| | | <el-select style="flex: 1;" size="small" v-model="policeInforValue" @change="policeTypeChange" |
| | | placeholder="请选择"> |
| | | <el-option v-for="item in policeInforOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"></el-option> |
| | | <el-select |
| | | style="flex: 1;" |
| | | size="small" |
| | | v-model="policeInforValue" |
| | | @change="policeTypeChange" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in policeInforOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="history-tab"> |
| | | <span class="beforetime" :class="{ choosed: historytype == 0 }" @click="historyTabClick(0)">实时</span> |
| | | <span class="beforetime" :class="{ choosed: historytype == 1 }" @click="historyTabClick(1)">历史</span> |
| | | <span |
| | | class="beforetime" |
| | | :class="{ choosed: historytype == 0 }" |
| | | @click="historyTabClick(0)" |
| | | >实时</span> |
| | | <span |
| | | class="beforetime" |
| | | :class="{ choosed: historytype == 1 }" |
| | | @click="historyTabClick(1)" |
| | | >历史</span> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </ul> |
| | | |
| | | <!-- <vue-seamless-scroll v-if="policeSituationRealtimeArr.length > 0" :data="policeSituationRealtimeArr" class="warp" :class-option="classOption"> --> |
| | | <div v-if="policeSituationRealtimeArr.length > 0" :data="policeSituationRealtimeArr" class="warp" |
| | | :class-option="classOption"> |
| | | <el-carousel indicator-position="none" direction="vertical" @change="changeAlarm"> |
| | | <div |
| | | v-if="policeSituationRealtimeArr.length > 0" |
| | | :data="policeSituationRealtimeArr" |
| | | class="warp" |
| | | :class-option="classOption" |
| | | > |
| | | <el-carousel |
| | | indicator-position="none" |
| | | direction="vertical" |
| | | @change="changeAlarm" |
| | | > |
| | | <el-carousel-item v-for="item in alarmPageCount" :key="item"> |
| | | <ul class="item"> |
| | | <li v-for="(item, index) in policeSituationRealtimeArr" :key="index" class="row" |
| | | @click.stop="handleSelectClick(item)"> |
| | | <li |
| | | v-for="(item, index) in policeSituationRealtimeArr" |
| | | :key="index" |
| | | class="row" |
| | | @click.stop="handleSelectClick(item)" |
| | | > |
| | | <span class="num" v-text="item.index"></span> |
| | | <span class="receiving-alarm-unit" v-text="item.JJDWMC"></span> |
| | | <span class="receiving-alarm-time" v-text="item.BJSJ"></span> |
| | | <span class="call-police-content" :title="item.BJNR" v-text="item.BJNR"></span> |
| | | <span class="incident-site" :title="item.SFDZ" v-text="item.SFDZ"></span> |
| | | <span |
| | | class="call-police-content" |
| | | :title="item.BJNR" |
| | | v-text="item.BJNR" |
| | | ></span> |
| | | <span |
| | | class="incident-site" |
| | | :title="item.SFDZ" |
| | | v-text="item.SFDZ" |
| | | ></span> |
| | | <span class="call-police-type" v-text="item.BJLX"></span> |
| | | <span class="have-position"> |
| | | <i v-show="item.position == '有'" class="el-icon-location" style="color: #1AFA29;" |
| | | @click.stop="policeSituationClick(item)"></i> |
| | | <i |
| | | v-show="item.position == '有'" |
| | | class="el-icon-location" |
| | | style="color: #1AFA29;" |
| | | @click.stop="policeSituationClick(item)" |
| | | ></i> |
| | | </span> |
| | | <span class="alarm-bz" v-text="item.MEMO"></span> |
| | | </li> |
| | |
| | | </div> |
| | | |
| | | <div class="current-table-body" ref="ElTableBox" v-if="historytype == 1"> |
| | | <el-table :data="policeSituationHistoryArr" :key="currentPage" style="width: 100%" |
| | | <el-table |
| | | :data="policeSituationHistoryArr" |
| | | :key="currentPage" |
| | | style="width: 100%" |
| | | :height="currentTableHeight" |
| | | :header-cell-style="{ 'text-align': 'center', 'background-color': 'rgba(9, 40, 199, 0.5)', 'borderColor': '#324e75' }" |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" @cell-click="handleSelectClick"> |
| | | <el-table-column :show-overflow-tooltip="true" prop="index" label="序号" width="60"></el-table-column> |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" |
| | | @cell-click="handleSelectClick" |
| | | > |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | prop="index" |
| | | label="序号" |
| | | width="60" |
| | | ></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="JJDWMC" label="接警单位"></el-table-column> |
| | | <el-table-column prop="BJSJ" label="报警时间"></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="BJNR" label="报警内容"></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="SFDZ" label="事发地址"></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="BJLX" label="报警类型"></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="position" label="坐标" width="60"> |
| | | <el-table-column :show-overflow-tooltip="true" prop="jqlxName" label="报警类型"></el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | prop="position" |
| | | label="坐标" |
| | | width="60" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button v-show="scope.row.position == '有'" @click.stop="policeSituationClick(scope.row)" |
| | | type="text" size="small" title="定位"> |
| | | <el-button |
| | | v-show="scope.row.position == '有'" |
| | | @click.stop="policeSituationClick(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | title="定位" |
| | | > |
| | | <i class="el-icon-location" style="color: #1AFA29;"></i> |
| | | </el-button> |
| | | </template> |
| | |
| | | <el-table-column :show-overflow-tooltip="true" prop="MEMO" label="备注"></el-table-column> |
| | | </el-table> |
| | | |
| | | <div class="pages all-pagination-sty" ref="ElPagination" v-if="policeSituationHistoryArr.length > 0"> |
| | | <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="pagesCount" |
| | | :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination> |
| | | <div |
| | | class="pages all-pagination-sty" |
| | | ref="ElPagination" |
| | | v-if="policeSituationHistoryArr.length > 0" |
| | | > |
| | | <el-pagination |
| | | background |
| | | layout="prev, pager, next" |
| | | :page-size="pagesize" |
| | | :page-count="pagesCount" |
| | | :current-page="currentPage" |
| | | @current-change="handleCurrentChange" |
| | | ></el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <svg class="border-svg"> |
| | | <defs> |
| | | <path id="bottom-box-path" |
| | | <path |
| | | id="bottom-box-path" |
| | | d="M0,0c56.33,0,112.67,0,169,0c2.5,4.31,6.95,6.19,11,9c0.67,1,1.33,2,2,3c16.33,0,32.67,0,49,0c55.99,0,112.01,0,168,0c238.64,0,477.36,0,716,0c1.01,1.73,4.64,4.26,5,5c0,20,0,40,0,60c0,49,0,98,0,147c-0.89,1.52,0,19.4,0,25c0,22.33,0,44.67,0,67c-1.43,0.78-4.01,2.77-5,4c-13,0-26,0-39,0c-3-3.33-6-6.67-9-10c-22,0-44,0-66,0c-2.26,3.84-6.72,5.26-8,10c-241.98,0-484.02,0-726,0c-64.33,0-128.67,0-193,0c-17,0-34,0-51,0c-5.68,0-16.19,1.49-20-1c-4.4-2.88-3-12.84-3-20c0-19.33,0-38.67,0-58C0,160.67,0,80.33,0,0z" |
| | | fill="transparent" /> |
| | | fill="transparent" |
| | | /> |
| | | <radialGradient id="border-box-gradient" cx="50%" cy="50%" r="50%"> |
| | | <stop offset="0%" stop-color="#fff" stop-opacity="1" /> |
| | | <stop offset="100%" stop-color="#fff" stop-opacity="0" /> |
| | | </radialGradient> |
| | | <mask id="border-box-mask"> |
| | | <circle cx="0" cy="0" r="150" fill="url(#border-box-gradient)"> |
| | | <animateMotion dur="8s" |
| | | <animateMotion |
| | | dur="8s" |
| | | path="M0,0c56.33,0,112.67,0,169,0c2.5,4.31,6.95,6.19,11,9c0.67,1,1.33,2,2,3c16.33,0,32.67,0,49,0c55.99,0,112.01,0,168,0c238.64,0,477.36,0,716,0c1.01,1.73,4.64,4.26,5,5c0,20,0,40,0,60c0,49,0,98,0,147c-0.89,1.52,0,19.4,0,25c0,22.33,0,44.67,0,67c-1.43,0.78-4.01,2.77-5,4c-13,0-26,0-39,0c-3-3.33-6-6.67-9-10c-22,0-44,0-66,0c-2.26,3.84-6.72,5.26-8,10c-241.98,0-484.02,0-726,0c-64.33,0-128.67,0-193,0c-17,0-34,0-51,0c-5.68,0-16.19,1.49-20-1c-4.4-2.88-3-12.84-3-20c0-19.33,0-38.67,0-58C0,160.67,0,80.33,0,0z" |
| | | rotate="auto" repeatCount="indefinite" /> |
| | | rotate="auto" |
| | | repeatCount="indefinite" |
| | | /> |
| | | </circle> |
| | | </mask> |
| | | </defs> |
| | | |
| | | <use stroke-width="2" xlink:href="#bottom-box-path" mask="url(#border-box-mask)" stroke="#4fd2dd"> |
| | | <animate attributeName="stroke-dasharray" from="0, 3220" to="3220, 0" dur="8s" repeatCount="indefinite" /> |
| | | <use |
| | | stroke-width="2" |
| | | xlink:href="#bottom-box-path" |
| | | mask="url(#border-box-mask)" |
| | | stroke="#4fd2dd" |
| | | > |
| | | <animate |
| | | attributeName="stroke-dasharray" |
| | | from="0, 3220" |
| | | to="3220, 0" |
| | | dur="8s" |
| | | repeatCount="indefinite" |
| | | /> |
| | | </use> |
| | | </svg> |
| | | </div> |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | &>div { |
| | | & > div { |
| | | margin: 0 5px; |
| | | flex: 1; |
| | | display: flex; |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-05-10 17:15:36 |
| | | * @LastEditTime: 2023-05-10 17:33:18 |
| | | * @FilePath: \srs-police-affairs\src\views\house\index.vue |
| | | * @Description: 小区-栋-层-房屋 |
| | | * |
| | |
| | | <el-table-column prop="JJDWMC" :show-overflow-tooltip="true" label="接警单位" |
| | | min-width="80%"></el-table-column> |
| | | <el-table-column label="报警时间" prop="BJSJ" min-width="50%"></el-table-column> |
| | | <el-table-column prop="BJLX" :show-overflow-tooltip="true" label="报警类型"></el-table-column> |
| | | <el-table-column prop="jqlxName" :show-overflow-tooltip="true" |
| | | label="报警类型"></el-table-column> |
| | | <el-table-column label="操作" align="center" min-width="36%"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="!whetherPosition(scope.row)" @click="clickData(scope.row)" |
| | |
| | | |
| | | <div class="item"> |
| | | <div>报警类型:</div> |
| | | <div>{{ policeSituationDetailObj.BJLX }}</div> |
| | | <div>{{ policeSituationDetailObj.jqlxName }}</div> |
| | | </div> |
| | | |
| | | <div class="dialog-content"> |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-05-10 17:14:35 |
| | | * @LastEditTime: 2023-05-15 10:34:43 |
| | | * @FilePath: \srs-police-affairs\src\views\policeInfor\index.vue |
| | | * @Description: 辖区管理 |
| | | * |
| | |
| | | <el-table-column prop="JJDWMC" :show-overflow-tooltip="true" label="接警单位" |
| | | min-width="80%"></el-table-column> |
| | | <el-table-column prop="BJSJ" label="报警时间" min-width="50%"></el-table-column> |
| | | <el-table-column prop="BJLX" label="报警类型"></el-table-column> |
| | | <el-table-column prop="jqlxName" label="报警类型"></el-table-column> |
| | | <el-table-column label="操作" align="center" min-width="32%"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="!whetherPosition(scope.row)" @click="clickData(scope.row)" type="text" |
| | |
| | | |
| | | <div class="item"> |
| | | <div>报警类型:</div> |
| | | <div>{{ policeSituationDetailObj.BJLX }}</div> |
| | | <div>{{ policeSituationDetailObj.jqlxName }}</div> |
| | | </div> |
| | | |
| | | <div class="dialog-content"> |
| | |
| | | boxShow: false, |
| | | pages: { |
| | | total: 0, |
| | | size: 999, |
| | | current: 1 |
| | | }, |
| | | |
| | | currentTableHeight: 0, |
| | |
| | | }, |
| | | |
| | | addHeatmap (data) { |
| | | if (this.heatMap != null) { |
| | | this.heatMap.show(false) |
| | | } |
| | | |
| | | let bounds = { |
| | | west: 117.9, |
| | | south: 28.3, |
| | |
| | | // 获取历史接警记录(不分页) |
| | | getAlarmList (params) { |
| | | this.loading() |
| | | |
| | | this.clearLayer() |
| | | |
| | | this.historyPoliceInforData = [] |
| | | this.heatMapData = [] |
| | | this.heatMapShow = false |
| | | |
| | | this.historyEmptyText = "" |
| | | |
| | | if (this.heatMap != null) { |
| | |
| | | jjdwbh = this.userInfo.dept_id |
| | | } |
| | | |
| | | getAlarmList({ ...params, size: 999, jjdwbh, type: 3, bjlx: this.policeInforValue }).then(res => { |
| | | getAlarmList({ ...params, jjdwbh, type: 3, bjlx: this.policeInforValue }).then(res => { |
| | | if (res.data.data.length > 0) { |
| | | this.historyPoliceInforData = res.data.data.map((item, index) => { |
| | | |
| | |
| | | this.realEmptyText = "暂无历史警情信息" |
| | | } |
| | | |
| | | this.addPoliceInforSiteLayer(this.historyPoliceInforData) |
| | | if (this.siteLayerShow) { |
| | | this.addPoliceInforSiteLayer(this.historyPoliceInforData) |
| | | } |
| | | |
| | | if (this.heatMapShow) { |
| | | this.heatMapData.length > 0 && this.addHeatmap(this.heatMapData) |
| | | } |
| | | |
| | | setTimeout(() => { |
| | | loading && loading.close() |