您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在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節點了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。