Авто-сопоставление: Продуктовые предложения и Абонент
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 container = document.getElementById('column-mappings');
|
||||||
const mainFields = Object.keys(mainData[0] || {});
|
const mainFields = Object.keys(mainData[0] || {});
|
||||||
const templateFields = Object.keys(templateData[0] || {});
|
const templateFields = Object.keys(templateData[0] || {});
|
||||||
@ -171,13 +171,15 @@ function addMappingRow() {
|
|||||||
// Заполняем столбец шаблона
|
// Заполняем столбец шаблона
|
||||||
let templateOptions = '';
|
let templateOptions = '';
|
||||||
templateFields.forEach(field => {
|
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 = '';
|
let mainOptions = '';
|
||||||
mainFields.forEach(field => {
|
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 = `
|
row.innerHTML = `
|
||||||
@ -201,6 +203,30 @@ function addMappingRow() {
|
|||||||
processMapping();
|
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) {
|
function removeMappingRow(rowId) {
|
||||||
const row = document.getElementById(rowId);
|
const row = document.getElementById(rowId);
|
||||||
if (row) {
|
if (row) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user