南昌市物联网技防平台-前端
zengh
2023-01-16 8aa3edd56c279100c9053576f3e90fa55459fe77
src/views/dataL/dataL.vue
@@ -1,79 +1,178 @@
<template>
    <div id="Lour">
        <div class="left">
            <div class="top">
                <div class="top-l">
                <div class="left-top" >
                    <p style="font-size: 24px;font-weight: 100;">{{name}}</p>
                    <p>{{state}}</p>
                    <p>{{evaluate}}</p>
                </div>
                <div class="left-bot">
                    <p>{{machineCode}}</p>
                    <p>{{smoke}}</p>
                    <p>{{proportion}}</p>
                </div>
                </div>
                <div class="top-r">
                    <p>{{ReportTime}}</p>
                </div>
  <div id="Lour" style="height: 100%">
    <div class="left" style="height: 101%">
      <div class="top">
        <div class="top-t">
          <div class="t-t-title">
            <p style="font-size: 24px; font-weight: 100">
              {{ name }}
            </p>
          </div>
          <div class="t-t-title2">
            <div class="t-t-state">
              <span
                :class="{
                  'l-t-s-grey': state == dataState[0],
                  'l-t-s-green': state == dataState[1],
                  'l-t-s-yewllo': state == dataState[2],
                  'l-t-s-red': state == dataState[3],
                  'l-t-s-yuan': true,
                }"
              ></span>
              <span>{{ " " + state }}</span>
            </div>
            <div class="l-main">
                <div style="padding: 20px">
                <el-tabs v-model="activeName" @tab-click="handleClick">
                <el-tab-pane label="预警历史" name="first">
                <!-- <el-tab-pane label="预警历史" name="second"> -->
                    <div class="frist-left">
                        <div id="echart01" style="width: 100%;height:260px;">
                        </div>
                        <div class="l-main-2">
                <div class="l-m-2-heard">
            <div class="t-t-time">
              <p>{{ ReportTime }}</p>
            </div>
          </div>
        </div>
        <div class="top-b">
          {{ machineCode }}
        </div>
      </div>
      <div class="l-main">
        <div style="padding: 20px">
          <el-tabs v-model="activeName" @tab-click="handleClick">
            <el-tab-pane label="预警历史" name="first">
              <!-- <el-tab-pane label="预警历史" name="second"> -->
              <div class="frist-left">
                <div
                  id="echart01"
                  style="width: 100%; height: 260px"
                  ref="echart01"
                ></div>
                <div class="l-main-2" ref="aaa">
                  <div class="l-m-2-heard">
                    <span style="font-size: 14px">历史事件</span>
                    <span style="font-size: 12px">全部事件类型</span>
                    <span style="padding-left: 1px;">
                        <el-popover
                    <span style="padding-left: 1px">
                      <el-popover
                        placement="bottom"
                        width="160"
                        v-model="screens">
                            <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
                            <div style="margin: 15px 0;"></div>
                            <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
                                <el-checkbox v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox>
                            </el-checkbox-group>
                                <div style="text-align: right; margin: 0; back">
                                    <el-button size="mini" type="text" @click="resetl">重置</el-button>
                                    <el-button type="primary" size="mini" @click="determine">确定</el-button>
                                </div>
                            <el-button
                            slot="reference"
                            style="border: transparent;background: transparent;width: 1px;position: relative;left: -60px;"
                            >
                                <svg
                                class="icon-shaixuan"
                                viewBox="0 0 1024 1024"
                                width="100%"
                                height="100%"
                                fill ="#29c093"
                                style="width: 13px;position: relative;top: 2px;"
                                >
                                    <path
                                    d="M870.52 63.32H153.19c-25.61 0-40.84 28.57-26.57 49.83l295.73 440.58V927a32 32 0 0 0 47.06 28.24l116-61.87a32 32 0 0 0 16.94-28.23v-312.9l294.74-439.09c14.27-21.26-0.96-49.83-26.57-49.83z">
                                    </path>
                                </svg>
                            </el-button>
                        </el-popover>
                        v-model="screens"
                      >
                        <el-checkbox
                          :indeterminate="isIndeterminate"
                          v-model="checkAll"
                          @change="handleCheckAllChange"
                          >全选</el-checkbox
                        >
                        <div style="margin: 15px 0"></div>
                        <el-checkbox-group
                          v-model="checkedCities"
                          @change="handleCheckedCitiesChange"
                        >
                          <el-checkbox
                            v-for="city in cities"
                            :label="city"
                            :key="city"
                            >{{ city }}</el-checkbox
                          >
                        </el-checkbox-group>
                        <div style="text-align: right; margin: 0; back">
                          <el-button size="mini" type="text" @click="resetl"
                            >重置</el-button
                          >
                          <el-button
                            type="primary"
                            size="mini"
                            @click="determine"
                            >确定</el-button
                          >
                        </div>
                        <el-button
                          slot="reference"
                          style="
                            border: transparent;
                            background: transparent;
                            width: 1px;
                            position: relative;
                            left: -60px;
                          "
                        >
                          <svg
                            class="icon-shaixuan"
                            viewBox="0 0 1024 1024"
                            width="100%"
                            height="100%"
                            fill="rgba(0,0,0,0.5)"
                            style="width: 13px; position: relative; top: 2px"
                            ref="svgBut"
                          >
                            <path
                              d="M870.52 63.32H153.19c-25.61 0-40.84 28.57-26.57 49.83l295.73 440.58V927a32 32 0 0 0 47.06 28.24l116-61.87a32 32 0 0 0 16.94-28.23v-312.9l294.74-439.09c14.27-21.26-0.96-49.83-26.57-49.83z"
                            ></path>
                          </svg>
                        </el-button>
                      </el-popover>
                    </span>
                </div>
                <div class="l-m-2-main">
                  </div>
                  <div class="l-m-2-main">
                    <div class="l-m-2-m-not" v-show="eventDetails.length == 0">
                        <img src="https://city.sensoro.com/assets/img/no-history.png" alt="">
                        <div>无事件记录</div>
                      <img
                        src="https://city.sensoro.com/assets/img/no-history.png"
                        alt=""
                      />
                      <div>无事件记录</div>
                    </div>
                    <!-- 普通表格
                        舍弃eventDetaill的childs
                         -->
                    <div
                      v-for="(value, index) in eventDetails"
                      :key="index"
                      v-show="eventDetails.length != 0"
                      class="l-m-2-m-table"
                    >
                      <p
                        class="l-m-2-m-tableheard"
                        style="fontsize: 20px; font-weight: 100"
                      >
                        {{ value.year }}年
                      </p>
                      <div class="l-m-2-m-tablemain">
                        <el-table
                          :data="value.data"
                          style="width: 100%"
                          highlight-current-row
                          @current-change="handleCurrentChange"
                          ><!--highlight-current-row: 单选,current-change单选事件-->
                          <el-table-column type="index"> </el-table-column>
                          <el-table-column label="日期" prop="day">
                          </el-table-column>
                          <el-table-column label="时间" prop="time">
                          </el-table-column>
                          <el-table-column label="负责人" prop="oneContacts">
                          </el-table-column>
                          <el-table-column
                            label="负责人电话"
                            prop="onePhone"
                            min-width="100px"
                          >
                          </el-table-column>
                          <el-table-column label="类型" prop="events">
                          </el-table-column>
                          <el-table-column label="接警人" prop="alarmPeople">
                          </el-table-column>
                          <el-table-column label="报警人" prop="galarmPeople">
                          </el-table-column>
                          <el-table-column label="警情状态" prop="state">
                            <template slot-scope="props">
                              <el-tag>{{ props.row.state }}</el-tag>
                            </template>
                          </el-table-column>
                          <!-- <el-table-column label="跳转实时" prop="">
                    <div v-for="(value,index) in eventDetails" :key="index" v-show="eventDetails.length != 0" class="l-m-2-m-table">
                          </el-table-column> -->
                        </el-table>
                      </div>
                    </div>
                    <!-- 展开--待定  -->
                    <!-- <div v-for="(value,index) in eventDetails" :key="index" v-show="eventDetails.length != 0" class="l-m-2-m-table">
                        <p class="l-m-2-m-tableheard">{{value.year}}年</p>
                        <div class="l-m-2-m-tablemain">
                            <el-table
@@ -87,13 +186,6 @@
                                                style="width: 100%;"
                                                class="l-m-2-m-tm-int"
                                                >
                                                <!-- <el-table-column type="expand">
                                                <template slot-scope="propss">
                                                        <el-form label-position="top" inline class="demo-table-expand">
                                                        {{propss.row.open}}
                                                        </el-form>
                                                </template>
                                                </el-table-column> -->
                                                <el-table-column
                                                label="时间"
                                                prop="time"
