guanqb
2022-09-22 9f8e48af30bbaa96f3e82038fa207510b83031a2
Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
6 files modified
3 files added
884 ■■■■ changed files
public/img/bg.png patch | view | raw | blame | history
public/img/icon/activity.png patch | view | raw | blame | history
public/img/icon/house.png patch | view | raw | blame | history
src/components/map/index.vue 122 ●●●● patch | view | raw | blame | history
src/styles/dc/index.scss 3 ●●●● patch | view | raw | blame | history
src/views/activity/index.vue 248 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 229 ●●●● patch | view | raw | blame | history
src/views/house/index.vue 272 ●●●●● patch | view | raw | blame | history
src/views/lyout/index.vue 10 ●●●●● patch | view | raw | blame | history
public/img/bg.png
public/img/icon/activity.png
public/img/icon/house.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: 2022-09-22 08:46:54
 * @LastEditTime: 2022-09-22 14:05:36
 * @FilePath: \srs-police-affairs\src\components\map\index.vue
 * @Description: 公用地图组件
 * 
@@ -62,99 +62,7 @@
            searchDetailsShow: false,
            videoExist: true,
            videoTotal: 0,
            carTotal: 0,
            searchList: [
                {
                    "name": "铅山县公安局食品药品与环境犯罪侦查大队",
                    "address": "江西省上饶市铅山县河口镇公安局铅山县公安局食品药品与环境犯罪侦查大队",
                    "adcode": "361124",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "铅山县",
                    "town": "河口镇"
                },
                {
                    "name": "老公安局",
                    "address": "江西省上饶市铅山县河口镇狮江大道老公安局",
                    "adcode": "361124",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "铅山县",
                    "town": "河口镇"
                },
                {
                    "name": "老市公安局",
                    "address": "江西省上饶市信州区东市街道金龙岗路18号老市公安局",
                    "adcode": "361102",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "信州区",
                    "town": "东市街道"
                },
                {
                    "name": "铅山县公安局",
                    "address": "江西省上饶市铅山县永平镇铅山县公安局",
                    "adcode": "361124",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "铅山县",
                    "town": "永平镇"
                },
                {
                    "name": "铅山县森林公安局",
                    "address": "江西省上饶市铅山县河口镇铅山县森林公安局",
                    "adcode": "361124",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "铅山县",
                    "town": "河口镇"
                },
                {
                    "name": "森林公安局",
                    "address": "江西省上饶市信州区灵溪街道森林公安局",
                    "adcode": "361102",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "信州区",
                    "town": "灵溪街道"
                },
                {
                    "name": "上饶市广丰区公安局",
                    "address": "江西省上饶市广丰区永丰街道裕丰大道36号上饶市广丰区公安局",
                    "adcode": "361103",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "广丰区",
                    "town": "永丰街道"
                },
                {
                    "name": "上饶市公安局",
                    "address": "江西省上饶市上饶县罗桥街道广信大道118号上饶市公安局",
                    "adcode": "361121",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "上饶县",
                    "town": "罗桥街道"
                },
                {
                    "name": "广信区公安局",
                    "address": "江西省上饶市上饶县罗桥街道旭日北大道666号广信区公安局",
                    "adcode": "361121",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "上饶县",
                    "town": "罗桥街道"
                },
                {
                    "name": "江西省玉山县公安局",
                    "address": "江西省上饶市玉山县冰溪街道人民大道166号江西省玉山县公安局",
                    "adcode": "361123",
                    "province": "江西省",
                    "city": "上饶市",
                    "district": "玉山县",
                    "town": "冰溪街道"
                }
            ]
            carTotal: 0
        }
    },
@@ -219,7 +127,10 @@
            wall.setStyle({
                material: new global.DC.WallTrailMaterialProperty({
                    color: global.DC.Color.BLUE,
                    color: global.DC.Namespace.Cesium.Color.fromBytes(
                        33, 150, 243,
                        200
                    ),
                    speed: 8
                })
            })
@@ -261,13 +172,13 @@
                // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                // fromDegrees()方法,将经纬度和高程转换为世界坐标
                destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                    116.027429, 28.681978, 8000.0
                    116.112550, 28.196631, 50000
                ),
                orientation: {
                    // 指向
                    heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                    // 视角
                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-45),
                    roll: 0.0
                }
            })
