platform-project
Version:
平台项目
412 lines (386 loc) • 17.8 kB
JavaScript
var Util = require('../util');
$(function () {
if ($('.user-manage-content').length === 0) {
return;
}
var userData = {};
var isSeach = false;
$('.user-manage-li a').addClass('active').parent().siblings().find('a').removeClass('active');
$('.title-b').html('后台管理 - 用户管理');
// getUserList(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;
// getUserList(1, isSeach);
// }, 1000)
// })
// 获取用户列表
// function getUserList(pageNum, isSeach) {
// Util.doAjax({
// url: '/api/admin/users',
// 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) {
// getUserList(cur, isSeach);
// }
// });
// pagination.trigger(1, total);
// } else if (isSeach) {
// isSeach = false;
// var pagination = new Virgo.pagination({
// node: $(".list-area .page-area"),
// isNeedInput: false,
// callback: function (cur) {
// getUserList(cur, isSeach);
// }
// });
// pagination.trigger(1, total);
// }
// } else {
// $(".list-area .page-area").html('');
// }
// // if(total===1){
// // $('.page-area').html('');
// // }
// $('tbody').empty();
// //填充基本信息
// var users = data.users;
// for (var i = 0; i < users.length; i++) {
// var user = users[i];
// var userTypeText = user.userType === 0 ? 'ADMIN' : (user.userType === 1 ? 'USER' : 'API_USER');
// var statusClass = user.status === 0 ? 'use' : 'unuse'; //0启用
// var statusText = user.status === 0 ? '启用' : '禁用';
// var createdate = Util.formatTime(user.createdate, '<br />');
// var lastupdate = Util.formatTime(user.lastupdate, '<br />');
// var tr = $('<tr>' +
// ' <td data-name="user-id" data-value="' + user.userid + '">' + user.userid + '</td>' +
// ' <td data-name="username" data-value="' + user.username + '">' + user.username + '</td>' +
// ' <td data-name="name" data-value="' + user.userfullname + '">' + user.userfullname + '</td>' +
// ' <td data-name="email" data-value="' + user.useremail + '">' + user.useremail + '</td>' +
// ' <td data-name="type" data-value="' + user.userType + '">' + userTypeText + '</td>' +
// ' <td data-name="state" data-value="' + user.status + '" class="type ' + statusClass + '">' + statusText + '</td>' +
// ' <td data-name="create-time" class="create-time">' + createdate + '</td>' +
// ' <td data-name="update-time" class="update-time">' + lastupdate + '</td>' +
// ' <td data-name="handlers" class="handlers">' +
// ' <span>' +
// ' <a href="javascript:;" class="edit-btn btn">' +
// ' <span class="tip shadow short-tip">编辑</span>' +
// ' </a>' +
// ' <a href="javascript:;" class="certificates-btn btn">' +
// ' <span class="tip shadow short-tip">凭证</span>' +
// ' </a>' +
// ' </span>' +
// ' </td>' +
// '</tr>');
// $('tbody').append(tr);
// }
// }
// });
// }
//点击某个用户的编辑操作
$("body").on('click', ".edit-btn", function () {
editUser($(this));
})
//点击某个用户的凭证操作
$('body').on('click', ".certificates-btn", function () {
certificate($(this));
})
//点击新增
$('.add-user-btn').click(function () {
var $prompt = $('.edit-user-mask');
if ($prompt) {
$prompt.find('.title').html('新增用户');
$prompt.removeClass('hidden');
$prompt.find('.userName input').val('');
$prompt.find('.userFullName input').val('');
$prompt.find('.email input').val('');
$prompt.find('.userType ul').find('li[data-value="0"]').click();
$prompt.find('.status ul').find('li[data-value="0"]').click();
userData.userId = '';
}
})
//点击保存用户
$('.edit-user-prompt .save-btn').click(function () {
var $prompt = $('.edit-user-mask');
userData.userName = $prompt.find('.userName input').val();
userData.userFullName = $prompt.find('.userFullName input').val();
userData.email = $prompt.find('.email input').val();
userData.userType = $prompt.find('.userType input').val();
userData.status = $prompt.find('.status input').val();
// console.log(userData);
Util.doAjax({
url: '/api/admin/user/save',
method: 'POST',
data: userData,
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;
// getUserList(pageNum, isSeach);
}
});
})
function certificate($this) {
var $prompt = $('.certificate-manage-mask');
if ($prompt) {
$prompt.removeClass('hidden');
userData.userId = $this.parent().parent().parent().find('td[data-name="user-id"]').eq(0).html();
$prompt.find('span.username').html($this.parent().parent().parent().find('td[data-name="username"]').attr('data-value'));
$prompt.find('.reset-btn').click(function () {
var $prompt = $('.reset-passwrod-mask');
$prompt.find('.new-passwrod input').val('');
$prompt.find('.sure-passwrod input').val('');
if ($prompt) {
$prompt.removeClass('hidden');
}
})
$prompt.find('.add-btn').click(function () {
var ip = $prompt.find('.ip-item input').val()
Util.doAjax({
url: '/api/admin/user/add_cred',
method: 'POST',
data: {
uid: userData.userId,
ctype: 2,
ip: ip
},
success: function (data) {
$('.reset-passwrod-mask').addClass('hidden');
Util.prompt('修改成功!');
}
});
})
}
}
//重置密码
$('.reset-passwrod-mask').find('.save-btn').click(function () {
var password = $('.reset-passwrod-mask').find('.new-passwrod input').val();
var passwordConfirm = $('.reset-passwrod-mask').find('.sure-passwrod input').val();
Util.doAjax({
url: '/api/admin/user/reset_password',
method: 'POST',
data: {
uid: userData.userId,
password: password,
passwordConfirm: passwordConfirm
},
success: function (data) {
$('.reset-passwrod-mask').addClass('hidden');
Util.prompt('修改成功!');
}
});
})
function editUser($this) {
var $prompt = $('.edit-user-mask');
if ($prompt) {
$prompt.find('.title').html('编辑用户');
$prompt.removeClass('hidden');
userData.userId = $this.parent().parent().parent().find('td').eq(0).html();
Util.doAjax({
url: '/api/admin/user/edit',
method: 'POST',
data: {
userId: userData.userId
},
success: function (data) {
// console.log(data);
$prompt.find('.userName input').val(data.userName);
$prompt.find('.userFullName input').val(data.userFullName);
$prompt.find('.email input').val(data.email);
$prompt.find('.userType ul').find('li[data-value="' + data.userType + '"]').click();
$prompt.find('.status ul').find('li[data-value="' + data.status + '"]').click();
}
});
}
}
$("#table").bootstrapTable({ // 对应table标签的id
url: '/api/admin/users', //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.users
};
},
sortOrder: "asc", //排序方式
sortName: 'userid', // 要排序的字段
columns: [{
field: 'userid', // 返回json数据中的name
title: 'ID', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
sortable: true
}, {
field: 'username',
title: '用户名',
align: 'center',
valign: 'middle'
}, {
field: 'userfullname',
title: '姓名',
align: 'center',
valign: 'middle'
// sortable: true
}, {
field: 'useremail',
title: 'Email',
align: 'center',
valign: 'middle',
}, {
field: 'userType',
title: '类型',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return value === 0 ? 'ADMIN' : (value === 1 ? 'USER' : 'API_USER');
}
}, {
field: 'status',
title: '状态',
align: 'center',
valign: 'middle',
class: 'type',
formatter: function (value, row, index) {
return value === 0 ? '启用' : '禁用';
},
cellStyle: function (value, row, index) {
if (value === 0) {
return {
css: {
'color': '#1fbc48;'
}
}
} else {
return {
css: {
'color': '#ff4444'
}
}
}
}
}, {
field: 'createdate',
title: '创建时间',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return Util.formatTime(value, '<br />');
}
}, {
field: 'lastupdate',
title: '更新时间',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return Util.formatTime(value, '<br />');
}
}, {
field: 'userid',
title: '操作',
align: 'center',
valign: 'middle',
class: 'handlers',
formatter: function (value, row, index) {
return ' <span>' +
' <a href="javascript:;" class="edit-btn btn">' +
' <span class="tip shadow short-tip">编辑</span>' +
' </a>' +
' <a href="javascript:;" class="certificates-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表格设置<<<<<<<<<<<<<<<<
});
});