zhangzengfei
2022-10-08 ba50073d4aeda7a1e30243e6469be9c2cec472b3
修改检索显示的摄像机地址,调整上报页面的查询
5个文件已修改
423 ■■■■■ 已修改文件
src/components/subComponents/ModelCard.vue 349 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataPush/components/dataPush.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataPush/components/device.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataPush/components/point.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/search/components/ModelCard.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/subComponents/ModelCard.vue
@@ -1,10 +1,6 @@
<template>
  <div class="model-card-box" :style="`height:${height};width:${width};`">
    <el-tabs
      style="height: 100%;"
      @before-leave="changeTabs"
      v-model="activeName"
    >
    <el-tabs style="height: 100%;" @before-leave="changeTabs" v-model="activeName">
      <el-tab-pane label="大图" name="pic">
        <div
          class="model-card-box-left"
@@ -20,77 +16,45 @@
            </p>
            <!-- 人脸类型 -->
            <img-down
              v-if="
                data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''
              "
              v-if="data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''"
              :url="data.picMaxUrl[0]"
            ></img-down>
            <!-- 普通yolo类 -->
            <img-down
              v-else-if="
                (data.targetInfo == null ||
                  data.targetInfo[0].picSmUrl == '') &&
                  data.picMaxUrl.length == 1
              "
              v-else-if="(data.targetInfo == null || data.targetInfo[0].picSmUrl == '') && data.picMaxUrl.length == 1"
              :url="data.picMaxUrl[0]"
            ></img-down>
            <!-- 持续时间yolo类 -->
            <el-carousel
              v-else-if="
                (data.targetInfo == null ||
                  data.targetInfo[0].picSmUrl == '') &&
                  data.picMaxUrl.length > 1
              "
              v-else-if="(data.targetInfo == null || data.targetInfo[0].picSmUrl == '') && data.picMaxUrl.length > 1"
              trigger="click"
              height="100%"
              :autoplay="false"
            >
              <el-carousel-item
                v-for="(item, index) in data.picMaxUrl"
                :key="index"
              >
              <el-carousel-item v-for="(item, index) in data.picMaxUrl" :key="index">
                <img-down :url="item"></img-down>
              </el-carousel-item>
            </el-carousel>
            <!-- yolo类大图 -->
            <div
              class="describe"
              v-if="
                data.targetInfo == null || data.targetInfo[0].picSmUrl == ''
              "
            >
            <div class="describe" v-if="data.targetInfo == null || data.targetInfo[0].picSmUrl == ''">
              <p>
                <span class="fontStyleForModel" style="font-weight:normal">{{
                  data.picDate | formatTime
                }}</span>
                <span class="fontStyleForModel" style="font-weight:normal">{{ data.picDate | formatTime }}</span>
              </p>
              <p>
                <span class="fontStyleForModel">{{ data.cameraAddr }}</span>
                <span
                  class="fontStyleForModel analyServer"
                  style="margin-left:20px;"
                  >{{ data.analyServerName }}</span
                >
                <span class="fontStyleForModel">{{ data.cameraName }}</span>
                <span class="fontStyleForModel analyServer" style="margin-left:20px;">{{ data.analyServerName }}</span>
              </p>
              <p></p>
              <p style="width:100%">
                <span
                  v-for="(item, index) in data.alarmRules"
                  :key="index + 'rule'"
                >
                <span v-for="(item, index) in data.alarmRules" :key="index + 'rule'">
                  <span class="fontStyleForModel">{{ data.taskName }}</span
                  >&nbsp;&nbsp;
                  <span
                    v-if="item.alarmLevel !== '撤防'"
                    class="fontStyleForModel"
                    >{{ item.alarmLevel }}</span
                  <span v-if="item.alarmLevel !== '撤防'" class="fontStyleForModel">{{ item.alarmLevel }}</span
                  >&nbsp;
                  <span v-if="item.isLink" class="fontStyleForModel"
                    >联动任务</span
                  >
                  <span v-if="item.isLink" class="fontStyleForModel">联动任务</span>
                  <span v-if="index < data.alarmRules.length - 1">/&nbsp;</span>
                </span>
              </p>