@@ -338,7 +249,7 @@
        })
        this.$EventBus.$on('layerPolygonAdd', (params) => {
            that.layerPolygonAdd(params.layerName, params.positions, params.material)
            that.layerPolygonAdd(params.layerName, params.positions, params.material, params.distanceDisplayCondition)
        })
        this.$EventBus.$on('layerPolylineAdd', (params) => {
@@ -483,14 +394,14 @@
                pointElement.size = [32, 32]
            } else if (type == "label") {
                pointElement = new global.DC.Label(new global.DC.Position(Number(params.lng), Number(params.lat), 0), params.url)
                pointElement = new global.DC.Label(new global.DC.Position(Number(params.lng), Number(params.lat), Number(params.alt)), params.text)
                pointElement.setStyle({
                    fillColor: global.DC.Color.CRIMSON,
                    style: global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
                    outlineColor: global.DC.Color.WHITE, // 边框颜色
                    outlineWidth: 8, // 边框大小,
                    font: '14px sans-serif',
                    outlineWidth: 4, // 边框大小,
                    font: '16px sans-serif',
                    pixelOffset: { x: 0, y: -24 }
                })
            }
@@ -506,8 +417,9 @@
         * @param {*} layerName 图层名称
         * @param {*} positions 图层位置数据
         * @param {*} material 颜色
         * @param {*} distanceDisplayCondition 可见距离
         */
        layerPolygonAdd (layerName, positions, material) {
        layerPolygonAdd (layerName, positions, material, distanceDisplayCondition) {
            if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
                this.mapAddLayer(layerName, 'VectorLayer')
@@ -518,6 +430,7 @@
            polygon.setStyle({
                material: material,
                distanceDisplayCondition: distanceDisplayCondition,
                perPositionHeight: true,
            })
@@ -606,9 +519,6 @@
            tilesetLayer.addOverlay(tilesetObject[titlesetName])
            // global.viewer.flyTo(tilesetObject[titlesetName])
            this.toPosition(116.027212, 28.678499, 600, -3, -45)
            tilesetObject[titlesetName].on(global.DC.MouseEventType.CLICK, incident)
        },
@@ -640,7 +550,7 @@
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 20px;
        left: 420px;
        bottom: 10px;
        width: 36px;
        height: 36px;
src/styles/dc/index.scss
@@ -11,13 +11,14 @@
.dc-location-bar {
    left: 50% !important;
    bottom: 10px !important;
    transform: translate(-50%, 0);
}
.dc-zoom-controller {
    top: auto !important;
    bottom: 56px !important;
    right: 20px !important;
    left: 420px !important;
    width: 36px !important;
    height: auto !important;
    border-radius: 5px !important;
src/views/activity/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 10:03:28
 * @LastEditTime: 2022-09-22 14:50:51
 * @FilePath: \srs-police-affairs\src\views\activity\index.vue
 * @Description: 安保活动
 * 
@@ -51,9 +51,10 @@
                <div class="table-box">
                    <div
                        class="row-box"
                        v-for="(item, index) in 6"
                        :class="{on: currentClickIndex === index}"
                        v-for="(item, index) in activityList"
                        :key="index"
                        @click="goAbDetail"
                        @click="goAbDetail(item, index)"
                    >
                        <div class="row-title">常规安保</div>
                        <div class="row-content">
@@ -73,51 +74,6 @@
                            </div>
                        </div>
                    </div>
                    <el-dialog
                        title="安保活动详情"
                        :visible.sync="dialogVisible"
                        width="25%"
                        height="70%"
                        :before-close="handleClose"
                        custom-class="tan"
                        center="false"
                    >
                        <table border="1" class="tableClass">
                            <tr>
                                <th>活动名称:</th>
                                <td>xxx活动</td>
                            </tr>
                            <tr>
                                <th>活动时间:</th>
                                <td>2022-08-01 00:00:00 至 2022-09-01 00:00:00</td>
                            </tr>
                            <tr>
                                <th>活动内容:</th>
                                <td>(1)在接到停电通知的状况下,管理运作部应事先将停电线路、区域、时光、电梯使用 以及安全防范要求等状况通知每个住户和商户,并在主要出入口发布停电通告;同时, 工程物料部应做好停电前的应变工作。</td>
                            </tr>
                            <tr>
                                <th></th>
                                <td>(2)在没有接到任何通知、突然发生停电的状况下,工程物料部应立即确认是内部故障 停电还是外部停电。若系内部故障停电,应立即派人查找原因采取措施,防止故障扩 大;若系外部停电,一方面要防止突然来电引发事故,一方面致电电力局查询停电状 况,了解何时恢复供电,并将了解的状况通知管理运作部。</td>
                            </tr>
                            <tr>
                                <th></th>
                                <td>(3)保安部立即会同工程物料部派人分头前往各楼检查电梯运行状况,发现电梯关人立 即按照电梯困人应急预案施救。</td>
                            </tr>
                            <tr>
                                <th>撤退路线</th>
                                <td>
                                    <input type="text" />
                                </td>
                            </tr>
                            <tr>
                                <th>设置xx范围:</th>
                                <td>
                                    <input type="text" />
                                </td>
                            </tr>
                        </table>
                        <span slot="footer" class="dialog-footer"></span>
                    </el-dialog>
                </div>
                <el-pagination
@@ -131,6 +87,7 @@
                ></el-pagination>
            </div>
        </div>
        <div class="second-container">
            <el-tree
                :data="treeData"
@@ -139,6 +96,62 @@
                @check="treeCheckClick"
                @node-click="treeNodeClick"
            ></el-tree>
        </div>
        <div v-show="dialogVisible" class="activity-details-box">
            <div class="row-box">
                <div class="category">活动名称:</div>
                <div class="category-value">xxx活动</div>
            </div>
            <div class="row-box">
                <div class="category">活动时间:</div>
                <div class="category-value">2022-08-01 00:00:00 至 2022-09-01 00:00:00</div>
            </div>
            <div class="row-box">
                <div class="category">活动内容1:</div>
                <div
                    class="category-value"
                >在接到停电通知的状况下,管理运作部应事先将停电线路、区域、时光、电梯使用 以及安全防范要求等状况通知每个住户和商户,并在主要出入口发布停电通告;同时, 工程物料部应做好停电前的应变工作。</div>
            </div>
            <div class="row-box">
                <div class="category">活动内容2:</div>
                <div
                    class="category-value"
                >在没有接到任何通知、突然发生停电的状况下,工程物料部应立即确认是内部故障 停电还是外部停电。若系内部故障停电,应立即派人查找原因采取措施,防止故障扩 大;若系外部停电,一方面要防止突然来电引发事故,一方面致电电力局查询停电状 况,了解何时恢复供电,并将了解的状况通知管理运作部。</div>
            </div>
            <div class="row-box">
                <div class="category">活动内容3:</div>
                <div class="category-value">保安部立即会同工程物料部派人分头前往各楼检查电梯运行状况,发现电梯关人立 即按照电梯困人应急预案施救。</div>
            </div>
            <div class="row-box">
                <div class="category">撤离路线:</div>
                <div class="category-value">
                    <el-switch
                        v-model="polylineSwitch"
                        @change="switchChange"
                        active-color="#13ce66"
                        inactive-color="#ccc"
                    ></el-switch>
                </div>
            </div>
            <!-- <div class="row-box">
                <div class="category">分析范围:</div>
                <div class="category-value">
                    <el-input
                        @change="analyseChange"
                        size="mini"
                        type="number"
                        v-model="analyseInput"
                        placeholder="请输入范围"
                    ></el-input>
                </div>
            </div>-->
        </div>
    </div>
</template>
@@ -305,12 +318,62 @@
                label: 'label'
            },
            dialogVisible: false,
            currentClickIndex: '',
            polylineSwitch: false,
            analyseInput: 100,
            activityList: [
                {
                    name: '1号活动点',
                    lng: 116.022874,
                    lat: 28.685070,
                    alt: 100,
                    url: '/img/icon/activity.png'
                },
                {
                    name: '2号活动点',
                    lng: 116.024714,
                    lat: 28.712694,
                    alt: 100,
                    url: '/img/icon/activity.png'
                },
                {
                    name: '3号活动点',
                    lng: 116.008424,
                    lat: 28.671837,
                    alt: 100,
                    url: '/img/icon/activity.png'
                },
                {
                    name: '4号活动点',
                    lng: 116.017702,
                    lat: 28.675881,
                    alt: 100,
                    url: '/img/icon/activity.png'
                },
                {
                    name: '5号活动点',
                    lng: 116.035375,
                    lat: 28.681407,
                    alt: 100,
                    url: '/img/icon/activity.png'
                }
            ]
        }
    },
    created () {
    },
    mounted () {
        this.$nextTick(() => {
            this.activityList.forEach(item => {
                this.$EventBus.$emit('layerPointAdd', {
                    layerName: 'activityLayers',
                    type: "billboard",
                    params: item,
                    incident: this.houseSiteClick
                })
            })
        })
    },
    updated () {
@@ -352,16 +415,64 @@
            })
            console.log(223232)
        },
        goAbDetail () {
            console.log(1)
        goAbDetail (item, index) {
            this.polylineSwitch = false
            this.$EventBus.$emit('mapClearLayer', {
                layerName: 'polylineLayer',
                type: 'VectorLayer'
            })
            this.dialogVisible = true
            this.currentClickIndex = index
            this.$EventBus.$emit('toPosition', {
                siteJd: item.lng,
                siteWd: item.lat,
                siteGd: 1500
            })
        },
        switchChange (e) {
            if (e == true) {
                this.$EventBus.$emit('layerPolylineAdd', {
                    layerName: 'polylineLayer',
                    positions: '116.023042, 28.684732; 116.023402, 28.679067; 116.023475, 28.678843; 116.023697, 28.678647; 116.024121, 28.678391; 116.026906, 28.678461; 116.027065, 28.676867; 116.033252, 28.676165',
                    material: global.DC.Namespace.Cesium.Color.fromBytes(
                        255, 0, 0,
                        255
                    ),
                    distanceDisplayCondition: {
                        near: 0, //最近距离
                        far: Number.MAX_VALUE //最远距离
                    }
                })
            } else {
                this.$EventBus.$emit('mapClearLayer', {
                    layerName: 'polylineLayer',
                    type: 'VectorLayer'
                })
            }
        },
        analyseChange (e) {
            console.log(e)
        }
    },
    destroyed () {
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'activeLayer',
            type: 'VectorLayer'
        })
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'activityLayers',
            type: 'VectorLayer'
        })
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'polylineLayer',
            type: 'VectorLayer'
        })
    }
