linwe
2024-12-17 e20d81efe855f7fbd89badc012cb1a9631f5e5c3
公安事情列表及详情
1 files modified
9 files added
2767 ■■■■■ changed files
src/api/dept/newIndex.js 199 ●●●●● patch | view | raw | blame | history
src/utils/tools/images.js 12 ●●●●● patch | view | raw | blame | history
src/views/house/components/antiFraud.vue 341 ●●●●● patch | view | raw | blame | history
src/views/house/components/employees.vue 270 ●●●●● patch | view | raw | blame | history
src/views/house/components/nineSmallPlaces.vue 480 ●●●●● patch | view | raw | blame | history
src/views/house/components/noFraudAuthentication.vue 224 ●●●●● patch | view | raw | blame | history
src/views/house/components/positionTrading.vue 265 ●●●●● patch | view | raw | blame | history
src/views/house/components/rentalHouse.vue 451 ●●●●● patch | view | raw | blame | history
src/views/house/components/scanCodeAlarm.vue 216 ●●●●● patch | view | raw | blame | history
src/views/house/index.vue 309 ●●●● patch | view | raw | blame | history
src/api/dept/newIndex.js
New file
@@ -0,0 +1,199 @@
import request from "@/router/axios.js"
/**
 * 获取从业人员数据
 * @param {*} params
 * @returns
 */
export const getPlacePractitionerPage = (resBusId) => {
    return request({
        url: '/api/blade-placePractitioner/placePractitioner/page',
        method: 'get',
        params: {
            resBusId
        }
    })
}
/**
 * 阵地控制
 * @param {*} resBusId
 * @returns
 */
export const getTaskLabelReportingEventPage = (resBusId) => {
    return request({
        url: '/api/blade-taskLabelReportingEvent/taskLabelReportingEvent/page',
        method: 'get',
        params: {
            resBusId
        }
    })
}
/**
 * 反诈宣传
 * @param {*} resBusId
 * @returns
 */
export const getTaskLabelAntiFraudPage = (resBusId) => {
    return request({
        url: '/api/blade-backblastPubRecord/backblastPubRecord/page',
        method: 'get',
        params: {
            resBusId
        }
    })
}
/**
 * 反诈预警列表
 * @param {*} resBusId
 * @returns
 */
export const getBackblastWarnHanRec = (resBusId) => {
    return request({
        url: '/api/blade-backblastWarnHanRec/backblastWarnHanRec/page',
        method: 'get',
        params: {
            resBusId
        }
    })
}
/**
 * 扫码报警
 * @param {*} resBusId
 * @param {*} size
 * @param {*} current
 * @returns
 */
export const getPoliceAlarmRecordsPage = (resBusId, size, current) => {
    return request({
        url: '/api/blade-policeAlarmRecords/policeAlarmRecords/page',
        method: 'get',
        params: {
            resBusId,
            current,
            size
        }
    })
}
/**
 * 消防检查
 * @param {*} resBusId
 * @param {*} size
 * @param {*} current
 * @returns
 */
export const getPlaceCheckPage = (resBusId, size, current) => {
    return request({
        url: '/api/blade-placeCheck/placeCheck/page',
        method: 'get',
        params: {
            resBusId,
            current,
            size
        }
    })
}
/**
 * 消防自查
 * @param {*} resBusId
 * @param {*} size
 * @param {*} current
 * @returns
 */
export const getTaskPlaceSelfCheckPage = (type, resBusId, size, current) => {
    return request({
        url: '/api/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/page',
        method: 'get',
        params: {
            type,
            resBusId,
            current,
            size
        }
    })
}
/**
 * 出租屋
 * @param {*} resBusId
 * @param {*} size
 * @param {*} current
 * @returns
 */
export const getHouseRentalPage = (resBusId, size, current) => {
    return request({
        url: '/api/blade-houseRental/houseRental/page',
        method: 'get',
        params: {
            resBusId,
            current,
            size
        }
    })
}
/**
 *  居住证申请列表
 * @param {*} resBusId
 * @param {*} size
 * @param {*} current
 * @returns
 */
export const geTaskResidencePermitApplyPage = (reportType, resBusId, size, current) => {
    return request({
        url: '/api/blade-taskResidencePermitApply/taskResidencePermitApply/page',
        method: 'get',
        params: {
            reportType,
            resBusId,
            current,
            size
        }
    })
}
/**
 * 租客列表
 * @param {*} relationship
 * @param {*} resBusId
 * @param {*} size
 * @param {*} current
 * @returns
 */
export const getTenantPage = (relationship, resBusId, size, current) => {
    return request({
        url: '/api/blade-household/household/selectTenantPage',
        method: 'get',
        params: {
            relationship,
            resBusId,
            current,
            size
        }
    })
}
/**
 * 题目树
 * @param {*} type
 * @param {*} childType
 * @returns
 */
