ZZJ
2022-02-21 c6935cb2e9e6f4e59552d929fd7860d00f4c39ec
bug修复
11个文件已修改
320 ■■■■■ 已修改文件
src/pages/cameraAccess/components/DataStackInfo.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/components/TimeSlider.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/index/App.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/index/VideoManage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/settings/views/clusterManagement.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/syslog/views/pollingLog.vue 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/systemMonitor/index/App.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/systemSettings/components/ClusterManagement.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/vindicate/views/sysInfo.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/vindicate/views/updateSettings.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/components/DataStackInfo.vue
@@ -278,9 +278,18 @@
        show-overflow-tooltip
        align="center"
      >
        <template slot-scope="scope">{{
          scope.row.status | statusFormat
        }}</template>
        <template slot-scope="scope">
          <div
            class="lowHash"
            v-if="
              !PollData.stackChannelCount &&
              (scope.row.status == '处理中' || scope.row.status == '2')
            "
          >
            数据栈算力不足
          </div>
          <div class="normal" v-else>{{ scope.row.status | statusFormat }}</div>
        </template>
      </el-table-column>
      <el-table-column label="操作" show-overflow-tooltip align="center">
        <template slot-scope="scope">
src/pages/cameraAccess/components/TimeSlider.vue
@@ -79,6 +79,7 @@
        { day: 6, time_range: [{ start: "00:00", end: "24:00" }] },
        { day: 7, time_range: [{ start: "00:00", end: "24:00" }] },
      ],
      isAdding: false,
    };
  },
  mounted() {
@@ -88,16 +89,19 @@
    handleTabsEdit(tabId, action) {
      let tabs = this.VideoManageData.TimeRules;
      if (action === "add") {
        let newRule = {
          id: "",
          name: "时间段" + this.VideoManageData.TimeRules.length,
          time_rule: this.allDay,
        };
        this.updateTimeRule(newRule);
        if (this.isAdding) {
          return;
        } else {
          this.isAdding = true;
          let newRule = {
            id: "",
            name: "时间段" + this.VideoManageData.TimeRules.length,
            time_rule: this.allDay,
          };
          this.updateTimeRule(newRule);
        }
      }
      if (action === "remove") {
        console.log();
        if (this.VideoManageData.TimeRules.length == 1) {
          this.$notify({
            title: "警告",
@@ -144,12 +148,19 @@
      console.log("时间组件宽度:", timeSlideWidth);
    },
    updateTimeRule(rule) {
      saveTimeRule(rule).then((rsp) => {
        if (rsp && rsp.success) {
          this.VideoManageData.getTimeRule();
          this.activeTab = rsp.data.id;
        }
      });
      saveTimeRule(rule)
        .then(async (rsp) => {
          if (rsp && rsp.success) {
            await this.VideoManageData.getTimeRule();
            this.isAdding = false;
            this.activeTab = rsp.data.id;
          } else {
            this.isAdding = false;
          }
        })
        .catch(() => {
          this.isAdding = false;
        });
    },
    tabClick(item) {
      if (this.activeTab === item.id) {
src/pages/cameraAccess/index/App.vue
@@ -92,7 +92,7 @@
  padding: 16px;
  padding-top: 8px;
  overflow-x: hidden;
  overflow-y: hidden;
  overflow-y: auto;
}
.resize-bar {
  width: 338px;
src/pages/cameraAccess/index/VideoManage.vue
@@ -244,6 +244,7 @@
  min-width: 1599px;
  float: left;
  box-sizing: border-box;
  user-select: none;
  .el-tabs--border-card {
    box-shadow: none;
    -webkit-box-shadow: none;
src/pages/settings/views/clusterManagement.vue
@@ -566,7 +566,15 @@
        //   this.showCurCluster = false;
        // }
        async () => {
          let res = await leave();
          try {
            res = await leave();
          } catch (err) {
            console.log(err);
            this.$notify.error({
              title: "失败",
              message: err.msg,
            });
          }
          this.$notify({
            title: res.success ? "成功" : "失败",
            message: res.msg,
src/pages/syslog/views/pollingLog.vue
@@ -1,5 +1,9 @@
<template>
  <div class="polling-log" v-loading="loading" :element-loading-text="loadingText">
  <div
    class="polling-log"
    v-loading="loading"
    :element-loading-text="loadingText"
  >
    <div class="top">
      <div class="first">
        <div class="time-option">
@@ -17,10 +21,19 @@
            class="input-with-select"
            @keyup.enter.native="getScheduleLog(1)"
          >
            <span class="icon iconfont icon_clear" @click="clearSearch" slot="append" v-if="fuzzySearch">
            <span
              class="icon iconfont icon_clear"
              @click="clearSearch"
              slot="append"
              v-if="fuzzySearch"
            >
              &#xe785;
            </span>
            <span class="icon iconfont icon_search" @click="getScheduleLog(1)" slot="append">
            <span
              class="icon iconfont icon_search"
              @click="getScheduleLog(1)"
              slot="append"
            >
              &#xe714;
            </span>
@@ -63,7 +76,8 @@
        <template slot="empty">
          <img :src="png" class="empty_img" alt="" />
        </template>
        <el-table-column :align="'center'" label="序号" type="index" width="50"> </el-table-column>
        <el-table-column :align="'center'" label="序号" type="index" width="50">
        </el-table-column>
        <el-table-column
          :align="'center'"
          sortable
@@ -78,8 +92,17 @@
          prop="schedule_end_time"
          label="轮询结束时间"
        ></el-table-column>
        <el-table-column :align="'center'" sortable prop="info" label="摄像机"></el-table-column>
        <el-table-column :align="'center'" prop="minute" label="轮询时长(分)"></el-table-column>
        <el-table-column
          :align="'center'"
          sortable
          prop="info"
          label="摄像机"
        ></el-table-column>
        <el-table-column
          :align="'center'"
          prop="minute"
          label="轮询时长(分)"
        ></el-table-column>
      </el-table>
    </div>
@@ -94,7 +117,12 @@
    >
    </el-pagination>
    <el-dialog title="选择摄像机" :visible.sync="dialogVisible" width="50%" :before-close="handleClose">
    <el-dialog
      title="选择摄像机"
      :visible.sync="dialogVisible"
      width="50%"
      :before-close="handleClose"
    >
      <el-tree
        ref="cameraTree"
        :data="cameraTree"
@@ -109,16 +137,18 @@
        <el-button size="small" @click="pickAllNot">取消全选</el-button>
        <el-button @click="pickAllCam" size="small">全选</el-button>
        <el-button size="small" @click="cancelShow">取消</el-button>
        <el-button size="small" type="primary" @click="confirmCamera">确定</el-button>
        <el-button size="small" type="primary" @click="confirmCamera"
          >确定</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>
<script>
import { pad0 } from "@/api/utils"
import { getLocalCameraTree } from "@/api/area"
import { getOperations, getModules, queryScheduleLog } from "@/api/log"
import { pad0 } from "@/api/utils";
import { getLocalCameraTree } from "@/api/area";
import { getOperations, getModules, queryScheduleLog } from "@/api/log";
export default {
  data() {
@@ -132,7 +162,7 @@
      dateRange: [],
      cameraTree: [],
      props: {
        label: "name"
        label: "name",
      },
      value: "",
      page: 1,
@@ -153,91 +183,91 @@
          {
            text: "最近一周",
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
              picker.$emit("pick", [start, end])
            }
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit("pick", [start, end]);
            },
          },
          {
            text: "最近一个月",
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
              picker.$emit("pick", [start, end])
            }
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
              picker.$emit("pick", [start, end]);
            },
          },
          {
            text: "最近三个月",
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
              picker.$emit("pick", [start, end])
            }
          }
        ]
      }
    }
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
              picker.$emit("pick", [start, end]);
            },
          },
        ],
      },
    };
  },
  mounted() {
    this.getTimeRange(24 * 60 * 60 * 1000 * 30)
    this.getScheduleLog()
    this.getOptions()
    this.getTimeRange(24 * 60 * 60 * 1000 * 30);
    this.getScheduleLog();
    this.getOptions();
  },
  methods: {
    handleSizeChange(val) {
      this.pageSize = val
      this.getScheduleLog()
      this.pageSize = val;
      this.getScheduleLog();
    },
    handleCurrentChange(val) {
      this.page = val
      this.getScheduleLog()
      this.page = val;
      this.getScheduleLog();
    },
    cancelShow() {
      this.dialogVisible = false
      this.pickAllNot()
      this.dialogVisible = false;
      this.pickAllNot();
    },
    pickAllCam() {
      this.$refs.cameraTree.setCheckedNodes(this.cameraTree)
      this.$refs.cameraTree.setCheckedNodes(this.cameraTree);
    },
    pickAllNot() {
      this.$refs.cameraTree.setCheckedKeys([])
      this.$refs.cameraTree.setCheckedKeys([]);
    },
    confirmCamera() {
      const selectedIDs = this.$refs.cameraTree.getCheckedKeys()
      this.pickNum = selectedIDs.length
      this.procID = selectedIDs.join(",")
      this.getScheduleLog()
      this.dialogVisible = false
      const selectedIDs = this.$refs.cameraTree.getCheckedKeys();
      this.pickNum = selectedIDs.length;
      this.procID = selectedIDs.join(",");
      this.getScheduleLog();
      this.dialogVisible = false;
    },
    openDialog() {
      this.dialogVisible = true
      this.dialogVisible = true;
      getLocalCameraTree({
        cameraName: "",
        searchType: 0
        searchType: 0,
      }).then((res) => {
        this.cameraTree = res.data
      })
        this.cameraTree = res.data;
      });
    },
    moduleChange(val) {
      this.getScheduleLog()
      this.gongneng = ""
      this.getScheduleLog();
      this.gongneng = "";
      getOperations({
        module: this.curModule
        module: this.curModule,
      }).then((res) => {
        this.gongnengOptions = res.data
      })
        this.gongnengOptions = res.data;
      });
    },
    getOptions() {
      getModules().then((res) => {
        this.moduleOptions = res.data
      })
        this.moduleOptions = res.data;
      });
    },
    getScheduleLog(typ) {
      if (typ == 1) {
        this.page = 1
        this.page = 1;
      }
      const data = {
@@ -247,40 +277,40 @@
        pageSize: this.pageSize,
        fuzzySearch: this.fuzzySearch,
        procID: this.procID,
        procName: this.procName
      }
        procName: this.procName,
      };
      queryScheduleLog(data).then((res) => {
        this.tableData = res.data.logs
        this.total = res.data.total
      })
        this.tableData = res.data.logs;
        this.total = res.data.total;
      });
    },
    dateChange(val) {
      ;[this.timeStart, this.timeEnd] = val
      this.getScheduleLog()
      [this.timeStart, this.timeEnd] = val;
      this.getScheduleLog();
    },
    getTimeStr(date) {
      var month = pad0(date.getMonth() + 1) //月
      var day = pad0(date.getDate()) //日
      var hour = pad0(date.getHours()) //时
      var minute = pad0(date.getMinutes()) //分
      var second = pad0(date.getSeconds()) //秒
      return `${date.getFullYear()}-${month}-${day} ${hour}:${minute}:${second}`
      var month = pad0(date.getMonth() + 1); //月
      var day = pad0(date.getDate()); //日
      var hour = pad0(date.getHours()); //时
      var minute = pad0(date.getMinutes()); //分
      var second = pad0(date.getSeconds()); //秒
      return `${date.getFullYear()}-${month}-${day} ${hour}:${minute}:${second}`;
    },
    getTimeRange(gap) {
      var date = new Date() //当前时间
      var preDay = new Date(new Date().getTime() - gap)
      this.timeStart = this.getTimeStr(preDay)
      this.timeEnd = this.getTimeStr(date)
      this.dateRange = [this.timeStart, this.timeEnd]
      var date = new Date(); //当前时间
      var preDay = new Date(new Date().getTime() - gap);
      this.timeStart = this.getTimeStr(preDay);
      this.timeEnd = this.getTimeStr(date);
      this.dateRange = [this.timeStart, this.timeEnd];
    },
    handleSelectionChange() {},
    handleClose() {},
    clearSearch() {
      this.fuzzySearch = ""
      this.getScheduleLog(1)
    }
  }
}
      this.fuzzySearch = "";
      this.getScheduleLog(1);
    },
  },
};
</script>
<style lang="scss">
.polling-log {
src/pages/systemMonitor/index/App.vue
@@ -57,31 +57,26 @@
                <span>{{ scope.row.desc }} </span>
              </template>
            </el-table-column>
            <el-table-column label="CPU" width="150">
            <el-table-column label="CPU">
              <template slot-scope="scope">
                <span>{{ scope.row.cpu.toFixed(2) }} %</span>
              </template>
            </el-table-column>
            <el-table-column label="内存" width="150">
            <el-table-column label="内存">
              <template slot-scope="scope">
                <span>{{ scope.row.mem.toFixed(2) }} %</span>
              </template>
            </el-table-column>
            <el-table-column
            <!-- <el-table-column
              prop="disk"
              label="硬盘"
              width="150"
            ></el-table-column>
            <el-table-column label="算力" width="150">
            ></el-table-column> -->
            <el-table-column label="算力">
              <template slot-scope="scope">
                <span>{{ scope.row.gpu }} M</span>
              </template>
            </el-table-column>
            <el-table-column
              prop="net"
              label="网络"
              width="150"
            ></el-table-column>
          </el-table>
        </div>
src/pages/systemSettings/components/ClusterManagement.vue
@@ -292,7 +292,7 @@
  },
  data() {
    const checkPwd = (rule, value, callback) => {
      debugger
      debugger;
      if (!value) {
        return callback(new Error("密码不能为空"));
      }
src/pages/vindicate/views/sysInfo.vue
@@ -7,7 +7,7 @@
            <div class="title">Smart AIOS</div>
            <div class="desc">Copyright © 贝思科技术有限公司</div>
          </div>
          <div class="bar" style="background-color: #F2F2F7;">
          <div class="bar" style="background-color: #f2f2f7">
            <div class="name">版本:</div>
            <div class="desc">
              {{
@@ -31,12 +31,12 @@
            </div>
          </div>
          <div class="bar">
            <div class="name" style="min-width: 65px;">请求码:</div>
            <div class="name" style="min-width: 65px">请求码:</div>
            <div class="desc code" style="font-size: 12px">{{ q }}</div>
          </div>
          <div class="bar">
            <div class="name">产品密钥:</div>
            <div class="desc" >
            <div class="desc">
              {{ authorization || "-" }}
            </div>
          </div>
@@ -155,10 +155,10 @@
        passwd: this.password,
        down: 1,
      }).then((res) => {
        if (res.type=="application/json") {
        if (res.type == "application/json") {
          var reader = new FileReader();
          reader.readAsText(res,"utf-8");
          let that = this
          reader.readAsText(res, "utf-8");
          let that = this;
          reader.onload = function () {
            var receive_data = JSON.parse(this.result); //这个就是解析出来的数据
            that.$notify.error(receive_data.msg);
@@ -183,15 +183,20 @@
};
</script>
<style lang="scss">
div{
div {
  color: #333;
}
.v-sys-info {
  width: 100%;
  background-color: #FBFAFF;
  background-color: #fbfaff;
  border-top: 4px solid #f2f2f7;
  border-left: 4px solid #f2f2f7;
  .el-dialog {
    width: 625px;
  }
  .el-dialog__header {
    padding: 15px 20px 10px;
    text-align: left;
@@ -307,7 +312,7 @@
          line-height: 33.6px;
        }
        .desc {
          margin-top:10px ;
          margin-top: 10px;
          font-size: 12px;
          line-height: 16.8px;
          font-weight: 700;
@@ -343,12 +348,12 @@
          word-wrap: break-word;
          text-align: left;
        }
        .activation{
        .activation {
          width: 90px;
          height: 28px;
          background: rgba(78,148,255,0.1);
          border: 1px solid #4E94FF;
          border-radius:20px ;
          background: rgba(78, 148, 255, 0.1);
          border: 1px solid #4e94ff;
          border-radius: 20px;
          text-align: center;
          line-height: 28px;
          color: #333;
src/pages/vindicate/views/updateSettings.vue
@@ -318,6 +318,13 @@
        });
    },
    upgrade() {
      if (!this.pkgID) {
        this.$notify.error({
          title: "失败",
          message: "请先上传更新包",
        });
        return;
      }
      this.shengjiing = true;
      upgradePkg({
        id: this.pkgID,
vue.config.js
@@ -40,9 +40,9 @@
  // }
});
//const serverUrl = "http://192.168.20.189:7009"; // 羊五//
const serverUrl = "http://192.168.20.189:7009"; // 羊五//
//  const serverUrl = "http://192.168.8.10:7009";
const serverUrl = "http://192.168.8.118:7009";
//const serverUrl = "http://192.168.8.118:7009";
const serverUrl2 = "http://192.168.8.10:9000";
// const serverUrl = "http://192.168.20.10:7009";