KPI สิทธิ์
This commit is contained in:
parent
0496b01da1
commit
6aa405e688
12 changed files with 126 additions and 44 deletions
|
|
@ -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'
|
||||
"
|
||||
|
|
|
|||
|
|
@ -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}`
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -515,6 +515,7 @@ onMounted(() => {
|
|||
dense
|
||||
color="orange"
|
||||
icon="mdi-close"
|
||||
@click="onClickAction('close', props.row.id)"
|
||||
>
|
||||
<q-tooltip>ปิดรอบ</q-tooltip>
|
||||
</q-btn>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue