点击数字层级从 admin.vue 跳转到 inviter-list.vue 组件

news2025/2/28 20:23:01

文章目录

  • 1、admin.vue
  • 2、inviter-list.vue

1、admin.vue

好的,我们来分析一下代码中“层级”这一列的逻辑,并探讨它与后端的关联。

“层级” 列的逻辑

在您的代码中,“层级”列的渲染逻辑如下:

<el-table-column
  align="center"
  prop="level"
  label="层级"
>
  <template slot-scope="{row}">
    <el-button type="text" size="small" @click="onQueryInviter(row)">{{ row.level }}</el-button>
  </template>
</el-table-column>
  • prop="level": 这指定了表格列的数据来源,即当前行数据的 level 属性。
  • label="层级": 这是列的标题,表明这一列显示的是用户的层级信息。
  • template slot-scope="{row}": 使用了 el-table-columnslot-scope 特性,row 代表当前行的数据对象。
  • <el-button type="text" size="small" @click="onQueryInviter(row)">{{ row.level }}</el-button>:
    • 使用了 Element UI 的 el-button 组件,样式为 text 类型的按钮,大小为 small
    • 按钮文本显示当前行的 row.level 值。
    • 点击按钮时,会触发 onQueryInviter(row) 方法。

与后端的关联

  1. 数据来源:

    • row.level 的值来源于后端。 当您通过 adminList(query) 请求获取管理员列表数据时,后端 API 需要返回包含 level 属性的对象数组。
    • level 字段可能是一个字符串,也可能是数字,具体类型取决于后端的定义。通常情况下,代表用户在系统中的层级,例如“普通用户”、“VIP用户”、“一级代理”等。
    • 后端返回的 JSON 数据可能包含:
      {
        "code": 0,
        "data": {
            "content":[
             {
                "id": 1,
                "username": "testuser1",
                "level": "一级代理",
                  "phone":"1888888888",
                "bindNum": 5,
                "subscribeNum": 2,
                "activation":10,
                "status":1,
                 "roleName":"超级管理员"
              },
               {
                "id": 2,
                "username": "testuser2",
                 "level": "普通用户",
                "phone":"1999999999",
                "bindNum": 1,
                "subscribeNum": 0,
                  "activation":1,
                "status":1,
                 "roleName":"普通管理员"
              }
              ],
              "totalElements":10
          }
      }
    
  2. 后端逻辑:

    • 后端需要存储和管理用户的层级信息。 这通常是在用户注册或者管理员修改用户资料时进行的。
    • 后端需要根据用户的层级信息,在查询用户列表时返回正确的 level 值。
    • 后端的 level 字段可能是一个枚举值(例如,0 表示普通用户,1 表示一级代理),或者一个字符串。
  3. onQueryInviter(row) 方法:

    • 这个方法会在点击层级按钮时触发。
    • 虽然 onQueryInviter 方法在前端定义,但是它可能会与后端交互,具体取决于该方法的实现。
    • 从您的代码中可以看到,onQueryInviter 方法最终是把 row 赋值给 this.user ,然后将 ilVis 置为 true,显示一个 inviter-list 的组件
    • inviter-list 组件内部逻辑,可能会向后端发起请求,例如获取用户的下级列表等。

总结

  • 逻辑层面:
    • “层级”列显示了用户在系统中的层级,通过按钮形式展示并且可以触发点击事件。
  • 与后端的关联:
    • row.level 属性由后端提供, 代表用户的层级信息。
    • 后端负责管理、存储和返回用户的层级信息。
    • onQueryInviter 方法的点击,虽然是前端处理,但是它可能会和后端交互,根据当前用户的层级信息,从后端获取当前用户的下级列表等。

因此,“层级”列的逻辑与后端有密切关系。后端必须正确地提供用户的层级信息,并且正确处理 onQueryInviter 方法的点击可能触发的请求,前端才能正确展示层级信息。

是否所有逻辑都与后端有关?

并不是所有逻辑都与后端有关。

  • 前端负责
    • el-button 组件的渲染和样式,点击事件触发 onQueryInviter(row) 方法,
    • el-table-column 的显示方式和属性
  • 后端负责
    • row.level 数据的提供。
    • onQueryInviter 方法可能会触发的请求
  • 前后端交互
    • 前端向后端请求数据,并展示在 el-table 中。
    • 点击按钮时,会触发 onQueryInviter(row),此方法可能会向后端请求数据,并展示到 inviter-list 组件中。

总而言之,虽然“层级”列的显示逻辑主要在前端,但数据和部分交互逻辑依赖于后端,两者相互配合才能实现完整的功能。


2、inviter-list.vue

好的,我们来深入分析一下 onQueryInviter 方法是如何与 inviter-list.vue 组件联系起来,并实现点击“层级”按钮后跳转到 inviter-list.vue 组件的。

关键代码回顾

  1. admin 组件中的 el-table-column

    <el-table-column
      align="center"
      prop="level"
      label="层级"
    >
      <template slot-scope="{row}">
        <el-button type="text" size="small" @click="onQueryInviter(row)">{{ row.level }}</el-button>
      </template>
    </el-table-column>
    
    • admin 组件的表格中,level 列使用 el-button 展示层级信息,并绑定 @click="onQueryInviter(row)" 事件。
    • 当点击这个按钮时,会调用 admin 组件的 onQueryInviter 方法,并将当前行的数据对象 row 作为参数传递。
  2. admin 组件中的 onQueryInviter 方法:

    public async onQueryInviter(row: any) {
      // const res: any = await qinviter({ id: row.id })
      // if (res?.code === 0) {
      //   console.log(res?.data)
      // }
      this.user = row
      this.ilVis = true
    }
    
    • 此方法接收点击行的数据 row
    • 它将 row 赋值给组件的 user 属性,并将组件的 ilVis 属性设置为 true
    • 关键:ilVis 属性的值的改变,会触发 inviter-list 组件的显示,因为它是由 ilVis 属性控制的。
  3. admin组件中的inviter-list组件

      <inviter-list
      :visible="ilVis"
      :value="user"
      @close="onInviterListClose"
    />
    
    • inviter-list 组件通过:visible="ilVis" 属性来控制显隐,当 ilVistrue 时,组件显示,为false时,组件隐藏。
    • inviter-list 组件接收 user 作为 value 属性,用于传递数据。
    • inviter-list 组件关闭时会触发 onInviterListClose 方法。

联系方式和跳转原理

  1. 事件绑定与方法调用:

    • el-button@click 事件直接绑定了 admin 组件的 onQueryInviter 方法,这是直接的联系方式。
    • 当用户点击 level 列的按钮时,onQueryInviter 方法会被调用。
  2. 状态管理与条件渲染:

    • onQueryInviter 方法通过修改 ilVis 属性的值来控制 inviter-list 组件的显示。
    • admin 组件中,inviter-list 组件的 visible prop 绑定了 ilVis。当 ilVistrue 时,inviter-list 组件会显示,否则隐藏。
    • 这是一种利用 Vue 的响应式数据和条件渲染机制实现“跳转”效果的方式。
    • 这种跳转并非传统意义上的页面跳转,而是在当前页面根据状态变化展示不同的组件。
  3. 数据传递:

    • onQueryInviter 方法还通过把 row 对象赋值给 user 属性,实现了从 admin 组件向 inviter-list 组件传递数据。
    • inviter-list 组件通过 value 属性接收数据。
  4. 组件通信:

  • 通过 :visible 属性和 @close 属性,实现了 admin 组件和 inviter-list 组件的组件通信

总结

onQueryInviter 方法与 inviter-list.vue 组件的联系,是通过以下几个关键步骤实现的:

  1. 触发: 用户点击 level 列的按钮,触发 admin 组件的 onQueryInviter 方法。
  2. 状态改变: onQueryInviter 方法修改了 admin 组件的 ilVis 属性为 true
  3. 条件渲染: admin 组件中的 inviter-list 组件根据 ilVis 属性的改变,显示或隐藏。
  4. 数据传递: onQueryInviter 方法将点击行的数据 row 赋值给 admin 组件的 user 属性,并通过 prop 传递给 inviter-list 组件。

