UNPKG

platform-project

Version:

平台项目

399 lines (373 loc) 18.4 kB
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表格设置<<<<<<<<<<<<<<<< }); });