| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-06 17:17:53 |
| | | * @LastEditTime: 2023-02-10 16:12:13 |
| | | * @FilePath: \srs-police-affairs\src\views\house\index.vue |
| | | * @Description: 小区-栋-层-房屋 |
| | | * |
| | |
| | | <div class="house-page container"> |
| | | <div v-show="boxShow" class="container-content"> |
| | | <div v-show="contentShow" class="search-box"> |
| | | <el-popover |
| | | ref="popover" |
| | | placement="bottom" |
| | | trigger="manual" |
| | | v-model="searchTreeShowFlag" |
| | | popper-class="tree-search-popup" |
| | | @mousedown.native="preventFocusLost" |
| | | > |
| | | <el-tree |
| | | v-show="searchLazyFlag == true" |
| | | ref="popupTree" |
| | | style="overflow: auto;" |
| | | class="select-tree-box" |
| | | :load="loadNode" |
| | | :lazy="true" |
| | | :props="props" |
| | | @current-change="currentChangeHandle" |
| | | @mousedown.native="preventFocusLost" |
| | | ></el-tree> |
| | | <el-popover ref="popover" placement="bottom" trigger="manual" v-model="searchTreeShowFlag" |
| | | popper-class="tree-search-popup" @mousedown.native="preventFocusLost"> |
| | | <el-tree v-show="searchLazyFlag == true" ref="popupTree" style="overflow: auto;" |
| | | class="select-tree-box" :load="loadNode" :lazy="true" :props="props" |
| | | @current-change="currentChangeHandle" @mousedown.native="preventFocusLost"></el-tree> |
| | | |
| | | <el-tree |
| | | v-show="searchLazyFlag == false" |
| | | :empty-text="treeEmptyText" |
| | | ref="popupTree" |
| | | style="overflow: auto;" |
| | | class="select-tree-box" |
| | | :data="searchTreeData" |
| | | :props="defaultProps" |
| | | :default-expand-all="true" |
| | | @current-change="currentChangeHandle" |
| | | @mousedown.native="preventFocusLost" |
| | | ></el-tree> |
| | | <el-tree v-show="searchLazyFlag == false" :empty-text="treeEmptyText" ref="popupTree" |
| | | style="overflow: auto;" class="select-tree-box" :data="searchTreeData" :props="defaultProps" |
| | | :default-expand-all="true" @current-change="currentChangeHandle" |
| | | @mousedown.native="preventFocusLost"></el-tree> |
| | | </el-popover> |
| | | |
| | | <el-input |
| | | ref="searchTreeInput" |
| | | v-model="searchTreeName" |
| | | @input="searchInputTree" |
| | | @focus="searchTreeShowFlag = true" |
| | | @blur="searchTreeShowFlag = false" |
| | | v-popover:popover |
| | | placeholder="请输入搜索条件" |
| | | style="cursor: pointer;" |
| | | ></el-input> |
| | | <el-input ref="searchTreeInput" v-model="searchTreeName" @input="searchInputTree" |
| | | @focus="searchTreeShowFlag = true" @blur="searchTreeShowFlag = false" v-popover:popover |
| | | placeholder="请输入搜索条件" style="cursor: pointer;"></el-input> |
| | | </div> |
| | | |
| | | <div v-show="contentShow" class="result-content" ref="resultContentBox"> |
| | |
| | | <div class="housing-bg"> |
| | | <div class="block"> |
| | | <el-carousel height="150px"> |
| | | <el-carousel-item |
| | | v-for="(item, index) in villageInfo.pic_url_list" |
| | | :key="index" |
| | | > |
| | | <el-image |
| | | style=" height: 100%" |
| | | :src="item" |
| | | :preview-src-list="villageInfo.pic_url_list" |
| | | ></el-image> |
| | | <el-carousel-item v-for="(item, index) in villageInfo.pic_url_list" :key="index"> |
| | | <el-image style=" height: 100%" :src="item" |
| | | :preview-src-list="villageInfo.pic_url_list"></el-image> |
| | | </el-carousel-item> |
| | | </el-carousel> |
| | | </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"> |
| | |
| | | <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" |
| | | > |
| | | <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 |
| | | 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> |
| | | |
| | |
| | | <div class="condo" v-show="isShowUnitChoose"> |
| | | <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> |
| | |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | <el-main |
| | | v-loading="pictLoading" |
| | | element-loading-background="rgba(17, 38, 163, .1)" |
| | | element-loading-text="数据正在加载中" |
| | | element-loading-spinner="el-icon-loading" |
| | | v-show="isShowHouseBox" |
| | | > |
| | | <el-main v-loading="pictLoading" element-loading-background="rgba(17, 38, 163, .1)" |
| | | element-loading-text="数据正在加载中" element-loading-spinner="el-icon-loading" |
| | | v-show="isShowHouseBox"> |
| | | <div class="floor-outBox"> |
| | | <div |
| | | @click="lastFloorBtn" |
| | | class="floorBtn" |
| | | v-show="lastFloorShow" |
| | | > |
| | | <div @click="lastFloorBtn" class="floorBtn" v-show="lastFloorShow"> |
| | | <i class="el-icon-caret-left"></i> |
| | | </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" |
| | | <div v-for="(value, index) in item.floor_house" :key="index" |
| | | @click="residentDetailsClick(value)" |
| | | :class="{ on: floorChoosed== value.properties.fojcu }" |
| | | > |
| | | :class="{ on: floorChoosed == value.properties.fojcu }"> |
| | | <!-- :class="[{ 'chuzu': value.houseType == '出租' }, { 'zizhu': value.houseType == '自住' }, { 'kongzhi': value.houseType == '空置' }, { 'shangye': value.houseType == '商业' }]" --> |
| | | {{ value.properties.fojcu }} |
| | | <!-- <div class="flow"></div> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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-table |
| | | :data="houseDate" |
| | | <el-dialog :title="residentDetailsTitle" :modal="false" :visible.sync="residentDetailsShow" |
| | | :before-close="residentDetailsClose" :close-on-click-modal="true" class="resident-details-box" width="30%"> |
| | | <el-table :data="houseDate" |
| | | :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="realName" label="姓名"></el-table-column> |
| | | <el-table-column prop="phone" label="电话"></el-table-column> |
| | | <el-table-column prop="cardNo" label="身份证号"></el-table-column> |
| | | </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-dialog :title="keyPersonTitle" :modal="false" :visible.sync="keyPersonVisible" |
| | | :before-close="keyPersonBeforeClose" :close-on-click-modal="true" class="keyPerson-details-box"> |
| | | <div class="header"> |
| | | <div> |
| | | 姓名: |
| | |
| | | <input type="text" v-model="callPhone" placeholder="请输入联系电话" /> |
| | | </div> |
| | | <el-button type="primary" icon="el-icon-search" @click="searchPeopleDetail">搜索</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-delete" |
| | | @click="clearPeopleDetailSearchValue" |
| | | >清空</el-button> |
| | | <el-button type="primary" icon="el-icon-delete" @click="clearPeopleDetailSearchValue">清空</el-button> |
| | | </div> |
| | | <el-table |
| | | :data="personDetailArr" |
| | | style="width: 100%" |
| | | <el-table :data="personDetailArr" 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 label="序号" type="index" width="50" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{(peoplePage.currentPage - 1) * peoplePage.pageSize + scope.$index + 1}}</span> |
| | |
| | | <el-table-column prop="areaName" label="所属责任区"></el-table-column> |
| | | </el-table> |
| | | <div class="pages" ref="tablePagination"> |
| | | <el-pagination |
| | | background |
| | | layout="prev, pager, next" |
| | | :page-size="peoplePage.pageSize" |
| | | :total="peoplePage.total" |
| | | :current-page="peoplePage.currentPage" |
| | | @current-change="peopleHandleCurrentChange" |
| | | ></el-pagination> |
| | | <el-pagination background layout="prev, pager, next" :page-size="peoplePage.pageSize" |
| | | :total="peoplePage.total" :current-page="peoplePage.currentPage" |
| | | @current-change="peopleHandleCurrentChange"></el-pagination> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listQuery, accurateSearch } from "@/utils/search.js" |
| | | let circleLayer = null |
| | | let timer = [] |
| | | |
| | | import { |
| | | getSearchExtensively, getHouses, getSearchExtensivelyBgAoiDeepdata, |
| | | getPoliceStationLazyTree, getPoliceStationTrees, getVillageInfo, |
| | |
| | | // 使用首页传过来的小区id获取停车场出入口商场和 小区名称类型地址数据 |
| | | this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.$route.query.id, '1|3') |
| | | } else { |
| | | console.log(this.userInfo.dept_id, 56789) |
| | | // 获得对应派出所默认展示小区 |
| | | getPoliceSationVillageInfo(this.userInfo.dept_id).then(res => { |
| | | let villageId = res.data.data.aoiId |
| | | console.log(9999999, villageId) |
| | | //直接进入社区 默认获取万达广场的责任民警及所属辖区 |
| | | // this.getVillageInfo('644A2C4049024A3C8C76D96EEE4366FD') |
| | | this.getVillageInfo(villageId) |
| | |
| | | }) |
| | | } |
| | | |
| | | const that = this |
| | | |
| | | this.$EventBus.$on('housingPoliceSiteClick', (params) => { |
| | | that.housingPoliceSiteClick(params) |
| | | }) |
| | | |
| | | window.addEventListener('resize', this.setTableHeight) |
| | | }, |
| | | |
| | |
| | | this.$parent.$parent.resize('400px', true) |
| | | |
| | | this.$nextTick(() => { |
| | | circleLayer = new global.DC.VectorLayer('circleLayer') |
| | | global.viewer.addLayer(circleLayer) |
| | | |
| | | this.searchHouse = this.$route.query.searchName |
| | | |
| | | // this.$EventBus.$emit('addMxTileset', { |
| | |
| | | }) |
| | | |
| | | }, |
| | | |
| | | updated () { |
| | | }, |
| | | |
| | |
| | | this.getResidentialQuartersInfo(current.id, '361102') |
| | | this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', current.id, '1|3') |
| | | |
| | | circleLayer.clear() |
| | | circleLayer.remove() |
| | | circleLayer = null |
| | | |
| | | this.$refs.searchTreeInput.blur() |
| | | }, |
| | | |
| | |
| | | if (this.navType == 1) { |
| | | this.callPolicePage.currentPage = 1 |
| | | this.getAlarmList() |
| | | } else { |
| | | circleLayer.clear() |
| | | circleLayer.remove() |
| | | circleLayer = null |
| | | } |
| | | }, |
| | | |
| | |
| | | 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() |
| | | }) |
| | |
| | | // let maxHeight = res.data.data.floor_num * 2.8 |
| | | let maxHeight = 98 |
| | | let houseData = res.data.data.properties |
| | | console.log(3333, houseData) |
| | | this.floorChoosed = [] |
| | | this.$EventBus.$emit('showHouse3D', { positions: houseData.kmj3a, minHeight: 0, maxHeight: maxHeight }) |
| | | |
| | |
| | | }) |
| | | } |
| | | this.pictLoading = false |
| | | console.log('unitHouseChoosed', this.unitHouseChoosed) |
| | | } else { |
| | | this.isShowHouseBox = false |
| | | console.log('noHouseData') |
| | | } |
| | | |
| | | }) |
| | |
| | | |
| | | // 获取历史接警记录 |
| | | getAlarmList () { |
| | | circleLayer.clear() |
| | | circleLayer.remove() |
| | | circleLayer = null |
| | | circleLayer = new global.DC.PrimitiveLayer('circleLayer') |
| | | global.viewer.addLayer(circleLayer) |
| | | |
| | | getAlarmList({ current: this.callPolicePage.currentPage, size: this.callPolicePage.pagesize, sfdz: this.villageInfo.name, jjdwbh: this.userInfo.dept_id }).then(res => { |
| | | this.callPolicePage.count = res.data.data.pages |
| | | |
| | |
| | | this.callPoliceData = res.data.data.records.map((item, index) => { |
| | | return { ...item, index: index + 1, lng: item.ZDDWXZB, lat: item.ZDDWYZB } |
| | | }) |
| | | |
| | | this.callPoliceData.forEach((item, index) => { |
| | | if (item.lng != '' && item.lat != '') { |
| | | let center = new global.DC.Position(item.lng, item.lat) |
| | | let point = new global.DC.PointPrimitive(center) |
| | | |
| | | let num = 0 |
| | | |
| | | timer[index] = setInterval(() => { |
| | | num++ |
| | | if (num >= 10) { |
| | | num = 0 |
| | | } |
| | | point.setStyle({ |
| | | outlineColor: global.DC.Color.RED.withAlpha(0.5),//边框颜色 |
| | | outlineWidth: num,//边框大小, |
| | | color: global.DC.Color.RED |
| | | }) |
| | | }, 100) |
| | | |
| | | point.attrParams = item |
| | | point.on(global.DC.MouseEventType.CLICK, this.housingPoliceSiteClick) |
| | | circleLayer.addOverlay(point) |
| | | } |
| | | }) |
| | | } else { |
| | | this.callPoliceData = [] |
| | | } |
| | | |
| | | this.setTableHeight() |
| | | }) |
| | | }, |
| | | |
| | | // 警情列表点击事件 |
| | | clickData (item) { |
| | | if (item.ZDDWXZB && item.ZDDWXZB != 0 && item.ZDDWYZB && item.ZDDWYZB != 0) { |
| | | this.$EventBus.$emit('toPosition', { |
| | | layerName: 'policeSituationyLayers', |
| | | siteJd: Number(item.ZDDWXZB), |
| | | siteWd: Number(item.ZDDWYZB) |
| | | }) |
| | | |
| | | this.$store.commit('SET_DETAILSPOPUP', { |
| | | showBox: true, |
| | | showBtn: false |
| | | }) |
| | | |
| | | this.$store.commit('SET_DATAPOPUP', item) |
| | | |
| | | var popup = new global.DC.DivForms(global.viewer, { |
| | | domId: 'divFormsDomBox', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | | new global.DC.Position( |
| | | Number(item.ZDDWXZB), |
| | | Number(item.ZDDWYZB), |
| | | 0 |
| | | ) |
| | | ) |
| | | ] |
| | | }) |
| | | } else { |
| | | this.policeSituationDetailObj = item |
| | | this.policeSituationVisible = true |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * @description: 警情闪烁点的点击事件 |
| | | * @param {*} e |
| | | * @return {*} |
| | | */ |
| | | housingPoliceSiteClick (e) { |
| | | if ('overlay' in e) { |
| | | this.$store.commit('SET_DETAILSPOPUP', { |
| | | showBox: true, |
| | | showBtn: false |
| | | }) |
| | | |
| | | this.$store.commit('SET_DATAPOPUP', e.overlay.attrParams) |
| | | var popup = new global.DC.DivForms(global.viewer, { |
| | | domId: 'divFormsDomBox', |
| | | position: [ |
| | | global.DC.Transform.transformWGS84ToCartesian( |
| | | new global.DC.Position( |
| | | Number(e.overlay.attrParams.lng), |
| | | Number(e.overlay.attrParams.lat), |
| | | 0 |
| | | ) |
| | | ) |
| | | ] |
| | | }) |
| | | } else { |
| | | this.policeSituationDetailObj = e |
| | | this.policeSituationVisible = true |
| | | } |
| | | }, |
| | | |
| | | // 分页选择事件 |
| | |
| | | peopleHandleCurrentChange (currentPage) { |
| | | this.peoplePage.currentPage = currentPage |
| | | this.getVillagePersonInfo('', this.choosedBuildId, this.keyPeopleType == 1 ? '' : this.keyPeopleType, currentPage) |
| | | }, |
| | | |
| | | // 警情列表点击事件 |
| | | clickData (row) { |
| | | this.policeSituationDetailObj = row |
| | | this.policeSituationVisible = true |
| | | }, |
| | | |
| | | // 获取table高度 |
| | |
| | | getAoiByPt(lng, lat, height, adcode, tolerance).then(res => { |
| | | let bgId = res.data.data.properties.ijnnl |
| | | getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '', bgId).then(async res => { |
| | | console.log(bgId, res.data.result[0].name, res.data.result[0].cid, 998877) |
| | | let chooseBuildItem = [] |
| | | this.buildingList.forEach(item => { |
| | | if (item.build_id == res.data.result[0].cid) { |
| | |
| | | }) |
| | | this.$EventBus.$emit('clearHouse3D') |
| | | wallLayer.clear() |
| | | |
| | | circleLayer.clear() |
| | | circleLayer.remove() |
| | | circleLayer = null |
| | | |
| | | for (let i = 0; i < timer.length; i++) { |
| | | clearInterval(timer[i]) |
| | | } |
| | | |
| | | window.removeEventListener('resize', this.setTableHeight) |
| | | } |
| | |
| | | border-radius: 10px; |
| | | overflow: hidden; |
| | | |
| | | & > div { |
| | | &>div { |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | .housing-introduce { |
| | | & > div { |
| | | &>div { |
| | | padding: 0 10px; |
| | | display: flex; |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | & > .floor-content { |
| | | &>.floor-content { |
| | | .build-info { |
| | | display: flex; |
| | | position: relative; |
| | |
| | | flex-wrap: wrap; |
| | | width: 356px; |
| | | |
| | | & > div { |
| | | &>div { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | |
| | | .content { |
| | | display: flex; |
| | | |
| | | & > div { |
| | | &>div { |
| | | height: 26px; |
| | | line-height: 26px; |
| | | flex: 1; |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | |
| | | & > div:first-child { |
| | | &>div:first-child { |
| | | width: 30%; |
| | | } |
| | | |
| | | & > div:last-child { |
| | | &>div:last-child { |
| | | border: none; |
| | | } |
| | | } |
| | |
| | | display: flex; |
| | | justify-content: space-around; |
| | | |
| | | & > div { |
| | | &>div { |
| | | flex: 1; |
| | | |
| | | & > div:first-child { |
| | | &>div:first-child { |
| | | height: 30px; |
| | | line-height: 30px; |
| | | font-size: 18px; |
| | |
| | | color: #499d99; |
| | | } |
| | | |
| | | & > div:last-child { |
| | | &>div:last-child { |
| | | height: 26px; |
| | | line-height: 26px; |
| | | } |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | .house-element-info { |
| | | |
| | | .condo, |
| | | .legend { |
| | | display: flex; |
| | |
| | | display: flex; |
| | | flex: 1; |
| | | |
| | | & > div { |
| | | &>div { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | & > span { |
| | | &>span { |
| | | margin: 0 10px; |
| | | width: 14px; |
| | | height: 8px; |
| | |
| | | left: 0; |
| | | transition: all 1s; |
| | | |
| | | & > div { |
| | | &>div { |
| | | margin: 0 4px; |
| | | display: flex; |
| | | justify-content: center; |
| | |
| | | border: 0.0925925926vh solid #fff; |
| | | } |
| | | |
| | | & > .on { |
| | | &>.on { |
| | | border: 1px solid orange; |
| | | color: orange; |
| | | } |
| | |
| | | margin-top: 14px; |
| | | height: 220px; |
| | | |
| | | & > div { |
| | | &>div { |
| | | margin: 8px; |
| | | height: 36px; |
| | | line-height: 36px; |
| | |
| | | flex: 1; |
| | | display: flex; |
| | | |
| | | & > div { |
| | | &>div { |
| | | margin: 0 4px; |
| | | position: relative; |
| | | width: 68px; |
| | |
| | | } |
| | | |
| | | .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); |
| | | } |
| | | } |
| | | |
| | | & > .on { |
| | | &>.on { |
| | | color: orange; |
| | | border-color: orange !important; |
| | | } |
| | | |
| | | & > .chuzu { |
| | | &>.chuzu { |
| | | border: 1px solid #3a8b3a; |
| | | } |
| | | |
| | | & > .zizhu { |
| | | &>.zizhu { |
| | | border: 1px solid #2c77bb; |
| | | } |
| | | |
| | | & > .kongzhi { |
| | | &>.kongzhi { |
| | | border: 1px solid #5c6169; |
| | | } |
| | | |
| | | & > .shangye { |
| | | &>.shangye { |
| | | border: 1px solid #cc9456; |
| | | } |
| | | } |
| | |
| | | border-radius: 10px; |
| | | overflow: hidden; |
| | | |
| | | & > div { |
| | | &>div { |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | |
| | |
| | | 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; |
| | | } |
| | | |