这种方式并非传统的页面跳转,而是利用 Vue 的响应式和组件化特性,在同一个页面中根据状态改变动态展示不同的组件。 这种方式在单页应用中非常常见,用于实现复杂的交互和信息展示。

在这里插入图片描述

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

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

相关文章

LabVIEW实时信号采集与频谱分析

系统通过LabVIEW与PXIe硬件结合&#xff0c;实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换&#xff08;FFT&#xff09;、功率谱图生成及动态缩放调整&#xff0c;同时支持信号平均与噪声抑制。系统设计灵活&#xff0c;适用于…

【ComfyUI + 铅笔素描画风】艺术家DaTou发布了的彩色铅笔素描风格生成(真实感超强)

发布时间&#xff1a;2024年12月09日 项目主页&#xff1a;https://hf-mirror.com/Datou1111/shou_xin 基础模型&#xff1a;flux.1-dev comfyui工作流下载&#xff1a;https://pan.baidu.com/s/1FrLQ4o8ldckKwhIrN1Pv7g?pwd1220 自己测试 官方效果 生成猫猫 shou_xin, a m…

洛谷 B3644 【模板】拓扑排序 / 家谱树 C语言

题目&#xff1a; https://www.luogu.com.cn/problem/B3644 题目描述 有个人的家族很大&#xff0c;辈分关系很混乱&#xff0c;请你帮整理一下这种关系。给出每个人的后代的信息。输出一个序列&#xff0c;使得每个人的后辈都比那个人后列出。 输入格式 第 1 行一个整数 …

unity接入coze智能体

官网链接 coze智能体创建、设置 点击创建–选着智能体&#xff0c;随便起一个名字&#xff0c;就可以了 添加令牌 把随便起一个名字&#xff0c;设置时间&#xff0c;把所有选项都勾选上&#xff0c;一定要勾选所有团队空间&#xff0c;否则无法点击确定。 点击确定后&a…

EE308FZ_Sixth Assignment_Beta Sprint_Sprint Essay 3

Assignment 6Beta SprintCourseEE308FZ[A] — Software EngineeringClass Link2401_MU_SE_FZURequirementsTeamwork—Beta SprintTeam NameFZUGOObjectiveSprint Essay 3_Day5-Day6 (12.15-12.16)Other Reference1. WeChat Mini Program Design Guide 2. Javascript Style Guid…

国内主流的工程项目管理软件有哪些?

随着科技的发展&#xff0c;工程管理软件已经成为了工程管理的重要工具。在国内&#xff0c;有许多优秀的工程管理软件&#xff0c;它们可以帮助我们更好地管理工程项目。那么&#xff0c;你知道有哪些工程管理软件吗&#xff1f;下面就让我们一起来盘点一下。 1、广联达 广联…

网络变压器如何识别电路

1. 基本符号的理解 曲线&#xff1a;表示变压器的线圈&#xff08;windings&#xff09;&#xff0c;每个曲线代表一个独立的线圈。 直线&#xff1a;用于连接不同的元件或引脚&#xff0c;表明电流路径。 2. 关键标注解释 CT&#xff08;Center Tap&#xff09;&#xff1a;中…

【原生js案例】ajax的简易封装实现后端数据交互

ajax是前端与后端数据库进行交互的最基础的工具&#xff0c;第三方的工具库比如jquery,axios都有对ajax进行第二次的封装&#xff0c;fecth是浏览器原生自带的功能&#xff0c;但是它与ajax还是有区别的&#xff0c;总结如下&#xff1a; ajax与fetch对比 实现效果 代码实现 …

免费开源!推荐一款网页版数据库管理工具!

免费开源&#xff01;推荐一款网页版数据库管理工具&#xff01; DBGate 是一个开源的数据库管理工具&#xff0c;DBGate 的最大特点是可以 Web 访问&#xff01;&#xff0c;轻松实现一台机器部署&#xff0c;所有人使用&#xff01; 无论是 MySQL、PostgreSQL、SQLite 还是…

主要是使用#includenlohmannjson.hpp时显示找不到文件,但是我文件已正确导入visual studio配置,也保证文件正确存在