@@ -99,46 +63,26 @@
            <!-- 人脸类大图  -->
            <div class="describeBigImage" v-else>
              <p>
                <span class="fontStyleForModel">{{
                  data.picDate | formatTime
                }}</span>
                <span class="fontStyleForModel">{{ data.picDate | formatTime }}</span>
              </p>
              <p class="align-right">
                <span
                  class="fontStyleForModel text-overflow"
                  :title="data.cameraAddr"
                  >{{ data.cameraAddr }}</span
                >
                <span
                  class="fontStyleForModel text-overflow"
                  :title="data.cameraAddr"
                  style="margin-left:20px;"
                  >{{ data.analyServerName }}</span
                >
                <span class="fontStyleForModel text-overflow" :title="data.cameraName">{{ data.cameraName }}</span>
                <span class="fontStyleForModel text-overflow" :title="data.analyServerName" style="margin-left:20px;">{{
                  data.analyServerName
                }}</span>
              </p>
              <p style="width:100%">
                <span
                  v-for="(item, index) in data.alarmRules"
                  :key="index + 'rule'"
                >
                <span v-for="(item, index) in data.alarmRules" :key="index + 'rule'">
                  <span class="fontStyleForModel">{{ data.taskName }}</span
                  >&nbsp;&nbsp;
                  <span
                    v-if="item.alarmLevel !== '撤防'"
                    class="fontStyleForModel"
                    >{{ item.alarmLevel }}</span
                  <span v-if="item.alarmLevel !== '撤防'" class="fontStyleForModel">{{ item.alarmLevel }}</span
                  >&nbsp;
                  <span v-if="item.isLink" class="fontStyleForModel"
                    >联动任务</span
                  >
                  <span v-if="item.isLink" class="fontStyleForModel">联动任务</span>
                  <span v-if="index < data.alarmRules.length - 1">/&nbsp;</span>
                </span>
              </p>
              <p style="width:100%">
                <span
                  style="white-space: nowrap;font-weight: 600;font-size: 13px;"
                  >{{ data.showLabels }}</span
                >
                <span style="white-space: nowrap;font-weight: 600;font-size: 13px;">{{ data.showLabels }}</span>
              </p>
            </div>
          </div>
@@ -146,16 +90,10 @@
        <!-- 弹框右侧 -->
        <div
          v-if="
            data.targetInfo &&
              data.targetInfo !== null &&
              data.targetInfo[0].picSmUrl !== ''
          "
          v-if="data.targetInfo && data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''"
          class="model-card-box-right"
          :style="
            data.targetInfo &&
            data.targetInfo !== null &&
            data.targetInfo[0].picSmUrl !== ''
            data.targetInfo && data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''
              ? 'width: 35%;box-sizing: border-box;'
              : ''
          "
@@ -164,17 +102,10 @@
            <b>抓拍图</b>
          </p>
          <!-- 左右两张的人脸对比模式 -->
          <div
            class="img-box"
            v-if="data.baseInfo && data.baseInfo.length >= 1"
            ref="picSmBox"
          >
          <div class="img-box" v-if="data.baseInfo && data.baseInfo.length >= 1" ref="picSmBox">
            <div class="card-img-box-compear-left">
              <!-- <img :src="'/httpImage/'+data.targetInfo[0].picSmUrl" ref="picSm" /> -->
              <img-down
                :url="data.targetInfo[0].picSmUrl"
                :isPreview="false"
              ></img-down>
              <img-down :url="data.targetInfo[0].picSmUrl" :isPreview="false"></img-down>
            </div>
            <el-carousel
              @change="changeInitialIndex"
