随手记:树结构翻页和定位指定数据逻辑

news2024/11/26 12:22:35

业务背景:

树形组件展示数据,数据包含过去数据,现在数据,未来数据,用户在首次进入页面时,展示的是当天的数据,如果当天没有数据,则显示最近一条的过去数据。数据按照时间越长数据会越来越多,过去未来现在都可能有数据或者没有数据。
 

和后端约定数据返回结构:
约定一次性返回多少条数据作为首次进入的展示,今天的数据给一个标记,如果今天没有数据,则查询今天之前的一条数据作为标记返回。标记的只有一个。
 

前端思维点:
定位当前:
首次获取数据时,将数据赋值树形结构接收,给标记的数据设为唯一的id值,获取id元素距离最外层 元素的距离,将滚动条距离顶部的距离等于id元素距离最外层 元素的距离,可以实现首次进入定位到当前最近的数据作为展示。
向上翻页:当滚动条距离顶部的距离等于0的,做向上翻页,给后端传原返回数据第一个日期
向下翻页:当判断滚动条触底时,做向下翻页,给后端传原返回数据最后一个日期

      <div class="custom-tree-container font12">
        <div class="block tree-data" id="treeId">
          <el-tree
            :data="treedData"
            node-key="id"
            default-expand-all
            :expand-on-click-node="false">
            <span slot-scope="{ node, data }" :id="data.labelId">
              <i v-if="data.children"></i>
              <span class="circle" v-else></span>
              <span class="text"  @click="treeItem(node, data)">{{ node.label}}</span>
            </span>
          </el-tree>
        </div>
      </div>

    // 获取标记今天的元素距离父元素的距离
    getOffSet() {
      this.treeEL = document.querySelector('.tree-data');
      this.todayEL = document.querySelector('#today');
      console.log('标记的数据距离元素的高度',this.todayEL.offsetTop)
      this.treeEL.addEventListener('scroll', this.getScrollTop,false)
    },
    // 监听鼠标距离顶部距离
    getScrollTop() {
      // console.log('监听鼠标距离顶部距离',this.treeEL.scrollTop)
      const clientHeight = this.treeEL.clientHeight;
      const scrollTop = this.treeEL.scrollTop;
      const scrollHeight = this.treeEL.scrollHeight;
      if (clientHeight + scrollTop === scrollHeight) {
        console.log('竖向滚动条已经滚动到底部,需要向下翻页')
      }
      if (scrollTop === 0) {
        console.log('竖向滚动条已经滚动到顶部,需要向上翻页')
      }
    },

目前就前端暂时画完了页面,后端还在接口设计,后续联调

待更新.....


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1625919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用 Pytorch 训练一个 Transformer模型

昨天说了一下Transformer架构&#xff0c;今天我们来看看怎么 Pytorch 训练一个Transormer模型&#xff0c;真实训练一个模型是个庞大工程&#xff0c;准备数据、准备硬件等等&#xff0c;我只是做一个简单的实现。因为只是做实验&#xff0c;本地用 CPU 也可以运行。 本文包含…

python 脚本头(PyCharm+python头部信息、py头部信息、python头信息、py头信息、py文件头部)

文章目录 参考PyCharm设置脚本头头部信息 参考 https://developer.aliyun.com/article/1166544 https://blog.csdn.net/Dontla/article/details/131743495 https://blog.csdn.net/dongyouyuan/article/details/54408413 PyCharm设置脚本头 打开pycharm&#xff0c;点击file–…

深入了解MySQL:从基础到特性,全面解读关系数据库管理系统的历史与应用

文章目录 1. MySQL简介1.1 概述1.2 架构与兼容性1.3 开源与社区支持 2. MySQL的历史2.1 创始与初衷2.2 发展历程2.3 在Oracle的持续发展2.4 开源与商业结合 3. MySQL的核心特性4. MySQL在实际应用中的作用4.1 网站建设与内容管理4.2 商业智能与客户关系管理4.3 企业级应用与云集…

【大数据】分布式数据库HBase

目录 1.概述 1.1.前言 1.2.数据模型 1.3.列式存储的优势 2.实现原理 2.1.region 2.2.LSM树 2.3.完整读写过程 2.4.master的作用 1.概述 1.1.前言 本文式作者大数据系列专栏中的一篇文章&#xff0c;按照专栏来阅读&#xff0c;循序渐进能更好的理解&#xff0c;专栏…

解锁3D技术文档创建新可能,提升跨部门沟通效率

随着制造业的蓬勃发展与数字化转型的持续推进&#xff0c;产品设计与制作部门间的协作与沟通显得愈发关键。然而&#xff0c;传统沟通方式存在的效率低下、信息传递失准等弊端&#xff0c;已成为制约产品设计、制作效率和质量的瓶颈。 与此同时&#xff0c;CAD软件作为产品设计…

Scala 04 —— Scala Puzzle 拓展

Scala 04 —— Scala Puzzle 拓展 文章目录 Scala 04 —— Scala Puzzle 拓展一、占位符二、模式匹配的变量和常量模式三、继承 成员声明的位置结果初始化顺序分析BMember 类BConstructor 类 四、缺省初始值与重载五、Scala的集合操作和集合类型保持一致性第一部分代码解释第二…

海外云服务对比: AWS、GCP、Azure 与 DigitalOcean

云计算市场持续增长&#xff0c;预计到2030年将达到 2432.87 亿美元。在这个庞大的市场中&#xff0c;三家云服务提供商——亚马逊&#xff08;AWS&#xff09;、谷歌云平台&#xff08;GCP&#xff09;和微软Azure——共占云市场份额的64%。当用户选择云服务提供商来托管他们的…