@@ -109,7 +201,7 @@
                                                prop="open">
                                                </el-table-column>
                                            </el-table>
                                        </el-form>
                                        </el-form>
                                </template>
                                </el-table-column>
                                <el-table-column
@@ -134,7 +226,7 @@
                                </el-table-column>
                            </el-table>
                        </div>
                    </div>
                    </div> -->
                    <!-- 时间轴历史记录 待选-->
@@ -179,59 +271,81 @@
                        </div>
                        <div class="l-m-2-m-d-bot">无更多记录</div>
                    </div> -->
                  </div>
                </div>
            </div>
                    </div>
                </el-tab-pane>
                <!-- <el-tab-pane label="数据详情" name="first"> -->
                <el-tab-pane label="数据详情" name="second">
                    <div class="l-main-3">
                        <div class="l-m-3-heard">
                            <h2>{{name}}</h2>
                            <div>设备数据详情</div>
                        </div>
                        <el-divider content-position="left"><i class="el-icon-mobile-phone"></i></el-divider>
                        <div class="l-m-3-main">
                            <el-row>
                                <el-form
                                :model="detailsData"
                                label-position="right"
                                size="mini"
                                class="l-m-3-m-form"
                                label-width="100px"
                                style="
                                background: #fff;
                                margin-top: 20px;
                                margin-left: 10px;
                                margin-right: 10px;
                                height: calc(100% - 40px);
                                width: calc(100% - 20px);
                                ">
                                    <el-row>
                                        <el-col span="12">
                                            <el-form-item label="设备名称">
                                            <el-input
                                                disabled="true"
                                                v-model="detailsData.machineName"
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                        <el-col span="12">
                                            <el-form-item label="设备编号">
                                            <el-input
                                                disabled="true"
                                                v-model="detailsData.machineNumber"
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                    </el-row>
                                    <el-row>
                                        <el-col span="12">
              </div>
            </el-tab-pane>
            <!-- <el-tab-pane label="数据详情" name="first"> -->
            <el-tab-pane label="设备详情" name="second">
              <div class="l-main-3">
                <div class="l-m-3-heard">
                  <!-- <h2>
                    {{ name.length > 16 ? name.substr(0, 16) + "···" : name }}
                  </h2> -->
                  <div>设备数据详情</div>
                </div>
                <el-divider content-position="left"
                  ><i class="el-icon-mobile-phone"></i
                ></el-divider>
                <div class="l-m-3-main">
                  <el-row>
                    <el-form
                      :model="detailsData"
                      label-position="right"
                      size="mini"
                      class="l-m-3-m-form"
                      label-width="100px"
                      style="
                        background: #fff;
                        margin-top: 20px;
                        margin-left: 10px;
                        margin-right: 10px;
                        height: calc(100% - 40px);
                        width: calc(100% - 20px);
                      "
                    >
                      <el-row>
                        <el-col span="12">
                          <el-form-item label="设备名称">
                            <el-input
                              disabled="true"
                              v-model="detailsData.machineName"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                        <el-col span="12">
                          <el-form-item label="设备编号">
                            <el-input
                              disabled="true"
                              v-model="detailsData.machineNumber"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                      </el-row>
                      <el-row>
                        <el-col span="12">
                          <el-form-item label="主要负责人">
                            <el-input
                              disabled="true"
                              v-model="detailsData.person"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                        <el-col span="12">
                          <el-form-item label="负责人电话">
                            <el-input
                              disabled="true"
                              v-model="detailsData.call"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                      </el-row>
                      <el-row>
                        <!-- <el-col span="12">
                                            <el-form-item label="使用方">
                                            <el-input
                                                disabled="true"
@@ -239,788 +353,1420 @@
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                        <el-col span="12">
                                            <el-form-item label="序列号">
                                            <el-input
                                                disabled="true"
                                                v-model="detailsData.serialNumber"
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                    </el-row>
                                    <el-row>
                                        <el-col span="12">
                                            <el-form-item label="通道号">
                                            <el-input
                                                disabled="true"
                                                v-model="detailsData.channel"
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                        <el-col span="12">
                                            <el-form-item label="布撤防状态">
                                            <el-input
                                                disabled="true"
                                                v-model="detailsData.deployment"
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                    </el-row>
                                    <el-row>
                                        <el-col span="12">
                                            <el-form-item label="设备类型">
                                            <el-input
                                                disabled="true"
                                                v-model="detailsData.machineType"
                                                autocomplete="off"
                                            ></el-input>
                                            </el-form-item>
                                        </el-col>
                                        <el-col span="12">
                                            <el-form-item label="省份">
                                                <div
                                                v-for="(val,index) in detailsData.province"
                                                :key="index"
                                                >
                                                    <el-input
                                                    disabled="true"
                                                    class="l-m-3-m-f-pro"
                                                    v-model="detailsData.province[index]"
                                                    autocomplete="off"
                                                    ></el-input>
                                                </div>
                                            </el-form-item>
                                        </el-col>
                                        <el-row>
                                            <el-col span="12">
                                                <el-form-item label="负责人">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.person"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                            <el-col span="12">
                                                <el-form-item label="街道">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.street"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                        </el-row>
                                        <el-row>
                                            <el-col span="12">
                                                <el-form-item label="负责人电话">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.call"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                            <el-col span="12">
                                                <el-form-item label="到期时间">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.dueDate"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                        </el-row>
                                        <el-row>
                                            <el-col span="12">
                                                <el-form-item label="缴费信息">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.payment"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                            <el-col span="12">
                                                <el-form-item label="安装时间">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.installation"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                        </el-row>
                                        <el-row>
                                            <el-col span="12">
                                                <el-form-item label="心跳时间">
                                                <el-input
                                                    disabled="true"
                                                    v-model="detailsData.heartbeat"
                                                    autocomplete="off"
                                                ></el-input>
                                                </el-form-item>
                                            </el-col>
                                        </el-row>
                                    </el-row>
                                </el-form>
                            </el-row>
                            <!-- <div
                            v-for="(value,keys,index) in detailsData"
                            :key="index"
                            :class="[{'l-m-3-m-ones': true}, (index % 2) == 1? 'l-m-3-m-o-r':'l-m-3-m-o-l']"
                            >
                                <div class="l-m-3-m-o-keys">{{keys}}</div>
                                &nbsp:&nbsp
                                <div class="l-m-3-m-o-value">{{value}}</div>
                            </div>
                            <div style="clear: float"></div> -->
                        </div>
                    </div>
                </el-tab-pane>
                </el-tabs>
                                        </el-col> -->
                        <el-col span="12">
                          <el-form-item label="序列号">
                            <el-input
                              disabled="true"
                              v-model="detailsData.serialNumber"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                        <el-col span="12">
                          <el-form-item label="通道号">
                            <el-input
                              disabled="true"
                              v-model="detailsData.channel"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                      </el-row>
                      <el-row>
                        <el-col span="12">
                          <el-form-item label="设备类型">
                            <el-input
                              disabled="true"
                              v-model="detailsData.machineType"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                        <el-col span="12">
                          <el-form-item label="布撤防状态">
                            <el-input
                              disabled="true"
                              v-model="detailsData.deployment"
                              autocomplete="off"
                            ></el-input>
                          </el-form-item>
                        </el-col>
                      </el-row>
                      <el-row>
                        <el-row>
                          <el-col span="12">
                            <el-form-item label="省份" class="cityClassParams">
                              <avue-form
                                :option="itemOption"
                                v-model="form"
                              ></avue-form>
                            </el-form-item>
                          </el-col>
                          <el-col span="12">
                            <el-form-item label="地址">
                              <el-input
                                disabled="true"
                                v-model="detailsData.street"
                                autocomplete="off"
                              ></el-input>
                            </el-form-item>
                          </el-col>
                        </el-row>
                        <el-row>
                          <el-col span="12">
                            <el-form-item label="安装时间">
                              <el-input
                                disabled="true"
                                v-model="detailsData.installation"
                                autocomplete="off"
                              ></el-input>
                            </el-form-item>
                          </el-col>
                          <el-col span="12">
                            <el-form-item label="到期时间">
                              <el-input
                                disabled="true"
                                v-model="detailsData.dueDate"
                                autocomplete="off"
                              ></el-input>
                            </el-form-item>
                          </el-col>
                        </el-row>
                        <el-row>
                          <el-col span="12">
                            <el-form-item label="缴费信息">
                              <el-input
                                disabled="true"
                                v-model="detailsData.payment"
                                autocomplete="off"
                              ></el-input>
                            </el-form-item>
                          </el-col>
                          <el-col span="12">
                            <el-form-item label="心跳时间">
                              <el-input
                                disabled="true"
                                v-model="detailsData.heartbeat"
                                autocomplete="off"
                              ></el-input>
                            </el-form-item>
                          </el-col>
                        </el-row>
                      </el-row>
                    </el-form>
                  </el-row>
                </div>
            </div>
              </div>
            </el-tab-pane>
            <el-tab-pane label="现场视频" name="third">
              <div class="l-main-3">
                <!-- <div class="l-m-3-heard">222</div> -->
                <div class="l-m-3-heard">
                  <div>设备现场视频</div>
                </div>
                <!-- <el-divider content-position="left"></el-divider> -->
                <el-divider content-position="left"
                  ><i class="el-icon-mobile-phone"></i
                ></el-divider>
                <div class="l-m-3-main">
                  <!-- {{ videoUrl }} -->
                  <div>
                    <video
                      style="height: 550px; width: 100%"
                      controls="controls"
                      id="real_video_conversationDataL"
                      src=""
                    ></video>
                  </div>
                </div>
              </div>
            </el-tab-pane>
          </el-tabs>
        </div>
        <div class="right">
            <div class="r-one">
                <div class="r-heard">
                    <div class="r-heard-top">部署信息</div>
                    <button @click="modifyl" class="r-but-top">修改</button>
                </div>
                <div class="r-body">
                    <div class="r-b-top">
                            <div class="r-b-t-main">
                                <span class="r-b-t-left">传感器名称</span>
                                <span class="r-b-t-right">{{name}}</span>
                            </div>
                            <div class="r-b-t-main">
                                <span class="r-b-t-left">设备联系人</span>
                                <span class="r-b-t-right">{{contacts}}: {{calls}}</span>
                            </div>
                            <div class="r-b-t-main">
      </div>
    </div>
    <div class="right">
      <div class="r-one">
        <div class="r-heard">
          <div class="r-heard-top">部署信息</div>
          <!-- <button @click="modifyl" class="r-but-top">修改</button> -->
        </div>
        <div class="r-body">
          <div class="r-b-top">
            <div class="r-b-t-main">
              <span class="r-b-t-left">设备名称</span>
              <span class="r-b-t-right">{{ name }}</span>
            </div>
            <div class="r-b-t-main">
              <span class="r-b-t-left">设备联系人</span>
              <span class="r-b-t-right">{{ contacts }}: {{ calls }}</span>
            </div>
            <!-- 设备标签待定 -->
            <!-- <div class="r-b-t-main">
                                <span class="r-b-t-left">设备标签</span>
                                <span class="r-b-t-right">
                                    <div
                                    class="r-b-t-r-label"
                                    v-for="(value,index) in labels"
                                    :key="index"
                                    >
                                         {{value}}
                                    </div>
                                </span>
                            </div>
                            <div class="r-b-t-main">
                                <span class="r-b-t-left" style="position:relative;top: -27px;">部署图片</span>
                                <span class="r-b-t-right">
                                    <div
                                    class="r-b-t-r-imgsl"
                                    v-for="(value,index) in imgsl"
                                    class="r-b-t-r-label"
                                    v-for="(value,index) in labels"
                                    :key="index"
                                    >
                                        <!-- <img :src="value" alt=""> -->
                                        <el-image
                                            style="width: 68px; height: 68px"
                                            :src="value"
                                            :preview-src-list="imgsl">
                                        </el-image>
                                         {{value}}
                                    </div>
                                </span>
                            </div>
                            <div class="r-b-t-main">
                                <span class="r-b-t-left">部署时间</span>
                                <span class="r-b-t-right">{{deploymentTime}}</span>
                            </div>
                    </div>
                    <div class="r-b-map">
                        <el-row>
                            <iframe
                            id="supervisoryMap"
                            ref="supervisoryMap"
                            :src="baseUrl"
                            frameborder="0"
                            width="100%"
                            height="100%"
                            ></iframe>
                        </el-row>
                    </div>
                            </div> -->
            <!-- 图暂时没有 -->
            <div class="r-b-t-main">
              <span class="r-b-t-left" style="position: relative; top: -27px"
                >部署图片</span
              >
              <span class="r-b-t-right">
                <div
                  class="r-b-t-r-imgsl"
                  v-for="(value, index) in imgsl"
                  :key="index"
                >
                  <el-image
                    style="width: 68px; height: 68px"
                    :src="value"
                    :preview-src-list="imgsl"
                    v-show="value != 'no'"
                  >
                  </el-image>
                  <div
                    v-show="value == 'no'"
                    style="
                      width: 68px;
                      height: 68px;
                      text-algin: center;
                      color: rgba(0, 0, 0, 0.5);
                    "
                  >
                    无图片
                  </div>
                </div>
              </span>
            </div>
            <div class="r-b-t-main">
              <span class="r-b-t-left">部署时间</span>
              <span class="r-b-t-right">{{ deploymentTime }}</span>
            </div>
          </div>
          <div class="r-b-map">
            <el-row>
              <!-- <iframe
                id="supervisoryMap"
                ref="supervisoryMap"
                :src="baseUrl"
                frameborder="0"
                width="100%"
                height="100%"
              ></iframe> -->
              <!-- <button @click="re">刷新</button> -->
              <iframe
                id="detailMap"
                ref="detailMap"
                :src="baseUrl"
                frameborder="0"
                width="100%"
                height="100%"
                name="detailMap"
              ></iframe>
            </el-row>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import axios from 'axios'