export const getPatrolGroupTree = (type, childType) => {
    return request({
        url: '/api/patrol/patrolGroup/getPatrolGroupTree',
        method: 'get',
        params: {
            type,
            childType
        }
    })
}
src/utils/tools/images.js
New file
@@ -0,0 +1,12 @@
// 图片转换
export default function getImgUrls(imageUrls) {
    if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
        imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
            // return 'http://10.141.11.11/place/' + ele
            return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
        })
    }
    return imageUrls || []
}
src/views/house/components/antiFraud.vue
New file
@@ -0,0 +1,341 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <div class="btn-box-box">
                <!-- 出租屋按钮,居住证申请按钮,租客按钮 -->
                <div class="btn-box">
                    <el-button :type="current == 1 ? 'primary' : ''" size="mini" @click="changeData(1)">反诈宣防</el-button>
                </div>
                <div class="btn-box">
                    <el-button :type="current == 2 ? 'primary' : ''" size="mini" @click="changeData(2)">反诈预警处置</el-button>
                </div>
            </div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 1">
                <el-table-column align="center" prop="policeman" label="宣防人姓名"> </el-table-column>
                <el-table-column align="center" prop="policemanPhone" label="宣防人电话"> </el-table-column>
                <el-table-column align="center" prop="pcsName" label="宣防人单位"> </el-table-column>
                <el-table-column align="center" prop="pubContent" label="宣防内容"> </el-table-column>
            </el-table>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 2">
                <el-table-column align="center" show-overflow-tooltip prop="address" label="地址"> </el-table-column>
                <el-table-column align="center" prop="recContent" label="核实内容信息"> </el-table-column>
                <el-table-column align="center" prop="createTime" label="创建时间"> </el-table-column>
                <el-table-column align="center" prop="policeman" label="民警姓名"> </el-table-column>
                <el-table-column align="center" prop="policemanPhone" label="民警联系方式"> </el-table-column>
                <el-table-column align="center" prop="pcsName" label="宣防单位"> </el-table-column>
            </el-table>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <div v-if="current == 1">
                <div class="detail-title-box">
                    <div class="detail-title">反诈宣防详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防人姓名</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.policeman }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防人电话</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.policemanPhone }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防人单位</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.pcsName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防内容</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.pubContent }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">下载反诈app</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row"> {{ row.isFzApp == 1 ? '是' : '否' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">是否打开报警</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row"> {{ row.isOpenAlarm == 1 ? '是' : '否' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">经纬度</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row"> {{ row.lng }} ,{{ row.lat }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.address }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防照片</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="mini-code">
                            <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.pubUrls"
                                :preview-src-list="[row.pubUrls]">
                                <div slot="error" class="image-slot"></div>
                            </el-image>
                        </div>
                    </el-col>
                </el-row>
            </div>
            <div v-if="current == 2">
                <div class="detail-title-box">
                    <div class="detail-title">反诈预警处置详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">民警姓名</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.policeman }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">民警联系电话</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.policemanPhone }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防单位</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.pcsName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">核实内容信息</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.recContent }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">经纬度</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row"> {{ row.lng }} ,{{ row.lat }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.address }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">宣防照片</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="mini-code">
                            <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.sceUrls"
                                :preview-src-list="[row.sceUrls]">
                                <div slot="error" class="image-slot"></div>
                            </el-image>
                        </div>
                    </el-col>
                </el-row>
            </div>
        </div>
    </div>
</template>
<script>
import {
    getTaskLabelAntiFraudPage,
    getBackblastWarnHanRec
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            current: 1,
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        changeData(type) {
            this.current = type
            this.detailBox = false
            if (type == 1) {
                getTaskLabelAntiFraudPage('123456').then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            } else {
                getBackblastWarnHanRec('123456').then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            }
        },
        cellClick(row, column, cell, event) {
            row.pubUrls = this.getImgUrls(row.pubUrls)
            this.row = row
            this.detailBox = !this.detailBox
            console.log('cellClick', row, column, cell, event)
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        getTaskLabelAntiFraudPage(123456).then((res) => {
            this.dataList.total = res.data.data.total
            this.dataList.records = res.data.data.records
        })
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .btn-box-box {
        display: flex;
        .btn-box {
            margin: 2px 5px;
        }
    }
    .detail-box {
        height: 700px;
        position: absolute;
        right: -410px;
        top: -80%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/components/employees.vue
New file
@@ -0,0 +1,270 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick">
                <!-- 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等。 -->
                <el-table-column align="center" prop="name" label="姓名"> </el-table-column>
                <el-table-column align="center" prop="gender" label="性别">
                    <template slot-scope="scope">
                        {{ scope.row.gender == 1 ? '男' : '女' }}
                    </template>
                </el-table-column>
                <el-table-column align="center" prop="ethnicity" label="民族"> </el-table-column>
                <el-table-column align="center" prop="idCard" label="身份证号码"> </el-table-column>
                <el-table-column align="center" prop="telephone" label="手机号"> </el-table-column>
                <el-table-column align="center" prop="location" show-overflow-tooltip label="现居住地"> </el-table-column>
                <el-table-column align="center" prop="name" label="岗位"> </el-table-column>
            </el-table>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <!-- popelList[0]  详情页面 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等-->
            <div class="detail-title-box">
                <div class="detail-title">从业人员详情</div>
            </div>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">场所名称</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.placeName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">场所负责人</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.principal }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">负责人电话</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.principalPhone }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">场所地址</div>
                </el-col>
                <el-col :span="18">
                    <div class="">{{ row.location }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">姓名</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.name }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">性别</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.gender == 1 ? '男' : '女' }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">民族</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.ethnicity }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">身份证号码</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.idCard }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">手机号</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.telephone }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">现居住地</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.tempAddress }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">岗位</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.jobNature }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">入职时间</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.employmentTime }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">辞职时间</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.resignationTime }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">从业人员照片</div>
                </el-col>
                <el-col :span="18">
                    <div class="mini-code">
                        <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.employerImg"
                            :preview-src-list="[row.employerImg]">
                            <div slot="error" class="image-slot"></div>
                        </el-image>
                    </div>
                </el-col>
            </el-row>
        </div>
    </div>
</template>
<script>
import {
    getPlacePractitionerPage
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        init() {
            getPlacePractitionerPage(123456).then((res) => {
                this.dataList.total = res.data.data.total
                this.dataList.records = res.data.data.records
            })
        },
        cellClick(row, column, cell, event) {
            row.employerImg = this.getImgUrls(row.employerImg)
            this.row = row
            this.detailBox = !this.detailBox
            console.log('cellClick', row, column, cell, event)
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        this.init()
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .detail-box {
        height: 700px;
        position: absolute;
        right: -410px;
        top: -60%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/components/nineSmallPlaces.vue
New file
@@ -0,0 +1,480 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <div class="btn-box-box">
                <!-- 出租屋按钮,居住证申请按钮,租客按钮 -->
                <div class="btn-box">
                    <el-button :type="current == 1 ? 'primary' : ''" size="mini" @click="changeData(1)">消防检查</el-button>
                </div>
                <div class="btn-box">
                    <el-button :type="current == 2 ? 'primary' : ''" size="mini" @click="changeData(2)">消防自查</el-button>
                </div>
            </div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 1">
                <el-table-column align="center" prop="placeName" label="场所名称"> </el-table-column>
                <el-table-column align="center" prop="principal" label="场所负责人"> </el-table-column>
                <el-table-column align="center" prop="principalPhone" label="场所负责人电话"> </el-table-column>
                <el-table-column align="center" prop="terminationTime" label="检查时间"> </el-table-column>
                <el-table-column align="center" prop="location" show-overflow-tooltip label="场所地址"> </el-table-column>
                <el-table-column align="center" prop="hiddenDangerNumber" label="执行状态">
                    <template slot-scope="scope">
                        {{ scope.row.hiddenDangerNumber == 1 ? '是' : '否' }}
                    </template>
                </el-table-column>
            </el-table>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 2">
                <el-table-column align="center" prop="tenantName" label="租户名称"> </el-table-column>
                <el-table-column align="center" prop="phone" label="租户电话"> </el-table-column>
                <el-table-column align="center" prop="rentalTime" label="开始时间"> </el-table-column>
                <el-table-column align="center" prop="terminationTime" label="结束时间"> </el-table-column>
                <el-table-column align="center" prop="houseName" show-overflow-tooltip label="房屋地址"> </el-table-column>
                <el-table-column align="center" prop="houseStatus" label="房屋状态">
                    <template slot-scope="scope">
                        {{ scope.row.injuryFlag == 1 ? '是' : '否' }}
                    </template>
                </el-table-column>
            </el-table>
            <div class="block">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                    :current-page="currentPage4" :page-sizes="[10, 20, 30, 40]" :page-size="100"
                    layout="total, sizes, prev, pager, next, jumper" :total="dataList.total">
                </el-pagination>
            </div>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <div v-if="current == 1">
                <div class="detail-title-box">
                    <div class="detail-title">消防检查详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">场所名称</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.placeName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">场所负责人</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.principal }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">场所负责人电话</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.principalPhone }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">检查时间</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.createTime }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.location }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">经纬度</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.lng }},{{ row.lat }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">签名</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="mini-code">
                            <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.signaturePath"
                                :preview-src-list="[row.signaturePath]">
                                <div slot="error" class="image-slot"></div>
                            </el-image>
                        </div>
                    </el-col>
                </el-row>
                <div class="flex-1 flex f-d-c examine-details">
                    <!-- <div class="back-btn">返回</div>
                    <div class="title">
                        <div class="icon">{{ refreshNum }}</div>
                        基础信息
                    </div>
                    <div class="basic-info">
                        <div class="info-item">
                            <div class="info-name">场所名称</div>
                            <div class="info-value">{{ examineDetails.placeName }}</div>
                        </div>
                        <div class="info-item">
                            <div class="info-name">检查时间</div>
                            <div class="info-value">{{ examineDetails.createTime }}</div>
                        </div>
                    </div>
                    <div class="title">
                        <div class="icon"></div>
                        检查记录
                    </div> -->
                    <div class="question-list" v-for="(tItem, tIndex) in patrolGroupDTOList" :key='tIndex'>
                        <div class="question-type">
                            <div class="type-name">
                                {{ tIndex + 1 }}、{{ tItem.title }}
                            </div>
                            <div class="icon-box">
                                <i class="el-icon-arrow-down" v-if="tItem.hasChildren"></i>
                                <i class="el-icon-arrow-up" v-if="!tItem.hasChildren"></i>
                            </div>
                        </div>
                        <div v-show="tItem.hasChildren" class="question-item" v-for="(item, index) in tItem.children"
                            :key='index'>
                            <div class="question-name">
                                <div class="key">{{ index + 1 }}、{{ item.title }}</div>
                                <div class="value">
                                    <el-radio v-show="item.state == 0" v-model="item.state" :label="0"
                                        disabled>存在</el-radio>
                                    <el-radio v-show="item.state == 1" v-model="item.state" :label="1"
                                        disabled>不存在</el-radio>
                                </div>
                            </div>
                            <div v-show="item.state == 0" class="yh-pic-box">
                                <div class="yh-pic-name">
                                    隐患图片:
                                </div>
                                <div class="yh-pic-list">
                                    <div class="pic-item" v-for="(pic, picIndex) in getImgUrls(item)" :key="picIndex">
                                        <el-image :src="pic" :fit="fit" :preview-src-list="getImgUrls(item)"></el-image>
                                    </div>
                                </div>
                            </div>
                            <div v-show="item.state == 0" class="yh-remark">
                                <div class="yh-remark-name">
                                    隐患描述:
                                </div>
                                <div class="yh-remark-value">
                                    {{ item.remark }}
                                </div>
                            </div>
                            <div v-show="item.state == 0" class="yh-pic-box">
                                <div class="yh-pic-name">
                                    整改后图片:
                                </div>
                                <div class="yh-pic-list">
                                    <div class="pic-item" v-for="(pic, picIndex)  in getRectificationImageUrls(item)"
                                        :key="picIndex">
                                        <el-image :src="pic" :fit="fit"
                                            :preview-src-list="getRectificationImageUrls(item)"></el-image>
                                    </div>
                                </div>
                            </div>
                            <div v-show="item.state == 0" class="yh-remark">
                                <div class="yh-remark-name">
                                    整改后描述:
                                </div>
                                <div class="yh-remark-value">
                                    {{ item.rectificationRemark }}
                                </div>
                            </div>
                        </div>
                        <!-- <div v-show="!('patrolRecordVOList' in tItem)">{{ tItem.remark }}</div> -->
                    </div>
                </div>
            </div>
            <div v-if="current == 2">
                <div class="detail-title-box">
                    <div class="detail-title">扫码报警详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">民警</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.policeName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">单位</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.pcsName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">是否受伤</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.gender == 1 ? '是' : '否' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">报警时间</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.createTime }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.address }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">经纬度</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.lng }},{{ row.lat }}</div>
                    </el-col>
                </el-row>
            </div>
        </div>
    </div>