@@ -185,91 +116,57 @@
              v-if="data.baseInfo[0].targetPicUrl != ''"
              class="card-img-box-compear-right"
            >
              <el-carousel-item
                v-for="(item, index) in data.baseInfo"
                :key="index"
              >
              <el-carousel-item v-for="(item, index) in data.baseInfo" :key="index">
                <!-- <img :src="'/httpImage/'+item.targetPicUrl" /> -->
                <img-down
                  :url="item.targetPicUrl"
                  :isPreview="false"
                ></img-down>
                <img-down :url="item.targetPicUrl" :isPreview="false"></img-down>
              </el-carousel-item>
            </el-carousel>
            <div
              class="img-compareScore"
              v-if="data.baseInfo[0].targetPicUrl != ''"
              :style="
                data.baseInfo[initialIndex].bwType === '1'
                  ? `background: red;`
                  : `background: green;`
              "
              :style="data.baseInfo[initialIndex].bwType === '1' ? `background: red;` : `background: green;`"
            >
              <b>{{ data.baseInfo[initialIndex].compareScore | percentage }}</b>
            </div>
          </div>
          <!-- 没有比对的人脸识别模式 -->
          <div
            class="img-box"
            v-if="!data.baseInfo && data.targetInfo[0].picSmUrl !== ''"
          >
            <div
              class="card-img-box-compear-left"
              style="width:60%;margin-top:5px"
            >
          <div class="img-box" v-if="!data.baseInfo && data.targetInfo[0].picSmUrl !== ''">
            <div class="card-img-box-compear-left" style="width:60%;margin-top:5px">
              <!-- <img :src="'/httpImage/'+data.targetInfo[0].picSmUrl" /> -->
              <img-down
                :url="data.targetInfo[0].picSmUrl"
                :isPreview="false"
              ></img-down>
              <img-down :url="data.targetInfo[0].picSmUrl" :isPreview="false"></img-down>
            </div>
          </div>
          <div
            class="baseInfo"
            v-if="data.baseInfo && data.baseInfo[0].targetPicUrl != ''"
          >
          <div class="baseInfo" v-if="data.baseInfo && data.baseInfo[0].targetPicUrl != ''">
            <div class="baseInfo_list">
              <p>
                <span class="labelInfo">底库</span>
                <span
                  class="val"
                  :title="data.baseInfo[initialIndex].tableName"
                  >{{ data.baseInfo[initialIndex].tableName }}</span
                >
                <span class="val" :title="data.baseInfo[initialIndex].tableName">{{
                  data.baseInfo[initialIndex].tableName
                }}</span>
              </p>
              <p>
                <span class="labelInfo">姓名</span>
                <span
                  class="val"
                  :title="data.baseInfo[initialIndex].targetName"
                  >{{ data.baseInfo[initialIndex].targetName }}</span
                >
                <span class="val" :title="data.baseInfo[initialIndex].targetName">{{
                  data.baseInfo[initialIndex].targetName
                }}</span>
              </p>
              <p>
                <span class="labelInfo">性别</span>
                <span class="val">{{
                  data.baseInfo[initialIndex].labels | sex
                }}</span>
                <span class="val">{{ data.baseInfo[initialIndex].labels | sex }}</span>
              </p>
              <p>
                <span class="labelInfo">身份证号</span>
                <span class="val">{{
                  data.baseInfo[initialIndex].labels | idCard
                }}</span>
                <span class="val">{{ data.baseInfo[initialIndex].labels | idCard }}</span>
              </p>
              <p>
                <span class="labelInfo">手机号</span>
                <span class="val">{{
                  data.baseInfo[initialIndex].labels | phoneNum
                }}</span>
                <span class="val">{{ data.baseInfo[initialIndex].labels | phoneNum }}</span>
              </p>
              <p>
                <span class="labelInfo">人员等级</span>
                <span
                  class="val"
                  :title="data.baseInfo[initialIndex].monitorLevel"
                  >{{ data.baseInfo[initialIndex].monitorLevel }}</span
                >
                <span class="val" :title="data.baseInfo[initialIndex].monitorLevel">{{
                  data.baseInfo[initialIndex].monitorLevel
                }}</span>
              </p>
            </div>
          </div>
@@ -293,35 +190,23 @@
            >
              您的浏览器不支持 video 标签。
            </video> -->
            <wasm-player
              :videoUrl="data.videoUrl"
              :isStream="false"
            ></wasm-player>
            <wasm-player :videoUrl="data.videoUrl" :isStream="false"></wasm-player>
          </div>
        </div>
        <div
          v-if="data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''"
          class="model-card-box-right"
          :style="
            data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''
              ? 'width: 35%;box-sizing: border-box;'
              : ''
            data.targetInfo !== null && data.targetInfo[0].picSmUrl !== '' ? 'width: 35%;box-sizing: border-box;' : ''
          "
        >
          <p class="img-box-title">
            <b>抓拍图</b>
          </p>
          <!-- 左右两张的人脸对比模式 -->
          <div
            class="img-box"
            v-if="data.baseInfo && data.baseInfo.length >= 1"
            ref="picSmBox"
          >
          <div class="img-box" v-if="data.baseInfo && data.baseInfo.length >= 1" ref="picSmBox">
            <div class="card-img-box-compear-left">
              <img-down
                :url="data.targetInfo[0].picSmUrl"
                :isPreview="false"
              ></img-down>
              <img-down :url="data.targetInfo[0].picSmUrl" :isPreview="false"></img-down>
            </div>
            <el-carousel
              @change="changeInitialIndex"
