// 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_note: '', 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, note: context.state.param_note, 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) { } } } }