Files
FE_CPONE/test/vuex/one-fo-registration-dev/modules/doctor_new.js
2026-04-27 10:13:31 +07:00

284 lines
9.3 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/doctor.js"
import * as area from "../api/area.js"
import * as other from "../api/other.js"
export default {
namespaced: true,
state: {
search : '',
search_status: 0,
search_error_message: "",
sexs: [],
selected_sex: null,
param_name: '',
param_prefix1: '',
param_prefix2: '',
param_sufix1: '',
param_sufix2: '',
param_sufix3: '',
param_hp: '',
param_address: '',
provinces: [],
selected_province: null,
cities: [],
selected_city: null,
districts: [],
selected_district: null,
villages: [],
selected_village: null,
dialog_new: false,
adhoc: false
},
mutations: {
update_search(state,val) {
state.search=val
},
update_search_error_message(state,status) {
state.search_error_message = status
},
update_search_status(state,status) {
state.search_status = status
},
update_dialog_new(state, d) {
state.dialog_new = d
},
update_sexs(state, d) {
state.sexs = d.records
},
update_selected_sex(state, d) {
state.selected_sex = d
},
update_provinces(state, d) {
state.provinces = d.records
state.cities = []
state.districts = []
state.villages = []
state.selected_city = null
state.selected_district = null
state.selected_village = null
for (let i in d.records)
if (d.records[i].is_default == "Y")
state.selected_province = d.records[i]
},
update_selected_province(state, d) {
state.selected_province = d
},
update_districts(state, d) {
state.districts = d.records
state.villages = []
state.selected_village = null
for (let i in d.records)
if (d.records[i].is_default == "Y")
state.selected_district = d.records[i]
},
update_selected_district(state, d) {
state.selected_district = d
},
update_cities(state, d) {
state.cities = d.records
state.districts = []
state.villages = []
state.selected_district = null
state.selected_village = null
for (let i in d.records)
if (d.records[i].is_default == "Y")
state.selected_city = d.records[i]
},
update_selected_city(state, d) {
state.selected_city = d
},
update_villages(state, d) {
state.villages = d.records
for (let i in d.records)
if (d.records[i].is_default == "Y")
state.selected_village = d.records[i]
},
update_selected_village(state, d) {
state.selected_village = d
},
update_param(state, d) {
state['param_'+d.param] = d.val
},
update_adhoc(state, d) {
state.adhoc = d
}
},
actions: {
async save(context) {
context.commit('update_search_status', 1)
try {
let d = {
name: context.state.param_name,
prefix1: context.state.param_prefix1,
prefix2: context.state.param_prefix2,
sufix1: context.state.param_sufix1,
sufix2: context.state.param_sufix2,
sufix3: context.state.param_sufix3,
sex: context.state.selected_sex.M_SexID,
hp: context.state.param_hp,
address: context.state.param_address,
village: context.state.selected_village.M_KelurahanID
}
let resp = await api.save(one_token(), d)
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_adhoc', true)
context.commit('doctor/update_doctors', data, {root:true})
context.commit('doctor/update_search', data.records[0].M_DoctorRealName, {root:true})
context.commit('doctor/update_selected_doctor', data.records[0], {root:true})
context.commit('delivery/update_params', {d_id:data.records[0].M_DoctorID}, {root:true})
context.dispatch('delivery/search', null, {root:true})
context.commit('update_dialog_new', false)
context.commit('update_dialog_loading', false, {root:true})
}
} catch(e) {
console.log(e)
}
},
async search_sex(context) {
context.commit('update_search_status', 1)
try {
let resp = await other.search_sex()
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
}
context.commit('update_sexs', data)
}
} catch(e) {
}
},
async search_province(context) {
context.commit('update_search_status', 1)
try {
let resp = await area.search_province()
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
}
context.commit('update_provinces', data)
}
} catch(e) {
}
},
async search_city(context) {
context.commit('update_search_status', 1)
try {
let resp = await area.search_city(context.state.selected_province.M_ProvinceID)
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
}
context.commit('update_cities', data)
}
} catch(e) {
}
},
async search_district(context) {
context.commit('update_search_status', 1)
try {
let resp = await area.search_district(context.state.selected_city.M_CityID)
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
}
context.commit('update_districts', data)
}
} catch(e) {
}
},
async search_village(context) {
context.commit('update_search_status', 1)
try {
let resp = await area.search_kelurahan(context.state.selected_district.M_DistrictID)
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
}
context.commit('update_villages', data)
}
} catch(e) {
}
}
}
}