implementovane ulozenie do backend presuvanie reportov v dashboad

This commit is contained in:
2025-05-04 16:32:33 +02:00
parent c82df663df
commit eab71c2c4d
4 changed files with 120 additions and 17 deletions

View File

@ -144,26 +144,73 @@ export default {
},
methods: {
loadData() {
backend.getAllGrouped(Array(0,1,2,3)).then((all_grouped) => {
backend.getAllGrouped(Array(0, 1, 2, 3)).then((all_grouped) => {
this.itemsUncategorized = all_grouped[0];
this.itemsWaiting = all_grouped[1];
this.itemsInProgress = all_grouped[2];
this.itemsDone = all_grouped[3];
})
});
},
getDataByStatus(report_status) {
let for_reorder = null;
switch (report_status) {
case 0:
for_reorder = this.itemsUncategorized;
break;
case 1:
for_reorder = this.itemsWaiting;
break;
case 2:
for_reorder = this.itemsInProgress;
break;
case 3:
for_reorder = this.itemsDone;
break;
}
return for_reorder;
},
searchStatusByReportId(report_id) {
for (let i = 0; i < this.itemsUncategorized.length; i++) {
if (this.itemsUncategorized[i].report_id === report_id) return 0;
}
for (let i = 0; i < this.itemsWaiting.length; i++) {
if (this.itemsWaiting[i].report_id === report_id) return 1;
}
for (let i = 0; i < this.itemsInProgress.length; i++) {
if (this.itemsInProgress[i].report_id === report_id) return 2;
}
for (let i = 0; i < this.itemsDone.length; i++) {
if (this.itemsDone[i].report_id === report_id) return 3;
}
},
onDragChange(event) {
// console.log("Presunuté:", event);
// Napr. uložiť poradie do API
// console.log("onDragChange", event);
if (event.added) {
console.log("Pridané:", event.added.element);
// console.log("Pridané:", event.added.element);
let report_id = event.added.element.report_id;
let new_reprort_status = this.searchStatusByReportId(report_id);
let for_reorder = this.getDataByStatus(new_reprort_status);
backend.updateStatus(report_id, new_reprort_status).then(() => {
this.updateOrdnum(for_reorder);
});
}
if (event.moved) {
console.log("Presunuté:", event.moved.element);
// console.log("Presunuté:", event.moved.element);
let report_status = event.moved.element.report_status;
let for_reorder = this.getDataByStatus(report_status);
this.updateOrdnum(for_reorder);
}
if (event.removed) {
console.log("Odstranené:", event.removed.element);
// console.log("Odstranené:", event.removed.element);
}
},
updateOrdnum(for_reorder) {
let new_ordnums = {};
for (let i = 0; i < for_reorder.length; i++) {
new_ordnums[for_reorder[i].report_id] = i;
}
backend.updateOrdnum(new_ordnums);
},
vypisData() {
console.log(this.itemsUncategorized);
console.log(this.itemsWaiting);