前后端交互-表格vue+bootstrap
<%--表格--%>
<div class="tables">
<table id="mytable"></table>
</div>
<%--js代码--%>
<script>
new Vue({
el: "#app",
data: function () {
return {}
},
methods: {
createTable: function () {
var that = this;
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
//获取表格信息
$('#mytable').bootstrapTable({
url: "", //请求后台的URL(*)
method: 'GET', //请求方式(*)
contentType: "application/x-www-form-urlencoded",//post请求的话就加上这个句话
toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: true, //是否启用排序
sortOrder: "asc", //排序方式
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页,并记录
pageSize: 20, //每页的记录行数(*)
pageList: [10, 20, 30, 40], //可供选择的每页的行数(*)
paginationPreText: '‹',//指定分页条中上一页按钮的图标或文字,这里是<
paginationNextText: '›',//指定分页条中下一页按钮的图标或文字,这里是>
search: false, //是否显示表格搜索
strictSearch: true,
buttonsAlign: "left", //按钮显示的位置
showRefresh: true, //是否显示刷新按钮
showToggle: true, //是否显示详细视图和列表视图的切换按钮
showColumns: false, //是否显示所有的列(选择显示的列)
//minimumCountColumns: 2, //最少允许的列数
cardView: false, //是否显示详细视图
detailView: false, //是否显示父子表
clickToSelect: true, //是否启用点击选中行
//height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
uniqueId: "id", //每一行的唯一标识,一般为主键列
"queryParamsType": 'limit',
//得到查询的参数
queryParams: function (params) {
//这里的键的名字和控制器的变量名必须一致,这边改动,控制器也需要改成一样的
var temp = {
limit: params.limit, // 每页显示数量
page: (params.offset / params.limit) + 1, //页码
};
return temp;
},
columns: [
{
field: 'title',
title: '标题',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
var result = "";
result = "<div class='font-xin font-lin' data-lin='" + row.title + "'><span>" + row.title + "</span></div>";
return result;
}
},
{
field: 'state',
title: '投票或报名',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
var result = "";
result += "<span style='color:green'>";
if (row.voteState == null) {
result += "<span style='color: #C44955;'>未开启投票</span></span>"
}
else {
if (row.voteState == 1) {
result += "<span style='color: #49C482;'>投票中</span></span>"
}
else {
if (row.applyState == null) {
result += "<span style='color: #C44955;'>未开启报名</span></span>"
}
else {
if (row.applyState == 1) {
result += "<span style='color: #49C482;'>报名中</span></span>"
}
else {
result += "<span style='color:#6F6F6F;'>报名结束</span></span>"
}
}
}
}
return result;
}
},
{
field: 'createTime',
title: '创建时间',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
var result = "";
return value.substring(0, 19);
}
},
{
title: '操作',
field: 'operate',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {//自定义方法,添加操作按钮
var id = row.id;
var result = "";
result += "<a class='btn-cjl btn-vote' data-id='" + id + "' title='投票管理'>投票</a>";
result += "<a class='btn-cjl btn-apply' data-id='" + id + "' title='报名管理'>报名</a>";
result += "<a class='btn-cjl btn-edit' data-id='" + id + "' title='编辑旅游计划'>编辑</a>";
result += "<a class='btn-cjl btn-del btn-del-menu' data-id='" + id + "' style='margin-right: 0px;color: red'>删除</a>";
return result;
}
}
],
onLoadSuccess: function (data) {
}
});
}
},
mounted: function () {
var that = this;
that.createTable();
},
created: function () {
},
})
</script>
小白成长记录-千余