linwe
2025-12-25 c6f7f0c79485830f4452ca51d6fc46fadb379d18
经开分局优化------大改动
11 files modified
7 files added
31412 ■■■■■ changed files
public/data/3.json 121 ●●●●● patch | view | raw | blame | history
public/data/4.json 106 ●●●●● patch | view | raw | blame | history
public/data/5.json 15929 ●●●●● patch | view | raw | blame | history
public/data/getAoiByBgId2.json 497 ●●●●● patch | view | raw | blame | history
public/data/huafu15d2.json 6449 ●●●●● patch | view | raw | blame | history
src/components/map/components/architecturePopup.vue 25 ●●●● patch | view | raw | blame | history
src/components/map/components/placeBasePopup.vue 3 ●●●● patch | view | raw | blame | history
src/components/personDialog/index.vue 436 ●●●●● patch | view | raw | blame | history
src/components/siteDialog/index.vue 252 ●●●●● patch | view | raw | blame | history
src/styles/media/index.scss 3 ●●●●● patch | view | raw | blame | history
src/views/home/components/dialog/areaDetailsBox.vue 13 ●●●●● patch | view | raw | blame | history
src/views/home/components/dialog/enterpriseInfoBox.vue 67 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/keyPersonBox.vue 19 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/otherPlaceDetailsBox.vue 15 ●●●●● patch | view | raw | blame | history
src/views/home/components/dialog/placeDetailsBox.vue 65 ●●●●● patch | view | raw | blame | history
src/views/home/components/dialog/riskDetailsBox.vue 54 ●●●● patch | view | raw | blame | history
src/views/home/components/leftContainer.vue 63 ●●●●● patch | view | raw | blame | history
src/views/house/1.json 7295 ●●●●● patch | view | raw | blame | history
public/data/3.json
New file
@@ -0,0 +1,121 @@
{
  "data": {
    "geometry": {
      "coordinates": [
        [
          [
            117.855634818119,
            28.4295602958837,
            0
          ],
          [
            117.855634830755,
            28.4295598361336,
            0
          ],
          [
            117.855412759893,
            28.4293538112739,
            0
          ],
          [
            117.855412230586,
            28.4293538000096,
            0
          ],
          [
            117.855352385918,
            28.4294041972002,
            0
          ],
          [
            117.855352373286,
            28.4294046570291,
            0
          ],
          [
            117.855361347479,
            28.4294130799303,
            0
          ],
          [
            117.855342124547,
            28.4294544550072,
            0
          ],
          [
            117.85534217753,
            28.4294547040204,
            0
          ],
          [
            117.855351927119,
            28.4294638248598,
            0
          ],
          [
            117.855342336525,
            28.429472002984,
            0
          ],
          [
            117.85534232401,
            28.4294724625181,
            0
          ],
          [
            117.855459644462,
            28.4295813989651,
            0
          ],
          [
            117.855450097223,
            28.4295895093451,
            0
          ],
          [
            117.855450029921,
            28.4295897106631,
            0
          ],
          [
            117.855466737823,
            28.4296511289694,
            0
          ],
          [
            117.855466766964,
            28.429651176222,
            0
          ],
          [
            117.85549516481,
            28.4296774590223,
            0
          ],
          [
            117.855495694232,
            28.4296774703038,
            0
          ],
          [
            117.855634818119,
            28.4295602958837,
            0
          ]
        ]
      ],
      "type": "Polygon"
    },
    "type": "Feature",
    "properties": {
      "bg_aoiid": "62c2e31e1ead41c5a59d6b69f54be8b6",
      "build_id": "8CA033AE62A460CD1676E8BE383E135A",
      "bg_buildid": "422df8251ac24ab2942accfa1b92e7ef",
      "dist": 0.0,
      "aoi_id": "EFFE57C957174BF28BB554A47510591F"
    }
  },
  "message": "操作成功",
  "status": 200
}
public/data/4.json
New file
@@ -0,0 +1,106 @@
{
  "data": {
    "geometry": {
      "coordinates": [
        [
          [
            117.894426229751,
            28.438200134079,
            0
          ],
          [
            117.89441659658,
            28.4370639539591,
            0
          ],
          [
            117.894416221699,
            28.4370636291742,
            0
          ],
          [
            117.892721134846,
            28.4370747575207,
            0
          ],
          [
            117.892720765562,
            28.4370750871049,
            0
          ],
          [
            117.892730219885,
            28.4382104788905,
            0
          ],
          [
            117.892563789547,
            28.4382115704168,
            0
          ],
          [
            117.892554114627,
            28.4370680454307,
            0
          ],
          [
            117.892553739748,
            28.4370677206395,
            0
          ],
          [
            117.892108425897,
            28.4370706401019,
            0
          ],
          [
            117.892108056607,
            28.4370709696858,
            0
          ],
          [
            117.892117579254,
            28.4382152857416,
            0
          ],
          [
            117.892121384492,
            28.4386596776677,
            0
          ],
          [
            117.892121759376,
            28.4386600024576,
            0
          ],
          [
            117.894429521215,
            28.4386448562898,
            0
          ],
          [
            117.894429890503,
            28.438644526702,
            0
          ],
          [
            117.894426229751,
            28.438200134079,
            0
          ]
        ]
      ],
      "type": "Polygon"
    },
    "type": "Feature",
    "properties": {
      "bg_aoiid": "4319569fd23c40c0953f687ea761bc75",
      "build_id": "FCCF87E5B5D94E6EB3F5474BA164E5C2",
      "bg_buildid": "7c661a499fc94149b56466b81dc9c06c",
      "dist": 0.0,
      "aoi_id": "34D7EA82325D4AA88A27124B91F9AD3B"
    }
  },
  "message": "操作成功",
  "status": 200
}
public/data/5.json
New file
Diff too large
public/data/getAoiByBgId2.json
New file
@@ -0,0 +1,497 @@
{
  "data": {
    "geometry": {
      "coordinates": [
        [
          [
            117.899797,
            28.4469060000001,
            0
          ],
          [
            117.899808000001,
            28.4468830000001,
            0
          ],
          [
            117.899816000001,
            28.4468860000001,
            0
          ],
          [
            117.899816000001,
            28.4468850000001,
            0
          ],
          [
            117.899844000001,
            28.4468320000001,
            0
          ],
          [
            117.899849,
            28.4468220000001,
            0
          ],
          [
            117.899848000001,
            28.4468220000001,
            0
          ],
          [
            117.899817000001,
            28.4468090000001,
            0
          ],
          [
            117.899769000001,
            28.4467910000001,
            0
          ],
          [
            117.899771,
            28.4467860000001,
            0
          ],
          [
            117.89979,
            28.4467930000001,
            0
          ],
          [
            117.899791000001,
            28.4467930000002,
            0
          ],
          [
            117.899810000001,
            28.4467540000001,
            0
          ],
          [
            117.89981,
            28.4467530000001,
            0
          ],
          [
            117.899798,
            28.4467490000001,
            0
          ],
          [
            117.899814000001,
            28.4467170000001,
            0
          ],
          [
            117.899813000001,
            28.4467170000001,
            0
          ],
          [
            117.899658000001,
            28.4466570000001,
            0
          ],
          [
            117.899657000001,
            28.4466570000001,
            0
          ],
          [
            117.899642,
            28.4466890000001,
            0
          ],
          [
            117.899632000001,
            28.4466850000001,
            0
          ],
          [
            117.899631000001,
            28.4466850000001,
            0
          ],
          [
            117.899609000001,
            28.4467300000001,
            0
          ],
          [
            117.899595000001,
            28.4467240000001,
            0
          ],
          [
            117.899598000001,
            28.4467180000001,
            0
          ],
          [
            117.899598000001,
            28.4467170000001,
            0
          ],
          [
            117.899556000001,
            28.4467010000001,
            0
          ],
          [
            117.899556000001,
            28.4467020000001,
            0
          ],
          [
            117.899551000001,
            28.4467100000001,
            0
          ],
          [
            117.899548,
            28.4467090000001,
            0
          ],
          [
            117.899547,
            28.4467090000002,
            0
          ],
          [
            117.899539000001,
            28.4467270000001,
            0
          ],
          [
            117.899506000001,
            28.4467140000001,
            0
          ],
          [
            117.899502,
            28.4467210000001,
            0
          ],
          [
            117.899487000001,
            28.4467150000001,
            0
          ],
          [
            117.899521000001,
            28.4466460000001,
            0
          ],
          [
            117.89952,
            28.4466450000002,
            0
          ],
          [
            117.899510000001,
            28.4466410000002,
            0
          ],
          [
            117.899527,
            28.4466070000002,
            0
          ],
          [
            117.899477000001,
            28.4465870000001,
            0
          ],
          [
            117.899476000001,
            28.4465880000001,
            0
          ],
          [
            117.899468000001,
            28.4466040000001,
            0
          ],
          [
            117.899464000001,
            28.4466010000002,
            0
          ],
          [
            117.899459,
            28.4465970000001,
            0
          ],
          [
            117.899454000001,
            28.4465940000002,
            0
          ],
          [
            117.899448000001,
            28.4465910000001,
            0
          ],
          [
            117.899442,
            28.4465890000001,
            0
          ],
          [
            117.899436000001,
            28.4465870000001,
            0
          ],
          [
            117.899430000001,
            28.4465850000002,
            0
          ],
          [
            117.899424,
            28.4465840000001,
            0
          ],
          [
            117.899417000001,
            28.4465830000001,
            0
          ],
          [
            117.899412000001,
            28.4465820000001,
            0
          ],
          [
            117.899420000001,
            28.4465660000001,
            0
          ],
          [
            117.899372000001,
            28.4465470000001,
            0
          ],
          [
            117.899371000001,
            28.4465470000002,
            0
          ],
          [
            117.899354,
            28.4465810000001,
            0
          ],
          [
            117.899342000001,
            28.4465770000001,
            0
          ],
          [
            117.899311000001,
            28.4466400000002,
            0
          ],
          [
            117.899311000001,
            28.4466410000002,
            0
          ],
          [
            117.899331000001,
            28.4466490000001,
            0
          ],
          [
            117.899327000001,
            28.4466560000001,
            0
          ],
          [
            117.899294000001,
            28.4466430000001,
            0
          ],
          [
            117.899298000001,
            28.4466350000002,
            0
          ],
          [
            117.899298000001,
            28.4466340000002,
            0
          ],
          [
            117.899257000001,
            28.4466190000001,
            0
          ],
          [
            117.899256000001,
            28.4466190000001,
            0
          ],
          [
            117.899252000001,
            28.4466270000002,
            0
          ],
          [
            117.899247000001,
            28.4466250000002,
            0
          ],
          [
            117.899246,
            28.4466250000001,
            0
          ],
          [
            117.899216,
            28.4466870000001,
            0
          ],
          [
            117.899224000001,
            28.4466910000002,
            0
          ],
          [
            117.899211,
            28.4467180000002,
            0
          ],
          [
            117.899319000001,
            28.4467590000001,
            0
          ],
          [
            117.899320000001,
            28.4467570000002,
            0
          ],
          [
            117.899347,
            28.4467670000002,
            0
          ],
          [
            117.899348,
            28.4467670000001,
            0
          ],
          [
            117.899355000001,
            28.4467530000001,
            0
          ],
          [
            117.899389000001,
            28.4467660000001,
            0
          ],
          [
            117.899382000001,
            28.4467800000002,
            0
          ],
          [
            117.899382,
            28.4467810000002,
            0
          ],
          [
            117.899387000001,
            28.4467830000001,
            0
          ],
          [
            117.899383,
            28.4467920000001,
            0
          ],
          [
            117.899412,
            28.4468040000002,
            0
          ],
          [
            117.899413000001,
            28.4468030000001,
            0
          ],
          [
            117.899416,
            28.4467970000002,
            0
          ],
          [
            117.899495,
            28.4468270000002,
            0
          ],
          [
            117.899496000001,
            28.4468270000001,
            0
          ],
          [
            117.899508,
            28.4468020000002,
            0
          ],
          [
            117.899649000001,
            28.4468500000001,
            0
          ],
          [
            117.899650000001,
            28.4468490000001,
            0
          ],
          [
            117.899655000001,
            28.4468370000001,
            0
          ],
          [
            117.899691000001,
            28.4468490000001,
            0
          ],
          [
            117.899684000001,
            28.4468630000001,
            0
          ],
          [
            117.899773000001,
            28.4468970000002,
            0
          ],
          [
            117.899797,
            28.4469060000001,
            0
          ]
        ]
      ],
      "type": "Polygon"
    },
    "type": "Feature",
    "properties": {
      "bg_aoiid": "ed56d87c40fd400aa5dd8ce5f169d491",
      "house_id": "6d7cbebdfc334a65945f3356a3b9225a",
      "build_id": "c33ce5a2cd6c4301ad67542aabdacbd4",
      "bg_buildid": "ccdcf45a7d344909a595ed660b0e9e12",
      "dist": 0.0,
      "aoi_id": "c5cb8ec9487f427ba9f3a1c974401d85"
    }
  },
  "message": "操作成功",
  "status": 200
}
public/data/huafu15d2.json
New file
Diff too large
src/components/map/components/architecturePopup.vue
@@ -14,6 +14,7 @@
              <div class="label-wrap">
                <div class="title">
                  详细信息
                  <div class="details-btn" @click="siteClick" title="详情"></div>
                  <div class="close" @click="closePopup" title="关闭"></div>
                </div>
