guanqb
2023-01-14 ade7f133061637f283b7c00567daf86f4c37c926
社区感知详细数据对接
3 files modified
663 ■■■■■ changed files
src/api/dept/index.js 34 ●●●● patch | view | raw | blame | history
src/views/home/components/leftContainer.vue 5 ●●●●● patch | view | raw | blame | history
src/views/house/index.vue 624 ●●●●● patch | view | raw | blame | history
src/api/dept/index.js
@@ -161,15 +161,37 @@
}
// 转id
export const getAoiByBgId = (bg_id) => {
// export const getAoiByBgId = (bg_id) => {
//     return request({
//         url: `/sf3d/area/getAoiByBgId`,
//         method: 'get',
//         requestBaseUrl: 'fengt',
//         params: {
//             bg_id,
//             adcode: 361102,
//             type: 0
//         }
//     })
// }
// 责任民警所属辖区
export const getVillageInfo = (aoiId) => {
    return request({
        url: `/sf3d/area/getAoiByBgId`,
        url: `/api/villageInfo/villageInfo/details`,
        method: 'get',
        requestBaseUrl: 'fengt',
        params: {
            bg_id,
            adcode: 361102,
            type: 0
            aoiId
        }
    })
}
// 户籍人口、重点人口信息
export const getVillagePersonStatisticInfoByBuildId = (buildId) => {
    return request({
        url: `/api/villagePersonInfo/villagePersonInfo/getVillagePersonStatisticInfoByBuildId`,
        method: 'get',
        params: {
            buildId
        }
    })
}
src/views/home/components/leftContainer.vue
@@ -618,6 +618,7 @@
                },
                yAxis: {
                    type: 'value',
                    minInterval: 1,
                    splitLine: {
                        show: false
                    },
@@ -1016,7 +1017,7 @@
                    let nameArr = []
                    let countArr = []
                    res.data.data.data.forEach(item => {
                        nameArr.push(item.name)
                        nameArr.push(item.name.replace('派出', ''))
                        countArr.push(item.count)
                    })
                    this.villageOptionData = [nameArr, countArr]
@@ -1026,7 +1027,7 @@
                    let nameArr = []
                    let countArr = []
                    res.data.data.data.forEach(item => {
                        nameArr.push(item.name)
                        nameArr.push(item.name.replace('派出', ''))
                        countArr.push(item.count)
                    })
                    this.areaOptionData = [nameArr, countArr]
src/views/house/index.vue
@@ -16,8 +16,13 @@
                <!-- <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" />
                <button @click="searchClick" class="el-icon-search"></button>-->
                <el-popover ref="popover" placement="bottom" trigger="click" :visible-arrow="false"
                    popper-class="tree-search-popup">
                <el-popover
                    ref="popover"
                    placement="bottom"
                    trigger="click"
                    :visible-arrow="false"
                    popper-class="tree-search-popup"
                >
                    <el-input placeholder="请输入搜索条件" v-model="filterText"></el-input>
                    <!-- <el-tree
@@ -34,26 +39,40 @@
                        check-strictly
                        :filter-node-method="filterNode"
                    ></el-tree>-->
                    <el-tree style="width: 360px; height: 400px; overflow: auto;" class="select-tree-box" :props="props"
                        :load="loadNode" ref="popupTree" lazy></el-tree>
                    <el-tree
                        style="width: 360px; height: 400px; overflow: auto;"
                        class="select-tree-box"
                        :props="props"
                        :load="loadNode"
                        ref="popupTree"
                        lazy
                    ></el-tree>
                </el-popover>
                <el-input slot="reference" v-model="prop" v-popover:popover :readonly="true" placeholder="请输入搜索条件"
                    style="cursor: pointer;"></el-input>
                <el-input
                    slot="reference"
                    v-model="prop"
                    v-popover:popover
                    :readonly="true"
                    placeholder="请输入搜索条件"
                    style="cursor: pointer;"
                ></el-input>
            </div>
            <div v-show="searchValBoxShow" class="search-val-box">
                <div>
                    <div @click="searchVlaClick(item)" v-for="(item, index) in searchArray" :key="index">{{ item.name }}
                    </div>
                    <div
                        @click="searchVlaClick(item)"
                        v-for="(item, index) in searchArray"
                        :key="index"
                    >{{ item.name }}</div>
                </div>
            </div>
            <div v-show="contentShow" class="result-content" ref="resultContentBox">
                <div class="housing-estate-info" ref="housingEstateInfoBox">
                    <div class="housing-title">
                        <!-- {{ housingData.name }} -->
                        xxx
                        {{ villageInfo.name }}
                        <div class="progress"></div>
                    </div>
                    <div class="housing-bg">
@@ -62,34 +81,60 @@
                    <div class="housing-introduce">
                        <div>
                            <div class="l">分类属性:</div>
                            <!-- <div class="r">{{ housingData.classify }}</div> -->
                            <div class="r">{{ villageInfo.type_name }}</div>
                        </div>
                        <div>
                            <div class="l">所属辖区:</div>
                            <!-- <div class="r">{{ housingData.area }}</div> -->
                            <div class="r">{{ villageInfo.policeStationName }}</div>
                        </div>
                        <div>
                            <div class="l">责任民警:</div>
                            <!-- <div class="r">{{ housingData.principal }}</div> -->
                            <div class="r">{{ villageInfo.policeName }}</div>
                        </div>
                        <div>
                            <div class="l">标准地址:</div>
                            <!-- <div class="r">{{ housingData.address }}</div> -->
                            <div class="r">{{ villageInfo.address }}</div>
                        </div>
                    </div>
                </div>
                <div class="nav-tab" ref="navTabBox">
                    <div class="nav" :class="navType == 0 ? 'choosed' : ''" @click="navClick" data-type="0">基本信息</div>
                    <div class="nav" :class="navType == 1 ? 'choosed' : ''" @click="navClick" data-type="1">报警信息</div>
                    <div
                        class="nav"
                        :class="navType == 0 ? 'choosed' : ''"
                        @click="navClick"
                        data-type="0"
                    >基本信息</div>
                    <div
                        class="nav"
                        :class="navType == 1 ? 'choosed' : ''"
                        @click="navClick"
                        data-type="1"
                    >报警信息</div>
                </div>
                <div class="base-info" v-show="navType == 0">
                    <div class="sub-nav-list">
                        <div class="sub-nav" :class="{ on: subNavType == 1 }" @click="subNavType = 1">楼栋</div>
                        <div class="sub-nav" :class="{ on: subNavType == 2 }" @click="subNavType = 2">出入口</div>
                        <div class="sub-nav" :class="{ on: subNavType == 3 }" @click="subNavType = 3">停车场</div>
                        <div class="sub-nav" :class="{ on: subNavType == 4 }" @click="subNavType = 4">商业</div>
                        <div
                            class="sub-nav"
                            :class="{ on: subNavType == 1 }"
                            @click="subNavType = 1"
                        >楼栋</div>
                        <div
                            class="sub-nav"
                            :class="{ on: subNavType == 2 }"
                            @click="subNavType = 2"
                        >出入口</div>
                        <div
                            class="sub-nav"
                            :class="{ on: subNavType == 3 }"
                            @click="subNavType = 3"
                        >停车场</div>
                        <div
                            class="sub-nav"
                            :class="{ on: subNavType == 4 }"
                            @click="subNavType = 4"
                        >商业</div>
                    </div>
                    <div class="floor-content" v-show="subNavType == 1">
@@ -100,18 +145,30 @@
                            <div class="build-outBox" ref="BuildOutBox">
                                <div class="build-box" style="left: 0px;">
                                    <!-- :style="{ width: `calc(${Math.ceil(buildingList.length / 10)} * (356 / 1920) * 100vw` }" -->
                                    <div class="ridgepole-list" v-for="index of Math.ceil(buildingList.length / 10)"
                                        :key="index">
                                        <div v-for="(item, index) in buildingList.slice((index - 1) * 10, index * 10)"
                                            :key="index" @click="buildingClick(item)"
                                            :class="{ on: buildingChoosed.name == item.name }" :title="item.name">{{
                                                item.name
                                            }}</div>
                                    <div
                                        class="ridgepole-list"
                                        v-for="index of Math.ceil(buildingList.length / 10)"
                                        :key="index"
                                    >
                                        <div
                                            v-for="(item, index) in buildingList.slice((index - 1) * 10, index * 10)"
                                            :key="index"
                                            @click="buildingClick(item)"
                                            :class="{ on: buildingChoosed.name == item.name }"
                                            :title="item.name"
                                        >
                                            {{
                                            item.name
                                            }}
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="nextBtn rightBtn" @click="nextBtn">
                                <i v-show="buildingList.length > 10 && nextBtnShow" class="el-icon-caret-right"></i>
                                <i
                                    v-show="buildingList.length > 10 && nextBtnShow"
                                    class="el-icon-caret-right"
                                ></i>
                            </div>
                        </div>
@@ -121,15 +178,15 @@
                            <div class="content">
                                <div>
                                    <div>电梯</div>
                                    <div>有</div>
                                    <div>{{floorInfo.elev == 1 ? '有' :'无'}}</div>
                                </div>
                                <div>
                                    <div>楼层总数</div>
                                    <div>48</div>
                                    <div>{{floorInfo.floor_num}}</div>
                                </div>
                                <div>
                                    <div>户室总数</div>
                                    <div>288</div>
                                    <div>{{floorInfo.house_num}}</div>
                                </div>
                            </div>
                        </div>
@@ -139,11 +196,11 @@
                            <div class="content">
                                <div class="one">
                                    <div @click="goTOPeopleDetail">
                                        <div>160</div>
                                        <div>{{ peopleInfo.registeredPopulation }}</div>
                                        <div>户籍人口</div>
                                    </div>
                                    <div @click="goTOPeopleDetail">
                                        <div style="color:#FF796C">16</div>
                                        <div style="color:#FF796C">{{peopleInfo.KeyPopulation}}</div>
                                        <div>重点人口</div>
                                    </div>
                                </div>
@@ -191,9 +248,19 @@
                            <div class="condo">
                                <div class="type">选择单元</div>
                                <div class="type-select">
                                    <el-select size="small" v-model="unitValue" placeholder="请选择" @change="chooseUnit">
                                        <el-option v-for="item in unitOptions" :key="item.value" :label="item.label"
                                            :value="item.value" class="unit-option"></el-option>
                                    <el-select
                                        size="small"
                                        v-model="unitValue"
                                        placeholder="请选择"
                                        @change="chooseUnit"
                                    >
                                        <el-option
                                            v-for="item in unitOptions"
                                            :key="item.value"
                                            :label="item.label"
                                            :value="item.value"
                                            class="unit-option"
                                        ></el-option>
                                    </el-select>
                                </div>
                            </div>
@@ -247,29 +314,42 @@
                                </div>
                                <div class="floor-box">
                                    <div class="floor-num" style="left: 0">
                                        <div :class="{ on: floorsType == index }" @click="floorsType = index"
                                            v-for="index in Math.ceil(unitHouseChoosed.length / 5)" :key="index">
                                        <div
                                            :class="{ on: floorsType == index }"
                                            @click="floorsType = index"
                                            v-for="index in Math.ceil(unitHouseChoosed.length / 5)"
                                            :key="index"
                                        >
                                            {{ unitHouseChoosed[index * 5 - 5].floor_num }}-{{
                                                unitHouseChoosed[index *
                                                    5
                                                    - 1]? unitHouseChoosed[index * 5
                                                        - 1].floor_num : unitHouseChoosed[unitHouseChoosed.length - 1].floor_num
                                            unitHouseChoosed[index *
                                            5
                                            - 1]? unitHouseChoosed[index * 5
                                            - 1].floor_num : unitHouseChoosed[unitHouseChoosed.length - 1].floor_num
                                            }}层
                                        </div>
                                    </div>
                                </div>
                                <div @click="nextFloorBtn" class="floorBtn rightFloorBtn" v-show="nextFloorShow">
                                <div
                                    @click="nextFloorBtn"
                                    class="floorBtn rightFloorBtn"
                                    v-show="nextFloorShow"
                                >
                                    <i class="el-icon-caret-right"></i>
                                </div>
                            </div>
                            <div class="floor-detail">
                                <div v-for="(item, index) in unitHouseChoosed.slice((floorsType - 1) * 5, floorsType * 5)"
                                    :key="index">
                                <div
                                    v-for="(item, index) in unitHouseChoosed.slice((floorsType - 1) * 5, floorsType * 5)"
                                    :key="index"
                                >
                                    <div class="title">{{ item.floor_num }}层:</div>
                                    <div class="detail">
                                        <div v-for="(value, index) in item.floor_house" :key="index"
                                            @click="residentDetailsClick(value)">
                                        <div
                                            v-for="(value, index) in item.floor_house"
                                            :key="index"
                                            @click="residentDetailsClick(value)"
                                        >
                                            <!-- :class="[{ 'chuzu': value.houseType == '出租' }, { 'zizhu': value.houseType == '自住' }, { 'kongzhi': value.houseType == '空置' }, { 'shangye': value.houseType == '商业' }]" -->
                                            {{ value.house_num }}
                                            <!-- <div class="flow"></div>
@@ -283,36 +363,60 @@
                    </div>
                    <div class="come-out-content" v-show="subNavType == 2">
                        <el-table :data="comeOutData" style="width: 100%"
                        <el-table
                            :data="comeOutData"
                            style="width: 100%"
                            :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                            :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }"
                            :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'comeOut')">
                            <el-table-column prop="name" label="名称" width="180"
                                :show-overflow-tooltip="true"></el-table-column>
                            :row-class-name="tableRowClassName"
                            @row-click="deepDataRowClick($event, 'comeOut')"
                        >
                            <el-table-column
                                prop="name"
                                label="名称"
                                width="180"
                                :show-overflow-tooltip="true"
                            ></el-table-column>
                            <el-table-column prop="x" label="经度" width="100"></el-table-column>
                            <el-table-column prop="y" label="纬度" width="100"></el-table-column>
                        </el-table>
                    </div>
                    <div class="park-content" v-show="subNavType == 3">
                        <el-table :data="parkingLotData" style="width: 100%"
                        <el-table
                            :data="parkingLotData"
                            style="width: 100%"
                            :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                            :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }"
                            :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'park')">
                            <el-table-column prop="name" label="名称" width="180"
                                :show-overflow-tooltip="true"></el-table-column>
                            :row-class-name="tableRowClassName"
                            @row-click="deepDataRowClick($event, 'park')"
                        >
                            <el-table-column
                                prop="name"
                                label="名称"
                                width="180"
                                :show-overflow-tooltip="true"
                            ></el-table-column>
                            <el-table-column prop="x" label="经度" width="100"></el-table-column>
                            <el-table-column prop="y" label="纬度" width="100"></el-table-column>
                        </el-table>
                    </div>
                    <div class="business-content" v-show="subNavType == 4">
                        <el-table :data="businessData" style="width: 100%"
                        <el-table
                            :data="businessData"
                            style="width: 100%"
                            :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                            :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }"
                            :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'business')">
                            <el-table-column prop="name" label="名称" width="180"
                                :show-overflow-tooltip="true"></el-table-column>
                            :row-class-name="tableRowClassName"
                            @row-click="deepDataRowClick($event, 'business')"
                        >
                            <el-table-column
                                prop="name"
                                label="名称"
                                width="180"
                                :show-overflow-tooltip="true"
                            ></el-table-column>
                            <el-table-column prop="x" label="经度" width="100"></el-table-column>
                            <el-table-column prop="y" label="纬度" width="100"></el-table-column>
                        </el-table>
