ZZJ
2022-07-15 5c0c6ad7ac6f28e970532af9936de638830f1161
src/views/equipmentManagement/equipmentList/components/FormList.vue
@@ -44,7 +44,7 @@
      <div class="button add" @click="isShowAdd = true">
        <span>+</span>添加设备
      </div>
      <div class="button export">
      <div class="button export" @click="exportFile">
        <span class="iconfont">&#xe614;</span>导出
      </div>
    </div>
@@ -101,7 +101,7 @@
        </el-table-column>
        <el-table-column label="所属集群" show-overflow-tooltip min-width="154">
          <template> -- </template>
          <template slot-scope="scope"> {{ scope.row.clusterName }} </template>
        </el-table-column>
        <el-table-column label="状态" min-width="70">
@@ -114,42 +114,54 @@
        <el-table-column label="操作" min-width="180">
          <template slot-scope="scope">
            <!-- 加入 -->
            <span
              class="iconfont option"
              @click="joinCluster(scope.row)"
            <el-tooltip
              content="加入集群"
              placement="top"
              v-if="!scope.row.clusterId"
              :class="{ disable: scope.row.isOnline != 1 }"
              >&#xe640;</span
            >
              <span
                class="iconfont option"
                @click="joinCluster(scope.row)"
                :class="{ disable: scope.row.isOnline != 1 }"
                >&#xe640;</span
              >
            </el-tooltip>
            <!-- 退出 -->
            <span
              class="iconfont option"
              @click="quitCluster(scope.row)"
              v-else
              :class="{ disable: scope.row.isOnline != 1 }"
              >&#xe63c;</span
            >
            <el-tooltip content="退出集群" placement="top" v-else>
              <span
                class="iconfont option"
                @click="quitCluster(scope.row)"
                :class="{ disable: scope.row.isOnline != 1 }"
                >&#xe63c;</span
              >
            </el-tooltip>
            <!-- 算法详情 -->
            <span
              class="iconfont option"
              :class="{ disable: scope.row.isOnline != 1 }"
              @click="algorithmDetail(scope.row)"
              >&#xe621;</span
            >
            <el-tooltip content="应用详情" placement="top">
              <span
                class="iconfont option"
                :class="{ disable: scope.row.isOnline != 1 }"
                @click="algorithmDetail(scope.row)"
                >&#xe621;</span
              >
            </el-tooltip>
            <!-- 设备详情 -->
            <span
              class="iconfont option"
              :class="{ disable: scope.row.isOnline != 1 }"
              @click="checkDetail(scope.row)"
              >&#xe619;</span
            >
            <el-tooltip content="设备详情" placement="top">
              <span
                class="iconfont option"
                :class="{ disable: scope.row.isOnline != 1 }"
                @click="checkDetail(scope.row)"
                >&#xe619;</span
              >
            </el-tooltip>
            <!-- 解绑 -->
            <span
              class="iconfont option"
              @click="Untying(scope.row)"
              :class="{ disable: scope.row.isOnline != 1 }"
              >&#xe617;</span
            >
            <el-tooltip content="解除绑定" placement="top">
              <span
                class="iconfont option"
                @click="Untying(scope.row)"
                :class="{ disable: scope.row.isOnline != 1 }"
                >&#xe617;</span
              >
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table>
@@ -195,7 +207,11 @@
</template>
<script>
import { findDevList, findClustersBySearch } from "@/api/device";
import {
  findDevList,
  findClustersBySearch,
  exportDevListExcel,
} from "@/api/device";
import AddBox from "@/views/equipmentManagement/equipmentList/components/AddBox";
import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox";
import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox";
@@ -215,10 +231,7 @@
  },
  data() {
    return {
      searchTime: [
        this.$moment().format("YYYY-MM-DD 00:00:00"),
        this.$moment().format("YYYY-MM-DD HH:mm:ss"),
      ], //搜索时间
      searchTime: [], //搜索时间
      page: 1,
      size: 10, //分页相关
      inputText: "", //输入框内容
@@ -379,6 +392,7 @@
    clearSearch() {
      this.searchTime = this.getDateInit();
      this.inputText = "";
      this.cluster = "";
      this.searchingBtn();
    },
@@ -399,9 +413,56 @@
      this.activeEquipment = equipment;
      this.showJoin = true;
    },
    //导出列表文件
    async exportFile() {
      let param = {};
      if (!this.searchTime) {
        param = {
          page: this.page,
          size: this.size,
          startTime: "",
          endTime: "",
          clusterId: this.cluster,
          inputText: this.inputText,
        };
      } else {
        param = {
          page: this.page,
          size: this.size,
          startTime: this.searchTime[0],
          endTime: this.searchTime[1],
          clusterId: this.cluster,
          inputText: this.inputText,
        };
      }
      const result = await exportDevListExcel(param);
      var blob = new Blob([result.body.data], {
          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
        }),
        Temp = document.createElement("a");
      Temp.href = window.URL.createObjectURL(blob);
      console.log(result);
      console.log(result.fileName);
      Temp.download = window.decodeURI(result.fileName);
      Temp.setAttribute("download", result.fileName);
      document.body.appendChild(Temp);
      Temp.click();
      document.body.removeChild(Temp);
      window.URL.revokeObjectURL(Temp);
    },
  },
  mounted() {
    this.searchTime = this.getDateInit();
    this.searchingBtn();
  },
};
@@ -428,7 +489,7 @@
    .cluster {
      .el-select {
        width: 200px;
        width: 190px;
        height: 40px;
        line-height: 40px;
@@ -469,7 +530,7 @@
    }
    .el-input ::v-deep {
      width: 280px;
      width: 270px;
      height: 40px;
      margin-left: 10px;
      margin-right: 20px;
@@ -487,7 +548,7 @@
    }
    .el-date-editor {
      width: 318px;
      width: 340px;
      height: 40px;
      margin-left: 10px;
      margin-right: 20px;
@@ -503,7 +564,7 @@
    }
    .searchBtn {
      width: 120px;
      width: 110px;
      height: 40px;
      line-height: 40px;
      text-align: center;
@@ -513,7 +574,7 @@
    }
    .resetBtn {
      width: 120px;
      width: 110px;
      height: 40px;
      line-height: 40px;
      text-align: center;
@@ -616,7 +677,7 @@
  .el-pagination ::v-deep {
    margin-top: 30px;
    text-align: center;
    text-align: right;
    height: 24px;
    .el-pagination__sizes {
      margin-right: 0;
@@ -650,6 +711,16 @@
        border-color: #0065ff;
      }
    }
    .el-pagination__jump {
      margin-left: 12px;
      .el-pagination__editor {
        width: 37px;
        input {
          width: 32px;
        }
      }
    }
  }
}
</style>