diff --git a/ui/src/pages/map.vue b/ui/src/pages/map.vue index 3300789..8419efb 100644 --- a/ui/src/pages/map.vue +++ b/ui/src/pages/map.vue @@ -70,7 +70,7 @@ diff --git a/ui/src/pages/tmpl.vue b/ui/src/pages/tmpl.vue index 9cbf4d7..265d84a 100644 --- a/ui/src/pages/tmpl.vue +++ b/ui/src/pages/tmpl.vue @@ -89,7 +89,41 @@ - Kolon No + + + Yeni birleşik alan ekle + + + + + + Kolon No + Alan Kontrol Fişte Göster @@ -98,8 +132,21 @@ - - {{ r.colNro }} + + + + + {{ r.colNro }} + + {{ r.fieldName }} { - console.log(event.target.result) - }); - reader.readAsDataURL(ld.xlsFile); - - */ reader.onload = function (e) { const uin = new Uint8Array(e.target.result) @@ -413,6 +455,9 @@ const processXLS = function () { colType: '', ba: 'B', showInSlip: false, + combinedFields: [], + combinedFieldsNro: [], + formula: '', }) } } @@ -429,10 +474,13 @@ const processXLS = function () { tmpl.alanlar.push({ colNro: ndx, - fieldName: name, - showInSlip: false, + fieldName: name.trim(), colType: '', ba: 'B', + showInSlip: false, + combinedFields: [], + combinedFieldsNro: [], + formula: '', }) lastCol = ndx @@ -455,6 +503,9 @@ const fillCriteria = function () { tmpl.kriterler[f.fieldName] = { colNro: f.colNro, + combinedFields: [...(f.combinedFields || [])], + combinedFieldsNro: [...(f.combinedFieldsNro || [])], + valFields: [], /* [ @@ -478,10 +529,29 @@ const fillCriteria = function () { const kval = row[tmpl.kontrolKolonu] if ((kval !== null) && (kval !== undefined) && (kval !== '')) { Object.keys(tmpl.kriterler).forEach(k => { - const kriterVal = row[tmpl.kriterler[k].colNro] + + let kriterVal = '' + if (tmpl.kriterler[k].colNro >= 0) { + // sabit kriter alanı + kriterVal = row[tmpl.kriterler[k].colNro] + } else { + // birleştirilmiş / combine kriter alanı + const tmpValues = [] + tmpl.kriterler[k].combinedFieldsNro.forEach(cf => { + let tmpKriterVal = row[cf] + if ((tmpKriterVal === null ) || (tmpKriterVal === undefined)) { + tmpKriterVal = '' + } + tmpValues.push(tmpKriterVal) + }) + + kriterVal = tmpValues.join(' ').trim() + } + if ((kriterVal !== null) && (kriterVal !== undefined) && (kriterVal !== '')) { tmpl.kriterler[k].mappings[kriterVal] = {} } + }) } } @@ -512,6 +582,46 @@ const delMapping = function (k, valField) { }) } +const fieldOptions = computed(() => { + const ls = tmpl.alanlar.filter(f => {return f.colNro >= 0}) + const opts = [] + ls.forEach(f => { + opts.push({ colNro: f.colNro, fieldName: f.fieldName }) + }) + return opts +}) + +const addCombinedField = function () { + ld.isDirty = true + + const combinedFields = [] + const combinedFieldsNro = [] + + ld.combinedFields.forEach(f => { + combinedFields.push(f.fieldName) + combinedFieldsNro.push(f.colNro) + }) + const fName = combinedFields.join(' : ') + + tmpl.alanlar.push({ + colNro: -1, + fieldName: fName, + colType: '', + ba: 'B', + showInSlip: false, + combinedFields: [...combinedFields], + combinedFieldsNro: [...combinedFieldsNro], + formula: '', + }) + + ld.combinedFields.splice(0) +} + +const delCombinedField = function (ndx) { + ld.isDirty = true + tmpl.alanlar.splice(ndx, 1) +} +