更新带货视频工作流接口和页面

This commit is contained in:
super
2026-07-09 00:27:49 +08:00
parent 0ecf5cd45a
commit aab4ce942c
51 changed files with 4777 additions and 820 deletions

View File

@@ -3583,8 +3583,6 @@
var changelog = (v.changelog || '-').substring(0, 50);
if ((v.changelog || '').length > 50) changelog += '...';
var releasedAt = v.releasedAt || '-';
var downloadUrl = v.downloadUrl || '';
var actions = '';
if (v.status === 'DRAFT') {
actions += '<button class="btn btn-sm" onclick="releaseVersion(\'' + v.version + '\')">发布</button> ';
@@ -3592,8 +3590,8 @@
if (v.status === 'RELEASED' && !v.isLatest) {
actions += '<button class="btn btn-sm" onclick="setLatestVersion(\'' + v.version + '\')">设为最新</button> ';
}
if (downloadUrl) {
actions += '<a href="' + downloadUrl + '" class="btn btn-sm" download>下载</a> ';
if (v.status === 'RELEASED') {
actions += '<button class="btn btn-sm" onclick="downloadDigitalHumanVersion(\'' + encodeURIComponent(v.version || '') + '\')">下载</button> ';
}
if (!v.isLatest) {
actions += '<button class="btn btn-sm btn-danger" onclick="deleteVersion(\'' + v.version + '\')">删除</button>';
@@ -3629,7 +3627,39 @@
document.getElementById('digitalHumanVersionListBody').innerHTML = '<tr><td colspan="8" class="empty-tip">请求失败: ' + (err.message || '') + '</td></tr>';
});
}
function downloadDigitalHumanVersion(encodedVersion) {
var version = decodeURIComponent(encodedVersion || '');
if (!version) {
alert('版本号为空');
return;
}
fetch('/api/admin/digital-human-versions/' + encodeURIComponent(version) + '/download-url')
.then(function (r) { return r.json(); })
.then(function (res) {
if (!res.success) {
throw new Error(res.message || res.error || '获取下载链接失败');
}
var data = res.data || {};
var downloadUrl = typeof data === 'string' ? data : (data.downloadUrl || data.url || '');
if (!downloadUrl) {
throw new Error('Java 后端未返回下载链接');
}
var a = document.createElement('a');
a.href = downloadUrl;
a.download = 'ShuFuDigitalHuman-' + version + '.zip';
a.target = '_blank';
a.rel = 'noopener';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
})
.catch(function (err) {
alert(err.message || '下载失败');
});
}
window.loadDigitalHumanVersions = loadDigitalHumanVersions;
window.downloadDigitalHumanVersion = downloadDigitalHumanVersion;
document.getElementById('btnUploadVersion').onclick = function () {
var version = (document.getElementById('versionNumber').value || '').trim();
@@ -3720,29 +3750,54 @@
msgEl.textContent = '上传中,请稍候...';
msgEl.classList.remove('err', 'ok');
fetch('/api/admin/digital-human-versions/upload', {
method: 'POST',
body: formData
})
.then(function (r) { return r.json(); })
.then(function (res) {
if (res.success && res.data) {
msgEl.textContent = '上传成功!版本:' + res.data.version + '(状态:草稿,请在列表中点击"发布"按钮)';
msgEl.classList.add('ok');
document.getElementById('digitalHumanVersionNumber').value = '';
document.getElementById('digitalHumanMinClientVersion').value = '';
document.getElementById('digitalHumanVersionChangelog').value = '';
fileInput.value = '';
loadDigitalHumanVersions();
} else {
msgEl.textContent = res.message || res.error || '上传失败';
msgEl.classList.add('err');
}
})
.catch(function (err) {
msgEl.textContent = '请求失败: ' + (err.message || '');
var uploadUrl = window.DIGITAL_HUMAN_JAVA_UPLOAD_URL;
if (!uploadUrl) {
uploadUrl = '/api/admin/digital-human-versions/upload';
}
var xhr = new XMLHttpRequest();
xhr.open('POST', uploadUrl, true);
xhr.timeout = 1800000;
xhr.upload.onprogress = function (event) {
if (event.lengthComputable) {
var percent = Math.floor((event.loaded / event.total) * 100);
msgEl.textContent = '正在上传:' + percent + '%';
} else {
msgEl.textContent = '正在上传,请稍候...';
}
};
xhr.onload = function () {
var res = null;
try {
res = JSON.parse(xhr.responseText || '{}');
} catch (e) {
msgEl.textContent = '上传失败Java 返回不是 JSON';
msgEl.classList.add('err');
});
return;
}
if (xhr.status >= 200 && xhr.status < 300 && res.success && res.data) {
msgEl.textContent = '上传成功!版本:' + res.data.version + '(状态:草稿,请在列表中点击"发布"按钮)';
msgEl.classList.add('ok');
document.getElementById('digitalHumanVersionNumber').value = '';
document.getElementById('digitalHumanMinClientVersion').value = '';
document.getElementById('digitalHumanVersionChangelog').value = '';
fileInput.value = '';
loadDigitalHumanVersions();
} else {
msgEl.textContent = (res && (res.message || res.error)) || ('上传失败HTTP ' + xhr.status);
msgEl.classList.add('err');
}
};
xhr.onerror = function () {
msgEl.textContent = '请求失败:无法连接上传服务 ' + uploadUrl;
msgEl.classList.add('err');
};
xhr.ontimeout = function () {
msgEl.textContent = '上传超时,请检查 Java 服务或网关超时配置';
msgEl.classList.add('err');
};
xhr.send(formData);
};
window.releaseVersion = function(version) {