1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-16 08:55:42 +08:00
Edwin Betancourt 0d30213637
fix: Report change print format. (#695)
Co-authored-by: EdwinBetanc0urt <EdwinBetanco0urt@outlook.com>
2021-03-26 17:33:29 -04:00

228 lines
6.2 KiB
JavaScript

import {
requestListReportsViews,
requestListPrintFormats,
requestListDrillTables,
requestGetReportOutput
} from '@/api/ADempiere/report'
import { isEmptyValue } from '@/utils/ADempiere/valueUtils'
const initStateReportControl = {
reportFormatsList: [],
reportViewsList: [],
drillTablesList: [],
reportOutput: {}
}
const reportControl = {
state: initStateReportControl,
mutations: {
setReportFormatsList(state, payload) {
state.reportFormatsList.push(payload)
},
setReportViewsList(state, payload) {
state.reportViewsList.push(payload)
},
setDrillTablesList(state, payload) {
state.drillTablesList.push(payload)
},
setNewReportOutput(state, payload) {
state.reportOutput = payload
},
resetReportControl(state) {
state = initStateReportControl
}
},
actions: {
reportActionPerformed({ commit }, {
containerUuid,
field,
value
}) {
},
getListPrintFormats({ commit }, {
processId,
processUuid,
instanceUuid
}) {
return new Promise(resolve => {
requestListPrintFormats({ processUuid })
.then(printFormatResponse => {
const printFormatList = printFormatResponse.records.map(printFormatItem => {
return {
...printFormatItem,
type: 'updateReport',
option: 'printFormat',
instanceUuid,
processUuid,
processId
}
})
commit('setReportFormatsList', {
containerUuid: processUuid,
printFormatList
})
resolve(printFormatList)
})
.catch(error => {
console.warn(`Error getting print formats: ${error.message}. Code: ${error.code}.`)
})
})
},
getReportViewsFromServer({ commit }, {
processId,
processUuid,
instanceUuid,
printFormatUuid,
tableName
}) {
return new Promise(resolve => {
requestListReportsViews({ processUuid, tableName })
.then(reportViewResponse => {
const reportViewList = reportViewResponse.reportViewsList.map(reportViewItem => {
return {
...reportViewItem,
type: 'updateReport',
option: 'reportView',
instanceUuid,
printFormatUuid,
processUuid,
processId
}
})
commit('setReportViewsList', {
containerUuid: processUuid,
viewList: reportViewList
})
resolve(reportViewList)
})
.catch(error => {
console.warn(`Error getting report views: ${error.message}. Code: ${error.code}.`)
})
})
},
getDrillTablesFromServer({ commit }, {
processId,
processUuid,
instanceUuid,
printFormatUuid,
tableName,
reportViewUuid
}) {
return new Promise(resolve => {
requestListDrillTables({ tableName })
.then(responseDrillTables => {
const drillTablesList = responseDrillTables.drillTablesList.map(drillTableItem => {
return {
...drillTableItem,
name: drillTableItem.printName,
type: 'updateReport',
option: 'drillTable',
instanceUuid,
printFormatUuid,
reportViewUuid,
processUuid,
processId
}
})
commit('setDrillTablesList', {
containerUuid: processUuid,
drillTablesList
})
resolve(drillTablesList)
})
.catch(error => {
console.warn(`Error getting drill tables: ${error.message}. Code: ${error.code}.`)
})
})
},
getReportOutputFromServer({ state, commit, getters, rootGetters }, {
tableName,
printFormatUuid,
reportViewUuid,
isSummary,
reportName,
reportType,
processUuid,
processId,
instanceUuid,
option
}) {
return new Promise(resolve => {
if (isEmptyValue(printFormatUuid)) {
const printFormat = getters.getDefaultPrintFormat(processUuid)
if (!isEmptyValue(printFormat)) {
printFormatUuid = printFormat.printFormatUuid
}
}
const parametersList = rootGetters.getParametersToServer({
containerUuid: processUuid
})
requestGetReportOutput({
parametersList,
printFormatUuid,
reportViewUuid,
isSummary,
reportName,
reportType,
tableName
})
.then(response => {
const reportOutput = {
...response,
processId,
processUuid,
isError: false,
instanceUuid,
isReport: true,
option
}
commit('setNewReportOutput', reportOutput)
resolve(reportOutput)
})
.catch(error => {
console.warn(`Error getting report output: ${error.message}. Code: ${error.code}.`)
})
})
}
},
getters: {
getPrintFormatList: (state) => (containerUuid) => {
const printFormatList = state.reportFormatsList.find(list => list.containerUuid === containerUuid)
if (printFormatList) {
return printFormatList.printFormatList
}
return []
},
getDefaultPrintFormat: (state, getters) => (containerUuid) => {
return getters.getPrintFormatList(containerUuid).find(printFormat => printFormat.isDefault)
},
getReportViewList: (state) => (containerUuid) => {
const reportViewList = state.reportViewsList.find(list => list.containerUuid === containerUuid)
if (reportViewList) {
return reportViewList.viewList
}
return []
},
getDrillTablesList: (state) => (containerUuid) => {
const drillTablesList = state.drillTablesList.find(list => list.containerUuid === containerUuid)
if (drillTablesList) {
return drillTablesList.viewList
}
return []
}
}
}
export default reportControl