@@ -417,6 +528,7 @@
                    margin: 10px;
                    padding: 10px;
                    background: rgba(15, 31, 50, 0.5);
                    cursor: pointer;
                    .row-content {
                        & > div {
@@ -440,6 +552,11 @@
                    background-color: rgba(255, 255, 255, 0.5);
                    color: #000;
                }
                .row-box.on {
                    background: rgba(255, 64, 0, 0.58);
                }
                :deep(.el-dialog) {
                    margin-right: 0px;
                }
@@ -472,5 +589,36 @@
            background: #0f1e2d;
        }
    }
    .activity-details-box {
        position: fixed;
        top: 80px;
        right: 0;
        width: 400px;
        padding: 10px;
        border-radius: 10px 0 0 10px;
        color: #fff;
        background: rgba(7, 22, 37, 0.8);
        overflow-x: hidden;
        overflow-y: auto;
        .row-box {
            width: 100%;
            line-height: 28px;
            display: flex;
            & > div {
                text-align: left;
            }
            .category {
                width: 96px;
            }
            .category-value {
                flex: 1;
            }
        }
    }
}
</style>
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-22 08:48:28
 * @LastEditTime: 2022-09-22 14:37:02
 * @FilePath: \srs-police-affairs\src\views\home\index.vue
 * @Description: 小区-栋-层-房屋
 * 