【树莓派4B】如何点亮树莓派的LED灯

在之前一系列文章中&#xff0c;使用python、行人入侵检测&#xff0c;确没有使用树莓派的硬件。控制引脚进行输出&#xff1a; 如何写python点亮led灯闪烁&#xff0c;我灯接在gpio13,GPIO19,gpio26。我都想闪烁。 你可以使用Python的GPIO库来控制树莓派上的LED灯。首先&…

一年期免费SSL证书申请方法

免费SSL证书的申请已经成为当今互联网安全实践中的重要环节&#xff0c;它不仅有助于保护网站数据传输的隐私性和完整性&#xff0c;还能提升用户信任度&#xff0c;因为现代浏览器会明确标识出未使用HTTPS&#xff08;即未部署SSL证书&#xff09;的网站为“不安全”。以下是一…

(windows ssh) windows开启ssh服务,并通过ssh登录该win主机

☆ 问题描述 想要通过ssh访问win主句 ★ 解决方案 安装ssh服务 打开服务 如果这里开不来就“打开服务”&#xff0c;找到下面两个开启服务 然后可以尝试ssh链接&#xff0c;注意&#xff0c;账号密码&#xff0c;账号是这个&#xff1a; 密码是这个 同理&#xff0c;如果…

看企业中很多老师傅都说没前途,该不该放弃嵌入式单片机行业?

在企业中&#xff0c;我们经常会听到很多老师傅感叹嵌入式单片机行业没有前途&#xff0c;这也让不少人陷入了迷茫&#xff0c;不知道该不该放弃这个行业。其实&#xff0c;我发现很多新手在嵌入式和单片机领域都存在一个误区&#xff0c;那就是他们过于专注于工作技能的提升&a…

适合初学者的自然语言处理 (NLP) 综合指南

一、简述 自然语言处理 (NLP) 是人工智能 (AI) 最热门的领域之一&#xff0c;现在主要指大语言模型了。这要归功于人们热衷于能编写故事的文本生成器、欺骗人们的聊天机器人以及产生照片级真实感的文本到图像程序等应用程序。近年来&#xff0c;计算机理解人类语言、编程语言&a…

从零到一,打造高效团队!项目经理必备的5大核心能力

快速晋升项目经理的绝密成功法则&#xff0c;你掌握了吗&#xff1f; 项目经理通常具备一系列关键的能力和素质&#xff0c;并付诸实践。以下是项目经理快速晋升需要掌握的技能&#xff1a; 一、精通核心技能&#xff0c;奠定项目基础 1、专业知识技能&#xff1a;项目经理…

Linux-进程和计划任务管理⭐

目录 一、程序和进程 1.程序 2.进程 3.线程与进程 二、ps查看静态进程信息 1.ps aux 命令 2.ps-静态查看系统进程 3.ps -elf 三、top-查看进程动态信息 四、pgrep查看进程信息 五、pstree-查看进程树 六、控制进程 1.进程启动方式 2.调度启动 3.进程的前后台调…

电商ERP是什么,电商ERP有什么用?||电商API接口

目录 一. 电商ERP是什么? 二. 电商ERP的常见功能 三. 小结 电商ERP接口接入 01 一. 电商ERP是什么? 随着电商经济的快速发展&#xff0c;电商企业面临着机遇和挑战。企业都希望快速拓展市场&#xff0c;通过多个渠道增加销售额。电商ERP系统是一种先进的应用系统&#…

EaseUS RecExperts for Mac/Win:你的专属屏幕录像专家

在信息爆炸的时代&#xff0c;屏幕录像软件已经成为我们工作和生活中的得力助手。无论是教学演示、产品介绍&#xff0c;还是游戏录制、会议记录&#xff0c;一款功能强大的屏幕录像软件都能轻松应对。而EaseUS RecExperts&#xff0c;正是这样一款值得你信赖的屏幕录像专家。 …

网络安全之弱口令与命令爆破(上篇)(技术进阶)

目录 一&#xff0c;什么是弱口令&#xff1f; 二&#xff0c;为什么会产生弱口令呢&#xff1f; 三&#xff0c;字典的生成 四&#xff0c;使用Burpsuite工具弱口令爆破 总结 一&#xff0c;什么是弱口令&#xff1f; 弱口令就是容易被人们所能猜到的密码呗&#xff0c;…

springboot+thymeleaf实现一个简单的监听在线人数功能

功能步骤&#xff1a; 1. 当用户访问登录页面时&#xff0c;Logincontroller的showLoginForm方法被调用&#xff0c;返回登录页面的视图名字。 2. 用户提交表单&#xff0c;调用LoginController的login方法。 3.login方法 4.登录验证通过&#xff0c;home方法会被调用&#xf…

JavaEE >> Spring Boot(1)

Spring Boot 前面已经介绍了 Spring &#xff0c;是为了简化 Java 程序开发的&#xff0c;而在前面创建的过程中就会发现其实 Spring 还是有点复杂&#xff0c;此时 Spring Boot 就诞生了&#xff0c; Spring Boot 是为了简化 Spring 程序开发的。 Spring Boot 即 Spring 脚手…

transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中&#xff0c;源数据和目标数据的定义 def get_batch(source,i):用于获取每个批数据合理大小的源数据和目标数据参数source 是通过batchfy 得到的划分batch个 ,的所有数据&#xff0c;并且转置列表示i第几个batchbptt 15 #超参数&#xff0c;一次输入多少个ba…