fuliqi
2024-03-19 3f4115d10b4a5a7157ca3d0b27ba346c0391f560
Merge remote-tracking branch 'origin/master'
5个文件已修改
1个文件已添加
193 ■■■■■ 已修改文件
src/api/platform/check-result.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/screen/components/screen-examine/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/screen/components/screen-video/index.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/screen/components/screen-wrapper/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/check-result/index.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/contract/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/check-result.js
@@ -43,6 +43,14 @@
  })
}
// 发布考核结果
export function publishCheckResult(id) {
  return request({
    url: '/check-result/publish/' + id,
    method: 'put'
  })
}
// 提交人工分数
export function manualScore(data) {
  return request({
src/views/screen/components/screen-examine/index.vue
@@ -3,8 +3,8 @@
    <wrapper-title :title="'考核成绩数据'"></wrapper-title>
    <div class="examine-content">
      <div class="examine-wrapper">
        <examine-chart class="wrapper-item"></examine-chart>
        <examine-table class="wrapper-item"></examine-table>
        <examine-chart class="wrapper-item"></examine-chart>
      </div>
    </div>
  </div>
src/views/screen/components/screen-video/index.vue
New file
@@ -0,0 +1,149 @@
<template>
  <div class="video-container">
    <wrapper-title :title="'视频设备'"></wrapper-title>
    <div class="video-content">
      <div class="video-plane">
        <dv-border-box-13 class="panel">
          <div class="panel-container">
            <div class="top-container">
              <div class="data-item">
                <dv-decoration-9 style="width:120px;height:120px;">
                  <div class="data-num type1">1156</div>
                </dv-decoration-9>
                <div class="data-label">设备总数</div>
              </div>
              <div class="data-item">
                <dv-decoration-9 style="width:120px;height:120px;">
                  <div class="data-num type2">1000</div>
                </dv-decoration-9>
                <div class="data-label">正常数</div>
              </div>
            </div>
            <div class="bottom-container">
              <div class="data-item">
                <dv-decoration-9 style="width:120px;height:120px;">
                  <div class="data-num type3">156</div>
                </dv-decoration-9>
                <div class="data-label">异常数</div>
              </div>
              <div class="data-item">
                <dv-decoration-9 style="width:120px;height:120px;">
                  <div class="data-num type4">75</div>
                </dv-decoration-9>
                <div class="data-label">生成异常工单数</div>
              </div>
              <div class="data-item">
                <dv-decoration-9 style="width:120px;height:120px;">
                  <div class="data-num type5">91.36%</div>
                </dv-decoration-9>
                <div class="data-label">设备运行率</div>
              </div>
            </div>
          </div>
        </dv-border-box-13>
      </div>
    </div>
  </div>
</template>
<script>
import WrapperTitle from '../wrapper-title/index';
export default {
  name: 'ScreenVideo',
  components: {
    WrapperTitle
  }
}
</script>
<style lang="scss" scoped>
.video-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
}
.video-content {
  flex: 1;
  background: rgba(67, 102, 155, 0.3);
  border: 1px solid rgba(47, 91, 157, 0.8);
}
.panel {
  width: 100%;
  height: 100%;
}
.video-plane {
  width: 100%;
  .panel-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    box-sizing: border;
    padding: 20px;
    .top-container,
    .bottom-container {
      width: 100%;
      display: flex;
    }
    .top-container {
      justify-content: center;
      .data-item {
        margin: 0 30px;
      }
    }
    .bottom-container {
      justify-content: space-around;
    }
    .data-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      font-size: 20px;
      color: #fff;
      .data-num {
        font-weight: bold;
        font-size: 22px;
      }
    }
    .type1 {
      color: #0883d4;
    }
    .type2 {
      color: #08b108;
    }
    .type3 {
      color: #ff0000;
    }
    .type4 {
      color: #d82a64;
    }
    .type5 {
      color: #08b108;
    }
  }
}
</style>
src/views/screen/components/screen-wrapper/index.vue
@@ -1,11 +1,14 @@
<template>
  <div class="wrapper-container">
    <div class="wrapper-content">
      <div class="left-container wrapper">
        <screen-face></screen-face>
      </div>
      <div class="center-container wrapper">
        <screen-detection></screen-detection>
        <screen-video></screen-video>
      </div>
      <div class="right-container wrapper">
        <screen-examine></screen-examine>
@@ -18,12 +21,14 @@
import ScreenFace from '../screen-face/index';
import ScreenDetection from '../screen-detection/index';
import ScreenExamine from '../screen-examine/index';
import ScreenVideo from '../screen-video/index';
export default {
  name: 'ScreenWrapper',
  components: {
    ScreenFace,
    ScreenDetection,
    ScreenExamine,
    ScreenVideo
  },
}
</script>
@@ -36,16 +41,17 @@
  top: 0;
  left: 0;
  z-index: 1;
  .wrapper-content {
    width: 100%;
    height: calc(100% - 100px);
    margin-top: 100px;
    border: 1px solid red;
    position: relative;
    box-sizing: border-box;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
@@ -54,15 +60,17 @@
  height: 100%;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid red;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  &:first-of-type {
    padding-left: 0;
  }
  &:last-of-type {
    padding-right: 0;
  }
}
</style>
src/views/system/check-result/index.vue
@@ -93,7 +93,11 @@
      <div class="text item">考核范围<span class="time">{{ item.examineRange }}</span></div>
      <div class="text item">考核频率<span class="time">{{ item.frequency }}</span></div>
      <div class="text item">考核分数<span class="time">{{ item.checkScore }}</span></div>
      <div class="text item">考核时间<span class="time">{{ item.checkTime }}</span></div>
      <div class="text item">考核时间
        <span class="time">{{ item.checkTime }}</span>
        <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1">确认发布</el-button>
        <el-button size="small" round style="float: right;" v-show="item.publish == 1" disabled="true">已发布</el-button>
      </div>
    </el-card>
    <!-- <el-table v-loading="loading" :data="checkResultList" @selection-change="handleSelectionChange">
@@ -221,7 +225,7 @@
</template>
<script>
import { listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore } from "@/api/platform/check-result";
import { listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result";
export default {
  name: "CheckResult",
@@ -352,6 +356,16 @@
      this.detailOpen = true;
    },
    handlePublish(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认发布考核结果编号为"' + ids + '"的数据项?').then(function() {
        return publishCheckResult(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("发布成功");
      }).catch(() => {});
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
src/views/system/contract/index.vue
@@ -95,7 +95,7 @@
    </el-dialog>
    
    <!-- 合同详情 -->
    <el-dialog :title="detailName" :visible.sync="detail" width="500px" append-to-body>
    <el-dialog :title="detailName" :visible.sync="detail" width="800px" append-to-body>
      <el-form label-position="left" inline class="table-expand">
        <el-collapse v-model="activeNames" @change="handleChange">
          <el-collapse-item title="视频平均在线率" name="1">
@@ -198,7 +198,7 @@
                </span>
              </div>
          </el-upload>
          <el-dialog :visible.sync="dialogVisible">
          <el-dialog :visible.sync="dialogVisible" append-to-body="false">
            <img width="100%" :src="dialogImageUrl" alt="">
          </el-dialog>
          <div style="text-align: right; margin-top: 10px;">