为了满足您的要求,我们需要对代码进行一些调整。以下是一些建议的步骤:

  1. 修改 getList 方法,让其每次只获取最新的一条数据。
  2. 比较新数据与 oldData(最后一次存储的数据)。
  3. 如果新数据与 oldData 不同,则表示有新的数据。

以下是具体实现:

methods: {
    ...
    getList(active) {
        let url = this.$api_url.income_list + '?page=0&tag=list'; // 假设page=0总是获取最新的数据
        url = url + '&type=' + active;
        
        this.$axios.get(url).then((res) => {
            if (res.data.code === 0) {
                const fetchedData = res.data.data[0]; // 假设返回的是一个数组,并取其第一个元素作为最新数据

                // 如果 oldData 为空或 fetchedData 的某个关键属性与 oldData 不同,则视为有新数据
                if (!this.oldData || fetchedData.id !== this.oldData.id) { // 假设数据有一个唯一的 'id' 属性
                    this.newData.push(fetchedData); // 将新数据添加到 newData 数组中
                    this.oldData = fetchedData;    // 更新 oldData 为最新获取的数据
                }
            }
        });
    },
    ...
}

以上代码中的假设基于常见的 API 结构。您可能需要根据实际的 API 返回格式进行适当的调整。

此外,您提到每秒获取一次数据,所以 setInterval 的间隔应该设置为 1000(1秒),而不是 5000(5秒):

mounted() {
    this.s_timer = setInterval(() => {
        this.getList(0)
    }, 1000); // 每1秒执行一次
}

请根据您的实际需求和 API 的结构调整上述代码。如果您有其他问题或需要进一步的帮助,请告诉我。

By lxcss

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注