platform-project
Version:
平台项目
399 lines (373 loc) • 18.4 kB
JavaScript
var Util = require('../util');
$(function () {
if ($('.project-manage-content').length === 0) {
return;
}
var ProjectData = {};
var isSeach = false;
$('.project-manage-li a').addClass('active').parent().siblings().find('a').removeClass('active');
$('.title-b').html('后台管理 - 项目管理');
// getProjectList(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;
// getProjectList(1, isSeach);
// }, 1000)
// })
// // 获取产品列表
// function getProjectList(pageNum) {
// Util.doAjax({
// url: '/api/admin/projects',
// 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) {
// getProjectList(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) {
// getProjectList(cur, isSeach);
// }
// });
// pagination.trigger(1, total);
// }
// } else {
// $(".list-area .page-area").html('');
// }
// $('tbody').empty();
// //填充基本信息
// var projects = data.projects;
// for (var i = 0; i < projects.length; i++) {
// var project = projects[i];
// var projecttype = project.projecttype === 0 ? 'server' : (project.projecttype === 1 ? 'client' : 'app');
// var statusClass = project.status === 0 ? 'use' : 'unuse'; //0启用
// var statusText = project.status === 0 ? '启用' : '禁用';
// var createdate = Util.formatTime(project.createdate, '<br />');
// var lastupdate = Util.formatTime(project.lastupdate, '<br />');
// var tr = $('<tr>' +
// ' <td data-name="projectid" data-value="' + project.projectid + '">' + project.projectid + '</td>' +
// ' <td data-name="projectname" data-value="' + project.projectname + '">' + project.projectname + '</td>' +
// ' <td data-name="projectdescription" data-value="' + project.projectdescription + '">' + project.projectdescription + '</td>' +
// ' <td data-name="projecttype" data-value="' + project.projecttype + '">' + projecttype + '</td>' +
// ' <td data-name="status" data-value="' + project.status + '" class="state ' + statusClass + '">' + statusText + '</td>' +
// ' <td data-name="productid" data-value="' + project.productid + '" class="hidden">' + project.productid + '</td>' +
// ' <td data-name="productname" data-value="' + project.productname + '">' + project.productname + '</td>' +
// ' <td data-name="kms" class="kms link"><a href="javascript:;">LINK</a></td>' +
// ' <td data-name="jira" class="jira link"><a href="javascript:;">LINK</a></td>' +
// ' <td data-name="createdate" data-value="' + project.projectname + '">' + createdate + '</td>' +
// ' <td data-name="lastupdate" data-value="' + project.projectname + '">' + 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="permission-btn btn" data-href="./permission-configure.html">' +
// ' <span class="tip shadow short-tip">权限</span>' +
// ' </a>' +
// ' </span>' +
// ' </td>' +
// '</tr>');
// $('tbody').append(tr);
// }
// //点击某个项目的编辑操作
// $(".edit-btn").on('click', function () {
// editProject($(this));
// })
// //点击某个用户的权限操作
// $(".permission-btn").on('click', function () {
// var href = $(this).attr('data-href');
// var restype = 1; //restype(资源类型 0:product 1:project)
// var resid = $(this).parent().parent().parent().find('td').eq(0).html();
// var productid = $(this).parent().parent().parent().find('td[data-name="productid"]').html();
// if (href) {
// window.location.href = href + '?resid=' + resid + '&restype=' + restype + '&productid=' + productid;
// }
// })
// }
// });
// }
//点击某个项目的编辑操作
$('body').on('click', ".edit-btn", function () {
editProject($(this));
})
//点击某个用户的权限操作
$("body").on('click', ".permission-btn", function () {
var href = $(this).attr('data-href');
var restype = 1; //restype(资源类型 0:product 1:project)
var resid = $(this).parent().parent().parent().find('td').eq(0).html();
// var resid = $(this).attr('data-productid');
// var productid = $(this).parent().parent().parent().find('td[data-name="productid"]').html();
var productid = $(this).attr('data-productid');
if (href) {
window.location.href = href + '?resid=' + resid + '&restype=' + restype + '&productid=' + productid;
}
})
//点击保存
$('.save-btn').click(function () {
var $prompt = $('.create-project-mask');
if ($prompt.hasClass('edit')) {
ProjectData.productId = $prompt.find('.product input').val();
ProjectData.projectName = $prompt.find('.name input').val();
ProjectData.projectDesc = $prompt.find('.desc textarea').val();
ProjectData.kmsAddress = $prompt.find('.kms input').val();
ProjectData.jiraAddress = $prompt.find('.jira input').val();
ProjectData.status = $prompt.find('.status input').val();
ProjectData.projecttype = $prompt.find('.type input').val();
Util.doAjax({
url: '/api/admin/project/save',
method: 'POST',
data: ProjectData,
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;
// getProjectList(pageNum, isSeach);
}
});
}
})
function editProject($this) {
var $prompt = $('.create-project-mask');
if ($prompt) {
$prompt.find('.title').html('修改项目设置');
$prompt.addClass('edit');
$prompt.removeClass('hidden');
ProjectData.projectId = $this.parent().parent().parent().find('td').eq(0).html();
Util.doAjax({
url: '/api/admin/project/edit',
method: 'POST',
data: {
projectId: ProjectData.projectId
},
success: function (data) {
// console.log(data);
$prompt.find('.name input').val(data.projectName);
$prompt.find('.product ul').find('li[data-value="' + data.productId + '"]').click();
$prompt.find('.desc textarea').val(data.projectDesc);
$prompt.find('.status ul').find('li[data-value="' + data.status + '"]').click();
$prompt.find('.type ul').find('li[data-value="' + data.projecttype + '"]').click();
$prompt.find('.kms input').val(data.kmsAddress);
$prompt.find('.jira input').val(data.jiraAddress);
}
});
}
}
$("#table").bootstrapTable({ // 对应table标签的id
url: '/api/admin/projects', //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.projects
};
},
sortOrder: "asc", //排序方式
sortName: 'projectid', // 要排序的字段
columns: [{
field: 'projectid', // 返回json数据中的name
title: 'ID', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
sortable: true
}, {
field: 'projectname',
title: '项目名称',
align: 'center',
valign: 'middle'
}, {
field: 'projectdescription',
title: '描述',
align: 'center',
valign: 'middle'
}, {
field: 'projecttype',
title: '项目类型',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return value === 0 ? 'server' : (value === 1 ? 'client' : 'app');
},
}, {
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: 'productid', // 返回json数据中的name
title: '产品ID', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
visible: false
}, {
field: 'productname',
title: '产品名称',
align: 'center',
valign: 'middle'
}, {
field: 'kmsaddress',
title: 'KMS',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return '<a href="' + value + '" target="_blank">LINK</a>';
},
class: 'kms link'
}, {
field: 'jiraaddress',
title: 'JIRA',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return '<a href="' + value + '" target="_blank">LINK</a>';
},
class: 'jira link'
}, {
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: 'productid',
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="permission-btn btn" data-href="./permission-configure.html" data-productid="' + value + '">' +
' <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表格设置<<<<<<<<<<<<<<<<
});
});