linwe
2025-12-27 6a5d9748e19c7dcb8091f6891456b8fbd2df2110
经开分局优化------大改动
7 files modified
920 ■■■■ changed files
src/components/siteDialog/index.vue 9 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/areaDetailsBox.vue 175 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/enterpriseInfoBox.vue 136 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/keyPersonBox.vue 121 ●●●●● patch | view | raw | blame | history
src/views/home/components/dialog/otherPlaceDetailsBox.vue 136 ●●●●● patch | view | raw | blame | history
src/views/home/components/dialog/placeDetailsBox.vue 163 ●●●● patch | view | raw | blame | history
src/views/home/components/dialog/riskDetailsBox.vue 180 ●●●●● patch | view | raw | blame | history
src/components/siteDialog/index.vue
@@ -202,8 +202,8 @@
        { 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: 'contactPerson', label: '联系人', value: this.businessDetailData.principal ? '' : this.businessDetailData.contactPerson },
        { key: 'contactPhone', label: '联系人电话', value: this.businessDetailData.principalPhone ? '' : this.businessDetailData.contactPhone },
        { key: 'dataSource', label: '数据来源', value: this.businessDetailData.dataSource },
        { key: 'responsiblePolice', label: '责任民警', value: this.businessDetailData.responsiblePolice },
        { key: 'companyContactPerson', label: '企业联系人', value: this.businessDetailData.companyContactPerson },
@@ -260,6 +260,11 @@
        // { key: 'responsiblePolice', label: '责任民警', value: this.businessDetailData.responsiblePolice },
        { key: 'communityName', label: '社区名称', value: this.businessDetailData.communityName },
        { key: 'remark', label: '简介', value: this.businessDetailData.remark },
        { key: 'riskHazardType', label: '风险隐患点', value: this.businessDetailData.riskHazardType },
        { key: 'riskHazardCategory', label: '风险隐患类别', value: this.businessDetailData.riskHazardCategory },
        // { key: 'contactPerson', label: '联系人', value: this.businessDetailData.contactPerson },
        // { key: 'contactPhone', label: '联系电话', value: this.businessDetailData.contactPhone },
        // { key: 'availableResourceType', label: '社区名称', value: this.businessDetailData.availableResourceType },
      ]
src/views/home/components/dialog/areaDetailsBox.vue
@@ -10,36 +10,55 @@
        联系电话: <input type="text" v-model="peopleCallPhone" placeholder="请输入联系电话" />
      </div>
      <div>
        身份证号: <input type="text" v-model="peopleCardID" placeholder="请输入身份证号" />
        所属派出所:
        <el-select v-model="policeStationName" clearable filterable placeholder="请输入所属派出所">
          <el-option label="兴园派出所" value="兴园派出所"></el-option>
          <el-option label="董团派出所" value="董团派出所"></el-option>
        </el-select>
      </div>
      <div>
        所属责任区: <input type="text" v-model="areaName" placeholder="请输入所属责任区" />
        所属社区/街道:
        <el-select v-model="community" placeholder="请选择所属社区/街道" clearable filterable>
          <el-option v-for="street in streetOptions" :key="street.value" :label="street.label" :value="street.value">
          </el-option>
        </el-select>
      </div>
      <div>
        民警名称: <input type="text" v-model="policeName" placeholder="请输入民警名称" />
        村社名称:
        <el-select v-model="areaName" placeholder="请选择村社名称" clearable filterable multiple>
          <el-option v-for="village in filteredVillageOptions" :key="village.value" :label="village.label"
            :value="village.value">
          </el-option>
        </el-select>
      </div>
      <div>
        民警名称: <el-select v-model="policeName" placeholder="请选择民警名称" clearable filterable multiple>
          <el-option v-for="area in nameOptions" :key="area" :label="area" :value="area">
          </el-option>
        </el-select>
      </div>
      <div v-if="showPersonTypeColumn">
        人员类型:
        <el-select v-model="personType" clear placeholder="请输入人员类型">
        <el-select v-model="personType" clearable filterable placeholder="请输入人员类型">
          <el-option label="实有人口" value="0"></el-option>
          <el-option label="户籍人口" value="1"></el-option>
        </el-select>
      </div>
      <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>
          <el-option label="吸毒人员" value="4"></el-option>
          <el-option label="被剥夺政治权利的罪犯" value="5"></el-option>
          <el-option label="家庭暴力加害人" value="6"></el-option>
          <el-option label="有严重不良行为未成年人" value="7"></el-option>
          <el-option label="肇事肇祸精神病人" value="8"></el-option>
          <el-option label="被取保候审人员" value="9"></el-option>
          <el-option label="被监视居住人员" value="10"></el-option>
          <el-option label="非正常访人员" value="11"></el-option>
          <el-option label="退役涉访人员" value="12"></el-option>
          <el-option label="其他规定人员" value="13"></el-option>
        特定对象类别: <el-select v-model="zdryxl" clearable filterable placeholder="请选择人口类型">
          <el-option label="宣传煽动危害国家安全的人员" value="宣传煽动危害国家安全的人员"></el-option>
          <el-option label="扬言报复社会他人的人员" value="扬言报复社会他人的人员"></el-option>
          <el-option label="故意犯罪刑满释放不满五年的人员" value="故意犯罪刑满释放不满五年的人员"></el-option>
          <el-option label="吸毒人员" value="吸毒人员"></el-option>
          <el-option label="被剥夺政治权利的罪犯" value="被剥夺政治权利的罪犯"></el-option>
          <el-option label="家庭暴力加害人" value="家庭暴力加害人"></el-option>
          <el-option label="有严重不良行为未成年人" value="有严重不良行为未成年人"></el-option>
          <el-option label="肇事肇祸精神病人" value="肇事肇祸精神病人"></el-option>
          <el-option label="被取保候审人员" value="被取保候审人员"></el-option>
          <el-option label="被监视居住人员" value="被监视居住人员"></el-option>
          <el-option label="非正常访人员" value="非正常访人员"></el-option>
          <el-option label="退役涉访人员" value="退役涉访人员"></el-option>
          <el-option label="其他规定人员" value="其他规定人员"></el-option>
        </el-select>
      </div>
      <el-button type="primary" icon="el-icon-search" @click="searchPeopleDetail">搜索</el-button>
