From 0cef51f13cd23de2abb11f4f7436ab0af5e4e83c Mon Sep 17 00:00:00 2001 From: "dwi.firman" Date: Sat, 7 Jun 2025 12:46:53 +0700 Subject: [PATCH] save roleMenuUser belum fix --- components/Master/formDetail1.vue | 144 +++++++++++++------------ server/api/auth/login.js | 2 - server/api/setting/postRoleMenuUser.ts | 9 +- stores/api/menu.ts | 21 ---- stores/api/roleMenu.ts | 24 ----- stores/api/setting/setting.ts | 40 +++++-- stores/api/sidebar.ts | 28 ----- stores/api/typeUser.ts | 23 ---- 8 files changed, 110 insertions(+), 181 deletions(-) delete mode 100644 stores/api/menu.ts delete mode 100644 stores/api/roleMenu.ts delete mode 100644 stores/api/sidebar.ts delete mode 100644 stores/api/typeUser.ts diff --git a/components/Master/formDetail1.vue b/components/Master/formDetail1.vue index 5971717..e03c601 100644 --- a/components/Master/formDetail1.vue +++ b/components/Master/formDetail1.vue @@ -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([]); const menuItem = ref([]); @@ -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 -// }); -// }); -// } -// }