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

news/2025/1/15 22:09:49/

实现效果:

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

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

<Dialog v-model="menuVisible" title="菜单分配"><el-tree:data="treeData"show-checkboxnode-key="menuCode":default-expanded-keys="expandKeys":default-checked-keys="checkedKeys":props="defaultProps"title="菜单分配"@check="boxCheck"ref="treeRef"/><template #footer><ElButtonv-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.roleCodemenuVisible.value = trueconst res = await getTree().catch(() => {}).finally(() => {})const res1 = await getMenuList({ roleCode: row.roleCode }).catch(() => {}).finally(() => {})if (res) {treeData.value = res.rowsif (res1) {// 回显选中菜单let menuIds = res1.rows//避免获取不到getNodesetTimeout(() => {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 = trueconst para = {roleCode: unref(role1),// ...multipleSelection.valuerightCodes: 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.ppmy.cn/news/1115953.html

相关文章

【推荐】赴日IT课程 做赴日IT我该学什么?

许多想要做赴日IT的朋友问我说&#xff0c;我都该准备什么&#xff0c;或者我该学些什么才能达到可以做赴日程序员的水平呢&#xff1f;今天我就来跟大家聊一下这个问题。要说做准备&#xff0c;你需要有全日制大专及以上的学历才能获得赴日的资格&#xff0c;如果没有我们就先…

uni-app实现点击复制按钮 复制内容

注意:uni.setClipboardData({})里面的data参数必须是字符串类型这个是大坑 第一种 <view>{{orderId}}</view> //复制的内容 <button click"copy(orderId)">复制</button>copy(value) {uni.setClipboardData({data: value , // 这里是个坑接…

Pytorch实现LSTM预测模型并使用C++相应的ONNX模型推理

Pytorch实现RNN模型 代码 import torch import torch.nn as nnclass LSTM(nn.Module):def __init__(self, input_size, output_size, out_channels, num_layers, device):super(LSTM, self).__init__()self.device deviceself.input_size input_sizeself.hidden_size inpu…

element-table 行的拖拽更改顺序(无需下载sortableJs

样例展示&#xff1a;vueelement 通过阅读element文档我们发现element并不提供拖拽相关的api 本博客通过element提供的行类名 注册函数 实现行与行的拖拽 1.设置el-table 的行样式类名 这里是用的是 function <el-table:data"outputData":row-class-name&qu…

【算法挨揍日记】day06——1004. 最大连续1的个数 III、1658. 将 x 减到 0 的最小操作数

1004. 最大连续1的个数 III 1004. 最大连续1的个数 III 题目描述&#xff1a; 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 解题思路&#xff1a; 首先题目要我们求出的最多翻转k个0后&#x…

java复习--day4 (三目运算符、while、for循环)

文章目录 今天的内容1.三目运算符2.循环结构2.1为啥会有循环结构2.2while循环2.3do-while【几乎不用】2.4for循环【重点】2.5循环的嵌套 1.jdk安装和环境变量地配置 2.使用notepad书写第一个Java代码 class HelloWorld {public static void main (String[] args) {} } 3.会使用…

手机端ssh工具

工欲善其事必先利其器&#xff0c;我们在日常工作中需要登录服务器。在Pc端工具比较丰富&#xff0c;如Xshell等。而在手机端有没有好用的ssh连接工具呢&#xff1f; 关于 flutter_server_box一个 Flutter 项目&#xff0c;它提供图表来显示 Linux 服务器状态和管理服务器的工…

【使用malloc函数动态模拟开辟二维数组的三种方法】

方法1.用指针数&#x1f9d0; 首先&#xff1a;看一下原理图(以开辟整型二维数组三行四列为例&#xff0c;以下都是):&#x1f4bb; 其次&#xff1a; 先看一下用malloc申请一维数组:&#x1f92f; int *p(int *)malloc(10*sizeof(int));//开辟10个内存空间接着&#xff1a;申…