美文网首页
2019-08-12 vue-element 后台管理树形控件

2019-08-12 vue-element 后台管理树形控件

作者: X秀秀 | 来源:发表于2019-08-12 15:17 被阅读0次

vue element-ui 树形控件

https://www.jianshu.com/p/230c88a2c523

修改插件里的动西  就可以拿到所有父节点的ID了

<template>

  <div class="box2">

    <div class="markdown">

      <el-tree

        style="background: lavenderblush;"

        :data="data"

        :expand-on-click-node="false"

        show-checkbox

        node-key="id"

        ref="tree"

        :render-content="renderContentSys"

      ></el-tree>

      <div class="buttonlist">

        <el-button @click="baocun">保存</el-button>

        <el-button @click="res">取消</el-button>

      </div>

    </div>

  </div>

</template>

<script>

import qs from "qs";

export default {

  data() {

    return {

      data: []

    };

  },

  props: ["dates", "msg"],

  mounted() {

    var _this = this;

    _this.queryList(); // 角色树形授权列表

  },

  methods: {

    res() {

      this.$emit("set", this.msg);

    },

    // 角色树形授权列表

    queryList() {

      var _this = this;

      var roleId = _this.dates;

      _this

        .$axios({

          method: "POST",

          url: _this.globalAPI.jssq_list + "?roleId=" + _this.dates,

          dataType: "json"

        })

        .then(res => {

          console.log(res, "markdown");

          _this.data = res.data;

        });

    },

    // 树形菜单

    renderContentSys(h, { node, data, store }) {

      return (

        <div>

          <div>{data.name}</div>

        </div>

      );

    },

    // 对角色授权保存数据接口

    balcunList() {

      // 获取多个id以逗号形式发送给后台

      var _this = this;

      var rad = "";

      var ridsa = this.$refs.tree.getCheckedKeys().join(","); // 获取当前的选中的数据[数组] -id, 把数组转换成字符串

      var ridsb = this.$refs.tree.getCheckedNodes(); // 获取当前的选中的数据{对象}

      ridsb.forEach(ids => {

        //获取选中的所有的父级id

        rad += "," + ids.pid;

      });

      rad = rad.substr(1); // 删除字符串前面的','

      var rids = rad + "," + ridsa;

      var arr = rids.split(","); //  把字符串转换成数组

      arr = [...new Set(arr)]; // 数组去重

      rids = arr.join(","); // 把数组转换成字符串

      console.log(rids,'rids');

      _this.$axios

        .post(

          _this.globalAPI.jssqbc_list +

            "?resourceIds=" +

            rids +

            "&roleId=" +

            _this.dates

        )

        .then(res => {

          console.log(res, "对角色授权保存数据接口");

          this.$emit("set", this.msg);

          if (res.data == 1) {

            //  this.$router.go(0); //点击发送刷新当前页面

            this.$message({

              showClose: true,

              message: "授权成功",

              type: "success"

            });

          } else {

            this.$message({

              showClose: true,

              message: "授权失败",

              type: "warning"

            });

          }

        })

        .catch(err => {

          this.$message({

            showClose: true,

            message: "错了哦,这是一条错误消息",

            type: "error"

          });

        });

    },

    // 对角色授权保存数据接口

    baocun() {

      this.balcunList();

    }

  }

};

</script>

<style scoped>

.markdown {

  width: 600px;

  height: 440px;

  background: lavenderblush;

  position: fixed;

  top: 250px;

  left: 680px;

  padding: 40px;

  z-index: 999;

}

.buttonlist {

  display: flex;

  align-items: center;

  justify-content: center;

}

.box2 {

  position: fixed;

  top: 0;

  left: 0;

  right: 0;

  bottom: 0;

  background: rgba(0, 0, 0, 0.3);

  z-index: 999;

  width: 100%;

  height: 100%;

}

</style>

相关文章

网友评论

      本文标题:2019-08-12 vue-element 后台管理树形控件

      本文链接:https://www.haomeiwen.com/subject/vfxujctx.html