fuliqi
2024-04-03 7f356bf22e4fe731e2b79ca3877e7c702eaf0704
Merge remote-tracking branch 'origin/master'
8个文件已修改
430 ■■■■ 已修改文件
src/api/platform/monitor.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/screen/components/screen-table/index.vue 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/car/index.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/face/index.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/recovery/index.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/report/index.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/video/index.vue 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/work-order/index.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/monitor.js
@@ -9,6 +9,22 @@
  })
}
// 查询设备资产统计数
export function videoCount(type) {
  return request({
    url: '/system/monitor/getVideoCount/' + type,
    method: 'get'
  })
}
// 查询异常恢复设备资产统计数
export function recoveryException() {
  return request({
    url: '/system/monitor/recoveryException',
    method: 'get'
  })
}
// 查询设备资产详细
export function getMonitor(id) {
  return request({
src/views/screen/components/screen-table/index.vue
@@ -4,23 +4,59 @@
      <el-table :data="tableData" border :height="tableHeight" :max-height="tableHeight" class="rank-table">
        <el-table-column prop="name" label="地区" align="center" width="100">
        </el-table-column>
        <el-table-column label="人脸设备" align="center">
          <el-table-column prop="data1" label="设备正常数" align="center">
        <el-table-column label="人脸设备正常率" align="center">
          <template slot-scope="scope">
            <el-tooltip placement="top">
              <div slot="content">
                <div class="tip-item">
                  <div class="tip-label">设备正常数:</div>
                  <div class="tip-info tip-success">12</div>
                </div>
                <div class="tip-item">
                  <div class="tip-label">设备异常数:</div>
                  <div class="tip-info tip-danger">4</div>
                </div>
              </div>
              <div class="tip-num">75%</div>
            </el-tooltip>
          </template>
          </el-table-column>
          <el-table-column prop="data1" label="设备异常数" align="center">
        <el-table-column label="车辆设备正常率" align="center">
          <template slot-scope="scope">
            <el-tooltip placement="top">
              <div slot="content">
                <div class="tip-item">
                  <div class="tip-label">设备正常数:</div>
                  <div class="tip-info tip-success">12</div>
                </div>
                <div class="tip-item">
                  <div class="tip-label">设备异常数:</div>
                  <div class="tip-info tip-danger">4</div>
                </div>
              </div>
              <div class="tip-num">75%</div>
            </el-tooltip>
          </template>
          </el-table-column>
        </el-table-column>
        <el-table-column label="车辆设备" align="center">
          <el-table-column prop="data1" label="设备正常数" align="center">
          </el-table-column>
          <el-table-column prop="data1" label="设备异常数" align="center">
          </el-table-column>
        </el-table-column>
        <el-table-column label="视频设备" align="center">
          <el-table-column prop="data1" label="设备正常数" align="center">
          </el-table-column>
          <el-table-column prop="data1" label="设备异常数" align="center">
          </el-table-column>
        <el-table-column label="视频设备正常率" align="center">
          <template slot-scope="scope">
            <el-tooltip placement="top">
              <div slot="content">
                <div class="tip-item">
                  <div class="tip-label">设备正常数:</div>
                  <div class="tip-info tip-success">12</div>
                </div>
                <div class="tip-item">
                  <div class="tip-label">设备异常数:</div>
                  <div class="tip-info tip-danger">4</div>
                </div>
              </div>
              <div class="tip-num">75%</div>
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table>
    </div>
@@ -165,4 +201,28 @@
::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
  background-color: #447ed648;
}
.tip-item {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  font-size: 16px;
  &:last-of-type {
    margin-bottom: 0;
  }
  .tip-label {
    color: #5b83bd;
    margin-right: 10px;
  }
  .tip-success {
    color: #0cd81d;
  }
  .tip-danger {
    color: #e20c0c;
  }
}
</style>
src/views/system/car/index.vue
@@ -10,27 +10,27 @@
        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
          <div class="dashboard">
            <div class="dashboard-item">
              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
              <p>设备总数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
              <p>正常数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
              <p>异常数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ totalViews }}</h3>
              <h3>{{ count.totalViews }}</h3>
              <p>生成异常工单数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ totalCar }}</h3>
              <h3>{{ count.totalCar }}</h3>
              <p>过车数据总量</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ viewsPercentage }}%</h3>
              <h3>{{ count.viewsPercentage }}%</h3>
              <p>设备运行率</p >
            </div>
          </div>
