guanqb
2023-03-22 84453d11c3542efb75b7d848873619a46bdaa100
Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
10 files modified
1 files added
204 ■■■■■ changed files
public/img/bg/jj.png patch | view | raw | blame | history
src/components/map/index.vue 24 ●●●●● patch | view | raw | blame | history
src/router/page/index.js 2 ●●● patch | view | raw | blame | history
src/views/activity/components/activityDetail.vue 10 ●●●● patch | view | raw | blame | history
src/views/activity/components/drawBtnBox.vue 16 ●●●●● patch | view | raw | blame | history
src/views/activity/index.vue 74 ●●●●● patch | view | raw | blame | history
src/views/activity/index1.vue 40 ●●●● patch | view | raw | blame | history
src/views/home/components/rightContainer.vue 2 ●●● patch | view | raw | blame | history
src/views/layout/index.vue 18 ●●●● patch | view | raw | blame | history
src/views/video/list.vue 6 ●●●●● patch | view | raw | blame | history
src/views/video/region.vue 12 ●●●●● patch | view | raw | blame | history
public/img/bg/jj.png
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-03-21 09:53:10
 * @LastEditTime: 2023-03-22 16:17:41
 * @FilePath: \srs-police-affairs\src\components\map\index.vue
 * @Description: 公用地图组件
 * 
@@ -480,6 +480,10 @@
            that.layerPolylineAdd(params.layerName, params.positions, params.material, params.width, params.params, params.incident)
        })
        this.$EventBus.$on('layerWallAdd', (params) => {
            that.layerWallAdd(params.layerName, params.positions, params.imgUrl)
        })
        this.$EventBus.$on('getOverLayerID', (params) => {
            that.getOverLayerID(params.layerName, params.ids, params.cb)
        })
