guanqb
2022-09-22 c908cf542d2e8e1e278b94dc9aa6162cdd4648f9
Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
8 files modified
319 ■■■■ changed files
src/components/map/index.vue 15 ●●●●● patch | view | raw | blame | history
src/styles/base/index.scss 17 ●●●●● patch | view | raw | blame | history
src/styles/dc/index.scss 31 ●●●●● patch | view | raw | blame | history
src/views/home/index.vue 83 ●●●● patch | view | raw | blame | history
src/views/house/index.vue 26 ●●●●● patch | view | raw | blame | history
src/views/lyout/index.vue 3 ●●●● patch | view | raw | blame | history
src/views/police/index.vue 142 ●●●● patch | view | raw | blame | history
src/views/video/index.vue 2 ●●● 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: 2022-09-21 10:13:38
 * @LastEditTime: 2022-09-22 08:46:54
 * @FilePath: \srs-police-affairs\src\components\map\index.vue
 * @Description: 公用地图组件
 * 
@@ -349,8 +349,8 @@
            that.layerShow(params.layerName, params.flag)
        })
        this.$EventBus.$on('flyToPosition', (params) => {
            that.flyToPosition(params.siteJd, params.siteWd, params.siteGd, params.siteHeading, params.sitePitch, params.siteRoll, params.time)
        this.$EventBus.$on('toPosition', (params) => {
            that.toPosition(params.siteJd, params.siteWd, params.siteGd, params.siteHeading, params.sitePitch, params.siteRoll, params.time)
        })
@@ -364,11 +364,6 @@
            that.removeMxTileset(params.titlesetName, params.incident)
        })
        this.$EventBus.$emit('addMxTileset', {
            titlesetName: 'sdOrrTilesetLayer',
            titlesetUrl: "/sd/tileset.json",
            incident: this.tilesetClick
        })
    },
    methods: {
@@ -572,7 +567,7 @@
         * @param {*} siteRoll 翻转角度,默认0
         * @param {*} time 飞行时间,默认3秒
         */
        flyToPosition (siteJd, siteWd, siteGd = 2000, siteHeading = 0, sitePitch = -90, siteRoll = 0, time = 3) {
        toPosition (siteJd, siteWd, siteGd = 2000, siteHeading = 0, sitePitch = -90, siteRoll = 0, time = 3) {
            global.viewer.flyToPosition(
                new global.DC.Position(
                    Number(siteJd),
@@ -612,7 +607,7 @@
            // global.viewer.flyTo(tilesetObject[titlesetName])
            this.flyToPosition(116.027212, 28.678499, 600, -3, -45)
            this.toPosition(116.027212, 28.678499, 600, -3, -45)
            tilesetObject[titlesetName].on(global.DC.MouseEventType.CLICK, incident)
        },
src/styles/base/index.scss
@@ -80,4 +80,21 @@
            flex: 1;
        }
    }
}
.phone-details-box {
    .el-dialog {
        margin: 0 !important;
        display: flex;
        flex-direction: column;
        width: 320px;
        height: 220px;
        top: 50%;
        left: 50% !important;
        transform: translate(-50%, -50%);
        .el-dialog__body {
            flex: 1;
        }
    }
}
src/styles/dc/index.scss
@@ -7,4 +7,35 @@
    .scale-bar {
        border-color: #000 !important;
    }
}
.dc-location-bar {
    left: 50% !important;
    transform: translate(-50%, 0);
}
.dc-zoom-controller {
    top: auto !important;
    bottom: 56px !important;
    right: 20px !important;
    width: 36px !important;
    height: auto !important;
    border-radius: 5px !important;
    background: #fff !important;
    z-index: 101 !important;
    &>div {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 36px !important;
        height: 36px !important;
        svg {
            width: 20px !important;
            height: 20px !important;
            fill: #666 !important;
        }
    }
}
src/views/home/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2022-09-21 12:03:05
 * @LastEditTime: 2022-09-22 08:48:28
 * @FilePath: \srs-police-affairs\src\views\home\index.vue
 * @Description: 小区-栋-层-房屋
 * 
