linwe
2024-12-17 803242de79859961d6e339e79575443a1769973d
公安事情列表及详情
4 files modified
285 ■■■■ changed files
src/api/dept/newIndex.js 20 ●●●●● patch | view | raw | blame | history
src/views/house/components/nineSmallPlaces.vue 139 ●●●● patch | view | raw | blame | history
src/views/house/components/noFraudAuthentication.vue 120 ●●●● patch | view | raw | blame | history
src/views/house/components/rentalHouse.vue 6 ●●●● patch | view | raw | blame | history
src/api/dept/newIndex.js
@@ -179,6 +179,26 @@
        }
    })
}
export const getTaskNoFraudReporting = (resBusId, size, current) => {
    return request({
        url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/page',
        method: 'get',
        params: {
            resBusId,
            current,
            size
        }
    })
}
export const getTaskNoFraudReportingInfo = (id) => {
    return request({
        url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/getInfo',
        method: 'get',
        params: {
            id
        }
    })
}
/**
 * 题目树
src/views/house/components/nineSmallPlaces.vue
@@ -27,14 +27,14 @@
            </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="房屋状态">
                <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.injuryFlag == 1 ? '是' : '否' }}
                        {{ scope.row.hiddenDangerNumber == 1 ? '是' : '否' }}
                    </template>
                </el-table-column>
            </el-table>
@@ -123,20 +123,18 @@
                </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 class="title">
                        <div class="icon">{{ }}</div>
                        基础信息
                    </div>
                    <div class="basic-info">
                        <div class="info-item">
                            <div class="info-name">场所名称</div>
                            <div class="info-value">{{ examineDetails.placeName }}</div>
                            <div class="info-value">{{ }}</div>
                        </div>
                        <div class="info-item">
                            <div class="info-name">检查时间</div>
                            <div class="info-value">{{ examineDetails.createTime }}</div>
                            <div class="info-value">{{ }}</div>
                        </div>
                    </div>
                    <div class="title">
@@ -158,7 +156,7 @@
                        <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="key"> {{ item.title }}</div>
                                <div class="value">
                                    <el-radio v-show="item.state == 0" v-model="item.state" :label="0"
                                        disabled>存在</el-radio>
@@ -205,8 +203,6 @@
                                </div>
                            </div>
                        </div>
                        <!-- <div v-show="!('patrolRecordVOList' in tItem)">{{ tItem.remark }}</div> -->
                    </div>
                </div>
@@ -216,39 +212,39 @@
            <div v-if="current == 2">
                <div class="detail-title-box">
                    <div class="detail-title">扫码报警详情</div>
                    <div class="detail-title">消防自查详情</div>
                </div>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">民警</div>
                        <div class="detail-row">场所名称</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.policeName }}</div>
                        <div class="detail-row">{{ row.placeName }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">单位</div>
                        <div class="detail-row">场所负责人</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.pcsName }}</div>
                        <div class="detail-row">{{ row.principal }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">是否受伤</div>
                        <div class="detail-row">场所负责人电话</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.gender == 1 ? '是' : '否' }}</div>
                        <div class="detail-row">{{ row.principalPhone }}</div>
                    </el-col>
                </el-row>
                <el-row class="">
                    <el-col :span="6">
                        <div class="detail-row">报警时间</div>
                        <div class="detail-row">检查时间</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="detail-row">{{ row.createTime }}</div>
@@ -259,7 +255,7 @@
                        <div class="detail-row">地址</div>
                    </el-col>
                    <el-col :span="18">
                        <div class="">{{ row.address }}</div>
                        <div class="">{{ row.location }}</div>
                    </el-col>
                </el-row>
@@ -271,6 +267,84 @@
                        <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="question-list" v-for="(tItem, tIndex) in patrolGroupDTOList" :key='tIndex'>
                        <div class="question-type" style="display: flex;">
                            <div class="type-name">
                                {{ getUpperCase(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" style="display: flex;">
                                <div class="key"> {{ index + 1 }}、 {{ item.title }}</div>
                                <div class="value">
                                    <el-radio v-if="item.state == 0" v-model="item.state" :label="0" disabled>存在</el-radio>
                                    <el-radio v-else 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>
                </div>
            </div>
        </div>
@@ -321,6 +395,19 @@
    watch: {},
    //方法集合
    methods: {
        // 写一个方法,把阿拉伯数字转换中文的大写
        getUpperCase(num) {
            const chineseNumbers = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
            const units = ['', '十', '百', '千', '万'];
            let str = '';
            num = num.toString(); // 确保输入是字符串
            for (let i = 0; i < num.length; i++) {
                str += chineseNumbers[num.charAt(i)] + units[num.length - i - 1];
            }
            let numResult = str.replace(/零[千百十]/g, '零').replace(/^零/, '');
            console.log(numResult)
            return numResult
        },
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageparm.pageSize = val
@@ -459,7 +546,7 @@
        right: -410px;
        top: -70%;
        background-color: rgba(35, 50, 167, 0.7);
        width: 400px;
        // width: 400px;
        padding: 10px;
        .detail-title-box {
src/views/house/components/noFraudAuthentication.vue
@@ -3,16 +3,17 @@
    <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="是否受伤">
                <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="createTime" label="身份证号码"> </el-table-column> -->
                <el-table-column align="center" prop="noFraudType" label="无诈分类">
                    <template slot-scope="scope">
                        {{ scope.row.injuryFlag == 1 ? '是' : '否' }}
                        {{ getNoFraudType(scope.row.noFraudType) }}
                    </template>
                </el-table-column>
                <el-table-column align="center" prop="addressName" show-overflow-tooltip label="地址"> </el-table-column>
            </el-table>
            <div class="block">
@@ -25,61 +26,113 @@
        <!-- 详情页面 -->
        <div class="detail-box" v-if="detailBox">
            <!-- popelList[0]  详情页面 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等-->
            <div class="detail-title-box">
                <div class="detail-title">扫码报警详情</div>
                <div class="detail-title">无诈申报详情</div>
            </div>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">民警</div>
                    <div class="detail-row">场所名称</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.policeName }}</div>
                    <div class="detail-row">{{ row.placeName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">单位</div>
                    <div class="detail-row">场所负责人</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.pcsName }}</div>
                    <div class="detail-row">{{ row.principal }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">是否受伤</div>
                    <div class="detail-row">手机号码</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.gender == 1 ? '是' : '否' }}</div>
                    <div class="detail-row">{{ row.principalPhone }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">报警时间</div>
                    <div class="detail-row">街道</div>
                </el-col>
                <el-col :span="18">
                    <div class="detail-row">{{ row.createTime }}</div>
                    <div class="">{{ row.streetName }}</div>
                </el-col>
            </el-row>
            <el-row class="">
                <el-col :span="6">
                    <div class="detail-row">地址</div>
                    <div class="detail-row">社区</div>
                </el-col>
                <el-col :span="18">
                    <div class="">{{ row.address }}</div>
                    <div class="">{{ row.communityName }}</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.gridName }}</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.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.longitude }},{{ row.latitude }}</div>
                    <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="detail-row">{{ getNoFraudType(row.noFraudType) }}</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.addressName }}</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.qrImg"
                            :preview-src-list="[row.qrImg]">
                            <div slot="error" class="image-slot"></div>
                        </el-image>
                    </div>
                </el-col>
            </el-row>
@@ -91,7 +144,8 @@
<script>
import {
    getPoliceAlarmRecordsPage
    getTaskNoFraudReporting,
    getTaskNoFraudReportingInfo
} from "@/api/dept/newIndex.js"
export default {
    name: 'tableFromPop',
@@ -114,6 +168,17 @@
                records: []
            },
            // 无诈分类
            noFraudTypeList: [
                { label: '企业', value: 2 },
                { label: '工地', value: 3 },
                { label: '学校', value: 4 },
                { label: '医院', value: 5 },
                { label: '村(社区)', value: 6 },
                { label: '厂(园区)', value: 7 },
                { label: '单位', value: 8 }
            ],
            pageparm: {
                pageSize: 10,
                current: 1
@@ -128,6 +193,17 @@
    watch: {},
    //方法集合
    methods: {
        // 获取无诈数据
        getNoFraudType(val) {
            let type = ''
            this.noFraudTypeList.forEach(item => {
                if (item.value == val) {
                    type = item.label
                }
            })
            return type
        },
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageparm.pageSize = val
@@ -140,7 +216,7 @@
        },
        init() {
            getPoliceAlarmRecordsPage(123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
            getTaskNoFraudReporting(123456, this.pageparm.pageSize, this.pageparm.current).then((res) => {
                this.dataList.total = res.data.data.total
                this.dataList.records = res.data.data.records
            })
src/views/house/components/rentalHouse.vue
@@ -3,8 +3,8 @@
    <div class="table-box-w">
        <div>
            <div class="btn-box-box">
                <!-- 出租屋按钮,居住证申请按钮,租客按钮 -->
            <!-- <div class="btn-box-box">
                <div class="btn-box">
                    <el-button :type="current == 1 ? 'primary' : ''" size="mini" @click="changeData(1)">出租屋</el-button>
                </div>
@@ -14,7 +14,7 @@
                <div class="btn-box">
                    <el-button :type="current == 3 ? 'primary' : ''" size="mini" @click="changeData(3)">租客</el-button>
                </div>
            </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>