@@ -320,35 +424,62 @@
                </div>
                <div class="police-info" v-if="navType == 1" ref="policeTableBox">
                    <el-table :data="callPoliceData" style="width: 100%" :height="currentTableHeight"
                    <el-table
                        :data="callPoliceData"
                        style="width: 100%"
                        :height="currentTableHeight"
                        :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                        :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }"
                        :row-class-name="tableRowClassName" @row-click="clickData">
                        <el-table-column prop="JJDWMC" :show-overflow-tooltip="true" label="接警单位"
                            min-width="34%"></el-table-column>
                        :row-class-name="tableRowClassName"
                        @row-click="clickData"
                    >
                        <el-table-column
                            prop="JJDWMC"
                            :show-overflow-tooltip="true"
                            label="接警单位"
                            min-width="34%"
                        ></el-table-column>
                        <el-table-column label="报警时间" min-width="26%">
                            <template slot-scope="scope">
                                <span>{{ scope.row.BJSJ.substring(0, 10) }}</span>
                            </template>
                        </el-table-column>
                        <el-table-column prop="JJYXM" :show-overflow-tooltip="true" label="接警员"
                            min-width="20%"></el-table-column>
                        <el-table-column prop="BJRXM" :show-overflow-tooltip="true" label="报警人"
                            min-width="20%"></el-table-column>
                        <el-table-column
                            prop="JJYXM"
                            :show-overflow-tooltip="true"
                            label="接警员"
                            min-width="20%"
                        ></el-table-column>
                        <el-table-column
                            prop="BJRXM"
                            :show-overflow-tooltip="true"
                            label="报警人"
                            min-width="20%"
                        ></el-table-column>
                    </el-table>
                    <div class="pages" ref="ElPagination">
                        <el-pagination background layout="prev, pager, next" :page-size="callPolicePage.pageSize"
                            :page-count="callPolicePage.count" :current-page="callPolicePage.currentPage"
                            @current-change="handleCurrentChange"></el-pagination>
                        <el-pagination
                            background
                            layout="prev, pager, next"
                            :page-size="callPolicePage.pageSize"
                            :page-count="callPolicePage.count"
                            :current-page="callPolicePage.currentPage"
                            @current-change="handleCurrentChange"
                        ></el-pagination>
                    </div>
                </div>
            </div>
        </div>
        <!-- <transition name="special-animal"></transition>-->
        <div class="search-content">
            <input v-model="searchExtensivelyValue" @input="searchExtensivelyChange" @focus="searchExtensivelyFocus"
                type="text" placeholder="请输入搜索条件" />
            <input
                v-model="searchExtensivelyValue"
                @input="searchExtensivelyChange"
                @focus="searchExtensivelyFocus"
                type="text"
                placeholder="请输入搜索条件"
            />
            <div class="clear" v-show="isShowClearBtn" @click="clearSearchValue" title="清空">
                <img src="../../../public/img/icon/clear.png" alt />
            </div>