@@ -193,6 +193,40 @@
                ></iframe>
            </div>
        </el-dialog>
        <el-dialog
            :title="phoneTitle"
            :modal="true"
            :visible.sync="phoneVisible"
            :before-close="phoneBeforeClose"
            :close-on-click-modal="true"
            class="phone-details-box"
        >
            <div style="flex: 1; display: flex; flex-direction: column; width: 100%; height: 100%;">
                <div style="display: flex; justify-content: space-between; align-items: center;">
                    <div>责任人:</div>
                    <div>{{phoneDetails.person}}</div>
                </div>
                <div
                    style="flex: 1; display: flex; justify-content: space-between; align-items: center;"
                >
                    <div>联系方式:</div>
                    <div>{{phoneDetails.phoneID}}</div>
                </div>
                <div
                    style="flex: 1; display: flex; justify-content: space-between; align-items: center;"
                >
                    <div>手台类型:</div>
                    <div>{{phoneDetails.phoneType}}</div>
                </div>
                <div
                    style="flex: 1; display: flex; justify-content: space-between; align-items: center;"
                >
                    <div>所在地址:</div>
                    <div>{{phoneDetails.location}}</div>
                </div>
            </div>
        </el-dialog>
    </div>
</template>
@@ -201,7 +235,7 @@
    data () {
        return {
            navType: 0,
            houseLayerShow: false,
            houseLayerShow: true,
            carLayerShow: false,
            phoneLayerShow: false,
            monitoringLayerShow: false,
@@ -210,6 +244,10 @@
            dialogVisible: false,
            panoramaTitle: '',
            panoramaVisible: false,
            phoneDetails: {},
            phoneTitle: '',
            phoneVisible: false,
            carList: [{
                name: '1号警车',
@@ -374,6 +412,8 @@
                    material: positionColor[index],
                })
            })
            this.houseChange(true)
        })
    },
    updated () {
@@ -516,7 +556,6 @@
            for (let i = 0; i < dataArr.length; i++) {
                regionTotal += dataArr[i].value
            }
            console.log(regionTotal)
            option = {
                title: {
                    show: true,
@@ -731,7 +770,8 @@
                    this.$EventBus.$emit('layerPointAdd', {
                        layerName: 'phoneLayers',
                        type: "billboard",
                        params: item
                        params: item,
                        incident: this.phoneSiteClick
                    })
                })
            } else {
@@ -787,7 +827,6 @@
                obj[arr1[i]] = {}
                for (let j = 0; j < arr2.length; j++) {
                    let str = arr1[i] + arr2[j]
                    console.log('str', str)
                    obj[arr1[i]][str] = []
                    for (let k = 0; k < arr3.length; k++) {
                        obj[arr1[i]][str].push(str + arr3[k])
@@ -817,6 +856,16 @@
            this.panoramaVisible = true
        },
        phoneSiteClick (e) {
            this.phoneTitle = e.overlay.attrParams.name
            this.phoneDetails = e.overlay.attrParams
            this.phoneVisible = true
        },
        phoneBeforeClose () {
            this.phoneVisible = false
        },
        panoramaBeforeClose () {
            this.panoramaVisible = false
        }
@@ -829,16 +878,16 @@
            this.threeChooseData = this.twoChooseData[item1]
        },
        threeSelected (newData, oldData) {
            if (newData != '' && this.houseLayerShow == false) {
                this.houseLayerShow = true
                this.houseChange(this.houseLayerShow)
            }
            this.$EventBus.$on('flyToPosition', {
            this.$EventBus.$emit('toPosition', {
                siteJd: 116.026912,
                siteWd: 28.683599,
                siteGd: 400
            })
            if (newData != '' && this.houseLayerShow == false) {
                this.houseLayerShow = true
                this.houseChange(this.houseLayerShow)
            }
        },
    },
@@ -848,9 +897,15 @@
            type: 'VectorLayer'
        })
        this.$EventBus.$emit('removeMxTileset', {
            titlesetName: 'sdTilesetLayer'
        })
        if (this.houseLayerShow == false) {
            this.$EventBus.$emit('addMxTileset', {
                titlesetName: 'sdTilesetLayer',
                titlesetUrl: "/sd/tileset.json",
                incident: this.tilesetClick
            })
        }
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'carLayers',
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: 2022-09-20 18:05:18
 * @LastEditTime: 2022-09-21 18:07:42
 * @FilePath: \srs-police-affairs\src\views\house\index.vue
 * @Description: 小区-栋-层-房屋
 * 
