linwe
2025-10-22 dceb72fca4e58b47fdbb5b9e0104830042300f92
经开分局清理合同外的内容
12 files modified
2682 ■■■■ changed files
public/index.html 2 ●●● patch | view | raw | blame | history
src/components/mapSearchBox/index.vue 6 ●●●● patch | view | raw | blame | history
src/router/page/index.js 116 ●●●● patch | view | raw | blame | history
src/views/activity/index.vue 2394 ●●●● patch | view | raw | blame | history
src/views/home/components/bottomContainer.vue 12 ●●●●● patch | view | raw | blame | history
src/views/home/components/rightContainer.vue 12 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 10 ●●●●● patch | view | raw | blame | history
src/views/house/index.vue 22 ●●●● patch | view | raw | blame | history
src/views/house/index(商铺用接口前).vue 14 ●●●● patch | view | raw | blame | history
src/views/layout/index.vue 77 ●●●● patch | view | raw | blame | history
src/views/login/index.vue 2 ●●● patch | view | raw | blame | history
src/views/police/index.vue 15 ●●●● patch | view | raw | blame | history
public/index.html
@@ -17,7 +17,7 @@
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <link rel="icon" href="<%= BASE_URL %>affairs.ico">
  <title>
    经开区公安警务作战一体化平台
    上饶市经开区可视化指挥调度平台
  </title>
  <script src="./static/config.js"></script>
src/components/mapSearchBox/index.vue
@@ -47,7 +47,7 @@
    searchExtensivelyClick () {
      this.getSearchExtensively(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        this.searchExtensivelyValue
      )
      this.searchExtensivelyValBoxShow = false
@@ -98,7 +98,7 @@
      this.searchExtensivelyValBoxShow = true
      this.getSearchExtensively(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        this.searchExtensivelyValue
      )
    },
@@ -183,7 +183,7 @@
        this.isShowClearBtn = true
        this.getSearchExtensively(
          "81503dad589f42bf9a9e5ea5e017f329",
          "361100",
          "361102",
          this.searchExtensivelyValue
        )
      }
src/router/page/index.js
@@ -5,40 +5,40 @@
 * @Last Modified time: 2022-07-29 09:15:23
 */
import Vue from "vue";
import VueRouter from "vue-router";
Vue.use(VueRouter);
import Vue from "vue"
import VueRouter from "vue-router"
Vue.use(VueRouter)
const layout = () => import("../../views/layout/index.vue");
const site = () => import("../../views/site/index.vue");
const home = () => import("../../views/home/index.vue");
const house = () => import("../../views/house/index.vue");
const police = () => import("../../views/police/index.vue");
const video = () => import("../../views/video/index.vue");
const videoList = () => import("../../views/video/list.vue");
const videoRegion = () => import("../../views/video/region.vue");
const activity = () => import("../../views/activity/index.vue");
const policeInfor = () => import("../../views/policeInfor/index.vue");
const scanOrCode = () => import("../../views/scanOrCode/index.vue");
const rentalInfo = () => import("../../views/rentalInfo/index.vue");
const antiFraudShow = () => import("../../views/antiFraudShow/index.vue");
const layout = () => import("../../views/layout/index.vue")
const site = () => import("../../views/site/index.vue")
const home = () => import("../../views/home/index.vue")
const house = () => import("../../views/house/index.vue")
const police = () => import("../../views/police/index.vue")
const video = () => import("../../views/video/index.vue")
const videoList = () => import("../../views/video/list.vue")
const videoRegion = () => import("../../views/video/region.vue")
const activity = () => import("../../views/activity/index.vue")
const policeInfor = () => import("../../views/policeInfor/index.vue")
const scanOrCode = () => import("../../views/scanOrCode/index.vue")
const rentalInfo = () => import("../../views/rentalInfo/index.vue")
const antiFraudShow = () => import("../../views/antiFraudShow/index.vue")
const contradictionEventShow = () =>
  import("../../views/contradictionEventShow/index.vue");
const positionManage = () => import("../../views/positionManage/index.vue");
  import("../../views/contradictionEventShow/index.vue")
const positionManage = () => import("../../views/positionManage/index.vue")
const practitionersManage = () =>
  import("../../views/practitionersManage/index.vue");
  import("../../views/practitionersManage/index.vue")
const policeAlarmRecordsManage = () =>
  import("../../views/policeAlarmRecordsManage/index.vue");
  import("../../views/policeAlarmRecordsManage/index.vue")
const comprehensiveSearch = () =>
  import("../../views/comprehensiveSearch/index.vue");
const available = () => import("../../views/available/index.vue");
const risk = () => import("../../views/risk/index.vue");
  import("../../views/comprehensiveSearch/index.vue")
const available = () => import("../../views/available/index.vue")
const risk = () => import("../../views/risk/index.vue")
const intelligentSearch = () =>
  import("../../views/intelligentSearch/index.vue");
  import("../../views/intelligentSearch/index.vue")
