platform-project
Version:
平台项目
414 lines (379 loc) • 17.6 kB
JavaScript
var Util = require('../util');
$(function () {
if ($('.publish-permission-content').length === 0) {
return;
}
var releaseAuthData = {};
var isSeach = false;
// var isSeachItem = false;
$('.publish-permission-li a').addClass('active').parent().siblings().find('a').removeClass('active');
$('.title-b').html('后台管理 - 发布权限');
// getList(1, isSeach);
// //取筛选元素
var searchText = '',
searchTimeOut,
sortName, sortOrder;
// $('.handle-area input.id').on('input', function () {
// if (searchTimeOut) {
// clearTimeout(searchTimeOut);
// }
// searchTimeOut = setTimeout(function () {
// searchText = $('.handle-area input.id').val();
// isSeach = true;
// getList(1, isSeach);
// }, 1000)
// })
// // 获取发布权限列表
// function getList(pageNum) {
// Util.doAjax({
// url: '/api/admin/releaseAuths',
// method: 'POST',
// data: {
// pageSize: 10,
// pageNumber: pageNum,
// searchText: searchText,
// },
// success: function (data) {
// //处理页码
// var total = +data.totalPages;
// if (total > 1) {
// if ($('.page-area .vo_pagination').length === 0) {
// var pagination = new Virgo.pagination({
// node: $(".list-area .page-area"),
// isNeedInput: false,
// callback: function (cur) {
// getList(cur);
// }
// });
// pagination.trigger(1, total);
// } else if (isSeach) {
// isSeach = false;
// var pagination = new Virgo.pagination({
// node: $(".list-area .page-area"),
// isNeedInput: false,
// callback: function (cur) {
// getList(cur, isSeach);
// }
// });
// pagination.trigger(1, total);
// }
// } else {
// $(".list-area .page-area").html('');
// }
// $('tbody').empty();
// //填充基本信息
// var releaseAuths = data.releaseAuths;
// for (var i = 0; i < releaseAuths.length; i++) {
// var releaseAuth = releaseAuths[i];
// var tr = $('<tr>' +
// ' <td data-name="id" data-value="' + releaseAuth.id + '">' + releaseAuth.id + '</td>' +
// ' <td data-name="userId" data-value="' + releaseAuth.identity + '">' + releaseAuth.identity + '</td>' +
// ' <td data-name="username" data-value="' + releaseAuth.username + '">' + releaseAuth.username + '</td>' +
// ' <td data-name="projectId" data-value="' + releaseAuth.res + '">' + releaseAuth.res + '</td>' +
// ' <td data-name="projectname" data-value="' + releaseAuth.projectname + '">' + releaseAuth.projectname + '</td>' +
// ' <td data-name="handlers" class="handlers">' +
// ' <span>' +
// ' <a href="javascript:;" class="delete-btn btn">' +
// ' <span class="tip shadow short-tip">删除</span>' +
// ' </a>' +
// ' </span>' +
// ' </td>' +
// '</tr>');
// $('tbody').append(tr);
// }
// //点击删除操作
// $(".delete-btn").on('click', function () {
// deleteReleaseAuth($(this));
// })
// }
// });
// }
//点击删除操作
$('body').on('click', ".delete-btn", function () {
deleteReleaseAuth($(this));
})
//点击新增
$('.add-btn').click(function () {
var $prompt = $('.add-permission-mask');
if ($prompt) {
$prompt.removeClass('hidden');
$prompt.find('.user-item input').val('');
$prompt.find('.project-item input').val('');
//取筛选元素
var searchText = '';
searchHandlers($prompt);
}
})
//点击保存用户
$('.save-btn').click(function () {
var $prompt = $('.add-permission-mask');
releaseAuthData.identity = $prompt.find('.user-item input').attr('data-id');
releaseAuthData.res = $prompt.find('.project-item input').attr('data-id');
releaseAuthData.ext = $prompt.find('.project-item input').attr('data-productid');
console.log(releaseAuthData);
Util.doAjax({
url: '/api/admin/releaseAuth/save',
method: 'POST',
data: releaseAuthData,
success: function (data) {
// Util.prompt(data.message);
$prompt.addClass('hidden');
Util.prompt('修改成功!');
$('#table').bootstrapTable('refresh');
// var pageNum = parseInt($('.page-area a.on').attr('data-page'))||1;
// getList(pageNum, isSeach);
}
});
})
function deleteReleaseAuth($this) {
var deletePrompt = Util.deletePrompt();
deletePrompt.find('.sure-btn').click(function () {
deletePrompt.remove();
var id = $this.parent().parent().parent().find('td').eq(0).html();
Util.doAjax({
url: '/api/admin/releaseAuth/del',
method: 'POST',
data: {
id: id
},
success: function (data) {
Util.prompt('删除成功!');
$('#table').bootstrapTable('refresh');
// var pageNum = parseInt($('.page-area a.on').attr('data-page'))||1;
// getList(pageNum, isSeach);
}
});
});
}
function searchHandlers($prompt) {
$prompt.find('.user-item input').on('input', function () {
var _self = $(this);
if (searchTimeOut) {
clearTimeout(searchTimeOut);
}
searchTimeOut = setTimeout(function () {
searchText = _self.val();
console.log(searchText)
// isSeachItem = true;
if (searchText.length < 2) {
$prompt.find('.user-item .searchTip').removeClass('hidden');
} else {
searchItem($prompt, searchText, 'user');
}
}, 1000)
})
$prompt.find('.project-item input').on('input', function () {
var _self = $(this);
if (searchTimeOut) {
clearTimeout(searchTimeOut);
}
searchTimeOut = setTimeout(function () {
searchText = _self.val();
console.log(searchText)
// isSeachItem = true;
if (searchText.length < 2) {
$prompt.find('.project-item .searchTip').removeClass('hidden');
} else {
searchItem($prompt, searchText, 'project');
}
}, 1000)
})
$prompt.find('.user-item input').on('blur', function () {
$prompt.find('.user-item .searchTip').addClass('hidden');
$prompt.find('.user-item .searchList').addClass('hidden');
})
$prompt.find('.project-item input').on('blur', function () {
$prompt.find('.project-item .searchTip').addClass('hidden');
$prompt.find('.project-item .searchList').addClass('hidden');
})
}
function searchItem($prompt, searchText, item) {
if (item == 'user') {
Util.doAjax({
url: '/api/user/search',
method: 'POST',
data: {
query: searchText
},
success: function (data) {
$prompt.find('.user-item .searchList').empty();
console.log(data);
var user = data.users;
if (user.length === 0) {
$prompt.find('.user-item .searchTip').html('No results for ' + searchText + '.');
$prompt.find('.user-item .searchTip').removeClass('hidden');
return;
}
for (let i = 0; i < 5; i++) {
if (user[i]) {
var li = '<li data-id="' + user[i].id + '">' + user[i].username + '</li>'
$prompt.find('.user-item .searchList').append(li);
}
}
$prompt.find('.user-item .searchList').removeClass('hidden');
$prompt.find('.searchList li').on('mousedown', function (e) {
e.stopPropagation();
var username = $(this).html();
var id = $(this).attr('data-id');
$prompt.find('.user-item input').val(username);
$prompt.find('.user-item input').attr('data-id', id);
})
}
});
} else {
Util.doAjax({
url: '/api/project/search',
method: 'POST',
data: {
query: searchText
},
success: function (data) {
$prompt.find('.project-item .searchList').empty();
console.log(data);
if (data.length === 0) {
$prompt.find('.project-item .searchTip').html('No results for ' + searchText + '.');
$prompt.find('.project-item .searchTip').removeClass('hidden');
return;
}
for (let i = 0; i < 5; i++) {
if (data[i]) {
var li = '<li data-id="' + data[i].id + '" data-productid="' + data[i].productid + '">' + data[i].projectname + '</li>'
$prompt.find('.project-item .searchList').append(li);
}
}
$prompt.find('.project-item .searchList').removeClass('hidden');
$prompt.find('.searchList li').on('mousedown', function (e) {
e.stopPropagation();
var projectname = $(this).html();
var id = $(this).attr('data-id');
var productid = $(this).attr('data-productid');
$prompt.find('.project-item input').val(projectname);
$prompt.find('.project-item input').attr('data-productid', productid).attr('data-id', id);
})
}
});
}
}
$("#table").bootstrapTable({ // 对应table标签的id
url: '/api/admin/releaseAuths', //AJAX获取表格数据的url
method: 'post',
striped: true, //是否显示行间隔色(斑马线)
pagination: true, //是否显示分页(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
paginationLoop: false, //当前页是边界时是否可以继续按
queryParams: function (params) { // 请求服务器数据时发送的参数,可以在这里添加额外的查询参数,返回false则终止请求
// console.log(params);
return {
pageSize: 10, // 每页要显示的数据条数
pageNumber: params.offset / params.limit + 1, // 每页显示数据的开始行号
//sort: params.sort, // 要排序的字段
//sortOrder: params.order, // 排序规则
//dataId: $("#dataId").val() // 额外添加的参数
searchText: $('.form-control').val()
}
}, //传递参数(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
// pageList: [10, 25, 50, 100, 'all'], //可供选择的每页的行数(*)
contentType: "application/x-www-form-urlencoded", //一种编码。在post请求的时候需要用到。这里用的get请求,注释掉这句话也能拿到数据
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
strictSearch: false, //是否全局匹配,false模糊匹配
showColumns: true, //是否显示所有的列
showRefresh: false, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
clickToSelect: false, //是否启用点击选中行
checkboxHeader: false,
//height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
//uniqueId: "id", //每一行的唯一标识,一般为主键列
showToggle: false, //是否显示详细视图和列表视图的切换按钮
showPaginationSwitch: false,
onlyInfoPagination: false,
paginationPreText: '<',
paginationNextText: '>',
cardView: false, //是否显示详细视图
detailView: false, //是否显示父子表
toolbar: '#toolbar',
toolbarAlign: 'right',
buttonsAlign: 'right',
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
sortable: false, //是否启用排序
responseHandler: function (data) { //如果后台返回的数据格式与bootstrapTable的数据格式不同在这里调整
console.log(data.data);
return {
"page": data.data.totalPages,
"total": data.data.totalCount,
"rows": data.data.releaseAuths
};
},
sortOrder: "asc", //排序方式
sortName: 'id', // 要排序的字段
columns: [{
field: 'id', // 返回json数据中的name
title: 'ID', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
sortable: true
}, {
field: 'identity',
title: '用户ID',
align: 'center',
valign: 'middle'
}, {
field: 'username',
title: '用户名',
align: 'center',
valign: 'middle',
}, {
field: 'res', // 返回json数据中的name
title: '项目ID', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
visible: false
}, {
field: 'projectname',
title: '项目名',
align: 'center',
valign: 'middle'
}, {
field: 'productid',
title: '操作',
align: 'center',
valign: 'middle',
class: 'handlers',
formatter: function (value, row, index) {
return ' <span>' +
' <a href="javascript:;" class="delete-btn btn">' +
' <span class="tip shadow short-tip">删除</span>' +
' </a>' +
' </span>';
}
}],
onColumnSwitch: function () {
$('.pagination-detail').css('display', 'none');
},
onLoadSuccess: function () { //加载成功时执行
console.info("加载成功");
$('.pagination-detail').css('display', 'none');
$('.btn-group ul').addClass('shadow');
$('.btn-group.keep-open button span').html('维度');
$('.btn-group.export button span').html('导出');
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
},
//>>>>>>>>>>>>>>导出excel表格设置
showExport: true, //是否显示导出按钮(此方法是自己写的目的是判断终端是电脑还是手机,电脑则返回true,手机返回falsee,手机不显示按钮)
exportDataType: "basic", //basic', 'all', 'selected'.
exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'], //导出类型
//exportButton: $('#btn_export'), //为按钮btn_export 绑定导出事件 自定义导出按钮(可以不用)
exportOptions: {
//ignoreColumn: [0,0], //忽略某一列的索引
fileName: 'tableExport', //文件名称设置
worksheetName: 'Sheet1', //表格工作区名称
tableName: 'tableExport',
excelstyles: ['background-color', 'color', 'font-size', 'font-weight'],
//onMsoNumberFormat: DoOnMsoNumberFormat
}
//导出excel表格设置<<<<<<<<<<<<<<<<
});
});