vue3中el-tree的使用及后端传参

news2024/12/24 2:09:15

实现效果:

如上图所示,实现el-tree的基本使用,回显及联调。

1.点击弹框弹出样式,node-key是id,与后端字段名对应

<Dialog v-model="menuVisible" title="菜单分配">
    <el-tree
      :data="treeData"
      show-checkbox
      node-key="menuCode"
      :default-expanded-keys="expandKeys"
      :default-checked-keys="checkedKeys"
      :props="defaultProps"
      title="菜单分配"
      @check="boxCheck"
      ref="treeRef"
    />
    <template #footer>
      <ElButton
        v-if="actionType !== 'detail'"
        type="primary"
        :loading="saveLoading"
        @click="saveMenu"
      >
        {{ t('exampleDemo.save') }}
      </ElButton>
      <ElButton @click="menuVisible = false">{{ t('dialogDemo.close') }}</ElButton>
    </template>
  </Dialog>

2.ref声明,label是文字显示,填写与后端返回数据文字对应的字段名

3.点击按钮方法调用接口,展示数据或回显数据

//菜单分配
const menuAssignment = async (row: any) => {
  console.log(row, '表格数据')
  role1.value = row.roleCode
  menuVisible.value = true
  const res = await getTree()
    .catch(() => {})
    .finally(() => {})
  const res1 = await getMenuList({ roleCode: row.roleCode })
    .catch(() => {})
    .finally(() => {})
  if (res) {
    treeData.value = res.rows
    if (res1) {
      // 回显选中菜单
      let menuIds = res1.rows
      //避免获取不到getNode
      setTimeout(() => {
        menuIds.forEach((item: any) => {
          const node = treeRef.value.getNode(item)
          if (node.isLeaf) {
            treeRef.value.setChecked(item, true)
            chooseKeys.value.push(item)
          }
        })
      }, 100)
    }
  }
}

4.选中数据调用check方法,将选中的子节点和父节点连接起来存放到chooseKeys数组中

const boxCheck = () => {
  let checkedKeys = treeRef.value.getCheckedKeys()
  let halfCheckedKeys = treeRef.value.getHalfCheckedKeys()
  chooseKeys.value = checkedKeys.concat(halfCheckedKeys)
}

5.点保存将数据传到后端(传参根据后端需求更改)

//菜单保存
const saveMenu = async () => {
  // const elTableExpose = await getElTableExpose()
  ElMessageBox.confirm('确定要保存吗?', '提醒', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  })
    .then(async () => {
      saveLoading.value = true
      const para = {
        roleCode: unref(role1),
        // ...multipleSelection.value
        rightCodes: chooseKeys.value
      }
      await saveMenuRole(para).finally(() => {
        saveLoading.value = false
      })
      ElMessage({
        type: 'success',
        message: '保存成功'
      })
      getList()
      menuVisible.value = false
    })
    .catch(() => {
      ElMessage({
        type: 'info',
        message: '保存失败'
      })
      menuVisible.value = false
    })
}

最后就完成啦

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

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

相关文章

笔记本开启WiFi

笔记本开启WiFi 为了节省流量&#xff1a;笔记本开启WiFi 条件 支持热点的电脑&#xff1b;我的是华硕飞行堡垒7。 注意事项 笔记本连接公司网络&#xff0c;公司网络通常都在监管下的&#xff0c;手机连接wifi后&#xff0c;刷抖音、购物网站&#xff0c;公司后台会捕获你…

windows使用supervisor-win部署flask项目

安装supervisor-win 截止目前最新版本为4.7.0 pip install supervisor-win 配置文件 保存名为supervisor-win.ini的配置文件&#xff0c;其中port*:9001代表监控所有IP地址&#xff0c;由于windows没有办法使用uwsgi&#xff0c;所以这里配置了两个program&#xff1a;[pro…

Log4Qt日志框架(2)-深入分析和使用

Log4Qt日志框架&#xff08;2&#xff09;-深入分析和使用 0 源码1 核心类及其关系2 深入分析 0 源码 支持自动创建默认properties文件如果默认不满足需求&#xff0c;也支持自定义配置文件在原有的log4qt基础单独封装类&#xff0c;在程序开始出初始化后&#xff0c;可以在任何…

AP9196 DC-DC升降 升降压 6A 恒流DEMO原理图

应用范围 户外照明 智能照明 带锂电应用方案 太阳能路灯 补光灯

解密01背包问题:如何在有限空间中实现最大价值?

文章目录 01背包 - 问题分析01背包题目第一问1. 状态表示2. 分析状态转移方程3. 初始化4. 填表顺序5. 返回值 第二问1. 状态表示2. 状态转移⽅程3. 初始化4. 填表顺序5. 返回值 C运行代码 01背包 - 问题分析 01背包是指在一个有容积限制&#xff08;或者重量限制&#xff09;的…

了解消息中间件的基础知识

为什么要使用消息中间件&#xff1f; 解耦&#xff1a;消息中间件可以使不同的应用程序通过解耦的方式进行通信&#xff0c;减少系统间的依赖关系提供异步通信&#xff1a;消息中间件可以实现异步消息传递&#xff0c;提高系统的响应性能。流量削峰&#xff1a;消息中间件可以…

vue项目实现table表格竖向