import echarts from 'echarts'
const cityOptions = ['未确认', '真实火警', '非真实火警', '测试/巡检', '安全隐患'];
import { Loading } from "element-ui";
import {
  getdataL,
  getGalarm,
  getnum,
  getImg,
  getVideo,
} from "../../api/dataL/axiosL";
import axios from "axios";
import Hls from "hls.js";
import echarts from "echarts";
import { Form } from "element-ui";
const cityOptions = ["未处理", "处理中", "已处理"];
export default {
    data(){
        return{
            name: '婴滋诚红谷滩凤凰花园东区',
            state: '故障',
            evaluate: '优',
            machineCode: '03430017C76447DB',
            smoke: '烟雾(SM-5)',
            proportion: '100.0%',
            ReportTime: '最近上报: 2021-04-06 14:34:2',
            activeName: 'first',
            contacts: '陈小兵',
            calls: '18079118423',
            labels: ['店面','楼房'],
            imgsl: [
                'https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57',
                'https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE',
                'https://resource-city.sensoro.com/6E0FB78DC42C35F3B8FF0F6A03472433'
            ],
            deploymentTime: '2019-08-28 11:16:14',
            isRecord: true,
            screens: false,
           //复选框
            checkAll: false,
            checkedCities: [], //选择的
            cities: cityOptions,
            isIndeterminate: true,
  data() {
    return {
      // timeL: "",
      a: "",
      myDeviceNumber: "",
      videoUrl: "",
      //折线图
      myChart: "",
      numdatalist: [120, 132, 101, 134, 90, 230, 210, 120, 132, 0, 134, 0],
            //列表数据:
            obj: [],//选中
            option2:{//抬头
                menuType:'text',
                page:false,
                align:'center',
                dateBtn:true,
                dateDefault:true,
                menuAlign:'center',
                column:[
                    {
                    label:'姓名',
                    prop:'name'
                    },
                    {
                    label:'性别',
                    prop:'sex'
                    },{
                    label: "日期",
                    prop: "date",
                    type: "date",
                    format: "yyyy-MM-dd hh:mm:ss",
                    valueFormat: "yyyy-MM-dd hh:mm:ss",
                    }
                ]
      jingqingPdianji: null,
      name: "",
      state: "",
      evaluate: "",
      machineCode: "",
      smoke: "",
      proportion: "",
      ReportTime: "",
      contacts: "",
      calls: "",
      labels: ["店面", "楼房"],
      imgsl: [
        // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
        // "https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE",
        // "https://resource-city.sensoro.com/6E0FB78DC42C35F3B8FF0F6A03472433",
      ],
      deploymentTime: "2019-08-28 11:16:14",
      activeName: "first",
      // activeName: 'second',
      // activeName: "third",
      isRecord: true,
      screens: false,
      //复选框
      dataState: ["掉线", "正常", "故障", "预警"],
      // [grey,green,red][
      //   onlineStatus = 0,
      //   onlineStatus = 1,
      //   state!= "",
      //   jtype != 2
      //   ]
      checkAll: false,
      checkedCities: [], //选择的
      cities: cityOptions,
      isIndeterminate: true,
      //列表数据:
      obj: [], //选中
      option2: {
        //抬头
        menuType: "text",
        page: false,
        align: "center",
        dateBtn: true,
        dateDefault: true,
        menuAlign: "center",
        column: {},
      },
      eventDetails: [], //真实数据
      eventDetaill: [
        //原始数据
        // {
        //     year: '2020',
        //     data: [
        //         {
        //             day: '00月00日',
        //             time: '00:00:00:',
        //             events: '报警类型',
        //             galarmPeople: '报警人',
        //             state: '未处理',
        //             oneContacts: '主要负责人',
        //             alarmPeople: '接警人',
        //             onePhone: '负责人电话',
        //             childs: [
        //                 {
        //                     time: '07:30:46',
        //                     events: '系统发送恢复短信至:刘仁花 ',
        //                     open: '设备单独联系人 - 刘仁花 (13970929216) 于 2020-06-13 07:30:56 短信接收成功',
        //                 },
        //                 {
        //                     time: '07:30:46',
        //                     events: '5小时无人确认预警类型,系统自动确认本次预警类型为 测试/巡检 ',
        //                     open: '预警结果:测试/巡检(相关人员主动测试发出的预警)备注说明:',
        //                 }
        //             ],
        //         },
        //     ]
        // },
        // {
        //     year: '2019',
        //     data: [
        //         {
        //             day: '06月3日',
        //             time: '02:22:06',
        //             events: '烟雾 监测到烟雾',
        //             type: '安全隐患',
        //             childs: [
        //                 {
        //                     time: '07:30:46',
        //                     events: '系统发送恢复短信至:刘仁花 ',
        //                     open: '设备单独联系人 - 刘仁花 (13970929216) 于 2020-06-13 07:30:56 短信接收成功',
        //                 },
        //                 {
        //                     time: '07:30:46',
        //                     events: '5小时无人确认预警类型,系统自动确认本次预警类型为 测试/巡检 ',
        //                     open: '预警结果:测试/巡检(相关人员主动测试发出的预警)备注说明:',
        //                 }
        //             ],
        //         },
        //     ],
        // }
      ],
      //详情数据
      detailsData: {
        machineName: "", // 设备名称
        machineNumber: "", //
        user: "", //     使用方
        serialNumber: "", //     序列号
        channel: "", //     通道号
        deployment: "", //     布撤防状态:
        machineType: "", //     设备类型
        province: "", //     省份
        street: "", //     街道
        person: "", //     负责人
        call: "", //     负责人电话
        dueDate: "", //     到期时间
        payment: "", //     缴费信息
        installation: "", //     安装时间
        heartbeat: "", //     心跳时间
      },
      // detailsData: {
      //     machineName: '测试设备8',// 设备名称
      //     machineNumber: '000000000008',  //
      //     user: '南昌大学第一附属医院',  //     使用方
      //     serialNumber: '001241945990', //     序列号
      //     channel : '1',//     通道号
      //     deployment : '布防', //     布撤防状态:
      //     machineType: '一键求助', //     设备类型
      //     province: ['江西省','南昌市','红谷滩区'], //     省份
      //     street: '请输入 街道',//     街道
      //     person : '金同涛', //     负责人
      //     call: '13237568082', //     负责人电话
      //     dueDate: '请选择 到期时间', //     到期时间
      //     payment: '请输入 缴费信息', //     缴费信息
      //     installation : '请选择 安装时间', //     安装时间
      //     heartbeat: '2021-04-07', //     心跳时间
      // },
      baseUrl: "", //mapurl\
      mapStart: false,
      //省份
      form: {},
      itemOption: {
        menuBtn: false,
        column: [
          {
            disabled: true,
            row: false,
            prop: "province",
            type: "select",
            placeholder: "省份",
            props: {
              label: "name",
              value: "code",
            },
            eventDetails: [],//真实数据
            eventDetaill: [//原始数据
                {
                    year: '2020',
                    data: [
                        {
                            day: '06月17日',
                            time: '02:22:06',
                            events: '烟雾 监测到烟雾',
                            type: '测试/巡检',
                            childs: [
                                {
                                    time: '07:30:46',
                                    events: '系统发送恢复短信至:刘仁花 ',
                                    open: '设备单独联系人 - 刘仁花 (13970929216) 于 2020-06-13 07:30:56 短信接收成功',
                                },
                                {
                                    time: '07:30:46',
                                    events: '5小时无人确认预警类型,系统自动确认本次预警类型为 测试/巡检 ',
                                    open: '预警结果:测试/巡检(相关人员主动测试发出的预警)备注说明:',
                                }
                            ],
                        },
                    ]
                },
                {
                    year: '2019',
                    data: [
                        {
                            day: '06月3日',
                            time: '02:22:06',
                            events: '烟雾 监测到烟雾',
                            type: '安全隐患',
                            childs: [
                                {
                                    time: '07:30:46',
                                    events: '系统发送恢复短信至:刘仁花 ',
                                    open: '设备单独联系人 - 刘仁花 (13970929216) 于 2020-06-13 07:30:56 短信接收成功',
                                },
                                {
                                    time: '07:30:46',
                                    events: '5小时无人确认预警类型,系统自动确认本次预警类型为 测试/巡检 ',
                                    open: '预警结果:测试/巡检(相关人员主动测试发出的预警)备注说明:',
                                }
                            ],
                        },
                    ],
                }
            ],
            //详情数据
            detailsData: {
                machineName: '测试设备8',// 设备名称
                machineNumber: '000000000008',  //
                user: '南昌大学第一附属医院',  //     使用方
                serialNumber: '001241945990', //     序列号
                channel : '1',//     通道号
                deployment : '布防', //     布撤防状态:
                machineType: '一键求助', //     设备类型
                province: ['江西省','南昌市','红谷滩区'], //     省份
                street: '请输入 街道',//     街道
                person : '金同涛', //     负责人
                call: '13237568082', //     负责人电话
                dueDate: '请选择 到期时间', //     到期时间
                payment: '请输入 缴费信息', //     缴费信息
                installation : '请选择 安装时间', //     安装时间
                heartbeat: '2021-04-07', //     心跳时间
            cascaderItem: ["city", "district"],
            dicUrl: "/api/blade-system/region/select",
            span: 1,
            labelWidth: "0",
            className: "cityClassSelect",
          },
          {
            disabled: true,
            row: false,
            prop: "city",
            type: "select",
            placeholder: "地市",
            props: {
              label: "name",
              value: "code",
            },
            baseUrl: '',//mapurl
        }
            dicUrl: "/api/blade-system/region/select?code={{key}}",
            span: 1,
            labelWidth: "0",
            className: "cityClassSelect",
          },
          {
            disabled: true,
            row: false,
            prop: "district",
            type: "select",
            placeholder: "区县",
            props: {
              label: "name",
              value: "code",
            },
            dicUrl: "/api/blade-system/region/select?code={{key}}",
            span: 1,
            labelWidth: "0",
            className: "cityClassSelect",
          },
        ],
      },
    };
  },
  methods: {
    loginEcharts01() {
      let echarts = require("echarts");
      this.myChart = echarts.init(document.getElementById("echart01"));
      this.myChart.showLoading();
    },
    methods:{
        startEcharts01(){
            let echarts = require('echarts');
            let myChart = echarts.init(document.getElementById('echart01'));
            let option = {
                            title: {
                                text: '时间分布'
                            },
                            tooltip: {
                                trigger: 'axis',
                                formatter: function(params,ticket,callback) {
                                    var res = params[0];
                                    // console.log(res)
                                    // console.log(params[0])
                                    return `${res.name}:00-${res.name}:59` + '<br />' + `${res.marker}总预警次数:${res.value}`;
                                }
                            },
                            legend: {
                                data: ['总预警次数']
                            },
                            grid: {
                                left: '3%',
                                right: '4%',
                                bottom: '3%',
                                containLabel: true
                            },
                            // toolbox: {
                            //     feature: {
                            //         saveAsImage: {}
                            //     }
                            // },
                            xAxis: {
                                type: 'category',
                                boundaryGap: false,
                                data: ['0', '1' ,'2', '3','4','5' ,'6','7', '8', '9','10', '11','12', '13','14','15' ,'16','17' ,'18','19' ,'20', '21','22','23']
                            },
                            yAxis: {
                                type: 'value'
                            },
                            series: [
                                {
                                    name: '总预警次数',
                                    type: 'line',
                                    stack: '总量',
                                    data: [120, 132, 101, 134, 90, 230, 210, 120, 132, 101, 134, 90, 230, 210,120, 132, 101, 134, 90, 230, 210, 120, 132, 101, 134, 90, 230, 210]
                                },
                            ]
            };
            myChart.setOption(option);
            //建议加上以下这一行代码,不加的效果图如下(当浏览器窗口缩小的时候)。超过了div的界限(红色边框)
            window.addEventListener('resize',function() {myChart.resize()});
    startEcharts01() {
      // let echarts = require('echarts');
      // let myChart = echarts.init(document.getElementById('echart01'));
      let option = {
        title: {
          text: "警情月分布",
          textStyle: {
            fontSize: 18,
            fontStyle: "300",
            fontFamily: "sans-serif",
          },
        },
        modifyl(){//right 修改按钮
            console.log(`top --修改`)
        tooltip: {
          trigger: "axis",
          formatter: function (params, ticket, callback) {
            var res = params[0];
            // console.log(res)
            // console.log(params[0])
            var Num = res.value == null ? "无" : res.value;
            return (
              `${res.name}月份` + "<br />" + `${res.marker}总预警次数:${Num}`
            );
          },
        },
        handleCheckAllChange(val) {//事件类型全选
            this.checkedCities = val ? cityOptions : [];
            this.isIndeterminate = false;
        legend: {
          data: ["总预警次数"],
        },
        handleCheckedCitiesChange(value) {//事件类型
            let checkedCount = value.length;
            this.checkAll = checkedCount === this.cities.length;
            this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true,
        },
        resetl(){//事件类型重置
            this.screens = false;
            this.checkedCities = ['未确认', '真实火警', '非真实火警', '测试/巡检', '安全隐患'];
            // console.log(`按钮重置`);
            this.doEvents(this.checkedCities);
        // toolbox: {
        //     feature: {
        //         saveAsImage: {}
        //     }
        // },
        xAxis: {
          type: "category",
          boundaryGap: false,
          data: [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
            "",
          ],
          // , '13','14','15' ,'16','17' ,'18','19' ,'20', '21','22','23']
        },
        determine(){//事件类型确定
            this.screens = false;
            console.log(this.checkedCities);
            if(this.checkedCities.length == 0){
                // console.log(`未选择`);
                this.eventDetails = [];
            }else{
                this.doEvents(this.checkedCities);//筛选数据
        yAxis: {
          type: "value",
        },
        series: [
          {
            name: "总预警次数",
            type: "line",
            stack: "总量",
            data: this.numdatalist,
            // , 230, 210,120, 132, 101, 134, 90, 230, 210, 120, 132, 101, 134, 90, 230, 210]
          },
        ],
      };
      this.myChart.setOption(option);
      this.myChart.hideLoading();
      //建议加上以下这一行代码,不加的效果图如下(当浏览器窗口缩小的时候)。超过了div的界限(红色边框)
      // window.addEventListener("resize", function () {
      //   this.myChart.resize();
      // });
    },
    modifyl() {
      //right 修改按钮
      console.log(`top --修改`);
    },
    handleCheckAllChange(val) {
      //事件类型全选
      this.checkedCities = val ? cityOptions : [];
      this.isIndeterminate = false;
    },
    handleCheckedCitiesChange(value) {
      //事件类型
      let checkedCount = value.length;
      this.checkAll = checkedCount === this.cities.length;
      this.isIndeterminate =
        checkedCount > 0 && checkedCount < this.cities.length;
    },
    resetl() {
      //事件类型重置
      this.screens = false;
      this.checkedCities = ["未处理", "处理中", "已处理"];
      // console.log(`按钮重置`);
      this.doEvents(this.checkedCities);
      this.$refs.svgBut.setAttribute("fill", "rgba(0,0,0,0.5)"); //改变svg图片样式
      // this.eventDetails = this.eventDetaill;
    },
    determine() {
      //事件类型确定
      this.screens = false;
      // console.log(this.checkedCities);
      if (this.checkedCities.length == 0) {
        // console.log(`未选择`);
        this.eventDetails = [];
        this.$refs.svgBut.setAttribute("fill", "rgba(41,192,147)"); //改变svg图片样式
      } else {
        this.doEvents(this.checkedCities); //筛选数据
        if (this.checkedCities.length == 3) {
          this.$refs.svgBut.setAttribute("fill", "rgba(0,0,0,0.5)"); //改变svg图片样式
        } else {
          this.$refs.svgBut.setAttribute("fill", "rgba(41,192,147)"); //改变svg图片样式
        }
      }
    },
    doEvents(ends) {
      //事件类型数据、
      var uA = this.eventDetaill; //输入数据
      var useD = []; //创建缓存
      for (var key in uA) {
        //循环数据{year , data}
        var uB = uA[key].data,
          udd = [];
        // console.log(uB);
        for (var val in uB) {
          //循环data
          var i = 0;
          // console.log('uB--type:--' + uB[val].type,val);
          for (var uE in ends) {
            //循环选中
            // console.log('uE' + ends[uE])
            if (uB[val].state == ends[uE]) {
              //判断数据是否选中
              i++;
            }
        },
        doEvents(ends){//事件类型数据、
            var uA = this.eventDetaill;//输入数据
            var useD = [];//创建缓存
            for(var key in uA){     //循环数据{year , data}
                var uB = uA[key].data,
                    udd = [];
                // console.log(uB);
                for(var val in uB){    //循环data
                    var i = 0;
                    // console.log('uB--type:--' + uB[val].type,val);
                    for(var uE in ends){  //循环选中
                        // console.log('uE' + ends[uE])
                        if(uB[val].type == ends[uE]){ //判断数据是否选中
                            i ++;
                        }
                    }
                    // console.log(i);
                    if(i == 1){  //选中推入
                        udd.push(uB[val]);
                    }
          }
          // console.log(i);
          if (i == 1) {
            //选中推入
            udd.push(uB[val]);
          }
        }
        // console.log(udd);
        if (udd.length != 0) {
          //若data中没有符合的选项,则整个过滤
          useD.push({
            year: uA[key].year,
            data: udd,
          });
        }
      }
      // console.log(useD)
      this.eventDetails = useD;
    },
    getdata() {
      // const url = `/api/blade-jfpts/equipment/equipment/pageDept?deviceName=${this.myDeviceNumber}&current=1&size=10&pid=`
      // axios.get(url)
      var that = this;
      var data = {
        deviceName: this.myDeviceNumber,
        current: "1",
        size: "10",
      };
      var imgdadta = {
        deviceNumber: this.myDeviceNumber,
      };
      getdataL(data).then((res) => {
        var data = res.data.data.records[0];
        var setimgl = null;
        //插入图片api获取图片
        this.stetDetails(data);
        getImg(imgdadta, "post").then((res) => {
          // console.log(res.data.data.length != 0)
          var imgdatas = [];
          if (res.data.data.length != 0) {
            imgdatas = res.data.data[0].paddress.split(",");
          }
          // console.log(imgdatas);
          // imgdatas = [ //最多5张照片
          //   "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
          //   "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
          //   "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
          //   "https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE",
          // "https://web.byisf.com/minio/jfpt/upload/depl/ad049799e7024c529b9c890d3ba434bc.JPEG",
          // ];
          setimgl = imgdatas.length == 0 ? ["no"] : imgdatas;
          this.stetDetails(data, setimgl);
        });
      });
    },
    stetDetails(c, imgdata) {
      this.name = "无数据" && this.a.deviceName;
      //设备状态
      var states,
        d = this.a.dtype;
      if (d == 0) {
        states = "掉线";
      } else if (d == 1) {
        states = "正常";
      } else if (d == 3) {
        states = "故障";
      } else if (d == 2) {
        states = "预警";
      }
      this.state = states;
      this.evaluate = "空气质量";
      this.machineCode = "无数据" && this.a.deviceNumber;
      this.smoke = "烟雾";
      this.proportion = "电量";
      this.ReportTime = "最近上报:" + this.a.heartbeat;
      this.contacts = "无数据" && this.a.oneContacts;
      this.calls = "无数据" && this.a.onePhone;
      this.labels = ["无数据"] && [this.a.deviceType];
      this.imgsl = imgdata;
      this.deploymentTime = "无数据" && this.a.stime;
      this.detailsData = {
        machineName: this.a.deviceName, // 设备名称
        machineNumber: this.a.deviceNumber, //
        user: this.a.ownership, //     使用方
        serialNumber: this.a.serialNumber, //     序列号
        channel: this.a.channelNumber, //     通道号
        deployment: this.a.devicestate == 1 ? "布防" : "撤防", //     布撤防状态:
        machineType: this.a.deviceType, //     设备类型
        province: ["邮编:", this.a.district, ""], //     省份
        street: this.a.street, //     街道
        person: this.a.oneContacts, //     负责人
        call: this.a.onePhone, //     负责人电话
        dueDate: this.a.expireTime, //     到期时间
        payment: this.a.pay, //     缴费信息
        installation: this.a.stime, //     安装时间
        heartbeat: this.a.heartbeat, //     心跳时间
      };
      this.form = c;
    },
    getdataG() {
      var dataG = {
        deviceNumber: this.myDeviceNumber,
        // deviceNumber: '000000000008',
        current: "1",
        size: "100",
      };
      getGalarm(dataG).then((res) => {
        var ds = res.data.data.records;
        // console.log(ds)
        this.setdataG(ds);
        this.jingqingPdianji = ds;
      });
    },
    setdataG(d) {
      this.eventDetaill = [];
      var Num = [];
      var creates = function (yearnum, datas) {
        Num.push({
          year: yearnum,
          data: datas,
        });
      };
      //按年份划分;
      for (var i = 2023; i > 2019; i--) {
        //循环可能的年份
        var tData = [],
          useNum = {}; //判断年份是否存在
        for (var key in d) {
          // 循环原数据
          var times = d[key].alarmTime, //写入时间
            y = times.substr(0, 4),
            da = `${times.substr(5, 2)}月${times.substr(8, 2)}日`,
            hms = times.substr(11, 9);
          if (y == i) {
            useNum[i] = true;
            tData.push({
              day: da,
              time: hms,
              events: d[key].content,
              state:
                d[key].jtype == 0
                  ? "未处理"
                  : d[key].jtype == 1
                  ? "处理中"
                  : "已处理",
              galarmPeople: d[key].galarmPeople,
              oneContacts: d[key].oneContacts,
              alarmPeople: d[key].alarmPeople,
              onePhone: d[key].onePhone,
              jjTime: d[key].jjTime,
              childs: [],
            });
          }
        }
        if (useNum[i] == true) {
          // console.log(tData);
          tData.sort((a, b) => {
            var aa = a.day.substr(0, 2) + a.day.substr(3, 2),
              bb = b.day.substr(0, 2) + b.day.substr(3, 2);
            if (+aa < +bb) {
              return 1;
            } else {
              return -1;
            }
          });
          creates(i, tData);
        }
      }
      for (var k1 in Num) {
        //添加序号
        var n2 = Num[k1];
        for (var k2 in n2) {
          if (k2 == "year") {
            continue;
          }
          // console.log(n2[k2])
          var n3 = n2[k2];
          for (var k3 in n3) {
            // console.log(+k3 + 1);
            n3[k3].i = +k3 + 1;
          }
        }
      }
      // console.log(Num);
      this.eventDetaill = Num;
      this.eventDetails = this.eventDetaill; //载入历史事件数据
    },
    getdataM() {
      var dataM = {
        deviceNumber: this.myDeviceNumber,
        // deviceNumber: '000000000008',
      };
      getnum(dataM).then((res) => {
        var nums = res.data;
        this.setdataM(nums);
        // console.log(nums)
      });
    },
    setdataM(ns) {
      var dataM = [];
      for (var key in ns) {
        dataM.push(ns[key].count);
      }
      // console.log(dataM);
      this.numdatalist = dataM;
      this.startEcharts01();
    },
    getMap() {
      window.frames[1].init("DetailMap", {
        x: this.a.jd,
        y: this.a.wd,
      });
    },
    re() {
      //   var _body = window.parent;
      //   var _iframe1=_body.document.getElementById('detailMap');
      //   window.onbeforeunload=function(){};
      //   _iframe1.contentWindow.location.reload(true);
      location.reload();
    },
    handleCurrentChange(val) {
      //行点击事件
      var b = this.jingqingPdianji;
      for (var key in b) {
        if (b[key].jjTime == val.jjTime) {
          // console.log(b[key]);
          // this.$store.commit("SET_DATAL", this.a);
          this.$router.push({ path: "/policeTracking/track", query: b[key] });
        }
      }
      // console.log(this.$store.state)
    },
    //获取视频
    openRealVideoBox(serialNumber, channelNumber,deviceNumber,manufacturer) {
      var that = this;
      if (manufacturer == "HK"){
        axios
          .get(
            `/api/blade-jfpts/equipment/equipment/selectEquimentPlayInfo?number=${deviceNumber}&bmp=m3u8&manufacturer=${manufacturer}`
          )
          .then((result) => {
            that.videoSource = result.data.data.data.url;
            if (Hls.isSupported()) {
              var dom = document.getElementById(
                "real_video_conversationDataL"
              );
              that.hls = new Hls();
              var m3u8Url = decodeURIComponent(that.videoSource);
              that.hls.loadSource(m3u8Url);
              that.hls.attachMedia(dom);
              that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
                dom.play();
              });
              that.hls.on(Hls.Events.ERROR, function (event, data) {
                // console.log(data, 4566824159, "视频播放有问题!!!");
                if (data.fatal) {
                  switch (data.type) {
                    case Hls.ErrorTypes.NETWORK_ERROR:
                      console.log(
                        "fatal network error encountered, try to recover"
                      );
                      that.hls.startLoad();
                      break;
                    case Hls.ErrorTypes.MEDIA_ERROR:
                      console.log(
                        "fatal media error encountered, try to recover"
                      );
                      that.hls.recoverMediaError();
                      break;
                  }
                }
                // console.log(udd);
                if(udd.length != 0){//若data中没有符合的选项,则整个过滤
                    useD.push({
                        year: uA[key].year,
                        data: udd
                    })
                }
              });
            }
            // console.log(useD)
            this.eventDetails = useD;
        },
        getdata(){
            const url = 'http://localhost:1888/api/blade-jfpts/equipment/equipment/pageDept?deviceName=000000000001&current=1&size=10&pid='
            axios.get(url)
            .then((res)=>{
                var data = res.data.data.records[0];
                this.stetDetails(data);
                console.log(data);
            })
        },
        stetDetails(d){
            this.name = d.deviceName;
            this.machineCode = d.deviceNumber;
          });
      }else{
        var res = that.a;
        if (res.deviceName.indexOf("(象湖院区)") != -1 || res.deviceName.indexOf("(东湖院区)") != -1){
          debugger
          var dom = document.getElementById(
            "real_video_conversationDataL"
          );
          dom.src = res.netType;
          dom.play();
          return;
        }
        var newAxios = axios.create({
          baseURL: "https://web.byisf.com:18000",
          withCredentials: false,
          headers: {
            "Content-type": "application/x-www-form-urlencoded",
          },
        });
        newAxios
          .post(
            "/api_control",
            {},
            {
              params: {
                param: JSON.stringify({ PktType: "GetAccessToken" }),
              },
            }
          )
          .then((res) => {
            newAxios
              .get(
                `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${serialNumber}&chl=${channelNumber}`
              )
              .then((result) => {
                that.videoSource = result.data.data.m3u8;
                if (Hls.isSupported()) {
                  var dom = document.getElementById(
                    "real_video_conversationDataL"
                  );
                  that.hls = new Hls();
                  var m3u8Url = decodeURIComponent(that.videoSource);
                  that.hls.loadSource(m3u8Url);
                  that.hls.attachMedia(dom);
                  that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
                    dom.play();
                  });
                  that.hls.on(Hls.Events.ERROR, function (event, data) {
                    // console.log(data, 4566824159, "视频播放有问题!!!");
                    if (data.fatal) {
                      switch (data.type) {
                        case Hls.ErrorTypes.NETWORK_ERROR:
                          console.log(
                            "fatal network error encountered, try to recover"
                          );
                          that.hls.startLoad();
                          break;
                        case Hls.ErrorTypes.MEDIA_ERROR:
                          console.log(
                            "fatal media error encountered, try to recover"
                          );
                          that.hls.recoverMediaError();
                          break;
                      }
                    }
                  });
                }
              });
          });
      }
    },
    created() {
        this.baseUrl = `/map/index.html?openid=SupervisoryMap`;
        this.getdata();
    },
    mounted(){
        this.startEcharts01();//载入折线图
        this.eventDetails = this.eventDetaill;//载入历史事件数据
        // this.doEvents();//cc
  },
  created() {
    // let loadingInstance1  = Loading.service({ fullscreen: true });
    // this.baseUrl = `/map/index.html?openid=SupervisoryMap`;
    // this.a = this.$route.query.deviceNumber == undefined? this.$store.state.dataL.dataLa : this.$route.query;
    if(this.$route.query.deviceNumber == undefined){
      this.a = this.$store.state.dataL.dataLa;
    }else{
      this.a =  this.$route.query;
    this.$store.commit("SET_DATAL", this.a);//每次都缓存在vuex中,如果没有从正确路径进来,则使用缓存
    }
}
    // console.log(this.a);
    this.baseUrl = `/map/index.html?ISinit=1&openid=DetailMap&jd=${this.a.jd}&wd=${this.a.wd}`;
    this.myDeviceNumber = this.a.deviceNumber;
    // console.log(this.a);
    // console.log(this.myDeviceNumber);
    this.getdata();
    this.getdataG();
    this.getdataM();
  },
  mounted() {
    this.loginEcharts01(); //载入折线图等待数据
    // this.eventDetails = this.eventDetaill;//载入历史事件数据
    // this.doEvents();
    // var timel = setTimeout(() => {
    this.$refs.detailMap.onload = () => {
      // window.frames[1].init("DetailMap", {
      //   x: this.a.jd,
      //   y: this.a.wd,
      // });
      if (window.frames[1].init) {
        this.getMap();
      } else {
        // this.re();
        console.log(`没有找到到window.frames[1].init`);
      }
    };
  },
  watch: {
    activeName() {
      if (this.activeName == "third") {
        this.i++;
        this.openRealVideoBox(this.a.serialNumber, this.a.channelNumber,this.a.deviceNumber,this.a.manufacturers);
      } else {
        var dom = document.getElementById("real_video_conversationDataL");
        if (dom.getAttribute("src") != "") {
          dom.pause();
          dom.setAttribute("src", "");
          this.hls.destroy();
        }
      }
    },
  },
};
</script>
<style lang="scss" >
#Lour{
    width: 100%;
video::-webkit-media-controls-timeline {
            display: none;
        }
#Lour {
  width: 100%;
  font-size: 14px;
  height: 100%;
  // font: 12px/1.5 Tahoma,Helvetica,Arial,'宋体',sans-serif;
  // font: 12px/1 Tahoma,Helvetica,Arial,"\5b8b\4f53",sans-serif;
  // font: 14px/1.5 'Microsoft YaHei',arial,tahoma,\5b8b\4f53,sans-serif;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  // border: 1px solid #000;
  display: flex;
  // align-items: center;
  justify-content: space-around;
  // position: relative;
  font-size: 13px;
  line-height: 20px;
  font-weight: normal;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
  .left {
    width: 67%;
    height: 100%;
    // font: 12px/1.5 Tahoma,Helvetica,Arial,'宋体',sans-serif;
    // font: 12px/1 Tahoma,Helvetica,Arial,"\5b8b\4f53",sans-serif;
    font: 14px/1.5 'Microsoft YaHei',arial,tahoma,\5b8b\4f53,sans-serif;
    // border: 1px solid #000;
    // border: 1px solid rgb(236, 24, 24);
    background-color: #fff;
    display: flex;
    // align-items: center;
    justify-content: space-around;
    .left{
        width: 67%;
        height: 100%;
        // border: 1px solid rgb(236, 24, 24);
        background-color: #fff;
    justify-content: center;
    flex-direction: column;
    .top {
      width: 98%;
      height: 150px;
      // border: 1px solid rgb(21, 18, 204);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      font-family: PingFangSC-Regular;
      .top-t,
      .top-b {
        width: 95%;
        // padding-left: 50px;
      }
      .top-t {
        display: flex;
        justify-content: center;
        flex-direction: column;
        .top{
            width:98%;
            height: 150px;
            // border: 1px solid rgb(21, 18, 204);
            display: flex;
            align-items: center;
            justify-content: space-between;
            .top-l{
                width:400px;
                // border: 1px solid rgb(24, 207, 48);
                div{
                    display: flex;
                    align-items: center;
                    justify-content: space-around;
                    font-size: 14px;
                    // border: 1px solid rgb(24, 207, 48);
                }
                .left-top{
                     padding-left: 15px;
                    // border: 1px solid rgb(24, 207, 48);
                }
            }
            .left-bot,.top-r{
                    font-weight: 900;
                    color: rgba($color: #00000075, $alpha: 0.25);
                }
            .top-r{
                width:250px;
                // border: 1px solid rgb(24, 207, 48);
            }
            // border-bottom:1px solid #000;
        align-items: center;
        justify-content: space-between;
        // border: 1px solid rgb(204, 161, 18);
        .t-t-title {
          font-size: 14px;
          white-space: nowrap;
          text-overflow: ellipsis;
          overflow: hidden;
          // border: 1px solid rgb(18, 204, 80);
        }
        .l-main{
            width:98%;
            height: aotu;
            // border: 1px solid rgb(21, 18, 204);
        .t-t-title2 {
          position: relative;
          top: 25px;
          .t-t-state {
            .l-t-s-yuan {
              display: inline-block;
              width: 10px;
              height: 10px;
              border-radius: 5px;
              border: 1px solid transparent;
            }
            .l-t-s-grey {
              background-color: #cdcdcd;
            }
            .l-t-s-green {
              background-color: #32c1a2;
            }
            .l-t-s-yewllo {
              background-color: #f49966;
            }
            .l-t-s-red {
              background-color: #f35b5b;
            }
          }
        }
        .l-main-3{
            border: 1px solid rgba(14, 14, 14,0);
            width: 99%;
            height: 654px;
            padding: 2px;
            .l-m-3-heard{
                margin-left: 20px;
                padding: 10px;
                display: flex;
                align-items: center;
                h2{
                    font-weight: 300;
                    width: 30%;
                }
                div{
                    font-size: 12px;
                    color: rgba($color: #000000, $alpha: .6);
                    width: 60%;
                    position: relative;
                    top: 8px;
                    left: -20px;
                }
            }
            .l-m-3-main{
                margin: 30px;
                // border: 1px solid rgba(212, 25, 25, 0.829);
                .l-m-3-m-f-pro{
                    float: left;
                    width: 85px;
                    margin-right: 10px;
                }
                // .l-m-3-m-ones{
                //     display: flex;
                //     align-items: center;
                //     justify-content: center;
                //     .l-m-3-m-o-keys{
                //         width: 80px;
                //         height: 25px;
                //     }
                //     .l-m-3-m-o-value{
                //         font-size: 14px;
                //         padding-left: 10px;
                //         // background-color: rgba($color: #747474, $alpha: .1);
                //         width: 300px;
                //         height: 25px;
                //         line-height: 25px;
                //         border: 1px solid rgba(70, 63, 63, 0.829);
                //         border-radius: 10px;
                //         color: rgba($color: #7a7979, $alpha: .9);
                //     }
                // }
                // .l-m-3-m-o-r{
                //     float: right;
                // }
                // .l-m-3-m-o-l{
                //     float: left;
                // }
            }
        }
        .l-main-2{
            width: 98%;
            height: 400px;
            // border: 1px solid rgb(21, 18, 204);
            .l-m-2-heard{
                width: 100%;
                height: 25px;
                // border: 1px solid rgb(24, 204, 18);
                display: flex;
                align-items: center;
                span{
                    padding-left: 20px;
                    // border: 1px solid rgb(23, 66, 209);
                }
            }
            .l-m-2-main{
                width: 100%;
                height: 370px;
                overflow: scroll;
                // border: 1px solid rg b(23, 66, 209);
                .l-m-2-m-not{
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    flex-direction: column;
                    position: relative;
                    top: 25px;
                    img{
                        width: 180px;
                        height: 180px;
                    }
                    div{
                        font-size: 12px;
                        color: rgba($color: #000000, $alpha: .3);
                    }
                }
                .l-m-2-m-table{
                    .l-m-2-m-tablemain{
                        .l-m-2-m-tm-int{
                            position: relative;
                            top: -10px;
                        }
                    }
                }
                .l-m-2-m-dat{
                    width: 100%;
                    height: 300px;
                    overflow: scroll;
                    // border: 1px solid rgb(23, 66, 209);
                    .l-m-2-m-d-data{
                        width: 100%;
                        // position: absolute;
                    }
                    .l-m-2-m-d-bot{
                        // border: 1px solid rgb(23, 66, 209);
                        // width: 63%;
                        height: 25px;
                        text-align: center;
                        // position: fixed;
                        // bottom: 0;
                        font-weight: 800;
                        color: rgba($color: #000000, $alpha: .4);
                        background-color: rgba($color: #ffffff, $alpha: 1.0);
                        z-index: 100;
                    }
                }
            }
        }
      }
      .top-b,
      .t-t-time {
        // width: 100%;
        font-weight: 600;
        color: rgba($color: #6b6b6b, $alpha: 0.5);
        // border: 1px solid rgb(18, 204, 148);
      }
      // .top-l {
      //   position: relative;
      //   top: 40px;
      //   width: 500px;
      //   border: 1px solid rgb(24, 207, 48);
      //   div {
      //     display: flex;
      //     align-items: center;
      //     justify-content: space-around;
      //     font-size: 14px;
      //     // border: 1px solid rgb(24, 207, 48);
      //   }
      //   .left-top {
      //     p {
      //       width: 356px;
      //       // border: 1px solid rgb(37, 37, 37);
      //     }
      //     padding-left: 15px;
      //     // border: 1px solid rgb(24, 207, 48);
      //     .l-t-state {
      //       // border: 1px solid rgb(24, 207, 48);
      //       position: relative;
      //       top: 5px;
      //       left: 50px;
      //       width: 55px;
      //       .l-t-s-yuan {
      //         display: block;
      //         width: 10px;
      //         height: 10px;
      //         border-radius: 5px;
      //         border: 1px solid transparent;
      //       }
      //       .l-t-s-grey {
      //         background-color: #cdcdcd;
      //       }
      //       .l-t-s-green {
      //         background-color: #32c1a2;
      //       }
      //       .l-t-s-yewllo {
      //         background-color: #f49966;
      //       }
      //       .l-t-s-red {
      //         background-color: #f35b5b;
      //       }
      //     }
      //   }
      // }
      // .left-bot,
      // .top-r {
      //   font-size: 14px;
      //   font-weight: 400;
      //   color: #c4c4c4;
      //   // border: 1px solid rgb(24, 207, 48);
      // }
      // .left-bot {
      //   position: relative;
      //   left: -68px;
      //   p {
      //     width: 295px;
      //     // border: 1px solid rgb(37, 37, 37);
      //   }
      // }
      // .top-r {
      //   width: 250px;
      //   // border: 1px solid rgb(24, 207, 48);
      //   float: right;
      //   position: relative;
      //   top: -50px;
      // }
      // // border-bottom:1px solid #000;
    }
    .right{
        width: 30%;
        height: 88.5%;
        // border: 1px solid rgb(23, 201, 62);
        background-color: #fff;
    .l-main {
      width: 98%;
      height: aotu;
      // border: 1px solid rgb(21, 18, 204);
    }
    .l-main-3 {
      border: 1px solid rgba(14, 14, 14, 0);
      width: 99%;
      height: 654px;
      padding: 2px;
      .l-m-3-heard {
        margin-left: 20px;
        padding: 10px;
        display: flex;
        // justify-content: center;
        flex-direction: column;
        // margin-top: -5px;
        padding: 20px;
        padding-top: 60px;
        .r-heard{
            font-size: 14px;
            height: 35px;
            border-bottom:1px solid rgba($color: #000000, $alpha: .3) ;
            display: flex;
            justify-content: space-between;
            .r-but-top{
                border: transparent;
                background: transparent;
                color: #29c093;
                position: relative;
                top: -7px;
                font-size: 14px;
            }
        align-items: center;
        h2 {
          font-weight: 300;
          width: 30%;
        }
        .r-body{
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            height: 700px;
            // border: 1px solid rgb(23, 201, 62);
            font-weight: normal;
            font-size: 14px;
            .r-b-top{
                height: 270px;
                display: flex;
                // border: 1px solid rgb(23, 201, 62);
                display: flex;
                flex-direction: column;
                .r-b-t-main{
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    padding: 10px 0 10px 0;
                }
                .r-b-t-left{
                    display: block;
                    width: 27%;
                    // position:absolute;
                    // top: -20px;
                    // border: 1px solid rgb(148, 199, 159);
                }
                .r-b-t-right{
                    display: block;
                    width: 70%;
                    // border: 1px solid rgb(49, 74, 184);
                    .r-b-t-r-label{
                        float: left;
                        margin-right: 10px;
                        padding: 0 10px 0 10px;
                        border: 1px solid rgba($color: #000000, $alpha: .5);
                        border-radius: 5px;
                    }
                    .r-b-t-r-imgsl{
                        // width: 68px;
                        // height: 68px;
                        // border: 1px solid rgb(213, 37, 219);
                        float: left;
                        padding: 0 3px 0 3px;
                    }
                }
            }
            .r-b-map{
                    height: 400px;
                    border: 1px solid rgba(109, 109, 109,0.2);
                    #supervisoryMap{
                        width: 100%;
                        height: 400px;
                    }
            }
        div {
          font-size: 12px;
          color: rgba($color: #000000, $alpha: 0.6);
          width: 60%;
          position: relative;
          top: 8px;
        }
      }
      .l-m-3-main {
        margin: 30px;
        // border: 1px solid rgba(212, 25, 25, 0.829);
        .l-m-3-m-f-pro {
          float: left;
          width: 85px;
          margin-right: 10px;
        }
        // .l-m-3-m-ones{
        //     display: flex;
        //     align-items: center;
        //     justify-content: center;
        //     .l-m-3-m-o-keys{
        //         width: 80px;
        //         height: 25px;
        //     }
        //     .l-m-3-m-o-value{
        //         font-size: 14px;
        //         padding-left: 10px;
        //         // background-color: rgba($color: #747474, $alpha: .1);
        //         width: 300px;
        //         height: 25px;
        //         line-height: 25px;
        //         border: 1px solid rgba(70, 63, 63, 0.829);
        //         border-radius: 10px;
        //         color: rgba($color: #7a7979, $alpha: .9);
        //     }
        // }
        // .l-m-3-m-o-r{
        //     float: right;
        // }
        // .l-m-3-m-o-l{
        //     float: left;
        // }
      }
    }
}
    .l-main-2 {
      width: 98%;
      height: 400px;
      // border: 1px solid rgb(21, 18, 204);
      .l-m-2-heard {
        width: 100%;
        height: 25px;
        // border: 1px solid rgb(24, 204, 18);
        display: flex;
        align-items: center;
        span {
          padding-left: 20px;
          // border: 1px solid rgb(23, 66, 209);
        }
      }
      .l-m-2-main {
        width: 100%;
        height: 370px;
        // overflow: scroll;
        overflow-y: scroll; //滚动条
        scrollbar-color: transparent transparent;
        scrollbar-track-color: transparent;
        -ms-scrollbar-track-color: transparent;
.backc{
    background-color: #29c093;
}
  .grid-content {
    border-radius: 4px;
    min-height: 36px;
        // border: 1px solid rg b(23, 66, 209);
        .l-m-2-m-not {
          display: flex;
          align-items: center;
          justify-content: center;
          flex-direction: column;
          position: relative;
          top: 25px;
          img {
            width: 180px;
            height: 180px;
          }
          div {
            font-size: 12px;
            color: rgba($color: #000000, $alpha: 0.3);
          }
        }
        .l-m-2-m-table {
          .l-m-2-m-tablemain {
            .l-m-2-m-tm-int {
              position: relative;
              top: -10px;
            }
          }
        }
        .l-m-2-m-dat {
          width: 100%;
          height: 300px;
          overflow: scroll;
          // border: 1px solid rgb(23, 66, 209);
          .l-m-2-m-d-data {
            width: 100%;
            // position: absolute;
          }
          .l-m-2-m-d-bot {
            // border: 1px solid rgb(23, 66, 209);
            // width: 63%;
            height: 25px;
            text-align: center;
            // position: fixed;
            // bottom: 0;
            font-weight: 800;
            color: rgba($color: #000000, $alpha: 0.4);
            background-color: rgba($color: #ffffff, $alpha: 1);
            z-index: 100;
          }
        }
      }
    }
  }
  .right {
    width: 30%;
    height: 95.5%;
    // border: 1px solid rgb(23, 201, 62);
    background-color: #fff;
    display: flex;
    // justify-content: center;
    flex-direction: column;
    // margin-top: -5px;
    padding: 20px;
    padding-top: 60px;
    .r-heard {
      font-size: 14px;
      height: 35px;
      border-bottom: 1px solid rgba($color: #000000, $alpha: 0.3);
      display: flex;
      justify-content: space-between;
      .r-but-top {
        border: transparent;
        background: transparent;
        color: #29c093;
        position: relative;
        top: -7px;
        font-size: 14px;
      }
    }
    .r-body {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      height: 700px;
      // border: 1px solid rgb(23, 201, 62);
      font-weight: normal;
      font-size: 14px;
      .r-b-top {
        height: 380px;
        display: flex;
        // border: 1px solid rgb(23, 201, 62);
        display: flex;
        flex-direction: column;
        .r-b-t-main {
          display: flex;
          align-items: center;
          justify-content: space-between;
          // border: 1px solid rgb(148, 199, 159);
          padding: 10px 0 10px 0;
          margin-bottom: 5px;
        }
        .r-b-t-left {
          display: block;
          width: 27%;
          // position:absolute;
          // top: -20px;
          // border: 1px solid rgb(148, 199, 159);
        }
        .r-b-t-right {
          display: block;
          width: 70%;
          color: #5d5d5d;
          font-size: 12px;
          // border: 1px solid rgb(49, 74, 184);
          .r-b-t-r-label {
            float: left;
            margin-right: 10px;
            padding: 0 10px 0 10px;
            border: 1px solid rgba($color: #000000, $alpha: 0.5);
            border-radius: 5px;
          }
          .r-b-t-r-imgsl {
            // width: 68px;
            // height: 68px;
            // border: 1px solid rgb(213, 37, 219);
            float: left;
            padding: 0 3px 0 3px;
          }
        }
      }
      .r-b-map {
        height: 350px;
        // border: 1px solid rgba(109, 109, 109, 0.2);
        #detailMap {
          position: relative;
          top: 25px;
          width: 100%;
          height: 350px;
        }
      }
    }
  }
}
.backc {
  background-color: #29c093;
}
.grid-content {
  border-radius: 4px;
  min-height: 36px;
}
//表格cc
  .demo-table-expand {
    font-size: 0;
  }
  .demo-table-expand label {
    width: 90px;
    color: #99a9bf;
  }
  .demo-table-expand .el-form-item {
    margin-right: 0;
    margin-bottom: 0;
    width: 50%;
  }
</style>
.demo-table-expand {
  font-size: 0;
}
.demo-table-expand label {
  width: 90px;
  color: #99a9bf;
}
.demo-table-expand .el-form-item {
  margin-right: 0;
  margin-bottom: 0;
  width: 50%;
}
video::-webkit-media-controls-timeline {
  display: none;
}
</style>