一些坑 1 initTable() 中 最开始一定要使用 var that = this;,用that访问组件中的变量,可以在这里断点看,this指针已经指向table;(angular 2.0) 2 responseHandler这里用来对返回参数做一些处理,注意返回体,必须是total +包裹体的这种方式,如果不是,自己构造这样一个结构,填充返回 3 如删除或者对某些字段更新后,可以通过$('#table1').bootstrapTable('refresh');进行刷新 或者通过 $('#table1').bootstrapTable('load', Alarm);方法进行加载4 可变参数的实现: let tmp = {
microService:undefined,---如果未定义就不会出现在url中
};
initTable的实现
initTable() {
var that = this;
$('#table1').bootstrapTable($.extend(this.gridOptions, {
ajaxOptions: {
beforeSend: function (xhr) {
let accessToken = window.localStorage.accessToken;
let username = window.localStorage.username;
xhr.setRequestHeader('Access-Token', accessToken);
xhr.setRequestHeader('operateuser', username);
}
},
url: AppCfg.fmServiceUrl + 'alarms',
toolbar: '#toolbar1',
dataField: 'alarms',
responseHandler: function (res) {
let AlarmDetails:Array<any> = [];
let Alarm = {
'total': 0,
'alarms': AlarmDetails
};
Alarm.total = res.total;
that.exportData.allPage = Math.ceil(res.total / this.pageSize);
let currentAlarmLinks:Array<any> = [];
currentAlarmLinks = _.chain(res.alarms).pluck('links').flatten().where({
'rel': 'self'
}).pluck('uri').value();
that.alarmService.getCurrentAlarmsDetail(currentAlarmLinks).then((res:any) => {
Alarm.alarms = res;
$('#table1').bootstrapTable('load', Alarm);
});
if (res.total === 0) {
$('.fixed-table-footerButtons').css('display','none');
} else {
$('.fixed-table-footerButtons').css('display','block');
}
$('.fixed-table-body td').css('color','red');
return Alarm;
}
}));
$('.bootstrap-table .search input').attr('placeholder', '输入关键字筛选')
.parent().append(`<span></span>`);
$('#table1').parents('.fixed-table-container').append(`<div class="fixed-table-footerButtons">
<input type="checkbox" class="checkAll">
<button id="delete-curalarm-btn" data-target="#DelConfirm" data-toggle="modal" disabled>??</button>
<button id="confirm-curalarm-btn" disabled>确认</button>
<button id="unconfirm-curalarm-btn" disabled>取消确认</button>
</div>`);
$('#table1').on('check.bs.table uncheck.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
$('#delete-curalarm-btn').prop('disabled', !$('#table1').bootstrapTable('getSelections').length);
});
$('#table1').on('check.bs.table uncheck.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
$('#confirm-curalarm-btn').prop('disabled', !$('#table1').bootstrapTable('getSelections').length);
});
$('#table1').on('check.bs.table uncheck.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
$('#unconfirm-curalarm-btn').prop('disabled', !$('#table1').bootstrapTable('getSelections').length);
});
$('#table1').on('check-all.bs.table uncheck-all.bs.table', function () {
$('.fixed-table-footerButtons .checkAll').prop('checked', $('#table1').bootstrapTable('getSelections').length > 0);
});
$('.bootstrap-table .fixed-table-footerButtons .checkAll').change(function () {
if ($(this).prop('checked')) {
$('#table1').bootstrapTable('checkAll');
} else {
$('#table1').bootstrapTable('uncheckAll');
}
});
$('#confirm-curalarm-btn').click(function () {
that.alarmConfirm();
});
$('#unconfirm-curalarm-btn').click(function () {
that.alarmUnConfirm();
});
$('#alarm-export-btn').click(function () {
that.prepareExportInfo();
});
}
|