@@ -110,29 +110,29 @@
          @click="handleExport"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
    </el-row>
    <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"/>
      <el-table-column label="区域" align="center" prop="address" width="180"/>
      <el-table-column label="设备状态" align="center" prop="onState">
      <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="onState" v-if="columns[2].visible">
      <template slot-scope="scope">
        <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
      </template>
      </el-table-column>
      <el-table-column label="是否生成异常工单" align="center" prop="defaultOrder" width="180">
      <el-table-column label="是否生成异常工单" align="center" prop="defaultOrder" width="180" v-if="columns[3].visible">
      <template slot-scope="scope">
        <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"/>
      <el-table-column label="管理单位" align="center" prop="managementUnit" width="180"/>
      <el-table-column label="过车数据量" align="center" prop="model" width="180"/>
      <el-table-column label="持续无数据天数" align="center" prop="recovery" width="180"/>
      <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="过车数据量" align="center" prop="a" width="180" v-if="columns[6].visible"/>
      <el-table-column label="持续无数据天数" align="center" prop="a" width="180" v-if="columns[7].visible"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width"  fixed="right">
          <template slot-scope="scope">
            <el-button
@@ -182,10 +182,10 @@
            <el-form-item label="管理单位:">{{ form.managementUnit }}</el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="过车数据量:">{{ form.model }}</el-form-item>
            <el-form-item label="过车数据量:">{{ form.a }}</el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="持续无数据天数:">{{ form.recovery }}</el-form-item>
            <el-form-item label="持续无数据天数:">{{ form.a }}</el-form-item>
          </el-col>
        </el-row>
      </el-form>
@@ -197,19 +197,32 @@
</template>
<script>
import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
export default {
  name: "Monitor",
  dicts: ['sys_normal_disable','platform_yes_no','camera_state'],
  data() {
    return {
      totalPosts: 1156,
      totalMembers: 931,
      postsPercentage: 182,
      totalViews: 43,
      viewsPercentage: 80.53,
      totalCar: 2098530,
      // 列信息
      columns: [
        { key: 0, label: `标签`, visible: true },
        { key: 1, label: `区域`, visible: true },
        { key: 2, label: `设备状态`, visible: true },
        { key: 3, label: `是否生成异常工单`, visible: true },
        { key: 4, label: `数据时间`, visible: true },
        { key: 5, label: `管理单位`, visible: true },
        { key: 6, label: `过车数据量`, visible: true },
        { key: 7, label: `持续无数据天数`, visible: true },
      ],
      count: {
        totalPosts: 0,
        totalMembers: 0,
        postsPercentage: 0,
        totalViews: 0,
        viewsPercentage: 0,
        totalCar: 0,
      },
      // 遮罩层
      loading: true,
      // 选中数组
@@ -261,6 +274,7 @@
    };
  },
  created() {
    this.getVideoCount();
    this.getList();
  },
  methods: {
@@ -271,6 +285,12 @@
        this.monitorList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    /** 查询设备资产统计数 */
    getVideoCount() {
      videoCount('2').then(response => {
        this.count = response.data;
      });
    },
    // 取消按钮
@@ -301,6 +321,7 @@
      this.queryParams.pageNum = 1;
      this.queryParams.cameraFunType = 2;
      this.getList();
      this.getVideoCount();
    },
    /** 重置按钮操作 */
    resetQuery() {
src/views/system/face/index.vue
@@ -10,27 +10,27 @@
        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
          <div class="dashboard">
            <div class="dashboard-item">
              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
              <p>设备总数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
              <p>正常数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
              <p>异常数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ totalOrders }}</h3>
              <h3>{{ count.totalViews }}</h3>
              <p>生成异常工单数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ totalViews }}</h3>
              <h3>{{ count.totalFace }}</h3>
              <p>抓拍数据总量</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ viewsPercentage }}%</h3>
              <h3>{{ count.viewsPercentage }}%</h3>
              <p>设备运行率</p >
            </div>
          </div>