@@ -63,22 +82,25 @@
        <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="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="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="zdryxl" label="人员类型"
        <el-table-column :show-overflow-tooltip="true" prop="zdryxl" label="特定对象类别"
          v-if="showPersonColumn"></el-table-column>
        <el-table-column :show-overflow-tooltip="true" prop="personType" label="人口类型" v-if="showPersonTypeColumn">
        <el-table-column :show-overflow-tooltip="true" prop="personType" label="人员类型" v-if="showPersonTypeColumn">
          <template slot-scope="scope">
            {{ scope.row.personType == 1 ? '户籍人口' : '实有人口' }}
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center">
          <template slot-scope="scope">
            <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" type="text" size="small"
              title="定位">
            <!-- <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" type="text" size="small"
              title="详情信息">
              <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i>
            </el-button>
            </el-button> -->
            <!-- 详情按钮 -->
            <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" size="small"
              type="primary">详情信息</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -163,12 +185,14 @@
      peopleTitle: '',
      peopleVisible: false,
      areaName: [],
      community: '',
      peoplePoliceName: '',
      policeStationName: '',
      peopleCallPhone: '',
      peopleCardID: '',
      policePhone: '',
      policeName: '',
      policeName: [],
      zdryxl: '',
      personType: '',
      peopleInfoList: [],