@@ -332,88 +217,57 @@
              class="card-img-box-compear-right"
              :arrow="data.baseInfo.length > 1 ? 'always' : 'never'"
            >
              <el-carousel-item
                v-for="(item, index) in data.baseInfo"
                :key="index"
              >
              <el-carousel-item v-for="(item, index) in data.baseInfo" :key="index">
                <!-- <img :src="'/httpImage/'+item.targetPicUrl" /> -->
                <img-down
                  :url="item.targetPicUrl"
                  :isPreview="false"
                ></img-down>
                <img-down :url="item.targetPicUrl" :isPreview="false"></img-down>
              </el-carousel-item>
            </el-carousel>
            <div
              class="img-compareScore"
              v-if="data.baseInfo[0].targetPicUrl != ''"
              :style="
                data.baseInfo[initialIndex].bwType === '1'
                  ? `background: red;`
                  : `background: green;`
              "
              :style="data.baseInfo[initialIndex].bwType === '1' ? `background: red;` : `background: green;`"
            >
              <b>{{ data.baseInfo[initialIndex].compareScore | percentage }}</b>
            </div>
          </div>
          <!-- 没有比对的人脸识别模式 -->
          <div class="img-box" v-if="!data.baseInfo && data.picMaxUrl">
            <div
              class="card-img-box-compear-left"
              style="width:60%;margin-top:5px"
            >
            <div class="card-img-box-compear-left" style="width:60%;margin-top:5px">
              <!-- <img :src="'/httpImage/'+data.targetInfo[0].picSmUrl" /> -->
              <img-down
                :url="data.targetInfo[0].picSmUrl"
                :isPreview="false"
              ></img-down>
              <img-down :url="data.targetInfo[0].picSmUrl" :isPreview="false"></img-down>
            </div>
          </div>
          <div
            class="baseInfo"
            v-if="data.baseInfo && data.baseInfo[0].targetPicUrl != ''"
          >
          <div class="baseInfo" v-if="data.baseInfo && data.baseInfo[0].targetPicUrl != ''">
            <div class="baseInfo_list">
              <p>
                <span class="labelInfo">底库</span>
                <span
                  class="val"
                  :title="data.baseInfo[initialIndex].tableName"
                  >{{ data.baseInfo[initialIndex].tableName }}</span
                >
                <span class="val" :title="data.baseInfo[initialIndex].tableName">{{
                  data.baseInfo[initialIndex].tableName
                }}</span>
              </p>
              <p>
                <span class="labelInfo">姓名</span>
                <span
                  class="val"
                  :title="data.baseInfo[initialIndex].targetName"
                  >{{ data.baseInfo[initialIndex].targetName }}</span
                >
                <span class="val" :title="data.baseInfo[initialIndex].targetName">{{
                  data.baseInfo[initialIndex].targetName
                }}</span>
              </p>
              <p>
                <span class="labelInfo">性别</span>
                <span class="val">{{
                  data.baseInfo[initialIndex].labels | sex
                }}</span>
                <span class="val">{{ data.baseInfo[initialIndex].labels | sex }}</span>
              </p>
              <p>
                <span class="labelInfo">身份证号</span>
                <span class="val">{{
                  data.baseInfo[initialIndex].labels | idCard
                }}</span>
                <span class="val">{{ data.baseInfo[initialIndex].labels | idCard }}</span>
              </p>
              <p>
                <span class="labelInfo">手机号</span>
                <span class="val">{{
                  data.baseInfo[initialIndex].labels | phoneNum
                }}</span>
                <span class="val">{{ data.baseInfo[initialIndex].labels | phoneNum }}</span>
              </p>
              <p>
                <span class="labelInfo">人员等级</span>
                <span
                  class="val"
                  :title="data.baseInfo[initialIndex].monitorLevel"
                  >{{ data.baseInfo[initialIndex].monitorLevel }}</span
                >
                <span class="val" :title="data.baseInfo[initialIndex].monitorLevel">{{
                  data.baseInfo[initialIndex].monitorLevel
                }}</span>
              </p>
            </div>
          </div>