@@ -55,7 +55,11 @@
                <div class="floor-content">
                    <div class="ridgepole-list">
                        <div v-for="(item, index) in 10" :key="index">{{item}}栋</div>
                        <div
                            v-for="(item, index) in 10"
                            :key="index"
                            @click="ridgepoleNum = item"
                        >{{item}}栋</div>
                    </div>
                    <div class="ridgepole-info">
                        <div class="title">楼栋信息</div>
@@ -63,15 +67,15 @@
                        <div class="content">
                            <div>
                                <div>电梯</div>
                                <div>有</div>
                                <div>{{ ridgepoleNum != 10 ? '有' : '无' }}</div>
                            </div>
                            <div>
                                <div>楼层总数</div>
                                <div>60</div>
                                <div>{{ ridgepoleNum != (2 || 6 || 10) ? 54 : 60}}</div>
                            </div>
                            <div>
                                <div>户室总数</div>
                                <div>240</div>
                                <div>{{ ridgepoleNum != (2 || 6 || 10) ? 200 : 240}}</div>
                            </div>
                        </div>
                    </div>
@@ -81,26 +85,26 @@
                        <div class="content">
                            <div class="one">
                                <div>
                                    <div>31</div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 40 : 60}}</div>
                                    <div>实有人口</div>
                                </div>
                                <div>
                                    <div>12</div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 10 : 15}}</div>
                                    <div>重点人口</div>
                                </div>
                            </div>
                            <div class="two">
                                <div>
                                    <div>6</div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 6 : 14}}</div>
                                    <div>户籍人口</div>
                                </div>
                                <div>
                                    <div>18</div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 9 : 22}}</div>
                                    <div>流动人口</div>
                                </div>
                                <div>
                                    <div>7</div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 22 : 8}}</div>
                                    <div>境外人口</div>
                                </div>
                            </div>
@@ -299,6 +303,7 @@
export default {
    data () {
        return {
            ridgepoleNum: 1,
            searchHouse: '',
            navType: 0,
            arr: [
@@ -468,6 +473,7 @@
                    line-height: 26px;
                    border-radius: 13px;
                    background: #0158a2;
                    cursor: pointer;
                }
            }
src/views/lyout/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:24
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2022-09-21 10:42:58
 * @LastEditTime: 2022-09-21 17:50:48
 * @FilePath: \srs-police-affairs\src\views\lyout\index.vue
 * @Description: 
 * 
@@ -69,6 +69,7 @@
            currentPath: ''
        }
    },
    mounted () {
        this.currentPath = this.$route.path
    },
src/views/police/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2022-09-20 14:56:52
 * @LastEditTime: 2022-09-21 17:29:25
 * @FilePath: \srs-police-affairs\src\views\police\index.vue
 * @Description: 辖区管理
 * 
@@ -108,6 +108,40 @@
                ></video>
            </div>
        </el-dialog>
        <el-dialog
            :title="phoneTitle"
            :modal="true"
            :visible.sync="phoneVisible"
            :before-close="phoneBeforeClose"
            :close-on-click-modal="true"
            class="phone-details-box"
        >
            <div style="flex: 1; display: flex; flex-direction: column; width: 100%; height: 100%;">
                <div style="display: flex; justify-content: space-between; align-items: center;">
                    <div>责任人:</div>
                    <div>{{phoneDetails.person}}</div>
                </div>
                <div
                    style="flex: 1; display: flex; justify-content: space-between; align-items: center;"
                >
                    <div>联系方式:</div>
                    <div>{{phoneDetails.phoneID}}</div>
                </div>
                <div
                    style="flex: 1; display: flex; justify-content: space-between; align-items: center;"
                >
                    <div>手台类型:</div>
                    <div>{{phoneDetails.phoneType}}</div>
                </div>
                <div
                    style="flex: 1; display: flex; justify-content: space-between; align-items: center;"
                >
                    <div>所在地址:</div>
                    <div>{{phoneDetails.location}}</div>
                </div>
            </div>
        </el-dialog>
    </div>
