check permission list เมนูทะเบียนประวัติ
This commit is contained in:
parent
51707646e7
commit
6f2af7bb77
3 changed files with 82 additions and 11 deletions
|
|
@ -10,7 +10,11 @@ interface DataOption2 {
|
|||
id: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
interface DataOptionSys {
|
||||
id: string;
|
||||
name: string;
|
||||
system: string;
|
||||
}
|
||||
interface DataOptionInsignia {
|
||||
id: string;
|
||||
name: string;
|
||||
|
|
@ -55,4 +59,5 @@ export type {
|
|||
InformationOps,
|
||||
AddressOps,
|
||||
InsigniaOps,
|
||||
DataOptionSys,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, onMounted } from "vue";
|
||||
import { checkPermission } from "@/utils/permissions";
|
||||
import {
|
||||
checkPermission,
|
||||
checkPermissionCreate,
|
||||
checkPermissionList,
|
||||
} from "@/utils/permissions";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { useQuasar } from "quasar";
|
||||
import http from "@/plugins/http";
|
||||
|
|
@ -9,7 +13,10 @@ import axios from "axios";
|
|||
/**
|
||||
* importType
|
||||
*/
|
||||
import type { DataOption } from "@/modules/04_registryPerson/interface/index/Main";
|
||||
import type {
|
||||
DataOption,
|
||||
DataOptionSys,
|
||||
} from "@/modules/04_registryPerson/interface/index/Main";
|
||||
import type { ResponseObject } from "@/modules/04_registryPerson/interface/response/Profile";
|
||||
|
||||
/**
|
||||
|
|
@ -57,41 +64,49 @@ const profileId = ref<string>(route.params.id.toString());
|
|||
const empType = ref<string>(pathRegistryEmp(route.name?.toString() ?? ""));
|
||||
|
||||
const formDetail = ref<ResponseObject>();
|
||||
const itemsMenu = ref<DataOption[]>([
|
||||
const itemsMenu = ref<DataOptionSys[]>([
|
||||
{
|
||||
id: "1",
|
||||
name: "ช่วยราชการ",
|
||||
system: "SYS_TEMPDUTY",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "ส่งตัวกลับ",
|
||||
system: "SYS_TEMPDUTY2",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "แต่งตั้ง-เลื่อน-ย้าย",
|
||||
system: "SYS_PROMOTION_OFFICER",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
name: "ถึงแก่กรรม",
|
||||
system: "SYS_PASSAWAY",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
name: "ให้ออกจากราชการ",
|
||||
system: "SYS_DISMISS",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
name: "อื่นๆ",
|
||||
system: "SYS_PLACEMENT_OTHER",
|
||||
},
|
||||
]);
|
||||
|
||||
const itemsMenuEmployee = ref<DataOption[]>([
|
||||
const itemsMenuEmployee = ref<DataOptionSys[]>([
|
||||
{
|
||||
id: "1",
|
||||
name: "ปรับระดับชั้นงาน - ย้าย",
|
||||
system: "SYS_PROMOTION_EMP",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "ถึงแก่กรรม",
|
||||
system: "SYS_PASSAWAY",
|
||||
},
|
||||
]);
|
||||
|
||||
|
|
@ -634,7 +649,20 @@ onMounted(async () => {
|
|||
}}
|
||||
</div>
|
||||
<q-space />
|
||||
|
||||
<!-- list menu ของข้าราชการฯ -->
|
||||
<q-btn-dropdown
|
||||
v-if="
|
||||
empType === '' &&
|
||||
checkPermissionList([
|
||||
'SYS_TEMPDUTY',
|
||||
'SYS_TEMPDUTY2',
|
||||
'SYS_PROMOTION_OFFICER',
|
||||
'SYS_PASSAWAY',
|
||||
'SYS_DISMISS',
|
||||
'SYS_PLACEMENT_OTHER',
|
||||
])
|
||||
"
|
||||
size="md"
|
||||
rounded
|
||||
unelevated
|
||||
|
|
@ -643,12 +671,9 @@ onMounted(async () => {
|
|||
icon="mdi-home-export-outline"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
>
|
||||
<q-list
|
||||
v-if="empType === ''"
|
||||
v-for="(item, index) in itemsMenu"
|
||||
:key="index"
|
||||
>
|
||||
<q-list v-for="(item, index) in itemsMenu" :key="index">
|
||||
<q-item
|
||||
v-if="checkPermissionCreate(item.system)"
|
||||
clickable
|
||||
@click="
|
||||
item.name == 'ช่วยราชการ'
|
||||
|
|
@ -670,8 +695,25 @@ onMounted(async () => {
|
|||
<q-item-section>{{ item.name }}</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
<q-list v-else v-for="(item, index) in itemsMenuEmployee" :key="item.id">
|
||||
</q-btn-dropdown>
|
||||
|
||||
<!-- list menu ของลูกจ้างประจำ -->
|
||||
<q-btn-dropdown
|
||||
v-if="
|
||||
empType === '-employee' &&
|
||||
checkPermissionList(['SYS_PROMOTION_EMP', 'SYS_PASSAWAY'])
|
||||
"
|
||||
size="md"
|
||||
rounded
|
||||
unelevated
|
||||
color="grey-4"
|
||||
text-color="red"
|
||||
icon="mdi-home-export-outline"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
>
|
||||
<q-list v-for="item in itemsMenuEmployee" :key="item.id">
|
||||
<q-item
|
||||
v-if="checkPermissionCreate(item.system)"
|
||||
clickable
|
||||
@click="
|
||||
item.name == 'ปรับระดับชั้นงาน - ย้าย'
|
||||
|
|
|
|||
|
|
@ -18,3 +18,27 @@ export function checkPermission(route: any): RoleData | null {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function checkPermissionCreate(sys: string) {
|
||||
if (storeMenu.permissions && sys) {
|
||||
return (
|
||||
storeMenu.permissions.roles.find(
|
||||
(item) => item.authSysId === sys && item.attrIsCreate
|
||||
) ?? false
|
||||
);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export function checkPermissionList(sys: string[]) {
|
||||
if (storeMenu.permissions && sys) {
|
||||
return (
|
||||
storeMenu.permissions.roles.some(
|
||||
(item) => sys.includes(item.authSysId) && item.attrIsCreate
|
||||
) ?? false
|
||||
);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue