platform-project
Version:
平台项目
593 lines (533 loc) • 22.8 kB
JavaScript
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 + '©=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();
},
});
}
});