@@ -109,29 +109,29 @@
          @click="handleExport"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
    </el-row>
    <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"/>
      <el-table-column label="区域" align="center" prop="address" width="180"/>
      <el-table-column label="设备状态" align="center" prop="onState">
      <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="onState" v-if="columns[2].visible">
      <template slot-scope="scope">
        <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
      </template>
      </el-table-column>
      <el-table-column label="是否生成异常工单" align="center" prop="defaultOrder" width="180">
      <el-table-column label="是否生成异常工单" align="center" prop="defaultOrder" width="180" v-if="columns[3].visible">
      <template slot-scope="scope">
        <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"/>
      <el-table-column label="管理单位" align="center" prop="managementUnit" width="180"/>
      <el-table-column label="抓拍量" align="center" prop="model" width="180"/>
      <el-table-column label="持续无数据天数" align="center" prop="recovery" width="180"/>
      <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="抓拍量" align="center" prop="a" width="180" v-if="columns[6].visible"/>
      <el-table-column label="持续无数据天数" align="center" prop="a" width="180" v-if="columns[7].visible"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width"  fixed="right">
          <template slot-scope="scope">
            <el-button
@@ -222,10 +222,10 @@
            <el-form-item label="管理单位:">{{ form.managementUnit }}</el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="抓拍量:">{{ form.model }}</el-form-item>
            <el-form-item label="抓拍量:"></el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="持续无数据天数:">{{ form.recovery }}</el-form-item>
            <el-form-item label="持续无数据天数:"></el-form-item>
          </el-col>
        </el-row>
      </el-form>
@@ -237,20 +237,32 @@
</template>
<script>
import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
export default {
  name: "Monitor",
  dicts: ['sys_normal_disable','platform_yes_no','camera_state'],
  data() {
    return {
      totalPosts: 1490,
      totalMembers: 1090,
      postsPercentage: 319,
      totalViews: 1200164,
      totalOrders: 81,
      viewsPercentage: 73.15,
      totalErrors: 0,
      // 列信息
      columns: [
        { key: 0, label: `标签`, visible: true },
        { key: 1, label: `区域`, visible: true },
        { key: 2, label: `设备状态`, visible: true },
        { key: 3, label: `是否生成异常工单`, visible: true },
        { key: 4, label: `数据时间`, visible: true },
        { key: 5, label: `管理单位`, visible: true },
        { key: 6, label: `抓拍量`, visible: true },
        { key: 7, label: `持续无数据天数`, visible: true }
      ],
      count: {
        totalPosts: 0,
        totalMembers: 0,
        postsPercentage: 0,
        totalViews: 0,
        totalFace: 0,
        viewsPercentage: 0
      },
      // 遮罩层
      loading: true,
      // 选中数组
@@ -302,6 +314,7 @@
    };
  },
  created() {
    this.getVideoCount();
    this.getList();
  },
  methods: {
@@ -312,6 +325,12 @@
        this.monitorList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    /** 查询设备资产统计数 */
    getVideoCount() {
      videoCount('3').then(response => {
        this.count = response.data;
      });
    },
    // 取消按钮
@@ -337,6 +356,7 @@
      this.queryParams.pageNum = 1;
      this.queryParams.cameraFunType = 3
      this.getList();
      this.getVideoCount();
    },
    /** 重置按钮操作 */
    resetQuery() {
src/views/system/recovery/index.vue
@@ -10,23 +10,23 @@
        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
          <div class="dashboard">
            <div class="dashboard-item">
              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
              <p>设备总数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
              <p>正常数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
              <p>异常数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ totalViews }}</h3>
              <h3>{{ count.totalViews }}</h3>
              <p>生成异常工单数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ viewsPercentage }}%</h3>
              <h3>{{ count.viewsPercentage }}%</h3>
              <p>设备运行率</p >
            </div>
          </div>