@@ -916,6 +920,24 @@
            layersObjcect[layerName].addOverlay(polyline)
        },
        layerWallAdd (layerName, positions, imgUrl) {
            if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
                this.mapAddLayer(layerName, 'VectorLayer')
            }
            let wall = new global.DC.Wall(positions)
            wall.setStyle({
                material: new global.DC.WallImageTrailMaterialProperty({
                    image: imgUrl,
                    color: global.DC.Namespace.Cesium.Color.fromBytes(255, 226, 97, 200),
                    repeat: { x: 3, y: 1 },
                    speed: 4
                })
            })
            layersObjcect[layerName].addOverlay(wall)
        },
        /**
         * @description: 通过ID获取图层
         * @return {*}
src/router/page/index.js
@@ -90,7 +90,7 @@
            {
                path: 'activity',
                meta: {
                    title: '安保活动'
                    title: '电子沙盘'
                },
                component: activity
            },
src/views/activity/components/activityDetail.vue
@@ -1,15 +1,15 @@
<template>
    <div v-show="dialogVisible" class="activity-details-box">
        <div class="title">
            活动详情
            详情
            <div class="close" @click="closeActivityDetails"></div>
        </div>
        <div class="row-box">
            <div class="category">活动名称:</div>
            <div class="category">名称:</div>
            <div class="category-value">{{ activityDetails.name }}</div>
        </div>
        <div class="row-box">
            <div class="category">活动时间:</div>
            <div class="category">时间:</div>
            <div class="category-value">{{ activityDetails.startTime }} 至 {{ activityDetails.endTime }}</div>
        </div>
        <div class="row-box">
@@ -33,11 +33,11 @@
            <div class="category-value">{{ activityDetails.number }}</div>
        </div>
        <div class="row-box">
            <div class="category">活动地点:</div>
            <div class="category">地点:</div>
            <div class="category-value">{{ activityDetails.place }}</div>
        </div>
        <div class="row-box">
            <div class="category">活动内容:</div>
            <div class="category">内容:</div>
            <div class="category-value">{{ activityDetails.content }}</div>
        </div>
    </div>
src/views/activity/components/drawBtnBox.vue
@@ -160,13 +160,17 @@
            if (drawLayers == null) {
                drawLayers = new global.DC.VectorLayer('drawLayers')
                global.viewer.addLayer(drawLayers)
                plot = new global.DC.Plot(global.viewer)
                plot = new global.DC.Plot(global.viewer, {
                    clampToModel: true
                })
            }
            if (drawArrowLayers == null) {
                drawArrowLayers = new global.DC.VectorLayer('drawArrowLayers')
                global.viewer.addLayer(drawArrowLayers)
                arrowPlot = new global.DC.Plot(global.viewer)
                arrowPlot = new global.DC.Plot(global.viewer, {
                    clampToModel: true
                })
            }
            global.viewer.on(global.DC.MouseEventType.CLICK, this.viewerClick)
@@ -748,8 +752,8 @@
            }
        },
        // 修改活动警车
        // id活动id, carId警车id, color颜色, width巡逻路线范围宽度, type线面类型, position坐标
        // 修改警车
        // idid, carId警车id, color颜色, width巡逻路线范围宽度, type线面类型, position坐标
        updateActivityCar (params, overlay) {
            updateActivityCar(params).then(res => {
                if (res.data.success) {
@@ -768,8 +772,8 @@
            })
        },
        // 修改活动警员
        // id活动id, policemanId警察id ,color颜色
        // 修改警员
        // idid, policemanId警察id ,color颜色
        updateActivityPolice (params, overlay) {
            updateActivityPolice(params).then(res => {
                if (res.data.success) {
src/views/activity/index.vue
@@ -2,9 +2,9 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-15 09:15:07
 * @LastEditTime: 2023-03-22 16:11:13
 * @FilePath: \srs-police-affairs\src\views\activity\index.vue
 * @Description: 安保活
 * @Description: 电子沙盘
 *
 * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved.
-->
@@ -12,7 +12,7 @@
<template>
    <div class="activity-page container">
        <div v-show="boxShow" class="container-content">
            <div class="title">安保活动</div>
            <div class="title">电子沙盘</div>
            <div class="search-box">
                <div>
                    <div class="category">选择时间:</div>
@@ -24,7 +24,7 @@
                </div>
                <div>
                    <div class="category">活动名称:</div>
                    <div class="category">名称:</div>
                    <div class="category-value search-activity">
                        <input type="text" placeholder="请输入…" v-model="searchActivity" class="category-input"
                            @input="inputChange" />
@@ -42,19 +42,19 @@
                        <div class="row-title">常规安保</div>
                        <div class="row-content">
                            <div>
                                <div class="category">活动名称:</div>
                                <div class="category">名称:</div>
                                <div class="category-value">{{ item.name }}</div>
                            </div>
                            <div>
                                <div class="category">申报人数:</div>
                                <div class="category">人数:</div>
                                <div class="category-value">{{ item.number }}</div>
                            </div>
                            <div>
                                <div class="category">活动时间:</div>
                                <div class="category">时间:</div>
                                <div class="category-value">{{ item.startTime }} 至 {{ item.endTime }}</div>
                            </div>
                            <div>
                                <div class="category">活动详情:</div>
                                <div class="category">详情:</div>
                                <div class="category-value">{{ item.content }}</div>
                            </div>
                        </div>
@@ -577,7 +577,7 @@
            this.getSecurityList(this.currentPage, this.pagesize, this.activityType, this.searchActivity, startTime, endTime)
        },
        // 获取活动列表
        // 获取列表
        getSecurityList (current, size, type, name, startTime, endTime) {
            this.loading()
            var deptId = ""
@@ -601,7 +601,7 @@
            })
        },
        // 添加活动图标
        // 添加图标
        addActivityPoint () {
            this.activityList.forEach(item => {
                let positionObj = this.convertBillboardPositionDate(item, 'activity')
@@ -640,7 +640,7 @@
        },
        /**
         * @description: 点击活动列表活动
         * @description: 点击列表
         * @param {*} item
         * @param {*} index
         * @return {*}
@@ -672,20 +672,30 @@
            this.showingSecurityId = item.id
            // 加载当前活动面
            // 加载当前面
            if (item.activityArea && item.activityArea.length > 0) {
                let polyGonData = item.activityArea.slice(11, item.activityArea.length - 1)
                polyGonData = polyGonData.replace(/,/g, ";")
                polyGonData = polyGonData.replace(/ /g, ",")
                let newPolyData = polyGonData.split(';').map(item => {
                    let lngOrlat = item.split(',')
                    lngOrlat.push(140)
                this.$EventBus.$emit('layerPolygonAdd', {
                    layerName: 'polygonLayer',
                    positions: polyGonData,
                    material: global.DC.Namespace.Cesium.Color.fromBytes(139, 195, 74, 100)
                    lngOrlat = lngOrlat.join(',')
                    return lngOrlat
                }).join(';')
                console.log(newPolyData, 9599666)
                this.$EventBus.$emit('layerWallAdd', {
                    layerName: 'polygonWallLayer',
                    positions: newPolyData,
                    imgUrl: '/img/bg/jj.png'
                })
            }
            // 警员警车列表根据活动deptid筛选
            // 警员警车列表根据deptid筛选
            // 获取树状警员数据
            console.log('item', item.deptId, item)
            this.getPolicemanTree({ deptId: item.deptId })
@@ -751,7 +761,7 @@
            this.getSecurityCarList(this.showingSecurityId, this.policeSwitch, this.polylineBtnSwitch, 'line')
        },
        // 获取活动标绘箭头列表
        // 获取标绘箭头列表
        getSecurityPlotList (securityId, arrowShow, showType) {
            arrowsListLayer.clear()
            this.$refs.DRAWBTNBOX.removeDrawArrow()
@@ -883,7 +893,7 @@
            })
        },
        // 获取活动警员分布信息
        // 获取警员分布信息
        getSecurityPoliceList (securityId, pointShow) {
            this.$refs.DRAWBTNBOX.removeDraw()
@@ -1180,8 +1190,8 @@
            })
        },
        // 活动添加警车和范围
        // carId警车id, position坐标, securityId活动id, type线面类型,width缓存范围,color范围颜色
        // 添加警车和范围
        // carId警车id, position坐标, securityIdid, type线面类型,width缓存范围,color范围颜色
        addCarAndRange (params) {
            addCarAndRange(params).then(res => {
                if (res.data.success) {
@@ -1199,8 +1209,8 @@
            })
        },
        // 活动添加警员
        // policemanId警车id, position坐标, securityId活动id, type线面类型
        // 添加警员
        // policemanId警车id, position坐标, securityIdid, type线面类型
        addActivityPolice (params) {
            addActivityPolice(params).then(res => {
                if (res.data.success) {
@@ -1251,7 +1261,7 @@
        // 树形控件选中事件
        treeCheckClick (e1, e2) {
            // 没有选中活动就不展示实时图标
            // 没有选中就不展示实时图标
            const that = this
            this.$EventBus.$emit('mapRemoveLayer', {
                layerName: 'activeHeatLayer',
@@ -1308,6 +1318,7 @@
            // 清除定时器
            if (realPoliceTimer != {}) {
                for (let item in realPoliceTimer) {
                    console.log(`定时器realPoliceTimer[${item}]关闭了`)
                    clearInterval(realPoliceTimer[item])
                }
            }
@@ -1340,6 +1351,7 @@
         */
        clearLayerIconForMap (layerName) {
            realPoliceTimer[layerName] && clearInterval(realPoliceTimer[layerName])
            console.log(`定时器realPoliceTimer[${layerName}]关闭了`)
            this.$EventBus.$emit('mapClearLayer', {
                layerName: layerName,
                type: 'VectorLayer'
@@ -1383,7 +1395,7 @@
            }
        },
        // 关闭活动详情弹窗
        // 关闭详情弹窗
        closeActivityDetails () {
            this.dialogVisible = false
            this.polylineBtnSwitch = false
@@ -1409,6 +1421,7 @@
        // 定时查找实时警力资源
        searchRealResources (layerName) {
            console.log(`定时器realPoliceTimer[${layerName}]开启了`)
            console.log(`定时器[${layerName}]开启了`)
            let type = ''
            if (layerName == 'activityCarLayers') {
@@ -1639,8 +1652,8 @@
            }
        },
        // 保存活动标绘箭头
        // securityId活动id, position坐标, type标绘类型, name多边形名称,color标绘颜色,aera_type多边形类型
        // 保存标绘箭头
        // securityIdid, position坐标, type标绘类型, name多边形名称,color标绘颜色,aera_type多边形类型
        addSecurityPlot (params) {
            addSecurityPlot(params).then(res => {
                if (res.data.success) {
@@ -1849,7 +1862,7 @@
            this.lineEditVisible = false
        },
        // 删除活动标绘接口
        // 删除标绘接口
        deleteSecurityPlot (id) {
            deleteSecurityPlot(id).then(res => {
                if (res.data.success) {
@@ -1870,7 +1883,7 @@
            })
        },
        // 删除活动标绘
        // 删除标绘
        deletePlot () {
            this.deleteSecurityPlot(this.plotId)
            this.editPlotVisible = false
@@ -2009,6 +2022,7 @@
        // 清除定时器
        if (realPoliceTimer != {}) {
            for (let item in realPoliceTimer) {
                console.log(`定时器realPoliceTimer[${item}]关闭了`)
                clearInterval(realPoliceTimer[item])
            }
        }
@@ -2045,7 +2059,7 @@
        })
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'polygonLayer',
            layerName: 'polygonWallLayer',
            type: 'VectorLayer'
        })
src/views/activity/index1.vue
@@ -4,7 +4,7 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2022-12-29 15:46:00
 * @FilePath: \srs-police-affairs\src\views\activity\index.vue
 * @Description: 安保活动
 * @Description: 电子沙盘
 * 
 * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved. 
-->
@@ -28,12 +28,12 @@
                    <div class="category">选择时间:</div>
                    <div class="category-value">
                        <!-- <el-date-picker
                                    size="small"
                                    v-model="selectTime"
                                    type="date"
                                    placeholder="选择日期"
                                    style="width:268px"
                                ></el-date-picker>-->
                                            size="small"
                                            v-model="selectTime"
                                            type="date"
                                            placeholder="选择日期"
                                            style="width:268px"
                                        ></el-date-picker>-->
                        <el-date-picker v-model="selectTime" type="daterange" align="right" unlink-panels
                            format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" range-separator="至"
                            start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions"
@@ -173,8 +173,8 @@
                <div class="category">应急预案:</div>
                <div class="category-value">
                    <el-switch v-model="polylineSwitch" @change="switchChange" active-color="#13ce66"
                                inactive-color="#ccc"></el-switch>
                        </div>
                                        inactive-color="#ccc"></el-switch>
                                </div>
            </div>
            <div class="row-box">
@@ -186,17 +186,17 @@
            </div>-->
        <!-- <div class="row-box">
                        <div class="category">分析范围:</div>
                        <div class="category-value">
                            <el-input
                                @input="analyseChange"
                                size="mini"
                                type="number"
                                v-model="analyseInput"
                                placeholder="请输入范围"
                            ></el-input>
                        </div>
                    </div>-->
                                <div class="category">分析范围:</div>
                                <div class="category-value">
                                    <el-input
                                        @input="analyseChange"
                                        size="mini"
                                        type="number"
                                        v-model="analyseInput"
                                        placeholder="请输入范围"
                                    ></el-input>
                                </div>
                            </div>-->
            <div class="row-box">
                <el-button @click="arrangeDraw">预案布置</el-button>
src/views/home/components/rightContainer.vue
@@ -58,7 +58,7 @@
        <!-- <div class="alert-box" ref="alertBox">
            <div class="title" ref="alertBoxTitle">
                <div>安保活动</div>
                <div>电子沙盘</div>
                <div class="title-tab">
                    <span :class="{ choosed: acttype == 0 }" @click="actTabClick(0)">正在进行</span>/
                    <span :class="{ choosed: acttype == 1 }" @click="actTabClick(1)">历史活动</span>
src/views/layout/index.vue
@@ -67,16 +67,16 @@
        <!-- <div class="userIcon" :class="{on: userOn == true}" @click="openUser">
                <div class="userDetail" v-if="isShowUserDetail">
                    <div class="triangle"></div>
                                <div class="userName">用户名:{{userName}}</div>
                                <div class="userBtn">
                                    <div class="edit" @click="goTOLogin">
                                        >
                                        <img src="../../../public/img/editLogin.webp" alt />
                                    <div class="userName">用户名:{{userName}}</div>
                                    <div class="userBtn">
                                        <div class="edit" @click="goTOLogin">
                                            >
                                            <img src="../../../public/img/editLogin.webp" alt />
                                        </div>
                                        <div class="return" @click="goTOFllow">返回引导页</div>
                                    </div>
                                    <div class="return" @click="goTOFllow">返回引导页</div>
                                </div>
                            </div>
                        </div>-->
                            </div>-->
        </div>
        <div class="main-container">
@@ -155,7 +155,7 @@
                    ]
                },
                {
                    menuName: '安保活动',
                    menuName: '电子沙盘',
                    path: '/layout/activity'
                },
                {
src/views/video/list.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-08 10:04:26
 * @LastEditTime: 2023-03-22 16:21:27
 * @FilePath: \srs-police-affairs\src\views\video\list.vue
 * @Description: 辖区管理
 * 
@@ -207,7 +207,9 @@
            if (drawPlotLayers == null) {
                drawPlotLayers = new global.DC.VectorLayer('drawPlotLayers')
                global.viewer.addLayer(drawPlotLayers)
                plot = new global.DC.Plot(global.viewer)
                plot = new global.DC.Plot(global.viewer, {
                    clampToModel: true
                })
            }
        })
    },
