😏 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; font-size: 12px;
} }
.pear-btn-cell {
height: 100%;
line-height: 100%;
padding: 0 8px;
font-size: 12px;
}
.pear-btn-xs { .pear-btn-xs {
height: 28px; height: 28px;
line-height: 28px; line-height: 28px;

View File

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

View File

@ -60,8 +60,8 @@
</script> </script>
<script type="text/html" id="user-bar"> <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-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-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></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>
<script type="text/html" id="user-enable"> <script type="text/html" id="user-enable">