</template>
<script>
import {
    getTaskPlaceSelfCheckPage,
    getPlaceCheckPage,
    getPatrolGroupTree
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            current: 1,
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
            pageparm: {
                pageSize: 10,
                current: 1
            },
            patrolGroupDTOList: []
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageparm.pageSize = val
            this.changeData(this.current)
        },
        handleCurrentChange(val) {
            console.log(`当前页: ${val}`);
            this.pageparm.current = val
            this.changeData(this.current)
        },
        changeData(type) {
            this.current = type
            this.detailBox = false
            if (type == 1) {
                getPlaceCheckPage(123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            } else {
                getTaskPlaceSelfCheckPage(1, 123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            }
        },
        init() {
            getPlaceCheckPage(123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
                this.dataList.total = res.data.data.total
                this.dataList.records = res.data.data.records
            })
            getPatrolGroupTree(1, 1).then((res) => {
                this.patrolGroupDTOList = res.data.data
                this.patrolGroupDTOList.map(item => {
                    return {
                        ...item,
                        isShowQList: true
                    }
                })
            })
        },
        cellClick(row, column, cell, event) {
            row.employerImg = this.getImgUrls(row.employerImg)
            this.row = row
            this.detailBox = !this.detailBox
            // console.log('cellClick', row, column, cell, event)
            this.patrolGroupDTOList.forEach(item => {
                if (item.hasChildren) {
                    item.children.forEach(ele => {
                        row.patrolRecordVOList.forEach(pp => {
                            if (ele.id == pp.itemId) {
                                ele.state = pp.itemId
                                ele.imageUrls = pp.imageUrls
                                ele.remark = pp.remark
                                ele.rectificationImageUrls = pp.rectificationImageUrls
                                ele.rectificationRemark = pp.rectificationRemark
                            }
                        })
                    })
                }
            })
        },
        getRectificationImageUrls() {
            return (item) => {
                let imageUrls = item.rectificationImageUrls
                if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                    imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                        return 'http://10.141.11.11/place/' + ele
                    })
                }
                return imageUrls || []
            }
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        this.init()
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .btn-box-box {
        display: flex;
        .btn-box {
            margin: 2px 5px;
        }
    }
    .detail-box {
        height: 700px;
        position: absolute;
        right: -410px;
        top: -70%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/components/noFraudAuthentication.vue
New file
@@ -0,0 +1,224 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick">
                <!-- 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等。 -->
                <el-table-column align="center" prop="policeName" label="民警"> </el-table-column>
                <el-table-column align="center" prop="pcsName" label="单位"> </el-table-column>
                <el-table-column align="center" prop="createTime" label="报警时间"> </el-table-column>
                <el-table-column align="center" prop="address" show-overflow-tooltip label="地址"> </el-table-column>
                <el-table-column align="center" prop="injuryFlag" label="是否受伤">
                    <template slot-scope="scope">
                        {{ scope.row.injuryFlag == 1 ? '是' : '否' }}
                    </template>
                </el-table-column>
            </el-table>
            <div class="block">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                    :current-page="currentPage4" :page-sizes="[10, 20, 30, 40]" :page-size="100"
                    layout="total, sizes, prev, pager, next, jumper" :total="dataList.total">
                </el-pagination>
            </div>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <!-- popelList[0]  详情页面 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等-->
            <div class="detail-title-box">
                <div class="detail-title">扫码报警详情</div>
            </div>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">民警</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.policeName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">单位</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.pcsName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">是否受伤</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.gender == 1 ? '是' : '否' }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">报警时间</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.createTime }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">地址</div>
                </el-col>
                <el-col :span="18">
                    <div class="">{{ row.address }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">经纬度</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.longitude }},{{ row.latitude }}</div>
                </el-col>
            </el-row>
        </div>
    </div>
</template>
<script>
import {
    getPoliceAlarmRecordsPage
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
            pageparm: {
                pageSize: 10,
                current: 1
            }
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageparm.pageSize = val
            this.init()
        },
        handleCurrentChange(val) {
            console.log(`当前页: ${val}`);
            this.pageparm.current = val
            this.init()
        },
        init() {
            getPoliceAlarmRecordsPage(123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
                this.dataList.total = res.data.data.total
                this.dataList.records = res.data.data.records
            })
        },
        cellClick(row, column, cell, event) {
            row.employerImg = this.getImgUrls(row.employerImg)
            this.row = row
            this.detailBox = !this.detailBox
            console.log('cellClick', row, column, cell, event)
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        this.init()
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .btn-box-box {
        display: flex;
        .btn-box {
            margin: 2px 5px;
        }
    }
    .detail-box {
        height: 700px;
        position: absolute;
        right: -410px;
        top: -70%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/components/positionTrading.vue
New file
@@ -0,0 +1,265 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick">
                <!-- 包含了场所名称、阵地类型、交易人员姓名、手机号、身份证号码、物品名称、交易数量、交易金额、校验过程、交易物品图片等 -->
                <el-table-column align="center" prop="labelName" label="阵地类型"> </el-table-column>
                <el-table-column align="center" prop="placeName" label="场所名称"> </el-table-column>
                <el-table-column align="center" prop="owner" label="交易人姓名"> </el-table-column>
                <el-table-column align="center" prop="phoneNumber" label="手机号"> </el-table-column>
                <el-table-column align="center" prop="idCard" label="身份证号码"> </el-table-column>
                <el-table-column align="center" prop="transactionObject" label="物品名称"> </el-table-column>
                <el-table-column align="center" prop="goodsNums" label="交易数量"> </el-table-column>
                <el-table-column align="center" prop="transactionMoney" label="交易金额"> </el-table-column>
            </el-table>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <!-- 包含了场所名称、阵地类型、交易人员姓名、手机号、身份证号码、物品名称、交易数量、交易金额、校验过程、交易物品图片等 -->
            <div class="detail-title-box">
                <div class="detail-title">阵地交易详情</div>
            </div>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">场所名称</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.placeName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">场所负责人</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.principal }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">负责人电话</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.principalPhone }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">场所地址</div>
                </el-col>
                <el-col :span="18">
                    <div class="">{{ row.location }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">交易类型</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.labelName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">交易对象</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.transactionObject }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">商品价格</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.transactionMoney }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">商品数量</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.goodsNums }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">交易人名称</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.owner }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">交易人电话</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.phoneNumber }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">交易人身份证</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.idCard }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">交易照片</div>
                </el-col>
                <el-col :span="18">
                    <div class="mini-code">
                        <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.imageUrls"
                            :preview-src-list="[row.imageUrls]">
                            <div slot="error" class="image-slot"></div>
                        </el-image>
                    </div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">商品照片</div>
                </el-col>
                <el-col :span="18">
                    <div class="mini-code">
                        <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.goodsImageUrls"
                            :preview-src-list="[row.goodsImageUrls]">
                            <div slot="error" class="image-slot"></div>
                        </el-image>
                    </div>
                </el-col>
            </el-row>
        </div>
    </div>