@@ -356,13 +487,23 @@
        </div>
        <div v-show="searchExtensivelyValBoxShow" class="searchExtensively-val-box">
            <div>
                <div @click="searchExtensivelyVlaClick(item)" v-for="(item, index) in searchExtensivelyArray"
                    :key="index">{{ item.name }}</div>
                <div
                    @click="searchExtensivelyVlaClick(item)"
                    v-for="(item, index) in searchExtensivelyArray"
                    :key="index"
                >{{ item.name }}</div>
            </div>
        </div>
        <el-dialog title="报警信息" :modal="true" :visible.sync="policeSituationVisible" :append-to-body="true"
            :before-close="policeSituationBeforeClose" :close-on-click-modal="true" class="policeSituation-details-box">
        <el-dialog
            title="报警信息"
            :modal="true"
            :visible.sync="policeSituationVisible"
            :append-to-body="true"
            :before-close="policeSituationBeforeClose"
            :close-on-click-modal="true"
            class="policeSituation-details-box"
        >
            <div class="box">
                <div class="item">
                    <div>接警单位编号:</div>
@@ -423,12 +564,21 @@
            </div>
        </el-dialog>
        <el-dialog :title="residentDetailsTitle" :modal="false" :visible.sync="residentDetailsShow"
            :before-close="residentDetailsClose" :close-on-click-modal="true" class="resident-details-box" width="30%">
        <el-dialog
            :title="residentDetailsTitle"
            :modal="false"
            :visible.sync="residentDetailsShow"
            :before-close="residentDetailsClose"
            :close-on-click-modal="true"
            class="resident-details-box"
            width="30%"
        >
            <h3 style="text-align:left;margin:10px 0 10px 0">户主信息</h3>
            <el-table :data="houseDate.householdsDate"
            <el-table
                :data="houseDate.householdsDate"
                :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }">
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }"
            >
                <el-table-column prop="name" label="姓名"></el-table-column>
                <el-table-column prop="peopleType" label="重点人员"></el-table-column>
                <el-table-column prop="nation" label="民族"></el-table-column>