src/views/video/region.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-02 16:11:51
 * @LastEditTime: 2023-03-22 16:21:34
 * @FilePath: \srs-police-affairs\src\views\video\region.vue
 * @Description: 辖区管理
 * 
@@ -35,9 +35,9 @@
                                <el-table-column prop="name" label="范围名称" min-width="50%"></el-table-column>
                                <el-table-column prop="extent" label="长度km/面积㎡" min-width="50%">
                                    <!-- <template slot-scope="scope">
                                                                            <span>{{ scope.row.extent }}</span>
                                                                            <span>千米</span>
                                                                        </template>-->
                                                                                <span>{{ scope.row.extent }}</span>
                                                                                <span>千米</span>
                                                                            </template>-->
                                </el-table-column>
                                <el-table-column prop="id" label="操作" min-width="50%">
                                    <template slot-scope="scope">
@@ -393,7 +393,9 @@
            if (rangeLayer == null) {
                rangeLayer = new global.DC.VectorLayer('rangeLayer')
                global.viewer.addLayer(rangeLayer)
                plot = new global.DC.Plot(global.viewer)
                plot = new global.DC.Plot(global.viewer, {
                    clampToModel: true
                })
            }
            if (rangeLineLayer == null) {
                rangeLineLayer = new global.DC.VectorLayer('rangeLineLayer')