element-ui的tree组件的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<FormItem
        label="添加权限:"
        prop="checkMenu"
      >
        <el-tree
          :disabled="true"
          ref="mytree"
          :data="branchList"
          show-checkbox
          node-key="id"
          :default-expand-all="true"
          :default-checked-keys="checkMenu"
          :props="defaultProps"
        >
        </el-tree><br></FormItem>

  

1
2
3
4
5
6
7
8
9
10
11
data() {
   return {
     // 权限 开始
     checkMenu: [],
     branchList: [],
     defaultProps: {
       children: "children",
       label: "label",
     },
   };
 },

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
created() {
  this.getAllRights();
  if (this.pageType != "add") {
    this.detailData();
    this.getHaveRights();
  }
},
methods: {
  // 所有权限
  getAllRights() {
    menuRight1().then((res) => {
      this.branchList = res.data.data;
    });
  },
  detailData() {
    // 编辑默认详情
    detailRole({ id: this.id }).then((res) => {
      let data = res.data;
      if (data.code === 200) {
        this.ruleForm = data.data;
      }
    });
  },
  // 编辑默认权限
  getHaveRights() {
    // 默认权限
    this.checkMenu = [];
    this.rid = this.id;
    this.getAllRights();
    menuRight2({ rid: this.rid }).then((res) => {
      const data1 = res.data.data;
      this.checkMenus = data1;
      // 得到当前角色的权限
      // 得到第三层元素的id
      this.$nextTick(() => {
        data1 && this.getCheckIds(data1);
        this.$refs.mytree.setCheckedKeys(this.checkMenu);
      });
    });
  },
  // 递归得到id
  getCheckIds(arr) {
    arr.map((item, index) => {
      if (item.children.length > 0) {
        this.getCheckIds(item.children);
      } else {
        this.checkMenu.push(item.id);
        return;
      }
    });
  },
  submitForm: function () {
          // 分配权限
          var allcheck = this.$refs.mytree.getCheckedKeys();
          var halfcheck = this.$refs.mytree.getHalfCheckedKeys();
          var newArr = allcheck.concat(halfcheck);
          // 将所有选中的内容以,分隔成为字符串
          var rids = newArr.join(",");
          if (rids === "") {
            this.$message.error("菜单不能为空");
            return false;
          }
          menuRight3({ rid: parseInt(this.id), mids: rids }).then((res) => {
            const data = res.data;
            if (data.code === 200) {
              this.$message.success(data.msg);
            } else {
              this.$message.error(data.msg);
            }
          });
        }
      } else {
        this.$message.error("参数不合法,请检查输入信息");
      }
    });
  },
},

  

posted @   博客天天写  阅读(1229)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示