@@ -453,11 +603,20 @@
            </el-table>-->
        </el-dialog>
        <el-dialog :title="keyPersonTitle" :modal="false" :visible.sync="keyPersonVisible"
            :before-close="keyPersonBeforeClose" :close-on-click-modal="true" class="keyPerson-details-box">
            <el-table :data="keyPersonDetailArr" style="width: 100%"
        <el-dialog
            :title="keyPersonTitle"
            :modal="false"
            :visible.sync="keyPersonVisible"
            :before-close="keyPersonBeforeClose"
            :close-on-click-modal="true"
            class="keyPerson-details-box"
        >
            <el-table
                :data="keyPersonDetailArr"
                style="width: 100%"
                :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }">
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }"
            >
                <el-table-column prop="type" label="重点人员类型"></el-table-column>
                <el-table-column prop="name" label="姓名"></el-table-column>
                <el-table-column prop="sex" label="性别"></el-table-column>
@@ -473,7 +632,7 @@
<script>
import { listQuery, accurateSearch } from "@/utils/search.js"
// import housingData from '@/assets/data/housingData.js'
import { getResidentialQuartersList, getResidentialQuartersInfo, getSearchExtensively, getAoiByPt, getUnitbuild, getHouses, getSearchExtensivelyBgAoiDeepdata, getPoliceStationLazyTree, getAoiByBgId } from '@/api/dept/index.js'
import { getSearchExtensively, getHouses, getSearchExtensivelyBgAoiDeepdata, getPoliceStationLazyTree, getVillageInfo, getVillagePersonStatisticInfoByBuildId } from '@/api/dept/index.js'
import { getAlarmList } from "@/api/home/index.js"
@@ -515,77 +674,6 @@
            boxShow: false,
            // 下拉搜索
            filterText: "",
            // testData: [
            //     {
            //         name: "一级 1",
            //         children: [
            //             {
            //                 name: "二级 1-1",
            //                 children: [
            //                     {
            //                         name: "万达华府",
            //                     },
            //                     {
            //                         name: "万达晶座",
            //                     },
            //                     {
            //                         name: "万达广场",
            //                     },
            //                 ],
            //             },
            //         ],
            //     },
            //     {
            //         name: "一级 2",
            //         children: [
            //             {
            //                 name: "二级 2-1",
            //                 children: [
            //                     {
            //                         name: "三级 2-1-1",
            //                     },
            //                 ],
            //             },
            //             {
            //                 name: "二级 2-2",
            //                 children: [
            //                     {
            //                         name: "三级 2-2-1",
            //                     },
            //                 ],
            //             },
            //         ],
            //     },
            //     {
            //         name: "一级 3",
            //         children: [
            //             {
            //                 name: "二级 3-1",
            //                 children: [
            //                     {
            //                         name: "三级 3-1-1",
            //                     },
            //                 ],
            //             },
            //             {
            //                 name: "二级 3-2",
            //                 children: [
            //                     {
            //                         name: "三级 3-2-1",
            //                     },
            //                 ],
            //             },
            //         ],
            //     },
            // ],
            // defaultProps: {
            //     children: "children", //代表children为子级
            //     label: "name", //根据name渲染tree列表
            // },
            // prop: '',
            // defaultExpandAll: false,
            // accordion: true,
            // highlightCurrent: true,
            props: {
                label: 'name',
                children: 'zones',
@@ -681,6 +769,9 @@
            // table高度
            currentTableHeight: 0,
            villageInfo: {},
            floorInfo: {},
            peopleInfo: {},
        }
    },
    watch: {
@@ -690,16 +781,20 @@
        },
    },
    created () {
        console.log(this.$route.query.id, 111112233)
        getAoiByBgId(this.$route.query.id).then(res => {
            console.log(565656, res.data.data.features[0].properties.aoi_id)
        })
        // this.getResidentialQuartersList('361102')
        this.getResidentialQuartersInfo('6E5271B45D1611EAB6183C15FB00027B', '361102')
        this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '62556EAF4B731B9DE0530EF4520A0CFC', '1|3')
        // this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '万达')
        // this.getAoiByPt('117.9471794', '28.4474852', '361100', '0', '361102', '10')
        // this.getUnitbuild('6E513C5E5D1611EAB6183C15FB00027B', '361102')
        // 首页跳转社区包含参数
        if (this.$route.query.id) {
            console.log(this.$route.query.id, 111112233)
            this.getVillageInfo(this.$route.query.id)
            // 使用首页传过来的小区id获取停车场出入口商场和 小区名称类型地址数据
            this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.$route.query.id, '1|3')
        } else {// 直接进入社区默认小区数据(万达华府)
            console.log(this.$route.query.id, 6666666)
            // 默认获取万达广场的责任民警及所属辖区
            this.getVillageInfo('644A2C4049024A3C8C76D96EEE4366FD')
            // 大搜之搜索面详细数据(停车场出入口商场)--默认万达华府
            this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '644A2C4049024A3C8C76D96EEE4366FD', '1|3')
        }
        window.addEventListener('resize', this.setTableHeight)
    },