const login = () => import("../../views/login/index.vue");
const login = () => import("../../views/login/index.vue")
const routes = [
  {
@@ -83,37 +83,37 @@
        },
        component: house,
      },
      {
        path: "policeresouce",
        meta: {
          title: "警力资源",
        },
        component: police,
      },
      // {
      //   path: "policeresouce",
      //   meta: {
      //     title: "警力资源",
      //   },
      //   component: police,
      // },
      {
        path: "video",
        meta: {
          title: "视频监控",
        },
        component: video,
        children: [
          {
            path: "list",
            meta: {
              title: "列表查询",
            },
            component: videoList,
          },
          {
            path: "region",
            meta: {
              title: "空间查询",
            },
            component: videoRegion,
          },
        ],
      },
      // {
      //   path: "video",
      //   meta: {
      //     title: "视频监控",
      //   },
      //   component: video,
      //   children: [
      //     {
      //       path: "list",
      //       meta: {
      //         title: "列表查询",
      //       },
      //       component: videoList,
      //     },
      //     {
      //       path: "region",
      //       meta: {
      //         title: "空间查询",
      //       },
      //       component: videoRegion,
      //     },
      //   ],
      // },
      {
        path: "activity",
        meta: {
@@ -212,11 +212,11 @@
  //     redirect: '/404',
  //     isAuth: false
  // }
];
]
const router = new VueRouter({
  base: process.env.BASE_URL,
  routes,
});
})
export default router;
export default router
src/views/activity/index.vue
@@ -10,182 +10,181 @@
-->
<template>
    <div class="activity-page container">
        <div v-show="boxShow" class="container-content">
            <div class="title">电子沙盘</div>
            <div class="search-box">
                <div>
                    <div class="category">名称:</div>
                    <div class="category-value search-activity">
                        <el-input size="small" placeholder="请输入…" v-model="searchActivity" @change="activeSearch"
                            clearable></el-input>
                    </div>
                </div>
            </div>
            <div class="result-content">
                <div class="table-box">
                    <el-collapse v-show="activityList.length > 0" v-model="activeActivityIndex" accordion
                        @change="handleActivityChange" class="activity-list">
                        <el-collapse-item v-for="item in activityList" :name="item.id" :key="item.id">
                            <template slot="title">{{ item.name }}({{ item.plotType == 1 ? '二维' : '三维' }})</template>
                            <el-collapse class="collapse-item-box" v-model="activeActivityElementIndex" accordion>
                                <el-collapse-item title="要素资源" :name="yszy">
                                    <el-collapse class="collapse-item-box-child" v-model="elementPoliceIndex" accordion>
                                        <el-collapse-item title="警车" :name="jc">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="carItem in chooseActivityPoliceCarList" :key="carItem.id"
                                                    @click="carOrPoliceItemClick(carItem.position, 'point')">{{
                                                        carItem.serialNumber }}</li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="elementPoliceCarIndex" accordion>
                                        <el-collapse-item title="警员" :name="jy">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="policeItem in chooseActivityPoliceManList" :key="policeItem.id"
                                                    @click="carOrPoliceItemClick(policeItem.position, 'point')">{{
                                                        policeItem.policeName }}</li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="elementCustomIndex" accordion>
                                        <el-collapse-item title="自定义图片标注" :name="wxrw">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(item, index) in customList" :key="item.id"
                                                    @click="carOrPoliceItemClick(item.position, 'people')">
                                                    {{ item.remark && item.remark.trim() != '' ? item.remark :
                                                        `自定义图片标注${index + 1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="elementNormalIndex" accordion>
                                        <el-collapse-item title="其他" :name="wxrw">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(item, index) in restList" :key="item.id"
                                                    @click="carOrPoliceItemClick(item.position, 'people')">
                                                    {{ item.remark && item.remark.trim() != '' ? item.remark :
                                                        restCurType(item, index) }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                </el-collapse-item>
                            </el-collapse>
                            <el-collapse class="collapse-item-box" v-model="activeActivityArrowIndex" accordion>
                                <el-collapse-item title="作战标绘" :name="zzbh">
                                    <el-collapse class="collapse-item-box-child" v-model="attackArrowIndex" accordion
                                        v-show="item.plotType == 1">
                                        <el-collapse-item title="进攻箭头" :name="jgjt">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(attackItem, index) in attackArrowList" :key="attackItem.id"
                                                    @click="carOrPoliceItemClick(attackItem.position, 'arrow')">
                                                    {{ attackItem.remark && attackItem.remark.trim() != '' ?
                                                        attackItem.remark : `进攻箭头${index +
                                                        1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="doubleArrowIndex" accordion
                                        v-show="item.plotType == 1">
                                        <el-collapse-item title="双箭头" :name="sjt">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(doubleItem, index) in doubleArrowList" :key="doubleItem.id"
                                                    @click="carOrPoliceItemClick(doubleItem.position, 'arrow')">
                                                    {{ doubleItem.remark && doubleItem.remark.trim() != '' ?
                                                        doubleItem.remark : `双箭头${index
                                                        + 1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="fineArrowIndex" accordion
                                        v-show="item.plotType == 1">
                                        <el-collapse-item title="直箭头" :name="zjt">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(fineItem, index) in fineArrowList" :key="fineItem.id"
                                                    @click="carOrPoliceItemClick(fineItem.position, 'arrow')">
                                                    {{ fineItem.remark && fineItem.remark.trim() != '' ? fineItem.remark :
                                                        `直箭头${index +
                                                        1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="tailedAttackArrowIndex" accordion
                                        v-show="item.plotType == 1">
                                        <el-collapse-item title="燕尾箭头" :name="ywjt">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(tailedItem, index) in tailedAttackArrowList"
                                                    :key="tailedItem.id"
                                                    @click="carOrPoliceItemClick(tailedItem.position, 'arrow')">
                                                    {{ tailedItem.remark && tailedItem.remark.trim() != '' ?
                                                        tailedItem.remark : `燕尾箭头${index
                                                        + 1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="polygonArrowIndex" accordion>
                                        <el-collapse-item title="多边形" :name="dbx">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(polygonItem, index) in polygonList" :key="polygonItem.id"
                                                    @click="carOrPoliceItemClick(polygonItem.position, 'polygon')">
                                                    {{ polygonItem.remark && polygonItem.remark.trim() != '' ?
                                                        polygonItem.remark :
                                                        `多边形${index + 1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                    <el-collapse class="collapse-item-box-child" v-model="borkenlineIndex" accordion>
                                        <el-collapse-item title="折线" :name="dbx">
                                            <ul class="collapse-item-box-child-child">
                                                <li v-for="(polygonItem, index) in borkenList" :key="polygonItem.id"
                                                    @click="carOrPoliceItemClick(polygonItem.position, 'polygon')">
                                                    {{ polygonItem.remark && polygonItem.remark.trim() != '' ?
                                                        polygonItem.remark : `折线${index
                                                        + 1}` }}
                                                </li>
                                            </ul>
                                        </el-collapse-item>
                                    </el-collapse>
                                </el-collapse-item>
                            </el-collapse>
                            <el-collapse class="collapse-item-box" v-model="activeActivityLineIndex" accordion>
                                <el-collapse-item title="巡逻路线" :name="xllx">
                                    <ul class="collapse-item-box-child-child">
                                        <li v-for="(lineItem, index) in chooseActivityLineList" :key="lineItem.id"
                                            @click="carOrPoliceItemClick(lineItem.position, 'line')">
                                            {{ lineItem.remark && lineItem.remark.trim() != '' ? lineItem.remark :
                                                `路线${index + 1}` }}
                                        </li>
                                    </ul>
                                </el-collapse-item>
                            </el-collapse>
                        </el-collapse-item>
                    </el-collapse>
                    <div v-show="activityList == 0" class="no-data">暂无数据</div>
                </div>
                <div class="pages all-pagination-sty">
                    <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="pagesCount"
                        :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination>
                </div>
            </div>
  <div class="activity-page container">
    <div v-show="boxShow" class="container-content">
      <div class="title">电子沙盘</div>
      <div class="search-box">
        <div>
          <div class="category">名称:</div>
          <div class="category-value search-activity">
            <el-input size="small" placeholder="请输入…" v-model="searchActivity" @change="activeSearch"
              clearable></el-input>
          </div>
        </div>
      </div>
        <div class="second-container" :class="{ 'spread': boxShow, 'take-back': !boxShow }">
            <el-tree :data="treeData" show-checkbox node-key="id" @check="treeCheckClick"
                @check-change="treeCheckChange"></el-tree>
      <div class="result-content">
        <div class="table-box">
          <el-collapse v-show="activityList.length > 0" v-model="activeActivityIndex" accordion
            @change="handleActivityChange" class="activity-list">
            <el-collapse-item v-for="item in activityList" :name="item.id" :key="item.id">
              <template slot="title">{{ item.name }}({{ item.plotType == 1 ? '二维' : '三维' }})</template>
              <el-collapse class="collapse-item-box" v-model="activeActivityElementIndex" accordion>
                <el-collapse-item title="要素资源" :name="yszy">
                  <el-collapse class="collapse-item-box-child" v-model="elementPoliceIndex" accordion>
                    <el-collapse-item title="警车" :name="jc">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="carItem in chooseActivityPoliceCarList" :key="carItem.id"
                          @click="carOrPoliceItemClick(carItem.position, 'point')">{{
                            carItem.serialNumber }}</li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="elementPoliceCarIndex" accordion>
                    <el-collapse-item title="警员" :name="jy">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="policeItem in chooseActivityPoliceManList" :key="policeItem.id"
                          @click="carOrPoliceItemClick(policeItem.position, 'point')">{{
                            policeItem.policeName }}</li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="elementCustomIndex" accordion>
                    <el-collapse-item title="自定义图片标注" :name="wxrw">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(item, index) in customList" :key="item.id"
                          @click="carOrPoliceItemClick(item.position, 'people')">
                          {{ item.remark && item.remark.trim() != '' ? item.remark :
                            `自定义图片标注${index + 1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="elementNormalIndex" accordion>
                    <el-collapse-item title="其他" :name="wxrw">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(item, index) in restList" :key="item.id"
                          @click="carOrPoliceItemClick(item.position, 'people')">
                          {{ item.remark && item.remark.trim() != '' ? item.remark :
                            restCurType(item, index) }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                </el-collapse-item>
              </el-collapse>
              <el-collapse class="collapse-item-box" v-model="activeActivityArrowIndex" accordion>
                <el-collapse-item title="作战标绘" :name="zzbh">
                  <el-collapse class="collapse-item-box-child" v-model="attackArrowIndex" accordion
                    v-show="item.plotType == 1">
                    <el-collapse-item title="进攻箭头" :name="jgjt">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(attackItem, index) in attackArrowList" :key="attackItem.id"
                          @click="carOrPoliceItemClick(attackItem.position, 'arrow')">
                          {{ attackItem.remark && attackItem.remark.trim() != '' ?
                            attackItem.remark : `进攻箭头${index +
                            1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="doubleArrowIndex" accordion
                    v-show="item.plotType == 1">
                    <el-collapse-item title="双箭头" :name="sjt">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(doubleItem, index) in doubleArrowList" :key="doubleItem.id"
                          @click="carOrPoliceItemClick(doubleItem.position, 'arrow')">
                          {{ doubleItem.remark && doubleItem.remark.trim() != '' ?
                            doubleItem.remark : `双箭头${index
                            + 1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="fineArrowIndex" accordion
                    v-show="item.plotType == 1">
                    <el-collapse-item title="直箭头" :name="zjt">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(fineItem, index) in fineArrowList" :key="fineItem.id"
                          @click="carOrPoliceItemClick(fineItem.position, 'arrow')">
                          {{ fineItem.remark && fineItem.remark.trim() != '' ? fineItem.remark :
                            `直箭头${index +
                            1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="tailedAttackArrowIndex" accordion
                    v-show="item.plotType == 1">
                    <el-collapse-item title="燕尾箭头" :name="ywjt">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(tailedItem, index) in tailedAttackArrowList" :key="tailedItem.id"
                          @click="carOrPoliceItemClick(tailedItem.position, 'arrow')">
                          {{ tailedItem.remark && tailedItem.remark.trim() != '' ?
                            tailedItem.remark : `燕尾箭头${index
                            + 1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="polygonArrowIndex" accordion>
                    <el-collapse-item title="多边形" :name="dbx">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(polygonItem, index) in polygonList" :key="polygonItem.id"
                          @click="carOrPoliceItemClick(polygonItem.position, 'polygon')">
                          {{ polygonItem.remark && polygonItem.remark.trim() != '' ?
                            polygonItem.remark :
                            `多边形${index + 1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                  <el-collapse class="collapse-item-box-child" v-model="borkenlineIndex" accordion>
                    <el-collapse-item title="折线" :name="dbx">
                      <ul class="collapse-item-box-child-child">
                        <li v-for="(polygonItem, index) in borkenList" :key="polygonItem.id"
                          @click="carOrPoliceItemClick(polygonItem.position, 'polygon')">
                          {{ polygonItem.remark && polygonItem.remark.trim() != '' ?
                            polygonItem.remark : `折线${index
                            + 1}` }}
                        </li>
                      </ul>
                    </el-collapse-item>
                  </el-collapse>
                </el-collapse-item>
              </el-collapse>
              <el-collapse class="collapse-item-box" v-model="activeActivityLineIndex" accordion>
                <el-collapse-item title="巡逻路线" :name="xllx">
                  <ul class="collapse-item-box-child-child">
                    <li v-for="(lineItem, index) in chooseActivityLineList" :key="lineItem.id"
                      @click="carOrPoliceItemClick(lineItem.position, 'line')">
                      {{ lineItem.remark && lineItem.remark.trim() != '' ? lineItem.remark :
                        `路线${index + 1}` }}
                    </li>
                  </ul>
                </el-collapse-item>
              </el-collapse>
            </el-collapse-item>
          </el-collapse>
          <div v-show="activityList == 0" class="no-data">暂无数据</div>
        </div>
        <map-search-box></map-search-box>
        <public-index ref="PublicIndexPage" :activityDeptId="activityDeptId"></public-index>
        <div class="pages all-pagination-sty">
          <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="pagesCount"
            :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination>
        </div>
      </div>
    </div>
    <div class="second-container" :class="{ 'spread': boxShow, 'take-back': !boxShow }">
      <el-tree :data="treeData" show-checkbox node-key="id" @check="treeCheckClick"
        @check-change="treeCheckChange"></el-tree>
    </div>
    <map-search-box></map-search-box>
    <public-index ref="PublicIndexPage" :activityDeptId="activityDeptId"></public-index>
  </div>
</template>
<script>
@@ -211,1093 +210,1094 @@
let realPoliceTimer = {}
import {
    getSecurityPlotList,
    getSecurityPoliceList,
    getSecurityCarList
  getSecurityPlotList,
  getSecurityPoliceList,
  getSecurityCarList
} from '@/api/activity/index.js'
export default {
    inject: ['userInfo'],
  inject: ['userInfo'],
    data () {
        return {
            activeActivityIndex: '',
            elementPoliceCarIndex: '',
            elementPoliceIndex: '',
            elementNormalIndex: '',
            elementProtectedIndex: '',
            elementDangerousIndex: '',
            elementCustomIndex: '',
            attackArrowIndex: '',
            doubleArrowIndex: '',
            tailedAttackArrowIndex: '',
            fineArrowIndex: '',
            polygonArrowIndex: '',
            activeActivityPoliceManIndex: '',
            activeActivityElementIndex: '',
            activeActivityArrowIndex: '',
            activeActivityLineIndex: '',
            chooseActivityPoliceManList: [],
            chooseActivityPoliceCarList: [],
            chooseActivityLineList: [],
            attackArrowList: [],
            doubleArrowList: [],
            tailedAttackArrowList: [],
            fineArrowList: [],
            polygonList: [],
            borkenlineIndex: '',
            borkenList: [],
            normalPeopleList: [],
            protectedPeopleList: [],
            dangerousPeopleList: [],
            customList: [],
            boxShow: true,
            searchActivity: '',
            currentPage: 1,
            pagesize: 4,
            pagesCount: 1,
            activityList: [],
            policemanOption: [],
            activityType: '',
            treeData: [{
                id: 1,
                label: '数据地图',
                children: [{
                    id: 2,
                    label: '实时警力',
                    children: [{
                        id: 7,
                        label: '警车',
                    }, {
                        id: 8,
                        label: '手台',
                        children: [
                            {
                                id: 10,
                                label: '公网',
                            },
                            {
                                id: 11,
                                label: '专网',
                            }
                        ]
                    }, {
                        id: 9,
                        label: '执法记录仪',
                    }]
                }, {
                    id: 3,
                    label: '视频监控'
                },
                    //  {
                    //     id: 5,
                    //     label: '重点单位',
                    //     children: [{
                    //         id: 13,
                    //         label: '大中型商超',
                    //         lng: 116.023293,
                    //         lat: 28.680986,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 14,
                    //         label: '幼儿园',
                    //         lng: 116.0275001,
                    //         lat: 28.679361,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 15,
                    //         label: '政府机关',
                    //         lng: 116.024398,
                    //         lat: 28.678066,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 16,
                    //         label: '机场',
                    //         lng: 116.0268529,
                    //         lat: 28.6829572,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 17,
                    //         label: '银行',
                    //         lng: 116.025595,
                    //         lat: 28.681225,
                    //         alt: 100,
                    //     }]
                    // },
                    // {
                    //     id: 6,
                    //     label: '特殊场所',
                    //     children: [{
                    //         id: 18,
                    //         label: '印刷店',
                    //         lng: 116.020370,
                    //         lat: 28.680075,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 19,
                    //         label: '废旧金属收购',
                    //         lng: 116.030054,
                    //         lat: 28.683692,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 20,
                    //         label: '开锁店',
                    //         lng: 116.022703,
                    //         lat: 28.679435,
                    //         alt: 100,
                    //     },
                    //     {
                    //         id: 21,
                    //         label: '酒店',
                    //         lng: 115.028703,
                    //         lat: 28.684435,
                    //         alt: 100,
                    //     }]
                    // }
                ]
            }],
            defaultProps: {
                children: 'children',
                label: 'label'
            },
  data () {
    return {
      activeActivityIndex: '',
      elementPoliceCarIndex: '',
      elementPoliceIndex: '',
      elementNormalIndex: '',
      elementProtectedIndex: '',
      elementDangerousIndex: '',
      elementCustomIndex: '',
      attackArrowIndex: '',
      doubleArrowIndex: '',
      tailedAttackArrowIndex: '',
      fineArrowIndex: '',
      polygonArrowIndex: '',
      activeActivityPoliceManIndex: '',
      activeActivityElementIndex: '',
      activeActivityArrowIndex: '',
      activeActivityLineIndex: '',
      chooseActivityPoliceManList: [],
      chooseActivityPoliceCarList: [],
      chooseActivityLineList: [],
      attackArrowList: [],
      doubleArrowList: [],
      tailedAttackArrowList: [],
      fineArrowList: [],
      polygonList: [],
      borkenlineIndex: '',
      borkenList: [],
      normalPeopleList: [],
      protectedPeopleList: [],
      dangerousPeopleList: [],
      customList: [],
      boxShow: true,
      searchActivity: '',
      currentPage: 1,
      pagesize: 4,
      pagesCount: 1,
      activityList: [],
      policemanOption: [],
      activityType: '',
      treeData: [{
        id: 1,
        label: '数据地图',
        children: [{
          id: 2,
          label: '实时警力',
          children: [{
            id: 7,
            label: '警车',
          }, {
            id: 8,
            label: '手台',
            children: [
              {
                id: 10,
                label: '公网',
              },
              {
                id: 11,
                label: '专网',
              }
            ]
          }, {
            id: 9,
            label: '执法记录仪',
          }]
        },
          // {
          //     id: 3,
          //     label: '视频监控'
          // },
          //  {
          //     id: 5,
          //     label: '重点单位',
          //     children: [{
          //         id: 13,
          //         label: '大中型商超',
          //         lng: 116.023293,
          //         lat: 28.680986,
          //         alt: 100,
          //     },
          //     {
          //         id: 14,
          //         label: '幼儿园',
          //         lng: 116.0275001,
          //         lat: 28.679361,
          //         alt: 100,
          //     },
          //     {
          //         id: 15,
          //         label: '政府机关',
          //         lng: 116.024398,
          //         lat: 28.678066,
          //         alt: 100,
          //     },
          //     {
          //         id: 16,
          //         label: '机场',
          //         lng: 116.0268529,
          //         lat: 28.6829572,
          //         alt: 100,
          //     },
          //     {
          //         id: 17,
          //         label: '银行',
          //         lng: 116.025595,
          //         lat: 28.681225,
          //         alt: 100,
          //     }]
          // },
          // {
          //     id: 6,
          //     label: '特殊场所',
          //     children: [{
          //         id: 18,
          //         label: '印刷店',
          //         lng: 116.020370,
          //         lat: 28.680075,
          //         alt: 100,
          //     },
          //     {
          //         id: 19,
          //         label: '废旧金属收购',
          //         lng: 116.030054,
          //         lat: 28.683692,
          //         alt: 100,
          //     },
          //     {
          //         id: 20,
          //         label: '开锁店',
          //         lng: 116.022703,
          //         lat: 28.679435,
          //         alt: 100,
          //     },
          //     {
          //         id: 21,
          //         label: '酒店',
          //         lng: 115.028703,
          //         lat: 28.684435,
          //         alt: 100,
          //     }]
          // }
        ]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      },
            policeChooseVisible: false,
            policeChooseCarVisible: false,
            showingSecurityId: '',
            policeIconIsCreated: false,
      policeChooseVisible: false,
      policeChooseCarVisible: false,
      showingSecurityId: '',
      policeIconIsCreated: false,
            //当前登录用户的数据
            userInfo: {},
      //当前登录用户的数据
      userInfo: {},
            chooseCarColor: '#1CA085',
            choosePoliceColor: '#1CA085',
            chooseLineData: {},
            plotId: '',
      chooseCarColor: '#1CA085',
      choosePoliceColor: '#1CA085',
      chooseLineData: {},
      plotId: '',
            isNeedName: false,
            plotSaveType: 1,
            arrowPositionSre: '',
      isNeedName: false,
      plotSaveType: 1,
      arrowPositionSre: '',
            addLinePosition: '',
      addLinePosition: '',
            plotPointPositionStr: '',
            pointAreaWidth: 100,
            dataTreeCheckedNodes: [],
      plotPointPositionStr: '',
      pointAreaWidth: 100,
      dataTreeCheckedNodes: [],
            currentTreeItem: '',
            activityDeptId: ''
      currentTreeItem: '',
      activityDeptId: ''
    }
  },
  components: { publicIndex },
  computed: {
    restList () {
      return [...this.normalPeopleList, ...this.protectedPeopleList, ...this.dangerousPeopleList]
    },
    restCurType () {
      return (item, index) => {
        if (item.type == 7) {
          return `普通群众${index + 1}`
        } else if (item.type == 8) {
          return `保护对象${index + 1}`
        } else if (item.type == 9) {
          return `危险人物${index + 1}`
        }
    },
      }
    }
  },
    components: { publicIndex },
  created () {
    this.$nextTick(() => {
      initMapPosition()
    })
    computed: {
        restList () {
            return [...this.normalPeopleList, ...this.protectedPeopleList, ...this.dangerousPeopleList]
        },
    let userInfo = sessionStorage.getItem("userInfo")
    if (userInfo != null) {
      // 将JSON格式的对象解析为js对象
      this.userInfo = JSON.parse(userInfo)
    }
        restCurType () {
            return (item, index) => {
                if (item.type == 7) {
                    return `普通群众${index + 1}`
                } else if (item.type == 8) {
                    return `保护对象${index + 1}`
                } else if (item.type == 9) {
                    return `危险人物${index + 1}`
                }
            }
        }
    },
    this.getPoliceList()
    created () {
        this.$nextTick(() => {
            initMapPosition()
        })
    // 获取面板列表数据
    this.getSecurityList(this.currentPage, this.pagesize)
        let userInfo = sessionStorage.getItem("userInfo")
        if (userInfo != null) {
            // 将JSON格式的对象解析为js对象
            this.userInfo = JSON.parse(userInfo)
        }
    //摄像头
    this.getEquipmentAll({ type: 1 }, '')
    //警车
    this.getEquipmentAll({ type: 0 }, '')
    //手台-公网
    this.getEquipmentAll({ type: "2-1" }, '')
    //手台-专网
    this.getEquipmentAll({ type: "2-2" }, '')
    //执法记录仪
    this.getEquipmentAll({ type: 3 }, '')
        this.getPoliceList()
    this.$EventBus.$on('activeDeletePolygon', () => {
      this.activeDeletePolygon()
    })
        // 获取面板列表数据
        this.getSecurityList(this.currentPage, this.pagesize)
    this.$EventBus.$on('activeDeleteLineOrPoint', (type) => {
      this.activeDeleteLineOrPoint(type)
    })
        //摄像头
        this.getEquipmentAll({ type: 1 }, '')
        //警车
        this.getEquipmentAll({ type: 0 }, '')
        //手台-公网
        this.getEquipmentAll({ type: "2-1" }, '')
        //手台-专网
        this.getEquipmentAll({ type: "2-2" }, '')
        //执法记录仪
        this.getEquipmentAll({ type: 3 }, '')
    getPoliceStationTree(1).then(res => {
      regionAllData = res.data.data
    })
  },
        this.$EventBus.$on('activeDeletePolygon', () => {
            this.activeDeletePolygon()
        })
  mounted () {
    this.$parent.$parent.resize('400px', true)
  },
        this.$EventBus.$on('activeDeleteLineOrPoint', (type) => {
            this.activeDeleteLineOrPoint(type)
        })
  updated () {
  },
        getPoliceStationTree(1).then(res => {
            regionAllData = res.data.data
        })
    },
  methods: {
    activeDeletePolygon () {
      const securityId = this.showingSecurityId
      getSecurityPlotList(securityId).then(res => {
        // 要素资源
        this.normalPeopleList = res.data.data.filter(item => item.type == 6)
        this.protectedPeopleList = res.data.data.filter(item => item.type == 7)
        this.dangerousPeopleList = res.data.data.filter(item => item.type == 8)
        this.customList = res.data.data.filter(item => item.type == 11)
    mounted () {
        this.$parent.$parent.resize('400px', true)
    },
    updated () {
    },
    methods: {
        activeDeletePolygon () {
            const securityId = this.showingSecurityId
            getSecurityPlotList(securityId).then(res => {
                // 要素资源
                this.normalPeopleList = res.data.data.filter(item => item.type == 6)
                this.protectedPeopleList = res.data.data.filter(item => item.type == 7)
                this.dangerousPeopleList = res.data.data.filter(item => item.type == 8)
                this.customList = res.data.data.filter(item => item.type == 11)
                // 作战标绘
                this.attackArrowList = res.data.data.filter(item => item.type == 1)
                this.doubleArrowList = res.data.data.filter(item => item.type == 2)
                this.tailedAttackArrowList = res.data.data.filter(item => item.type == 3)
                this.fineArrowList = res.data.data.filter(item => item.type == 4)
                this.polygonList = res.data.data.filter(item => item.type == 5)
                this.borkenList = res.data.data.filter(item => item.type == 10)
                this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
            })
        },
        activeDeleteLineOrPoint (type) {
            const securityId = this.showingSecurityId
            if (type == 'policeman') {
                getSecurityPoliceList(securityId).then(res => {
                    this.chooseActivityPoliceManList = res.data.data.filter(item => item.type == 3)
                    this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
                })
            } else {
                getSecurityCarList(securityId).then(res => {
                    this.chooseActivityPoliceCarList = res.data.data.filter(item => item.type == 3)
                    this.chooseActivityLineList = res.data.data.filter(item => item.type == 1)
                    this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
                })
            }
        },
        // 展开活动列表面板
        handleActivityChange (val) {
            if (this.currentTreeItem == val) return
            if (!val) return
            let unfoldingItem = this.activityList.find((item) => {
                if (item.id === val) {
                    return item
                }
            })
            this.currentTreeItem = val
            this.activityListClick(unfoldingItem, val)
        },
        // 获取列表
        getSecurityList (current, size, name) {
            this.loading()
            var deptId = ""
            if (this.userInfo.dept_id != '1123598813738675201') {
                deptId = this.userInfo.dept_id
            }
            this.$EventBus.$emit('mapClearLayer', {
                layerName: 'activityLayers',
                type: 'VectorLayer'
            })
            this.$nextTick(() => {
                this.$refs.PublicIndexPage.closeActivityDetails()
            })
            this.showingSecurityId = ''
            getSecurityList({ current, size, name, deptId }).then(res => {
                this.activityList = res.data.data.records.map(item => {
                    item.startTime = item.startTime.substring(0, 16)
                    item.endTime = item.endTime.substring(0, 16)
                    return item
                })
                this.pagesCount = res.data.data.pages
                this.activityList.forEach(item => {
                    let positionObj = this.convertBillboardPositionDate(item, 'activity')
                    this.$EventBus.$emit('layerPointAdd', {
                        layerName: 'activityLayers',
                        type: "billboard",
                        params: positionObj,
                        incident: this.houseSiteClick
                    })
                })
                setTimeout(() => {
                    loading.close()
                }, 1500)
            })
        },
        /**
         * @description: 点击列表
         * @param {*} item
         * @param {*} index
         * @return {*}
         */
        activityListClick (item, index) {
            item.plotType == 1 && this.$EventBus.$emit('closeMxTileset')
            item.plotType == 3 && this.$EventBus.$emit('highOrLightChange', 'light', 'default')
            // 当前选中的ID
            this.showingSecurityId = item.id
            this.$refs.PublicIndexPage.reloadAll({ id: item.id, deptId: item.deptId, item })
            this.activityDeptId = item.deptId
            // 定位至活动区域
            let positionObj = this.convertBillboardPositionDate(item, 'activity')
            this.$EventBus.$emit('toPosition', {
                siteJd: positionObj.lng,
                siteWd: positionObj.lat,
                siteGd: 1500
            })
            // 遍历实时警力
            this.eachDataTreeCheckedNodes(this.dataTreeCheckedNodes)
        },
        // 点击警车列表定位
        carOrPoliceItemClick (position, type) {
            let lng = ''
            let lat = ''
            if (type == 'point') {
                let positionStr = position.slice(6, position.length - 1)
                lng = Number(positionStr.split(" ")[0])
                lat = Number(positionStr.split(" ")[1])
            } else if (type == 'people') {
                let positionStr = position.slice(11, position.length - 1)
                lng = Number(positionStr.split(",")[0].split(' ')[0])
                lat = Number(positionStr.split(",")[0].split(' ')[1])
            } else if (type == 'polygon' || type == 'line') {
                let itPositionStr = position.slice(11, position.length - 1)
                let positionArr = itPositionStr.split(',')
                positionArr = positionArr.map(item => {
                    return {
                        lng: Number(item.split(' ')[0]),
                        lat: Number(item.split(' ')[1])
                    }
                })
                computerCapacity(positionArr, '')
                return
            } else if (type == 'arrow') {
                let positionStr = position.slice(11, position.length - 1)
                lng = Number(positionStr.split(",")[0].split(' ')[0])
                lat = Number(positionStr.split(",")[0].split(' ')[1])
            }
            this.$EventBus.$emit('toPosition', {
                siteJd: lng,
                siteWd: lat,
                siteGd: 1500
            })
        },
        // 分页页码变化事件
        handleCurrentChange (currentPage) {
            this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
            this.currentPage = currentPage
            this.currentTreeItem = ''
            this.activeActivityIndex = ''
            this.getSecurityList(this.currentPage, this.pagesize)
        },
        loading () {
            loading = this.$loading({
                lock: true,
                text: '拼命加载中',
                spinner: 'el-icon-loading',
                background: 'rgba(0, 0, 0, 0.5)'
            })
        },
        // 生成热力图坐标
        generatePosition (num) {
            let list = []
            for (let i = 0; i < num; i++) {
                let lng = 115.974 + Math.random() * 0.5
                let lat = 28.628 + Math.random() * 0.5
                list.push(new global.DC.Position(lng, lat))
            }
            return list
        },
        // 获取警员列表,生成下拉数据
        getPoliceList () {
            getPoliceList().then(res => {
                res.data.data.forEach(item => {
                    this.policemanOption.push({ value: `${item.id}`, label: `${item.name}` })
                })
            })
        },
        // 树形控件选中事件
        treeCheckClick (e1, e2) {
            // 没有选中就不展示实时图标
            const that = this
            this.$EventBus.$emit('mapRemoveLayer', {
                layerName: 'activeHeatLayer',
                type: 'HeatLayer'
            })
            if (e2.checkedNodes.some(item => item.$treeNodeId == e1.$treeNodeId)) {
                if (this.userInfo.dept_id == '1123598813738675201') {
                    computerCapacity(regionAllData, 'all')
                } else {
                    let arr = regionAllData.find(item => item.id == this.userInfo.dept_id)
                    // 获取图标中心跳转
                    computerCapacity([arr], 'single')
                }
            }
            if (e1.label == '热力图' && e2.checkedKeys.some(item => {
                return item == 777
            })) {
                this.$EventBus.$emit('layerPointAdd', {
                    layerName: 'activeHeatLayer',
                    type: "HeatPoint",
                    layerType: 'HeatLayer',
                    params: {
                        positions: that.generatePosition(2000)
                    }
                })
            } else {
                e2.checkedNodes.forEach(item => {
                    if (item.id != 1 && item.id != 2 && item.id != 3 && item.id != 7 && item.id != 8 && item.id != 9 && item.lng) {
                        if (item.label == '大中型商超') {
                            this.getSearchInfo(this.userInfo.dept_id, '大中型商超', 'supermarket')
                        } if (item.label == '幼儿园') {
                            this.getSearchInfo(this.userInfo.dept_id, '幼儿园', 'kindergarten')
                        } else if (item.label == '政府机关') {
                            this.getSearchInfo(this.userInfo.dept_id, '政府机关', 'Government')
                        } else if (item.label == '机场') {
                            this.getSearchInfo(this.userInfo.dept_id, '机场', 'airport')
                        } else if (item.label == '银行') {
                            this.getSearchInfo(this.userInfo.dept_id, '银行', 'bank')
                        } else if (item.label == '印刷店') {
                            this.getSearchInfo(this.userInfo.dept_id, '印刷店', 'printing')
                        } else if (item.label == '废旧金属收购') {
                            this.getSearchInfo(this.userInfo.dept_id, '废旧金属收购', 'metal')
                        } else if (item.label == '开锁店') {
                            this.getSearchInfo(this.userInfo.dept_id, '开锁店', 'lockpick-shop')
                        } else if (item.label == '酒店') {
                            this.getSearchInfo(this.userInfo.dept_id, '酒店', 'hotel')
                        }
                    }
                })
            }
            this.dataTreeCheckedNodes = e2.checkedNodes
            this.eachDataTreeCheckedNodes(this.dataTreeCheckedNodes)
        },
        //树形控件选中状态改变事件
        treeCheckChange (e1, e2) {
            if (e2 && !e1.children) {
                let iconArr = []
                if (e1.label == '视频监控') {
                    iconArr = cameraList
                } else if (e1.label == '警车') {
                    iconArr = carList
                } else if (e1.label == '公网') {
                    iconArr = talkBackEquipmentPublicList
                } else if (e1.label == '专网') {
                    iconArr = talkBackEquipmentList
                } else if (e1.label == '执法记录仪') {
                    iconArr = policeCarmeraList
                }
            }
        },
        // 遍历树数据实时图标
        eachDataTreeCheckedNodes (data) {
            // 清除定时器
            if (realPoliceTimer != {}) {
                for (let item in realPoliceTimer) {
                    clearInterval(realPoliceTimer[item])
                }
            }
            if (data != []) {
                data.some(item => {
                    return item.label == '视频监控'
                }) ? this.iconImageShowOrHidden('/img/icon/video.png', '/img/icon/video-off.png', cameraList, 'activityCameraLayers') : this.clearLayerIconForMap('activityCameraLayers')
                data.some(item => {
                    return item.label == '警车'
                }) ? this.iconImageShowOrHidden('/img/icon/real-car.png', '/img/icon/real-car-ok.png', carList, 'activityCarLayers') : this.clearLayerIconForMap('activityCarLayers')
                data.some(item => {
                    return item.label == '公网'
                }) ? this.iconImageShowOrHidden('/img/icon/real-public-recorder.png', '/img/icon/real-public-recorder-ok.png', talkBackEquipmentPublicList, 'activityTalkBackEquipmentPublicLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentPublicLayers')
                data.some(item => {
                    return item.label == '专网'
                }) ? this.iconImageShowOrHidden('/img/icon/real-recorder.png', '/img/icon/real-recorder-ok.png', talkBackEquipmentList, 'activityTalkBackEquipmentLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentLayers')
                data.some(item => {
                    return item.label == '执法记录仪'
                }) ? this.iconImageShowOrHidden('/img/icon/real-phone.png', '/img/icon/real-phone-ok.png', policeCarmeraList, 'activityPoliceCameraLayers') : this.clearLayerIconForMap('activityPoliceCameraLayers')
            }
        },
        /**
         * 清除当前图层数据
         * @param {*} layerName 图层名称
         */
        clearLayerIconForMap (layerName) {
            realPoliceTimer[layerName] && clearInterval(realPoliceTimer[layerName])
            this.$EventBus.$emit('mapClearLayer', {
                layerName: layerName,
                type: 'VectorLayer'
            })
        },
        /**
         * 实时图标显示隐藏
         * @param {*} img  图标地址
         * @param {*} data 传入的数据(摄像头,手台等集合数据)
         * @param {*} layerName 选中图层名称
         */
        iconImageShowOrHidden (img, imgOk, data, layerName, isChooseSecurity) {
            if (this.showingSecurityId && !isChooseSecurity) {
                // 实时图标刷新时间间隔
                let refreshTime = 60000
                this.searchRealResources(layerName)
                realPoliceTimer[layerName] = setInterval(() => this.searchRealResources(layerName), refreshTime)
            } else {
                this.$EventBus.$emit('mapRemoveLayer', {
                    layerName: layerName,
                    type: 'VectorLayer'
                })
                if (data.length > 0) {
                    data.forEach(item => {
                        if (item.longitude && item.latitude) {
                            let url = item.clockStatus == 0 ? img : imgOk
                            if (img == '/img/icon/video.png') {
                                url = item.status == 1 ? '/img/icon/video.png' : '/img/icon/video-off.png'
                            }
                            this.$EventBus.$emit('layerPointAdd', {
                                layerName: layerName,
                                type: "billboard",
                                layerType: 'ClusterLayer',
                                params: {
                                    ...item,
                                    lng: item.longitude,
                                    lat: item.latitude,
                                    alt: 1,
                                    url
                                },
                            })
                        }
                    })
                }
            }
        },
        // 定时查找实时警力资源
        searchRealResources (layerName) {
            let type = ''
            if (layerName == 'activityCarLayers') {
                type = 0
            } else if (layerName == 'activityTalkBackEquipmentPublicLayers') {
                type = '2-1'
            } else if (layerName == 'activityTalkBackEquipmentLayers') {
                type = '2-2'
            } else if (layerName == 'activityPoliceCameraLayers') {
                type = 3
            }
            this.getEquipmentAll({ type: type, query: this.showingSecurityId }, layerName)
        },
        // 大小重置
        boxResize (val) {
            this.boxShow = val
            if (!val) {
                let videoList = document.querySelectorAll('.item')
                videoList.forEach(item => {
                    item.classList.add('item-new-width')
                })
                document.querySelector('.video1').classList.add('video1-new-left')
                document.querySelector('.video2').classList.add('video2-new-left')
                document.querySelector('.video3').classList.add('video3-new-left')
                document.querySelector('.video4').classList.add('video4-new-left')
            } else {
                let videoList = document.querySelectorAll('.item')
                videoList.forEach(item => {
                    item.classList.remove('item-new-width')
                })
                document.querySelector('.video1').classList.remove('video1-new-left')
                document.querySelector('.video2').classList.remove('video2-new-left')
                document.querySelector('.video3').classList.remove('video3-new-left')
                document.querySelector('.video4').classList.remove('video4-new-left')
            }
        },
        // 搜索数据地图对应场所
        getSearchInfo (deptId, search, iconType) {
            getSearchInfo(deptId, search).then(res => {
                res.data.data.forEach(item => {
                    let itemData = JSON.parse(item)
                    itemData.result.forEach(item => {
                        this.$EventBus.$emit('layerPointAdd', {
                            layerName: 'activityCameraLayers',
                            type: "billboard",
                            params: {
                                ...item,
                                lng: item.location.lng,
                                lat: item.location.lat,
                                alt: 1,
                                url: `/img/icon/${iconType}.png`
                            },
                        })
                    })
                })
            })
        },
        // 获取面的中心点
        getCenter (str, type) {
            let positionNewArr = []
            if (type == 'line') {
                // 前端保存的面坐标格式
                let positionArr = str.slice(0, str.length - 1).split(';')
                positionArr.forEach(item => {
                    positionNewArr.push([Number(item.split(',')[0]), Number(item.split(',')[1])])
                })
            } else if (type == 'polygon') {
                // 后台获取的面坐标格式
                let itPositionStr = str.slice(11, str.length - 1)
                let positionArr = itPositionStr.split(',')
                positionArr.forEach(item => {
                    positionNewArr.push([Number(item.split(' ')[0]), Number(item.split(' ')[1])])
                })
                positionNewArr.push([Number(positionArr[0].split(' ')[0]), Number(positionArr[0].split(' ')[1])])
            }
            let polygon = this.$turf.polygon([positionNewArr])
            let center = this.$turf.centroid(polygon)
            return [center.geometry.coordinates[0], center.geometry.coordinates[1]]
        },
        // 获取设备列表
        getEquipmentAll (params, layerName) {
            getEquipmentAll({ ...params, deptId: this.userInfo.dept_id }).then(res => {
                if (params.type == 0) {
                    //警车
                    carList = res.data.data
                    if (layerName) {
                        this.iconImageShowOrHidden('/img/icon/real-car.png', '/img/icon/real-car-ok.png', carList, layerName, true)
                    }
                } else if (params.type == 1) {
                    //摄像头
                    cameraList = res.data.data
                } else if (params.type == '2-1') {
                    //公网-手台
                    talkBackEquipmentPublicList = res.data.data
                    if (layerName) {
                        this.iconImageShowOrHidden('/img/icon/real-public-recorder.png', '/img/icon/real-public-recorder-ok.png', talkBackEquipmentPublicList, layerName, true)
                    }
                } else if (params.type == '2-2') {
                    //专网-手台
                    talkBackEquipmentList = res.data.data
                    if (layerName) {
                        this.iconImageShowOrHidden('/img/icon/real-phone.png', '/img/icon/real-phone-ok.png', talkBackEquipmentList, layerName, true)
                    }
                } else {
                    //执法记录仪
                    policeCarmeraList = res.data.data
                    if (layerName) {
                        this.iconImageShowOrHidden('/img/icon/real-recorder.png', '/img/icon/real-recorder-ok.png', policeCarmeraList, layerName, true)
                    }
                }
            })
        },
        // 转换 点 坐标数据
        convertBillboardPositionDate (data, iconName) {
            let positionStr = data.position
            positionStr = data.position.slice(6, positionStr.length - 1)
            let positionArr = positionStr.split(" ")
            let positionObj = {}
            if (iconName == 'activity') {
                positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 0, url: '/img/icon/activity.png' }
            } else if (iconName == 'policeman') {
                positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 0.05, url: '/img/icon/man3.png', data: data }
            } else if (iconName == 'policecar') {
                positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 0.05, url: '/img/icon/car3.png', data: data }
            }
            return positionObj
        },
        // 转换 线面 坐标数据
        convertPolylineOrPolygonPositionDate (data, type) {
            let positionStr = data.slice(11, data.length - 1)
            let positionArr = positionStr.split(',')
            let positionNewArr = ''
            positionArr.forEach(item => {
                if (type == 1) {
                    positionNewArr += item.split(' ')[0] + ',' + item.split(' ')[1] + ';'
                } else {
                    positionNewArr += item.split(' ')[0] + ',' + item.split(' ')[1] + ',' + 0 + ';'
                }
            })
            return positionNewArr
        },
        cleartAllTimer () {
            if (realPoliceTimer != {}) {
                for (let item in realPoliceTimer) {
                    clearInterval(realPoliceTimer[item])
                }
            }
        },
        activeSearch (e) {
            this.currentPage = 1
            this.getSecurityList(this.currentPage, this.pagesize, e)
        }
    },
    watch: {
        policeChooseVisible (val) {
            if (val) {
                this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
            }
        },
        policeChooseCarVisible (val) {
            if (val) {
                this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
            }
        }
    },
    beforeDestroy () {
        // 清除定时器
        this.cleartAllTimer()
    },
    destroyed () {
        loading && loading.close()
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activityLayers',
            type: 'VectorLayer'
        })
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activeHeatLayer',
            type: 'HeatLayer'
        })
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activityCameraLayers',
            type: 'VectorLayer'
        })
        // 警车
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activityCarLayers',
            type: 'VectorLayer'
        })
        // 手台-公网
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activityTalkBackEquipmentPublicLayers',
            type: 'VectorLayer'
        })
        // 手台-专网
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activityTalkBackEquipmentLayers',
            type: 'VectorLayer'
        })
        // 执法记录仪
        this.$EventBus.$emit('mapRemoveLayer', {
            layerName: 'activityPoliceCameraLayers',
            type: 'VectorLayer'
        })
        global.viewer.scene.globe.depthTestAgainstTerrain = false
        // 作战标绘
        this.attackArrowList = res.data.data.filter(item => item.type == 1)
        this.doubleArrowList = res.data.data.filter(item => item.type == 2)
        this.tailedAttackArrowList = res.data.data.filter(item => item.type == 3)
        this.fineArrowList = res.data.data.filter(item => item.type == 4)
        this.polygonList = res.data.data.filter(item => item.type == 5)
        this.borkenList = res.data.data.filter(item => item.type == 10)
        this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
        this.$parent.$parent.resize('0px')
      })
    },
        this.$EventBus.$off('activeDeletePolygon')
        this.$EventBus.$off('activeDeleteLineOrPoint')
    activeDeleteLineOrPoint (type) {
      const securityId = this.showingSecurityId
      if (type == 'policeman') {
        getSecurityPoliceList(securityId).then(res => {
          this.chooseActivityPoliceManList = res.data.data.filter(item => item.type == 3)
          this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
        })
      } else {
        getSecurityCarList(securityId).then(res => {
          this.chooseActivityPoliceCarList = res.data.data.filter(item => item.type == 3)
          this.chooseActivityLineList = res.data.data.filter(item => item.type == 1)
          this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
        })
      }
    },
    // 展开活动列表面板
    handleActivityChange (val) {
      if (this.currentTreeItem == val) return
      if (!val) return
      let unfoldingItem = this.activityList.find((item) => {
        if (item.id === val) {
          return item
        }
      })
      this.currentTreeItem = val
      this.activityListClick(unfoldingItem, val)
    },
    // 获取列表
    getSecurityList (current, size, name) {
      this.loading()
      var deptId = ""
      if (this.userInfo.dept_id != '1123598813738675201') {
        deptId = this.userInfo.dept_id
      }
      this.$EventBus.$emit('mapClearLayer', {
        layerName: 'activityLayers',
        type: 'VectorLayer'
      })
      this.$nextTick(() => {
        this.$refs.PublicIndexPage.closeActivityDetails()
      })
      this.showingSecurityId = ''
      getSecurityList({ current, size, name, deptId }).then(res => {
        this.activityList = res.data.data.records.map(item => {
          item.startTime = item.startTime.substring(0, 16)
          item.endTime = item.endTime.substring(0, 16)
          return item
        })
        this.pagesCount = res.data.data.pages
        this.activityList.forEach(item => {
          let positionObj = this.convertBillboardPositionDate(item, 'activity')
          this.$EventBus.$emit('layerPointAdd', {
            layerName: 'activityLayers',
            type: "billboard",
            params: positionObj,
            incident: this.houseSiteClick
          })
        })
        setTimeout(() => {
          loading.close()
        }, 1500)
      })
    },
    /**
     * @description: 点击列表
     * @param {*} item
     * @param {*} index
     * @return {*}
     */
    activityListClick (item, index) {
      item.plotType == 1 && this.$EventBus.$emit('closeMxTileset')
      item.plotType == 3 && this.$EventBus.$emit('highOrLightChange', 'light', 'default')
      // 当前选中的ID
      this.showingSecurityId = item.id
      this.$refs.PublicIndexPage.reloadAll({ id: item.id, deptId: item.deptId, item })
      this.activityDeptId = item.deptId
      // 定位至活动区域
      let positionObj = this.convertBillboardPositionDate(item, 'activity')
      this.$EventBus.$emit('toPosition', {
        siteJd: positionObj.lng,
        siteWd: positionObj.lat,
        siteGd: 1500
      })
      // 遍历实时警力
      this.eachDataTreeCheckedNodes(this.dataTreeCheckedNodes)
    },
    // 点击警车列表定位
    carOrPoliceItemClick (position, type) {
      let lng = ''
      let lat = ''
      if (type == 'point') {
        let positionStr = position.slice(6, position.length - 1)
        lng = Number(positionStr.split(" ")[0])
        lat = Number(positionStr.split(" ")[1])
      } else if (type == 'people') {
        let positionStr = position.slice(11, position.length - 1)
        lng = Number(positionStr.split(",")[0].split(' ')[0])
        lat = Number(positionStr.split(",")[0].split(' ')[1])
      } else if (type == 'polygon' || type == 'line') {
        let itPositionStr = position.slice(11, position.length - 1)
        let positionArr = itPositionStr.split(',')
        positionArr = positionArr.map(item => {
          return {
            lng: Number(item.split(' ')[0]),
            lat: Number(item.split(' ')[1])
          }
        })
        computerCapacity(positionArr, '')
        return
      } else if (type == 'arrow') {
        let positionStr = position.slice(11, position.length - 1)
        lng = Number(positionStr.split(",")[0].split(' ')[0])
        lat = Number(positionStr.split(",")[0].split(' ')[1])
      }
      this.$EventBus.$emit('toPosition', {
        siteJd: lng,
        siteWd: lat,
        siteGd: 1500
      })
    },
    // 分页页码变化事件
    handleCurrentChange (currentPage) {
      this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
      this.currentPage = currentPage
      this.currentTreeItem = ''
      this.activeActivityIndex = ''
      this.getSecurityList(this.currentPage, this.pagesize)
    },
    loading () {
      loading = this.$loading({
        lock: true,
        text: '拼命加载中',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.5)'
      })
    },
    // 生成热力图坐标
    generatePosition (num) {
      let list = []
      for (let i = 0; i < num; i++) {
        let lng = 115.974 + Math.random() * 0.5
        let lat = 28.628 + Math.random() * 0.5
        list.push(new global.DC.Position(lng, lat))
      }
      return list
    },
    // 获取警员列表,生成下拉数据
    getPoliceList () {
      getPoliceList().then(res => {
        res.data.data.forEach(item => {
          this.policemanOption.push({ value: `${item.id}`, label: `${item.name}` })
        })
      })
    },
    // 树形控件选中事件
    treeCheckClick (e1, e2) {
      // 没有选中就不展示实时图标
      const that = this
      this.$EventBus.$emit('mapRemoveLayer', {
        layerName: 'activeHeatLayer',
        type: 'HeatLayer'
      })
      if (e2.checkedNodes.some(item => item.$treeNodeId == e1.$treeNodeId)) {
        if (this.userInfo.dept_id == '1123598813738675201') {
          computerCapacity(regionAllData, 'all')
        } else {
          let arr = regionAllData.find(item => item.id == this.userInfo.dept_id)
          // 获取图标中心跳转
          computerCapacity([arr], 'single')
        }
      }
      if (e1.label == '热力图' && e2.checkedKeys.some(item => {
        return item == 777
      })) {
        this.$EventBus.$emit('layerPointAdd', {
          layerName: 'activeHeatLayer',
          type: "HeatPoint",
          layerType: 'HeatLayer',
          params: {
            positions: that.generatePosition(2000)
          }
        })
      } else {
        e2.checkedNodes.forEach(item => {
          if (item.id != 1 && item.id != 2 && item.id != 3 && item.id != 7 && item.id != 8 && item.id != 9 && item.lng) {
            if (item.label == '大中型商超') {
              this.getSearchInfo(this.userInfo.dept_id, '大中型商超', 'supermarket')
            } if (item.label == '幼儿园') {
              this.getSearchInfo(this.userInfo.dept_id, '幼儿园', 'kindergarten')
            } else if (item.label == '政府机关') {
              this.getSearchInfo(this.userInfo.dept_id, '政府机关', 'Government')
            } else if (item.label == '机场') {
              this.getSearchInfo(this.userInfo.dept_id, '机场', 'airport')
            } else if (item.label == '银行') {
              this.getSearchInfo(this.userInfo.dept_id, '银行', 'bank')
            } else if (item.label == '印刷店') {
              this.getSearchInfo(this.userInfo.dept_id, '印刷店', 'printing')
            } else if (item.label == '废旧金属收购') {
              this.getSearchInfo(this.userInfo.dept_id, '废旧金属收购', 'metal')
            } else if (item.label == '开锁店') {
              this.getSearchInfo(this.userInfo.dept_id, '开锁店', 'lockpick-shop')
            } else if (item.label == '酒店') {
              this.getSearchInfo(this.userInfo.dept_id, '酒店', 'hotel')
            }
          }
        })
      }
      this.dataTreeCheckedNodes = e2.checkedNodes
      this.eachDataTreeCheckedNodes(this.dataTreeCheckedNodes)
    },
    //树形控件选中状态改变事件
    treeCheckChange (e1, e2) {
      if (e2 && !e1.children) {
        let iconArr = []
        if (e1.label == '视频监控') {
          iconArr = cameraList
        } else if (e1.label == '警车') {
          iconArr = carList
        } else if (e1.label == '公网') {
          iconArr = talkBackEquipmentPublicList
        } else if (e1.label == '专网') {
          iconArr = talkBackEquipmentList
        } else if (e1.label == '执法记录仪') {
          iconArr = policeCarmeraList
        }
      }
    },
    // 遍历树数据实时图标
    eachDataTreeCheckedNodes (data) {
      // 清除定时器
      if (realPoliceTimer != {}) {
        for (let item in realPoliceTimer) {
          clearInterval(realPoliceTimer[item])
        }
      }
      if (data != []) {
        data.some(item => {
          return item.label == '视频监控'
        }) ? this.iconImageShowOrHidden('/img/icon/video.png', '/img/icon/video-off.png', cameraList, 'activityCameraLayers') : this.clearLayerIconForMap('activityCameraLayers')
        data.some(item => {
          return item.label == '警车'
        }) ? this.iconImageShowOrHidden('/img/icon/real-car.png', '/img/icon/real-car-ok.png', carList, 'activityCarLayers') : this.clearLayerIconForMap('activityCarLayers')
        data.some(item => {
          return item.label == '公网'
        }) ? this.iconImageShowOrHidden('/img/icon/real-public-recorder.png', '/img/icon/real-public-recorder-ok.png', talkBackEquipmentPublicList, 'activityTalkBackEquipmentPublicLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentPublicLayers')
        data.some(item => {
          return item.label == '专网'
        }) ? this.iconImageShowOrHidden('/img/icon/real-recorder.png', '/img/icon/real-recorder-ok.png', talkBackEquipmentList, 'activityTalkBackEquipmentLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentLayers')
        data.some(item => {
          return item.label == '执法记录仪'
        }) ? this.iconImageShowOrHidden('/img/icon/real-phone.png', '/img/icon/real-phone-ok.png', policeCarmeraList, 'activityPoliceCameraLayers') : this.clearLayerIconForMap('activityPoliceCameraLayers')
      }
    },
    /**
     * 清除当前图层数据
     * @param {*} layerName 图层名称
     */
    clearLayerIconForMap (layerName) {
      realPoliceTimer[layerName] && clearInterval(realPoliceTimer[layerName])
      this.$EventBus.$emit('mapClearLayer', {
        layerName: layerName,
        type: 'VectorLayer'
      })
    },
    /**
     * 实时图标显示隐藏
     * @param {*} img  图标地址
     * @param {*} data 传入的数据(摄像头,手台等集合数据)
     * @param {*} layerName 选中图层名称
     */
    iconImageShowOrHidden (img, imgOk, data, layerName, isChooseSecurity) {
      if (this.showingSecurityId && !isChooseSecurity) {
        // 实时图标刷新时间间隔
        let refreshTime = 60000
        this.searchRealResources(layerName)
        realPoliceTimer[layerName] = setInterval(() => this.searchRealResources(layerName), refreshTime)
      } else {
        this.$EventBus.$emit('mapRemoveLayer', {
          layerName: layerName,
          type: 'VectorLayer'
        })
        if (data.length > 0) {
          data.forEach(item => {
            if (item.longitude && item.latitude) {
              let url = item.clockStatus == 0 ? img : imgOk
              if (img == '/img/icon/video.png') {
                url = item.status == 1 ? '/img/icon/video.png' : '/img/icon/video-off.png'
              }
              this.$EventBus.$emit('layerPointAdd', {
                layerName: layerName,
                type: "billboard",
                layerType: 'ClusterLayer',
                params: {
                  ...item,
                  lng: item.longitude,
                  lat: item.latitude,
                  alt: 1,
                  url
                },
              })
            }
          })
        }
      }
    },
    // 定时查找实时警力资源
    searchRealResources (layerName) {
      let type = ''
      if (layerName == 'activityCarLayers') {
        type = 0
      } else if (layerName == 'activityTalkBackEquipmentPublicLayers') {
        type = '2-1'
      } else if (layerName == 'activityTalkBackEquipmentLayers') {
        type = '2-2'
      } else if (layerName == 'activityPoliceCameraLayers') {
        type = 3
      }
      this.getEquipmentAll({ type: type, query: this.showingSecurityId }, layerName)
    },
    // 大小重置
    boxResize (val) {
      this.boxShow = val
      if (!val) {
        let videoList = document.querySelectorAll('.item')
        videoList.forEach(item => {
          item.classList.add('item-new-width')
        })
        document.querySelector('.video1').classList.add('video1-new-left')
        document.querySelector('.video2').classList.add('video2-new-left')
        document.querySelector('.video3').classList.add('video3-new-left')
        document.querySelector('.video4').classList.add('video4-new-left')
      } else {
        let videoList = document.querySelectorAll('.item')
        videoList.forEach(item => {
          item.classList.remove('item-new-width')
        })
        document.querySelector('.video1').classList.remove('video1-new-left')
        document.querySelector('.video2').classList.remove('video2-new-left')
        document.querySelector('.video3').classList.remove('video3-new-left')
        document.querySelector('.video4').classList.remove('video4-new-left')
      }
    },
    // 搜索数据地图对应场所
    getSearchInfo (deptId, search, iconType) {
      getSearchInfo(deptId, search).then(res => {
        res.data.data.forEach(item => {
          let itemData = JSON.parse(item)
          itemData.result.forEach(item => {
            this.$EventBus.$emit('layerPointAdd', {
              layerName: 'activityCameraLayers',
              type: "billboard",
              params: {
                ...item,
                lng: item.location.lng,
                lat: item.location.lat,
                alt: 1,
                url: `/img/icon/${iconType}.png`
              },
            })
          })
        })
      })
    },
    // 获取面的中心点
    getCenter (str, type) {
      let positionNewArr = []
      if (type == 'line') {
        // 前端保存的面坐标格式
        let positionArr = str.slice(0, str.length - 1).split(';')
        positionArr.forEach(item => {
          positionNewArr.push([Number(item.split(',')[0]), Number(item.split(',')[1])])
        })
      } else if (type == 'polygon') {
        // 后台获取的面坐标格式
        let itPositionStr = str.slice(11, str.length - 1)
        let positionArr = itPositionStr.split(',')
        positionArr.forEach(item => {
          positionNewArr.push([Number(item.split(' ')[0]), Number(item.split(' ')[1])])
        })
        positionNewArr.push([Number(positionArr[0].split(' ')[0]), Number(positionArr[0].split(' ')[1])])
      }
      let polygon = this.$turf.polygon([positionNewArr])
      let center = this.$turf.centroid(polygon)
      return [center.geometry.coordinates[0], center.geometry.coordinates[1]]
    },
    // 获取设备列表
    getEquipmentAll (params, layerName) {
      getEquipmentAll({ ...params, deptId: this.userInfo.dept_id }).then(res => {
        if (params.type == 0) {
          //警车
          carList = res.data.data
          if (layerName) {
            this.iconImageShowOrHidden('/img/icon/real-car.png', '/img/icon/real-car-ok.png', carList, layerName, true)
          }
        } else if (params.type == 1) {
          //摄像头
          cameraList = res.data.data
        } else if (params.type == '2-1') {
          //公网-手台
          talkBackEquipmentPublicList = res.data.data
          if (layerName) {
            this.iconImageShowOrHidden('/img/icon/real-public-recorder.png', '/img/icon/real-public-recorder-ok.png', talkBackEquipmentPublicList, layerName, true)
          }
        } else if (params.type == '2-2') {
          //专网-手台
          talkBackEquipmentList = res.data.data
          if (layerName) {
            this.iconImageShowOrHidden('/img/icon/real-phone.png', '/img/icon/real-phone-ok.png', talkBackEquipmentList, layerName, true)
          }
        } else {
          //执法记录仪
          policeCarmeraList = res.data.data
          if (layerName) {
            this.iconImageShowOrHidden('/img/icon/real-recorder.png', '/img/icon/real-recorder-ok.png', policeCarmeraList, layerName, true)
          }
        }
      })
    },
    // 转换 点 坐标数据
    convertBillboardPositionDate (data, iconName) {
      let positionStr = data.position
      positionStr = data.position.slice(6, positionStr.length - 1)
      let positionArr = positionStr.split(" ")
      let positionObj = {}
      if (iconName == 'activity') {
        positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 0, url: '/img/icon/activity.png' }
      } else if (iconName == 'policeman') {
        positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 0.05, url: '/img/icon/man3.png', data: data }
      } else if (iconName == 'policecar') {
        positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 0.05, url: '/img/icon/car3.png', data: data }
      }
      return positionObj
    },
    // 转换 线面 坐标数据
    convertPolylineOrPolygonPositionDate (data, type) {
      let positionStr = data.slice(11, data.length - 1)
      let positionArr = positionStr.split(',')
      let positionNewArr = ''
      positionArr.forEach(item => {
        if (type == 1) {
          positionNewArr += item.split(' ')[0] + ',' + item.split(' ')[1] + ';'
        } else {
          positionNewArr += item.split(' ')[0] + ',' + item.split(' ')[1] + ',' + 0 + ';'
        }
      })
      return positionNewArr
    },
    cleartAllTimer () {
      if (realPoliceTimer != {}) {
        for (let item in realPoliceTimer) {
          clearInterval(realPoliceTimer[item])
        }
      }
    },
    activeSearch (e) {
      this.currentPage = 1
      this.getSecurityList(this.currentPage, this.pagesize, e)
    }
  },
  watch: {
    policeChooseVisible (val) {
      if (val) {
        this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
      }
    },
    policeChooseCarVisible (val) {
      if (val) {
        this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
      }
    }
  },
  beforeDestroy () {
    // 清除定时器
    this.cleartAllTimer()
  },
  destroyed () {
    loading && loading.close()
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activityLayers',
      type: 'VectorLayer'
    })
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activeHeatLayer',
      type: 'HeatLayer'
    })
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activityCameraLayers',
      type: 'VectorLayer'
    })
    // 警车
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activityCarLayers',
      type: 'VectorLayer'
    })
    // 手台-公网
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activityTalkBackEquipmentPublicLayers',
      type: 'VectorLayer'
    })
    // 手台-专网
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activityTalkBackEquipmentLayers',
      type: 'VectorLayer'
    })
    // 执法记录仪
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'activityPoliceCameraLayers',
      type: 'VectorLayer'
    })
    global.viewer.scene.globe.depthTestAgainstTerrain = false
    this.$store.commit('SET_ACTIVITYPOLICEPOPUP', false)
    this.$parent.$parent.resize('0px')
    this.$EventBus.$off('activeDeletePolygon')
    this.$EventBus.$off('activeDeleteLineOrPoint')
  }
}
</script>
<style scoped lang="scss">
.container {
    height: 100%;
    width: 100%;
  height: 100%;
  width: 100%;
  position: relative;
  &-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    color: #fff;
    background: $bg-color;
    &-content {
        position: relative;
    .title {
      height: 40px;
      line-height: 40px;
      font-weight: 700;
      font-size: 24px;
      letter-spacing: 20px;
    }
    .search-box {
      padding: 0 10px;
      &>div:first-child {
        margin-top: 0;
      }
      &>div {
        margin-top: 10px;
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        color: #fff;
        background: $bg-color;
        align-items: center;
        justify-content: space-between;
        .title {
            height: 40px;
            line-height: 40px;
            font-weight: 700;
            font-size: 24px;
            letter-spacing: 20px;
        .category {
          width: 88px;
          font-size: 16px;
        }
        .search-box {
            padding: 0 10px;
        .category-value {
          flex: 1;
        }
            &>div:first-child {
                margin-top: 0;
        .search-activity {
          position: relative;
          .clear {
            position: absolute;
            top: 0;
            right: 70px;
            cursor: pointer;
            img {
              width: 12px;
              height: 12px;
              margin-top: 8px;
            }
          }
        }
        input {
          width: 209px;
          height: 32px;
          font-size: 12px;
          text-indent: 1em;
          color: #ffffff;
          background-color: rgba(24, 79, 202, 0.6);
          border: 1px solid rgb(0, 92, 169);
          border-radius: 5px 0 0 5px;
        }
        input:focus {
          outline: none;
        }
        input::-webkit-input-placeholder {
          color: rgba(238, 238, 238, 0.7);
        }
        button {
          font-size: 20px;
          font-weight: 700;
          width: 60px;
          height: 32px;
          background-color: $table-body-tr-2n-color;
          color: #fff;
          border: 1px solid rgb(0, 92, 169);
          cursor: pointer;
          border-radius: 0 5px 5px 0;
          vertical-align: top;
        }
        button:active {
          background-color: $table-body-tr-2n-color;
          border: 1px solid rgb(0, 92, 169);
          color: rgb(189, 185, 185) !important;
        }
      }
    }
    .result-content {
      flex: 1;
      margin-top: 8px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      .table-box {
        flex: 1;
        overflow-x: hidden;
        overflow-y: auto;
        .row-box {
          margin: 10px;
          padding: 10px;
          cursor: pointer;
          font-size: 14px;
          border-radius: 8px;
          .row-content {
            &>div {
                margin-top: 10px;
                display: flex;
                align-items: center;
                justify-content: space-between;
              display: flex;
              line-height: 28px;
                .category {
                    width: 88px;
                    font-size: 16px;
                }
              .category {
                width: 88px;
              }
                .category-value {
                    flex: 1;
                }
                .search-activity {
                    position: relative;
                    .clear {
                        position: absolute;
                        top: 0;
                        right: 70px;
                        cursor: pointer;
                        img {
                            width: 12px;
                            height: 12px;
                            margin-top: 8px;
                        }
                    }
                }
                input {
                    width: 209px;
                    height: 32px;
                    font-size: 12px;
                    text-indent: 1em;
                    color: #ffffff;
                    background-color: rgba(24, 79, 202, 0.6);
                    border: 1px solid rgb(0, 92, 169);
                    border-radius: 5px 0 0 5px;
                }
                input:focus {
                    outline: none;
                }
                input::-webkit-input-placeholder {
                    color: rgba(238, 238, 238, 0.7);
                }
                button {
                    font-size: 20px;
                    font-weight: 700;
                    width: 60px;
                    height: 32px;
                    background-color: $table-body-tr-2n-color;
                    color: #fff;
                    border: 1px solid rgb(0, 92, 169);
                    cursor: pointer;
                    border-radius: 0 5px 5px 0;
                    vertical-align: top;
                }
                button:active {
                    background-color: $table-body-tr-2n-color;
                    border: 1px solid rgb(0, 92, 169);
                    color: rgb(189, 185, 185) !important;
                }
            }
        }
        .result-content {
            flex: 1;
            margin-top: 8px;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            .table-box {
              .category-value {
                flex: 1;
                overflow-x: hidden;
                overflow-y: auto;
                .row-box {
                    margin: 10px;
                    padding: 10px;
                    cursor: pointer;
                    font-size: 14px;
                    border-radius: 8px;
                    .row-content {
                        &>div {
                            display: flex;
                            line-height: 28px;
                            .category {
                                width: 88px;
                            }
                            .category-value {
                                flex: 1;
                                display: flex;
                                justify-content: flex-start;
                                flex-wrap: wrap;
                            }
                        }
                    }
                    &:nth-child(2n) {
                        background: $table-body-tr-2n-color;
                    }
                    &:nth-child(2n-1) {
                        background: $table-body-tr-n-color;
                    }
                }
                .row-box:hover {
                    background-color: rgba(29, 92, 228, 0.7) !important;
                }
                .row-box.on {
                    background-color: rgba(29, 92, 228, 0.7) !important;
                }
                :deep(.el-dialog) {
                    margin-right: 0px;
                }
                .tableClass {
                    margin: 0 auto;
                    width: 400px;
                    // height: 400px;
                    border-collapse: collapse;
                }
                .tableClass td {
                    width: 300px;
                }
            }
            .pages {
                height: 40px;
                display: flex;
                align-items: center;
                justify-content: center;
                justify-content: flex-start;
                flex-wrap: wrap;
              }
            }
        }
    }
          }
    .second-container {
        position: absolute;
        top: 10px;
          &:nth-child(2n) {
            background: $table-body-tr-2n-color;
          }
          &:nth-child(2n-1) {
            background: $table-body-tr-n-color;
          }
        }
        .row-box:hover {
          background-color: rgba(29, 92, 228, 0.7) !important;
        }
        .row-box.on {
          background-color: rgba(29, 92, 228, 0.7) !important;
        }
        :deep(.el-dialog) {
          margin-right: 0px;
        }
        .tableClass {
          margin: 0 auto;
          width: 400px;
          // height: 400px;
          border-collapse: collapse;
        }
        .tableClass td {
          width: 300px;
        }
      }
      .pages {
        height: 40px;
        display: flex;
        flex-direction: column;
        width: 240px;
        background: $bg-color;
        align-items: center;
        justify-content: center;
      }
    }
  }
        :deep(.el-tree) {
            background: transparent;
        }
  .second-container {
    position: absolute;
    top: 10px;
    display: flex;
    flex-direction: column;
    width: 240px;
    background: $bg-color;
        :deep(.el-tree-node__content) {
            background: transparent;
        }
        :deep(.el-tree-node) {
            background: transparent;
            color: #fff;
        }
    :deep(.el-tree) {
      background: transparent;
    }
    .second-container.spread {
        left: 444px;
    :deep(.el-tree-node__content) {
      background: transparent;
    }
    .second-container.take-back {
        left: 10px;
    :deep(.el-tree-node) {
      background: transparent;
      color: #fff;
    }
  }
    .item-new-width {
        width: 25vw;
    }
  .second-container.spread {
    left: 444px;
  }
  .second-container.take-back {
    left: 10px;
  }
  .item-new-width {
    width: 25vw;
  }
}
::v-deep(.collapse-item-box) {
    background: #85A5FF;
  background: #85A5FF;
    .collapse-item-box-child {
        background: #597EF7;
    }
  .collapse-item-box-child {
    background: #597EF7;
  }
    .collapse-item-box-child-child {
        background: #2F54EB;
    }
  .collapse-item-box-child-child {
    background: #2F54EB;
  }
}
</style>
src/views/home/components/bottomContainer.vue
@@ -10,7 +10,7 @@
-->
<template>
  <div class="container">
    <div class="box">
    <!-- <div class="box">
      <div class="header">
        <div class="bottom-title">警情动态</div>
        <div class="timeTab" v-show="historytype">
@@ -62,8 +62,7 @@
          </li>
        </ul>
        <!-- <vue-seamless-scroll v-if="policeSituationRealtimeArr.length > 0" :data="policeSituationRealtimeArr" class="warp" :class-option="classOption"> -->
        <div v-if="policeSituationRealtimeArr.length > 0" :data="policeSituationRealtimeArr" class="warp"
         <div v-if="policeSituationRealtimeArr.length > 0" :data="policeSituationRealtimeArr" class="warp"
          :class-option="classOption">
          <el-carousel indicator-position="none" direction="vertical" @change="changeAlarm">
            <el-carousel-item v-for="item in alarmPageCount" :key="item">
@@ -86,9 +85,6 @@
            </el-carousel-item>
          </el-carousel>
        </div>
        <!-- </vue-seamless-scroll> -->
        <div class="warp no-data" v-else>暂无警情数据</div>
      </div>
@@ -118,7 +114,7 @@
            :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination>
        </div>
      </div>
    </div>
    </div> -->
    <svg class="border-svg">
      <defs>
@@ -590,7 +586,7 @@
  position: relative;
  height: 100%;
  width: 100%;
  background-image: url(/img/box/bottom-box.png);
  // background-image: url(/img/box/bottom-box.png);
  background-size: 100% 100%;
  background-repeat: no-repeat;
src/views/home/components/rightContainer.vue
@@ -1,6 +1,6 @@
<template>
  <div class="container" ref="Container">
    <div class="case-box" ref="caseBox">
    <!-- <div class="case-box" ref="caseBox">
      <div class="box">
        <div class="title" ref="alertBoxTitle">
          <div>值班信息(当日)</div>
@@ -45,9 +45,9 @@
          <animate attributeName="stroke-dasharray" from="0, 1442" to="1442, 0" dur="8s" repeatCount="indefinite" />
        </use>
      </svg>
    </div>
    </div> -->
    <div class="alert-box" ref="alertBox ">
    <!-- <div class="alert-box" ref="alertBox ">
      <div class="box">
        <div class="title">
          警情统计
@@ -81,7 +81,7 @@
          <animate attributeName="stroke-dasharray" from="0, 1442" to="1442, 0" dur="8s" repeatCount="indefinite" />
        </use>
      </svg>
    </div>
    </div> -->
    <!-- <div class="alert-box" ref="alertBox">
            <div class="title" ref="alertBoxTitle">
@@ -111,7 +111,7 @@
            </div>
        </div>-->
    <div class="crowd-box" ref="crowdBox">
    <!-- <div class="crowd-box" ref="crowdBox">
      <div class="box">
        <div class="title">现有设备</div>
        <el-main v-loading="equipmentEchartsLoading" element-loading-text="拼命加载中"
@@ -135,7 +135,7 @@
          <animate attributeName="stroke-dasharray" from="0, 1442" to="1442, 0" dur="8s" repeatCount="indefinite" />
        </use>
      </svg>
    </div>
    </div> -->
  </div>
</template>
src/views/home/index.vue
@@ -25,12 +25,11 @@
    <scheduling-list ref="schedulingList"></scheduling-list>
    <div class="center-container" :class="{ 'show-home-center': !isShowHomeContent }">
    <!-- <div class="center-container" :class="{ 'show-home-center': !isShowHomeContent }">
      <div class="layers-control-btn area">
        <el-checkbox v-model="areaPolygonLayerShow" @change="areaPolygonChange">辖区</el-checkbox>
      </div>
      <!-- <div class="layers-control-btn house">     <el-checkbox v-model="houseLayerShow" @change="houseChange">小区</el-checkbox> </div> -->
      <div class="layers-control-btn car">
       <div class="layers-control-btn car">
        <el-checkbox v-model="carLayerShow" @change="carChange">警车</el-checkbox>
      </div>
      <div class="layers-control-btn phone">
@@ -45,14 +44,13 @@
        <el-checkbox v-model="bWCameraLayerShow" @change="bWCameraChange">执法记录仪</el-checkbox>
      </div>
      <!-- <div class="layers-control-btn moitor">    <el-checkbox v-model="monitoringLayerShow" @change="monitoringChange">监控</el-checkbox>      </div> -->
      <div class="layers-control-btn panorama">
       <div class="layers-control-btn panorama">
        <el-checkbox v-model="panoramaLayerShow" @change="panoramaChange">全景</el-checkbox>
      </div>
      <div class="layers-control-btn police-situation">
        <el-checkbox v-model="policeSituationLayerShow" @change="policeSituationChange">警情</el-checkbox>
      </div>
    </div>
    </div> -->
    <div v-show="isShowHomeContent" ref="RegionSelect" style="left: 0;" class="region-select">
      <map-select class="map-select" @selectCheck="policeStationSelect" :checkValue="policeStationCheckValue"
src/views/house/index.vue
@@ -142,15 +142,15 @@
        <div class="nav-tab" ref="navTabBox">
          <div class="nav" :class="navType == 0 ? 'choosed' : ''" @click="navClick" data-type="0">基本信息</div>
          <div class="nav" :class="navType == 1 ? 'choosed' : ''" @click="navClick" data-type="1">报警信息</div>
          <!-- <div class="nav" :class="navType == 1 ? 'choosed' : ''" @click="navClick" data-type="1">报警信息</div> -->
        </div>
        <div class="base-info" v-show="navType == 0">
          <div class="sub-nav-list">
            <div class="sub-nav" :class="{ on: subNavType == 1 }" @click="switchSubNav(1)">楼栋</div>
            <div class="sub-nav" :class="{ on: subNavType == 2 }" @click="switchSubNav(2)">出入口</div>
            <div class="sub-nav" :class="{ on: subNavType == 3 }" @click="switchSubNav(3)">停车场</div>
            <div class="sub-nav" :class="{ on: subNavType == 4 }" @click="switchSubNav(4)">商业</div>
            <!-- <div class="sub-nav" :class="{ on: subNavType == 2 }" @click="switchSubNav(2)">出入口</div> -->
            <!-- <div class="sub-nav" :class="{ on: subNavType == 3 }" @click="switchSubNav(3)">停车场</div> -->
            <!-- <div class="sub-nav" :class="{ on: subNavType == 4 }" @click="switchSubNav(4)">商业</div> -->
          </div>
          <div class="floor-content" v-show="subNavType == 1">
@@ -1184,7 +1184,7 @@
      // 原来 361100  临时361102
      this.getSearchExtensivelyBgAoiDeepdata(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        this.$route.query.id,
        "1|3"
      )
@@ -1206,7 +1206,7 @@
        // 大搜之搜索面详细数据(停车场出入口商场)--默认万达华府
        this.getSearchExtensivelyBgAoiDeepdata(
          "81503dad589f42bf9a9e5ea5e017f329",
          "361100",
          "361102",
          villageId,
          "1|3"
        )
@@ -1596,7 +1596,7 @@
      this.getSearchExtensivelyBgAoiDeepdata(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        current.id,
        "1|3"
      )
@@ -1815,7 +1815,7 @@
          this.pictLoading = true
          this.isShowHouseBox = true
        }
        if (res.data.result != []) {
        if (res && res.data && res.data.result && Array.isArray(res.data.result) && res.data.result.length > 0) {
          let houseUintList = res.data.result[0]
          this.unitAllArr = houseUintList
          // 林家小区小区下只有楼栋情况
@@ -2032,7 +2032,7 @@
        //     sitePitch: -60,
        // })
        this.$EventBus.$emit("toPosition", {
          ...item,
          ... ,
          siteJd: Number(item.siteJd),
          siteWd: Number(item.siteWd) - 0.0021,
          siteGd: 240,
@@ -2058,7 +2058,7 @@
      // 楼栋单元楼层户室查询-大搜
      this.getUnitHousesData(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        item.build_uid,
        "1|3",
        buildId)
@@ -2726,7 +2726,7 @@
        let bgId = res.data.data.properties.bg_buildid
        getSearchExtensively(
          "81503dad589f42bf9a9e5ea5e017f329",
          "361100",
          "361102",
          "",
          bgId
        ).then((res) => {
src/views/house/index(商铺用接口前).vue
@@ -148,8 +148,8 @@
        <div class="base-info" v-show="navType == 0">
          <div class="sub-nav-list">
            <div class="sub-nav" :class="{ on: subNavType == 1 }" @click="switchSubNav(1)">楼栋</div>
            <div class="sub-nav" :class="{ on: subNavType == 2 }" @click="switchSubNav(2)">出入口</div>
            <div class="sub-nav" :class="{ on: subNavType == 3 }" @click="switchSubNav(3)">停车场</div>
            <!-- <div class="sub-nav" :class="{ on: subNavType == 2 }" @click="switchSubNav(2)">出入口</div> -->
            <!-- <div class="sub-nav" :class="{ on: subNavType == 3 }" @click="switchSubNav(3)">停车场</div> -->
            <div class="sub-nav" :class="{ on: subNavType == 4 }" @click="switchSubNav(4)">商业</div>
          </div>
@@ -1076,7 +1076,7 @@
      // 原来 361100  临时361102
      this.getSearchExtensivelyBgAoiDeepdata(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        this.$route.query.id,
        "1|3"
      )
@@ -1098,7 +1098,7 @@
        // 大搜之搜索面详细数据(停车场出入口商场)--默认万达华府
        this.getSearchExtensivelyBgAoiDeepdata(
          "81503dad589f42bf9a9e5ea5e017f329",
          "361100",
          "361102",
          villageId,
          "1|3"
        )
@@ -1473,7 +1473,7 @@
      this.getSearchExtensivelyBgAoiDeepdata(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        current.id,
        "1|3"
      )
@@ -1959,7 +1959,7 @@
      // 楼栋单元楼层户室查询-大搜
      this.getUnitHousesData(
        "81503dad589f42bf9a9e5ea5e017f329",
        "361100",
        "361102",
        item.build_uid,
        "1|3",
        buildId)
@@ -2606,7 +2606,7 @@
        let bgId = res.data.data.properties.bg_buildid
        getSearchExtensively(
          "81503dad589f42bf9a9e5ea5e017f329",
          "361100",
          "361102",
          "",
          bgId
        ).then((res) => {
src/views/layout/index.vue
@@ -27,7 +27,7 @@
      </div>
      <div class="title">
        <h3>经开区公安警务作战一体化平台</h3>
        <h3>上饶市经开区可视化指挥调度平台</h3>
      </div>
      <!-- 菜单导航 -->
@@ -63,7 +63,7 @@
              <i class="el-icon-user-back"></i>
              运维管理
            </div> -->
            <div class="back-system" :style="{ color: currentUrl == '/layout/available' ? '#fcbd56' : '#fff' }"
            <!-- <div class="back-system" :style="{ color: currentUrl == '/layout/available' ? '#fcbd56' : '#fff' }"
              @click="goToPage('/layout/available')">
              <i class="el-icon-s-grid"></i>
              可用资源
@@ -72,7 +72,7 @@
              @click="goToPage('/layout/risk')">
              <i class="el-icon-s-grid"></i>
              风险隐患
            </div>
            </div> -->
            <div class="edit" @click="resetPsd">
              <i class="el-icon-edit"></i>
              修改密码
@@ -114,7 +114,7 @@
          </div>
          <div :class="{ 'copyright-box-shouye': isShouYe, 'copyright-box': !isShouYe, }"
            v-show="this.$store.state.popupParams.isShowHomeContent">
            版权所有:经开分局
            <!-- 版权所有:经开分局 -->
            <!-- <br />技术支持:户政大队/科信大队 -->
          </div>
        </div>
@@ -189,56 +189,57 @@
      resetPsdPopupShow: false,
      menuLeftList: [
        {
          menuName: '首页',
          menuName: '全域可视化',
          path: '/layout/home'
        },
        {
          menuName: '社区感知',
          path: '/layout/house'
        },
        {
          menuName: '警力资源',
          path: '/layout/policeresouce'
        // {
        //   menuName: '警力资源',
        //   path: '/layout/policeresouce'
        },
        {
          menuName: '视频监控',
          path: '/layout/video/list',
          childrenFlag: false,
          children: [
            {
              menuName: '视频预览',
              path: '/layout/video/list'
            },
            {
              menuName: '视频巡逻',
              path: '/layout/video/region'
            }
          ]
        },
        // },
        // {
        //   menuName: '视频监控',
        //   path: '/layout/video/list',
        //   childrenFlag: false,
        //   children: [
        //     {
        //       menuName: '视频预览',
        //       path: '/layout/video/list'
        //     },
        //     {
        //       menuName: '视频巡逻',
        //       path: '/layout/video/region'
        //     }
        //   ]
        // },
      ],
      menuRightList: [
        // {
        //   menuName: '电子沙盘',
        //   path: '/layout/activity'
        // },
        // {
        //   menuName: '警情信息',
        //   path: '/layout/policeinfor'
        // },
        {
          menuName: '电子沙盘',
          path: '/layout/activity'
        },
        {
          menuName: '警情信息',
          path: '/layout/policeinfor'
        },
        {
          menuName: '扫码应用',
          path: '/layout/scanOrCode',
          menuName: '场所展示',
          // path: '/layout/scanOrCode',
          path: '/layout/site',
          childrenFlag: false,
          children: [
            // {
            //   menuName: '群众上报',
            //   path: '/layout/scanOrCode'
            // },
            {
              menuName: '九小场所',
              path: '/layout/site'
            },
            // {
            //   menuName: '九小场所',
            //   path: '/layout/site'
            // },
            // {
            //   menuName: '矛盾纠纷',
            //   path: '/layout/contradictionEventShow'
src/views/login/index.vue
@@ -30,7 +30,7 @@
                </el-form>
        </div>-->
    <!-- </div> -->
    <div class="loginTitle">经开区公安警务作战一体化平台</div>
    <div class="loginTitle">上饶市经开区可视化指挥调度平台</div>
    <div class="layui-form login_content">
      <p>用户登录</p>
      <el-form :model="loginForm" ref="formName" status-icon :rules="rules">
src/views/police/index.vue
@@ -44,12 +44,11 @@
              <el-table-column label="操作" align="center"
                :min-width="typeValue == 0 || typeValue == 2 || typeValue == 3 ? '30%' : '18%'">
                <template slot-scope="scope">
                  <el-button :disabled="whetherPosition(scope.row)" @click="rowClick(scope.row)" type="text"
                    size="small" title="定位">
                  <el-button :disabled="whetherPosition(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 v-show="navType != 1" @click="equipmentTrack(scope.row)" type="text" size="small"
                    title="轨迹">
                  <el-button v-show="navType != 1" @click="equipmentTrack(scope.row)" type="text" size="small" title="轨迹">
                    <i class="el-icon-police-track"></i>
                  </el-button>
                  <el-button v-show="navType != 0 && navType != 2 && navType != 3" @click="play(scope.row)" type="text"
@@ -93,7 +92,7 @@
              <div>
                {{
                  currentSelectEquipment.status ? (currentSelectEquipment.status == 0 ? '离线' : '在线') :
                    ''
                  ''
                }}
              </div>
            </li>
@@ -772,7 +771,7 @@
    },
    searchExtensivelyClick () {
      this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue)
      this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361102', this.searchExtensivelyValue)
      this.searchExtensivelyValBoxShow = false
      if (this.searchExtensivelyArray.length > 0) {
        this.$EventBus.$emit('toPosition', {
@@ -806,7 +805,7 @@
      } else {
        this.searchExtensivelyValBoxShow = true
        this.isShowClearBtn = true
        this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue)
        this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361102', this.searchExtensivelyValue)
      }
      this.$EventBus.$emit('mapClearLayer', {
        layerName: 'searchLayer',
@@ -850,7 +849,7 @@
    searchExtensivelyFocus () {
      this.searchExtensivelyValBoxShow = true
      this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue)
      this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361102', this.searchExtensivelyValue)
    },
    clearSearchValue () {