Files
FE_CPONE/test/vuex/one-mcu-report-template/modules/template_detail.js
2026-04-27 10:13:31 +07:00

178 lines
5.2 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/template.js"
window.api = api
export default {
namespaced: true,
state: {
is_edit: false,
template_id:0,
template_detail_id:0,
search: '',
search_px: '',
search_status:0,
search_error_message:'',
templates: [],
selected_template: {},
total_template: 0,
dialog_new: false,
template_new: {desc:'', is_test:'N'},
pos: [{code:"FC", label:"Anak Pertama Dari"},
{code:"LC", label:"Anak Terakhir Dari"},
{code:"AF", label:"Setelah"},
{code:"BF", label:"Sebelum"}],
selected_pos: {},
av_descs: [],
selected_av_desc: {},
pxs: [],
selected_px: {},
total_px: 0
},
mutations: {
update_is_edit(state, val) {
state.is_edit = val
},
update_search_error_message(state,status) {
state.search_error_message = status
},
update_search(state,val) {
state.search=val
},
update_search_px(state,val) {
state.search_px=val
},
update_search_status(state,status) {
state.search_status = status
},
update_templates(state, data) {
state.templates= data.records
state.total_template = data.total
},
update_selected_template(state, val) {
state.selected_template = val
},
update_template_id(state, val) {
state.template_id = val
},
update_template_detail_id(state, val) {
state.template_detail_id = val
},
update_dialog_new(state, val) {
state.dialog_new = val
},
update_template_new(state, val) {
state.template_new = val
},
update_pxs(state, data) {
state.pxs = data.records
state.total_px = data.total
},
update_selected_px(state, val) {
state.selected_px = val
},
update_selected_pos(state, val) {
state.selected_pos = val
},
update_selected_av_desc(state, val) {
state.selected_av_desc = val
}
},
actions: {
async search(context) {
context.commit("update_search_status", 1)
try {
let resp= await api.search_detail(context.state.template_id)
if (resp.status != "OK") {
context.commit("update_search_status", 3)
context.commit("update_search_error_message",resp.message)
} else {
context.commit("update_search_status",2)
context.commit("update_search_error_message","")
let data = {
records : resp.data.records,
total: resp.data.total
}
context.commit("update_templates", data)
}
} catch(e) {
context.commit("update_search_status",3)
context.commit("update_search_error_message",e.message )
}
},
async search_px(context) {
context.commit("update_search_status", 1)
try {
let resp= await api.search_px(context.state.search_px)
if (resp.status != "OK") {
context.commit("update_search_status", 3)
context.commit("update_search_error_message",resp.message)
} else {
context.commit("update_search_status",2)
context.commit("update_search_error_message","")
let data = {
records : resp.data.records,
total: resp.data.total
}
context.commit("update_pxs", data)
}
} catch(e) {
context.commit("update_search_status",3)
context.commit("update_search_error_message",e.message )
}
},
async save(context) {
context.commit("update_search_status", 1)
try {
let resp= await api.save_detail(one_token(),
context.state.template_id,
context.state.template_new.desc,
context.state.template_new.is_test,
context.state.selected_px.T_TestID,
context.state.selected_pos.code,
context.state.selected_av_desc.Mcu_ReportTemplateDetailID)
if (resp.status != "OK") {
context.commit("update_search_status", 3)
context.commit("update_search_error_message",resp.message)
} else {
context.commit("update_search_status",2)
context.commit("update_search_error_message","")
context.dispatch("search")
context.commit("update_dialog_new", false)
}
} catch(e) {
context.commit("update_search_status",3)
context.commit("update_search_error_message",e.message )
}
}
}
}