feat: suite refactoring avec amélioration des perfs + suite gestion

chargement ajax via maj
This commit is contained in:
Christophe 2023-01-12 22:25:58 +01:00
parent 30afd04c90
commit aa7019fc4c

View file

@ -450,7 +450,6 @@ let triProps = ref([]);
let selectTr = ref([]);
let champ_search = ref("html");
let chargement = ref(true);
let nameLocalStorage = ref(calculer_nameLocalStorage());
let quelleVue = ref(props.vueblocdefaut);
let vuebloc = ref(false);
let model = ref([]);
@ -459,11 +458,13 @@ let searchInputHead = ref("");
let searchInputVal = ref("");
let loadingVueSelect = ref(true);
let ajaxCrayons = ref(false);
let maj = ref(0);
let maj = ref("");
let nameLocalStorage = calculer_nameLocalStorage();
onMounted(() => {
localforage.setDriver(localforage[props.stockage.toUpperCase()]);
chargerJson();
chargerJson("maj");
if (props.urlvuebloc) {
fetch(props.urlvuebloc)
.then((response) => response.text())
@ -577,9 +578,7 @@ watch(parPageSelect, (e) => {
});
watch(table, () => {
saveHeader();
let $table = [];
$table = table.value;
localforage.setItem(nameLocalStorage.value, JSON.stringify($table));
localforage.setItem(nameLocalStorage, JSON.stringify(table.value));
});
watch(tableau, () => {
@ -617,7 +616,7 @@ watch(filtreColSelected, () => {
}
if (!ajaxCrayons) {
localStorage.setItem(
"filtreselect_" + nameLocalStorage.value,
"filtreselect_" + nameLocalStorage,
JSON.stringify(ObfiltreSelect)
);
}
@ -633,7 +632,7 @@ function gererConfig(config) {
crayons.value = config.crayons;
}
if (config.maj !== undefined) {
maj.value = config.maj?.lastMAJ;
maj.value = config.maj;
}
if (config.classes !== undefined) {
classes.value = config.classes;
@ -654,7 +653,7 @@ function gererConfig(config) {
return filtreCol;
}
function gererData(filtreColRecup, data, id = null) {
function gererData(data, id = null) {
if (parseInt(id) > 0) {
if (data.length > 0) {
let i = trouver_index(table.value, id);
@ -663,12 +662,8 @@ function gererData(filtreColRecup, data, id = null) {
let i = trouver_index(table.value, id);
table.value.splice(i, 1);
}
localforage.setItem(
nameLocalStorage.value,
JSON.stringify(table.value)
);
} else if (id === "maj") {
console.log("table.value = ", table.value);
if (data.length) {
if (data[0] && data[0].search) {
champ_search.value = "search";
}
@ -678,16 +673,17 @@ function gererData(filtreColRecup, data, id = null) {
table.value[i] = data[index];
});
}
localforage.setItem(
nameLocalStorage.value,
JSON.stringify(table.value)
);
}
} else {
table.value = data;
if (data[0] && data[0].search) {
champ_search.value = "search";
}
}
localforage.setItem(nameLocalStorage, JSON.stringify(table.value));
}
function filtrerCol(filtreColRecup) {
if (filtreColRecup !== undefined) {
filtreColType.value = filtreColRecup;
filtreCol.value = [];
@ -713,18 +709,17 @@ function chargerJson(id) {
let url = props.apiuri;
if (parseInt(id) > 0) {
url += "&id=" + id;
} else if (id === "maj") {
url += "&maj=" + maj.value;
} else {
let config = localStorage.getItem("header_" + nameLocalStorage.value);
let config = localStorage.getItem("header_" + nameLocalStorage);
config = recupJson(config);
if (config && config.header !== undefined) {
let filtreColRecup = gererConfig(config);
localforage
.getItem(nameLocalStorage.value)
.getItem(nameLocalStorage)
.then(function (data) {
data = recupJson(data);
gererData(filtreColRecup, data, id);
let filtreColRecup = gererConfig(config);
table.value = data;
filtrerCol(filtreColRecup);
if (props.nomblocajaxreload) {
ajaxReload(props.nomblocajaxreload);
}
@ -733,18 +728,27 @@ function chargerJson(id) {
console.log(err);
});
}
console.log("config = ", config);
if (id === "maj") {
if (maj.value) {
url += "&maj=" + maj.value;
} else if (config && config.maj) {
url += "&maj=" + config.maj;
}
}
}
fetch(url)
.then((response) => response.json())
.then((data) => {
let config = data.shift();
let filtreColRecup = gererConfig(config);
gererData(filtreColRecup, data, id);
gererData(data, id);
filtrerCol(filtreColRecup);
nextTick(() => {
chargement.value = false;
let filtreselectLS = localStorage.getItem(
"filtreselect_" + nameLocalStorage.value
"filtreselect_" + nameLocalStorage
);
let Tfiltres = [];
if (props.filtreselect) {
@ -752,7 +756,7 @@ function chargerJson(id) {
decodeURIComponent(props.filtreselect)
);
localStorage.setItem(
"filtreselect_" + nameLocalStorage.value,
"filtreselect_" + nameLocalStorage,
JSON.stringify(Tfiltres)
);
} else if (filtreselectLS) {
@ -808,10 +812,7 @@ function saveHeader() {
ordreCol: ordreCol.value,
maj: maj.value,
};
localStorage.setItem(
"header_" + nameLocalStorage.value,
JSON.stringify($header)
);
localStorage.setItem("header_" + nameLocalStorage, JSON.stringify($header));
}
function deleteInputSearch(head) {
loadingVueSelect.value = false;
@ -964,7 +965,7 @@ function checkboxValider(head, url) {
data: { data: Tcheckbox.value[head] },
type: "POST",
}).done(function () {
chargerJson();
chargerJson("maj");
});
} else {
const Tcheck = encodeURIComponent(
@ -974,7 +975,7 @@ function checkboxValider(head, url) {
url += "&var_zajax=content";
const data = {};
data.onClose = () => {
chargerJson();
chargerJson("maj");
};
$.modalbox(url, data);
}