UNPKG

platform-project

Version:

平台项目

593 lines (533 loc) 22.8 kB
var Util = require('./util.js'); var HTMLFactory = require('./HTMLFactory.js'); require('./components/FileDownloader.js'); var archiveId = ''//点击列表里的上传文件按钮,存起来ID $(function () { var projectId = +Util.parseURL().projectId; var fileList = {}; //复制过来的版本链接地址直接跳出弹窗 if (Util.parseURL(parent.location.href).copy === 'true') { let archiveId = Util.parseURL().archiveId; getSummary(archiveId, 'GET'); } /** * 点击版本名称 */ $('.version-table').delegate(".version-name", "click", function (e) { var e = e || window.event; var $btn = $(e.target); var $tr = $btn.parent().parent(); var archiveId = $tr.attr('data-archiveid'); // var archiveId = 126; getSummary(archiveId, 'POST'); }); function getSummary(archiveId, method) { Util.doAjax({ url: '/api/archive/summary', method: method, data: { archiveId: archiveId, pageNumber: 1, pageSize: 4, }, success: function (data) { var $versionDetailPropmt = $('.version-detail-mask'); //填充基本信息 $versionDetailPropmt.attr('data-archiveid', archiveId); $versionDetailPropmt.find('.title').html(Util.substring(data.projectName || '', 10)).attr('title', data.projectName); $versionDetailPropmt.find('.version-name .value').html(Util.substring(data.version || '', 18)).attr('title', data.version); $versionDetailPropmt.find('.create-time .value').html(Util.formatTime(data.createTime || '')); $versionDetailPropmt.find('.size .value').html(data.fileSize || 0); $versionDetailPropmt.find('.desc-info .value').html(data.versionDesc || ''); $versionDetailPropmt.find('.build-log-btn').attr('href', data.buildLog); $versionDetailPropmt.find('.update-log-btn').attr('href', data.changelog); $versionDetailPropmt.find('.group-download-btn').attr('data-url', data.downLoad); var $infoTable = $versionDetailPropmt.find('.info-table'); var infoTableHtml = ''; var scmList = data.scm.scm; if (scmList && scmList.length && scmList.length > 0) { for (var i = 0; i < scmList.length; i++) { var scm = scmList[i]; infoTableHtml += HTMLFactory.createSCMItem(scm); } $infoTable.find('tbody').html(infoTableHtml); } var $handleTable = $versionDetailPropmt.find('.handle-table'); var handleTableHtml = ''; var downloadList = data.downloadList.files; if (downloadList && downloadList.length && downloadList.length > 0) { for (var i = 0; i < downloadList.length; i++) { var download = downloadList[i]; download.id = i + 1; handleTableHtml += HTMLFactory.createDownLoadItem(download); } $handleTable.find('tbody').html(handleTableHtml); } $versionDetailPropmt.find('.vo-checkbox').vo_checkbox(); $handleTable.find('a[data-node="file-downloader"]').fileDownloader(); $versionDetailPropmt.removeClass('hidden'); }, }); } $('.project-article .setup-btn').on('click', function () { Util.doAjax({ url: '/api/project/edit', method: 'POST', data: { projectId: projectId }, success: function (data) { $('.update-project-mask').removeClass('hidden'); $('.update-project-mask .name .value').val(data.projectName); $('.update-project-mask .product .value').val(data.projectName); $('.update-project-mask .desc .value').val(data.projectDesc); $('.update-project-mask .state .value').val(data.status); $('.update-project-mask .type .value').val(data.projecttype); $('.update-project-mask .kms .value').val(data.kmsAddress); $('.update-project-mask .jira .value').val(data.jiraAddress); }, }); }); $('.update-project-mask .add-btn').on('click', function () { var name = $('.update-project-mask .name .value').val(); var product = $('.update-project-mask .product .value').val(); var desc = $('.update-project-mask .desc .value').val(); var state = +$('.update-project-mask .state .value').val(); var type = +$('.update-project-mask .type .value').val(); var kms = $('.update-project-mask .kms .value').val(); var jira = $('.update-project-mask .jira .value').val(); Util.doAjax({ url: '/api/project/save', method: 'POST', data: { projectId: projectId, projectName: name, productId: product, projectDesc: desc, status: state, projecttype: type, kmsAddress: kms, jiraAddress: jira, }, success: function (data) { Util.prompt('修改成功!'); }, }); }); //上传版本 $('.title-area .upload-btn').on('click', function () { $('.upload-version-mask').removeClass('hidden'); }); //上传版本弹窗中的选择文件 $('.upload-version-mask .upload-btn').on('click', function () { $('#UploadVersionFile').click(); }); //上传版本中的删除文件 $('.upload-version-mask .file-list').on('click', '.delete-btn', function () { var $fileItem = $(this).parent(); var timeStamp = $fileItem.attr('data-timeStamp'); fileList[timeStamp] = null; $fileItem.remove(); }); //上传版本中的关闭按钮 $('.upload-version-mask .btns-area').on('click', '.delete-btn', function (e) { $(e.target).parent().parent().parent().addClass('hidden'); }); $('#UploadVersionFile').on('change', function () { var timeStamp = +new Date(); for (var i = 0; i < this.files.length; i++) { var file = this.files[i]; fileList[timeStamp + i] = file; var $fileItem = HTMLFactory.createUploadVersionFileItem(file.name, timeStamp + i); $('.upload-version-mask .file-list').append($fileItem); } $('#UploadVersionFile').val(''); }); //上传版本弹窗中的提交 $('.upload-version-mask .add-btn').on('click', function () { var versionName = $('.upload-version-mask .param-item.name input').val(); if (!versionName || !versionName.trim()) { Util.prompt('版本名称不能为空!'); return; } var scmUrl = $('.upload-version-mask .param-item.location input').val(); if (!scmUrl || !scmUrl.trim()) { Util.prompt('代码地址不能为空!'); return; } var revision = $('.upload-version-mask .param-item.code-v input').val(); if (!revision || !revision.trim()) { Util.prompt('代码版本不能为空!'); return; } var branch = $('.upload-version-mask .param-item.branch input').val(); if (!branch || !branch.trim()) { Util.prompt('Branch不能为空!'); return; } var env = $('.upload-version-mask .param-item.env input').val(); if (!env || !env.trim()) { Util.prompt('编译环境不能为空!'); return; } var buildVersion = $('.upload-version-mask .param-item.build-v input').val(); if (!buildVersion || !buildVersion.trim()) { Util.prompt('构建版本不能为空!'); return; } var certDeadline = $('.upload-version-mask .param-item.deadline input').val(); if (!certDeadline || !certDeadline.trim()) { Util.prompt('证书过期时间不能为空!'); return; } var archiveItem = []; for (var key in fileList) { if (fileList.hasOwnProperty(key)) { var file = fileList[key]; if (file) { archiveItem.push(file); } } } if (archiveItem.length === 0) { Util.prompt('上传文件不能为空!'); return; } var formData = new FormData(); formData.append('version_name', versionName); formData.append('projectId', projectId); formData.append('branch', branch); formData.append('scm_url', scmUrl); formData.append('revision', revision); formData.append('env', env); formData.append('build_version', buildVersion); formData.append('certDeadline', certDeadline); for (var i = 0; i < archiveItem.length; i++) { formData.append('archiveItem', archiveItem[i], archiveItem[i].name); } $.ajax({ type: 'POST', url: '/api/archive/save', data: formData, processData: false, contentType: false, success: function (data) { if (data.code === 0) { Util.prompt('手动上传版本成功!'); } else { Util.prompt(data.message); } }, error: function () { Util.prompt('网络错误!'); } }); }); //列表中的下载按钮 $('.version-table').on('click', '.download-btn', function () { var $btn = $(this); var paramObj = Util.parseURL($btn.attr('data-url')); var archiveId = paramObj.archiveId; Util.doDownload('/api/archive/download?archiveId=' + archiveId); }); // //列表中的构建日志按钮 // $('.version-table').on('click', '.build-log-btn', function () { // var $btn = $(this); // var paramObj = Util.parseURL($btn.attr('data-url')); // var archiveId = paramObj.archiveId; // Util.doAjax({ // url: '/api/archive/buildlog', // method: 'POST', // data: { // archiveId: archiveId, // }, // success: function (data) { // }, // }); // }); // //列表中的变更日志按钮 // $('.version-table').on('click', '.update-log-btn', function () { // var $btn = $(this); // var paramObj = Util.parseURL($btn.attr('data-url')); // var archiveId = paramObj.archiveId; // Util.doAjax({ // url: '/api/archive/changelog', // method: 'POST', // data: { // archiveId: archiveId, // }, // success: function (data) { // }, // }); // }); //表格中条目后面的编辑描述按钮 $(".version-table").delegate(".edit-desc-btn", "click", function (e) { //填入描述信息 var e = e || window.event; var $btn = $(e.target); var $tr = $btn.parent().parent(); var id = $tr.attr('data-archiveId'); Util.doAjax({ url: '/api/archive/description', method: 'POST', data: { archiveId: id, }, success: function (data) { $('.edit-describe-mask .describe textarea').val(data.description); //显示弹窗 $('.edit-describe-mask').attr('data-id', id).removeClass('hidden'); }, }); }); //表格中条目后面的上传按钮 $(".version-table").delegate(".upload-btn", "click", function (e) { $('.upload-file-mask').removeClass('hidden'); //填入描述信息 var e = e || window.event; var $btn = $(e.target); var $tr = $btn.parent().parent(); var id = $tr.attr('data-archiveId'); archiveId = id // Util.doAjax({ // url: '/api/archive/description', // method: 'POST', // data: { // archiveId: id, // }, // success: function (data) { // $('.edit-describe-mask .describe textarea').val(data.description); // //显示弹窗 // $('.edit-describe-mask').attr('data-id', id).removeClass('hidden'); // }, // }); }); //表格中条目后面的复制链接按钮 $(".version-table").delegate(".copy-url-btn", "click", function (e) { var e = e || window.event; var $btn = $(e.target); var $tr = $btn.parent().parent(); var id = $tr.attr('data-archiveId'); var url = 'http://quality.sys.wanmei.net/index.html?projectId=' + projectId + '&copy=true&archiveId=' + id; let input = document.getElementById('copy-url-input'); input.value = url; input.select(); if (document.execCommand('copy')) { document.execCommand('copy'); } }); //上传文件弹窗里的按钮 $('.upload-file-mask .upload-btn').on('click', function () { $('#UploadFile').click(); }); //上传文件弹窗的删除文件 $('.upload-file-mask .file-list').on('click', '.delete-btn', function () { var $fileItem = $(this).parent(); var timeStamp = $fileItem.attr('data-timeStamp'); fileList[timeStamp] = null; $fileItem.remove(); }); //上传文件弹窗的关闭按钮 $('.upload-file-mask .btns-area').on('click', '.delete-btn', function (e) { $(e.target).parent().parent().parent().addClass('hidden'); $('.upload-file-mask .file-list').html(''); }); $('#UploadFile').on('change', function () { var timeStamp = +new Date(); for (var i = 0; i < this.files.length; i++) { var file = this.files[i]; fileList[timeStamp + i] = file; var $fileItem = HTMLFactory.createUploadVersionFileItem(file.name, timeStamp + i); $('.upload-file-mask .file-list').append($fileItem); } $('#UploadFile').val(''); }); //上传版本弹窗中的提交 $('.upload-file-mask .add-btn').on('click', function () { var archiveItem = []; for (var key in fileList) { if (fileList.hasOwnProperty(key)) { var file = fileList[key]; if (file) { archiveItem.push(file); } } } if (archiveItem.length === 0) { Util.prompt('上传文件不能为空!'); return; } var formData = new FormData(); formData.append('archiveId', archiveId); for (var i = 0; i < archiveItem.length; i++) { formData.append('archiveItem', archiveItem[i], archiveItem[i].name); } $.ajax({ type: 'POST', url: '/api/archive/addFiles', data: formData, processData: false, contentType: false, success: function (data) { if (data.code === 0) { Util.prompt('手动上传版本成功!'); } else { Util.prompt(data.message); } }, error: function () { Util.prompt('网络错误!'); } }); }); //编辑版本描述 $('.edit-describe-mask .save-btn').on('click', function () { console.log('编辑版本描述'); var archiveId = $('.edit-describe-mask').attr('data-id'); var desc = $('.edit-describe-mask .describe textarea').val(); if (!desc || desc.trim().length === 0) { Util.prompt('请填写描述内容!'); return; } Util.doAjax({ url: '/api/archive/description/save', method: 'POST', data: { archiveId: archiveId, description: desc }, success: function (data) { $('.edit-describe-mask').addClass('hidden'); Util.prompt('修改成功!'); }, }); }); //版本详情弹窗中的批量下载按钮 $('.version-detail-prompt').on('click', '.group-download-btn', function () { var $btn = $(this); var archiveId = $('.version-detail-mask').attr('data-archiveid'); if (!archiveId) { Util.prompt('没有可以下载的文件'); return; } var items = []; $('.version-detail-mask .handle-table .vo-checkbox.checked').each(function () { items.push($(this).parent().parent().find('.file-name').attr('title')); }); Util.doDownload('/api/archive/download?archiveId=' + archiveId + '&items=' + items); }); //版本详情弹窗中的单个下载按钮 $('.version-detail-prompt').on('click', '.handle-table .download-btn', function () { var $btn = $(this); var archiveId = $('.version-detail-mask').attr('data-archiveid'); var name = $btn.parent().parent().find('.file-name').attr('title'); var archiveId = $('.version-detail-mask').attr('data-archiveid'); Util.doDownload('/api/archive/download?archiveId=' + archiveId + '&items=' + [name]); }); //版本详情弹窗中的单个删除文件按钮 $('.version-detail-prompt').on('click', '.handle-table .delete-btn', function () { deleteVersion($(this)); }); function deleteVersion($this) { var $btn = $this; var name = $btn.parent().parent().find('.file-name').attr('title'); var archiveId = $('.version-detail-mask').attr('data-archiveid'); var deletePrompt = Util.deletePrompt(); deletePrompt.find('.msg').html('确认删除该文件?'); deletePrompt.find('.sure-btn').click(function () { deletePrompt.remove(); Util.doAjax({ url: '/api/archive/delfile', method: 'POST', data: { archiveId: archiveId, fileName: name }, success: function (data) { Util.prompt('删除成功!'); $btn.parent().parent().remove(); } }); }); } //版本详情弹窗中的构建日志按钮 // $('.version-detail-prompt').on('click', '.build-log-btn', function () { // var $btn = $(this); // var archiveId = $('.version-detail-mask').attr('data-archiveid'); // Util.doAjax({ // url: '/api/archive/buildlog', // method: 'POST', // data: { // archiveId: archiveId, // }, // success: function (data) { // }, // }); // }); // //版本详情弹窗中的变更日志按钮 // $('.version-detail-prompt').on('click', '.update-log-btn', function () { // var $btn = $(this); // var archiveId = $('.version-detail-mask').attr('data-archiveid'); // Util.doAjax({ // url: '/api/archive/changelog', // method: 'POST', // data: { // archiveId: archiveId, // }, // success: function (data) { // }, // }); // }); //获取第一页数据 getProjectList(1); /** * 获取详情数据 */ function getProjectList(pageNum) { Util.doAjax({ url: '/api/projectPage', method: 'POST', data: { projectId: projectId, pageNumber: pageNum, pageSize: 10, }, success: function (data) { //处理页码 console.log('3333333333', data) var total = +data.totalPages; if (total > 1 && $('.version-area .vo_pagination').length === 0) { var pagination = new Virgo.pagination({ node: $(".version-area .page-area"), isNeedInput: false, callback: function (cur) { getProjectList(cur); } }); pagination.trigger(1, total); } //填充基本信息 $('.project-article .title').html(data.projectName); $('.project-article .kms-btn').attr('href', data.kmsUrl); $('.project-article .jira-btn').attr('href', data.jiraUrl); // $('.project-article .setup-btn').attr('href', data.projectSet); $('.project-article .desc .value').html(Util.encodeHTML(data.projectDesc || '')); $('.project-article .leader .value').html(Util.encodeHTML(data.auth || '')); $('.project-article .create-time .value').html(Util.formatTime(data.createTime || '')); $('.project-article .version .value').html(data.counts || 0); //填充表格 var projectList = data.projectList; var projectListHtmlStr = ''; if (!projectList || !projectList.length || projectList.length === 0) { return; } for (var i = 0; i < projectList.length; i++) { var project = projectList[i]; projectListHtmlStr += HTMLFactory.createProjectItem(project); } $('.version-table tbody').html(projectListHtmlStr); $('.version-table a[data-node="file-downloader"]').fileDownloader(); }, }); } });