save roleMenuUser belum fix
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
import {useSettingStore} from "@/stores/api/setting/setting";
|
||||
|
||||
const {getTypeUser, getMenu, postRoleUserMenu} = useSettingStore();
|
||||
const {listMenu, listTypeUser, roleMenuById,} = storeToRefs(useSettingStore());
|
||||
const {listMenu, listTypeUser,typeUser, roleMenuById,} = storeToRefs(useSettingStore());
|
||||
|
||||
const data = ref<any>([]);
|
||||
const menuItem = ref<any>([]);
|
||||
@@ -16,13 +16,16 @@ const dataMenu = async () => {
|
||||
])
|
||||
// filtering role akses menu terhadap tipe user
|
||||
if (roleMenuById.value.data != null && roleMenuById.value.data != "") {
|
||||
console.log('lidt menu',listMenu.value)
|
||||
return roleMenuById.value.data.map((role_menu: any) => {
|
||||
menuItem.value = listMenu.value.find(
|
||||
(menu: any) => menu._id == role_menu.menu_id
|
||||
(menu: any) =>
|
||||
menu._id == role_menu.menu_id
|
||||
);
|
||||
type_user.value = listTypeUser.value.find(
|
||||
(type_user: any) => type_user._id == role_menu.type_user_id
|
||||
);
|
||||
console.log('menu item', menuItem.value);
|
||||
return {
|
||||
_id: role_menu._id,
|
||||
idTipeUser: type_user.value._id,
|
||||
@@ -45,11 +48,13 @@ const checkMenu = () => {
|
||||
!roleMenuById.value.data ||
|
||||
!roleMenuById.value.data.map((r: any) => r.menu_id).includes(i._id)
|
||||
);
|
||||
console.log(' menu arr ',arr);
|
||||
console.log('list menu arr ',listMenu.value);
|
||||
// Check if arr is not empty or roleMenuById.value.data is null
|
||||
if (arr.length !== 0 || !roleMenuById.value.data) {
|
||||
arr.forEach((i: any, index: number) => {
|
||||
data.value.push({
|
||||
_id: `${index + 1}`,
|
||||
_id: `${i._id}`,
|
||||
idTipeUser: type_user.value._id,
|
||||
menu: i.display,
|
||||
accessAdd: 0,
|
||||
@@ -61,59 +66,80 @@ const checkMenu = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const onChange = (newValue, oldValue, el$) => {
|
||||
}
|
||||
// const onSubmit = async () => {
|
||||
// const formData = dataDetail.value?.form$.data;
|
||||
// const result = data.value.map(menu => ({
|
||||
// id: menu._id,
|
||||
// menuName: formData[`menu_${menu._id}`]?.name,
|
||||
// // ... akses data lainnya ...
|
||||
// }));
|
||||
// // try {
|
||||
// const formData = dataDetail.value?.form$.data
|
||||
// console.log('form ',formData)
|
||||
// console.log(' data value',data.value)
|
||||
// // Struktur data untuk dikirim ke backend
|
||||
// const payload = {
|
||||
// menus: data.value.map(menu => ({
|
||||
// type_user_id: formData.idTipeUser, // ID tipe user dari hidden field
|
||||
// menu_id: menu._id,
|
||||
// // menu_name: formData[`name_menu_${menu._id}`], // Nama menu dari static element
|
||||
// access: [
|
||||
// {type: 'add', value: formData[`accessAdd_${menu._id}`] || '0'},
|
||||
// {type: 'update', value: formData[`accessUpdate_${menu._id}`] || '0'},
|
||||
// {type: 'read', value: formData[`accessRead_${menu._id}`] || '0'},
|
||||
// {type: 'delete', value: formData[`accessDelete_${menu._id}`] || '0'}
|
||||
// ]
|
||||
// }))
|
||||
// }
|
||||
//
|
||||
// console.log("Data terstruktur:", result);
|
||||
// };
|
||||
// // console.log('Data yang dikirim:', payload)
|
||||
// await postRoleUserMenu(payload)
|
||||
// // Panggil action dari store untuk mengirim data ke backend
|
||||
// // const response = await saveRoleMenu(payload)
|
||||
//
|
||||
// // Handle response dari backend
|
||||
// // if (response.success) {
|
||||
// // alert('Data berhasil disimpan!')
|
||||
// // // Refresh data jika perlu
|
||||
// // data.value = await dataMenu()
|
||||
// // } else {
|
||||
// // alert('Gagal menyimpan data: ' + response.message)
|
||||
// // }
|
||||
// // } catch (error) {
|
||||
// // console.error('Error saat menyimpan data:', error)
|
||||
// // alert('Terjadi kesalahan saat menyimpan data')
|
||||
// // }
|
||||
// }
|
||||
const onSubmit = async () => {
|
||||
// try {
|
||||
const formData = dataDetail.value?.form$.data
|
||||
const formData = dataDetail.value?.form$.data;
|
||||
|
||||
// Jika data.value kosong, kita akan mengambil data dari form
|
||||
const menusToProcess = data.value!==undefined ? data.value : listMenu.value;
|
||||
console.log(formData);
|
||||
console.log(listTypeUser.value);
|
||||
console.log(data.value);
|
||||
console.log(menusToProcess);
|
||||
// Struktur data untuk dikirim ke backend
|
||||
const payload = {
|
||||
type_user_id: formData.idTipeUser, // ID tipe user dari hidden field
|
||||
menus: data.value.map(menu => ({
|
||||
menu_id: menu._id,
|
||||
menu_name: formData[`name_menu_${menu._id}`], // Nama menu dari static element
|
||||
access: [
|
||||
{type: 'add', value: formData[`accessAdd_${menu._id}`] || '0'},
|
||||
{type: 'update', value: formData[`accessUpdate_${menu._id}`] || '0'},
|
||||
{type: 'read', value: formData[`accessRead_${menu._id}`] || '0'},
|
||||
{type: 'delete', value: formData[`accessDelete_${menu._id}`] || '0'}
|
||||
]
|
||||
}))
|
||||
}
|
||||
menus: menusToProcess.map(menu => {
|
||||
const menuId = menu._id || menu.id; // Gunakan _id atau id tergantung struktur data
|
||||
return {
|
||||
type_user_id: formData.idTipeUser||typeUser.value, // ID tipe user dari hidden field
|
||||
menu_id: menuId,
|
||||
access: [
|
||||
{type: 'add', value: formData[`accessAdd_${menuId}`] || '0'},
|
||||
{type: 'update', value: formData[`accessUpdate_${menuId}`] || '0'},
|
||||
{type: 'read', value: formData[`accessRead_${menuId}`] || '0'},
|
||||
{type: 'delete', value: formData[`accessDelete_${menuId}`] || '0'}
|
||||
]
|
||||
};
|
||||
})
|
||||
};
|
||||
|
||||
// console.log('Data yang dikirim:', payload)
|
||||
await postRoleUserMenu(payload)
|
||||
// Panggil action dari store untuk mengirim data ke backend
|
||||
// const response = await saveRoleMenu(payload)
|
||||
console.log('Payload yang dikirim:', payload);
|
||||
await postRoleUserMenu(payload);
|
||||
};
|
||||
|
||||
// Handle response dari backend
|
||||
// if (response.success) {
|
||||
// alert('Data berhasil disimpan!')
|
||||
// // Refresh data jika perlu
|
||||
// data.value = await dataMenu()
|
||||
// } else {
|
||||
// alert('Gagal menyimpan data: ' + response.message)
|
||||
// }
|
||||
// } catch (error) {
|
||||
// console.error('Error saat menyimpan data:', error)
|
||||
// alert('Terjadi kesalahan saat menyimpan data')
|
||||
// }
|
||||
}
|
||||
onMounted(async () => {
|
||||
data.value = await dataMenu();
|
||||
checkMenu()
|
||||
console.log('aaaaa', data.value);
|
||||
console.log('user select', typeUser.value);
|
||||
console.log('listTypeUser', listTypeUser.value);
|
||||
checkMenu()
|
||||
});
|
||||
|
||||
|
||||
@@ -142,6 +168,7 @@ const createCheckbox = (namePrefix: string, menu: any) => {
|
||||
// Helper function to create a menu row
|
||||
let count = 0
|
||||
const createMenuRow = (menu: any) => {
|
||||
console.log('create menu',menu);
|
||||
count += 1; // Use the current counter value and then increment it
|
||||
const multiElement = {
|
||||
nama_menu: {
|
||||
@@ -160,15 +187,13 @@ const createMenuRow = (menu: any) => {
|
||||
},
|
||||
},
|
||||
idTipeUser: {
|
||||
type: 'hidden',
|
||||
type: 'text',
|
||||
default: menu.idTipeUser,
|
||||
builder: {
|
||||
type: 'text',
|
||||
},
|
||||
},
|
||||
}
|
||||
console.log(multiElement)
|
||||
|
||||
const result = [
|
||||
[`${count}`, 1, 1],
|
||||
[
|
||||
@@ -195,31 +220,8 @@ const createMenuRow = (menu: any) => {
|
||||
[createCheckbox('accessRead', menu), 1, 1],
|
||||
[createCheckbox('accessDelete', menu), 1, 1]
|
||||
]
|
||||
// console.log(result)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// const checkMenu = () => {
|
||||
// // Filter the listMenu based on roleMenuById
|
||||
// var arr = listMenu.value.filter((i: any) =>
|
||||
// !roleMenuById.value.data ||
|
||||
// !roleMenuById.value.data.map((r: any) => r.menu_id).includes(i._id)
|
||||
// );
|
||||
// // Check if arr is not empty or roleMenuById.value.data is null
|
||||
// if (arr.length !== 0 || !roleMenuById.value.data) {
|
||||
// arr.forEach((i: any, index: number) => {
|
||||
// data.value.push({
|
||||
// _id: `${index + 1}`,
|
||||
// menu: i.display,
|
||||
// accessAdd: 0,
|
||||
// accessUpdate: 0,
|
||||
// accessRead: 0,
|
||||
// accessDelete: 0
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
Reference in New Issue
Block a user