@@ -425,65 +279,58 @@
<script>
Date.prototype.Format = function(fmt) {
  var o = {
    'M+': this.getMonth() + 1, //月份
    'd+': this.getDate(), //日
    'H+': this.getHours(), //小时
    'm+': this.getMinutes(), //分
    's+': this.getSeconds(), //秒
    'q+': Math.floor((this.getMonth() + 3) / 3), //季度
    S: this.getMilliseconds(), //毫秒
    "M+": this.getMonth() + 1, //月份
    "d+": this.getDate(), //日
    "H+": this.getHours(), //小时
    "m+": this.getMinutes(), //分
    "s+": this.getSeconds(), //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    S: this.getMilliseconds() //毫秒
  }
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(
      RegExp.$1,
      (this.getFullYear() + '').substr(4 - RegExp.$1.length)
    )
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))
  for (var k in o)
    if (new RegExp('(' + k + ')').test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
      )
    if (new RegExp("(" + k + ")").test(fmt))
      fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length))
  return fmt
}
import WasmPlayer from '@/components/wasmPlayer'
import imgDown from '@/components/subComponents/imgDown'
import WasmPlayer from "@/components/wasmPlayer"
import imgDown from "@/components/subComponents/imgDown"
export default {
  components: {
    WasmPlayer,
    imgDown,
    imgDown
  },
  props: {
    height: {
      type: String,
      default: '100%',
      default: "100%"
    },
    width: {
      type: String,
      default: '100%',
      default: "100%"
    },
    data: {
      type: Object,
      require: false,
      default: function() {
        return {}
      },
    },
      }
    }
  },
  filters: {
    formatTime(t) {
      return new Date(t).Format('yyyy-MM-dd HH:mm:ss')
      return new Date(t).Format("yyyy-MM-dd HH:mm:ss")
    },
    percentage(score) {
      return score.toFixed(2) + '%'
      return score.toFixed(2) + "%"
    },
    sex(v) {
      try {
        let obj = JSON.parse(v)
        return obj.sex
      } catch (error) {
        return v.split('/')[0]
        return v.split("/")[0]
      }
    },
    idCard(v) {
@@ -491,7 +338,7 @@
        let obj = JSON.parse(v)
        return obj.idCard
      } catch (error) {
        return v.split('/')[1]
        return v.split("/")[1]
      }
    },
    phoneNum(v) {
@@ -499,20 +346,20 @@
        let obj = JSON.parse(v)
        return obj.phone
      } catch (error) {
        return v.split('/')[2]
        return v.split("/")[2]
      }
    },
    }
  },
  mounted() {
    console.log('ModelCard data', this.data)
    console.log("ModelCard data", this.data)
    console.log(this.data.baseInfo)
    console.log(this.initialIndex)
    //this.VideoPhotoData.activeName = "pic"
  },
  data() {
    return {
      activeName: 'pic',
      initialIndex: 0,
      activeName: "pic",
      initialIndex: 0
    }
  },
  methods: {
@@ -523,15 +370,15 @@
      this.initialIndex = index
    },
    downloadfile() {
      this.filecontent = 'this is my file content'
      let a = document.createElement('a')
      this.filecontent = "this is my file content"
      let a = document.createElement("a")
      a.href = 'data:text/json;charset=utf-8,' + this.filecontent
      a.href = "data:text/json;charset=utf-8," + this.filecontent
      // a.url = "http://192.168.20.112:6154/93,02c5aea4fc614e";
      a.download = 'video.mp4'
      a.download = "video.mp4"
      a.click()
    },
  },
    }
  }
}
</script>
<style lang="scss">
src/views/dataPush/components/dataPush.vue
@@ -10,7 +10,7 @@
        <point></point>
      </el-tab-pane>
      <el-tab-pane name="alarmPush">
        <span slot="label"><i class="el-icon-phone"></i> 报警推送日志</span>
        <span slot="label"><i class="el-icon-phone"></i> 报警上报日志</span>
        <alarmPush></alarmPush>
      </el-tab-pane>
    </el-tabs>
src/views/dataPush/components/device.vue
@@ -3,7 +3,7 @@
    <div class="search">
      <div class="left">
        <div class="id">
          设备名称
          设备名称/IP/编码
          <el-input v-model="inputText" placeholder="请输入" clearable></el-input>
        </div>
      </div>
@@ -26,7 +26,7 @@
        ref="multipleTable"
        :data="dataList"
        :fit="true"
        :default-sort="{ prop: 'createTime', order: 'descending' }"
        :default-sort="{ prop: 'devCode', order: 'ascending' }"
      >
        <el-table-column prop="devName" label="设备名称" show-overflow-tooltip></el-table-column>
        <!-- <el-table-column prop="devId" label="设备ID" show-overflow-tooltip></el-table-column> -->
@@ -35,8 +35,8 @@
        <el-table-column prop="companyCode" label="企业编码" show-overflow-tooltip></el-table-column>
        <el-table-column prop="state" label="状态" show-overflow-tooltip>
          <template slot-scope="scope">
            <div v-if="scope.row.state == 0" class="status green">离线</div>
            <div v-else class="status">在线</div>
            <div v-if="scope.row.state == 0" class="status">离线</div>
            <div v-else class="status green">在线</div>
          </template>
        </el-table-column>