@@ -126,10 +127,10 @@
                    <div>{{ architectureDataPopup.address }}</div>
                  </div>
                  <div class="item">
                  <!-- <div class="item">
                    <div>重点人员细类:</div>
                    <div>{{ architectureDataPopup.zdryxl }}</div>
                  </div>
                  </div> -->
                </div>
                <div v-show="architectureDataPopup.curDataType == '重点人员'" class="label-content">
@@ -148,7 +149,7 @@
                  </div>
                  <div class="item">
                    <div>重点人员细类:</div>
                    <div>人员类型:</div>
                    <div>{{ architectureDataPopup.zdryxl }}</div>
                  </div>
                </div>
@@ -355,6 +356,10 @@
        </div>
      </div>
    </div>
    <PersonDialogPopup ref="PersonDialogPopup"></PersonDialogPopup>
  </div>
</template>
@@ -393,6 +398,9 @@
  },
  methods: {
    siteClick () {
      this.$refs.PersonDialogPopup.initOpen(this.architectureDataPopup)
    },
    closePopup () {
      this.$store.commit('SET_ARCHITECTUREPOPUP', false)
    }
@@ -600,6 +608,17 @@
    }
  }
  .details-btn::before {
    font-family: element-icons;
    content: '\e785';
    cursor: pointer;
    font-size: 16px;
  }
  .details-btn:hover {
    color: #3d95f3;
  }
  .details-btn:hover {
    color: #3d95f3;
  }
src/components/map/components/placeBasePopup.vue
@@ -14,6 +14,7 @@
              <div class="label-wrap" v-if="placeBasePopupData.type && placeBasePopupData.type == 1">
                <div class="title">
                  风险隐患点信息
                  <div class="details-btn" @click="siteClick" title="详情"></div>
                  <div class="close" @click="closePopup" title="关闭"></div>
                </div>
                <div class="label-content">