@@ -34,7 +34,7 @@
      </el-row>
    </el-card>
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
      <el-form-item label="关键字" prop="name">
        <el-input
          v-model="queryParams.name"
@@ -59,6 +59,17 @@
          <el-option label="富顺县" value="富顺县"/>
        </el-select>
      </el-form-item>
      <el-form-item label="监控类型" prop="onState">
        <el-select
          v-model="queryParams.cameraFunType"
          placeholder="请选择监控类型"
          clearable
        >
          <el-option label="视频监控" value="1"/>
          <el-option label="车辆识别" value="2"/>
          <el-option label="人员识别" value="3"/>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -76,33 +87,29 @@
          @click="handleExport"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="设备名称" align="center" prop="name" />
      <el-table-column label="设备编码" align="center" prop="serialNumber" width="180px" />
      <el-table-column label="标签" align="center" prop="tag" >
        {{"省厅考核"}}
      </el-table-column>
      <el-table-column label="区域" align="center" prop="region" >
        {{"大安区"}}
      </el-table-column>
      <el-table-column label="设备状态" align="center" prop="onState">
      <el-table-column label="标签" align="center" prop="publicSecurity" v-if="columns[0].visible" />
      <el-table-column label="区域" align="center" prop="address" v-if="columns[1].visible"/>
      <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"/>
      </template>
      </el-table-column>
      <el-table-column label="是否生成异常工单" align="center" prop="defaultOrder">
      <el-table-column label="是否生成异常工单" align="center" prop="defaultOrder" v-if="columns[3].visible">
      <template slot-scope="scope">
        <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/>
      </template>
      </el-table-column>
      <el-table-column label="异常原因" align="center" prop="reason" />
      <el-table-column label="异常恢复时间" align="center" prop="recoveryTime" width="180">
      <el-table-column label="异常原因" align="center" prop="reason" v-if="columns[4].visible" />
      <el-table-column label="异常恢复时间" align="center" prop="recoveryTime" width="180" v-if="columns[5].visible">
      </el-table-column>
      <el-table-column label="管理单位" align="center" prop="managementUnit" />
      <el-table-column label="管理单位" align="center" prop="managementUnit" v-if="columns[6].visible" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
