v1.0.178: addZipFile — дубликаты из ZIP теперь перезаписываются (как addRegularFile). Унифицировано поведение: файл из архива заменяет существующий с тем же именем.
This commit is contained in:
+16
-3
@@ -346,14 +346,27 @@ async function addZipFile(file) {
|
|||||||
doc_id: zf.doc_id, uploaded: true,
|
doc_id: zf.doc_id, uploaded: true,
|
||||||
status: { kind: 'parsing' }
|
status: { kind: 'parsing' }
|
||||||
};
|
};
|
||||||
state.files.push(zEntry);
|
|
||||||
var zIdx = state.files.length - 1;
|
// Проверить дубликат по имени
|
||||||
|
var dup = -1;
|
||||||
|
for (var dj = 0; dj < state.files.length; dj++) {
|
||||||
|
if (state.files[dj].name === zf.filename) { dup = dj; break; }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dup >= 0) {
|
||||||
|
// Заменить существующий (как addRegularFile — перезапись)
|
||||||
|
state.files[dup] = zEntry;
|
||||||
|
} else {
|
||||||
|
state.files.push(zEntry);
|
||||||
|
dup = state.files.length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Если это первый файл — запомнить contract_id
|
// Если это первый файл — запомнить contract_id
|
||||||
if (!state.contractId && zf.contract_id) state.contractId = zf.contract_id;
|
if (!state.contractId && zf.contract_id) state.contractId = zf.contract_id;
|
||||||
render(state);
|
render(state);
|
||||||
|
|
||||||
// Применить результат парсинга от бэкенда (clean function)
|
// Применить результат парсинга от бэкенда (clean function)
|
||||||
applyParseResult(state.files[zIdx], zf.parsed);
|
applyParseResult(state.files[dup], zf.parsed);
|
||||||
render(state);
|
render(state);
|
||||||
}
|
}
|
||||||
} catch(ze) {
|
} catch(ze) {
|
||||||
|
|||||||
Reference in New Issue
Block a user