UNPKG

platform-project

Version:

平台项目

475 lines (442 loc) 20.1 kB
var Util = require('../util'); $(function () { if ($('.version-manage-content').length === 0) { return; } var versionData = {}; var isSeach = false; var summaryDate = ''; //填充弹窗返回的数据 $('.version-manage-li a').addClass('active').parent().siblings().find('a').removeClass('active'); $('.title-b').html('后台管理 - 版本管理'); tableHandlers(); //表格里的操作 promptHandlers(); //弹窗里的操作 function promptHandlers() { var $prompt = $('.version-detail-mask'); //弹窗中表格里的下载 promptTableDownload(); //弹窗中的按钮事件 outlinePromptHandle(summaryDate); } function tableHandlers() { //点击概要操作 $('body').on('click', ".handlers .outline-btn", function () { outline($(this)) }); //点击修改版本操作 $('body').on('click', ".handlers .edit-btn", function () { editVersion($(this)); }) //点击构建日志操作 $("body").on('click', ".handlers .build-log-btn", function () { buildLog($(this)) }) //点击下载操作 $("body").on('click', '.list-area .handlers .download-btn', function () { downloadVersion($(this)); }) //点击删除操作 $('body').on('click', ".handlers .delete-btn", function () { deleteVersion($(this)); }) } function outline($this) { var $tr = $this.parent().parent().parent(); var title = $tr.find('td[data-name="projectname"]').attr('data-value'); var $prompt = $('.version-detail-mask'); if ($prompt) { $prompt.find('.title').html(title); $prompt.addClass('edit'); $prompt.removeClass('hidden'); versionData.archiveId = $this.parent().parent().parent().find('td').eq(0).html(); console.log(versionData.archiveId); //填充弹窗 Util.doAjax({ url: '/api/admin/archive/summary', method: 'POST', data: { archiveId: versionData.archiveId }, success: function (data) { console.log(data); summaryDate = data; $prompt.find('.info-table tbody').html(''); $prompt.find('.handle-table tbody').html(''); $prompt.find('.version-name .value').html(data.version); $prompt.find('.create-time .value').html(Util.formatTime(data.createTime), ' '); $prompt.find('.size .value').html(data.fileSize); $prompt.find('.desc-info .value').html(''); var scm, files; for (let i = 0; i < data.scm.scm.length; i++) { scm = $('<tr>' + ' <td class="scm-address" >' + data.scm.scm[i].url + '</td>' + ' <td class="branch" >' + data.scm.scm[i].branch + '</td>' + ' <td class = "revision" >' + data.scm.scm[i].revision + '</td> ' + '</tr>'); $prompt.find('.info-table tbody').append(scm); } for (let i = 0; i < data.downloadList.files.length; i++) { var url = '/api/admin / archive / download ? archiveId = ' + versionData.archiveId + ' & items = ' + data.downloadList.files[i].path; files = $('<tr>' + ' <td>' + ' <div class="vo-checkbox"><input type="checkbox" name="" value="1">' + ' <b class="vo-null">icon</b></div>' + ' </td>' + ' <td>' + (i + 1) + '</td>' + ' <td class="file-name" title="' + data.downloadList.files[i].path + '">' + data.downloadList.files[i].path + '</td>' + ' <td>' + Util.sizeFormat(data.downloadList.files[i].size) + '</td>' + ' <td>' + data.downloadList.files[i].md5 + '</td>' + ' <td class="handlers">' + ' <a href="javascript:;" class="download-btn btn" data-url="' + data.downloadList.files[i].path + '" target="_blank">' + ' <span class="tip short-tip shadow">下载</span>' + ' </a>' + ' </td>' + '</tr>'); // "/api/admin/archive/download?archiveId=' + versionData.archiveId + '&items=' + data.downloadList.files[i].path $prompt.find('.handle-table tbody').append(files); } $prompt.find('.vo-checkbox').vo_checkbox(); } }); } } function promptTableDownload() { $('body').on('click', '.version-detail-mask .handlers .download-btn', function () { var item = $(this).attr('data-url'); // console.log(data.downLoad + '&items=' + item) Util.doAjax({ url: '/api/admin/archive/download', method: 'POST', data: { archiveId: versionData.archiveId, items: item }, success: function (data) { Util.doDownload(data.downLoad + '&items=' + item); } }); // Util.doDownload(data.downLoad + '&items=' + item); }) } //概要中的批量下载 function outlinePromptHandle(data) { // console.log('outlinePromptHandle', data); var $prompt = $('.version-detail-mask'); $('body').on('click', '.version-detail-mask .group-download-btn', function () { var items = []; var tr = $prompt.find('.handle-table tbody tr'); for (let i = 0; i < tr.length; i++) { var isChecked = tr.eq(i).find('.vo-checkbox').hasClass('checked'); if (isChecked) { items.push(tr.eq(i).find('.handlers a').attr('data-url')); } } // console.log(versionData.archiveId, items) Util.doAjax({ url: '/api/admin/archive/download', method: 'POST', data: { archiveId: versionData.archiveId, items: items }, success: function (data) { Util.doDownload('/api/admin/archive/download?archiveId=' + versionData.archiveId + '&items=' + items); } }); // Util.doDownload('/api/admin/archive/download?archiveId=' + versionData.archiveId + '&items=' + items); }) $('body').on('click', '.version-detail-mask .btns-area .update-log-btn', function () { var url = data.changelog; Util.doAjax({ url: data.changelog, method: 'POST', success: function (data) { window.open(url); } }); }) $('body').on('click', '.version-detail-mask .btns-area .build-log-btn', function () { var url = data.buildLog; Util.doAjax({ url: data.buildLog, method: 'POST', success: function (data) { window.open(url); } }); }) } function buildLog($this) { versionData.archiveId = $this.parent().parent().parent().find('td').eq(0).html(); var url = '/api/admin/archive/buildlog?archiveId=' + versionData.archiveId; // Util.doAjax({ // url: '/api/admin/archive/buildlog', // method: 'POST', // data: { // archiveId: versionData.archiveId // }, // success: function (data) { // window.open(url); // } // }); window.open(url); } function downloadVersion($this) { versionData.archiveId = $this.parent().parent().parent().find('td').eq(0).html(); Util.doAjax({ url: '/api/admin/archive/download', method: 'POST', data: { archiveId: versionData.archiveId }, success: function (data) { Util.doDownload('/api/admin/archive/download?archiveId=' + versionData.archiveId); } }); // var url = '/api/admin/archive/download?archiveId=' + versionData.archiveId; // window.open(url); } function deleteVersion($this) { var deletePrompt = Util.deletePrompt(); deletePrompt.find('.sure-btn').click(function () { deletePrompt.remove(); versionData.archiveId = $this.parent().parent().parent().find('td').eq(0).html(); Util.doAjax({ url: '/api/admin/archive/del', method: 'POST', data: { archiveId: versionData.archiveId }, success: function (data) { Util.prompt('删除成功!'); $('#table').bootstrapTable('refresh'); // var pageNum = parseInt($('.page-area a.on').attr('data-page')) || 1; // getArchiveList(pageNum, isSeach); } }); }); } function editVersion($this) { var $prompt = $('.edit-version-mask'); if ($prompt) { // $prompt.find('.title').html(title); $prompt.removeClass('hidden'); versionData.archiveId = $this.parent().parent().parent().find('td').eq(0).html(); Util.doAjax({ url: '/api/admin/archive/edit', method: 'POST', data: { archiveId: versionData.archiveId }, success: function (data) { $prompt.find('.archiveVersion input').val(data.archiveVersion); $prompt.find('.description textarea').val(data.description); } }); } //保存 $prompt.find('.save-btn').click(function () { versionData.archiveVersion = $prompt.find('.archiveVersion input').val(); versionData.description = $prompt.find('.description textarea').val(); Util.doAjax({ url: '/api/admin/archive/save', method: 'POST', data: versionData, success: function (data) { $prompt.addClass('hidden'); Util.prompt('修改成功!'); $('#table').bootstrapTable('refresh'); // var pageNum = parseInt($('.page-area a.on').attr('data-page')) || 1; // getArchiveList(pageNum, isSeach); } }); }) } $("#table").bootstrapTable({ // 对应table标签的id url: '/api/admin/archives', //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.archives }; }, sortOrder: "asc", //排序方式 sortName: 'archiveid', // 要排序的字段 columns: [{ field: 'archiveid', // 返回json数据中的name title: 'ID', // 表格表头显示文字 align: 'center', // 左右居中 valign: 'middle', // 上下居中 sortable: true }, { field: 'archiveversion', title: '版本名称', align: 'center', valign: 'middle' }, { field: 'archivefilesize', title: '文件大小', align: 'center', valign: 'middle', formatter: function (value, row, index) { return Util.sizeFormat(value) } }, { field: 'projectid', // 返回json数据中的name title: 'ID', // 表格表头显示文字 align: 'center', // 左右居中 valign: 'middle', // 上下居中 visible: false }, { field: 'projectname', 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: 'productid', // 返回json数据中的name title: '产品ID', // 表格表头显示文字 align: 'center', // 左右居中 valign: 'middle', // 上下居中 visible: false }, { field: 'productname', title: '产品名称', align: 'center', valign: 'middle' }, { 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: 'productid', title: '操作', align: 'center', valign: 'middle', class: 'handlers', formatter: function (value, row, index) { return ' <span>' + ' <a href="javascript:;" class="outline-btn btn">' + ' <span class="tip shadow short-tip">概要</span>' + ' </a>' + ' <a href="javascript:;" class="edit-btn btn">' + ' <span class="tip shadow">修改版本</span>' + ' </a>' + ' <a href="javascript:;" class="build-log-btn btn">' + ' <span class="tip shadow">构建日志</span>' + ' </a>' + ' <a href="javascript:;" class="download-btn btn">' + ' <span class="tip shadow short-tip">下载</span>' + ' </a>' + ' <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表格设置<<<<<<<<<<<<<<<< }); });