@@ -162,19 +169,31 @@
</template>
<script>
import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
import { recoveryException, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
export default {
  name: "Monitor",
  dicts: ['sys_normal_disable','platform_yes_no','camera_state'],
  data() {
    return {
      totalPosts: 8896,
      totalMembers: 8029,
      postsPercentage: 382,
      totalViews: 141,
      viewsPercentage: 90.25,
      // 列信息
      columns: [
        { key: 0, label: `标签`, visible: true },
        { key: 1, label: `区域`, visible: true },
        { key: 2, label: `设备状态`, visible: true },
        { key: 3, label: `是否生成异常工单`, visible: true },
        { key: 4, label: `异常原因`, visible: true },
        { key: 5, label: `异常恢复时间`, visible: true },
        { key: 6, label: `管理单位`, visible: true },
      ],
      count: {
        totalPosts: 0,
        totalMembers: 0,
        postsPercentage: 0,
        totalViews: 0,
        viewsPercentage: 0,
      totalErrors: 0,
      },
      // 遮罩层
      loading: true,
      // 选中数组
@@ -205,6 +224,7 @@
        managementUnit: null,
        defaultOrder: null,
        recovery: 1,
        cameraFunType: null
      },
      // 表单参数
      form: {},
@@ -227,6 +247,7 @@
  },
  created() {
    this.getList();
    this.getVideoCount();
  },
  methods: {
    /** 查询设备资产列表 */
@@ -236,6 +257,12 @@
        this.monitorList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    /** 查询异常恢复设备统计数 */
    getVideoCount() {
      recoveryException().then(response => {
        this.count = response.data;
      });
    },
    // 取消按钮
@@ -266,6 +293,7 @@
      this.queryParams.pageNum = 1;
      this.queryParams.recovery = 1
      this.getList();
      this.getVideoCount();
    },
    /** 重置按钮操作 */
    resetQuery() {
src/views/system/report/index.vue
@@ -149,9 +149,9 @@
            :loading="selectLoading">
            <el-option
              v-for="item in pointList"
              :key="item.value"
              :label="item.label"
              :value="item.value">
              :key="item.id"
              :label="item.value"
              :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
@@ -167,6 +167,17 @@
            <el-option label="设备故障" value="设备故障"/>
            <el-option label="设备遗失" value="设备遗失"/>
          </el-select>
        </el-form-item>
        <el-form-item label="有效时间">
          <el-date-picker
            v-model="expirTime"
            style="width: 240px"
            value-format="yyyy-MM-dd"
            type="daterange"
            range-separator="-"
            start-placeholder="生效日期"
            end-placeholder="失效日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="报备内容" prop="reportContent">
          <editor v-model="form.reportContent" :min-height="192"/>
@@ -255,6 +266,7 @@
      open: false,
      // 故障类型时间范围
      daterangeCreateTime: [],
      expirTime: [],
      // 故障类型时间范围
      daterangeAuditingTime: [],
      auditingOpen: false,
@@ -411,6 +423,12 @@
    },
    /** 提交按钮 */
    submitForm() {
      if (null != this.expirTime && '' != this.expirTime) {
        this.form["beginCreateTime"] = this.expirTime[0];
        this.form["endCreateTime"] = this.expirTime[1];
      }
      // todo 判断是事前报备
      this.$refs["form"].validate(valid => {
src/views/system/video/index.vue
@@ -12,31 +12,31 @@
        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
          <div class="dashboard">
            <div class="dashboard-item">
              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
              <p>设备总数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
              <p>正常数</p >
            </div>
            <div class="dashboard-item">
              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
              <p>异常数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ totalViews }}</h3>
              <h3>{{ count.totalViews }}</h3>
              <p>生成异常工单数</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ noStore }}</h3>
              <h3>{{ count.noStore }}</h3>
              <p>无存储</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ partStore }}</h3>
              <h3>{{ count.partStore }}</h3>
              <p>部分存储</p >
            </div>
            <div class="dashboard-item">
              <h3>{{ viewsPercentage }}%</h3>
              <h3>{{ count.viewsPercentage }}%</h3>
              <p>设备运行率</p >
            </div>
          </div>
@@ -44,7 +44,7 @@
      </el-row>
    </el-card>
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
      <el-form-item label="关键字" prop="name">
        <el-input
          v-model="queryParams.name"
@@ -123,8 +123,8 @@
      <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="tag" width="180" v-if="columns[0].visible"/>
      <el-table-column label="区域" align="center" prop="region" width="180" v-if="columns[1].visible"/>
      <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="onState" v-if="columns[2].visible">
      <template slot-scope="scope">
        <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
@@ -167,21 +167,19 @@
          <el-col :span="12">
            <el-form-item label="设备编码:">{{ form.serialNumber }}</el-form-item>
            <el-form-item label="设备名称:">{{ form.name }} </el-form-item>
            <el-form-item label="标签:">{{ form.tag }} </el-form-item>
            <el-form-item label="区域:">{{ form.region }} </el-form-item>
            <el-form-item label="地区:">{{ form.address }} </el-form-item>
            <el-form-item label="上报部门:">{{ form.deptName }} </el-form-item>
            <el-form-item label="设备状态:">
              <div v-if="form.onState === 1">可用</div>
              <div v-else-if="form.onState === 2">不可用</div>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="地址:">{{ form.address }}</el-form-item>
            <el-form-item label="是否生成异常工单:">
              <div v-if="form.defaultOrder === 1">是</div>
              <div v-else-if="form.defaultOrder === 2">否</div>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="异常原因:">{{ form.reason }}</el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="安装时间:">{{ form.installedTime }}</el-form-item>
