KPI สิทธิ์

This commit is contained in:
STW_TTTY\stwtt 2024-08-07 17:26:54 +07:00
parent 0496b01da1
commit 6aa405e688
12 changed files with 126 additions and 44 deletions

View file

@ -51,6 +51,7 @@ const modalStatus = ref<boolean>(false);
// const modalScore = ref<boolean>(false);
const modalEdit = ref<boolean>(false);
const route = useRoute();
const checkRoutePermisson = ref<boolean>(route.name == "KPIDetailPage");
const id = ref<string>(route.params.id as string);
const isReadonly = <boolean>(route.name === "KPIEditEvaluator" ? true : false);
@ -495,11 +496,13 @@ onMounted(async () => {
<div class="q-gutter-x-sm">
<span
v-if="
(store.tabMain === '1' &&
(!checkRoutePermisson &&
store.tabMain === '1' &&
store.dataEvaluation.posTypeName != 'อำนวยการ' &&
store.dataEvaluation.posTypeName != 'บริหาร' &&
store.indicatorWeightTotal != 100) ||
(store.dataEvaluation.posTypeName == 'อำนวยการ' &&
(!checkRoutePermisson &&
store.dataEvaluation.posTypeName == 'อำนวยการ' &&
store.dataEvaluation.posTypeName == 'บริหาร' &&
(store.indicatorWeight1Total != 100 ||
store.indicatorWeight2Total != 20) &&
@ -512,7 +515,8 @@ onMounted(async () => {
<q-btn
v-if="
store.rolePerson == 'USER' &&
store.dataEvaluation.evaluationStatus == 'NEW'
store.dataEvaluation.evaluationStatus == 'NEW' &&
!checkRoutePermisson
"
:disabled="
(store.dataEvaluation.posTypeName != 'อำนวยการ' &&
@ -535,6 +539,7 @@ onMounted(async () => {
</q-btn>
<q-btn
v-if="
!checkRoutePermisson &&
store.rolePerson == 'USER' &&
store.tabMain == '2' &&
store.dataEvaluation.evaluationStatus == 'APPROVE'
@ -551,6 +556,7 @@ onMounted(async () => {
</q-btn>
<q-btn
v-if="
!checkRoutePermisson &&
store.rolePerson == 'USER' &&
store.dataEvaluation.evaluationStatus == 'EVALUATING' &&
store.tabMain == '3'
@ -584,6 +590,7 @@ onMounted(async () => {
</q-btn> -->
<q-btn
v-if="
!checkRoutePermisson &&
store.rolePerson == 'USER' &&
store.tabOpen < 3 &&
store.dataEvaluation.evaluationStatus != 'NEW' &&
@ -604,6 +611,7 @@ onMounted(async () => {
<q-btn
v-if="
!checkRoutePermisson &&
store.rolePerson == 'EVALUATOR' &&
store.tabMain === '3' &&
store.dataEvaluation.evaluationStatus ===
@ -866,7 +874,7 @@ onMounted(async () => {
<div class="row">
<div class="col-10">
<q-select
:readonly="
:readonly="checkRoutePermisson||
!(
store.dataEvaluation.evaluationStatus === 'NEW' &&
store.rolePerson === 'USER'
@ -907,7 +915,7 @@ onMounted(async () => {
<div class="row">
<div class="col-10">
<q-select
:readonly="
:readonly="checkRoutePermisson||
!(
store.dataEvaluation.evaluationStatus === 'NEW' &&
store.rolePerson === 'USER'
@ -959,7 +967,7 @@ onMounted(async () => {
<div class="row">
<div class="col-10">
<q-select
:readonly="
:readonly="checkRoutePermisson||
!(
store.dataEvaluation.evaluationStatus === 'NEW' &&
store.rolePerson === 'USER'
@ -1014,9 +1022,9 @@ onMounted(async () => {
</div>
</div>
</q-card-section>
<q-separator />
<q-separator v-if="!checkRoutePermisson"/>
<q-card-actions
v-if="
v-if="!checkRoutePermisson&&
store.dataEvaluation.evaluationStatus === 'NEW' &&
store.rolePerson === 'USER'
"

View file

@ -164,6 +164,10 @@ function redirectViewDetail(id: string) {
store.tabMain = "1";
router.push(`KPI-list/${id}`);
}
function redirectViewDetailOnly(id: string) {
store.tabMain = "1";
router.push(`KPI-list-detail/${id}`);
}
function clearYear() {
year.value = null;
@ -262,7 +266,14 @@ onMounted(async () => {
@update:model-value="changRound"
:disable="year === null"
/>
<q-btn v-if="checkPermission($route)?.attrIsCreate" round color="primary" flat icon="add" @click="onDialog()">
<q-btn
v-if="checkPermission($route)?.attrIsCreate"
round
color="primary"
flat
icon="add"
@click="onDialog()"
>
<q-tooltip>เพมผประเม</q-tooltip>
</q-btn>
<!-- <q-select
@ -332,18 +343,39 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.id"
@click="checkPermission($route)?.attrIsUpdate ? redirectViewDetail(props.row.id):''"
>
<q-tr :props="props">
<q-td auto-width>
<q-btn
v-if="checkPermission($route)?.attrIsGet"
@click="redirectViewDetailOnly(props.row.id)"
round
color="info"
flat
dense
icon="mdi-eye"
>
<q-tooltip>รายละเอยด</q-tooltip>
</q-btn>
<q-btn
v-if="checkPermission($route)?.attrIsUpdate && checkPermission($route)?.attrIsGet"
@click="redirectViewDetail(props.row.id)"
round
color="edit"
flat
dense
icon="edit"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'name'">
{{
`${props.row.prefix}${props.row.firstname} ${props.row.lastname}`

View file

@ -31,7 +31,7 @@ import DialogHeader from "@/components/DialogHeader.vue";
* importStore
*/
import { useCounterMixin } from "@/stores/mixin";
import { checkPermission } from "@/utils/permissions";
/**
* use
*/
@ -494,6 +494,7 @@ onMounted(() => {
<q-toolbar style="padding: 0">
<div class="row q-gutter-sm">
<q-select
:readonly="!checkPermission($route)?.attrIsGet"
style="min-width: 100px"
dense
hide-bottom-space
@ -521,6 +522,7 @@ onMounted(() => {
<q-space />
<q-btn
v-if="checkPermission($route)?.attrIsGet"
flat
round
color="primary"

View file

@ -515,6 +515,7 @@ onMounted(() => {
dense
color="orange"
icon="mdi-close"
@click="onClickAction('close', props.row.id)"
>
<q-tooltip>ดรอบ</q-tooltip>
</q-btn>