From 45b53ab6ea7c93b48f745517b7de0d45459a02b4 Mon Sep 17 00:00:00 2001
From: elsiosanchez <45974454+elsiosanchez@users.noreply.github.com>
Date: Mon, 20 Jan 2020 16:08:55 -0400
Subject: [PATCH] Add Export in Zip (#228)
* add download in zip
* Delete Console
---
src/components/ADempiere/DataTable/index.vue | 14 ++++++++++++-
.../ADempiere/DataTable/menu/index.vue | 5 +++++
.../ADempiere/DataTable/menu/mixinMenu.js | 20 +++++++++++++++++-
src/lang/ADempiere/en.js | 1 +
src/lang/ADempiere/es.js | 1 +
src/utils/ADempiere/exportUtil.js | 21 +++++++++++++++++++
6 files changed, 60 insertions(+), 2 deletions(-)
diff --git a/src/components/ADempiere/DataTable/index.vue b/src/components/ADempiere/DataTable/index.vue
index e6fa48c2..0541ba55 100644
--- a/src/components/ADempiere/DataTable/index.vue
+++ b/src/components/ADempiere/DataTable/index.vue
@@ -271,7 +271,7 @@ import MainPanel from '@/components/ADempiere/Panel'
import { sortFields } from '@/utils/ADempiere'
import { FIELD_READ_ONLY_FORM } from '@/components/ADempiere/Field/references'
import { fieldIsDisplayed } from '@/utils/ADempiere'
-import { supportedTypes, exportFileFromJson } from '@/utils/ADempiere/exportUtil'
+import { supportedTypes, exportFileFromJson, exportFileZip } from '@/utils/ADempiere/exportUtil'
import evaluator from '@/utils/ADempiere/evaluator'
export default {
@@ -670,6 +670,18 @@ export default {
}
})
},
+ exporZipRecordTable() {
+ const Header = this.getterFieldListHeader
+ const filterVal = this.getterFieldListValue
+ const list = this.getDataSelection
+ const data = this.formatJson(filterVal, list)
+ const filename = 'prueba'
+ exportFileZip(
+ Header,
+ data,
+ filename
+ )
+ },
exporRecordTable(key) {
const Header = this.getterFieldListHeader
const filterVal = this.getterFieldListValue
diff --git a/src/components/ADempiere/DataTable/menu/index.vue b/src/components/ADempiere/DataTable/menu/index.vue
index af3a4bf5..812aa0e1 100644
--- a/src/components/ADempiere/DataTable/menu/index.vue
+++ b/src/components/ADempiere/DataTable/menu/index.vue
@@ -28,6 +28,11 @@
>
{{ process.name }}
+
+ {{ $t('table.dataTable.exportZip') }}
+
filterVal.map(j => v[j]))
}
diff --git a/src/lang/ADempiere/en.js b/src/lang/ADempiere/en.js
index f539e7e5..8ea50bf0 100644
--- a/src/lang/ADempiere/en.js
+++ b/src/lang/ADempiere/en.js
@@ -193,6 +193,7 @@ export default {
selected: 'Selected',
deleteSelection: 'Delete Selected Records',
advancedQuery: 'Advanced Query',
+ exportZip: 'Export Zip',
showOnlyMandatoryColumns: 'Show Only Mandatory Columns',
showAllAvailableColumns: 'Show All Available Columns',
exportRecordTable: 'Export Selected Records',
diff --git a/src/lang/ADempiere/es.js b/src/lang/ADempiere/es.js
index 0f04bc60..a3501333 100644
--- a/src/lang/ADempiere/es.js
+++ b/src/lang/ADempiere/es.js
@@ -193,6 +193,7 @@ export default {
selected: 'Seleccionados',
deleteSelection: 'Eliminar Registros Seleccionados',
advancedQuery: 'Consulta Avanzada',
+ exportZip: 'Exportar Zip',
showOnlyMandatoryColumns: 'Mostrar Solo Columnas Obligatorias',
showAllAvailableColumns: 'Mostrar Todas Columnas Disponibles',
exportRecordTable: 'Exportar Registros Seleccionados',
diff --git a/src/utils/ADempiere/exportUtil.js b/src/utils/ADempiere/exportUtil.js
index 52776c00..a468f9dc 100644
--- a/src/utils/ADempiere/exportUtil.js
+++ b/src/utils/ADempiere/exportUtil.js
@@ -1,4 +1,5 @@
import { export_json_to_excel } from '@/vendor/Export2Excel'
+import { export_txt_to_zip } from '@/vendor/Export2Zip'
import language from '@/lang'
export const supportedTypes = {
@@ -29,3 +30,23 @@ export function exportFileFromJson({
bookType: exportType
})
}
+
+export function exportFileZip({
+ header,
+ data,
+ title
+}) {
+ var Json = data.map(dataJson => {
+ Object.keys(dataJson).forEach(key => {
+ if (typeof dataJson[key] === 'boolean') {
+ dataJson[key] = dataJson[key] ? language.t('components.switchActiveText') : language.t('components.switchInactiveText')
+ }
+ })
+ return dataJson
+ })
+ export_txt_to_zip(
+ header,
+ Json,
+ title
+ )
+}