@@ -190,13 +188,13 @@
            <el-form-item label="管理单位:">{{ form.managementUnit }}</el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="信令时延(ms):">{{ form.sipDelay }}</el-form-item>
            <el-form-item label="信令时延(ms):"></el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="视频时延(ms):">{{ form.videoDelay }}</el-form-item>
            <el-form-item label="视频时延(ms):"></el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="关键帧时延(ms):">{{ form.iframeDelay }}</el-form-item>
            <el-form-item label="关键帧时延(ms):"></el-form-item>
          </el-col>
        </el-row>
      </el-form>
@@ -208,7 +206,7 @@
</template>
<script>
import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/video-monitor";
import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
export default {
  name: "Monitor",
  dicts: ['sys_normal_disable', 'platform_yes_no','camera_state'],
@@ -226,14 +224,15 @@
        { key: 7, label: `视频时延`, visible: true },
        { key: 8, label: `关键帧时延`, visible: true }
      ],
      totalPosts: 6250,
      totalMembers: 6008,
      postsPercentage: 51,
      totalViews: 17,
      noStore: 47,
      partStore: 56,
      viewsPercentage: 96.12,
      totalErrors: 0,
      count: {
        totalPosts: 0,
        totalMembers: 0,
        postsPercentage: 0,
        totalViews: 0,
        noStore: 0,
        partStore: 0,
        viewsPercentage: 0
      },
      // 遮罩层
      loading: true,
      // 选中数组
@@ -285,9 +284,9 @@
    };
  },
  created() {
    this.getVideoCount();
    this.getList();
    this.getCountyList();
  },
  methods: {
    /** 查询设备资产列表 */
@@ -297,6 +296,12 @@
        this.monitorList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
     /** 查询设备资产统计数 */
     getVideoCount() {
      videoCount('1').then(response => {
        this.count = response.data;
      });
    },
    // 取消按钮
@@ -323,6 +328,7 @@
      this.queryParams.pageNum = 1;
      this.queryParams.cameraFunType = 1;
      this.getList();
      this.getVideoCount();
    },
    /** 重置按钮操作 */
    resetQuery() {
src/views/system/work-order/index.vue
@@ -10,6 +10,12 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="故障类型" prop="workOrderNo">
        <el-select v-model="queryParams.errorType" placeholder="故障类型" clearable @clear="handleQuery">
          <el-option label="市政施工" value="市政施工"></el-option>
          <el-option label="设备遗失" value="设备遗失"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="运维处理时间">
        <el-date-picker
          clearable
@@ -35,15 +41,18 @@
          <el-image :preview-src-list="['https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357']" fit="cover" src="https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357" class="image"/>
          <div style="padding-right: 10px;padding-top: 10px;float: right;">
            <el-row>
              <el-col :span="24" class="time">故障类型:<el-tag size="small" type="danger">市政施工</el-tag></el-col>
            </el-row>
            <el-row class="work-order-item">
              <el-col class="time" :span="24">运维人员:{{ item.ywPeopleName }}</el-col>
            </el-row>
            <el-row style="margin-top: 5px">
            <el-row class="work-order-item">
              <el-col class="time" :span="24">运维单位:{{ item.unitName }}</el-col>
            </el-row>
            <el-row style="margin-top: 5px">
            <el-row class="work-order-item">
              <el-col :span="24" class="time">工单编号:{{ item.workOrderNo }}</el-col>
            </el-row>
            <el-row style="margin-top: 5px">
            <el-row>
              <el-col :span="24" class="time">处理时间:{{ item.ywHandleTime }}</el-col>
            </el-row>
            <el-row>
@@ -745,15 +754,17 @@
</script>
<style scoped>
.work-order-item {
  margin-bottom: 5px;
}
.time {
  font-size: 13px;
  color: #999;
}
.image {
  width: 125px;
  height: 125px;
  width: 165px;
  height: 150px;
  padding: 10px;
}
</style>