Files
FE_CPONE/test/vuex/dashboard-user-mcu/modules/dashboard_user.js
2026-05-07 16:20:02 +07:00

133 lines
5.9 KiB
JavaScript

import * as api from "../api/dashboard_user.js"
export default {
namespaced: true,
state: {
users: [],
selected_user: {},
project_options: [],
search_username: '',
search_project: { mcu_id: 'all', project_number: 'All', project_name: 'Semua Project' },
project_keyword: '',
page: 1,
limit: 20,
total_rows: 0,
total_pages: 0,
search_status: 0,
save_status: 0,
save_error_message: '',
dialog_success: false,
msg_success: ''
},
mutations: {
update_users(state, val) { state.users = val },
update_selected_user(state, val) { state.selected_user = val },
update_project_options(state, val) { state.project_options = val },
update_search_username(state, val) { state.search_username = val },
update_search_project(state, val) { state.search_project = val },
update_project_keyword(state, val) { state.project_keyword = val },
update_page(state, val) { state.page = val },
update_limit(state, val) { state.limit = val },
update_total_rows(state, val) { state.total_rows = val },
update_total_pages(state, val) { state.total_pages = val },
update_search_status(state, val) { state.search_status = val },
update_save_status(state, val) { state.save_status = val },
update_save_error_message(state, val) { state.save_error_message = val },
update_dialog_success(state, val) { state.dialog_success = val },
update_msg_success(state, val) { state.msg_success = val }
},
actions: {
async search(context, prm) {
context.commit('update_search_status', 1)
try {
prm.token = one_token()
let resp = await api.search(prm)
if (resp.status != 'OK') {
context.commit('update_search_status', 3)
context.commit('update_save_error_message', resp.message)
} else {
let data = resp.data || {}
context.commit('update_users', data.records || [])
context.commit('update_total_rows', data.pagination ? data.pagination.total_rows : 0)
context.commit('update_total_pages', data.pagination ? data.pagination.total_pages : 0)
context.commit('update_page', data.pagination ? data.pagination.page : 1)
context.commit('update_limit', data.pagination ? data.pagination.limit : 20)
context.commit('update_search_status', 2)
}
} catch (e) {
context.commit('update_search_status', 3)
context.commit('update_save_error_message', e.message)
}
},
async search_project(context, prm) {
try {
prm.token = one_token()
let resp = await api.search_project(prm)
if (resp.status != 'OK') {
context.commit('update_project_options', [])
} else {
context.commit('update_project_options', resp.data.records || [])
}
} catch (e) {
context.commit('update_project_options', [])
}
},
async save(context, prm) {
context.commit('update_save_status', 1)
prm.token = one_token()
let resp = await api.save(prm)
if (resp.status != 'OK') {
context.commit('update_save_status', 3)
context.commit('update_save_error_message', resp.message)
return resp
}
context.commit('update_save_status', 2)
context.commit('update_msg_success', (resp.data && resp.data.message) ? resp.data.message : 'User berhasil disimpan')
context.commit('update_dialog_success', true)
return resp
},
async reset_password(context, prm) {
context.commit('update_save_status', 1)
prm.token = one_token()
let resp = await api.reset_password(prm)
if (resp.status != 'OK') {
context.commit('update_save_status', 3)
context.commit('update_save_error_message', resp.message)
return resp
}
context.commit('update_save_status', 2)
context.commit('update_msg_success', (resp.data && resp.data.message) ? resp.data.message : 'Password berhasil direset')
context.commit('update_dialog_success', true)
return resp
},
async assign_project(context, prm) {
context.commit('update_save_status', 1)
prm.token = one_token()
let resp = await api.assign_project(prm)
if (resp.status != 'OK') {
context.commit('update_save_status', 3)
context.commit('update_save_error_message', resp.message)
return resp
}
context.commit('update_save_status', 2)
context.commit('update_msg_success', (resp.data && resp.data.message) ? resp.data.message : 'Project berhasil di-assign')
context.commit('update_dialog_success', true)
return resp
},
async remove_project(context, prm) {
context.commit('update_save_status', 1)
prm.token = one_token()
let resp = await api.remove_project(prm)
if (resp.status != 'OK') {
context.commit('update_save_status', 3)
context.commit('update_save_error_message', resp.message)
return resp
}
context.commit('update_save_status', 2)
context.commit('update_msg_success', (resp.data && resp.data.message) ? resp.data.message : 'Project berhasil dihapus')
context.commit('update_dialog_success', true)
return resp
}
}
}