src/views/dataPush/components/point.vue
@@ -3,7 +3,7 @@
    <div class="search">
      <div class="left">
        <div class="id">
          点位名称
          点位名称/企业编码/场景
          <el-input v-model="inputText" placeholder="请输入" clearable></el-input>
        </div>
      </div>
@@ -17,26 +17,20 @@
        <span class="iconfont">&#xe614;</span>
        <span>添加点位</span>
      </div>
      <!-- <div class="switchBox">
        总点位开关
        <el-switch
          v-model="value1"
          width="60"
          active-color="#13ce66"
          inactive-color="#f0f3f5"
          @change="changeAll($event)"
        >
        </el-switch>
      </div> -->
    </div>
    <div class="switchBox">
      开启上报
      <el-table-column prop="Enable" label="开关" width="70px" show-overflow-tooltip>
        <el-switch v-model="value1" active-color="#0065ff" @change="changeAll($event)"> </el-switch>
      </el-table-column>
    </div>
    <div class="table-area">
      <el-table
        id="multipleTable"
        ref="multipleTable"
        :data="dataList"
        :fit="true"
        :default-sort="{ prop: 'createTime', order: 'descending' }"
        :default-sort="{ prop: 'companyCode', order: 'ascending' }"
      >
        <el-table-column prop="cameraName" label="点位名称" width="130px" show-overflow-tooltip></el-table-column>
        <el-table-column prop="channelCode" label="报警通道编码" show-overflow-tooltip></el-table-column>
@@ -47,12 +41,7 @@
        </el-table-column>
        <el-table-column prop="Enable" label="开关" width="70px" show-overflow-tooltip>
          <template slot-scope="scope">
            <el-switch
              v-model="scope.row.enable"
              @change="changeSwitch($event, scope.row)"
              active-color="#13ce66"
              inactive-color="#f0f3f5"
            >
            <el-switch v-model="scope.row.enable" @change="changeSwitch($event, scope.row)" active-color="#0065ff">
            </el-switch>
          </template>
        </el-table-column>
@@ -459,7 +448,6 @@
}
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss">
.sub-account {
  padding: 20px;
@@ -625,10 +613,7 @@
    margin: 20px 0;
    text-align: center;
    justify-content: space-between;
    .switchBox {
      display: flex;
      align-items: center;
    }
    .add {
      margin-right: 20px;
      width: 126px;
@@ -655,7 +640,15 @@
      }
    }
  }
  .switchBox {
    display: flex;
    align-items: center;
    float: right;
    position: absolute;
    right: 20px;
    top: 130px;
    font-size: 14px;
  }
  .el-table ::v-deep {
    background-color: rgb(233, 235, 238);
    padding: 1px;
@@ -779,4 +772,17 @@
  color: #0065ff;
  border-color: #0065ff;
}
/* .el-switch__core {
  width: 40px !important;
  height: 20px;
}
.el-switch__core::after {
  width: 16px;
  height: 16px;
  margin-top: -1px;
}
.el-switch.is-checked .el-switch__core::after {
  margin-left: -17px;
} */
</style>
src/views/search/components/ModelCard.vue
@@ -44,7 +44,7 @@
                <span class="fontStyleForModel" style="font-weight: normal">{{ data.picDate | formatTime }}</span>
              </p>
              <p>
                <span class="fontStyleForModel">{{ data.cameraAddr }}</span>
                <span class="fontStyleForModel">{{ data.cameraName }}</span>
                <span class="fontStyleForModel analyServer" style="margin-left: 20px">{{ data.analyServerName }}</span>
              </p>
              <p></p>
@@ -66,8 +66,8 @@
                <span class="fontStyleForModel">{{ data.picDate | formatTime }}</span>
              </p>
              <p class="align-right">
                <span class="fontStyleForModel text-overflow" :title="data.cameraAddr">{{ data.cameraAddr }}</span>
                <span class="fontStyleForModel text-overflow" :title="data.cameraAddr" style="margin-left: 20px">{{
                <span class="fontStyleForModel text-overflow" :title="data.cameraName">{{ data.cameraName }}</span>
                <span class="fontStyleForModel text-overflow" :title="data.analyServerName" style="margin-left: 20px">{{
                  data.analyServerName
                }}</span>
              </p>