😏 fix treetable reload

master
就眠仪式 2021-08-06 01:29:28 +08:00
parent cbb42999db
commit 8b4345171b
4 changed files with 48 additions and 51 deletions

View File

@ -152,6 +152,13 @@
font-size: 12px;
}
.pear-btn-cell {
height: 100%;
line-height: 100%;
padding: 0 8px;
font-size: 12px;
}
.pear-btn-xs {
height: 28px;
line-height: 28px;

View File

@ -2,41 +2,36 @@ layui.define(['layer', 'table'], function (exports) {
var $ = layui.jquery;
var layer = layui.layer;
var table = layui.table;
var instances = [];
var instances = [];
var treetable = {
// 渲染树形表格
render: function (param) {
param.method = param.method?param.method:"GET";
// 检查参数
param.method = param.method?param.method:"GET";
if (!treetable.checkParam(param)) {
return;
}
// 获取数据
if (param.data) {
treetable.init(param, param.data);
} else {
if(param.method === 'post' || param.method === 'POST') {
$.post(param.url, param.where, function(res){
if(param.parseData){
res = param.parseData(res);
param.data = res.data;
}
treetable.init(param, res.data);
});
} else {
$.get(param.url, param.where, function(res){
if(param.parseData){
res = param.parseData(res);
param.data = res.data;
}
treetable.init(param, res.data);
});
}
if(param.method === 'post' || param.method === 'POST') {
$.post(param.url, param.where, function(res){
if(param.parseData){
res = param.parseData(res);
param.data = res.data;
}
treetable.init(param, res.data);
});
} else {
$.get(param.url, param.where, function(res){
if(param.parseData){
res = param.parseData(res);
param.data = res.data;
}
treetable.init(param, res.data);
});
}
}
},
// 渲染表格
@ -44,7 +39,6 @@ layui.define(['layer', 'table'], function (exports) {
var mData = [];
var doneCallback = param.done;
var tNodes = data;
// 补上id和pid字段
for (var i = 0; i < tNodes.length; i++) {
var tt = tNodes[i];
if (!tt.id) {
@ -63,7 +57,6 @@ layui.define(['layer', 'table'], function (exports) {
}
}
// 对数据进行排序
var sort = function (s_pid, data) {
for (var i = 0; i < data.length; i++) {
if (data[i].pid == s_pid) {
@ -78,7 +71,7 @@ layui.define(['layer', 'table'], function (exports) {
};
sort(param.treeSpid, tNodes);
// 重写参数
param.prevUrl = param.url;
param.url = undefined;
param.data = mData;
param.page = {
@ -109,10 +102,6 @@ layui.define(['layer', 'table'], function (exports) {
$(param.elem).next().addClass('treeTable');
$('.treeTable .layui-table-page').css('display', 'none');
$(param.elem).next().attr('treeLinkage', param.treeLinkage);
// 绑定事件换成对body绑定
/*$('.treeTable .treeTable-icon').click(function () {
treetable.toggleRows($(this), param.treeLinkage);
});*/
if (param.treeDefaultClose) {
treetable.foldAll(param.elem);
}
@ -123,22 +112,21 @@ layui.define(['layer', 'table'], function (exports) {
// 渲染表格
table.render(param);
var result = instances.some(item=>item.key===param.elem);
if(!result){
instances.push({key:param.elem,value:param});
}
var result = instances.some(item=>item.key===param.elem);
if(!result){
instances.push({key:param.elem,value:param});
}
},
reload: function(elem) {
instances.forEach(function(item){
if(item.key === elem) {
$(elem).next().remove();
item.value.data = undefined;
item.value.url = item.value.prevUrl;
treetable.render(item.value);
}
})
},
// 表格重载
reload: function(elem) {
instances.forEach(function(item){
if(item.key === elem) {
// 清空
$(elem).next().remove();
treetable.render(item.value);
}
})
},
// 计算缩进的数量
getEmptyNum: function (pid, data) {
var num = 0;
if (!pid) {
@ -223,7 +211,7 @@ layui.define(['layer', 'table'], function (exports) {
});
}
};
// 给图标列绑定事件
$('body').on('click', '.treeTable .treeTable-icon', function () {
var treeLinkage = $(this).parents('.treeTable').attr('treeLinkage');

View File

@ -102,12 +102,14 @@
<button class="pear-btn pear-btn-primary"> Button-Default</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-primary pear-btn-sm"> Button-Sm</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-primary pear-btn-xs"> Button-Xs</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-primary pear-btn-xss"> Button-Xss</button>&nbsp;&nbsp;
<br>
<br>
<button class="pear-btn pear-btn-warming pear-btn-lg"> Button-Lg</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-warming"> Button-Default</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-warming pear-btn-sm"> Button-Sm</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-warming pear-btn-xs"> Button-Xs</button>&nbsp;&nbsp;
<button class="pear-btn pear-btn-warming pear-btn-xss"> Button-Xss</button>&nbsp;&nbsp;
</div>
</div>
</div>

View File

@ -60,8 +60,8 @@
</script>
<script type="text/html" id="user-bar">
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
<button class="pear-btn pear-btn-primary pear-btn-cell" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
<button class="pear-btn pear-btn-danger pear-btn-cell" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
</script>
<script type="text/html" id="user-enable">