perubahan edit akses menu belum fix
This commit is contained in:
@@ -22,17 +22,16 @@ const dataDetail = ref(null)
|
|||||||
const dataMenu = async () => {
|
const dataMenu = async () => {
|
||||||
await getMenu();
|
await getMenu();
|
||||||
await getTypeUser();
|
await getTypeUser();
|
||||||
// console.log("ini roleMenu:",roleMenuById.value.data);
|
// if(){}
|
||||||
// console.log('ini semua tipe:',listTypeUser.value);
|
console.log('iswufgh',roleMenuById.value.data)
|
||||||
|
if(roleMenuById.value.data !=null && roleMenuById.value.data != ""){
|
||||||
return roleMenuById.value.data.map((role_menu: any) => {
|
return roleMenuById.value.data.map((role_menu: any) => {
|
||||||
menuItem.value = listMenu.value.find(
|
menuItem.value = listMenu.value.find(
|
||||||
(menu: any) => menu._id == role_menu.menu_id
|
(menu: any) => menu._id == role_menu.menu_id
|
||||||
);
|
);
|
||||||
console.log("ini menunya:", menuItem.value);
|
|
||||||
type_user.value = listTypeUser.value.find(
|
type_user.value = listTypeUser.value.find(
|
||||||
(type_user: any) => type_user._id == role_menu.type_user_id
|
(type_user: any) => type_user._id == role_menu.type_user_id
|
||||||
);
|
);
|
||||||
// console.log("ini menunya:",menuItem);
|
|
||||||
return {
|
return {
|
||||||
_id: role_menu._id,
|
_id: role_menu._id,
|
||||||
menu: menuItem?.value.display || "-",
|
menu: menuItem?.value.display || "-",
|
||||||
@@ -43,17 +42,24 @@ const dataMenu = async () => {
|
|||||||
accessDelete: role_menu.access?.[3]?.delete || 0,
|
accessDelete: role_menu.access?.[3]?.delete || 0,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
// console.log(data)
|
}else{
|
||||||
|
checkMenu()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const checkMenu = () => {
|
const checkMenu = () => {
|
||||||
// var arr = listMenu.value.filter((i:any) => !roleMenuById.value.data.includes(i._id))
|
|
||||||
// https://stackoverflow.com/questions/33577868/filter-array-not-in-another-array
|
// https://stackoverflow.com/questions/33577868/filter-array-not-in-another-array
|
||||||
var arr = listMenu.value.filter((i: any) => !roleMenuById.value.data.map((r: any) => r.menu_id).includes(i._id))
|
var arr = listMenu.value.filter((i: any) => !roleMenuById.value.data.map((r: any) => r.menu_id).includes(i._id))
|
||||||
if (arr.length != 0) {
|
if (arr.length != 0) {
|
||||||
data.value.push(...arr.map((i:any) => ({menu:i.display,accessAdd:0,accessUpdate:0,accessRead:0,accessDelete:0})))
|
data.value.push(...arr.map((i: any, index: bigint) => ({
|
||||||
|
_id: `${index + 1}`,
|
||||||
|
menu: i.display,
|
||||||
|
accessAdd: 0,
|
||||||
|
accessUpdate: 0,
|
||||||
|
accessRead: 0,
|
||||||
|
accessDelete: 0
|
||||||
|
})))
|
||||||
}
|
}
|
||||||
// console.log("yang belum ada di role menu",arr)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
@@ -65,105 +71,54 @@ onMounted(async () => {
|
|||||||
// console.log(roleMenuById.value.data);
|
// console.log(roleMenuById.value.data);
|
||||||
data.value = await dataMenu();
|
data.value = await dataMenu();
|
||||||
console.log(checkMenu())
|
console.log(checkMenu())
|
||||||
console.log(data.value);
|
console.log('aaaaa', data.value);
|
||||||
});
|
});
|
||||||
|
|
||||||
// const columns = ref([
|
|
||||||
// { label: "Nama Menu", key: "menu" },
|
// Helper function to create checkbox config
|
||||||
// { label: "Tambah", key: "accessAdd" },
|
const createCheckbox = (namePrefix: string, menu: any,index:bigint) => ({
|
||||||
// { label: "Ubah", key: "accessUpdate" },
|
name: `${namePrefix}_${menu._id}`,
|
||||||
// { label: "Baca", key: "accessRead" },
|
type: 'checkbox',
|
||||||
// { label: "Hapus", key: "accessDelete" },
|
text: 'Ya',
|
||||||
// { label: "Aksi", key: "actions" },
|
default: namePrefix=='accessAdd'?menu.accessAdd:0,
|
||||||
// ]);
|
'true-value':"1",
|
||||||
|
'false-value':"0",
|
||||||
|
builder: {
|
||||||
|
type: 'checkbox',
|
||||||
|
label: 'Checkbox'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Helper function to create a menu row
|
||||||
|
const createMenuRow = (menu: any, index: bigint) => [
|
||||||
|
[index + 1, 1, 1],
|
||||||
|
[menu.menu, 1, 1],
|
||||||
|
[createCheckbox('accessAdd', menu,index), 1, 1],
|
||||||
|
[createCheckbox('accessUpdate', menu,index), 1, 1],
|
||||||
|
[createCheckbox('accessRead', menu,index), 1, 1],
|
||||||
|
[createCheckbox('accessDelete', menu,index), 1, 1]
|
||||||
|
]
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="d-flex flex-column gap-1 mx-1 pa-7 pt-0 pb-0">
|
<div class="d-flex flex-column gap-1 mx-1 pa-7 pt-0 pb-0">
|
||||||
<!-- {{roleMenuById.data}} -->
|
|
||||||
<!-- {{dataMenu}} -->
|
|
||||||
<!-- {{data}} -->
|
|
||||||
<pre>{{ data }}</pre>
|
|
||||||
<!-- <MasterTable :columns="columns" :data="data"/> -->
|
|
||||||
|
|
||||||
|
|
||||||
<Vueform ref="dataDetail" validate-on="change|step" method="post" :endpoint="onSubmit">
|
<Vueform ref="dataDetail" validate-on="change|step" method="post" :endpoint="onSubmit">
|
||||||
<GridElement
|
<GridElement
|
||||||
name="gridTable"
|
name="gridTable"
|
||||||
:presets="['grid-table']"
|
:widths="['80px', '','90px','90px','90px','90px']"
|
||||||
:cols="5"
|
:presets="['grid']"
|
||||||
:rows="2"
|
:cols="6"
|
||||||
|
:rows="1+data.length"
|
||||||
:grid="[
|
:grid="[
|
||||||
[
|
[
|
||||||
|
['No', 1, 1, null, null],
|
||||||
['Nama Menu', 1, 1, null, null],
|
['Nama Menu', 1, 1, null, null],
|
||||||
['Tambah', 1, 1, null, null],
|
['Tambah', 1, 1, null, null],
|
||||||
['Ubah', 1, 1, null, null],
|
['Ubah', 1, 1, null, null],
|
||||||
['Baca', 1, 1, null, null],
|
['Baca', 1, 1, null, null],
|
||||||
['Hapus', 1, 1, null, null],
|
['Hapus', 1, 1, null, null],
|
||||||
],
|
],
|
||||||
[
|
...data.map((menu:any) => createMenuRow(menu))
|
||||||
['', 1, 1, null, null],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: 'accessAdd',
|
|
||||||
type: 'checkbox',
|
|
||||||
text: 'Ya',
|
|
||||||
builder: {
|
|
||||||
type: 'checkbox',
|
|
||||||
label: 'Checkbox',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: 'accessUpdate',
|
|
||||||
type: 'checkbox',
|
|
||||||
text: 'Ya',
|
|
||||||
builder: {
|
|
||||||
type: 'checkbox',
|
|
||||||
label: 'Checkbox',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: 'accessRead',
|
|
||||||
type: 'checkbox',
|
|
||||||
text: 'Ya',
|
|
||||||
builder: {
|
|
||||||
type: 'checkbox',
|
|
||||||
label: 'Checkbox',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: 'accessDelete',
|
|
||||||
type: 'checkbox',
|
|
||||||
text: 'Ya',
|
|
||||||
builder: {
|
|
||||||
type: 'checkbox',
|
|
||||||
label: 'Checkbox',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
]"
|
]"
|
||||||
/>
|
/>
|
||||||
<ButtonElement
|
<ButtonElement
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ onMounted(async() => {
|
|||||||
<MasterDialogModal v-if="state" :stateValue="state" @stateValue="val => state = val" >
|
<MasterDialogModal v-if="state" :stateValue="state" @stateValue="val => state = val" >
|
||||||
<template v-slot:text>
|
<template v-slot:text>
|
||||||
<!-- <p>coba ini</p> -->
|
<!-- <p>coba ini</p> -->
|
||||||
{{ type }}
|
<!-- {{ type }}-->
|
||||||
<MasterFormTypeUser v-if="type=='create'"/>
|
<MasterFormTypeUser v-if="type=='create'"/>
|
||||||
<MasterFormDetail1 v-if="type=='detail'"/>
|
<MasterFormDetail1 v-if="type=='detail'"/>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Reference in New Issue
Block a user