vue element tree组件使用

vue element tree 在项目中经常会使用到,例如权限配置,组织架构配置,菜单配置等等

注意:check-strictly="true"是取消父子级关联,如果需要父子级关联就删掉这个配置

<el-tree
  :data="treeData"
  show-checkbox
  node-key="id"
  ref="tree"
  :default-checked-keys="defaultCheckedIds"
  :check-strictly="true"
  default-expand-all
  :props="defaultProps">
</el-tree>


<el-button type="primary" @click="showMask2=false" icon="el-icon-circle-close"> </el-button>
<el-button type="success" @click="setAllCheckedKeys" icon="el-icon-finished"> </el-button>
<el-button type="info" @click="resetChecked" icon="el-icon-delete"> </el-button>
<el-button type="primary" @click="submitTree" icon="el-icon-circle-check"> </el-button>


export default {
	data() {
		return {
			treeData: [],
			defaultCheckedIds:[],
	        defaultProps: {
	          value:'id',
	          children: 'childrenList',
	          label: 'name'
	        }
		}
	},
	methods:{
		//初始化tree data数据
		initTreeData(){
	        let params = null;
	        this.$commonAjax.post('/xxx/xxx', params,
	          (json)=> {
	            if (json.code == 0) {
	              this.treeData = json.content;
	            } else {
	              this.$message.error(json.message);
	            }
	          },
	          (error)=> {
	            this.$message.error("系统繁忙请稍后再试!");
	          }
	        );
    	},
		//设置tree checkbox 选中
	    setAllCheckedKeys() {
	      this.$refs.tree.setCheckedNodes(this.treeData);
	    },
	    //清空tree checkbox
	    resetChecked() {
	      this.$refs.tree.setCheckedKeys([]);
	    },
	    //获取选中的checked id,注意返回的是long id 数组
	    getDefaultCheckedIds(){
	    	let params = null;
			this.$commonAjax.post('/xxx/xxx', params,
	          (json)=> {
	            if (json.code == 0) {
	              this.defaultCheckedIds = json.content;
	            } else {
	              this.$message.error(json.message);
	            }
	          },
	          (error)=> {
	            this.$message.error("系统繁忙请稍后再试!");
	          }
	        );
		},
		//点击确定按钮提交后台
		submitTree(){
			//这里获取的tree 选中的 checked 返回的是 id 数组
	        let ids = this.$refs.tree.getCheckedKeys();
	        if(ids.length == 0){
	          this.$message.error("请配置权限再提交!");
	          return;
	        }
	        let params = {
	          roleId:this.currentRoleId,
	          roleCode:this.currentRoleCode,
	          ids:ids
	        }
	        this.$commonAjax.post('/xxx/xxx', params,
	          (json)=> {
	            if (json.code == 0) {
	              this.$message.error("权限配置成功");
	            } else {
	              this.$message.error(json.message);
	            }
	          },
	          (error)=> {
	            this.$message.error("系统繁忙请稍后再试!");
	          }
	        );
		},
	},
	mounted() {
      this.initTreeData();
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珍妮玛•黛金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值