中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在ElementUI中操作el-tree節點

發布時間:2021-04-16 17:37:19 來源:億速云 閱讀:370 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關怎么在ElementUI中操作el-tree節點,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

html

<div id="app">
  <el-row>
    <el-button @click="checkedKeys">得到節點id</el-button>
    <el-button @click="addNode">添加節點</el-button>
    <el-button @click="checkedKeys">修改節點</el-button>
    <el-button @click="deleteNode">刪除節點</el-button>
    <br/>
    <br/>

    <el-tree
         ref="tree"
         :data="treeList"
         :props="defaultProps"
         @node-click="handleNodeClick"
         show-checkbox=true
         node-key="id"
         :check-strictly="true"
        >
    </el-tree>
    <el-input>輸入框</el-input>
    <el-dialog title="添加"
         :visible.sync="dialogVisible"
        >
      <el-form ref="form">
        <el-form-item label="節點父類型">
        <el-select placeholder="請選擇要添加節點的父節點" v-model="treeNode.parentId" @change="selectChange" >
          <el-option label="根節點" :value="0"></el-option>
          <el-option v-for="item in treeListData" :label="item.categoryName" :value="item.nodeId"></el-option>
        </el-select>
      </el-form-item>
          <el-form-item label="節點名稱">
            <el-input placeholder="請輸入節點名稱" v-model="treeNode.categoryName" ></el-input>
          </el-form-item>
    </el-form>

      <span>
        <el-button @click="cancleSaveNode">
          取消
        </el-button>
        <el-button @click="saveNode">
          確定
        </el-button>
      </span>

    </el-dialog>

  </el-row>

</div>

js代碼

<script type="text/javascript">


  var _treeNode={
    nodeId:0,
    categoryName:"",
    parentId:0
  }

  var app = new Vue({
    el:'#app',
    data:{
      treeNode:_treeNode,
      treeList:[],
      treeListData:[], // 無層級結構節點數據
      defaultProps:{
        children: 'childList',
        label: 'name'
        /* label: 'categoryName'*/
      },
      dialogVisible:false, // 對話框,默認不打開
      api:{
        treeDataList:"/category/treeList.do",  // 得到節點數據,無層級結構 GET
        saveTreeNode:"/category/saveTreeNode.do",  // 得到節點數據,無層級結構 GET
        deleteTreeNode:"/category/deleTreeNode.do",
      }
    },
    methods: {
      cateListFunction: function () {
        $.ajax({
          type: "get",
          url: "/category/cateList.do",
          success: function (result) {
            app.cateList = result;
            app.treeList=result;
          }, error: function (result) {
          }
        });
      },
      // 點擊節點名稱觸發的事件
      handleNodeClick: function (data) {
        alert(data.id);
        console.log(data);
      },
      // 獲得選中的節點的key
      checkedKeys:function (data) {
        alert(JSON.stringify(this.$refs.tree.getCheckedKeys()));
      },
      // 添加節點查詢所有節點的方法
      addNode:function () {
        // 查詢所有節點數據無層級結構
        app.getTreeNode();
        app.dialogVisible=true;
      },
      // 保存節點
      saveNode:function () {
       //alert(app.treeNode.categoryName+app.treeNode.parentId);
       axios.post(app.api.saveTreeNode,app.treeNode).then(function (resule) {
         app.dialogVisible=false;
         app.treeNode.parentId=0;
         app.treeNode.categoryName="";
         app.cateListFunction();
       });

      },
      cancleSaveNode:function () {
        app.dialogVisible=false;
        app.treeNode.parentId=0;
        app.treeNode.categoryName="";

      },
      // 下拉框選中事件
      selectChange:function (val) {
        // select控件的option綁定的值為節點的id,我們將值綁定在要添加的元素的父id
        //alert("得到節點類型"+val);
      },
      // 批量刪除節點(若有子節點則不予刪除)
      deleteNode:function () {
        app.getTreeNode();
        var str=[];
        str =this.$refs.tree.getCheckedKeys();
         if(str.length<=0){ // 因為vue返回的是選中的key的數組
                    // ,如果沒有選擇任何元素返回 "[]",這是兩個元素,所以我們判斷長度為2時,為空
           app.$message.error("請至少選擇一個節點");
           return ;
         }
        for(var i in str){
          for(var j in app.treeListData){
            if(app.treeListData[j].parentId == str[i]){
              app.$message.error("父節點不可被刪除");
              return;
            }
          }
        }
        axios.post(this.api.deleteTreeNode,str).then(function (result) {
          app.$message({message: '刪除成功', type: 'success'});
          app.getTreeNode();
          app.cateListFunction();
        });

      },getTreeNode:function () {
        // 查詢所有節點數據無層級結構
        axios.get(this.api.treeDataList)
          .then(
            function(result){
              // vue給我們封裝的得,我們所得到的數據在返回的對象的data屬性里
              app.treeListData=result.data;
            });
      }

    },
      created: function () {
        this.getTreeNode();
        this.cateListFunction();
      }
  });
</script>

controller

/**
   * 保存節點
   */
  @RequestMapping("/saveTreeNode.do")
  @ResponseBody
  public void saveTreeNode(@RequestBody TbCategory category){
    System.out.println(category.getCategoryName() +"------" +category.getParentId());
    categoryService.insert(category);
  }


  @RequestMapping("/deleTreeNode.do")
  @ResponseBody
  public void deleTreeNode(@RequestBody String str){

    System.out.println(str);
    String [] strIds = str.substring(1,str.length()-1).split(",");
    for(int i =0;i<strIds.length;i++){
      categoryService.delete(Long.valueOf(strIds[i])); // 1,2
    }
  }

上述就是小編為大家分享的怎么在ElementUI中操作el-tree節點了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安阳市| 灵川县| 建阳市| 浠水县| 阿荣旗| 方城县| 萨嘎县| 大理市| 宜兰市| 彭泽县| 梁山县| 东阿县| 镇远县| 夏津县| 罗城| 平乡县| 观塘区| 连南| 凌云县| 安义县| 兰溪市| 宁陵县| 阳新县| 柳林县| 井研县| 兖州市| 高淳县| 安龙县| 邯郸县| 台州市| 沅陵县| 青冈县| 东源县| 南京市| 乐昌市| 白银市| 太康县| 沾化县| 方城县| 巩义市| 乳山市|