diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index 192d64d..e489c50 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -76,6 +76,22 @@ Vue.nextTick(function () { console.timeEnd('Chargement de VueJS AVANT Ajax'); }); +function exporterCSV(json, delimitercsv, name) { + let csv = ''; + json.forEach((l) => { + csv += l.join(delimitercsv); + csv += '\r\n'; + }); + //Download the file as CSV + let link = document.createElement('a'); + link.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(csv)); + link.setAttribute('download', name); + link.style.visibility = 'hidden'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); +} + let monTableau = { props: { tparpage: { @@ -91,6 +107,18 @@ let monTableau = { objet: { type: String, }, + champcsv: { + type: String, + default: 'search', + }, + delimitercsv: { + type: String, + default: ',', + }, + namecsv: { + type: String, + default: 'export.csv', + }, }, data: function () { return { @@ -252,13 +280,14 @@ let monTableau = { let $header = []; let $tableau = []; Object.keys(this.header).forEach((k) => $header.push(k)); - $tableau = this.tableau.reduce(function (acc, ligne, i) { + $tableau = this.tableau.reduce((acc, ligne) => { let $uneLigne = []; - Object.values(ligne.html).forEach((l) => $uneLigne.push(l)); + Object.values(ligne[this.champcsv]).forEach((l) => $uneLigne.push(l)); return [...acc, [...$uneLigne]]; }, []); $csv = [[...$header], ...$tableau]; - console.log($csv); + //console.log($csv); + exporterCSV($csv, this.delimitercsv, this.namecsv); }, }, template: ` diff --git a/js/gamutable.js b/js/gamutable.js index 60811f3..11cc76c 100644 --- a/js/gamutable.js +++ b/js/gamutable.js @@ -100,6 +100,23 @@ console.time('Chargement de VueJs APRES Ajax'); Vue.nextTick(function () { console.timeEnd('Chargement de VueJS AVANT Ajax'); }); + +function exporterCSV(json, delimitercsv, name) { + var csv = ''; + json.forEach(function (l) { + csv += l.join(delimitercsv); + csv += '\r\n'; + }); //Download the file as CSV + + var link = document.createElement('a'); + link.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(csv)); + link.setAttribute('download', name); + link.style.visibility = 'hidden'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); +} + var monTableau = { props: { tparpage: { @@ -114,6 +131,18 @@ var monTableau = { }, objet: { type: String + }, + champcsv: { + type: String, + default: 'search' + }, + delimitercsv: { + type: String, + default: ',' + }, + namecsv: { + type: String, + default: 'export.csv' } }, data: function data() { @@ -282,6 +311,8 @@ var monTableau = { } }, exportCSV: function exportCSV() { + var _this3 = this; + var filtrage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var $csv = []; var $header = []; @@ -289,15 +320,16 @@ var monTableau = { Object.keys(this.header).forEach(function (k) { return $header.push(k); }); - $tableau = this.tableau.reduce(function (acc, ligne, i) { + $tableau = this.tableau.reduce(function (acc, ligne) { var $uneLigne = []; - Object.values(ligne.html).forEach(function (l) { + Object.values(ligne[_this3.champcsv]).forEach(function (l) { return $uneLigne.push(l); }); return [].concat(_toConsumableArray(acc), [[].concat($uneLigne)]); }, []); - $csv = [[].concat($header)].concat(_toConsumableArray($tableau)); - console.log($csv); + $csv = [[].concat($header)].concat(_toConsumableArray($tableau)); //console.log($csv); + + exporterCSV($csv, this.delimitercsv, this.namecsv); } }, template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tBase de donn\xE9es synchronis\xE9e\n\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{table.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
"