@@ -733,33 +828,8 @@
            if (this.navType == 1) {
                this.callPolicePage.currentPage = 1
                this.getAlarmList()
                // this.getAlarmList()
            }
        },
        // 获取小区列表
        getResidentialQuartersList (adcode) {
            getResidentialQuartersList(adcode).then(res => {
                console.log(res, 111)
            })
        },
        // 获取小区楼栋信息
        getResidentialQuartersInfo (areaId, adcode) {
            getResidentialQuartersInfo(areaId, adcode).then(res => {
                this.getHouses(res.data.data.build[1].build_id, '361102')
                // this.housingData.name = res.data.data.aoi_name
                this.callPolicePage.currentPage = 1
                this.getAlarmList()
                this.buildingList = []
                res.data.data.build.forEach(item => {
                    let position = JSON.parse(item.center).coordinates
                    this.buildingList.push({ name: `${item.build_name}`, siteJd: `${position[0]}`, siteWd: `${position[1]}`, siteGd: 360, build_id: `${item.build_id}` })
                })
                console.log('buildingList', this.buildingList)
                this.buildingChoosed = this.buildingList[1]
            })
        },
        // 大搜
@@ -769,9 +839,15 @@
            })
        },
        // 大搜之搜索面详细数据
        // 大搜之搜索面详细数据(停车场出入口商场、 小区名称类型地址、楼栋数据)
        getSearchExtensivelyBgAoiDeepdata (ak, region, ids, infos) {
            getSearchExtensivelyBgAoiDeepdata(ak, region, ids, infos).then(res => {
                // 小区名称类型地址
                let villageData = res.data.result[0]
                this.villageInfo.name = villageData.name
                this.villageInfo.address = villageData.address
                this.villageInfo.type_name = villageData.type_name
                // 停车场出入口商场
                let deepData = res.data.result[0].deep_infos.deep_info
                this.parkingLotData = []
                this.comeOutData = []
@@ -785,20 +861,16 @@
                        this.businessData.push(item)
                    }
                })
            })
        },
        // 点查询
        getAoiByPt (lng, lat, height, adcode, tolerance) {
            getAoiByPt(lng, lat, height, adcode, tolerance).then(res => {
                console.log(res, 444)
            })
        },
        // 楼栋单元查询
        getUnitbuild (area_id, adcode) {
            getUnitbuild(area_id, adcode).then(res => {
                console.log(res, 555)
                // 小区楼栋数据
                let buildData = res.data.result[0].children_infos
                this.buildingList = []
                buildData.forEach(item => {
                    this.buildingList.push({ name: `${item.sname}`, siteJd: `${item.x}`, siteWd: `${item.y}`, siteGd: 360, build_id: `${item.std_addr_id.split('|')[1]}`, floor_num: `${item.floor_num}`, elev: `${item.elev}` })
                })
                this.buildingClick(this.buildingList[0])
                console.log('buildingList', this.buildingList)
                // this.callPolicePage.currentPage = 1
                // this.getAlarmList()
            })
        },