@@ -80,7 +80,7 @@
            </div>
            <div class="alert-box">
                <div class="title">
                    <div class="one-level">警情历史(近一年)</div>
                    <div class="one-level">历史警情(近一年)</div>
                    <!-- <div class="two-level">历史累计</div> -->
                </div>
@@ -93,7 +93,7 @@
            </div>
            <div class="crowd-box">
                <div class="title">
                    <div class="one-level">重点稳控/服务人群</div>
                    <div class="one-level">重点人群</div>
                    <div class="two-level">当前38</div>
                </div>
@@ -231,6 +231,8 @@
</template>
<script>
let cylinderLayer = null
export default {
    data () {
        return {
@@ -248,6 +250,44 @@
            phoneDetails: {},
            phoneTitle: '',
            phoneVisible: false,
            houseList: [
                {
                    name: '1号小区',
                    lng: 116.022877,
                    lat: 28.685077,
                    alt: 100,
                    url: '/img/icon/house.png'
                },
                {
                    name: '2号小区',
                    lng: 116.024711,
                    lat: 28.712695,
                    alt: 100,
                    url: '/img/icon/house.png'
                },
                {
                    name: '3号小区',
                    lng: 116.008426,
                    lat: 28.671838,
                    alt: 100,
                    url: '/img/icon/house.png'
                },
                {
                    name: '4号小区',
                    lng: 116.017700,
                    lat: 28.675880,
                    alt: 100,
                    url: '/img/icon/house.png'
                },
                {
                    name: '5号小区',
                    lng: 116.035374,
                    lat: 28.681405,
                    alt: 100,
                    url: '/img/icon/house.png'
                }
            ],
            carList: [{
                name: '1号警车',
@@ -319,7 +359,7 @@
            arr: [{ 'type': '孤寡老人', 'num': '0', 'radio': '0.00%' }, { 'type': '邪教人员', 'num': '1', 'radio': '2.00%' }, { 'type': '上访人员', 'num': '8', 'radio': '14.00%' }, { 'type': '涉毒', 'num': '15', 'radio': '27.00%' }, { 'type': '留守儿童', 'num': '6', 'radio': '11.00%' }, { 'type': '重点青少年', 'num': '5', 'radio': '9.00%' }],
            chooseData: {},
            oneSelected: '',
            oneSelected: '全部',
            twoSelected: '',
            threeSelected: '',
            twoChooseData: {},
@@ -400,7 +440,48 @@
                ]
            ]
            let position2 = [
                [
                    [116.015526, 28.647454, 0],
                    [116.285670, 28.732610, 0],
                    [116.146022, 28.726446, 0],
                    [116.063119, 28.708172, 0],
                ],
                [
                    [116.285670, 28.732610, 0],
                    [116.085312, 28.807226, 0],
                    [116.071504, 28.750699, 0],
                    [116.146022, 28.726446, 0],
                ],
                [
                    [116.085312, 28.807226, 0],
                    [115.930150, 28.733535, 0],
                    [116.045446, 28.729623, 0],
                    [116.071504, 28.750699, 0]
                ],
                [
                    [115.930150, 28.733535, 0],
                    [115.986738, 28.683523, 0],
                    [116.015526, 28.647454, 0],
                    [116.063119, 28.708172, 0],
                    [116.045446, 28.729623, 0]
                ],
                [
                    [116.045446, 28.729623, 0],
                    [116.063119, 28.708172, 0],
                    [116.146022, 28.726446, 0],
                    [116.071504, 28.750699, 0]
                ]
            ]
            cylinderLayer = new global.DC.PrimitiveLayer('cylinderLayer')
            global.viewer.addLayer(cylinderLayer)
            position.forEach((item, index) => {
                let str = ''
                item.forEach(it => {
                    str = str + `${it[0]},${it[1]},${it[2]};`
@@ -410,6 +491,49 @@
                    layerName: 'polygonLayer',
                    positions: str,
                    material: positionColor[index],
                    distanceDisplayCondition: {
                        near: 20000, //最近距离
                        far: Number.MAX_VALUE //最远距离
                    }
                })
                const center = this.getCenter(item)
                this.$EventBus.$emit('layerPointAdd', {
                    layerName: 'homePersonLayer',
                    type: 'label',
                    params: {
                        lng: center[0],
                        lat: center[1],
                        alt: 1200,
                        text: '5656'
                    }
                })
                let cylinder = new global.DC.LightCylinderPrimitive(new global.DC.Position(center[0], center[1]), 1200, 1, 600)
                cylinder.setStyle({
                    color: global.DC.Namespace.Cesium.Color.fromBytes(
                        102, 176, 255,
                        255
                    )
                })
                cylinderLayer.addOverlay(cylinder)
            })
            position2.forEach((item, index) => {
                let str = ''
                item.forEach(it => {
                    str = str + `${it[0]},${it[1]},${it[2]};`
                })
                this.$EventBus.$emit('layerPolygonAdd', {
                    layerName: 'polygonLayer',
                    positions: str,
                    material: positionColor[index],
                    distanceDisplayCondition: {
                        near: 0, //最近距离
                        far: 20000 //最远距离
                    }
                })
            })
@@ -419,6 +543,33 @@
    updated () {
    },
    methods: {
        getCenter (arr) {
            let centerLonLat = []
            if (arr.length) {
                const lon = []
                const lat = []
                const poly = []
                for (let i = 0, len = arr.length; i < len; i++) {
                    lon.push(arr[i][0])
                    lat.push(arr[i][1])
                }
                for (let i = 0, len = lon.length; i < len; i++) {
                    poly.push({
                        x: parseFloat(lon[i]),
                        y: parseFloat(lat[i]),
                        z: 0
                    })
                }
                const sortedLongitudeArray = poly.map(item => item.x).sort()
                const sortedLatitudeArray = poly.map(item => item.y).sort()
                const centerLongitude = ((parseFloat(sortedLongitudeArray[0]) + parseFloat(sortedLongitudeArray[sortedLongitudeArray.length - 1])) / 2).toFixed(14)
                const centerLatitude = ((parseFloat(sortedLatitudeArray[0]) + parseFloat(sortedLatitudeArray[sortedLatitudeArray.length - 1])) / 2).toFixed(14)
                console.log(centerLongitude, centerLatitude)
                centerLonLat = [Number(centerLongitude), Number(centerLatitude)]
            }
            return centerLonLat
        },
        navClick (e) {
            this.navType = e.target.dataset.type
        },
@@ -727,23 +878,26 @@
            option && myChart.setOption(option)
        },
        // 模型的点击事件
        tilesetClick (e) {
            this.$router.push({ path: '/lyout/house', query: { searchName: 'xxx小区' } })
        },
        houseChange (e) {
            if (e == true) {
                this.$EventBus.$emit('addMxTileset', {
                    titlesetName: 'sdTilesetLayer',
                    titlesetUrl: "/sd/tileset.json",
                    incident: this.tilesetClick
                this.houseList.forEach(item => {
                    this.$EventBus.$emit('layerPointAdd', {
                        layerName: 'houseLayers',
                        type: "billboard",
                        params: item,
                        incident: this.houseSiteClick
                    })
                })
            } else {
                this.$EventBus.$emit('removeMxTileset', {
                    titlesetName: 'sdTilesetLayer'
                this.$EventBus.$emit('mapClearLayer', {
                    layerName: 'houseLayers',
                    type: 'VectorLayer'
                })
            }
        },
        houseSiteClick (e) {
            this.$router.push({ path: '/lyout/house', query: { searchName: 'xxx小区' } })
        },
        carChange (e) {
@@ -819,7 +973,7 @@
        },
        getChooseData () {
            let arr1 = ['信州区车站派出所', '信州区沙溪派出所', '信州区灵溪派出所', '信州区北门派出所', '信州区江光派出所', '信州区水南派出所', '信州区秦峰派出所', '信州区茅家岭派出所', '信州区西市派出所', '信州区朝阳派出所']
            let arr1 = ['全部', '车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所', '水南派出所', '秦峰派出所', '茅家岭派出所', '西市派出所', '朝阳派出所']
            let arr2 = ['辖区1', '辖区2', '辖区3', '辖区4', '辖区5', '辖区6', '辖区7', '辖区8']
            let arr3 = ['A小区', 'B小区', 'C小区']
            var obj = {}
@@ -872,6 +1026,24 @@
    },
    watch: {
        oneSelected (item1, item2) {
            if (item1 == '全部') {
                this.$EventBus.$emit('toPosition', {
                    siteJd: 116.112550,
                    siteWd: 28.196631,
                    siteGd: 50000,
                    siteHeading: 0,
                    sitePitch: -45
                })
            } else if (item1 == '车站派出所') {
                this.$EventBus.$emit('toPosition', {
                    siteJd: 116.082737,
                    siteWd: 28.724034,
                    siteGd: 18000,
                    siteHeading: -3,
                    sitePitch: -90
                })
            }
            this.twoChooseData = this.chooseData[item1]
        },
        twoSelected (item1, item2) {
@@ -897,15 +1069,10 @@
            type: 'VectorLayer'
        })
        if (this.houseLayerShow == false) {
            this.$EventBus.$emit('addMxTileset', {
                titlesetName: 'sdTilesetLayer',
                titlesetUrl: "/sd/tileset.json",
                incident: this.tilesetClick
            })
        }
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'houseLayers',
            type: 'VectorLayer'
        })
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'carLayers',
@@ -926,6 +1093,18 @@
            layerName: 'panoramaLayers',
            type: 'VectorLayer'
        })
        this.$EventBus.$emit('mapClearLayer', {
            layerName: 'homePersonLayer',
            type: 'VectorLayer'
        })
        cylinderLayer.clear()
        cylinderLayer.remove()
        cylinderLayer = null
    },
}
</script>
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-21 18:07:42
 * @LastEditTime: 2022-09-22 11:24:11
 * @FilePath: \srs-police-affairs\src\views\house\index.vue
 * @Description: 小区-栋-层-房屋
 * 
@@ -18,7 +18,9 @@
        </div>
        <div class="result-content">
            <div class="housing-estate-info">
                <div class="housing-bg"></div>
                <div class="housing-bg">
                    <img style="width: 100%; height: 100%;" src="/img/bg.png" alt />
                </div>
                <div class="housing-introduce">
                    <div>
                        <div class="l">分类属性:</div>
@@ -56,10 +58,11 @@
                <div class="floor-content">
                    <div class="ridgepole-list">
                        <div
                            v-for="(item, index) in 10"
                            v-for="(item, index) in villageHousesList"
                            :key="index"
                            @click="ridgepoleNum = item"
                        >{{item}}栋</div>
                            @click="buildingClick(item)"
                            :class="{on: ridgepoleNum.name == item.name}"
                        >{{item.name}}</div>
                    </div>
                    <div class="ridgepole-info">
                        <div class="title">楼栋信息</div>
@@ -67,15 +70,15 @@
                        <div class="content">
                            <div>
                                <div>电梯</div>
                                <div>{{ ridgepoleNum != 10 ? '有' : '无' }}</div>
                                <div>{{ ridgepoleNum.elevator == true ? '有' : '无' }}</div>
                            </div>
                            <div>
                                <div>楼层总数</div>
                                <div>{{ ridgepoleNum != (2 || 6 || 10) ? 54 : 60}}</div>
                                <div>{{ ridgepoleNum.floorAll }}</div>
                            </div>
                            <div>
                                <div>户室总数</div>
                                <div>{{ ridgepoleNum != (2 || 6 || 10) ? 200 : 240}}</div>
                                <div>{{ ridgepoleNum.familyRoom }}</div>
                            </div>
                        </div>
                    </div>
@@ -85,26 +88,26 @@
                        <div class="content">
                            <div class="one">
                                <div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 40 : 60}}</div>
                                    <div>{{ ridgepoleNum.realityPerson }}</div>
                                    <div>实有人口</div>
                                </div>
                                <div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 10 : 15}}</div>
                                    <div>{{ ridgepoleNum.emphasisPerson }}</div>
                                    <div>重点人口</div>
                                </div>
                            </div>
                            <div class="two">
                                <div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 6 : 14}}</div>
                                    <div>{{ ridgepoleNum.kosekiPerson }}</div>
                                    <div>户籍人口</div>
                                </div>
                                <div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 9 : 22}}</div>
                                    <div>{{ ridgepoleNum.flowPerson }}</div>
                                    <div>流动人口</div>
                                </div>
                                <div>
                                    <div>{{ ridgepoleNum != (2 || 6 || 10) ? 22 : 8}}</div>
                                    <div>{{ ridgepoleNum.outsidePerson }}</div>
                                    <div>境外人口</div>
                                </div>
                            </div>
