guanqb
2023-05-15 1d26e19415aeab24dc14bf25424ca607c8cc956f
Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/srs-police-affairs
7 files modified
471 ■■■■■ changed files
src/components/map/index.vue 4 ●●●● patch | view | raw | blame | history
src/views/activity/components/drawBtnBox.vue 112 ●●●● patch | view | raw | blame | history
src/views/activity/components/polygonPlot.vue 5 ●●●● patch | view | raw | blame | history
src/views/activity/components/publicIndex.vue 103 ●●●●● patch | view | raw | blame | history
src/views/home/components/bottomContainer.vue 213 ●●●● patch | view | raw | blame | history
src/views/house/index.vue 7 ●●●●● patch | view | raw | blame | history
src/views/policeInfor/index.vue 27 ●●●● patch | view | raw | blame | history
src/components/map/index.vue
@@ -2,7 +2,7 @@
 * @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: 公用地图组件
 * 
@@ -297,7 +297,7 @@
            that.switchImg()
            // 地形数据添加
            that.addTerrain()
            // that.addTerrain()
            // 外网 
            // global.viewer.imageryLayers.addImageryProvider(
src/views/activity/components/drawBtnBox.vue
@@ -1,6 +1,6 @@
<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>
@@ -8,26 +8,17 @@
                <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>
@@ -38,16 +29,10 @@
                <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>
@@ -57,10 +42,7 @@
                    <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>
@@ -258,7 +240,7 @@
            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()
@@ -298,7 +280,7 @@
                        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)
@@ -342,7 +324,7 @@
            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)
@@ -377,26 +359,35 @@
                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
@@ -511,26 +502,35 @@
                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') {
@@ -580,7 +580,7 @@
                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 => {
@@ -796,7 +796,7 @@
    .right {
        height: 100%;
        & > div {
        &>div {
            display: flex;
        }
src/views/activity/components/polygonPlot.vue
@@ -175,7 +175,10 @@
                label: '多边形'
            }, {
                value: 2,
                label: '电子围栏'
                label: '跑马灯'
            }, {
                value: 3,
                label: '瀑布墙'
            }],
            restPlotSelectArray: [
src/views/activity/components/publicIndex.vue
@@ -1,64 +1,31 @@
<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>
@@ -500,22 +467,32 @@
                    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'
src/views/home/components/bottomContainer.vue
@@ -2,7 +2,7 @@
 * @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: 
 * 
@@ -14,39 +14,92 @@
            <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>
@@ -65,22 +118,46 @@
                </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>
@@ -95,20 +172,40 @@
            </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>
@@ -116,33 +213,59 @@
                    <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>
@@ -660,7 +783,7 @@
            display: flex;
            align-items: center;
            &>div {
            & > div {
                margin: 0 5px;
                flex: 1;
                display: flex;
src/views/house/index.vue
@@ -2,7 +2,7 @@
 * @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: 小区-栋-层-房屋
 * 
@@ -284,7 +284,8 @@
                                <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)"
@@ -353,7 +354,7 @@
                <div class="item">
                    <div>报警类型:</div>
                    <div>{{ policeSituationDetailObj.BJLX }}</div>
                    <div>{{ policeSituationDetailObj.jqlxName }}</div>
                </div>
                <div class="dialog-content">
src/views/policeInfor/index.vue
@@ -2,7 +2,7 @@
 * @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: 辖区管理
 * 
@@ -62,7 +62,7 @@
                    <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"
@@ -126,7 +126,7 @@
                <div class="item">
                    <div>报警类型:</div>
                    <div>{{ policeSituationDetailObj.BJLX }}</div>
                    <div>{{ policeSituationDetailObj.jqlxName }}</div>
                </div>
                <div class="dialog-content">
@@ -240,8 +240,6 @@
            boxShow: false,
            pages: {
                total: 0,
                size: 999,
                current: 1
            },
            currentTableHeight: 0,
@@ -600,6 +598,10 @@
        },
        addHeatmap (data) {
            if (this.heatMap != null) {
                this.heatMap.show(false)
            }
            let bounds = {
                west: 117.9,
                south: 28.3,
@@ -630,9 +632,12 @@
        // 获取历史接警记录(不分页)
        getAlarmList (params) {
            this.loading()
            this.clearLayer()
            this.historyPoliceInforData = []
            this.heatMapData = []
            this.heatMapShow = false
            this.historyEmptyText = ""
            if (this.heatMap != null) {
@@ -646,7 +651,7 @@
                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) => {
@@ -667,7 +672,13 @@
                    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()