@@ -806,10 +878,10 @@
        getHouses (build_id, adcode) {
            getHouses(build_id, adcode).then(res => {
                console.log(res, 999)
                // 你下面的这些是用来做啥的
                this.unitHouseChoosed = res.data.data.unit[this.unitValue - 1].house
                let unitData = res.data.data.unit[this.unitValue - 1].house
                this.floorInfo.house_num = unitData.length
                let houseFloorList = []
                this.unitHouseChoosed.forEach(item => {
                unitData.forEach(item => {
                    if (houseFloorList.indexOf(Number(item.floor_num)) === -1) {
                        houseFloorList.push(Number(item.floor_num))
                    }
@@ -819,14 +891,13 @@
                })
                let newArr = []
                houseFloorList.forEach(floor => {
                    let houseArr = this.unitHouseChoosed.filter(item => {
                    let houseArr = unitData.filter(item => {
                        return Number(item.floor_num) == floor
                    })
                    newArr.push({ floor_num: floor, floor_house: houseArr })
                })
                this.unitHouseChoosed = newArr
                console.log('this.unitHouseChoosed', this.unitHouseChoosed)
                console.log('unitHouseChoosed', this.unitHouseChoosed)
            })
        },
@@ -847,12 +918,16 @@
        buildingClick (item) {
            this.buildingChoosed = item
            this.floorInfo.elev = item.elev
            this.floorInfo.floor_num = item.floor_num
            // 获取户籍人口重点人口数据
            this.getVillagePersonStatisticInfoByBuildId(item.build_id)
            this.getHouses(item.build_id, '361102')
            this.$EventBus.$emit('toPosition', item)
            this.floorsType = 1
            document.querySelector(".floor-num").style.left = '0px'
            this.lastFloorShow = false
            this.unitValue = '1'
            this.unitValue = 1
        },
        nextBtn () {
@@ -951,23 +1026,6 @@
        filterNode (value, data) {
            if (!value) return true
            return data.name.indexOf(value) !== -1
        },
        // 点击选中
        currentChangeHandle (current, currentNode) {
            this.filterText = ''
            this.prop = current.name
            if (current.name == '万达华府') {
                this.getResidentialQuartersInfo('6E5271B45D1611EAB6183C15FB00027B', '361102')
                this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '644A2C4049024A3C8C76D96EEE4366FD', '1|3')
            } else if (current.name == '万达晶座') {
                this.getResidentialQuartersInfo('A425AEC8D3FE4C85937FE36B4F996437', '361102')
                this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', 'aba5227bc3c16d3fec0f0b1e87f25bbb', '1|3')
            } else if (current.name == '万达广场') {
                this.getResidentialQuartersInfo('6E513C5E5D1611EAB6183C15FB00027B', '361102')
                this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '62556EAF4B731B9DE0530EF4520A0CFC', '1|3')
            }
            this.$refs[`popover`].doClose()
        },
        searchExtensivelyClick () {
@@ -1118,14 +1176,13 @@
                this.setTableHeight()
            })
        },
        // 分页选择事件
        handleCurrentChange: function (currentPage) {
            this.callPolicePage.currentPage = currentPage
            this.getAlarmList()
            // this.getAlarmList()
        },
        // 警情列表点击事件
@@ -1144,7 +1201,7 @@
        },
        async loadNode (node, resolve) {
            console.log(node, 111)
            console.log('node', node)
            if (node.level === 0) {
                let policeStaionList = []
                await getPoliceStationLazyTree(1).then(res => {
@@ -1171,15 +1228,22 @@
            if (node.level == 3) return resolve([])
        },
        // async getAoiByBgId (bg_id) {
        //     let newId = ''
        //     await getAoiByBgId(bg_id).then(res => {
        //         console.log(565656, res.data.data.features[0].properties.aoi_id)
        //         newId = res.data.data.features[0].properties.aoi_id
        // 获取责任民警、所属辖区
        getVillageInfo (aoiId) {
            getVillageInfo(aoiId).then(res => {
                this.villageInfo.policeName = res.data.data.policeName
                this.villageInfo.policeStationName = res.data.data.policeStationName
            })
        },
        //     })
        //     return newId
        // }
        // 重点人口户籍人口
        getVillagePersonStatisticInfoByBuildId (buildId) {
            getVillagePersonStatisticInfoByBuildId(buildId).then(res => {
                this.peopleInfo.registeredPopulation = res.data.data[0]
                this.peopleInfo.KeyPopulation = res.data.data[1]
            })
        },
    },
    destroyed () {
@@ -1275,7 +1339,7 @@
            border-radius: 10px;
            overflow: hidden;
            &>div {
            & > div {
                height: 100%;
                overflow-y: auto;
@@ -1310,9 +1374,11 @@
                        left: 10px;
                        right: 10px;
                        bottom: 4px;
                        background: linear-gradient(135deg,
                                rgb(33 150 243 / 74%),
                                rgb(254 254 254 / 0%));
                        background: linear-gradient(
                            135deg,
                            rgb(33 150 243 / 74%),
                            rgb(254 254 254 / 0%)
                        );
                        z-index: -1;
                    }
                }
@@ -1323,7 +1389,7 @@
                }
                .housing-introduce {
                    &>div {
                    & > div {
                        padding: 0 10px;
                        display: flex;
@@ -1386,8 +1452,7 @@
                    }
                }
                &>.floor-content {
                & > .floor-content {
                    .build-info {
                        display: flex;
                        position: relative;
@@ -1436,7 +1501,7 @@
                                    flex-wrap: wrap;
                                    width: 356px;
                                    &>div {
                                    & > div {
                                        display: flex;
                                        align-items: center;
                                        justify-content: center;
@@ -1470,7 +1535,7 @@
                        .content {
                            display: flex;
                            &>div {
                            & > div {
                                height: 26px;
                                line-height: 26px;
                                flex: 1;
@@ -1478,11 +1543,11 @@
                                justify-content: center;
                                border-right: 1px solid #50555f;
                                &>div {
                                & > div {
                                    cursor: pointer;
                                }
                                &>div:last-child {
                                & > div:last-child {
                                    margin-left: 14px;
                                    font-size: 18px;
                                    font-weight: bold;
@@ -1490,11 +1555,11 @@
                                }
                            }
                            &>div:first-child {
                            & > div:first-child {
                                width: 30%;
                            }
                            &>div:last-child {
                            & > div:last-child {
                                border: none;
                            }
                        }
@@ -1519,10 +1584,10 @@
                                display: flex;
                                justify-content: space-around;
                                &>div {
                                & > div {
                                    flex: 1;
                                    &>div:first-child {
                                    & > div:first-child {
                                        height: 30px;
                                        line-height: 30px;
                                        font-size: 18px;
@@ -1530,7 +1595,7 @@
                                        color: #499d99;
                                    }
                                    &>div:last-child {
                                    & > div:last-child {
                                        height: 26px;
                                        line-height: 26px;
                                    }
@@ -1545,8 +1610,8 @@
                            justify-content: space-around;
                            background: rgba(8, 56, 185, 0.5);
                            &>div {
                                &>div:first-child {
                            & > div {
                                & > div:first-child {
                                    height: 30px;
                                    line-height: 30px;
                                    font-size: 18px;
@@ -1580,7 +1645,6 @@
                    }
                    .house-element-info {
                        .condo,
                        .legend {
                            display: flex;
@@ -1603,12 +1667,12 @@
                                display: flex;
                                flex: 1;
                                &>div {
                                & > div {
                                    flex: 1;
                                    display: flex;
                                    align-items: center;
                                    &>span {
                                    & > span {
                                        margin: 0 10px;
                                        width: 14px;
                                        height: 8px;
@@ -1675,7 +1739,7 @@
                                    left: 0;
                                    transition: all 1s;
                                    &>div {
                                    & > div {
                                        margin: 0 4px;
                                        display: flex;
                                        justify-content: center;
@@ -1688,7 +1752,7 @@
                                        border: 0.0925925926vh solid #fff;
                                    }
                                    &>.on {
                                    & > .on {
                                        border: 1px solid orange;
                                        color: orange;
                                    }
@@ -1700,7 +1764,7 @@
                            margin-top: 14px;
                            height: 220px;
                            &>div {
                            & > div {
                                margin: 8px;
                                height: 36px;
                                line-height: 36px;
@@ -1714,7 +1778,7 @@
                                    flex: 1;
                                    display: flex;
                                    &>div {
                                    & > div {
                                        margin: 0 4px;
                                        position: relative;
                                        width: 68px;
@@ -1738,29 +1802,33 @@
                                        }
                                        .focus {
                                            top: calc((100% - 18px) / 4 * 2 + 6px);
                                            top: calc(
                                                (100% - 18px) / 4 * 2 + 6px
                                            );
                                            background: rgb(255, 121, 108);
                                        }
                                        .warning {
                                            top: calc((100% - 18px) / 4 * 3 + 12px);
                                            top: calc(
                                                (100% - 18px) / 4 * 3 + 12px
                                            );
                                            background: rgb(254, 172, 4);
                                        }
                                    }
                                    &>.chuzu {
                                    & > .chuzu {
                                        border: 1px solid #3a8b3a;
                                    }
                                    &>.zizhu {
                                    & > .zizhu {
                                        border: 1px solid #2c77bb;
                                    }
                                    &>.kongzhi {
                                    & > .kongzhi {
                                        border: 1px solid #5c6169;
                                    }
                                    &>.shangye {
                                    & > .shangye {
                                        border: 1px solid #cc9456;
                                    }
                                }
@@ -1881,7 +1949,7 @@
        border-radius: 10px;
        overflow: hidden;
        &>div {
        & > div {
            height: 100%;
            overflow-y: auto;
@@ -1911,9 +1979,11 @@
    height: 100%;
    overflow: hidden;
    border-radius: 2px;
    background: linear-gradient(135deg,
            rgba(252, 252, 252, 0.108),
            rgb(254, 254, 254));
    background: linear-gradient(
        135deg,
        rgba(252, 252, 252, 0.108),
        rgb(254, 254, 254)
    );
    animation: prog 3s ease infinite;
}