前端区分任务是否提交
This commit is contained in:
@@ -548,21 +548,8 @@
|
||||
|
||||
// --- Utility Functions ---
|
||||
const generateTaskId = () => Math.random().toString(36).substring(2, 10);
|
||||
const saveToStorage = (key, value) => {
|
||||
try {
|
||||
localStorage.setItem(key, value);
|
||||
} catch (e) {
|
||||
console.warn("Save to storage failed:", e);
|
||||
}
|
||||
};
|
||||
const getFromStorage = (key, defaultValue = '') => {
|
||||
try {
|
||||
return localStorage.getItem(key) || defaultValue;
|
||||
} catch (e) {
|
||||
console.warn("Read from storage failed:", e);
|
||||
return defaultValue;
|
||||
}
|
||||
};
|
||||
const saveToStorage = (key, value) => { try { localStorage.setItem(key, value); } catch (e) { console.warn("Save to storage failed:", e); } };
|
||||
const getFromStorage = (key, defaultValue = '') => { try { return localStorage.getItem(key) || defaultValue; } catch (e) { console.warn("Read from storage failed:", e); return defaultValue; } };
|
||||
|
||||
function fileToBase64(file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -680,6 +667,7 @@
|
||||
file: null,
|
||||
htmlUrl: null,
|
||||
fileNameStem: null,
|
||||
isSubmitted: false // MODIFICATION 1: Add isSubmitted flag
|
||||
},
|
||||
intervals: {
|
||||
log: null,
|
||||
@@ -803,6 +791,8 @@
|
||||
try {
|
||||
const fileContentBase64 = await fileToBase64(state.file);
|
||||
|
||||
state.isSubmitted = true; // MODIFICATION 2: Mark task as submitted before sending request
|
||||
|
||||
const payload = {
|
||||
task_id: taskId,
|
||||
base_url: baseUrlInput.value,
|
||||
@@ -912,8 +902,9 @@
|
||||
try {
|
||||
const response = await fetch(`/service/status/${taskId}`);
|
||||
if (!response.ok) {
|
||||
// If 404 on restore, it means the task is old and gone from server. Remove it.
|
||||
if (response.status === 404 && isRestore) {
|
||||
// MODIFICATION 3: Only remove task if it was already submitted
|
||||
// An unsubmitted task will have `state.isSubmitted = false`, and will not be removed.
|
||||
if (response.status === 404 && isRestore && state.isSubmitted) {
|
||||
removeTask(taskId);
|
||||
}
|
||||
return;
|
||||
@@ -1021,9 +1012,7 @@
|
||||
try {
|
||||
translatedPreviewFrame.contentWindow.focus();
|
||||
translatedPreviewFrame.contentWindow.print();
|
||||
} catch (e) {
|
||||
alert('打印失败,请使用浏览器打印功能。');
|
||||
}
|
||||
} catch(e) { alert('打印失败,请使用浏览器打印功能。'); }
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1157,9 +1146,7 @@
|
||||
platformSelect.addEventListener('change', updatePlatformUI);
|
||||
apikeyInput.addEventListener('input', e => saveToStorage(`translator_platform_${platformSelect.value}_apikey`, e.target.value));
|
||||
modelInput.addEventListener('input', e => saveToStorage(`translator_platform_${platformSelect.value}_model_id`, e.target.value));
|
||||
baseUrlInput.addEventListener('input', e => {
|
||||
if (platformSelect.value === 'custom') saveToStorage('translator_platform_custom_base_url', e.target.value);
|
||||
});
|
||||
baseUrlInput.addEventListener('input', e => { if (platformSelect.value === 'custom') saveToStorage('translator_platform_custom_base_url', e.target.value); });
|
||||
convertEnginSelect.addEventListener('change', updateConvertEnginUI);
|
||||
mineruTokenInput.addEventListener('input', e => saveToStorage('translator_mineru_token', e.target.value));
|
||||
toLangSelect.addEventListener('change', e => saveToStorage('translator_to_lang', e.target.value));
|
||||
|
||||
Reference in New Issue
Block a user