183 lines
6.4 KiB
JavaScript
183 lines
6.4 KiB
JavaScript
// 1 => LOADING
|
|
// 2 => DONE
|
|
// 3 => ERROR
|
|
import * as api from "../api/report.js"
|
|
window.api = api
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state: {
|
|
loading: false,
|
|
reports: [],
|
|
report: {},
|
|
error: '',
|
|
details: [],
|
|
detail: [],
|
|
loading_detail: false,
|
|
error_detail: '',
|
|
params: [],
|
|
total_params: 0,
|
|
total_filter_params: 0,
|
|
search_status: 0,
|
|
current_page: 1,
|
|
get_data_status: 0,
|
|
get_data_error_message: '',
|
|
reportautocompletes: [],
|
|
autocomplete_status: 0
|
|
},
|
|
mutations: {
|
|
update_loading(state, status) {
|
|
state.loading = status
|
|
},
|
|
update_reports(state, val) {
|
|
state.reports = val
|
|
},
|
|
update_report(state, report) {
|
|
state.report = report
|
|
},
|
|
update_error(state, val) {
|
|
state.error = val
|
|
},
|
|
update_details(state, val) {
|
|
state.details = val
|
|
},
|
|
update_detail(state, data) {
|
|
state.detail = data.detail
|
|
},
|
|
update_loading_detail(state, val) {
|
|
state.loading_detail = val
|
|
},
|
|
update_error_detail(state, val) {
|
|
state.error_detail = val
|
|
},
|
|
update_params(state, val) {
|
|
state.params = val
|
|
},
|
|
update_total_params(state, val) {
|
|
state.total_params = val
|
|
},
|
|
update_total_filter_params(state, val) {
|
|
state.total_filter_params = val
|
|
},
|
|
update_current_page(state, val) {
|
|
state.current_page = val
|
|
},
|
|
update_get_data_status(state, val) {
|
|
state.get_data_status = val
|
|
},
|
|
update_get_data_error_message(state, val) {
|
|
state.get_data_error_message = val
|
|
},
|
|
update_reportdropdowns(state, val) {
|
|
state.reportdropdowns = val
|
|
},
|
|
update_reportdropdown(state, val) {
|
|
state.reportdropdown = val
|
|
},
|
|
update_reportautocompletes(state, val) {
|
|
state.reportautocompletes = val
|
|
},
|
|
update_autocomplete_status(state, val) {
|
|
state.autocomplete_status = val
|
|
}
|
|
},
|
|
actions: {
|
|
async list(context, prm) {
|
|
context.commit("update_loading", true)
|
|
try {
|
|
let resp = await api.list(prm)
|
|
if (resp.statusText != "OK") {
|
|
context.commit("update_loading", false)
|
|
context.commit("update_error", resp.message)
|
|
} else {
|
|
context.commit("update_loading", false)
|
|
context.commit("update_error", "")
|
|
context.commit("update_reports", resp.data.data.records)
|
|
}
|
|
} catch (e) {
|
|
context.commit("update_loading", false)
|
|
context.commit("update_error", e.message)
|
|
}
|
|
},
|
|
async lookupparam(context, prm) {
|
|
context.commit("update_loading", true)
|
|
try {
|
|
prm.token = one_token()
|
|
let resp = await api.lookupparam(prm)
|
|
if (resp.statusText != "OK") {
|
|
context.commit("update_loading", false)
|
|
context.commit("update_error", resp.message)
|
|
} else {
|
|
context.commit("update_loading", false)
|
|
context.commit("update_error", "")
|
|
let data = {
|
|
records: resp.data.records,
|
|
total: resp.data.total,
|
|
total_filter: resp.data.total_filter
|
|
}
|
|
|
|
context.commit("update_params", resp.data.data.records)
|
|
context.commit("update_total_params", resp.data.data.total)
|
|
context.commit("update_total_filter_params", resp.data.data.total_filter)
|
|
}
|
|
} catch (e) {
|
|
context.commit("update_loading", false)
|
|
context.commit("update_error", e.message)
|
|
}
|
|
},
|
|
async detail(context, id) {
|
|
context.commit("update_loading_detail", true)
|
|
try {
|
|
let resp = await api.detail(id)
|
|
//console.log(resp)
|
|
if (resp.statusText != "OK") {
|
|
context.commit("update_loading_detail", false)
|
|
context.commit("update_error_detail", resp.message)
|
|
} else {
|
|
context.commit("update_loading_detail", false)
|
|
context.commit("update_error_detail", "")
|
|
var arrOrders = resp.data.data.records
|
|
arrOrders.forEach((value, index) => {
|
|
arrOrders[index]["items"] = []
|
|
if(value.R_InputTypeName === 'dropdown'){
|
|
var sp = value.R_ReportDetailSourceSp
|
|
context.dispatch("listdropdown",{sp:sp,index: index})
|
|
}
|
|
});
|
|
context.commit("update_details", arrOrders)
|
|
}
|
|
} catch (e) {
|
|
context.commit("update_loading_detail", false)
|
|
context.commit("update_error_detail", e.message)
|
|
}
|
|
},
|
|
async listdropdown(context, param) {
|
|
context.commit("update_get_data_status", 1)
|
|
try {
|
|
let resp = await api.listdropdown(param.sp)
|
|
//disimpan dalam report detail
|
|
let arrOrders = context.state.details
|
|
arrOrders[param.index].items = resp
|
|
context.commit("update_details",arrOrders)
|
|
} catch (e) {
|
|
context.commit("update_get_data_status", 3)
|
|
context.commit("update_get_data_error_message", e.message)
|
|
console.log(e)
|
|
}
|
|
},
|
|
async listautocomplete(context, prm) {
|
|
context.commit("update_autocomplete_status", 1)
|
|
try {
|
|
let resp = await api.listautocomplete(prm)
|
|
context.commit("update_autocomplete_status", 2)
|
|
let arrOrders = context.state.details
|
|
arrOrders[prm.index].items = resp.data
|
|
context.commit("update_details",arrOrders)
|
|
} catch (e) {
|
|
context.commit("update_autocomplete_status", 3)
|
|
console.log(e)
|
|
}
|
|
}
|
|
}
|
|
}
|