Bootstrap Table动态修改列标题
需求
目前有一个需求,就是国际公司的汇率计算,有部分的业务,例如是资产部门内转移,部门间转移,国际公司的汇率会使用外币来进行统计,于是就是想通过汇率转换来处理,但是问题是我们不想暴露出来给非国际公司用户使用,前端的处理,将更加灵活的处理这个展示的问题。
处理
处理的话,就是首先,后台交换,单据新建的情况的下是直接交换,老的数据是通过sql刷新一遍数据库,这些后台的操作就不在这边描述了,主要是为了前端处理,
大概是这个意思
源代码
{ field: 'cost',title: '资产原值', align: 'left', width:100 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'deprnReserve',title: '累计折旧', align: 'left', width:100 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'accumuImpairment',title: '减值准备', align: 'left', width:100 ,valign: 'middle'},
{ field: 'netBookValue',title: '资产净值', align: 'left', width:100 ,formatter:paramsMatter,valign: 'middle'},
改完了之后
{ field: 'costForeign',title: '资产原值', align: 'left', width:120 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'deprnReserveForeign',title: '累计折旧', align: 'left', width:120 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'accumuImpairmentForeign',title: '减值准备', align: 'left', width:120 ,valign: 'middle'},
{ field: 'netBookValueForeign',title: '资产净值', align: 'left', width:120 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'cost',title: '资产原值', align: 'left', width:150 ,formatter:paramsMatter,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.cost;
}},
{ field: 'deprnReserve',title: '累计折旧', align: 'left', width:150 ,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.deprnReserve;
}},
{ field: 'accumuImpairment',title: '减值准备', align: 'left', width:150 ,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.accumuImpairment;
}},
{ field: 'netBookValue',title: '资产净值', align: 'left', width:150 ,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.netBookValue;
}},
当然看到了这个’-‘情况是因为,如果没有汇率的情况下要求展示’-',
onLoadSuccess: function(data){
if('9000012' == bgId){
// 动态修改列标题
var $table = $('#interTable');
// 获取表头行中的列元素
var $headerCells = $table.closest('.bootstrap-table')
.find('th[data-field]');
$headerCells.filter('[data-field="cost"]').text('资产原值(人民币)');
$headerCells.filter('[data-field="deprnReserve"]').text('累计折旧(人民币)');
$headerCells.filter('[data-field="accumuImpairment"]').text('减值准备(人民币)');
$headerCells.filter('[data-field="netBookValue"]').text('资产净值(人民币)');
}else{
$('#interTable').bootstrapTable('hideColumn', 'costForeign');//隐藏资产原值(人民币)
$('#interTable').bootstrapTable('hideColumn', 'deprnReserveForeign');
$('#interTable').bootstrapTable('hideColumn', 'accumuImpairmentForeign');
$('#interTable').bootstrapTable('hideColumn', 'netBookValueForeign');
}
}
这个就是当某个组织的时候,展示以及隐藏某些内容
下面是这一块的完整代码
/**
* 画面初始化
*/
function initTable(){
$('#interTable').bootstrapTable({
method: 'post',
url:top.server +'/XXX/XXXX',//请求路径
async : false,
pagination: true,//分页
cache: false,
pageSize: menuLength[0], //每页的记录行数(*)
pageList: menuLength, //可供选择的每页的行数(*)
singleSelect: false,
sidePagination: 'server', //分页方式服务端请求
fixedColumns: true,
fixedNumber: 1,
queryParams: function (params) {
return {
size: params.limit,
current:params.offset/params.limit+1,
transferHeaderId: $('#transferHeaderId').val(),//单据头ID
amsRemark:amsRemarkStr,
};
},
clickToSelect: true,
columns:
[
{ field: 'checkVal',checkbox: true, width:60},
{
field:'LINE_NUM',title:'序号',align:'center',valign:'middle', width:70,
formatter: function (value, row, index) {
var pageSize = $('#interTable').bootstrapTable('getOptions').pageSize; //通过table的#id 得到每页多少条
var pageNumber = $('#interTable').bootstrapTable('getOptions').pageNumber; //通过table的#id 得到当前第几页
return pageSize * (pageNumber - 1) + index + 1; // 返回每条的序号: 每页条数 *(当前页 - 1 )+ 序号
}
},
{ field: 'transferLineId',title: 'id', align: 'left', width:150 ,valign: 'middle',visible :false},
{ field: 'assetNumber',title: '资产编号', align: 'left', width:100 ,valign: 'middle'},
{ field: 'tagNumber',title: '资产标签号', align: 'left', width:150 ,valign: 'middle'},
{ field: 'assetDescription',title: '资产名称', align: 'left', width:250 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'targetEmployeeName',title: '目标责任人', align: 'left', width:160 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'targetLocationSeg',title: '目标地点代码', align: 'left', width:200 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'targetLocationDesc',title: '目标地点描述', align: 'left', width:280 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'targetCostCenter',title: '目标成本中心描述', align: 'left', width:220 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'targetDeprnExpenseAccount',title: '目标账户', align: 'left', width:320 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'employeeName',title: '原责任人', align: 'left', width:150 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'locationSeg',title: '原资产地点', align: 'left', width:250 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'locationDesc',title: '原资产地点描述', align: 'left', width:250 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'deprnExpenseAccount',title: '费用账户', align: 'left', width:320 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'attributeCategoryCode',title: '资产类别编码', align: 'left', width:150 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'cateDesc',title: '资产类别描述', align: 'left', width:300 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'assetKey',title: '资产关键字编码', align: 'left', width:150 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'assetKeyDesc',title: '资产关键字描述', align: 'left', width:200 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'modelNumber',title: '规格型号', align: 'left', width:250 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'transferUnits',title: '数量', align: 'left', width:100 ,valign: 'middle'},
{ field: 'datePlacedInService',title: '启用日期', align: 'left', width:100 ,valign: 'middle'},
{ field: 'costForeign',title: '资产原值', align: 'left', width:120 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'deprnReserveForeign',title: '累计折旧', align: 'left', width:120 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'accumuImpairmentForeign',title: '减值准备', align: 'left', width:120 ,valign: 'middle'},
{ field: 'netBookValueForeign',title: '资产净值', align: 'left', width:120 ,formatter:paramsMatter,valign: 'middle'},
{ field: 'cost',title: '资产原值', align: 'left', width:150 ,formatter:paramsMatter,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.cost;
}},
{ field: 'deprnReserve',title: '累计折旧', align: 'left', width:150 ,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.deprnReserve;
}},
{ field: 'accumuImpairment',title: '减值准备', align: 'left', width:150 ,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.accumuImpairment;
}},
{ field: 'netBookValue',title: '资产净值', align: 'left', width:150 ,valign: 'middle',
formatter: function(value, row, index){
if("0" == row.exchangeRate) return '-';
return row.netBookValue;
}},
{ field: 'zccxl',title: '资产成新率', align: 'left', width:100 ,valign: 'middle'
,formatter: function(value, row, index){
if(null == row.cost ||"" == row.cost||"0.00" == row.cost) return '0.00';
return (row.netBookValue/row.cost).toFixed(2);
}
},
{ field: 'depreciationTag',title: '折旧标识', align: 'left', width:100 ,valign: 'middle'},
{ field: 'remark',title: '备注', align: 'left', width:100 ,formatter:paramsMatter,valign: 'middle'},
{ field: "",title:"操作", width: 80,align: 'center',valign: 'middle',
formatter : function(value, row){
var innerHtml = '';
innerHtml += '<div class="ope"><a type="button" onclick="edit(\''+row.transferLineId+'\')">编辑</a></div>';
return innerHtml;
}
}
],
onLoadSuccess: function(data){
if('9000012' == bgId){
// 动态修改列标题
var $table = $('#interTable');
// 获取表头行中的列元素
var $headerCells = $table.closest('.bootstrap-table')
.find('th[data-field]');
$headerCells.filter('[data-field="cost"]').html('<div class="th-inner ">资产原值(人民币)</div><div class="fht-cell"></div>');
$headerCells.filter('[data-field="deprnReserve"]').html('<div class="th-inner ">累计折旧(人民币)</div><div class="fht-cell"></div>');
$headerCells.filter('[data-field="accumuImpairment"]').html('<div class="th-inner ">减值准备(人民币)</div><div class="fht-cell"></div>');
$headerCells.filter('[data-field="netBookValue"]').html('<div class="th-inner ">资产净值(人民币)</div><div class="fht-cell"></div>');
}else{
$('#interTable').bootstrapTable('hideColumn', 'costForeign');//隐藏资产原值(人民币)
$('#interTable').bootstrapTable('hideColumn', 'deprnReserveForeign');
$('#interTable').bootstrapTable('hideColumn', 'accumuImpairmentForeign');
$('#interTable').bootstrapTable('hideColumn', 'netBookValueForeign');
}
}
});
}