vue-element-admin/src/store/modules/ADempiere/dashboard.js

68 lines
2.1 KiB
JavaScript

// Default store for handle dashboard refresh and other functionalities
import { requestLisDashboards } from '@/api/ADempiere/data'
const dashboard = {
state: {
dashboard: []
},
mutations: {
addDashboard(state, payload) {
state.dashboard.push(payload)
},
notifyDashboardRefresh: (state, payload) => {
}
},
actions: {
refreshDashboard({ commit, getters }, parameters) {
commit('notifyDashboardRefresh', parameters)
},
listDashboard({ commit }, roleUuid) {
return new Promise((resolve, reject) => {
requestLisDashboards(roleUuid)
.then(response => {
const dashboards = response.getDashboardsList().map(item => {
return {
windowUuid: item.getWindowuuid(),
browserUuid: item.getBrowseruuid(),
dashboardName: item.getDashboardname(),
dashboardDescription: item.getDashboarddescription(),
dashboardHtml: item.getDashboardhtml(),
columnNo: item.getColumnno(),
lineNo: item.getLineno(),
isCollapsible: item.getIscollapsible(),
isOpenByDefault: item.getIsopenbydefault(),
isEventRequired: item.getIseventrequired(),
fileName: item.getFilename()
}
})
const roleDashboards = {
roleUuid: roleUuid,
recordCount: response.getRecordcount(),
dashboardList: dashboards,
nextPageToken: response.getNextPageToken()
}
commit('addDashboard', roleDashboards)
resolve(roleDashboards)
})
.catch(error => {
reject(error)
})
})
}
},
getters: {
getDashboard: (state) => (dashboardUuid) => {
return state.dashboard.find(
item => item.uuid === dashboardUuid
)
},
getDashboardByRole: (state) => (roleUuid) => {
return state.dashboard.find(
item => item.roleUuid === roleUuid
)
}
}
}
export default dashboard