龚焕茏
2024-08-15 ddaa870224aa1c12b05ff2ac242c2283d3e54241
src/views/system/monitor/video/index.vue
@@ -3,13 +3,13 @@
  <div class="app-container">
    <el-card class="box-card" >
      <el-row type="flex" align="middle" justify="space-between">
        <el-col :xl="8" :lg="8" :md="10" :sm="8" :xs="6">
        <div class="icon-container" style="background-color: #5599F7">
      <el-row type="flex" align="middle" justify="space-between" style="width: 100%;">
        <el-col :span="4">
        <div class="icon-container" style="background-color: #1890FF">
          <i class="el-icon-video-camera"></i>
        </div>
        </el-col>
        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
        <el-col :span="20">
          <div class="dashboard">
            <div class="dashboard-item">
              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
@@ -22,18 +22,6 @@
            <div class="dashboard-item">
              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
              <p>异常数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ count.totalViews }}</h3>
              <p>生成异常工单数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ count.noStore }}</h3>
              <p>无存储</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ count.partStore }}</h3>
              <p>部分存储</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ count.viewsPercentage }}%</h3>
@@ -84,25 +72,10 @@
        />
        </el-select>
      </el-form-item>
       <el-form-item label="是否生成异常工单" prop="defaultOrder" label-width="130px">
         <el-select
           v-model="queryParams.defaultOrder"
           placeholder="是否生成异常工单"
           clearable
           style="width: 170px"
         >
         <el-option
           v-for="dict in dict.type.platform_yes_no"
           :key="dict.value"
           :label="dict.label"
           :value="dict.value"
         />
         </el-select>
        </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
@@ -122,10 +95,18 @@
    <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" align="center" />
      <el-table-column label="设备名称" align="center" prop="name" width="280" fixed/>
      <el-table-column label="设备编码" align="center" prop="serialNumber" width="180"/>
      <el-table-column label="标签" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/>
      <el-table-column label="区域" align="center" prop="address" width="180" v-if="columns[1].visible"/>
      <el-table-column label="设备名称" align="center" prop="name" width="280" fixed show-overflow-tooltip/>
      <el-table-column label="设备编码" align="center" prop="serialNumber" width="180" show-overflow-tooltip/>
      <el-table-column label="标签" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible">
        <template slot-scope="scope">
          <div>{{"省厅"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="区域" align="center" prop="address" width="180" v-if="columns[1].visible">
        <template slot-scope="scope">
          <div>{{"自流井区"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="设备状态" align="center" prop="onState" v-if="columns[2].visible">
      <template slot-scope="scope">
        <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
@@ -136,11 +117,31 @@
        <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/>
      </template>
      </el-table-column>
      <el-table-column label="数据时间" align="center" prop="installedTime" width="180" v-if="columns[4].visible"/>
      <el-table-column label="管理单位" align="center" prop="managementUnit" width="180" v-if="columns[5].visible"/>
      <el-table-column label="信令时延(ms)" align="center" prop="sipDelay" width="180" v-if="columns[6].visible"/>
      <el-table-column label="视频时延(ms)" align="center" prop="videoDelay" width="180" v-if="columns[7].visible"/>
      <el-table-column label="关键帧时延(ms)" align="center" prop="iframeDelay" width="180" v-if="columns[8].visible"/>
      <el-table-column label="数据时间" align="center" prop="installedTime" width="180" v-if="columns[4].visible">
        <template slot-scope="scope">
          <div>{{"2023年08月03日"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="管理单位" align="center" prop="managementUnit" width="180" v-if="columns[5].visible">
        <template slot-scope="scope">
          <div>{{"运维公司甲"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="信令时延(ms)" align="center" prop="sipDelay" width="180" v-if="columns[6].visible">
        <template slot-scope="scope">
          <div>{{"100"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="视频时延(ms)" align="center" prop="videoDelay" width="180" v-if="columns[7].visible">
        <template slot-scope="scope">
          <div>{{"200"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="关键帧时延(ms)" align="center" prop="iframeDelay" width="180" v-if="columns[8].visible">
        <template slot-scope="scope">
          <div>{{"300"}}</div>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width"  fixed="right">
          <template slot-scope="scope">
            <el-button
@@ -406,17 +407,17 @@
<style lang="scss" scoped>
.box-card {
  background-color: #F5F9FE;
  background-color: hsl(0, 0%, 100%);
  width: 100%;
  margin-bottom: 20px;
  height: 120px
  height: 120px;
}
.icon-container {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 20px;
  width: 20%;
  border-radius: 10px;
  width: 130px;
  height: 80px;
  margin-left: 5%;
}
@@ -427,9 +428,10 @@
.dashboard {
  display: flex;
  gap: 10%;
  gap: 5%;
  align-items: center;
  margin-left: -50%;
  justify-content: space-between;
  margin-right: 20px;
}
.dashboard-item {