guoshilong
2023-01-16 ed1c057e9211f807c7308c1ce6f3d4fe53cc872d
Merge remote-tracking branch 'origin/master'
6 files modified
371 ■■■■■ changed files
src/api/dept/index.js 10 ●●●●● patch | view | raw | blame | history
src/styles/base/index.scss 22 ●●●●● patch | view | raw | blame | history
src/styles/media/index.scss 54 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 1 ●●●● patch | view | raw | blame | history
src/views/house/index.vue 128 ●●●●● patch | view | raw | blame | history
src/views/police/index.vue 156 ●●●● patch | view | raw | blame | history
src/api/dept/index.js
@@ -197,12 +197,14 @@
}
// 户籍人口、重点人口信息
export const getVillagePersonInfo = (resBusId) => {
export const getVillagePersonInfo = (resBusId, buildId, status) => {
    return request({
        url: `/api/villagePersonInfo/villagePersonInfo/page`,
        method: 'get',
        params: {
            resBusId
            resBusId,
            buildId,
            status
        }
    })
}
@@ -216,7 +218,7 @@
}
// 获取对应id下的派出所的责任区人口
export const getVillagePersonStatisticInfoByPoliceStationId = (name,id) => {
export const getVillagePersonStatisticInfoByPoliceStationId = (name, id) => {
    return request({
        url: `/api/villagePersonInfo/villagePersonInfo/getVillagePersonStatisticInfoByPoliceStationId`,
        method: 'get',
@@ -228,7 +230,7 @@
}
// 获取该责任区下的人员列表信息
export const getAreaPage = (current,size,areaId) => {
export const getAreaPage = (current, size, areaId) => {
    return request({
        url: `/api/policeStationInfo/policeStationInfo/getAreaPage`,
        method: 'get',
src/styles/base/index.scss
@@ -390,8 +390,30 @@
        left: 50% !important;
        transform: translate(-50%, -50%);
        .el-dialog__header {
            height:40px;
            line-height: 40px;
        }
        .el-table__header-wrapper {
            height:60px;
            line-height: 60px;
        }
        .el-table .cell{
            font-size:  16px;
            height: 30px;
            line-height: 30px;
        }
        .el-dialog__body {
            flex: 1;
            .el-table th.el-table__cell>.cell{
                font-size:  16px;
            }
        }
        .el-table {
            height: calc(100% - 40px);
            margin-bottom: 10px;
        }
    }
}
src/styles/media/index.scss
@@ -925,9 +925,6 @@
                                    height: countSizeVh(40);
                                    &>div {
                                        display: flex;
                                        align-items: center;
                                        &>button {
                                            width: countSizeVh(32);
                                            height: countSizeVh(32);
@@ -938,9 +935,6 @@
                                        }
                                        &>ul {
                                            display: flex;
                                            align-items: center;
                                            li {
                                                width: countSizeVh(32);
                                                height: countSizeVh(32);
@@ -1988,9 +1982,9 @@
                    .land-details-box {
                       .el-dialog__header {
                        height: countSizeVh(40);
                        line-height: countSizeVh(40);
                    }
                            height: countSizeVh(40);
                            line-height: countSizeVh(40);
                        }
                       .el-table__header-wrapper {
                            height: countSizeVh(60);
                            line-height: countSizeVh(40);
@@ -2075,6 +2069,48 @@
                            width: countSizeVw(1000, 1920);
                            height: countSizeVh(700);
                        }
                        .el-table__header-wrapper {
                            height: countSizeVh(60);
                            line-height: countSizeVh(40);
                        }
                        .el-table .cell{
                            font-size:  countSizeVh(16);
                            height: countSizeVh(44);
                            line-height: countSizeVh(44);
                        }
                        .el-dialog__header {
                            height: countSizeVh(40);
                            line-height: countSizeVh(40);
                        }
                        .pages {
                            height: countSizeVh(40);
                            &>div {
                                &>button {
                                    width: countSizeVh(32);
                                    height: countSizeVh(32);
                                    &>i {
                                        font-size: countSizeVh(16);
                                    }
                                }
                                &>ul {
                                    li {
                                        width: countSizeVh(32);
                                        height: countSizeVh(32);
                                        line-height: countSizeVh(32);
                                        font-size: countSizeVh(16);
                                    }
                                }
                            }
                        }
                        .el-table {
                            height: calc(100% - countSizeVh(50));
                        }
                    }
                    .policeSituation-details-box {
src/views/home/index.vue
@@ -1391,7 +1391,6 @@
        },
        searchLandDetail () {
            console.log(666)
            this.getLandDetail(this.landType, this.landDetailId, this.policeName, this.callPhone)
        },
src/views/house/index.vue
@@ -195,11 +195,11 @@
                            <div class="content">
                                <div class="one">
                                    <div @click="goTOPeopleDetail">
                                    <div @click="goTOPeopleDetail(1)">
                                        <div>{{ peopleInfo.registeredPopulation }}</div>
                                        <div>户籍人口</div>
                                    </div>
                                    <div @click="goTOPeopleDetail">
                                    <div @click="goTOPeopleDetail(2)">
                                        <div style="color:#FF796C">{{peopleInfo.KeyPopulation}}</div>
                                        <div>重点人口</div>
                                    </div>
@@ -593,19 +593,34 @@
            class="keyPerson-details-box"
        >
            <el-table
                :data="keyPersonDetailArr"
                :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' }"
            >
                <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>
                <el-table-column prop="address" label="地址"></el-table-column>
                <!-- <el-table-column label="序号" type="index" width="50" align="center">
                    <template scope="scope">
                        <span>{{(page - 1) * pageSize + scope.$index + 1}}</span>
                    </template>
                </el-table-column>-->
                <el-table-column prop="type" label="重点人员类型" v-if="keyPeopleType == 2"></el-table-column>
                <el-table-column prop="realName" label="姓名"></el-table-column>
                <el-table-column prop="cardNo" label="身份证号"></el-table-column>
                <el-table-column prop="address" label="地址" v-if="false"></el-table-column>
                <el-table-column prop="phone" label="电话"></el-table-column>
                <el-table-column prop="policeStation" label="所属派出所"></el-table-column>
                <el-table-column prop="housingEastate" label="所属责任区"></el-table-column>
                <el-table-column prop="policeStationName" label="所属派出所"></el-table-column>
                <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"
                    :page-count="peoplePage.count"
                    :current-page="peoplePage.currentPage"
                    @current-change="peopleHandleCurrentChange"
                ></el-pagination>
            </div>
        </el-dialog>
    </div>
</template>
@@ -669,62 +684,7 @@
            businessData: [],
            keyPersonTitle: '人员详情',
            keyPersonVisible: false,
            keyPersonDetailArr: [
                {
                    "name": "张某某",
                    "sex": "女",
                    "address": "XXXXXX",
                    "phone": "132XXXX6666",
                    "policeStation": "车站所",
                    "housingEastate": "责任区1",
                    "type": "涉恐人员"
                },
                {
                    "name": "黄某某",
                    "sex": "男",
                    "address": "XXXXXX",
                    "phone": "132XXXX6666",
                    "policeStation": "沙溪所",
                    "housingEastate": "责任区4",
                    "type": "涉恐人员"
                },
                {
                    "name": "邓某某",
                    "sex": "女",
                    "address": "XXXXXX",
                    "phone": "132XXXX6666",
                    "policeStation": "灵溪所",
                    "housingEastate": "责任区3",
                    "type": "涉恐人员"
                },
                {
                    "name": "章某某",
                    "sex": "女",
                    "address": "XXXXXX",
                    "phone": "132XXXX6666",
                    "policeStation": "江光所",
                    "housingEastate": "责任区1",
                    "type": "涉恐人员"
                },
                {
                    "name": "王某某",
                    "sex": "女",
                    "address": "XXXXXX",
                    "phone": "132XXXX6666",
                    "policeStation": "车站所",
                    "housingEastate": "责任区3",
                    "type": "涉恐人员"
                },
                {
                    "name": "贾某某",
                    "sex": "男",
                    "address": "XXXXXX",
                    "phone": "132XXXX6666",
                    "policeStation": "灵溪所",
                    "housingEastate": "责任区2",
                    "type": "涉恐人员"
                }
            ],
            personDetailArr: [],
            // 报警信息
            policeSituationHistoryArr: [],
@@ -744,6 +704,15 @@
            villageInfo: {},
            floorInfo: {},
            peopleInfo: {},
            choosedBuildId: '',
            keyPeopleType: '',
            peoplePage: {
                total: 0,
                pageSize: 9,
                count: 0,
                currentPage: 1
            },
        }
    },
    watch: {
@@ -755,13 +724,11 @@
    created () {
        // 首页跳转社区包含参数
        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)
            // 默认获取万达广场的责任民警及所属辖区
        } else {
            //直接进入社区 默认获取万达广场的责任民警及所属辖区
            this.getVillageInfo('644A2C4049024A3C8C76D96EEE4366FD')
            // 大搜之搜索面详细数据(停车场出入口商场)--默认万达华府
            this.getSearchExtensivelyBgAoiDeepdata('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', '644A2C4049024A3C8C76D96EEE4366FD', '1|3')
@@ -892,6 +859,7 @@
            this.floorInfo.elev = item.elev
            this.floorInfo.floor_num = item.floor_num
            // 获取户籍人口重点人口数据
            this.choosedBuildId = item.build_id
            this.getVillagePersonStatisticInfoByBuildId(item.build_id)
            this.getHouses(item.build_id, '361102')
            this.$EventBus.$emit('toPosition', item)
@@ -1126,8 +1094,12 @@
            })
        },
        goTOPeopleDetail () {
        goTOPeopleDetail (status) {
            this.keyPersonVisible = true
            this.keyPeopleType = status
            this.keyPersonTitle = status == 1 ? '户籍人口详情' : '重点人口详情'
            this.getVillagePersonInfo('', this.choosedBuildId, status == 1 ? '' : status)
        },
        // 获取历史接警记录
@@ -1155,6 +1127,10 @@
            // this.getAlarmList()
        },
        peopleHandleCurrentChange (currentPage) {
            this.peoplePage.currentPage = currentPage
        },
        // 警情列表点击事件
        clickData (row) {
            this.policeSituationDetailObj = row
@@ -1171,7 +1147,7 @@
        },
        async loadNode (node, resolve) {
            console.log('node', node)
            // console.log('node', node)
            if (node.level === 0) {
                let policeStaionList = []
                await getPoliceStationLazyTree(1).then(res => {
@@ -1215,9 +1191,13 @@
        },
        // 房屋人口信息
        getVillagePersonInfo (resBusId) {
            getVillagePersonInfo(resBusId).then(res => {
                this.houseDate = res.data.data.records
        getVillagePersonInfo (resBusId, buildId, status) {
            getVillagePersonInfo(resBusId, buildId, status).then(res => {
                if (buildId) {
                    this.personDetailArr = res.data.data.records
                } else {
                    this.houseDate = res.data.data.records
                }
            })
        },
src/views/police/index.vue
@@ -14,27 +14,52 @@
        <div v-show="boxShow" class="container-content">
            <div class="switch-box" v-show="!detailFlag">
                资源类别:
                <el-select v-model="typeValue" @change="navClick" placeholder="请选择" class="type-select-css">
                    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"
                        class="option-css"></el-option>
                <el-select
                    v-model="typeValue"
                    @change="navClick"
                    placeholder="请选择"
                    class="type-select-css"
                >
                    <el-option
                        v-for="item in options"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value"
                        class="option-css"
                    ></el-option>
                </el-select>
            </div>
            <div class="list-show" v-if="!detailFlag">
                <div class="search-box">
                    资源名称:
                    <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" />
                    <input
                        v-model="searchValue"
                        @input="searchChange"
                        type="text"
                        placeholder="请输入搜索条件"
                    />
                </div>
                <div class="list" ref="tableBox">
                    <el-table :data="equimentTableData"
                    <el-table
                        :data="equimentTableData"
                        :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                        :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }"
                        :height="currentTableHeight">
                        <el-table-column prop="name" :show-overflow-tooltip="true" label="名称"
                            min-width="30%"></el-table-column>
                        <el-table-column prop="channelId" :show-overflow-tooltip="true" label="通道编号"
                            min-width="24%"></el-table-column>
                        :height="currentTableHeight"
                    >
                        <el-table-column
                            prop="name"
                            :show-overflow-tooltip="true"
                            label="名称"
                            min-width="30%"
                        ></el-table-column>
                        <el-table-column
                            prop="channelId"
                            :show-overflow-tooltip="true"
                            label="通道编号"
                            min-width="24%"
                        ></el-table-column>
                        <el-table-column prop="status" label="状态" min-width="18%">
                            <template slot-scope="scope">
                                <div class="state-box" :class="{ online: scope.row.status == '1' }"></div>
@@ -43,14 +68,29 @@
                        <el-table-column label="操作" align="center" min-width="28%">
                            <template slot-scope="scope">
                                <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位">
                                <el-button
                                    @click="rowClick(scope.row)"
                                    type="text"
                                    size="small"
                                    title="定位"
                                >
                                    <i class="el-icon-location"></i>
                                </el-button>
                                <el-button v-show="navType == 0" @click="equipmentTrack(scope.row)" type="text"
                                    size="small" title="轨迹">
                                <el-button
                                    v-show="navType == 0"
                                    @click="equipmentTrack(scope.row)"
                                    type="text"
                                    size="small"
                                    title="轨迹"
                                >
                                    <i class="el-icon-position"></i>
                                </el-button>
                                <el-button @click="play(scope.row)" type="text" size="small" title="播放视频">
                                <el-button
                                    @click="play(scope.row)"
                                    type="text"
                                    size="small"
                                    title="播放视频"
                                >
                                    <i class="el-icon-video-play"></i>
                                </el-button>
                            </template>
@@ -58,9 +98,14 @@
                    </el-table>
                    <div class="pages" ref="tablePagination">
                        <el-pagination background layout="prev, pager, next" :page-size="equimentPage.pageSize"
                            :page-count="equimentPage.count" :current-page="equimentPage.currentPage"
                            @current-change="handleCurrentChange"></el-pagination>
                        <el-pagination
                            background
                            layout="prev, pager, next"
                            :page-size="equimentPage.pageSize"
                            :page-count="equimentPage.count"
                            :current-page="equimentPage.currentPage"
                            @current-change="handleCurrentChange"
                        ></el-pagination>
                    </div>
                </div>
            </div>
@@ -71,14 +116,12 @@
                    <ul>
                        <li>
                            <div>通道编号:</div>
                            <div>{{ currentSelectEquipment.channelId ? currentSelectEquipment.channelId : '' }}
                            </div>
                            <div>{{ currentSelectEquipment.channelId ? currentSelectEquipment.channelId : '' }}</div>
                        </li>
                        <li>
                            <div>设备编号:</div>
                            <div>{{ currentSelectEquipment.deviceId ? currentSelectEquipment.deviceId : '' }}
                            </div>
                            <div>{{ currentSelectEquipment.deviceId ? currentSelectEquipment.deviceId : '' }}</div>
                        </li>
                        <li>
@@ -88,18 +131,27 @@
                        <li>
                            <div>状态:</div>
                            <div>{{
                            <div>
                                {{
                                currentSelectEquipment.status ? (currentSelectEquipment.status == 0 ? '离线' :
                                    '在线') : ''
                            }}</div>
                                '在线') : ''
                                }}
                            </div>
                        </li>
                        <li>
                            <div>选择时间:</div>
                            <div class="datetime">
                                <el-date-picker v-model="trackTime" type="daterange" unlink-panels range-separator="至"
                                    start-placeholder="开始日期" size="mini" :editable="false"
                                    end-placeholder="结束日期"></el-date-picker>
                                <el-date-picker
                                    v-model="trackTime"
                                    type="daterange"
                                    unlink-panels
                                    range-separator="至"
                                    start-placeholder="开始日期"
                                    size="mini"
                                    :editable="false"
                                    end-placeholder="结束日期"
                                ></el-date-picker>
                            </div>
                        </li>
@@ -112,8 +164,13 @@
        </div>
        <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>
@@ -122,15 +179,31 @@
        <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="dialogTitle" :modal="false" :visible.sync="dialogVisible" :before-close="dialogBeforeClose"
            :close-on-click-modal="true" class="car-video-box">
            <video autoplay controls width="100%" height="100%" ref="videoElement" id="videoElement"
                style="object-fit: fill"></video>
        <el-dialog
            :title="dialogTitle"
            :modal="false"
            :visible.sync="dialogVisible"
            :before-close="dialogBeforeClose"
            :close-on-click-modal="true"
            class="car-video-box"
        >
            <video
                autoplay
                controls
                width="100%"
                height="100%"
                ref="videoElement"
                id="videoElement"
                style="object-fit: fill"
            ></video>
        </el-dialog>
    </div>
</template>
@@ -544,7 +617,6 @@
            await getHistoricalTrack(params).then(res => {
                positionArr = res.data.data
            })
            return positionArr
        },
@@ -697,7 +769,7 @@
            align-items: center;
            justify-content: space-around;
            &>div {
            & > div {
                flex: 1;
            }
        }
@@ -811,18 +883,18 @@
                color: #fff;
                border-bottom: 1px solid #fff;
                &>div {
                & > div {
                    text-align: center;
                }
                &>div:first-child {
                & > div:first-child {
                    flex: 2;
                }
                &>div:last-child {
                & > div:last-child {
                    flex: 6;
                    &>div {
                    & > div {
                        width: 100% !important;
                    }
                }
@@ -924,7 +996,7 @@
        border-radius: 10px;
        overflow: hidden;
        &>div {
        & > div {
            height: 100%;
            overflow-y: auto;