KafkaZz55555

可以为你生成一个Vue组件,来渲染从后端请求获得的设备信息。你可以根据请求的数据动态展示设备列表。以下是基于你提供的截图的Vue组件代码:

<template>
  <div>
    <!-- 顶部的设备类型筛选 -->
    <div class="device-filter">
      <input
        v-model="searchQuery"
        type="text"
        placeholder="Search Name, SN, Mac, Model"
      />
      <select v-model="deviceType">
        <option value="all">All</option>
        <option value="gateway">Gateways/Switches</option>
        <option value="olt">OLTs</option>
        <option value="ap">APs</option>
      </select>
    </div>

    <!-- 设备列表 -->
    <table>
      <thead>
        <tr>
          <th>Device Name</th>
          <th>Site</th>
          <th>IP Address</th>
          <th>Status</th>
          <th>Model</th>
          <th>Version</th>
          <th>Uptime</th>
          <th>Action</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(device, index) in filteredDevices" :key="index">
          <td>{{ device.name }}</td>
          <td>{{ device.site }}</td>
          <td>{{ device.ip }}</td>
          <td>
            <span :class="getStatusClass(device.status)">
              {{ device.status }}
            </span>
          </td>
          <td>{{ device.model }}</td>
          <td>{{ device.version }}</td>
          <td>{{ device.uptime }}</td>
          <td>
            <button @click="adoptDevice(device)">
              Adopt
            </button>
          </td>
        </tr>
      </tbody>
    </table>

    <!-- 分页 -->
    <div class="pagination">
      <span>Showing {{ pagination.start }}-{{ pagination.end }} of {{ totalDevices }} records</span>
      <button @click="previousPage" :disabled="pagination.page === 1">Previous</button>
      <span>{{ pagination.page }}</span>
      <button @click="nextPage" :disabled="pagination.end >= totalDevices">Next</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      devices: [],
      searchQuery: "",
      deviceType: "all",
      pagination: {
        page: 1,
        perPage: 10,
        start: 1,
        end: 10,
      },
    };
  },
  computed: {
    filteredDevices() {
      let filtered = this.devices.filter((device) => {
        return (
          device.name.includes(this.searchQuery) ||
          device.sn.includes(this.searchQuery) ||
          device.mac.includes(this.searchQuery) ||
          device.model.includes(this.searchQuery)
        );
      });

      if (this.deviceType !== "all") {
        filtered = filtered.filter((device) => device.type === this.deviceType);
      }

      const start = (this.pagination.page - 1) * this.pagination.perPage;
      const end = this.pagination.page * this.pagination.perPage;

      this.pagination.start = start + 1;
      this.pagination.end = Math.min(end, filtered.length);

      return filtered.slice(start, end);
    },
    totalDevices() {
      return this.devices.length;
    },
  },
  methods: {
    getStatusClass(status) {
      if (status === "MANAGED BY OTHERS") {
        return "status-managed";
      } else if (status === "PENDING") {
        return "status-pending";
      }
      return "";
    },
    adoptDevice(device) {
      // 处理设备采用的逻辑,例如发出请求
      console.log("Adopting device:", device);
    },
    previousPage() {
      if (this.pagination.page > 1) {
        this.pagination.page--;
      }
    },
    nextPage() {
      if (this.pagination.end < this.totalDevices) {
        this.pagination.page++;
      }
    },
    fetchDevices() {
      // 假设从后端获取设备信息的API
      fetch("/api/devices")
        .then((response) => response.json())
        .then((data) => {
          this.devices = data;
        });
    },
  },
  mounted() {
    this.fetchDevices();
  },
};
</script>

<style scoped>
.device-filter {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th, td {
  padding: 8px;
  text-align: left;
  border-bottom: 1px solid #ddd;
}

.status-managed {
  color: #ff9800;
}

.status-pending {
  color: #2196f3;
}

.pagination {
  margin-top: 10px;
}

button {
  background-color: #2196f3;
  color: white;
  border: none;
  padding: 5px 10px;
  cursor: pointer;
}

button:disabled {
  background-color: #ccc;
}
</style>

说明:

  1. 设备数据:通过 fetchDevices 方法从后端请求设备数据,假设请求路径为 /api/devices,你可以根据后端实际情况修改。
  2. 搜索和过滤:提供了根据设备名、SN、MAC、型号搜索的功能,并能根据设备类型(All、Gateways/Switches、OLTs、APs)进行筛选。
  3. 状态样式:根据设备状态显示不同颜色的样式(MANAGED BY OTHERS 为橙色,PENDING 为蓝色)。
  4. 分页:实现了简单的分页功能,每页显示10条数据,你可以调整 pagination.perPage 来改变每页显示的数量。
  5. Adopt 按钮:点击 Adopt 按钮时会执行 adoptDevice 方法,你可以在这里实现设备采用的逻辑。
数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值