ZZJ
2021-11-09 ccee429d379e0108b7445f72ade8d97c110a6fb3
src/pages/analysisPower/index/App.vue
@@ -50,7 +50,13 @@
          </div>
          <span :class="stretchStyle" @click="strethTable = !strethTable"></span>
          <el-button size="small" type="primary" style="float:right" @click="openDrawer">设置</el-button>
          <el-button
            size="small"
            type="primary"
            style="float:right"
            @click="openDrawer"
            v-if="showSetting"
          >设置</el-button>
        </div>
        <el-table
@@ -61,7 +67,7 @@
          :cell-style="cellStyle"
        >
          <el-table-column label="序号" type="index" align="center" width="60px"></el-table-column>
          <el-table-column label="摄像机名称" align="center" show-overflow-tooltip sortable>
          <el-table-column label="摄像机名称" align="center" show-overflow-tooltip >
            <template slot-scope="scope">
              <span
                :style="scope.row.is_running ? `color:#3d68e1` : '' "
@@ -69,25 +75,25 @@
            </template>
          </el-table-column>
          <el-table-column label="摄像机地址" prop="addr" align="center" show-overflow-tooltip sortable></el-table-column>
          <el-table-column label="摄像机IP" prop="ip" align="center" width="130px" sortable></el-table-column>
          <el-table-column label="摄像机类型" align="center" width="120px" sortable>
          <el-table-column label="摄像机IP" prop="ip" align="center" width="130px" sortable :sort-method="ipSortMethod"></el-table-column>
          <el-table-column label="摄像机类型" align="center" width="120px" >
            <template slot-scope="scope">
              <span>{{scope.row.run_type | cameraType}}</span>
            </template>
          </el-table-column>
          <el-table-column label="执行算法" align="center" show-overflow-tooltip sortable>
          <el-table-column label="执行算法" align="center" show-overflow-tooltip >
            <template slot-scope="scope">
              <span v-if="scope.row.run_type === -1 ">-</span>
              <span v-else>{{scope.row.tasks | taskList}}</span>
            </template>
          </el-table-column>
          <el-table-column label="运行设备" align="center" width="160px">
          <el-table-column label="运行设备" align="center" width="160px" sortable>
            <template slot-scope="scope">
              <span v-if="scope.row.run_type === -1 ">-</span>
              <span v-else>{{scope.row.runServerName}}</span>
            </template>
          </el-table-column>
          <el-table-column label="状态" align="center" show-overflow-tooltip sortable width="100px">
          <el-table-column label="状态" align="center" show-overflow-tooltip width="100px">
            <template slot-scope="scope">
              <span v-if="scope.row.status === -1 ">-</span>
              <span v-else-if="scope.row.status === 2">{{"处理中"}}</span>
@@ -228,7 +234,27 @@
        }
      })
      return sumPollingCamera * this.PollData.Config.poll_period
      // 所有轮询的摄像机总数 * 轮询时间 / 轮询算力 - 1
      let ret = (sumPollingCamera * this.PollData.Config.poll_period) / this.PollData.PollValidCount - 1
      if (String(ret).indexOf(".") > 0) {
        ret = ret.toFixed(1)
      }
      return ret < 0 ? 0 : ret
    },
    isAdmin() {
      if (
        sessionStorage.getItem("userInfo") &&
        sessionStorage.getItem("userInfo") !== ""
      ) {
        let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
        return loginName === "superadmin" || loginName === "basic";
      }
      return false;
    },
    showSetting() {
      return this.isAdmin || this.buttonAuthority.indexOf("analysisPower:set") > -1
    }
  },
  data() {
@@ -243,7 +269,8 @@
      showSysInfo: false,
      drawer: false,
      formData: {},
      strethTable: false
      strethTable: false,
      buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
    };
  },
  mounted() {
@@ -256,6 +283,17 @@
    clearTimeout(this.timeout);
  },
  methods: {
    ipSortMethod(a,b){
      console.log(a,b);
      // debugger
      if(Number(a.ip.substr(a.ip.lastIndexOf('.')+1)) < Number(b.ip.substr(b.ip.lastIndexOf('.')+1))){
        return -1;
      }
      if(Number(a.ip.substr(a.ip.lastIndexOf('.')+1)) > Number(b.ip.substr(b.ip.lastIndexOf('.')+1))){
        return 1;
      }
      return 0;
    },
    openDrawer() {
      this.initFormData();
      this.drawer = true;
@@ -484,8 +522,8 @@
      }
      // console.log("this.formData.polling:"+this.formData.polling)
    },
    cellStyle(obj){
      if(obj.column.label=='摄像机名称'||obj.column.label=='摄像机地址'){
    cellStyle(obj) {
      if (obj.column.label == '摄像机名称' || obj.column.label == '摄像机地址') {
        return 'text-align:left;padding-left:8px;'
      }
    }
@@ -504,7 +542,7 @@
    height: 190px;
    min-width: 1609px;
    display: flex;
    .sysinfo-box .eCharts-box{
    .sysinfo-box .eCharts-box {
      width: 36%;
    }
    .progressBar {
@@ -516,7 +554,6 @@
      //float: left;
      padding-left: 30px;
      box-sizing: border-box;
    }
    .barGraph {
      width: 16%;
@@ -578,12 +615,12 @@
  // margin-top: 150px;
  font-family: PingFangSC-Medium;
  font-size: 14px;
  &:focus{
  &:focus {
    outline: none;
  }
  .el-dialog__close{
    &:focus{
      outline: none!important;
  .el-dialog__close {
    &:focus {
      outline: none !important;
    }
  }
  .dawer_details {
@@ -604,16 +641,16 @@
      margin-left: 20px;
    }
  }
  .el-drawer__header {
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
    font-size: 16px;
    margin-bottom: 0px;
    span{
      border: none!important;
      border-image-width: 0!important;
      &:focus{
    span {
      border: none !important;
      border-image-width: 0 !important;
      &:focus {
        outline: none;
      }
    }