@@ -182,10 +206,87 @@
        policeName: "",
        phone: "",
      },
      streetOptions: [
        { label: '兴园街道', value: '兴园街道' },
        { label: '董团乡', value: '董团乡' }
      ],
      villageOptions: [
        // 兴园街道下的村庄/社区
        { label: '苏家村', value: '苏家村', parent: '兴园街道' },
        { label: '龙门村', value: '龙门村', parent: '兴园街道' },
        { label: '武夷社区', value: '武夷社区', parent: '兴园街道' },
        { label: '黄源社区', value: '黄源社区', parent: '兴园街道' },
        { label: '领创社区', value: '领创社区', parent: '兴园街道' },
        { label: '凤凰社区', value: '凤凰社区', parent: '兴园街道' },
        { label: '滨河社区', value: '滨河社区', parent: '兴园街道' },
        { label: '新科社区', value: '新科社区', parent: '兴园街道' },
        { label: '滨城社区', value: '滨城社区', parent: '兴园街道' },
        { label: '板桥村', value: '板桥村', parent: '兴园街道' },
        { label: '前山社区', value: '前山社区', parent: '兴园街道' },
        // 董团乡下的村庄
        { label: '董团村', value: '董团村', parent: '董团乡' },
        { label: '仙山村', value: '仙山村', parent: '董团乡' },
        { label: '太平村', value: '太平村', parent: '董团乡' },
        { label: '吴洲村', value: '吴洲村', parent: '董团乡' },
        { label: '中魏村', value: '中魏村', parent: '董团乡' },
        { label: '中路村', value: '中路村', parent: '董团乡' },
        { label: '大地村', value: '大地村', parent: '董团乡' },
        { label: '联星村', value: '联星村', parent: '董团乡' },
        { label: '联合村', value: '联合村', parent: '董团乡' },
        { label: '联胜村', value: '联胜村', parent: '董团乡' },
        { label: '红石村', value: '红石村', parent: '董团乡' }
      ],
      nameOptions: [
        '李江鹏',
        '杨晨熠',
        '邹金禄',
        '陈谨国',
        '郑晶',
        '周悦',
        '王伟豪',
        '徐文涛',
        '廖正发',
        '周振中',
        '饶金有',
        '余忠福',
        '张凯',
        '王瑜'
      ]
    }
  },
  watch: {
    community: {
      handler (newVal) {
        // 当街道选择变化时,更新责任区选项
        if (newVal && newVal.length > 0) {
          // 获取当前选择的街道下的所有村庄
          const villagesInSelectedStreets = this.villageOptions
            .filter(village => newVal.includes(village.parent))
            .map(village => village.value)
          // 更新areaName,保留之前选择的且在当前街道范围内的村庄
          this.areaName = this.areaName.filter(area =>
            villagesInSelectedStreets.includes(area)
          )
        } else {
          // 如果清空了街道选择,也清空责任区选择
          this.areaName = []
        }
      },
      deep: true
    }
  },
  computed: {
    // 获取当前选择的街道下的村庄选项
    filteredVillageOptions () {
      if (!this.community || this.community.length === 0) {
        return this.villageOptions
      }
      return this.villageOptions.filter(village =>
        this.community.includes(village.parent)
      )
    },
    showPersonTypeColumn () {
      // 根据 peopleTitle 来决定是否显示该列
      // 例如:当标题包含"人口"时显示,或者根据具体标题来判断
@@ -255,8 +356,11 @@
      this.status = ''
      this.communityCode = ''
      this.peoplePoliceName = ''
      this.policeStationName = ''
      this.peopleCallPhone = ''
      this.peopleCardID = ''
      this.personType = ''
      this.zdryxl = ''
      this.peoplePage.currentPage = 1
      this.peopleInfoList = []
@@ -281,7 +385,12 @@
    clearPeopleDetailSearchValue () {
      this.peoplePoliceName = ''
      this.peopleCallPhone = ''
      this.policeStationName = ''
      this.policeName = []
      this.peopleCardID = ''
      this.areaName = []
      this.zdryxl = ''
      this.personType = ''
      this.peoplePage.currentPage = 1
      this.peopleInfoList = []
      this.getPersonInfoPage()
@@ -314,9 +423,11 @@
        phone: this.peopleCallPhone,
        cardNo: this.peopleCardID,
        policePhone: this.policePhone,
        policeName: this.policeName,
        zdryxl: this.zdryxl,
        policeStationName: this.policeStationName,
        policeName: this.policeName.join(","),
        areaName: this.areaName.join(","),
        personType: this.personType,
        zdryxl: this.zdryxl,
        current: this.peoplePage.currentPage,
        size: this.peoplePage.pageSize,
        communityCode: this.communityCode
@@ -344,6 +455,14 @@
    showpeopledetail (id, name, isIncludeKeypeople, deptId) {
      this.status = ''
      this.communityCode = ''
      this.peoplePoliceName = ''
      this.peopleCallPhone = ''
      this.peopleCardID = ''
      this.policeStationName = ''
      this.areaName = []
      this.policeName = []
      this.zdryxl = ''
      this.personType = ''
      this.peopleTitle = name
      this.peopleSearchQuery.id = id
      if (deptId) {
src/views/home/components/dialog/enterpriseInfoBox.vue
@@ -5,20 +5,42 @@
      <div class="header">
        <div>
          标准地址:
          场所名称:
          <input type="text" v-model="address" placeholder="请输入场所名称" />
        </div>
        <!-- <div>
          所属责任区: <el-select v-model="responsibilityArea" placeholder="请选择所属责任区" clearable filterable>
            <el-option v-for="area in areaOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </div> -->
        <div>
          风险隐患类别:
          <input type="text" v-model="riskHazardCategory" placeholder="请输入场所名称" />
          所属派出所:
          <el-select v-model="policeStationName" clearable filterable placeholder="请输入所属派出所">
            <el-option label="兴园派出所" value="兴园派出所"></el-option>
            <el-option label="董团派出所" value="董团派出所"></el-option>
          </el-select>
        </div>
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
          所属社区/街道:
          <el-select v-model="community" placeholder="请选择所属社区/街道" clearable filterable>
            <el-option v-for="street in streetOptions" :key="street.value" :label="street.label" :value="street.value">
            </el-option>
          </el-select>
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
          村社名称:
          <el-select v-model="areaName" placeholder="请选择村社名称" clearable filterable multiple>
            <el-option v-for="village in filteredVillageOptions" :key="village.value" :label="village.label"
              :value="village.value">
            </el-option>
          </el-select>
        </div>
        <div>
          民警名称: <el-select v-model="policeName" placeholder="请选择民警名称" clearable filterable multiple>
            <el-option v-for="area in nameOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </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>
@@ -60,18 +82,13 @@
          <!-- <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">
              <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
              <!-- <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
                @click="rowClick(scope.row)">
                <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i>
              </el-button>
              <!-- <el-button
              type="text"
              size="small"
              title="详情"
              @click="goDetail(scope.row)"
            >
              <i class="el-icon-document" style="color: #66b1ff"></i>
            </el-button> -->
              </el-button> -->
              <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" size="small"
                type="primary">详情信息</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -99,6 +116,8 @@
      isDanger: null,
      placeName: "",
      address: "",
      community: "",
      responsibilityArea: "",
      riskHazardCategory: "",
      typeValue: "",
      typeOptions: [],
@@ -115,11 +134,88 @@
      },
      nineType: "",
      policeName: "",
      areaId: null
      areaId: null,
      nameOptions: [
        '李江鹏',
        '杨晨熠',
        '邹金禄',
        '陈谨国',
        '郑晶',
        '周悦',
        '王伟豪',
        '徐文涛',
        '廖正发',
        '周振中',
        '饶金有',
        '余忠福',
        '张凯',
        '王瑜'
      ],
      streetOptions: [
        { label: '兴园街道', value: '兴园街道' },
        { label: '董团乡', value: '董团乡' }
      ],
      villageOptions: [
        // 兴园街道下的村庄/社区
        { label: '苏家村', value: '苏家村', parent: '兴园街道' },
        { label: '龙门村', value: '龙门村', parent: '兴园街道' },
        { label: '武夷社区', value: '武夷社区', parent: '兴园街道' },
        { label: '黄源社区', value: '黄源社区', parent: '兴园街道' },
        { label: '领创社区', value: '领创社区', parent: '兴园街道' },
        { label: '凤凰社区', value: '凤凰社区', parent: '兴园街道' },
        { label: '滨河社区', value: '滨河社区', parent: '兴园街道' },
        { label: '新科社区', value: '新科社区', parent: '兴园街道' },
        { label: '滨城社区', value: '滨城社区', parent: '兴园街道' },
        { label: '板桥村', value: '板桥村', parent: '兴园街道' },
        { label: '前山社区', value: '前山社区', parent: '兴园街道' },
        // 董团乡下的村庄
        { label: '董团村', value: '董团村', parent: '董团乡' },
        { label: '仙山村', value: '仙山村', parent: '董团乡' },
        { label: '太平村', value: '太平村', parent: '董团乡' },
        { label: '吴洲村', value: '吴洲村', parent: '董团乡' },
        { label: '中魏村', value: '中魏村', parent: '董团乡' },
        { label: '中路村', value: '中路村', parent: '董团乡' },
        { label: '大地村', value: '大地村', parent: '董团乡' },
        { label: '联星村', value: '联星村', parent: '董团乡' },
        { label: '联合村', value: '联合村', parent: '董团乡' },
        { label: '联胜村', value: '联胜村', parent: '董团乡' },
        { label: '红石村', value: '红石村', parent: '董团乡' }
      ],
    }
  },
  watch: {
    community: {
      handler (newVal) {
        // 当街道选择变化时,更新责任区选项
        if (newVal && newVal.length > 0) {
          // 获取当前选择的街道下的所有村庄
          const villagesInSelectedStreets = this.villageOptions
            .filter(village => newVal.includes(village.parent))
            .map(village => village.value)
          // 更新areaName,保留之前选择的且在当前街道范围内的村庄
          this.areaName = this.areaName.filter(area =>
            villagesInSelectedStreets.includes(area)
          )
        } else {
          // 如果清空了街道选择,也清空责任区选择
          this.areaName = []
        }
      },
      deep: true
    }
  },
  computed: {
    // 获取当前选择的街道下的村庄选项
    filteredVillageOptions () {
      if (!this.community || this.community.length === 0) {
        return this.villageOptions
      }
      return this.villageOptions.filter(village =>
        this.community.includes(village.parent)
      )
    },
    positionColor () {
      return (row) => {
        if (
@@ -303,6 +399,8 @@
        complianceType: this.typeValue,
        // riskHazardCategory: this.riskHazardCategory,
        address: this.address,
        responsibilityArea: this.responsibilityArea,
        policeName: this.policeName,
        isDanger: this.type == 1 ? 1 : "",
        deptId: this.policeStaionID,
        areaId: this.areaId
@@ -334,6 +432,8 @@
    clearSearchValue () {
      // this.isDanger = null;
      this.placeName = null
      this.responsibilityArea = null
      this.policeName = null
      // this.typeValue = null;
      this.pages.current = 1
      this.getNinePage()
src/views/home/components/dialog/keyPersonBox.vue
@@ -11,14 +11,42 @@
        联系电话:
        <input type="text" v-model="peopleCallPhone" placeholder="请输入联系电话" />
      </div>
      <div>
      <!-- <div>
        身份证号: <input type="text" v-model="peopleCardID" placeholder="请输入身份证号" />
      </div> -->
      <!-- <div>
        所属责任区: <el-select v-model="areaName" placeholder="请选择所属责任区" clearable filterable>
          <el-option v-for="area in areaOptions" :key="area" :label="area" :value="area">
          </el-option>
        </el-select>
      </div> -->
      <div>
        所属派出所:
        <el-select v-model="policeStationName" clearable filterable placeholder="请输入所属派出所">
          <el-option label="兴园派出所" value="兴园派出所"></el-option>
          <el-option label="董团派出所" value="董团派出所"></el-option>
        </el-select>
      </div>
      <div>
        所属责任区: <input type="text" v-model="areaName" placeholder="请输入所属责任区" />
        所属社区/街道:
        <el-select v-model="community" placeholder="请选择所属社区/街道" clearable filterable>
          <el-option v-for="street in streetOptions" :key="street.value" :label="street.label" :value="street.value">
          </el-option>
        </el-select>
      </div>
      <div>
        民警名称: <input type="text" v-model="policeName" placeholder="请输入民警名称" />
        村社名称:
        <el-select v-model="areaName" placeholder="请选择村社名称" clearable filterable multiple>
          <el-option v-for="village in filteredVillageOptions" :key="village.value" :label="village.label"
            :value="village.value">
          </el-option>
        </el-select>
      </div>
      <div>
        民警名称: <el-select v-model="policeName" placeholder="请选择民警名称" clearable filterable multiple>
          <el-option v-for="area in nameOptions" :key="area" :label="area" :value="area">
          </el-option>
        </el-select>
      </div>
      <!-- <div v-if="showPersonTypeColumn">
        人员类型:
@@ -87,10 +115,12 @@
        <!-- <el-table-column :show-overflow-tooltip="true" prop="areaName" label="所属责任区"></el-table-column> -->
        <el-table-column label="操作" align="center">
          <template slot-scope="scope">
            <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" type="text" size="small"
            <!-- <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" type="text" size="small"
              title="定位">
              <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i>
            </el-button>
            </el-button> -->
            <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" size="small"
              type="primary">详情信息</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -123,6 +153,7 @@
      peopleCallPhone: '',
      policePhone: '',
      policeName: '',
      areaName: '',
      keyPersonTitle: '',
@@ -134,10 +165,87 @@
        pageSize: 15,
        currentPage: 1
      },
      nameOptions: [
        '李江鹏',
        '杨晨熠',
        '邹金禄',
        '陈谨国',
        '郑晶',
        '周悦',
        '王伟豪',
        '徐文涛',
        '廖正发',
        '周振中',
        '饶金有',
        '余忠福',
        '张凯',
        '王瑜'
      ],
      streetOptions: [
        { label: '兴园街道', value: '兴园街道' },
        { label: '董团乡', value: '董团乡' }
      ],
      villageOptions: [
        // 兴园街道下的村庄/社区
        { label: '苏家村', value: '苏家村', parent: '兴园街道' },
        { label: '龙门村', value: '龙门村', parent: '兴园街道' },
        { label: '武夷社区', value: '武夷社区', parent: '兴园街道' },
        { label: '黄源社区', value: '黄源社区', parent: '兴园街道' },
        { label: '领创社区', value: '领创社区', parent: '兴园街道' },
        { label: '凤凰社区', value: '凤凰社区', parent: '兴园街道' },
        { label: '滨河社区', value: '滨河社区', parent: '兴园街道' },
        { label: '新科社区', value: '新科社区', parent: '兴园街道' },
        { label: '滨城社区', value: '滨城社区', parent: '兴园街道' },
        { label: '板桥村', value: '板桥村', parent: '兴园街道' },
        { label: '前山社区', value: '前山社区', parent: '兴园街道' },
        // 董团乡下的村庄
        { label: '董团村', value: '董团村', parent: '董团乡' },
        { label: '仙山村', value: '仙山村', parent: '董团乡' },
        { label: '太平村', value: '太平村', parent: '董团乡' },
        { label: '吴洲村', value: '吴洲村', parent: '董团乡' },
        { label: '中魏村', value: '中魏村', parent: '董团乡' },
        { label: '中路村', value: '中路村', parent: '董团乡' },
        { label: '大地村', value: '大地村', parent: '董团乡' },
        { label: '联星村', value: '联星村', parent: '董团乡' },
        { label: '联合村', value: '联合村', parent: '董团乡' },
        { label: '联胜村', value: '联胜村', parent: '董团乡' },
        { label: '红石村', value: '红石村', parent: '董团乡' }
      ],
    }
  },
  watch: {
    community: {
      handler (newVal) {
        // 当街道选择变化时,更新责任区选项
        if (newVal && newVal.length > 0) {
          // 获取当前选择的街道下的所有村庄
          const villagesInSelectedStreets = this.villageOptions
            .filter(village => newVal.includes(village.parent))
            .map(village => village.value)
          // 更新areaName,保留之前选择的且在当前街道范围内的村庄
          this.areaName = this.areaName.filter(area =>
            villagesInSelectedStreets.includes(area)
          )
        } else {
          // 如果清空了街道选择,也清空责任区选择
          this.areaName = []
        }
      },
      deep: true
    }
  },
  computed: {
    // 获取当前选择的街道下的村庄选项
    filteredVillageOptions () {
      if (!this.community || this.community.length === 0) {
        return this.villageOptions
      }
      return this.villageOptions.filter(village =>
        this.community.includes(village.parent)
      )
    },
    showPersonTypeColumn () {
      // 根据 peopleTitle 来决定是否显示该列
      // 例如:当标题包含"人口"时显示,或者根据具体标题来判断
@@ -281,6 +389,7 @@
    personInfoClose () {
      this.peoplePoliceName = ''
      this.peopleCallPhone = ''
      this.areaName = ''
      this.peoplePage.currentPage = 1
      this.keyPersonDetailArr = []
@@ -312,6 +421,7 @@
      this.peoplePoliceName = ''
      this.peopleCallPhone = ''
      this.policePhone = ''
      this.areaName = ''
      this.policeName = ''
      this.peoplePage.currentPage = 1
@@ -346,6 +456,7 @@
        policePhone: this.policePhone,
        policeName: this.policeName,
        phone: this.peopleCallPhone,
        areaName: this.areaName,
        current: this.peoplePage.currentPage,
        size: this.peoplePage.pageSize
      }).then(res => {
src/views/home/components/dialog/otherPlaceDetailsBox.vue
@@ -12,13 +12,39 @@
          <input type="text" v-model="principal" placeholder="请输入场所负责人" />
        </div>
        <!-- <div>
          所属责任区: <el-select v-model="areaName" placeholder="请选择所属责任区" clearable filterable>
            <el-option v-for="area in areaOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </div> -->
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
          所属派出所:
          <el-select v-model="policeStationName" clearable filterable placeholder="请输入所属派出所">
            <el-option label="兴园派出所" value="兴园派出所"></el-option>
            <el-option label="董团派出所" value="董团派出所"></el-option>
          </el-select>
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
          所属社区/街道:
          <el-select v-model="community" placeholder="请选择所属社区/街道" clearable filterable>
            <el-option v-for="street in streetOptions" :key="street.value" :label="street.label" :value="street.value">
            </el-option>
          </el-select>
        </div>
        <div>
          村社名称:
          <el-select v-model="areaName" placeholder="请选择村社名称" clearable filterable multiple>
            <el-option v-for="village in filteredVillageOptions" :key="village.value" :label="village.label"
              :value="village.value">
            </el-option>
          </el-select>
        </div>
        <div>
          民警名称: <el-select v-model="policeName" placeholder="请选择民警名称" clearable filterable multiple>
            <el-option v-for="area in nameOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </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>
@@ -65,10 +91,12 @@
          </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)"
              <!-- <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
                @click="rowClick(scope.row)">
                <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i>
              </el-button>
              </el-button> -->
              <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" size="small"
                type="primary">详情信息</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -95,9 +123,11 @@
      type: null,
      isDanger: null,
      placeName: "",
      areaName: "",
      policeName: "",
      typeOptions: [],
      tableData: [],
      principal: "",
      curLoading: false,
      landEmptyText: "",
      visible: false,
@@ -109,11 +139,88 @@
        current: 1,
      },
      nineType: "",
      policeName: "",
      areaId: null
      areaId: null,
      nameOptions: [
        '李江鹏',
        '杨晨熠',
        '邹金禄',
        '陈谨国',
        '郑晶',
        '周悦',
        '王伟豪',
        '徐文涛',
        '廖正发',
        '周振中',
        '饶金有',
        '余忠福',
        '张凯',
        '王瑜'
      ],
      streetOptions: [
        { label: '兴园街道', value: '兴园街道' },
        { label: '董团乡', value: '董团乡' }
      ],
      villageOptions: [
        // 兴园街道下的村庄/社区
        { label: '苏家村', value: '苏家村', parent: '兴园街道' },
        { label: '龙门村', value: '龙门村', parent: '兴园街道' },
        { label: '武夷社区', value: '武夷社区', parent: '兴园街道' },
        { label: '黄源社区', value: '黄源社区', parent: '兴园街道' },
        { label: '领创社区', value: '领创社区', parent: '兴园街道' },
        { label: '凤凰社区', value: '凤凰社区', parent: '兴园街道' },
        { label: '滨河社区', value: '滨河社区', parent: '兴园街道' },
        { label: '新科社区', value: '新科社区', parent: '兴园街道' },
        { label: '滨城社区', value: '滨城社区', parent: '兴园街道' },
        { label: '板桥村', value: '板桥村', parent: '兴园街道' },
        { label: '前山社区', value: '前山社区', parent: '兴园街道' },
        // 董团乡下的村庄
        { label: '董团村', value: '董团村', parent: '董团乡' },
        { label: '仙山村', value: '仙山村', parent: '董团乡' },
        { label: '太平村', value: '太平村', parent: '董团乡' },
        { label: '吴洲村', value: '吴洲村', parent: '董团乡' },
        { label: '中魏村', value: '中魏村', parent: '董团乡' },
        { label: '中路村', value: '中路村', parent: '董团乡' },
        { label: '大地村', value: '大地村', parent: '董团乡' },
        { label: '联星村', value: '联星村', parent: '董团乡' },
        { label: '联合村', value: '联合村', parent: '董团乡' },
        { label: '联胜村', value: '联胜村', parent: '董团乡' },
        { label: '红石村', value: '红石村', parent: '董团乡' }
      ],
    }
  },
  watch: {
    community: {
      handler (newVal) {
        // 当街道选择变化时,更新责任区选项
        if (newVal && newVal.length > 0) {
          // 获取当前选择的街道下的所有村庄
          const villagesInSelectedStreets = this.villageOptions
            .filter(village => newVal.includes(village.parent))
            .map(village => village.value)
          // 更新areaName,保留之前选择的且在当前街道范围内的村庄
          this.areaName = this.areaName.filter(area =>
            villagesInSelectedStreets.includes(area)
          )
        } else {
          // 如果清空了街道选择,也清空责任区选择
          this.areaName = []
        }
      },
      deep: true
    }
  },
  computed: {
    // 获取当前选择的街道下的村庄选项
    filteredVillageOptions () {
      if (!this.community || this.community.length === 0) {
        return this.villageOptions
      }
      return this.villageOptions.filter(village =>
        this.community.includes(village.parent)
      )
    },
    positionColor () {
      return (row) => {
        if (
@@ -240,6 +347,9 @@
    clearRow () {
      this.isDanger = null
      this.placeName = null
      this.areaName = null
      this.policeName = null
      this.principal = null
      this.$EventBus.$emit("mapClearLayer", {
        layerName: "scanLayer",
        type: "VectorLayer",
@@ -265,7 +375,7 @@
      this.type = type
      this.areaId = areaId
      this.visible = true
      this.title = name
      this.title = value
      this.pages.current = 1
      this.poiCode = value
      // 获取九小场所隐患数量统计
@@ -279,6 +389,9 @@
        size: this.pages.pageSize,
        mediumCategory: this.poiCode,
        placeName: this.placeName,
        areaName: this.areaName,
        policeName: this.policeName,
        principal: this.principal,
        deptId: this.policeStaionID,
        areaId: this.areaId,
      }, false)
@@ -309,6 +422,9 @@
    clearSearchValue () {
      // this.isDanger = null;
      this.placeName = null
      this.areaName = null
      this.policeName = null
      this.principal = null
      this.pages.current = 1
      this.getNinePage()
    },
src/views/home/components/dialog/placeDetailsBox.vue
@@ -13,13 +13,39 @@
          <input type="text" v-model="principal" placeholder="请输入场所负责人" />
        </div>
        <!-- <div>
          所属责任区: <el-select v-model="areaName" placeholder="请选择所属责任区" clearable filterable>
            <el-option v-for="area in areaOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </div> -->
        <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
          所属派出所:
          <el-select v-model="policeStationName" clearable filterable placeholder="请输入所属派出所">
            <el-option label="兴园派出所" value="兴园派出所"></el-option>
            <el-option label="董团派出所" value="董团派出所"></el-option>
          </el-select>
        </div>
        <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
          所属社区/街道:
          <el-select v-model="community" placeholder="请选择所属社区/街道" clearable filterable>
            <el-option v-for="street in streetOptions" :key="street.value" :label="street.label" :value="street.value">
            </el-option>
          </el-select>
        </div>
        <div>
          村社名称:
          <el-select v-model="areaName" placeholder="请选择村社名称" clearable filterable multiple>
            <el-option v-for="village in filteredVillageOptions" :key="village.value" :label="village.label"
              :value="village.value">
            </el-option>
          </el-select>
        </div>
        <div>
          民警名称: <el-select v-model="policeName" placeholder="请选择民警名称" clearable filterable multiple>
            <el-option v-for="area in nameOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </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>
@@ -45,25 +71,20 @@
          <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="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)"
              <!-- <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
                @click="rowClick(scope.row)">
                <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i>
              </el-button>
              <!-- <el-button
              type="text"
              size="small"
              title="详情"
              @click="goDetail(scope.row)"
            >
              <i class="el-icon-document" style="color: #66b1ff"></i>
            </el-button> -->
              </el-button> -->
              <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" size="small"
                type="primary">详情信息</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -146,7 +167,10 @@
      type: null,
      isDanger: null,
      placeName: "",
      areaName: "",
      policeName: "",
      principal: "",
      community: "",
      responsibilityArea: "",
      responsiblePolice: "",
      typeValue: "",
@@ -164,12 +188,88 @@
        current: 1,
      },
      nineType: "",
      policeName: "",
      areaId: null
      areaId: null,
      nameOptions: [
        '李江鹏',
        '杨晨熠',
        '邹金禄',
        '陈谨国',
        '郑晶',
        '周悦',
        '王伟豪',
        '徐文涛',
        '廖正发',
        '周振中',
        '饶金有',
        '余忠福',
        '张凯',
        '王瑜'
      ],
      streetOptions: [
        { label: '兴园街道', value: '兴园街道' },
        { label: '董团乡', value: '董团乡' }
      ],
      villageOptions: [
        // 兴园街道下的村庄/社区
        { label: '苏家村', value: '苏家村', parent: '兴园街道' },
        { label: '龙门村', value: '龙门村', parent: '兴园街道' },
        { label: '武夷社区', value: '武夷社区', parent: '兴园街道' },
        { label: '黄源社区', value: '黄源社区', parent: '兴园街道' },
        { label: '领创社区', value: '领创社区', parent: '兴园街道' },
        { label: '凤凰社区', value: '凤凰社区', parent: '兴园街道' },
        { label: '滨河社区', value: '滨河社区', parent: '兴园街道' },
        { label: '新科社区', value: '新科社区', parent: '兴园街道' },
        { label: '滨城社区', value: '滨城社区', parent: '兴园街道' },
        { label: '板桥村', value: '板桥村', parent: '兴园街道' },
        { label: '前山社区', value: '前山社区', parent: '兴园街道' },
        // 董团乡下的村庄
        { label: '董团村', value: '董团村', parent: '董团乡' },
        { label: '仙山村', value: '仙山村', parent: '董团乡' },
        { label: '太平村', value: '太平村', parent: '董团乡' },
        { label: '吴洲村', value: '吴洲村', parent: '董团乡' },
        { label: '中魏村', value: '中魏村', parent: '董团乡' },
        { label: '中路村', value: '中路村', parent: '董团乡' },
        { label: '大地村', value: '大地村', parent: '董团乡' },
        { label: '联星村', value: '联星村', parent: '董团乡' },
        { label: '联合村', value: '联合村', parent: '董团乡' },
        { label: '联胜村', value: '联胜村', parent: '董团乡' },
        { label: '红石村', value: '红石村', parent: '董团乡' }
      ],
    }
  },
  watch: {
    community: {
      handler (newVal) {
        // 当街道选择变化时,更新责任区选项
        if (newVal && newVal.length > 0) {
          // 获取当前选择的街道下的所有村庄
          const villagesInSelectedStreets = this.villageOptions
            .filter(village => newVal.includes(village.parent))
            .map(village => village.value)
          // 更新areaName,保留之前选择的且在当前街道范围内的村庄
          this.areaName = this.areaName.filter(area =>
            villagesInSelectedStreets.includes(area)
          )
        } else {
          // 如果清空了街道选择,也清空责任区选择
          this.areaName = []
        }
      },
      deep: true
    }
  },
  computed: {
    // 获取当前选择的街道下的村庄选项
    filteredVillageOptions () {
      if (!this.community || this.community.length === 0) {
        return this.villageOptions
      }
      return this.villageOptions.filter(village =>
        this.community.includes(village.parent)
      )
    },
    positionColor () {
      return (row) => {
        if (
@@ -278,13 +378,17 @@
      this.isDanger = null
      this.placeName = null
      this.typeValue = null
      this.principal = null,
        this.responsibilityArea = null,
        this.responsiblePolice = null,
        this.$EventBus.$emit("mapClearLayer", {
          layerName: "scanLayer",
          type: "VectorLayer",
        })
      this.principal = null
      this.areaName = null
      this.principal = null
      this.policeName = null
      this.community = 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()
@@ -306,7 +410,7 @@
      this.type = type
      this.areaId = areaId
      this.visible = true
      this.title = name
      this.title = value
      this.pages.current = 1
      // 获取九小场所隐患数量统计
      this.getNineTypeTree(value)
@@ -343,8 +447,9 @@
        nineType: this.typeValue,
        placeName: this.placeName,
        principal: this.principal,
        responsibilityArea: this.responsibilityArea,
        responsiblePolice: this.responsiblePolice,
        areaName: this.areaName,
        policeName: this.policeName,
        community: this.community,
        isDanger: this.type == 1 ? 1 : "",
        deptId: this.policeStaionID,
        areaId: this.areaId
@@ -376,6 +481,10 @@
    clearSearchValue () {
      // this.isDanger = null;
      this.placeName = null
      this.areaName = null
      this.principal = null
      this.policeName = null
      this.community = null
      // this.typeValue = null;
      this.pages.current = 1
      this.getNinePage()
src/views/home/components/dialog/riskDetailsBox.vue
@@ -10,15 +10,52 @@
        </div>
        <div>
          风险隐患类别:
          <input type="text" v-model="riskHazardCategory" placeholder="请输入场所名称" />
          <el-select v-model="riskHazardCategory" placeholder="请选择风险隐患类别" clearable filterable>
            <el-option v-for="area in riskOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </div>
        <!-- <div>
          所属责任区: <el-select v-model="communityName" placeholder="请选择所属责任区" clearable filterable>
            <el-option v-for="area in areaOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </div> -->
        <div>
          所属派出所:
          <el-select v-model="policeStationName" clearable filterable placeholder="请输入所属派出所">
            <el-option label="兴园派出所" value="兴园派出所"></el-option>
            <el-option label="董团派出所" value="董团派出所"></el-option>
          </el-select>
        </div>
        <div>
          所属社区/街道:
          <el-select v-model="community" placeholder="请选择所属社区/街道" clearable filterable>
            <el-option v-for="street in streetOptions" :key="street.value" :label="street.label" :value="street.value">
            </el-option>
          </el-select>
        </div>
        <div>
          村社名称:
          <el-select v-model="communityName" placeholder="请选择村社名称" clearable filterable multiple>
            <el-option v-for="village in filteredVillageOptions" :key="village.value" :label="village.label"
              :value="village.value">
            </el-option>
          </el-select>
        </div>
        <!-- <div>
          所属责任区:
          <input type="text" v-model="responsibilityArea" placeholder="请输入所属责任区" />
        </div>
        <div>
          <input type="text" v-model="communityName" placeholder="请输入所属责任区" />
        </div> -->
        <!-- <div>
          责任民警:
          <input type="text" v-model="responsiblePolice" placeholder="请输入责任民警" />
        </div> -->
        <div>
          民警名称: <el-select v-model="responsiblePolice" placeholder="请选择民警名称" clearable filterable multiple>
            <el-option v-for="area in nameOptions" :key="area" :label="area" :value="area">
            </el-option>
          </el-select>
        </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>
@@ -49,27 +86,23 @@
          <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 min-width="150" prop="riskHazardCategory" :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="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="communityName" :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">
              <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
              <!-- <el-button type="text" size="small" title="定位" :disabled="positionDisabled(scope.row)"
                @click="rowClick(scope.row)">
                <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i>
              </el-button>
              <!-- <el-button
              type="text"
              size="small"
              title="详情"
              @click="goDetail(scope.row)"
            >
              <i class="el-icon-document" style="color: #66b1ff"></i>
            </el-button> -->
              </el-button> -->
              <el-button :disabled="positionDisabled(scope.row)" @click="rowClick(scope.row)" size="small"
                type="primary">详情信息</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -154,6 +187,8 @@
      placeName: "",
      address: "",
      riskHazardCategory: "",
      responsiblePolice: "",
      communityName: "",
      typeValue: "",
      typeOptions: [],
      tableData: [],
@@ -170,11 +205,114 @@
      },
      nineType: "",
      policeName: "",
      areaId: null
      areaId: null,
      nameOptions: [
        '李江鹏',
        '杨晨熠',
        '邹金禄',
        '陈谨国',
        '郑晶',
        '周悦',
        '王伟豪',
        '徐文涛',
        '廖正发',
        '周振中',
        '饶金有',
        '余忠福',
        '张凯',
        '王瑜'
      ],
      riskOptions: [
        '九小场所',
        '人流密集区域',
        '治安复杂区域',
        '矛盾纠纷多发地',
        '消防安全隐患区域',
        '其他风险区域',
        '其他场所',
        '地质灾害易发区域',
        '密集场所',
        '治安保卫重点单位',
        '治安重点场所',
        '新业态场所',
        '易涝区域',
        '易涝点',
        '龙舟下水点',
        '易溺水区域',
        '易溺水点',
        '易燃点',
        '涉危涉爆单位',
        '涉赌风险场所',
        '电子显示屏风险点',
        '违规垂钓(非法捕捞)高发区',
        '道路交通隐患区域',
        '重大道路隐患'
      ],
      streetOptions: [
        { label: '兴园街道', value: '兴园街道' },
        { label: '董团乡', value: '董团乡' }
      ],
      villageOptions: [
        // 兴园街道下的村庄/社区
        { label: '苏家村', value: '苏家村', parent: '兴园街道' },
        { label: '龙门村', value: '龙门村', parent: '兴园街道' },
        { label: '武夷社区', value: '武夷社区', parent: '兴园街道' },
        { label: '黄源社区', value: '黄源社区', parent: '兴园街道' },
        { label: '领创社区', value: '领创社区', parent: '兴园街道' },
        { label: '凤凰社区', value: '凤凰社区', parent: '兴园街道' },
        { label: '滨河社区', value: '滨河社区', parent: '兴园街道' },
        { label: '新科社区', value: '新科社区', parent: '兴园街道' },
        { label: '滨城社区', value: '滨城社区', parent: '兴园街道' },
        { label: '板桥村', value: '板桥村', parent: '兴园街道' },
        { label: '前山社区', value: '前山社区', parent: '兴园街道' },
        // 董团乡下的村庄
        { label: '董团村', value: '董团村', parent: '董团乡' },
        { label: '仙山村', value: '仙山村', parent: '董团乡' },
        { label: '太平村', value: '太平村', parent: '董团乡' },
        { label: '吴洲村', value: '吴洲村', parent: '董团乡' },
        { label: '中魏村', value: '中魏村', parent: '董团乡' },
        { label: '中路村', value: '中路村', parent: '董团乡' },
        { label: '大地村', value: '大地村', parent: '董团乡' },
        { label: '联星村', value: '联星村', parent: '董团乡' },
        { label: '联合村', value: '联合村', parent: '董团乡' },
        { label: '联胜村', value: '联胜村', parent: '董团乡' },
        { label: '红石村', value: '红石村', parent: '董团乡' }
      ],
    }
  },
  watch: {
    community: {
      handler (newVal) {
        // 当街道选择变化时,更新责任区选项
        if (newVal && newVal.length > 0) {
          // 获取当前选择的街道下的所有村庄
          const villagesInSelectedStreets = this.villageOptions
            .filter(village => newVal.includes(village.parent))
            .map(village => village.value)
          // 更新areaName,保留之前选择的且在当前街道范围内的村庄
          this.areaName = this.areaName.filter(area =>
            villagesInSelectedStreets.includes(area)
          )
        } else {
          // 如果清空了街道选择,也清空责任区选择
          this.areaName = []
        }
      },
      deep: true
    }
  },
  computed: {
    // 获取当前选择的街道下的村庄选项
    filteredVillageOptions () {
      if (!this.community || this.community.length === 0) {
        return this.villageOptions
      }
      return this.villageOptions.filter(village =>
        this.community.includes(village.parent)
      )
    },
    positionColor () {
      return (row) => {
        if (
@@ -322,6 +460,9 @@
     * @return {*}
     */
    showplacedetail (type, name, value, areaId) {
      this.responsiblePolice = null
      this.riskHazardCategory = null
      this.communityName = null
      this.type = type
      this.areaId = areaId
      this.typeValue = value
@@ -362,6 +503,8 @@
        size: this.pages.pageSize,
        riskHazardType: this.typeValue,
        riskHazardCategory: this.riskHazardCategory,
        communityName: this.communityName,
        responsiblePolice: this.responsiblePolice,
        address: this.address,
        isDanger: this.type == 1 ? 1 : "",
        deptId: this.policeStaionID,
@@ -394,6 +537,9 @@
    clearSearchValue () {
      // this.isDanger = null;
      this.placeName = null
      this.communityName = null
      this.riskHazardCategory = null
      this.responsiblePolice = null
      // this.typeValue = null;
      this.pages.current = 1
      this.getRiskPage()