问题&#xff1a; 主要是在项目配置中包括了C/C配置中文件位置&#xff0c;但是没有把nlohmann上一级的目录包括进去&#xff0c;导致#include"nlohmann/json.hpp"找不到文件位置 解决&#xff1a; 加上上一级目录到附加包含目录 596513661)] 总结&#xff1a; 找不…

智慧公交指挥中枢,数据可视化 BI 驾驶舱

随着智慧城市的蓬勃发展&#xff0c;公共交通作为城市运营的核心枢纽&#xff0c;正朝着智能化和数据驱动的方向演进。通过整合 CAN 总线技术(Controller Area Network&#xff0c;控制器局域网总线)、车载智能终端、大数据分析及处理等尖端技术&#xff0c;构建的公交“大脑”…

[c++11(二)]Lambda表达式和Function包装器及bind函数

1.前言 Lambda表达式着重解决的是在某种场景下使用仿函数困难的问题&#xff0c;而function着重解决的是函数指针的问题&#xff0c;它能够将其简单化。 本章重点&#xff1a; 本章将着重讲解lambda表达式的规则和使用场景&#xff0c;以及function的使用场景及bind函数的相关使…

redis数据类型:list

list 的相关命令配合使用的应用场景&#xff1a; 栈和队列&#xff1a;插入和弹出命令的配合&#xff0c;亦可实现栈和队列的功能 实现哪种数据结构&#xff0c;取决于插入和弹出命令的配合&#xff0c;如左插右出或右插左出&#xff1a;这两种种方式实现先进先出的数据结构&a…

基于51单片机的验证码收发系统的仿真设计

一、设计要求 主机、从机均以AT89C52单片机为控制核心。主机生成6位随机验证码、并将验证码发送给从机&#xff1b;从机输入验证码发送给主机&#xff0c;主机接收来自从机发送的验证码并核对两个验证码是否一致。 二、设计内容 主机通过独立按键生成6位随机验证码并发送给从…

WPF实现曲线数据展示【案例:震动数据分析】

wpf实现曲线数据展示&#xff0c;函数曲线展示&#xff0c;实例&#xff1a;震动数据分析为例。 如上图所示&#xff0c;如果你想实现上图中的效果&#xff0c;请详细参考我的内容&#xff0c;创作不易&#xff0c;给个赞吧。 一共有两种方式来实现&#xff0c;一种是使用第三…

[机器学习]AdaBoost(数学原理 + 例子解释 + 代码实战)

AdaBoost AdaBoost&#xff08;Adaptive Boosting&#xff09;是一种Boosting算法&#xff0c;它通过迭代地训练弱分类器并将它们组合成一个强分类器来提高分类性能。 AdaBoost算法的特点是它能够自适应地调整样本的权重&#xff0c;使那些被错误分类的样本在后续的训练中得到…

详细解读TISAX认证的意义

详细解读TISAX认证的意义&#xff0c;犹如揭开信息安全领域的一颗璀璨明珠&#xff0c;它不仅代表了企业在信息安全管理方面的卓越成就&#xff0c;更是通往全球汽车供应链信任桥梁的关键一环。TISAX&#xff0c;即“Trusted Information Security Assessment Exchange”&#…

黑马Redis数据结构学习笔记

Redis数据结构 动态字符串 Intset Dict ZipList QuickList SkipList 类似倍增 RedisObject 五种数据类型 String List Set ZSet Hash

sqlilabs靶场二十一关二十五关攻略

第二十一关 第一步 可以发现cookie是经过64位加密的 我们试试在这里注入 选择给他编码 发现可以成功注入 爆出表名 爆出字段 爆出数据 第二十二关 跟二十一关一模一样 闭合换成" 第二十三关 第二十三关重新回到get请求&#xff0c;会发现输入单引号报错&#xff0c…

Win10将WindowsTerminal设置默认终端并添加到右键(无法使用微软商店)

由于公司内网限制&#xff0c;无法通过微软商店安装 Windows Terminal&#xff0c;本指南提供手动安装和配置新版 Windows Terminal 的步骤&#xff0c;并添加右键菜单快捷方式。 1. 下载新版终端安装包: 访问 Windows Terminal 的 GitHub 发布页面&#xff1a;https://githu…