</template>
@@ -123,6 +157,9 @@
            arr2: [],
            dialogTitle: '',
            dialogVisible: false,
            phoneDetails: {},
            phoneTitle: '',
            phoneVisible: false,
        }
    },
    created () {
@@ -140,36 +177,77 @@
        },
        getData () {
            for (let i = 0; i < 5; i++) {
                let lng = 116.011126 + Math.random() * 0.005
                let lat = 28.651340 + Math.random() * 0.005
            let carList = [{
                carID: '赣E59601',
                carType: '大众',
                name: '1号警车',
                lng: 116.022877,
                lat: 28.685077,
                alt: 100,
                url: '/img/icon/car.png'
            }, {
                carID: '赣E36601',
                carType: '大众',
                name: '2号警车',
                lng: 116.029917,
                lat: 28.685360,
                alt: 100,
                url: '/img/icon/car.png'
            }, {
                carID: '赣E96250',
                carType: '大众',
                name: '3号警车',
                lng: 116.031044,
                lat: 28.679445,
                alt: 100,
                url: '/img/icon/car.png'
            }]
            carList.forEach(item => {
                this.$EventBus.$emit('layerPointAdd', {
                    layerName: 'carLayers',
                    type: "billboard",
                    params: {
                        name: `${i}号警车`,
                        lng: lng,
                        lat: lat,
                        alt: 100,
                        url: '/img/icon/car.png'
                    },
                    params: item,
                    incident: this.siteClick
                })
                let carNum = Math.random() * 5000000 + ''
            })
                this.arr.push({ "carID": `#${carNum.slice(0, 6)}`, "carType": "大众", lng: lng, lat: lat, name: `${i}号警车`, url: '/img/icon/car.png' })
            }
            this.arr = carList
            for (let i = 0; i < 5; i++) {
                let lng = 116.011126 + Math.random() * 0.005
                let lat = 28.651340 + Math.random() * 0.005
                let phoneNum = Math.random() * 500000000 + ''
                this.arr2.push({ "phoneID": `${phoneNum.slice(0, 8)}`, "phoneType": "华为", lng: lng, lat: lat, name: `${i}号手台`, url: '/img/icon/phone.png' })
            }
            this.arr2 = [{
                person: "李会军",
                phoneID: 17596842661,
                phoneType: '华为',
                name: '1号手台',
                lng: 116.026804,
                lat: 28.678568,
                alt: 100,
                location: '信州区XXXX大道XXXX路',
                url: '/img/icon/phone.png'
            }, {
                person: "赵志刚",
                phoneID: 17336902661,
                phoneType: '华为',
                name: '2号手台',
                lng: 116.027659,
                lat: 28.678623,
                alt: 100,
                location: '信州区XXXX大道XXXX路',
                url: '/img/icon/phone.png'
            }, {
                person: "王刚",
                phoneID: 17336956501,
                phoneType: '华为',
                name: '3号手台',
                lng: 116.026759,
                lat: 28.680071,
                alt: 100,
                location: '信州区XXXX大道XXXX路',
                url: '/img/icon/phone.png'
            }]
        },
@@ -206,21 +284,15 @@
                    this.$EventBus.$emit('layerPointAdd', {
                        layerName: 'phoneLayers',
                        type: "billboard",
                        params: {
                            name: item.name,
                            lng: item.lng,
                            lat: item.lat,
                            alt: 100,
                            url: item.url
                        },
                        incident: this.siteClick
                        params: item,
                        incident: this.phoneSiteClick
                    })
                })
            }
        },
        rowClick (row) {
            this.$EventBus.$emit('flyToPosition', {
            this.$EventBus.$emit('toPosition', {
                layerName: 'carLayers',
                siteJd: row.lng,
                siteWd: row.lat
@@ -237,10 +309,20 @@
            }
        },
        phoneSiteClick (e) {
            this.phoneTitle = e.overlay.attrParams.name
            this.phoneDetails = e.overlay.attrParams
            this.phoneVisible = true
        },
        dialogBeforeClose () {
            this.$refs.videoElement.pause()
            this.dialogVisible = false
        },
        phoneBeforeClose () {
            this.phoneVisible = false
        }
    },
    destroyed () {
src/views/video/index.vue
@@ -129,7 +129,7 @@
        },
        rowClick (row) {
            this.$EventBus.$emit('flyToPosition', {
            this.$EventBus.$emit('toPosition', {
                layerName: 'carLayers',
                siteJd: row.lng,
                siteWd: row.lat