ZTree樹和layui框架整合的demo 獲取動態資料實現增刪改查(只展現前臺部分,後臺邏輯自己寫)
一、我今天做了一個Ztree樹增刪改查選單的功能,在這裡記錄一下,下次使用時拿過來直接用。
二、首先ztree有特別好的中文 API,目前現在更新到3.5.40版本,大家可以直接去官網下載它的類庫(js,css,demo,api),這裡我就不提供了。
ztree官網:http://www.treejs.cn/v3/api.php
三、開始操作
1.首先要先引入相關的jquery,ztree中的css,js。(要是用到其他的js,比如這裡我用到了layui直接引入即可。)
這幾個必須引(當然layui除外。) 還有其他的用到的話 自行引入處理。
<link rel="stylesheet" th:href="@{/ztree_v3/css/demo.css}">
<link rel="stylesheet" th:href="@{/ztree_v3/css/zTreeStyle/zTreeStyle.css}">
<link rel="stylesheet" th:href="@{/layui/css/layui.css}">
<link rel="stylesheet" th:href="@{/layui/css/style.css}">
<script th:src="@{/ztree_v3/js/jquery-1.4.4.min.js}"></script>
<script th:src="@{/ztree_v3/js/jquery.ztree.core.js}"></script>
<script th:src="@{/ztree_v3/js/jquery.ztree.core.js}"></script>
<script th:src="@{/ztree_v3/js/jquery.ztree.exedit.js}"></script>
<script th:src="@{/layui/layui.js}"></script>
2.展示樹樣式
CSS程式碼塊
<style type="text/css">
ul.ztree{
width : 320px;
height: 420px;
}
</style>
HTML 程式碼塊
<div class="layui-row">
<div id="layer-zTree" >
<div style="padding: 10px; height:90%;">
<ul id="treeDemo" class="ztree"></ul>
</div>
</div>
</div>
JS程式碼塊
<script type="text/javascript">
$(function(){
onLoadZTree();
});
/* 樹狀圖 */
var setting = {
//檢視顯示樣式
view : {
dblClickExpand: false, //雙擊節點時,是否自動展開父節點的標識 預設true
showLine: false, //設定 zTree 是否顯示節點之間的連線。預設true
selectedMulti: false, //設定是否允許同時選中多個節點。預設true
addHoverDom: addHoverDom, //顯示按鈕
removeHoverDom: removeHoverDom //隱藏按鈕
},
//編輯
edit: {
enable: true, //設定 zTree 是否處於編輯狀態 預設false
editNameSelectAll: true, //點選編輯的時候,裡面的文字全部選中
removeTitle: '刪除節點', //刪除按鈕的名稱
renameTitle: '重新命名' //編輯名稱按鈕
},
//採用的資料格式
data: {
simpleData: {
enable: true, //是否採用簡單資料模式 (Array)
idKey: "id", //指定子節點的元素名稱
pIdKey: "pid", //指定父節點的元素名稱
rootPId: 0 //用於修正根節點父節點資料
}
},
//回撥函式
callback: {
beforeRemove: beforeRemove, //點選刪除時觸發,用來提示使用者是否確定刪除
beforeEditName: beforeEditName, //點選編輯時觸發,用來判斷該節點是否能編輯,是否進入編輯狀態
beforeRename: beforeRename, //編輯結束時觸發,用來驗證輸入的資料是否符合要求
onRemove : onRemove, //刪除節點後觸發,使用者後臺操作
onRename : onRename, //編輯後觸發,用於操作後臺
}
};
/* 載入資料 */
function onLoadZTree(){
$.ajax({
async: false, //是否非同步
cache: false, //是否使用快取
type: 'POST', //請求方式
url: '寫自己的', //請求地址
success: function(data) {
//console.log(data)
treeNodes = data.data; //把後臺封裝好的簡單的JSON格式賦給treeNodes
}
});
var t = $("#treeDemo");
t = $.fn.zTree.init(t, setting, treeNodes); //zTree 初始化方法
t.expandAll(false); //展開 / 摺疊 全部節點
}
/* 新增 */
function addHoverDom(treeId, treeNode) {
var sObj = $("#" + treeNode.tId + "_span");
if(treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;
var addStr = "<span class='button add' id='addBtn_" + treeNode.tId +
"' title='新增' 'this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_" + treeNode.tId);
layui.use(['layer', 'form'], function(){
var layer = layui.layer
,form = layui.form;
if(btn) btn.bind("click", function() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
layer.prompt({
formType: 0,
value: '',
title: '請輸入節點名稱'
}, function (value, index){
if(value.trim().length === 0) {//非空驗證
return false;
}
if($('#guonp').val()===""){
layer.tips("請正確填寫分組資訊",$('#guonp'));
return;
}
if($('#full_name').val()===""){
layer.tips("請填寫部門全稱",$('#full_name'));
return;
}
layer.close(index)
var pid = treeNode.id;
var name = value;
var grup = $('#guopp input[name="zuzu"]:checked').val()
var deptFullName = $('#full_name').val();
$.ajax({
type: "POST",
async: false,
url: "寫自己的",
data: {
"pid": pid,
"name": name,
"grup": grup,
"deptFullName": deptFullName
},
success: function(data) {
if(data.code == 10000) {
zTree.addNodes(treeNode, {
pId: treeNode.id,
name: value
});
onLoadZTree() //重新載入,不然再次新增會報錯
layer.msg('新增成功', {
icon: 1,
time: 1000
});
} else {
onLoadZTree()
layer.msg('' + data.msg + '', {
icon: 5,
time: 1000
});
}
}
});
});
$(".layui-layer-content").append("<br/><div id=\"guopp\">集團:<input type=\"radio\" name=\"zuzu\" value=\"0\" title=\"集團\" /> 股份:<input type=\"radio\" name=\"zuzu\" value=\"1\" title=\"股份\" checked /></div>")
$(".layui-layer-content").append("<br/><input type=\"text\" id= \"full_name\" class=\"layui-input\" placeholder=\"輸入部門全稱\" />")
});
}); /* layui */
}
//移除滑鼠隱藏按鈕
function removeHoverDom(treeId, treeNode) {
$("#addBtn_" + treeNode.tId).unbind().remove();
}
/*
* 編輯
*/
function beforeEditName(treeId, treeNode) {
return true;
}
/**
* 重新命名
*/
function beforeRename(treeId, treeNode, newName, isCancel) {
if(newName.length < 3){
alert("名稱不能少於3個字元!");
return false;
}
return true;
}
/* 編輯後觸發,後臺操作 */
function onRename(event, treeId, treeNode, isCancel){
var typeId = treeNode.id;
var typeName = treeNode.name;
if(confirm("您確認修改類別名稱?")){
$.post("寫自己的",
{
"id": typeId,
"name": typeName
},
function(response){
if(response != null){
if(response.code == 10000){
console.log(response);
} else if(response.code == 10001){
alert("修改名稱失敗!");
}
}
},
'json');
}
}
/*
* 刪除
*/
function beforeRemove(treeId, treeNode) {
if(confirm("確認要刪除?")){
if(treeNode.isParent){
alert("該目錄下面還有子目錄,請從最底層目錄開始刪除!")
return false;
}
return true;
}
return false;
}
/* 刪除後觸發,後臺操作 */
function onRemove(event, treeId, treeNode) {
var typeId = treeNode.id;
$.post("寫自己的",{"id":typeId},function (reposonse){
console.log(reposonse);
if(reposonse.code == 10000){
onLoadZTree(); //重新載入
} else{
alert("刪除失敗");
}
})
}
</script>
============結束=
相關文章
- 運用layui實現增刪改查UI
- FMDB | 實現資料的增刪改查
- layui的增刪改查UI
- ThinkPHP3.2 + layui2.4.5 後臺管理框架,一鍵自動增刪改查,極速,簡單!!PHPUI框架
- mybatis實現MySQL資料庫的增刪改查MyBatisMySql資料庫
- 【ztree】zTree節點增刪改
- 從零開始實現放置遊戲(四)後臺數值配置的增刪查改遊戲
- OneThink後臺增刪改查外掛
- Node+Vue實現對資料的增刪改查Vue
- 用jsp實現資料庫的增刪改查JS資料庫
- 連線資料庫並實現增、刪、改、查資料庫
- js實現表格的增刪改查JS
- Layui(4) 增刪改查 完整案例UI
- Jfinal+layui增刪改查UI
- Django基於類的增刪改查,簡單邏輯都不用寫Django
- 使用Spring整合Hibernate,並實現對資料表的增、刪、改、查的功能Spring
- (原創)寫篇手動編寫的原生資料庫的增刪查改的demo資料庫
- 利用Java的API實現HBase資料庫的增刪查改JavaAPI資料庫
- 寫一個簡單的Linkedlist,實現增刪改查
- Go實現對MySQL的增刪改查GoMySql
- JSP實現servlet對資料庫的增刪查改操作JSServlet資料庫
- Tree樹狀圖的動態增刪查改(下)修改與刪除
- 【ztree系列】節點的增刪改
- layui+ssm簡單增刪改查UISSM
- abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改檢視(八)UI
- 前臺怎樣獲取後臺ajax資料簡單介紹
- 後臺框架模板,前端使用 layui 框架,實現了完善的 RBAC 許可權控制框架前端UI
- Java實現簡單的增刪改查操作Java
- jQuery實現購物車的增刪改查jQuery
- Tree樹狀圖的動態增刪查改(中)新增節點
- [譯] 通過後臺資料預獲取技術實現效能提升
- 單連結串列實現增刪改查
- 封裝模組實現商品增刪改查封裝
- 看Zepto如何實現增刪改查DOM
- 使用node和express+mongodb實現資料增刪改功能ExpressMongoDB
- 如何在 30 分鐘完成表格增刪改查的前後端框架搭建後端框架
- .NET使用儲存過程實現對資料庫的增刪改查儲存過程資料庫
- 修改thinkphp的主頁面,連線資料庫,實現增刪改查PHP資料庫