</template>
<script>
import {
    getTaskLabelReportingEventPage
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        cellClick(row, column, cell, event) {
            row.imageUrls = this.getImgUrls(row.imageUrls)
            row.goodsImageUrls = this.getImgUrls(row.goodsImageUrls)
            this.row = row
            this.detailBox = !this.detailBox
            console.log('cellClick', row, column, cell, event)
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        // this.residentIdSave
        getTaskLabelReportingEventPage(123456).then((res) => {
            this.dataList.total = res.data.data.total
            this.dataList.records = res.data.data.records
        })
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .detail-box {
        height: 800px;
        position: absolute;
        right: -410px;
        top: -60%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/components/rentalHouse.vue
New file
@@ -0,0 +1,451 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <div class="btn-box-box">
                <!-- 出租屋按钮,居住证申请按钮,租客按钮 -->
                <div class="btn-box">
                    <el-button :type="current == 1 ? 'primary' : ''" size="mini" @click="changeData(1)">出租屋</el-button>
                </div>
                <div class="btn-box">
                    <el-button :type="current == 2 ? 'primary' : ''" size="mini" @click="changeData(2)">居住证申请</el-button>
                </div>
                <div class="btn-box">
                    <el-button :type="current == 3 ? 'primary' : ''" size="mini" @click="changeData(3)">租客</el-button>
                </div>
            </div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 1">
                <el-table-column align="center" prop="tenantName" label="租户名称"> </el-table-column>
                <el-table-column align="center" prop="phone" label="租户电话"> </el-table-column>
                <el-table-column align="center" prop="rentalTime" label="租房时间"> </el-table-column>
                <el-table-column align="center" prop="dueTime" label="到期时间"> </el-table-column>
                <el-table-column align="center" prop="houseStatus" label="租赁期限">
                    <template slot-scope="scope">
                        {{ scope.row.houseStatus == 1 ? '长期' : scope.row.houseStatus == 2 ? '中期' : '短期' }}
                    </template>
                </el-table-column>
                <el-table-column align="center" prop="houseName" show-overflow-tooltip label="房屋地址"> </el-table-column>
                <el-table-column align="center" prop="houseStatus" label="房屋状态">
                    <template slot-scope="scope">
                        {{ scope.row.houseStatus == 1 ? '部分出租' : '全部出租' }}
                    </template>
                </el-table-column>
            </el-table>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 2">
                <el-table-column align="center" prop="landlordName" label="名称"> </el-table-column>
                <el-table-column align="center" prop="landlordPhone" label="联系电话"> </el-table-column>
                <el-table-column align="center" prop="idCard" label="身份证号"> </el-table-column>
                <el-table-column align="center" prop="remak" label="申请事由"> </el-table-column>
                <el-table-column align="center" prop="createTime" label="申请时间"> </el-table-column>
                <el-table-column align="center" prop="minors" label="未成年">
                    <template slot-scope="scope">
                        {{ scope.row.minors == 1 ? '是' : '否' }}
                    </template>
                </el-table-column>
                <el-table-column align="center" prop="address" show-overflow-tooltip label="地址"> </el-table-column>
                <!-- <el-table-column align="center" prop="confirmFlag" label="审核状态">
                    <template slot-scope="scope">
                        {{ scope.row.confirmFlag == 2 ? '待审核' : '通过' }}
                    </template>
                </el-table-column> -->
            </el-table>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick" v-if="current == 3">
                <el-table-column align="center" prop="name" label="名称"> </el-table-column>
                <el-table-column align="center" prop="idCard" label="身份证号码"> </el-table-column>
                <el-table-column align="center" prop="gender" label="性别">
                    <template slot-scope="scope">
                        {{ scope.row.gender == 1 ? '男' : '女' }}
                    </template> </el-table-column>
                <el-table-column align="center" prop="phoneNumber" label="联系方式"> </el-table-column>
            </el-table>
            <div class="block">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                    :current-page="currentPage4" :page-sizes="[10, 20, 30, 40]" :page-size="100"
                    layout="total, sizes, prev, pager, next, jumper" :total="dataList.total">
                </el-pagination>
            </div>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <div v-if="current == 1">
                <div class="detail-title-box">
                    <div class="detail-title">出租屋详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">租户名称</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.tenantName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">租户电话</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.phone }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">租房时间</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.rentalTime }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">到期时间</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.dueTime }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.houseName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">租赁期限</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row"> {{ row.houseStatus == 1 ? '长期' : row.houseStatus == 2 ? '中期' :
                            '短期' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">房屋状态</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row"> {{ row.houseStatus == 1 ? '部分出租' : '全部出租' }}</div>
                    </el-col>
                </el-row>
            </div>
            <div v-if="current == 2">
                <div class="detail-title-box">
                    <div class="detail-title">居住证申请详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">姓名</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.landlordName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">联系电话</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.landlordPhone }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">身份证号码</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.idCard }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">申请事由</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.remak }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">申请时间</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.createTime }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">未成年</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.injuryFlag == 1 ? '是' : '否' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">审核状态</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.confirmFlag == 2 ? '待审核' : '通过' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.address }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">经纬度</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.lng }},{{ row.lat }}</div>
                    </el-col>
                </el-row>
            </div>
            <div v-if="current == 3">
                <div class="detail-title-box">
                    <div class="detail-title">租客详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">名称</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.name }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">身份证号码</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.idCard }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">联系方式</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.phoneNumber }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">性别</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.gender == 1 ? '是' : '否' }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">经纬度</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.lng }},{{ row.lat }}</div>
                    </el-col>
                </el-row>
            </div>
        </div>
    </div>
