Авто-сопоставление: Продуктовые предложения и Абонент

This commit is contained in:
Nurs 2026-09-17 04:07:27 +00:00
parent a875b8ab7b
commit 621bb4b386

View File

@ -153,11 +153,11 @@ function populateFieldSelectors() {
}
});
// Создаём первую строку сопоставления
addMappingRow();
// Автоматически создаём сопоставления для "Продуктовые предложения" и "Абонент"
setupDefaultMappings();
}
function addMappingRow() {
function addMappingRow(templateField = '', mainField = '') {
const container = document.getElementById('column-mappings');
const mainFields = Object.keys(mainData[0] || {});
const templateFields = Object.keys(templateData[0] || {});
@ -171,13 +171,15 @@ function addMappingRow() {
// Заполняем столбец шаблона
let templateOptions = '';
templateFields.forEach(field => {
templateOptions += '<option value="' + escapeHtml(field) + '">' + escapeHtml(field) + '</option>';
const selected = field === templateField ? 'selected' : '';
templateOptions += '<option value="' + escapeHtml(field) + '" ' + selected + '>' + escapeHtml(field) + '</option>';
});
// Заполняем столбец основного файла
let mainOptions = '';
mainFields.forEach(field => {
mainOptions += '<option value="' + escapeHtml(field) + '">' + escapeHtml(field) + '</option>';
const selected = field === mainField ? 'selected' : '';
mainOptions += '<option value="' + escapeHtml(field) + '" ' + selected + '>' + escapeHtml(field) + '</option>';
});
row.innerHTML = `
@ -201,6 +203,30 @@ function addMappingRow() {
processMapping();
}
function setupDefaultMappings() {
// Автоматически создаём сопоставления для конкретных полей
const mainFields = Object.keys(mainData[0] || {});
const templateFields = Object.keys(templateData[0] || {});
// Сопоставление 1: "Продуктовые предложения" (шаблон) <- "Продуктовое предложения" (основной)
const templateProductField = templateFields.find(f => f.toLowerCase().includes('продуктов'));
const mainProductField = mainFields.find(f => f.toLowerCase().includes('продуктов'));
if (templateProductField && mainProductField) {
addMappingRow(templateProductField, mainProductField);
console.log('Добавлено сопоставление:', templateProductField, '<-', mainProductField);
}
// Сопоставление 2: "Абонент" (шаблон) <- "Абонент" (основной)
const templateAbonentField = templateFields.find(f => f.toLowerCase().includes('абонент'));
const mainAbonentField = mainFields.find(f => f.toLowerCase().includes('абонент'));
if (templateAbonentField && mainAbonentField) {
addMappingRow(templateAbonentField, mainAbonentField);
console.log('Добавлено сопоставление:', templateAbonentField, '<-', mainAbonentField);
}
}
function removeMappingRow(rowId) {
const row = document.getElementById(rowId);
if (row) {