Авто-сопоставление: Продуктовые предложения и Абонент
This commit is contained in:
parent
a875b8ab7b
commit
621bb4b386
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user