</template>
<script>
import {
    getHouseRentalPage,
    geTaskResidencePermitApplyPage,
    getTenantPage
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            current: 1,
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
            pageparm: {
                pageSize: 10,
                current: 1
            }
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageparm.pageSize = val
            this.changeData(this.current)
        },
        handleCurrentChange(val) {
            console.log(`当前页: ${val}`);
            this.pageparm.current = val
            this.changeData(this.current)
        },
        changeData(type) {
            this.current = type
            this.detailBox = false
            if (type == 1) {
                getHouseRentalPage('a1', this.pageparm.pageSize, this.pageparm.current).then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            } else if (type == 2) {
                geTaskResidencePermitApplyPage(2, 'a1', this.pageparm.pageSize, this.pageparm.current).then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            } else if (type == 3) {
                getTenantPage(1, 'a1', this.pageparm.pageSize, this.pageparm.current).then((res) => {
                    this.dataList.total = res.data.data.total
                    this.dataList.records = res.data.data.records
                })
            }
        },
        init() {
            getHouseRentalPage('a1', this.pageparm.pageSize, this.pageparm.current).then((res) => {
                this.dataList.total = res.data.data.total
                this.dataList.records = res.data.data.records
            })
        },
        cellClick(row, column, cell, event) {
            row.employerImg = this.getImgUrls(row.employerImg)
            this.row = row
            this.detailBox = !this.detailBox
            console.log('cellClick', row, column, cell, event)
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        this.init()
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .btn-box-box {
        display: flex;
        .btn-box {
            margin: 2px 5px;
        }
    }
    .detail-box {
        height: 700px;
        position: absolute;
        right: -410px;
        top: -70%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/components/scanCodeAlarm.vue
New file
@@ -0,0 +1,216 @@
<!--  -->
<template>
    <div class="table-box-w">
        <div>
            <el-table :data="dataList.records" style="width: 100%" @cell-click="cellClick">
                <!-- 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等。 -->
                <el-table-column align="center" prop="policeName" label="民警"> </el-table-column>
                <el-table-column align="center" prop="pcsName" label="单位"> </el-table-column>
                <el-table-column align="center" prop="createTime" label="报警时间"> </el-table-column>
                <el-table-column align="center" prop="address" show-overflow-tooltip label="地址"> </el-table-column>
                <el-table-column align="center" prop="injuryFlag" label="是否受伤">
                    <template slot-scope="scope">
                        {{ scope.row.injuryFlag == 1 ? '是' : '否' }}
                    </template>
                </el-table-column>
            </el-table>
            <div class="block">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                    :current-page="currentPage4" :page-sizes="[10, 20, 30, 40]" :page-size="100"
                    layout="total, sizes, prev, pager, next, jumper" :total="dataList.total">
                </el-pagination>
            </div>
        </div>
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <!-- popelList[0]  详情页面 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等-->
            <div class="detail-title-box">
                <div class="detail-title">扫码报警详情</div>
            </div>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">民警</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.policeName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">单位</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.pcsName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">是否受伤</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.gender == 1 ? '是' : '否' }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">报警时间</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.createTime }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">地址</div>
                </el-col>
                <el-col :span="18">
                    <div class="">{{ row.address }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">经纬度</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.longitude }},{{ row.latitude }}</div>
                </el-col>
            </el-row>
        </div>
    </div>
</template>
<script>
import {
    getPoliceAlarmRecordsPage
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
    props: {
        hushiPeoTy: {
            type: String,
            default: ''
        },
    },
    //import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
        //这里存放数据
        return {
            row: {},
            detailBox: false,
            dataList: {
                total: 1,
                records: []
            },
            pageparm: {
                pageSize: 10,
                current: 1
            }
        };
    },
    //监听属性 类似于data概念
    computed: {
    },
    //监控data中的数据变化
    watch: {},
    //方法集合
    methods: {
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageparm.pageSize = val
            this.init()
        },
        handleCurrentChange(val) {
            console.log(`当前页: ${val}`);
            this.pageparm.current = val
            this.init()
        },
        init() {
            getPoliceAlarmRecordsPage(123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
                this.dataList.total = res.data.data.total
                this.dataList.records = res.data.data.records
            })
        },
        cellClick(row, column, cell, event) {
            row.employerImg = this.getImgUrls(row.employerImg)
            this.row = row
            this.detailBox = !this.detailBox
            console.log('cellClick', row, column, cell, event)
        },
        // // 图片转换
        getImgUrls(imageUrls) {
            if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
                imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
                    // return 'http://10.141.11.11/place/' + ele
                    return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
                })
            }
            return imageUrls || []
        },
    },
    //生命周期 - 创建完成(可以访问当前this实例)
    created() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
    },
    //生命周期 - 挂载完成(可以访问DOM元素)
    mounted() {
        console.log('tableFromPop mounted', this.hushiPeoTy)
        this.init()
    },
    beforeCreate() { }, //生命周期 - 创建之前
    beforeMount() { }, //生命周期 - 挂载之前
    beforeUpdate() { }, //生命周期 - 更新之前
    updated() { }, //生命周期 - 更新之后
    beforeDestroy() { }, //生命周期 - 销毁之前
    destroyed() { }, //生命周期 - 销毁完成
    activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
.table-box-w {
    // position: relative;
    // background-color: rgba(228, 17, 17, 0.5);
    .detail-box {
        height: 700px;
        position: absolute;
        right: -410px;
        top: -70%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        padding: 10px;
        .detail-title-box {
            margin-bottom: 10px;
            font-weight: bold;
            text-align: center;
        }
    }
    .detail-row {
        line-height: 40px;
        // text-align: left;
        // margin-left: 10px;
    }
}
</style>
src/views/house/index.vue
@@ -547,22 +547,70 @@
            </div>
            <div class="table-box">
                <div class="type-tab-box">
                    <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 1 }" @click="hushiPeoTyClick(1)">
                    <div v-for="(item, index) in menuList" :key="index">
                        <div v-if="item.isHover" class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == item.value }"
                            @click="hushiPeoTyClick(item.value)">
                            {{ item.label }}</div>
                    </div>
                    <!-- <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 1 }" @click="hushiPeoTyClick(1)">
                        户籍人口</div>
                    <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 2 }" @click="hushiPeoTyClick(2)">
                        实有人口</div>
                    <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 3 }" @click="hushiPeoTyClick(3)">其他
                    </div>
                    <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 5 }"
                        @click="getVillageEmployeeInfo(5)">从业人员
                    </div>
                    <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 6 }"
                        @click="getVillageReportingEvent(6)">阵地控制
                    </div>
                    <div class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 7 }" @click="getVillageAntiFraud(7)">
                        反诈宣传
                    </div>
                    <div v-show="isShowPayInfo" class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == 4 }"
                        @click="hushiPeoTyClick(4)">交易信息
                    </div>
                    </div> -->
                </div>
                <div v-if="hushiPeoTy == 5" class="pay-info-box">
                    <employees ref="employees"></employees>
                </div>
                <div v-if="hushiPeoTy == 6" class="pay-info-box">
                    <positionTrading ref="positionTrading"></positionTrading>
                </div>
                <div v-if="hushiPeoTy == 7" class="pay-info-box">
                    <antiFraud ref="antiFraud"></antiFraud>
                </div>
                <div v-if="hushiPeoTy == 8" class="pay-info-box">
                    <scanCodeAlarm ref="scanCodeAlarm"></scanCodeAlarm>
                </div>
                <div v-if="hushiPeoTy == 10" class="pay-info-box">
                    <rentalHouse ref="rentalHouse"></rentalHouse>
                </div>
                <div v-if="hushiPeoTy == 12" class="pay-info-box">
                    <noFraudAuthentication ref="noFraudAuthentication"></noFraudAuthentication>
                </div>
                <div v-if="hushiPeoTy == 11" class="pay-info-box">
                    <nineSmallPlaces ref="nineSmallPlaces"></nineSmallPlaces>
                </div>
                <el-table :data="houseDate"
                    :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                    :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" v-loading="residentLoading"
                    element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
                    element-loading-background="rgba(17, 38, 163, 1)" :empty-text="residentNoDataText"
                    v-if="!isShowPayInfo && hushiPeoTy != 4">
                    v-if="!isShowPayInfo && (hushiPeoTy == 1 || hushiPeoTy == 2 || hushiPeoTy == 3)">
                    <el-table-column prop="realName" label="姓名">
                        <template slot-scope="scope">
                            <span :style="{ color: (scope.row.status == 2 ? '#f00!important' : '#000') }">
