| | |
| | | apiBaseUrl: "http://localhost:9098" |
| | | }, window.VISITOR_LOGIN_CONFIG || {}); |
| | | |
| | | var MAX_PACKAGE_SIZE = 60 * 1024 * 1024; |
| | | var MAX_PACKAGE_SIZE = 200 * 1024 * 1024; |
| | | var state = { |
| | | pageNum: 1, |
| | | pageSize: 20, |
| | |
| | | function bindPageActions() { |
| | | var uploadDrop = document.getElementById("uploadDrop"); |
| | | var packageFile = document.getElementById("packageFile"); |
| | | var versionNoInput = document.getElementById("versionNo"); |
| | | |
| | | document.getElementById("addVersionButton").addEventListener("click", openAddModal); |
| | | document.getElementById("versionForm").addEventListener("submit", function (event) { |
| | |
| | | return; |
| | | } |
| | | saveVersion(); |
| | | }); |
| | | |
| | | versionNoInput.addEventListener("input", function () { |
| | | versionNoInput.value = versionNoInput.value.replace(/[^\d.]/g, "").replace(/\.{2,}/g, "."); |
| | | }); |
| | | |
| | | document.querySelectorAll("[data-close='version']").forEach(function (button) { |
| | |
| | | ' <td>' + escapeHtml(item.versionNo || "-") + '</td>', |
| | | ' <td class="version-content-cell">', |
| | | ' <span class="version-content-text">' + escapeHtml(item.updateContent || "-") + '</span>', |
| | | ' <div class="content-preview">', |
| | | ' <div class="preview-index">' + rowIndex + '</div>', |
| | | ' <div class="preview-content">' + escapeHtml(item.updateContent || "-") + '</div>', |
| | | ' <div class="preview-foot">' + escapeHtml(item.packageName || "安装包") + ' ' + escapeHtml(shortDate(item.createTime)) + '</div>', |
| | | ' </div>', |
| | | ' </td>', |
| | | ' <td>' + escapeHtml(item.createTime || "-") + '</td>', |
| | | ' <td><div class="table-actions">', |
| | |
| | | |
| | | function saveVersion() { |
| | | var saveButton = document.getElementById("saveVersionButton"); |
| | | var versionNo = normalizeVersionNo(document.getElementById("versionNo").value); |
| | | var versionNumber = document.getElementById("versionNo").value.trim(); |
| | | var updateContent = document.getElementById("updateContent").value.trim(); |
| | | |
| | | if (!versionNo) { |
| | | if (!versionNumber) { |
| | | AppMessage.error("操作失败:请输入版本号"); |
| | | return; |
| | | } |
| | | if (!/^\d+(\.\d+)*$/.test(versionNumber)) { |
| | | AppMessage.error("操作失败:版本号格式不正确,请输入数字或使用小数点分隔"); |
| | | return; |
| | | } |
| | | if (!updateContent) { |
| | |
| | | AppMessage.error("操作失败:请上传安装包"); |
| | | return; |
| | | } |
| | | if (isPackageTooLarge(state.packageFile)) { |
| | | AppMessage.error("操作失败:安装包大小必须小于200M"); |
| | | return; |
| | | } |
| | | |
| | | saveButton.disabled = true; |
| | | uploadPackage().then(function (fileInfo) { |
| | | return apiRequest("/system/version/update/add", { |
| | | method: "POST", |
| | | body: JSON.stringify({ |
| | | versionNo: versionNo, |
| | | versionNo: normalizeVersionNo(versionNumber), |
| | | updateContent: updateContent, |
| | | packageUrl: fileInfo.url || fileInfo.fileName || "", |
| | | packageName: fileInfo.originalFilename || fileInfo.newFileName || state.packageFile.name, |
| | |
| | | } |
| | | |
| | | function uploadPackage() { |
| | | if (isPackageTooLarge(state.packageFile)) { |
| | | return Promise.reject(new Error("安装包大小必须小于200M")); |
| | | } |
| | | var formData = new FormData(); |
| | | formData.append("file", state.packageFile); |
| | | return apiRequest("/common/upload", { |
| | | return apiRequest("/system/version/update/upload", { |
| | | method: "POST", |
| | | body: formData, |
| | | skipJson: true |
| | |
| | | updatePackageTip(); |
| | | return; |
| | | } |
| | | if (file.size > MAX_PACKAGE_SIZE) { |
| | | if (isPackageTooLarge(file)) { |
| | | state.packageFile = null; |
| | | document.getElementById("packageFile").value = ""; |
| | | updatePackageTip(); |
| | | AppMessage.error("操作失败:安装包大小不能超过60M"); |
| | | AppMessage.error("操作失败:安装包大小必须小于200M"); |
| | | return; |
| | | } |
| | | state.packageFile = file; |
| | | updatePackageTip(file.name); |
| | | } |
| | | |
| | | function isPackageTooLarge(file) { |
| | | return !!file && file.size >= MAX_PACKAGE_SIZE; |
| | | } |
| | | |
| | | function updatePackageTip(fileName) { |
| | | var uploadDrop = document.getElementById("uploadDrop"); |
| | | var text = fileName || "请上传安装包文件,大小在60M以内"; |
| | | var text = fileName || "请上传安装包文件,大小须小于200M"; |
| | | document.getElementById("packageTip").textContent = text; |
| | | uploadDrop.classList.toggle("has-file", !!fileName); |
| | | uploadDrop.querySelector("span").innerHTML = fileName |