Files
FE_CPONE/test/vuex/one-md-packet/modules/px.js
2026-04-27 10:13:31 +07:00

117 lines
3.6 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/px.js"
export default {
namespaced: true,
state: {
search_status: 0,
search_error_message: '',
query_px: '',
pxs: [],
selected_px: {},
total_px: 0,
packet_price: 0,
estimate_total_price: 0,
nat_tests: []
},
mutations: {
update_search_error_message(state, patient) {
state.search_error_message = patient
},
// PX
update_query_px(state, q) {
state.query_px = q
},
update_pxs(state, d) {
state.pxs = d.records
state.total_px = d.total
},
update_selected_px(state, d) {
state.selected_px = d
},
update_search_status(state, val) {
state.search_status = val
},
update_errors(state, val) {
state.errors = val
},
update_estimate_total_price(state, v) {
state.estimate_total_price = v
},
update_packet_price(state, v) {
state.packet_price = v
},
update_nat_tests(state, v) {
state.nat_tests = v
}
},
actions: {
async search_px(context) {
try {
let packet = context.rootState.packet.selected_packet
let resp = await api.search(one_token(), packet.T_PacketID, context.state.query_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_px(context) {
try {
let packet = context.rootState.packet.selected_packet
let packet_id = packet.T_PacketID
let packet_price = packet.T_PacketPrice
let packet_original_price = packet.T_PacketOriginalPrice
let pxs = context.state.pxs
let json_px = []
for (let i in pxs)
json_px.push({test_id:pxs[i].T_TestID, test_price:pxs[i].T_PriceAmount})
json_px = JSON.stringify(json_px)
let resp = await api.save(one_token(), packet_id, packet_price, packet_original_price, json_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", "")
context.commit("test/update_state_add", false, {root:true})
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
}
}
}