先上图 思路&#xff1a;使用element ui 自带的栅格&#xff0c;通过控制el-col 的span 属性来设置每行展示多少行&#xff08;竖着的字段&#xff09;&#xff0c;超过就自动换行&#xff1b; content1 是表头 content2是返回的数据 getTable()函数是将返回的正常数据进行处理…

SQL12 高级操作符练习(2)

描述 题目&#xff1a;现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研&#xff0c;请你取出相关数据&#xff08;使用OR实现&#xff09; 示例&#xff1a;user_profile iddevice_idgenderageuniversitygpa12138male21北京大学3.423214male复旦大学4.03…

【SpringMVC】工作流程入门案例的使用

目录 一、什么是SpringMVC 二、SpringMVC的请求流程 三、SpringMVC的优点 四、Spring MVC的主要组件 五、SpringMVC常用注解 六、入门案例演示 6.1.添加pom.xml 6.2.创建spring-mvc.xml 6.3.配置web.xml 6.4.SpringMVC配置Web 6.5.JSP页面编写 七、扩展 7.1.Spring…

全科医学科常用评估量表汇总,建议收藏!

根据全科医学科医生的量表使用情况&#xff0c;笔者整理了10个常用的全科医学科量表&#xff0c;可在线评测直接出结果&#xff0c;可转发使用&#xff0c;可生成二维码使用&#xff0c;可创建项目进行数据管理&#xff0c;有需要的小伙伴赶紧收藏&#xff01; 日常生活能力量表…

HarmonyOS Codelab 优秀样例——溪村小镇(ArkTS)

一、介绍 溪村小镇是一款展示溪流背坡村园区风貌的应用&#xff0c;包括园区内的导航功能&#xff0c;小火车行车状态查看&#xff0c;以及各区域的风景展览介绍&#xff0c;主要用于展示HarmonyOS的ArkUI能力和动画效果。具体包括如下功能&#xff1a; 打开应用时进入启动页&a…

白灯和黄灯哪个对眼睛好?那些专家推荐的护眼灯

随着电子产品普及&#xff0c;虽然给我们生活带来了很多便利&#xff0c;不过也因此有不少人用眼过度导致近视。尤其是孩子&#xff0c;如今不少小孩小小年纪就戴上了眼镜&#xff0c;究其原因&#xff0c;除了繁重的课业还有户外运动的缺失、环境光照的不足、用眼卫生和习惯的…

SpringMVC系列(一)之SpringMVC入门详细介绍

一. SpringMVC简介 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;通过把Model&#xff0c;View&#xff0c;Controller分离&#xff0c;将web层进行职责解耦&#xff0c;把复杂的web应用分成逻辑清晰的几部分&#xff0c;简化开发&a…

Android Studio的笔记--aidl实现和调用

android AIDL接口使用 aidl实现新建aidl实现工程build.gradleproguard-rules.pro增加aidl文件 增加aidl实现aidl实现服务打开aidl服务 aidl使用新建aidl使用工程增加aidl文件使用aidl方法 相关回显 aidl实现 新建aidl实现工程 新建一个工程。工程名testaidl。包名com.lxh.tes…

第 3 章 栈和队列 (使用线性链表和队列实现银行业务模拟)

1. 背景说明 该模拟业务基于时间线来确定&#xff0c;当事件发生时&#xff0c;通过插入升序链表来模拟时间线记录事件发生时间、类型&#xff0c;类似于记事本&#xff0c;由于 时间是单向的&#xff0c;正好符合队列的先进先出特性&#xff0c;类似于我们生活中的排队行为。…

小程序类找茬游戏开发:创造富有挑战性和娱乐性的游戏体验

小程序找茬游戏是一种受欢迎的益智娱乐游戏&#xff0c;玩家需要在两幅几乎相同的图片中找出差异。这种类型的游戏结合了观察力和注意力&#xff0c;提供了有趣的挑战。在本文中&#xff0c;我们将讨论如何开发小程序找茬游戏&#xff0c;以及关键特点和开发流程。 小程序找茬…

初露头角!Walrus入选服贸会“数智影响力”数字化转型创新案例

9月5日&#xff0c;由北京市通信管理局、工业和信息化部新闻宣传中心联合主办的“企业数字化转型论坛”在2023中国国际服务贸易交易会期间召开&#xff0c;论坛以“数字化引领 高质量发展”主题&#xff0c;旨在探讨信息技术如何与各行业深度融合&#xff0c;构建数字化转型新格…

C++vector模拟实现

vector模拟实现 1.构造函数2.拷贝构造3.析构赋值运算符重载4.iterator5.modifiers5.1push_back5.2pop_back5.3empty5.4insert5.5erase5.6swap 6.Capacity6.1size6.2capacity6.3reserve6.4resize6.5empty 7.Element access7.1operator[]7.2at 8.在谈reserve vector官方库实现的是…

SpringBoot整合Redis,基于Jedis实现redis各种操作

前言&#xff08;三步教你学会redis&#xff0c;主打一个实用&#xff09; springboot整合redis步骤&#xff0c;并基于jedis对redis数据库进行相关操作&#xff0c;最后分享非常好用、功能非常全的redis工具类。 第一步&#xff1a;导入maven依赖 <!-- springboot整合re…

C++之智能指针shared_ptr死锁问题(二百)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…