分享

成功el-tree获取复选框选中节点

 北方天空A 2020-08-28

<template>

  <div class="app-container">

    <div class="custom-tree-container">

      <div class="block">

        <p>使用 scoped slot</p>

        <el-tree

          :data="data"

          ref="rootTree"

          show-checkbox

          node-key="id"

          default-expand-all

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

        >

          <span class="custom-tree-node" slot-scope="{ node, data }">

            <span>{{ node.label }}</span>

            <span>

              <el-button type="text" size="mini" @click="() => append(data)">Append</el-button>

              <el-button type="text" size="mini" @click="() => remove(nodedata)">Delete</el-button>

            </span>

          </span>

        </el-tree>

      </div>

    </div>

    <div>

      <el-button type="text" @click="getCheckedKeys()">获取选中</el-button>

    </div>

  </div>

</template>

<script>

let id = 1000;

import { treeDataGetnode } from "@/api/tree";

export default {

  data() {

    const data = [

      {

        id: 1,

        label: "一级 1",

        children: [

          {

            id: 4,

            label: "二级 1-1",

            children: [

              {

                id: 9,

                label: "三级 1-1-1",

              },

              {

                id: 10,

                label: "三级 1-1-2",

              },

            ],

          },

        ],

      },

      {

        id: 2,

        label: "一级 2",

        children: [

          {

            id: 5,

            label: "二级 2-1",

          },

          {

            id: 6,

            label: "二级 2-2",

          },

        ],

      },

      {

        id: 3,

        label: "一级 3",

        children: [

          {

            id: 7,

            label: "二级 3-1",

          },

          {

            id: 8,

            label: "二级 3-2",

          },

        ],

      },

    ];

    return {

      data: JSON.parse(JSON.stringify(data)),

    };

  },


  methods: {

    append(data) {

      const newChild = { id: id++, label: "testtest"children: [] };

      if (!data.children) {

        this.$set(data"children", []);

      }

      data.children.push(newChild);

    },


    remove(nodedata) {

      const parent = node.parent;

      const children = parent.data.children || parent.data;

      const index = children.findIndex((d=> d.id === data.id);

      children.splice(index1);

    },


    getCheckedKeys() {

      var check_array = this.$refs.rootTree.getCheckedKeys(false);

    },

  },

};

</script>


<style>

.custom-tree-node {

  flex1;

  displayflex;

  align-itemscenter;

  justify-contentspace-between;

  font-size14px;

  padding-right8px;

}

</style>

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多