@@ -115,19 +118,19 @@
                        <div class="content">
                            <div>
                                <div>7</div>
                                <div>{{ ridgepoleNum.houseAll }}</div>
                                <div>房屋总数</div>
                            </div>
                            <div>
                                <div>2</div>
                                <div>{{ ridgepoleNum.rent }}</div>
                                <div>出租</div>
                            </div>
                            <div>
                                <div>2</div>
                                <div>{{ ridgepoleNum.occupation }}</div>
                                <div>自住</div>
                            </div>
                            <div>
                                <div>2</div>
                                <div>{{ ridgepoleNum.vacancy }}</div>
                                <div>空置</div>
                            </div>
                        </div>
@@ -303,7 +306,24 @@
export default {
    data () {
        return {
            ridgepoleNum: 1,
            ridgepoleNum: {
                name: '1栋',
                lng: 116.020894,
                lat: 28.687406,
                alt: 360,
                elevator: true,
                floorAll: 48,
                familyRoom: 288,
                realityPerson: 160,
                emphasisPerson: 16,
                kosekiPerson: 98,
                flowPerson: 20,
                outsidePerson: 16,
                houseAll: 288,
                rent: 120,
                occupation: 160,
                vacancy: 8
            },
            searchHouse: '',
            navType: 0,
            arr: [
@@ -339,6 +359,188 @@
                }
            ],
            dialogVisible: false,
            villageHousesList: [
                {
                    name: '1栋',
                    lng: 116.020894,
                    lat: 28.687406,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 288,
                    realityPerson: 160,
                    emphasisPerson: 16,
                    kosekiPerson: 98,
                    flowPerson: 20,
                    outsidePerson: 16,
                    houseAll: 288,
                    rent: 120,
                    occupation: 160,
                    vacancy: 8
                },
                {
                    name: '2栋',
                    lng: 116.020919,
                    lat: 28.686838,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 260,
                    realityPerson: 156,
                    emphasisPerson: 11,
                    kosekiPerson: 126,
                    flowPerson: 26,
                    outsidePerson: 16,
                    houseAll: 260,
                    rent: 80,
                    occupation: 148,
                    vacancy: 32
                },
                {
                    name: '3栋',
                    lng: 116.020980,
                    lat: 28.686286,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 288,
                    realityPerson: 160,
                    emphasisPerson: 16,
                    kosekiPerson: 98,
                    flowPerson: 20,
                    outsidePerson: 16,
                    houseAll: 288,
                    rent: 120,
                    occupation: 160,
                    vacancy: 8
                },
                {
                    name: '4栋',
                    lng: 116.021010,
                    lat: 28.685721,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 260,
                    realityPerson: 156,
                    emphasisPerson: 11,
                    kosekiPerson: 126,
                    flowPerson: 26,
                    outsidePerson: 16,
                    houseAll: 260,
                    rent: 80,
                    occupation: 148,
                    vacancy: 32
                },
                {
                    name: '5栋',
                    lng: 116.021033,
                    lat: 28.685127,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 288,
                    realityPerson: 160,
                    emphasisPerson: 16,
                    kosekiPerson: 98,
                    flowPerson: 20,
                    outsidePerson: 16,
                    houseAll: 288,
                    rent: 120,
                    occupation: 160,
                    vacancy: 8
                },
                {
                    name: '6栋',
                    lng: 116.024115,
                    lat: 28.685852,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 260,
                    realityPerson: 156,
                    emphasisPerson: 11,
                    kosekiPerson: 126,
                    flowPerson: 26,
                    outsidePerson: 16,
                    houseAll: 260,
                    rent: 80,
                    occupation: 148,
                    vacancy: 32
                },
                {
                    name: '7栋',
                    lng: 116.024124,
                    lat: 28.685838,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 288,
                    realityPerson: 160,
                    emphasisPerson: 16,
                    kosekiPerson: 98,
                    flowPerson: 20,
                    outsidePerson: 16,
                    houseAll: 288,
                    rent: 120,
                    occupation: 160,
                    vacancy: 8
                },
                {
                    name: '8栋',
                    lng: 116.028297,
                    lat: 28.686011,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 260,
                    realityPerson: 156,
                    emphasisPerson: 11,
                    kosekiPerson: 126,
                    flowPerson: 26,
                    outsidePerson: 16,
                    houseAll: 260,
                    rent: 80,
                    occupation: 148,
                    vacancy: 32
                },
                {
                    name: '9栋',
                    lng: 116.028294,
                    lat: 28.686452,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 288,
                    realityPerson: 160,
                    emphasisPerson: 16,
                    kosekiPerson: 98,
                    flowPerson: 20,
                    outsidePerson: 16,
                    houseAll: 288,
                    rent: 120,
                    occupation: 160,
                    vacancy: 8
                },
                {
                    name: '10栋',
                    lng: 116.027542,
                    lat: 28.686920,
                    alt: 360,
                    elevator: true,
                    floorAll: 48,
                    familyRoom: 260,
                    realityPerson: 156,
                    emphasisPerson: 11,
                    kosekiPerson: 126,
                    flowPerson: 26,
                    outsidePerson: 16,
                    houseAll: 260,
                    rent: 80,
                    occupation: 148,
                    vacancy: 32
                }
            ],
            JWdetails: {},
            apartmentOptions: [{
                value: '1',
@@ -366,6 +568,19 @@
    mounted () {
        this.$nextTick(() => {
            this.searchHouse = this.$route.query.searchName
            this.$EventBus.$emit('addMxTileset', {
                titlesetName: 'sdTilesetLayer',
                titlesetUrl: '/sd/tileset.json'
            })
            this.$EventBus.$emit('toPosition', {
                siteJd: 116.027212,
                siteWd: 28.678499,
                siteGd: 600,
                siteHeading: -3,
                sitePitch: -45
            })
        })
    },
    updated () {
@@ -393,6 +608,22 @@
            this.residentDetailsShow = false
        },
        buildingClick (item) {
            if (item.name == this.ridgepoleNum.name) return
            this.ridgepoleNum = item
            this.ridgepoleNum.siteJd = item.lng
            this.ridgepoleNum.siteWd = item.lat
            this.ridgepoleNum.siteGd = item.alt
            this.$EventBus.$emit('toPosition', this.ridgepoleNum)
        }
    },
    destroyed () {
        this.$EventBus.$emit('removeMxTileset', {
            titlesetName: 'sdTilesetLayer'
        })
    }
}
</script>
@@ -492,6 +723,11 @@
                        height: 36px;
                        border: 1px solid #ccc;
                        cursor: pointer;
                        &.on {
                            color: orange;
                            border-color: orange;
                        }
                    }
                }
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 17:50:48
 * @LastEditTime: 2022-09-22 11:21:18
 * @FilePath: \srs-police-affairs\src\views\lyout\index.vue
 * @Description: 
 * 
@@ -64,14 +64,11 @@
                    menuName: '安保活动',
                    path: '/lyout/activity'
                },
            ],
            // 当前跳转的路径
            currentPath: ''
            ]
        }
    },
    mounted () {
        this.currentPath = this.$route.path
    },
    methods: {
@@ -83,8 +80,7 @@
         */
        goToPath (params) {
            if (params.path) {
                if (params.path == this.currentPath) return
                this.currentPath = params.path
                if (this.$route.path == params.path) return
                this.$router.push(params.path)
            } else {
                params.childrenFlag = !params.childrenFlag