UNPKG

platform-project

Version:

平台项目

414 lines (379 loc) 17.6 kB
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表格设置<<<<<<<<<<<<<<<< }); });