@@ -261,7 +262,7 @@
    .item {
      display: flex;
      flex-direction: row;
      width: calc(100% - 20px);
      width: calc(100% - 50px);
      margin: 0 10px;
      text-align: left;
src/components/personDialog/index.vue
New file
@@ -0,0 +1,436 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2024-01-17 16:04:08
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-02-19 16:34:09
 * @FilePath: \srs-police-affairs\src\components\siteDialog\index.vue
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<template>
  <el-dialog class="syld-details-box site-dialog-popup business-detail-box" :title="'人员详情'" append-to-body
    :close-on-click-modal="false" :visible.sync="popupShow" center @close="popupClose">
    <div class="flex f-d-c" style="height: 100%;" v-loading="loading">
      <div class="type-tab-box">
        <div class="tab-item" :class="{ 'tab-choose-item': chooseTab == 1 }" @click="tabClick(1)">
          基本信息</div>
      </div>
      <div class="flex-1 tab-content-box" v-if="chooseTab == 1">
        <div class="info-list">
          <div v-for="field in displayFields" :key="field.key" class="info-item">
            <div class="name">
              {{ field.label }}:
            </div>
            <div class="value">
              {{ field.value }}
            </div>
          </div>
        </div>
      </div>
    </div>
  </el-dialog>
</template>
<script>
import {
  getPlaceCheckPage,
  getPlaceCheckInfo,
  getPlacePractitionerPage
} from "@/api/site/index.js"
export default {
  name: 'PersonDialogPopup',
  data () {
    return {
      searchDate: '',
      popupShow: false,
      businessId: '',
      chooseTab: 1,
      tableData: [],
      personTableData: [],
      loading: false,
      businessDetailData: {},
      pages: {
        current: 1,
        size: 22,
        total: 0,
        count: 0,
      },
      examineListShow: true,
      examineDetails: {},
      refreshNum: 1,
      CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五'],
    }
  },
  computed: {
    displayFields () {
      const fields = [
        { key: 'realName', label: '姓名', value: this.businessDetailData.realName },
        { key: 'cardNo', label: '身份证号码', value: this.businessDetailData.cardNo },
        { key: 'sex', label: '性别', value: this.getSexDisplay(this.businessDetailData.sex) },
        { key: 'nation', label: '民族', value: this.getNationDisplay(this.businessDetailData.nation) },
        // { key: 'nativePlace', label: '籍贯', value: this.businessDetailData.nativePlace },
        { key: 'education', label: '学历', value: this.getEducationDisplay(this.businessDetailData.education) },
        // { key: 'maritalStatus', label: '婚姻状况', value: this.businessDetailData.maritalStatus },
        { key: 'occupation', label: '职业', value: this.businessDetailData.occupation },
        { key: 'occupationalClass', label: '职业类别', value: this.businessDetailData.occupationalClass },
        { key: 'serverPlace', label: '所属区域', value: this.businessDetailData.serverPlace },
        // { key: 'politicsStatus', label: '政治面貌', value: this.businessDetailData.politicsStatus },
        { key: 'domicile', label: '户籍地', value: this.businessDetailData.domicile },
        { key: 'censusAddress', label: '户口地址', value: this.businessDetailData.censusAddress },
        { key: 'address', label: '现住址', value: this.businessDetailData.address },
        { key: 'phone', label: '手机号码', value: this.businessDetailData.phone },
        { key: 'relation', label: '与户主关系', value: this.businessDetailData.relation },
        { key: 'personType', label: '人员类型', value: this.getpetsonDisplay(this.businessDetailData.personType) },
        // { key: 'accountNumber', label: '人员编号', value: this.businessDetailData.accountNumber },
        // { key: 'status', label: '状态', value: this.businessDetailData.status },
        // { key: 'isNonage', label: '是否未成年', value: this.getDisplay(this.businessDetailData.isNonage) },
        { key: 'createTime', label: '创建时间', value: this.businessDetailData.createTime },
        { key: 'updateTime', label: '更新时间', value: this.businessDetailData.updateTime },
        { key: 'policeStationName', label: '所属派出所', value: this.businessDetailData.policeStationName },
        { key: 'areaName', label: '所属区域', value: this.businessDetailData.areaName },
        { key: 'policeName', label: '责任民警', value: this.businessDetailData.policeName },
        { key: 'policePhone', label: '民警电话', value: this.businessDetailData.policePhone },
        // { key: 'x', label: '经度', value: this.businessDetailData.x },
        // { key: 'y', label: '纬度', value: this.businessDetailData.y },
        { key: 'formerName', label: '曾用名', value: this.businessDetailData.formerName },
        { key: 'healthCondition', label: '健康状况', value: this.businessDetailData.healthCondition },
        { key: 'nameOfDisease', label: '疾病名称', value: this.businessDetailData.nameOfDisease },
        { key: 'religion', label: '宗教信仰', value: this.businessDetailData.religion },
        { key: 'identification', label: '身份识别', value: this.businessDetailData.identification },
        { key: 'remark', label: '备注', value: this.businessDetailData.remark }
      ]
      return fields.filter(field => {
        // 对于数字类型,只要不是 undefined、null 或空字符串就显示
        if (typeof field.value === 'number') {
          return field.value !== undefined && field.value !== null && field.value !== ''
        }
        // 对于其他类型,只要不是 undefined、null、空字符串或空格就显示
        return field.value && String(field.value).trim() !== ''
      })
    },
    getImgUrls () {
      return (item) => {
        let imageUrls = item.imageUrls
        if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
          imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
            return 'http://47.217.32.232:80/place/' + ele
          })
        }
        return imageUrls || []
      }
    },
    getRectificationImageUrls () {
      return (item) => {
        let imageUrls = item.rectificationImageUrls
        if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
          imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
            return 'http://47.217.32.232:80/place/' + ele
          })
        }
        return imageUrls || []
      }
    },
    getRemark () {
      return (item) => {
        return item.remark
      }
    },
    getRectificationRemark () {
      return (item) => {
        return item.rectificationRemark
      }
    }
  },
  methods: {
    getpetsonDisplay (sexValue) {
      if (sexValue === '1' || sexValue === 1) {
        return '户籍人口'
      } else if (sexValue === '2' || sexValue === 2) {
        return '实有人口'
      }
      return sexValue || '未知'
    },
    getDisplay (sexValue) {
      if (sexValue === '1' || sexValue === 1) {
        return '是'
      } else if (sexValue === '2' || sexValue === 2) {
        return '否'
      }
      return sexValue || '未知'
    },
    getEducationDisplay (educationValue) {
      const educationMap = {
        '-1': '学历',
        '10': '研究生教育',
        '11': '博士研究生毕业',
        '12': '博士研究生结业',
        '13': '博士研究生肄业',
        '14': '硕士研究生毕业',
        '15': '硕士研究生结业',
        '16': '硕士研究生肄业',
        '17': '研究生班毕业',
        '18': '研究生班结业',
        '19': '研究生班肄业',
        '20': '大学本科',
        '21': '大学本科毕业',
        '22': '大学本科结业',
        '23': '大学本科肄业',
        '28': '大学普通班毕业',
        '31': '大学专科毕业',
        '32': '大学专科结业',
        '33': '大学专科肄业',
        '40': '中等职业教育',
        '41': '中等专科毕业',
        '42': '中等专科结业',
        '43': '中等专科肄业',
        '44': '职业高中毕业',
        '45': '职业高中结业',
        '46': '职业高中肄业',
        '47': '技工学校毕业',
        '48': '技工学校结业',
        '49': '技工学校肄业',
        '60': '普通高级中学教育',
        '61': '普通高中毕业',
        '62': '普通高中结业',
        '63': '普通高中肄业',
        '70': '初级中学教育',
        '71': '初中毕业',
        '73': '初中肄业',
        '80': '小学教育',
        '81': '小学毕业',
        '83': '小学肄业',
        '90': '其他'
      }
      return educationMap[educationValue] || educationValue || '未知'
    },
    getNationDisplay (nationValue) {
      const nationMap = {
        '01': '汉族',
        '02': '蒙古族',
        '03': '回族',
        '04': '藏族',
        '05': '维吾尔族',
        '06': '苗族',
        '07': '彝族',
        '08': '壮族',
        '09': '布依族',
        '10': '白族',
        '11': '朝鲜族',
        '12': '侗族',
        '13': '瑶族',
        '14': '白族', // 注意:原表中14和10都是白族,这里保留原值
        '15': '土家族',
        '16': '哈尼族',
        '17': '哈萨克族',
        '18': '傣族',
        '19': '黎族',
        '20': '傈僳族',
        '21': '佤族',
        '22': '畲族',
        '23': '高山族',
        '24': '拉祜族',
        '25': '水族',
        '26': '东乡族',
        '27': '纳西族',
        '28': '景颇族',
        '29': '柯尔克孜族',
        '30': '土族',
        '31': '达斡尔族',
        '32': '仫佬族',
        '33': '羌族',
        '34': '布朗族',
        '35': '撒拉族',
        '36': '毛南族',
        '37': '仡佬族',
        '38': '锡伯族',
        '39': '阿昌族',
        '40': '普米族',
        '41': '塔吉克族',
        '42': '怒族',
        '43': '乌孜别克族',
        '44': '俄罗斯族',
        '45': '鄂温克族',
        '46': '德昂族',
        '47': '保安族',
        '48': '裕固族',
        '49': '京族',
        '50': '塔塔尔族',
        '51': '独龙族',
        '52': '鄂伦春族',
        '53': '赫哲族',
        '54': '门巴族',
        '55': '珞巴族',
        '56': '基诺族',
        '99': '其他'
      }
      return nationMap[nationValue] || nationValue || '未知'
    },
    getSexDisplay (sexValue) {
      if (sexValue === '1' || sexValue === 1) {
        return '男'
      } else if (sexValue === '2' || sexValue === 2) {
        return '女'
      }
      return sexValue || '未知'
    },
    // 点击展开收缩
    flodQL (index) {
      this.examineDetails.patrolGroupDTOList[index].isShowQList = !this.examineDetails.patrolGroupDTOList[index].isShowQList
      this.refreshNum += 1
    },
    // 打开弹窗初始化数据
    initOpen (row) {
      this.searchDate = ''
      this.examineListShow = true
      this.businessDetailData = row
      console.log("11111111111111222-------------------", row)
      this.chooseTab = 1
      this.popupShow = true
      this.pages.current = 1
      // this.getPlaceCheckPage()
      // this.getPlacePractitionerPage()
    },
    // 分页处理
    handleCurrentChange (current) {
      this.pages.current = current
      this.getPlaceCheckPage()
    },
    // 获取检查列表数据
    getPlaceCheckPage (params = {}) {
      this.loading = true
      this.checkFlag = false
      getPlaceCheckPage({
        // houseCode: this.businessDetailData.houseCode,
        current: this.pages.current,
        size: this.pages.size,
        ...params
      }).then(res => {
        const data = res.data.data
        this.tableData = data.records
        this.pages.total = data.total
        this.checkFlag = true
        setTimeout(() => {
          if (this.checkFlag && this.flag) this.loading = false
        }, 500)
      })
    },
    getPlacePractitionerPage () {
      this.flag = false
      getPlacePractitionerPage({
        placeId: this.businessDetailData.id,
        current: 1,
        size: 9999,
      }).then(res => {
        const data = res.data.data
        this.personTableData = data.records
        this.flag = true
        setTimeout(() => {
          if (this.checkFlag && this.flag) this.loading = false
        }, 500)
      })
    },
    clickExamine (row) {
      getPlaceCheckInfo({ id: row.id }).then(res => {
        if (res.data.data == null) {
          this.$message({ message: '暂无数据', type: 'warning', duration: 2000 })
          return
        }
        this.examineDetails = res.data.data
        this.examineDetails.patrolGroupDTOList.push({
          name: '其他隐患问题',
          remark: this.examineDetails.remark
        })
        this.examineDetails.patrolGroupDTOList = res.data.data.patrolGroupDTOList.map(item => {
          return {
            ...item,
            isShowQList: true
          }
        })
        this.examineListShow = false
      })
    },
    // 关闭弹窗按钮
    popupClose () {
      this.popupShow = false
    },
    // tab切换
    tabClick (type) {
      this.chooseTab = type
      if (type == 3) {
        this.examineListShow = true
      }
    },
    dateSearch () {
      this.pages.current = 1
      this.getPlaceCheckPage({
        startTime: this.searchDate,
        endTime: this.searchDate
      })
    }
  },
}
</script>
<style lang="scss" scoped>
:deep(.el-image__error) {
  height: 120px;
}
.flex {
  display: flex;
}
.f-d-c {
  flex-direction: column;
}
.flex-1 {
  height: 0;
  flex: 1;
}
</style>
src/components/siteDialog/index.vue
@@ -11,170 +11,23 @@
<template>
  <el-dialog class="syld-details-box site-dialog-popup business-detail-box" :title="'场所详情'" append-to-body
    :close-on-click-modal="false" :visible.sync="popupShow" center @close="popupClose">
    <div class="flex f-d-c" style="height: 100%;" v-loading="loading" element-loading-background="rgba(0, 0, 0, 0.5)">
    <div class="flex f-d-c" style="height: 100%; overflow-y: auto" v-loading="loading">
      <div class="type-tab-box">
        <div class="tab-item" :class="{ 'tab-choose-item': chooseTab == 1 }" @click="tabClick(1)">
          基本信息</div>
        <!-- <div class="tab-item" :class="{ 'tab-choose-item': chooseTab == 2 }" @click="tabClick(2)">
          从业人员 </div>
        <div class="tab-item" :class="{ 'tab-choose-item': chooseTab == 3 }" @click="tabClick(3)">
          消防检查 </div> -->
      </div>
      <div class="flex-1 tab-content-box" v-if="chooseTab == 1">
        <div class="info-list">
          <div class="info-item">
          <div v-for="field in displayFields" :key="field.key" class="info-item">
            <div class="name">
              场所名称:
              {{ field.label }}:
            </div>
            <div class="value">
              {{ businessDetailData.placeName }}
              {{ field.value }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              场所地址:
            </div>
            <div class="value">
              {{ businessDetailData.location }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              负责人:
            </div>
            <div class="value">
              {{ businessDetailData.principal }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              手机号码:
            </div>
            <div class="value">
              {{ businessDetailData.principalPhone }}
            </div>
          </div>
          <!-- `medium_category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '中类(行业分类)',
  `small_category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '小类(行业分类)',
  `industry_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行业类别',
  `fire_key_unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '消防重点单位(是/否/未知)',
  `unit_property` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '单位性质(如:企业、事业单位等)',
  `business_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '营业状态(如:正常营业、停业等)',
  `employee_count` int unsigned DEFAULT '0' COMMENT '当前职工人数,非负整数',
   -->
          <div class="info-item">
            <div class="name">
              中类(行业分类):
            </div>
            <div class="value">
              {{ businessDetailData.mediumCategory }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              小类(行业分类):
            </div>
            <div class="value">
              {{ businessDetailData.smallCategory }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              行业类别:
            </div>
            <div class="value">
              {{ businessDetailData.industryType }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              消防重点单位:
            </div>
            <div class="value">
              {{ businessDetailData.fireKeyUnit }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              单位性质:
            </div>
            <div class="value">
              {{ businessDetailData.unitProperty }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              营业状态:
            </div>
            <div class="value">
              {{ businessDetailData.businessStatus }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              职工人数:
            </div>
            <div class="value">
              {{ businessDetailData.employeeCount }}
            </div>
          </div>
          <!-- `credit_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '统一社会信用代码,18位',
  `legal_person_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '法人姓名',
  `legal_person_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '法人证件号码(身份证/护照等)',
  `legal_person_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '法人手机号码',
   -->
          <div class="info-item">
            <div class="name">
              统一社会信用代码:
            </div>
            <div class="value">
              {{ businessDetailData.creditCode }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              法人姓名:
            </div>
            <div class="value">
              {{ businessDetailData.legalPersonName }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              法人证件号码:
            </div>
            <div class="value">
              {{ businessDetailData.legalPersonId }}
            </div>
          </div>
          <div class="info-item">
            <div class="name">
              法人手机号码:
            </div>
            <div class="value">
              {{ businessDetailData.legalPersonPhone }}
            </div>
          </div>
          <!-- <div class="info-item">
                        <div class="name">
                            所属社区:
                        </div>
                        <div class="value">
                            361102003027
                        </div>
                    </div>
                    <div class="info-item">
                        <div class="name">
                            所属网格:
                        </div>
                        <div class="value">
                            第五网格
                        </div>
                    </div> -->
        </div>
      </div>
@@ -343,6 +196,81 @@
  },
  computed: {
    displayFields () {
      const fields = [
        { key: 'placeName', label: '场所名称', value: this.businessDetailData.placeName },
        { key: 'location', label: '场所地址', value: this.businessDetailData.location },
        { key: 'principal', label: '负责人', value: this.businessDetailData.principal },
        { key: 'principalPhone', label: '手机号码', value: this.businessDetailData.principalPhone },
        { key: 'contactPerson', label: '联系人', value: this.businessDetailData.contactPerson },
        { key: 'contactPhone', label: '联系人电话', value: this.businessDetailData.contactPhone },
        { key: 'dataSource', label: '数据来源', value: this.businessDetailData.dataSource },
        { key: 'responsiblePolice', label: '责任民警', value: this.businessDetailData.responsiblePolice },
        { key: 'companyContactPerson', label: '企业联系人', value: this.businessDetailData.companyContactPerson },
        { key: 'companyContactPhone', label: '企业联系电话', value: this.businessDetailData.companyContactPhone },
        { key: 'cadreInCharge', label: '挂点干部', value: this.businessDetailData.cadreInCharge },
        { key: 'cadreContactPhone', label: '挂点干部联系电话', value: this.businessDetailData.cadreContactPhone },
        { key: 'landAttributeIndependent', label: '用地属性/产权属性(独立供地)', value: this.businessDetailData.landAttributeIndependent },
        { key: 'landAttributePurchased', label: '用地属性/产权属性(购买厂房)', value: this.businessDetailData.landAttributePurchased },
        { key: 'landAttributeRented', label: '用地属性/产权属性(租赁厂房)', value: this.businessDetailData.landAttributeRented },
        { key: 'landArea', label: '用地面积', value: this.businessDetailData.landArea },
        { key: 'buildingArea', label: '建筑面积', value: this.businessDetailData.buildingArea },
        { key: 'industryCategory', label: '产业类别', value: this.businessDetailData.industryCategory },
        { key: 'mainProducts', label: '主营产品', value: this.businessDetailData.mainProducts },
        { key: 'isInvestmentAgreementSigned', label: '是否签订招商协议', value: this.businessDetailData.isInvestmentAgreementSigned },
        { key: 'productionStatus', label: '生产状态', value: this.businessDetailData.productionStatus },
        { key: 'isBusinessRegistered', label: '是否工商注册', value: this.businessDetailData.isBusinessRegistered },
        { key: 'businessRegistrationAddress', label: '工商注册地', value: this.businessDetailData.businessRegistrationAddress },
        { key: 'isEiaCompleted', label: '是否办理环评', value: this.businessDetailData.isEiaCompleted },
        { key: 'isSafetyAssessmentCompleted', label: '是否办理安评', value: this.businessDetailData.isSafetyAssessmentCompleted },
        // { key: 'taxRegistrationAddress', label: '税务注册地', value: this.businessDetailData.taxRegistrationAddress },
        { key: 'mainBusinessIncome', label: '主营业务收入(万元)', value: this.businessDetailData.mainBusinessIncome },
        { key: 'expectedAnnualMainBusinessIncome', label: '全年预计主营业务收入(万元)', value: this.businessDetailData.expectedAnnualMainBusinessIncome },
        { key: 'taxPaymentAmount', label: '纳税额(万元)', value: this.businessDetailData.taxPaymentAmount },
        { key: 'expectedAnnualTaxPayment', label: '全年预计纳税额(万元)', value: this.businessDetailData.expectedAnnualTaxPayment },
        { key: 'waterConsumption', label: '用水量(吨)', value: this.businessDetailData.waterConsumption },
        { key: 'electricityConsumption', label: '用电量(千瓦时)', value: this.businessDetailData.electricityConsumption },
        { key: 'gasConsumption', label: '用气量(立方)', value: this.businessDetailData.gasConsumption },
        { key: 'complianceType', label: '规上/规下', value: this.businessDetailData.complianceType },
        { key: 'isHighTechEnterprise', label: '是否高新企业', value: this.businessDetailData.isHighTechEnterprise },
        { key: 'isSpecializedInnovativeEnterprise', label: '是否专精特新', value: this.businessDetailData.isSpecializedInnovativeEnterprise },
        { key: 'totalEmployees', label: '员工总人数', value: this.businessDetailData.totalEmployees },
        { key: 'isEmploymentHomeRegistered', label: '是否完成"就业之家"注册(规上企业)', value: this.businessDetailData.isEmploymentHomeRegistered },
        { key: 'partyMemberCount', label: '党员人数', value: this.businessDetailData.partyMemberCount },
        // { key: 'remarks', label: '备注', value: this.businessDetailData.remarks },
        { key: 'serviceTeam', label: '服务小组', value: this.businessDetailData.serviceTeam },
        { key: 'isIndustrialEnterprise', label: '是否工业企业', value: this.businessDetailData.isIndustrialEnterprise },
        { key: 'matchType', label: '匹配类型', value: this.businessDetailData.matchType },
        { key: 'smallCategory', label: '小类(行业分类)', value: this.businessDetailData.smallCategory },
        { key: 'fireKeyUnit', label: '消防重点单位', value: this.businessDetailData.fireKeyUnit },
        { key: 'unitProperty', label: '单位性质', value: this.businessDetailData.unitProperty },
        { key: 'businessStatus', label: '营业状态', value: this.businessDetailData.businessStatus },
        { key: 'employeeCount', label: '职工人数', value: this.businessDetailData.employeeCount },
        { key: 'keyLevel', label: '重点等级', value: this.getFireLevelText(this.businessDetailData.employeeCount) },
        { key: 'fireLevel', label: '消防等级', value: this.getFireLevelText(this.businessDetailData.employeeCount) },
        { key: 'supervisionType', label: '监管单位类别', value: this.getSupervisionTypeText(this.businessDetailData.employeeCount) },
        { key: 'creditCode', label: '统一社会信用代码', value: this.businessDetailData.creditCode },
        { key: 'legalPersonName', label: '法人姓名', value: this.businessDetailData.legalPersonName },
        { key: 'legalPersonId', label: '法人证件号码', value: this.businessDetailData.legalPersonId },
        { key: 'legalPersonPhone', label: '法人手机号码', value: this.businessDetailData.legalPersonPhone },
        { key: 'affiliatedOrganization', label: '所属派出所', value: this.businessDetailData.affiliatedOrganization },
        { key: 'responsibilityArea', label: '所属责任区', value: this.businessDetailData.responsibilityArea },
        // { key: 'responsiblePolice', label: '责任民警', value: this.businessDetailData.responsiblePolice },
        { key: 'communityName', label: '社区名称', value: this.businessDetailData.communityName },
        // { key: 'availableResourceType', label: '社区名称', value: this.businessDetailData.availableResourceType },
      ]
      return fields.filter(field => {
        // 对于数字类型,只要不是 undefined、null 或空字符串就显示
        if (typeof field.value === 'number') {
          return field.value !== undefined && field.value !== null && field.value !== ''
        }
        // 对于其他类型,只要不是 undefined、null、空字符串或空格就显示
        return field.value && String(field.value).trim() !== ''
      })
    },
    getImgUrls () {
      return (item) => {
        let imageUrls = item.imageUrls
@@ -385,6 +313,25 @@
  },
  methods: {
    getFireLevelText (fireLevel) {
      if (fireLevel === 1) {
        return '一级'
      } else if (fireLevel === 2) {
        return '二级'
      } else {
        return '二级' // 或者返回默认值
      }
    },
    // supervision_type` varchar(50) DEFAULT NULL COMMENT '监管单位类别(如:一般单位、重点单位等)
    getSupervisionTypeText (supervisionType) {
      if (supervisionType === 1) {
        return '一般单位'
      } else if (supervisionType === 2) {
        return '重点单位'
      } else {
        return '一般单位' // 或者返回默认值
      }
    },
    // 点击展开收缩
    flodQL (index) {
      this.examineDetails.patrolGroupDTOList[index].isShowQList = !this.examineDetails.patrolGroupDTOList[index].isShowQList
@@ -396,6 +343,7 @@
      this.searchDate = ''
      this.examineListShow = true
      this.businessDetailData = row
      console.log("11111111111111222-------------------", row)
      this.chooseTab = 1
      this.popupShow = true
src/styles/media/index.scss
@@ -253,6 +253,9 @@
                                        &:first-child {
                                            margin-top: 0;
                                        }
                                        &:hover {
                                          background: skyblue;
                                        }
                                        .value {
                                            color: orange;
src/views/home/components/dialog/areaDetailsBox.vue
@@ -13,17 +13,20 @@
        身份证号: <input type="text" v-model="peopleCardID" placeholder="请输入身份证号" />
      </div>
      <div>
        所属责任区: <input type="text" v-model="areaName" placeholder="请输入所属责任区" />
      </div>
      <div>
        民警名称: <input type="text" v-model="policeName" placeholder="请输入民警名称" />
      </div>
      <div v-if="showPersonColumn">
      <div v-if="showPersonTypeColumn">
        人员类型:
        <el-select v-model="zdryxl" clear placeholder="请输入人员类型">
        <el-select v-model="personType" clear placeholder="请输入人员类型">
          <el-option label="实有人口" value="0"></el-option>
          <el-option label="户籍人口" value="1"></el-option>
        </el-select>
      </div>
      <div v-if="showPersonTypeColumn">
        人口类型: <el-select v-model="personType" clear placeholder="请选择人口类型">
      <div v-if="showPersonColumn">
        人口类型: <el-select v-model="zdryxl" clear placeholder="请选择人口类型">
          <el-option label="宣传煽动危害国家安全的人员" value="1"></el-option>
          <el-option label="扬言报复社会他人的人员" value="2"></el-option>
          <el-option label="故意犯罪刑满释放不满五年人员" value="3"></el-option>
@@ -301,7 +304,7 @@
    getPersonInfoPage (status) {
      this.curLoading = true
      this.peopleEmptyText = ""
      console.log('getPersonInfoPage', this.policeName)
      getPersonInfoPage({
        status: this.status,
        // deptId: this.userInfo.dept_id,
src/views/home/components/dialog/enterpriseInfoBox.vue
@@ -3,24 +3,7 @@
    <el-dialog :title="title" :visible.sync="visible" :before-close="landBeforeClose" :modal="true"
      :modal-append-to-body="false" :close-on-click-modal="false" class="land-details-box">
      <div class="header">
        <!-- <div>
        场所类型:
        <el-select
          clearable
          style="flex: 1"
          size="small"
          v-model="typeValue"
          @change="typeChange"
          placeholder="请选择场所类型"
        >
          <el-option
            v-for="item in typeOptions"
            :key="item.key"
            :label="item.title"
            :value="item.key"
          ></el-option>
        </el-select>
      </div> -->
        <div>
          标准地址:
          <input type="text" v-model="address" placeholder="请输入场所名称" />
@@ -29,7 +12,14 @@
          风险隐患类别:
          <input type="text" v-model="riskHazardCategory" placeholder="请输入场所名称" />
        </div>
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
        </div>
        <el-button type="primary" icon="el-icon-search" @click="getNinePage">搜索</el-button>
        <el-button type="primary" icon="el-icon-delete" @click="clearSearchValue">清空</el-button>
      </div>
@@ -55,14 +45,17 @@
            </template>
          </el-table-column>
          <el-table-column prop="companyName" width="200" :show-overflow-tooltip="true" label="企业名称"></el-table-column>
          <el-table-column prop="standardAddress" :show-overflow-tooltip="true" label="标准地址"></el-table-column>
          <el-table-column prop="companyActualAddress" :show-overflow-tooltip="true" label="企业地址"></el-table-column>
          <el-table-column prop="standardAddress" :show-overflow-tooltip="true" min-width="180"
            label="标准地址"></el-table-column>
          <!-- <el-table-column prop="companyActualAddress" :show-overflow-tooltip="true" label="企业地址"></el-table-column> -->
          <el-table-column prop="companyContactPerson" :show-overflow-tooltip="true" label="企业负责人"></el-table-column>
          <el-table-column prop="companyContactPhone" :show-overflow-tooltip="true" label="企业负责电话"></el-table-column>
          <el-table-column prop="cadreContactPhone" :show-overflow-tooltip="true" label="证件号码"></el-table-column>
          <el-table-column prop="mainProducts" :show-overflow-tooltip="true" label="主营产品"></el-table-column>
          <el-table-column prop="responsiblePolice" :show-overflow-tooltip="true" label="责任民警"></el-table-column>
          <el-table-column prop="affiliatedOrganization" :show-overflow-tooltip="true" label="所属派出所"></el-table-column>
          <!-- <el-table-column prop="cadreContactPhone" :show-overflow-tooltip="true" label="证件号码"></el-table-column> -->
          <!-- <el-table-column prop="mainProducts" :show-overflow-tooltip="true" label="主营产品"></el-table-column> -->
          <el-table-column prop="responsibilityArea" :show-overflow-tooltip="true" label="所属辖区"></el-table-column>
          <el-table-column prop="policeName" :show-overflow-tooltip="true" label="责任民警"></el-table-column>
          <el-table-column prop="policePhone" :show-overflow-tooltip="true" label="民警电话"></el-table-column>
          <!-- <el-table-column prop="address" :show-overflow-tooltip="true" label="标准地址"></el-table-column> -->
          <!-- <el-table-column prop="nineName" :show-overflow-tooltip="true" label="场所类型"></el-table-column> -->
          <el-table-column width="80" label="操作" align="center">
@@ -172,13 +165,7 @@
        siteWd: lat,
        siteGd: 2000,
      })
      let rows = {
        placeName: row.riskHazardName,
        type: 1,
        location: row.address,
        principal: row.contactPerson,
        principalPhone: row.contactPhone,
      }
      this.$EventBus.$emit("mapClearLayer", {
        layerName: "scanLayer",
@@ -189,11 +176,16 @@
        layerName: "scanLayer",
        type: "billboard",
        params: {
          ...rows,
          ...row,
          lng: lng,
          lat: lat,
          alt: 1,
          size: [32, 32],
          placeName: row.companyName,
          type: 1,
          location: row.businessRegistrationAddress,
          principal: row.companyContactPerson,
          principalPhone: row.companyContactPhone,
          // url: typeTree.find(i => i.key == row.nineType).url,
        },
        incident: this.siteClick,
@@ -202,9 +194,14 @@
      this.siteClick({
        overlay: {
          attrParams: {
            ...rows,
            ...row,
            lng,
            lat,
            placeName: row.companyName,
            type: 1,
            location: row.businessRegistrationAddress,
            principal: row.companyContactPerson,
            principalPhone: row.companyContactPhone,
          }
        }
      })
@@ -268,7 +265,7 @@
      this.areaId = areaId
      this.typeValue = value
      this.visible = true
      this.title = name
      this.title = value + name
      this.pages.current = 1
      console.log("this.typeValue", type, name, value, areaId)
      // 获取九小场所隐患数量统计
src/views/home/components/dialog/keyPersonBox.vue
@@ -15,15 +15,18 @@
        身份证号: <input type="text" v-model="peopleCardID" placeholder="请输入身份证号" />
      </div>
      <div>
        所属责任区: <input type="text" v-model="areaName" placeholder="请输入所属责任区" />
      </div>
      <div>
        民警名称: <input type="text" v-model="policeName" placeholder="请输入民警名称" />
      </div>
      <div v-if="showPersonTypeColumn">
      <!-- <div v-if="showPersonTypeColumn">
        人员类型:
        <el-select v-model="zdryxl" clear placeholder="请输入人员类型">
          <el-option label="实有人口" value="0"></el-option>
          <el-option label="户籍人口" value="1"></el-option>
        </el-select>
      </div>
      </div> -->
      <!-- <div v-if="showPersonColumn">
        人口类型: <el-select v-model="personType" clear placeholder="请选择人口类型">
          <el-option label="宣传煽动危害国家安全的人员" value="1"></el-option>
@@ -64,15 +67,15 @@
        <el-table-column :show-overflow-tooltip="true" prop="policeName" label="民警名称"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="policePhone" label="民警电话"></el-table-column> -->
        <el-table-column :show-overflow-tooltip="true" prop="realName" label="姓名"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="address" label="地址" min-width="240%"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="phone" label="电话"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="address" label="地址" min-width="240%"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="policeStationName" label="所属派出所"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="areaName" label="所属责任区"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="policeName" label="责任区民警"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="policePhone" label="民警电话"></el-table-column>
        <!-- <el-table-column :show-overflow-tooltip="true" prop="zdryzry" label="责任人"></el-table-column> -->
        <!-- <el-table-column :show-overflow-tooltip="true" prop="zdrtjdld" label="街道责任领导"></el-table-column> -->
        <el-table-column :show-overflow-tooltip="true" prop="zdryxl" label="重点人员类型"></el-table-column>
        <!-- <el-table-column :show-overflow-tooltip="true" prop="zdryxl" label="重点人员类型"></el-table-column> -->
        <el-table-column prop="isCardMaking" label="二维码">
          <template slot-scope="scope">
            <img v-if="scope.row.address" :src="'http://47.217.32.232/qrcode_image/' + scope.row.picName" alt="二维码"
@@ -117,6 +120,9 @@
      keyPersonEmptyText: "",
      peoplePoliceName: '',
      peopleCallPhone: '',
      policePhone: '',
      policeName: '',
      keyPersonTitle: '',
@@ -305,6 +311,9 @@
      this.keyPersonEmptyText = ""
      this.peoplePoliceName = ''
      this.peopleCallPhone = ''
      this.policePhone = ''
      this.policeName = ''
      this.peoplePage.currentPage = 1
      this.getPersonInfoPage(2)
@@ -334,6 +343,8 @@
        deptId: this.userInfo.dept_id,
        zdryxl: this.keyPersonTitle,
        realName: this.peoplePoliceName,
        policePhone: this.policePhone,
        policeName: this.policeName,
        phone: this.peopleCallPhone,
        current: this.peoplePage.currentPage,
        size: this.peoplePage.pageSize
src/views/home/components/dialog/otherPlaceDetailsBox.vue
@@ -7,6 +7,19 @@
          场所名称:
          <input type="text" v-model="placeName" placeholder="请输入场所名称" />
        </div>
        <div>
          场所负责人:
          <input type="text" v-model="principal" placeholder="请输入场所负责人" />
        </div>
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
        </div>
        <el-button type="primary" icon="el-icon-search" @click="getNinePage">搜索</el-button>
        <el-button type="primary" icon="el-icon-delete" @click="clearSearchValue">清空</el-button>
      </div>
@@ -34,6 +47,8 @@
          <el-table-column width="260" prop="placeName" :show-overflow-tooltip="true" label="场所名称"></el-table-column>
          <el-table-column prop="location" :show-overflow-tooltip="true" label="场所地址"></el-table-column>
          <el-table-column prop="smallCategory" :show-overflow-tooltip="true" label="场所类型"></el-table-column>
          <el-table-column prop="principal" :show-overflow-tooltip="true" label="场所负责人"></el-table-column>
          <el-table-column prop="principalPhone" :show-overflow-tooltip="true" label="场所负责电话"></el-table-column>
          <el-table-column prop="responsibilityArea" :show-overflow-tooltip="true" label="所属责任区"></el-table-column>
          <el-table-column prop="responsiblePolice" :show-overflow-tooltip="true" label="责任民警"></el-table-column>
          <!-- <el-table-column prop="businessStatus" :show-overflow-tooltip="true" label="营业状态"></el-table-column>
src/views/home/components/dialog/placeDetailsBox.vue
@@ -3,27 +3,23 @@
    <el-dialog :title="title" :visible.sync="visible" :before-close="landBeforeClose" :modal="true"
      :modal-append-to-body="false" :close-on-click-modal="false" class="land-details-box">
      <div class="header">
        <!-- <div>
        场所类型:
        <el-select
          clearable
          style="flex: 1"
          size="small"
          v-model="typeValue"
          @change="typeChange"
          placeholder="请选择场所类型"
        >
          <el-option
            v-for="item in typeOptions"
            :key="item.key"
            :label="item.title"
            :value="item.key"
          ></el-option>
        </el-select>
      </div> -->
        <div>
          场所名称:
          <input type="text" v-model="placeName" placeholder="请输入场所名称" />
        </div>
        <div>
          场所负责人:
          <input type="text" v-model="principal" placeholder="请输入场所负责人" />
        </div>
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
        </div>
        <el-button type="primary" icon="el-icon-search" @click="getNinePage">搜索</el-button>
        <el-button type="primary" icon="el-icon-delete" @click="clearSearchValue">清空</el-button>
@@ -34,11 +30,7 @@
          'text-align': 'center',
          'background-color': '#203c60',
          borderColor: '#324e75',
        }" :cell-style="{
  'text-align': 'center',
  borderColor: '#324e75',
  cursor: 'default',
}">
        }" :cell-style="{ 'text-align': 'center', borderColor: '#324e75', cursor: 'default', }">
          <template slot="empty">
            <div>{{ landEmptyText }}</div>
          </template>
@@ -49,9 +41,15 @@
              }}</span>
            </template>
          </el-table-column>
          <el-table-column width="260" prop="placeName" :show-overflow-tooltip="true" label="场所名称"></el-table-column>
          <el-table-column prop="location" :show-overflow-tooltip="true" label="场所地址"></el-table-column>
          <el-table-column min-width="150" prop="placeName" :show-overflow-tooltip="true" label="场所名称"></el-table-column>
          <el-table-column min-width="150" prop="location" :show-overflow-tooltip="true" label="场所地址"></el-table-column>
          <el-table-column prop="nineName" :show-overflow-tooltip="true" label="场所类型"></el-table-column>
          <el-table-column prop="principal" :show-overflow-tooltip="true" label="场所负责人"></el-table-column>
          <el-table-column prop="principalPhone" :show-overflow-tooltip="true" label="场所负责电话"></el-table-column>
          <!-- <el-table-column prop="affiliatedOrganization" :show-overflow-tooltip="true" label="所属派出所"></el-table-column> -->
          <!-- <el-table-column prop="responsiblePolice" :show-overflow-tooltip="true" label="责任民警"></el-table-column> -->
          <el-table-column prop="responsibilityArea" :show-overflow-tooltip="true" label="所属责任区"></el-table-column>
          <el-table-column prop="responsiblePolice" :show-overflow-tooltip="true" label="责任民警"></el-table-column>
          <el-table-column width="80" label="操作" align="center">
            <template slot-scope="scope">
              <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
@@ -148,6 +146,9 @@
      type: null,
      isDanger: null,
      placeName: "",
      principal: "",
      responsibilityArea: "",
      responsiblePolice: "",
      typeValue: "",
      typeOptions: [],
      tableData: [],
@@ -277,10 +278,13 @@
      this.isDanger = null
      this.placeName = null
      this.typeValue = null
      this.$EventBus.$emit("mapClearLayer", {
        layerName: "scanLayer",
        type: "VectorLayer",
      })
      this.principal = null,
        this.responsibilityArea = null,
        this.responsiblePolice = null,
        this.$EventBus.$emit("mapClearLayer", {
          layerName: "scanLayer",
          type: "VectorLayer",
        })
      this.$store.commit("SET_DIALOGDETAILPOPUP", false)
      this.pages.current = 1
      this.getNinePage()
@@ -338,6 +342,9 @@
        size: this.pages.pageSize,
        nineType: this.typeValue,
        placeName: this.placeName,
        principal: this.principal,
        responsibilityArea: this.responsibilityArea,
        responsiblePolice: this.responsiblePolice,
        isDanger: this.type == 1 ? 1 : "",
        deptId: this.policeStaionID,
        areaId: this.areaId
src/views/home/components/dialog/riskDetailsBox.vue
@@ -3,24 +3,7 @@
    <el-dialog :title="title" :visible.sync="visible" :before-close="landBeforeClose" :modal="true"
      :modal-append-to-body="false" :close-on-click-modal="false" class="land-details-box">
      <div class="header">
        <!-- <div>
        场所类型:
        <el-select
          clearable
          style="flex: 1"
          size="small"
          v-model="typeValue"
          @change="typeChange"
          placeholder="请选择场所类型"
        >
          <el-option
            v-for="item in typeOptions"
            :key="item.key"
            :label="item.title"
            :value="item.key"
          ></el-option>
        </el-select>
      </div> -->
        <div>
          标准地址:
          <input type="text" v-model="address" placeholder="请输入场所名称" />
@@ -28,6 +11,14 @@
        <div>
          风险隐患类别:
          <input type="text" v-model="riskHazardCategory" placeholder="请输入场所名称" />
        </div>
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
        </div>
        <el-button type="primary" icon="el-icon-search" @click="getRiskPage">搜索</el-button>
        <el-button type="primary" icon="el-icon-delete" @click="clearSearchValue">清空</el-button>
@@ -53,16 +44,17 @@
              }}</span>
            </template>
          </el-table-column>
          <el-table-column prop="riskHazardName" width="200" :show-overflow-tooltip="true"
          <el-table-column prop="riskHazardName" min-width="180" :show-overflow-tooltip="true"
            label="风险隐患点名称"></el-table-column>
          <el-table-column prop="detailedAddress" :show-overflow-tooltip="true" min-width="180"
            label="详细地址"></el-table-column>
          <!-- <el-table-column prop="address" :show-overflow-tooltip="true" min-width="240" label="标准地址"></el-table-column> -->
          <el-table-column prop="riskHazardCategory" :show-overflow-tooltip="true" label="风险隐患类别"></el-table-column>
          <el-table-column prop="dataSource" :show-overflow-tooltip="true" label="数据来源"></el-table-column>
          <el-table-column prop="detailedAddress" :show-overflow-tooltip="true" label="详细地址"></el-table-column>
          <el-table-column prop="contactPerson" :show-overflow-tooltip="true" label="联系人"></el-table-column>
          <el-table-column prop="contactPhone" :show-overflow-tooltip="true" label="联系电话"></el-table-column>
          <el-table-column prop="responsiblePolice" :show-overflow-tooltip="true" label="责任民警"></el-table-column>
          <el-table-column prop="dataSource" :show-overflow-tooltip="true" label="数据来源"></el-table-column>
          <el-table-column prop="affiliatedOrganization" :show-overflow-tooltip="true" label="所属派出所"></el-table-column>
          <el-table-column prop="address" :show-overflow-tooltip="true" label="标准地址"></el-table-column>
          <el-table-column prop="responsiblePolice" :show-overflow-tooltip="true" label="责任民警"></el-table-column>
          <!-- <el-table-column prop="nineName" :show-overflow-tooltip="true" label="场所类型"></el-table-column> -->
          <el-table-column width="80" label="操作" align="center">
            <template slot-scope="scope">
@@ -245,11 +237,16 @@
        layerName: "scanLayer",
        type: "billboard",
        params: {
          ...rows,
          ...row,
          lng: lng,
          lat: lat,
          alt: 1,
          size: [32, 32],
          placeName: row.riskHazardName,
          type: 1,
          location: row.address,
          principal: row.contactPerson,
          principalPhone: row.contactPhone,
          // url: typeTree.find(i => i.key == row.nineType).url,
        },
        incident: this.siteClick,
@@ -258,9 +255,14 @@
      this.siteClick({
        overlay: {
          attrParams: {
            ...rows,
            ...row,
            lng,
            lat,
            placeName: row.riskHazardName,
            type: 1,
            location: row.address,
            principal: row.contactPerson,
            principalPhone: row.contactPhone,
          }
        }
      })
@@ -324,7 +326,7 @@
      this.areaId = areaId
      this.typeValue = value
      this.visible = true
      this.title = name
      this.title = value + name
      this.pages.current = 1
      // 获取九小场所隐患数量统计
      // this.getNineTypeTree(value)
src/views/home/components/leftContainer.vue
@@ -31,17 +31,18 @@
          <div v-show="tabType == 0" class="echarts-box" style="overflow-y: auto;" ref="REFPERSONECHARTS">
            <div id="PersonEcharts" :style="{ height: personEchartsHeight }"></div>
          </div>
          <div class="person-list-box" v-show="tabType == 1">
                <div class="person-category-item" v-for="(item, index) in keyPersonnelData" :key="index">
                    <div class="label">
                        {{ item.name }}
                    </div>
                    <div class="value" @click="keyPersonItemClick(item)">
                        {{ item.value }}
                    </div>
                </div>
          <div class="person-list-box" v-show="tabType == 1">
            <div class="person-category-item" v-for="(item, index) in keyPersonnelData" :key="index"
              @click="keyPersonItemClick(item)">
              <div class="label">
                {{ item.name }}
              </div>
              <div class="value">
                {{ item.value }}
              </div>
            </div>
          </div>
        </el-main>
@@ -402,7 +403,7 @@
     * @return {*}
     */
    personTabClick (type) {
        this.keyPersonnelData = []
      this.keyPersonnelData = []
      console.log('type', type, 'this.tabType', this.tabType, 'this.isFirstMounted', this.isFirstMounted)
      if (type == 0) {
        if (this.tabType == 0 && !this.isFirstMounted) {
@@ -771,11 +772,6 @@
          xDate.push(item.typeName)
          yDate.push(item.number)
        })
        // 茅家岭单独判断
        if (this.userInfo.dept_id == '1596020515064381442') {
          xDate = ['学校', '医院', '宾馆酒店', '房屋建筑业', '数字经济', '批发业', '零售业']
          yDate = [34, 2, 33, 11, 22, 30, 14]
        }
        this.inithouseEcharts(xDate, yDate)
        // 点击事件
@@ -813,11 +809,6 @@
          yDate.push(item.number)
        })
        // 茅家岭单独判断
        if (this.userInfo.dept_id == '1596020515064381442') {
          xDate = ['反恐重点目标', '危爆品', '重点服务对象', '困难儿童']
          yDate = [14, 13, 10, 17]
        }
        this.inithouseEcharts(xDate, yDate)
        // 点击事件
@@ -860,7 +851,7 @@
        if (type == 1) {
          this.$emit('showplacedetail', type, '重点场所列表', params.name, this.areaId)
        } else if (type == 2) {
          this.$emit('showplacedetail', type, '风险隐患场所列表', params.name, this.areaId)
          this.$emit('showplacedetail', type, '场所列表', params.name, this.areaId)
        } else if (type == 3) {
          this.$emit('showplacedetail', type, '企业信息列表', params.name, this.areaId)
        } else {
@@ -1441,20 +1432,20 @@
      this.personEchartsHeight = '100%'
      // }
    //   this.$nextTick(() => {
    //     var chartDom = document.getElementById('PersonEcharts')
    //     keyPersonmyChart = this.$echarts.init(chartDom)
    //     keyPersonmyChart.setOption(this.initkeyPersonOption(personInfo))
      //   this.$nextTick(() => {
      //     var chartDom = document.getElementById('PersonEcharts')
      //     keyPersonmyChart = this.$echarts.init(chartDom)
      //     keyPersonmyChart.setOption(this.initkeyPersonOption(personInfo))
    //     this.clickkeyPersonChart()
    //     if (personInfo.length > 1) {
    //       this.keyPeopleEchartsCarousel()
    //     } else {
    //       clearInterval(timer)
    //       keyPersonmyChart.off("mouseover")
    //       keyPersonmyChart.off("mouseout")
    //     }
    //   })
      //     this.clickkeyPersonChart()
      //     if (personInfo.length > 1) {
      //       this.keyPeopleEchartsCarousel()
      //     } else {
      //       clearInterval(timer)
      //       keyPersonmyChart.off("mouseover")
      //       keyPersonmyChart.off("mouseout")
      //     }
      //   })
      setTimeout(() => {
@@ -1610,7 +1601,7 @@
     * @return {*}
     */
    keyPersonItemClick (item) {
        this.$emit('showkeypersondetail', item.name)
      this.$emit('showkeypersondetail', item.name)
    },
    /**
src/views/house/1.json
New file
Diff too large