treeTable 2.X reload之后checkStatus()获取不到数据

提问 未结 2 55
Xponglee
Xponglee 3天前
悬赏:20飞吻
版本:扩展组件 2.X 浏览器:Chrome 76.0.3809.87

data是空的,text的值貌似是reload之前没有获取到后台数据的默认值

理所当然的getData就获取不到数据...

后台代码

渲染
 var insTb = treeTable.render({
elem: '#'+tableId,
reqData: function(data, callback) {
// 在这里写ajax请求,通过callback方法回调数据
$.get('{:url("getRulesByGroupId")}', function (res) {
for(var i = 0 ; i < res.length ; i++){
res[i].open = true;
}
callback(res); // 参数是数组类型
});
},
tree: {
iconIndex: 2,
idName: 'id', // 自定义id字段的名称
pidName: 'pid', // 自定义标识是否还有子节点的字段名称
isPidData: true // 是否是pid形式数据
},
cols: [
{type: 'checkbox'},
{width:60,title: '操作', align:'center'/*toolbar: '#barDemo'*/
,templet: function(d){
if (1 === d.access){
return '<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="ungrant">取消</a>';
}else{
return '<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="grant">授权</a>';
}
}
}
,{field:'title', width:300, title: '节点名称'}
,{field:'access',width:'', title: '授权状态',templet:'#switchTpl',unresize: true}
,{field:'id', title: '编号'}
,{field:'name',width:200, title: '规则'}
,{field:'condition', title: '条件'}
]

});
按钮响应事件是batch_auth
var active = {
add: function(){
var url = '{:url("add")}';
$.get(url,{},function (html) {
console.log(html)
layer.open({
type: 1
,title: '添加'
,content: html
,maxmin: true
,area: ['550px', '550px']
,btn: ['确定', '取消']
,yes: function(index, layero){
//点击确认触发 iframe 内容中的按钮提交
var submit = layero.find("#layuiadmin-app-form-submit");
submit.click();
}
});
});
},
batch_auth:function(){
console.log(insTb.checkStatus());//这里打出的log是 []
}
};
几个涉及到reload的部分

table.on("row(LAY-user-back-role)",function (obj) {
var objdata = obj.data;
treeGrid = objdata.id;
insTb.reload({
reqData: function(data, callback) {
// 在这里写ajax请求,通过callback方法回调数据
$.get('{:url("getRulesByGroupId")}',{
group_id:objdata.id
}, function (res) {
for(var i = 0 ; i < res.length ; i++){
res[i].open = true;
}
callback(res); // 参数是数组类型
});
},
});
});

treeTable.on("tool(treeTable)",function(obj) {
var objdata = obj.data;
//调用递归查询所有子节点的id
var rules = getRuleIds(objdata);
console.log('rules:'+rules);
var url ='';
switch (obj.event) {
case 'grant':
url = '{:url("grant")}';
break;
case 'ungrant':
url = '{:url("ungrant")}';
break;
}
$.ajax({
url:url
,type:'post'
,data:{
id:treeGrid
,rules:rules
}
,success:function(res){
insTb.reload({
reqData: function(data, callback) {
// 在这里写ajax请求,通过callback方法回调数据
$.get('{:url("getRulesByGroupId")}',{
group_id:treeGrid
}, function (res) {
for(var i = 0 ; i < res.length ; i++){
res[i].open = true;
}
callback(res); // 参数是数组类型
});
},
});
}
})
});
回帖
  • 应该也不是reload的问题,但是想不到其他地方会出问题了
    0 回复
  • 会是insTb.reload后insTb的部分数据没有重载吗
    0 回复