@@ -634,7 +682,7 @@
                    :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" v-loading="residentLoading"
                    element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
                    element-loading-background="rgba(17, 38, 163, 1)" :empty-text="residentNoDataText"
                    v-if="isShowPayInfo && hushiPeoTy != 4">
                    v-if="isShowPayInfo && (hushiPeoTy == 1 || hushiPeoTy == 2 || hushiPeoTy == 3)">
                    <el-table-column prop="realName" label="姓名">
                        <template slot-scope="scope">
                            <span :style="{ color: (scope.row.status == 2 ? '#f00!important' : '#000') }">
@@ -833,12 +881,30 @@
} from "@/api/dept/index.js"
import { getAlarmList, getAlarmStatistics } from "@/api/home/index.js"
import employees from "./components/employees"
import positionTrading from "./components/positionTrading"
import antiFraud from "./components/antiFraud"
import scanCodeAlarm from "./components/scanCodeAlarm"
import rentalHouse from "./components/rentalHouse"
import nineSmallPlaces from "./components/nineSmallPlaces"
import noFraudAuthentication from "./components/noFraudAuthentication"
let wallLayer = null
export default {
    inject: ["userInfo"],
    // 引入组件tableFrom
    components: {
        employees,
        positionTrading,
        antiFraud,
        scanCodeAlarm,
        rentalHouse,
        nineSmallPlaces,
        noFraudAuthentication
    },
    data () {
    data() {
        return {
            isShowPayInfo: false,
            isShowHouseInfoBox: true,
@@ -1016,7 +1082,7 @@
                shortcuts: [
                    {
                        text: "最近一周",
                        onClick (picker) {
                        onClick(picker) {
                            const end = new Date()
                            const start = new Date()
                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
@@ -1025,7 +1091,7 @@
                    },
                    {
                        text: "最近一个月",
                        onClick (picker) {
                        onClick(picker) {
                            const end = new Date()
                            const start = new Date()
                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
@@ -1034,7 +1100,7 @@
                    },
                    {
                        text: "最近三个月",
                        onClick (picker) {
                        onClick(picker) {
                            const end = new Date()
                            const start = new Date()
                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
@@ -1054,17 +1120,84 @@
            isBusinessHoverShow: false,
            hushiPeoTy: 1,
            residentIdSave: '',
            // 菜单列表
            menuList: [
                {
                    label: "户籍人口",
                    value: 1,
                    isHover: true,
                },
                {
                    label: "实有人口",
                    value: 2,
                    isHover: true,
                },
                {
                    label: "其他",
                    value: 3,
                    isHover: true,
                },
                {
                    label: "交易信息",
                    value: 4,
                    isHover: false,
                },
                {
                    label: "从业人员",
                    value: 5,
                    isHover: true,
                },
                {
                    label: "阵地控制",
                    value: 6,
                    isHover: true,
                },
                {
                    label: "反诈宣传",
                    value: 7,
                    isHover: true,
                },
                {
                    label: "扫码报警",
                    value: 8,
                    isHover: true,
                },
                // {
                //     label: "矛盾纠纷",
                //     value: 9,
                // },
                {
                    label: "出租屋",
                    value: 10,
                    isHover: true,
                },
                {
                    label: "九小场所",
                    value: 11,
                    isHover: true,
                },
                {
                    label: "无诈认证",
                    value: 12,
                    isHover: true,
                },
                // {
                //     label: "校园安全",
                //     value: 13,
                // }
            ]
        }
    },
    computed: {
        whetherPosition () {
        whetherPosition() {
            return (row) => {
                return !(row.ZDDWXZB && row.ZDDWXZB != 0 && row.ZDDWYZB && row.ZDDWYZB != 0)
            }
        },
        positionColor () {
        positionColor() {
            return (row) => {
                if (row.ZDDWXZB && row.ZDDWXZB != 0 && row.ZDDWYZB && row.ZDDWYZB != 0) {
                    return "#1AFA29"
@@ -1075,7 +1208,7 @@
        }
    },
    created () {
    created() {
        // 首页跳转社区包含参数
        if (this.$route.query.id) {
            this.getVillageInfo(this.$route.query.id)
@@ -1125,7 +1258,7 @@
        window.addEventListener("resize", this.setTableHeight)
    },
    mounted () {
    mounted() {
        this.$parent.$parent.resize("400px", true)
        this.$nextTick(() => {
@@ -1163,11 +1296,11 @@
        })
    },
    updated () { },
    updated() { },
    methods: {
        // 获取小区商铺数据
        getBusinessList (aoiId) {
        getBusinessList(aoiId) {
            let params = {
                current: 1,
                size: 10,
@@ -1179,25 +1312,25 @@
        },
        // 户室人口类型切换
        hushiPeoTyClick (type) {
        hushiPeoTyClick(type) {
            this.hushiPeoTy = type
            this.getVillagePersonInfo(this.residentIdSave, '', { personType: this.hushiPeoTy })
            console.log('hushiPeoTyClick', type)
        },
        // 鼠标移入商业数据
        businessMouseEnter (row) {
        businessMouseEnter(row) {
            this.isBusinessHoverShow = true
            this.businessChooseItem = row
        },
        // 鼠标移出商业数据
        businessMouseLeave () {
        businessMouseLeave() {
            this.isBusinessHoverShow = false
        },
        // 查询当前楼栋下户室信息(是否关联)
        getPersonConnectionConditionByBuildingId (params) {
        getPersonConnectionConditionByBuildingId(params) {
            getPersonConnectionConditionByBuildingId(params).then(res => {
                this.personConnectionData = res.data.data.list
                //未关联户室数  uncorrelatedNumber-未核实户室数 unexaminedNumber-已核实户室数 verifiedNumber-户室总数 busTotalNumber 
@@ -1219,7 +1352,7 @@
        },
        // 收缩或展开小区信息
        unfoldHouseBox (type) {
        unfoldHouseBox(type) {
            if (type == 'up') {
                // 收缩
                this.isShowHouseInfoBox = false
@@ -1234,7 +1367,7 @@
        },
        // 警情统计
        getAlarmStatistics () {
        getAlarmStatistics() {
            getAlarmStatistics({
                start: this.eventTimeArr[0],
                end: this.eventTimeArr[1],
@@ -1257,7 +1390,7 @@
        },
        // 警情图表
        initJQSOption (dataArr) {
        initJQSOption(dataArr) {
            let options
            if (dataArr.length == 0) {
                options = {
@@ -1287,7 +1420,7 @@
        },
        // 警情切换tab
        jqTabClick (type) {
        jqTabClick(type) {
            this.jqType = type
            if (type == 1) {
                this.getAlarmStatistics()
@@ -1295,12 +1428,12 @@
        },
        // 警情下拉事件
        changeJQType (type) {
        changeJQType(type) {
            this.getAlarmList()
        },
        // 警情统计中时间变化
        caseTimeChange (e) {
        caseTimeChange(e) {
            const date = e.map((item) => {
                return this.dateFormat(item)
            })
@@ -1309,7 +1442,7 @@
        },
        // 获取当前日期
        dateFormat (dateData) {
        dateFormat(dateData) {
            var date = new Date(dateData)
            var y = date.getFullYear()
            var m = date.getMonth() + 1
@@ -1320,12 +1453,12 @@
            return time
        },
        changeBuildHighLightchecked (e) {
        changeBuildHighLightchecked(e) {
            this.$EventBus.$emit("switchThreeDimensions", e)
        },
        // 获取半年前时间
        getHalfYearTime () {
        getHalfYearTime() {
            const nowResult = new Date().getTime()
            let halfYear = 365 / 2 * 24 * 3600 * 1000
            let pastResult = nowResult - halfYear
@@ -1342,7 +1475,7 @@
            return [halfYearTime, nowTime]
        },
        showHouseingTileset (params) {
        showHouseingTileset(params) {
            if (params.type == 'remove') {
                this.$EventBus.$emit('unbindMxClick', this.getAoiByPtStd)
            } else {
@@ -1351,7 +1484,7 @@
        },
        // 切换小区信息导航栏
        switchSubNav (type) {
        switchSubNav(type) {
            this.subNavType = type
            this.$store.commit('SET_HOUSEDEEPDATAPOPUP', false)
            this.$EventBus.$emit("mapClearLayer", {
@@ -1378,7 +1511,7 @@
         * @param {*} val
         * @return {*}
         */
        searchInputTree (val) {
        searchInputTree(val) {
            if (val.trim().length > 0) {
                this.searchTreeData = []
                this.treeEmptyText = "正在加载中"
@@ -1394,7 +1527,7 @@
         * @param {*} event
         * @return {*}
         */
        preventFocusLost (event) {
        preventFocusLost(event) {
            event.preventDefault()
        },
@@ -1402,7 +1535,7 @@
         * @description: 当输入框有值时触发的搜索事件
         * @return {*}
         */
        getPoliceStationTrees () {
        getPoliceStationTrees() {
            getPoliceStationTrees({
                name: this.searchTreeName,
                deptId: this.userInfo.dept_id,
@@ -1418,7 +1551,7 @@
         * @param {*} resolve
         * @return {*}
         */
        loadNode (node, resolve) {
        loadNode(node, resolve) {
            if (this.userInfo.dept_id != "1123598813738675201") {
                let list = []
                let type = node.level + 1
@@ -1468,7 +1601,7 @@
         * @param {*} currentNode
         * @return {*}
         */
        currentChangeHandle (current, currentNode) {
        currentChangeHandle(current, currentNode) {
            if (current.hasChildren == true || current.type != 3) return
            this.isShowHouseBox = false
            this.$EventBus.$emit("clearHouse3D")
@@ -1499,7 +1632,7 @@
            this.searchLazyFlag = true
        },
        navClick (e) {
        navClick(e) {
            if (this.navType == e.target.dataset.type) return
            this.jqType = 0
            this.navType = e.target.dataset.type
@@ -1526,7 +1659,7 @@
        },
        // 大搜之搜索面详细数据(停车场出入口商场、 小区名称类型地址、楼栋数据)
        getSearchExtensivelyBgAoiDeepdata (ak, region, ids, infos) {
        getSearchExtensivelyBgAoiDeepdata(ak, region, ids, infos) {
            this.villageInfoLoading = true
            this.BuildListLoading = true
            this.buildingList = []
@@ -1697,7 +1830,7 @@
        },
        // 楼栋单元楼层户室查询--大搜
        getUnitHousesData (ak, region, ids, infos, buildId) {
        getUnitHousesData(ak, region, ids, infos, buildId) {
            getSearchExtensivelyHousesdata(ak, region, ids, infos).then((res) => {
                console.log('getUnitHousesData--then')
                if (res.data.result == null) {
@@ -1762,7 +1895,7 @@
        },
        // 三维接口查询楼栋户室
        getHouses3DData (build_std_addr_id, adcode, aoiArr) {
        getHouses3DData(build_std_addr_id, adcode, aoiArr) {
            this.unitChoosed3DList = []
            getHouses(build_std_addr_id, adcode).then((res) => {
                let houseData = res.data.data.properties
@@ -1815,7 +1948,7 @@
        },
        // 三维接口高亮楼栋户室-通过
        getResident3DData (build_std_addr_id) {
        getResident3DData(build_std_addr_id) {
            this.unitChoosed3DList.forEach(item => {
                if (item.properties.snxmi == build_std_addr_id) {
                    let sanWeiData = item.properties.kmj3a
@@ -1855,13 +1988,13 @@
            })
        },
        tableRowClassName ({ row, rowIndex }) {
        tableRowClassName({ row, rowIndex }) {
            row.index = rowIndex
            return "rows"
        },
        // 点击户室--大搜
        residentDetailsClick (params) {
        residentDetailsClick(params) {
            let residentId = ''
            this.houseDate = []
            if (params.exttype == 'room') {
@@ -1869,6 +2002,11 @@
                if (residentId == '11ACAB7FB7909F652F579C6E1ADE3F71') {//测试万达晶座11栋310
                    console.log('this.isShowPayInfo=true')
                    this.isShowPayInfo = true
                    this.menuList.forEach(item => {
                        if (item.name == '交易信息') {
                            item.isHover = true
                        }
                    })
                } else {
                    console.log(' this.isShowPayInfo=false')
                    this.isShowPayInfo = false
@@ -1894,12 +2032,12 @@
            this.residentLoading = true
        },
        residentDetailsClose () {
        residentDetailsClose() {
            this.hushiPeoTy = 1
            this.residentDetailsShow = false
        },
        buildingClick (item, aoiArr) {
        buildingClick(item, aoiArr) {
            if (this.buildingChoosed.name == item.name && !aoiArr) return
            this.unfoldHouseBox('up')
            this.isBuildHighLightchecked = true
@@ -1953,7 +2091,7 @@
            this.unitValue = 1
        },
        nextBtn () {
        nextBtn() {
            const boxWidth = parseInt(this.$refs.BuildOutBox.offsetWidth)
            // if (parseInt(document.querySelector(".build-box").offsetWidth) > Math.abs(parseInt(document.querySelector(".build-box").style.left)) + boxWidth) {
            if (
@@ -1977,7 +2115,7 @@
            }
        },
        lastBtn () {
        lastBtn() {
            const boxWidth = parseInt(this.$refs.BuildOutBox.offsetWidth)
            document.querySelector(".build-box").style.left =
@@ -1992,7 +2130,7 @@
            }
        },
        lastFloorBtn () {
        lastFloorBtn() {
            document.querySelector(".floor-num").style.left =
                parseInt(document.querySelector(".floor-num").style.left) + 84 + "px"
            this.nextFloorShow = true
@@ -2003,7 +2141,7 @@
            }
        },
        nextFloorBtn () {
        nextFloorBtn() {
            if (
                parseInt(document.querySelector(".floor-num").offsetWidth) >
                Math.abs(parseInt(document.querySelector(".floor-num").style.left)) + 84
@@ -2021,7 +2159,7 @@
            }
        },
        chooseUnit (value) {
        chooseUnit(value) {
            this.floorsType = 1
            this.floorChoosed = []
            this.unitChoosedArr = []
@@ -2041,30 +2179,30 @@
            this.lastFloorShow = false
        },
        isHaveLiudong (arr) {
        isHaveLiudong(arr) {
            return arr.some((item) => {
                return item.peopleType == "流动人口"
            })
        },
        isHaveZhongdian (arr) {
        isHaveZhongdian(arr) {
            return arr.some((item) => {
                return item.peopleType == "重点人员"
            })
        },
        isHaveJingwai (arr) {
        isHaveJingwai(arr) {
            return arr.some((item) => {
                return item.peopleType == "境外人口"
            })
        },
        // 大小重置
        boxResize (val) {
        boxResize(val) {
            this.boxShow = val
        },
        deepDataRowClick (row, params) {
        deepDataRowClick(row, params) {
            let url = ""
            if (params == "comeOut") {
                url = "/img/icon/bubble.png"
@@ -2137,7 +2275,7 @@
            }
        },
        goTOPeopleDetail (status) {
        goTOPeopleDetail(status) {
            this.keyPersonVisible = true
            this.keyPeopleType = status
            this.peoplePage.currentPage = 1
@@ -2156,7 +2294,7 @@
        },
        // 获取历史接警记录
        getAlarmList () {
        getAlarmList() {
            this.callPoliceData = []
            if (circleLayer != null) {
@@ -2280,7 +2418,7 @@
        },
        // 警情列表点击事件
        clickData (item) {
        clickData(item) {
            if (
                item.ZDDWXZB &&
                item.ZDDWXZB != 0 &&
@@ -2323,7 +2461,7 @@
         * @param {*} e
         * @return {*}
         */
        housingPoliceSiteClick (e) {
        housingPoliceSiteClick(e) {
            if ("overlay" in e) {
                this.$store.commit("SET_DETAILSPOPUP", {
                    showBox: true,
@@ -2350,14 +2488,14 @@
        },
        // 分页选择事件
        handleCurrentChange (currentPage) {
        handleCurrentChange(currentPage) {
            this.callPolicePage.currentPage = currentPage
            this.policeInfoLoading = true
            this.jqNoDataText = '  '
            this.getAlarmList()
        },
        peopleHandleCurrentChange (currentPage) {
        peopleHandleCurrentChange(currentPage) {
            this.keyPeopleLoading = true
            this.peoplePage.currentPage = currentPage
            this.personDetailArr = []
@@ -2370,7 +2508,7 @@
        },
        // 获取table高度
        setTableHeight () {
        setTableHeight() {
            this.$nextTick(() => {
                if (
                    this.$refs.policeTableBox &&
@@ -2387,7 +2525,7 @@
        },
        // 获取包干民警、所属辖区
        getVillageInfo (aoiId) {
        getVillageInfo(aoiId) {
            getVillageInfo(aoiId).then((res) => {
                this.getResidentialQuartersInfo(res.data.data.md5Id, "361102")
                this.villageInfo.policeName = res.data.data.policeName
@@ -2408,7 +2546,7 @@
        },
        // 重点人口户籍人口
        getVillagePersonStatisticInfoByBuildId (params) {
        getVillagePersonStatisticInfoByBuildId(params) {
            getVillagePersonStatisticInfoByBuildId(params).then((res) => {
                this.peopleInfo.registeredPopulation = res.data.data[0]
                this.peopleInfo.actualPopulation = res.data.data[1]
@@ -2418,14 +2556,31 @@
        },
        // 获取户室二维码
        getPicURL (id) {
        getPicURL(id) {
            getPicURL(id).then(res => {
                this.residentCodeUrl = res.data.data
            })
        },
        // 获取从业人员
        getVillageEmployeeInfo(type) {
            this.hushiPeoTy = type
        },
        // 获取阵地交易
        getVillageReportingEvent(type) {
            this.hushiPeoTy = type
        },
        // 获取反诈宣防
        getVillageAntiFraud(type) {
            this.hushiPeoTy = type
            // this.residentIdSave
        },
        // 房屋人口信息
        getVillagePersonInfo (resBusId, buildId, typeObj, current, realName, phone, isDuDong) {
        getVillagePersonInfo(resBusId, buildId, typeObj, current, realName, phone, isDuDong) {
            getVillagePersonInfo(
                resBusId,
                buildId,
@@ -2518,7 +2673,7 @@
        },
        // 清空人员列表搜索内容
        clearPeopleDetailSearchValue () {
        clearPeopleDetailSearchValue() {
            this.keyPeopleLoading = true
            this.callPhone = ""
            this.peopleName = ""
@@ -2533,7 +2688,7 @@
        },
        // 搜索指定人员
        searchPeopleDetail () {
        searchPeopleDetail() {
            this.keyPeopleLoading = true
            this.peoplePage.currentPage = 1
            this.personDetailArr = []
@@ -2548,7 +2703,7 @@
        },
        // 小区范围围栏光柱
        getResidentialQuartersInfo (area_id, adcode) {
        getResidentialQuartersInfo(area_id, adcode) {
            // '6E513C5E5D1611EAB6183C15FB00027B', '361102'
            getResidentialQuartersInfo(area_id, adcode).then((res) => {
                let positionStr = ""
@@ -2581,7 +2736,7 @@
        },
        // 大搜点查询
        getAoiByPtStd (e) {
        getAoiByPtStd(e) {
            getAoiByPt(
                e.wgs84Position.lng,
                e.wgs84Position.lat,
@@ -2614,11 +2769,11 @@
         * @description: 小区商业排序
         * @return {*}
         */
        sortDevName ({ prop, order }) {
        sortDevName({ prop, order }) {
            this.businessData.sort(this.compare(prop, order))
        },
        compare (property, order) {
        compare(property, order) {
            if (order == "ascending") {
                return (a, b) => {
                    var value1 = a[property]
@@ -2672,7 +2827,7 @@
            }
        },
        getChartType (char) {
        getChartType(char) {
            // 数字可按照排序的要求进行自定义,我这边产品的要求是
            // 数字(0->9)->大写字母(A->Z)->小写字母(a->z)->中文拼音(a->z)
            if (/^[\u4e00-\u9fa5]$/.test(char.trim().charAt(0))) {
@@ -2688,7 +2843,7 @@
        },
    },
    destroyed () {
    destroyed() {
        this.$EventBus.$off("housingPoliceSiteClick")
        this.$EventBus.$off("showHouseingTileset")
@@ -3571,4 +3726,14 @@
        transform: translate(180%, 0);
    }
}
::v-deep .el-dialog__wrapper .el-dialog {
    margin: 0 !important;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(35, 50, 167, 0.7);
    height: 340px;
}
</style>