permission => บรรจุ แต่งตั้ง ย้าย โอน,สรรหา

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-08-02 16:13:24 +07:00
parent c8fef97125
commit d3b2733ad5
24 changed files with 206 additions and 99 deletions

View file

@ -30,7 +30,7 @@
use-chips
multiple
class="col-xs-12 col-sm-4"
v-if="statusPayment"
v-if="statusPayment && checkPermission($route)?.attrIsUpdate"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="blue" />
@ -43,7 +43,7 @@
round
flat
color="blue"
v-if="statusPayment"
v-if="statusPayment && checkPermission($route)?.attrIsUpdate"
@click="uploadFile"
>
<q-tooltip v-if="setSeat == false">อัปโหลดที่นั่งสอบ</q-tooltip>
@ -71,6 +71,7 @@
</div>
<div>
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
size="md"
icon="mdi-playlist-check"
round
@ -125,7 +126,7 @@
round
flat
color="indigo"
v-if="statusPayment && setSeat == true"
v-if="statusPayment && setSeat == true && checkPermission($route)?.attrIsUpdate"
@click="candidateToPlacement"
>
<q-tooltip>บรรจานการคดเลอก</q-tooltip>
@ -209,7 +210,7 @@
</template>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width>
<q-th auto-width v-if="checkPermission($route)?.attrIsUpdate">
<q-checkbox v-model="props.selected" />
</q-th>
<q-th auto-width v-if="boss == true" />
@ -232,6 +233,7 @@
</template>
<script setup lang="ts">
import { ref, useAttrs, watch, watchEffect } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";

View file

@ -23,6 +23,7 @@
<q-tr :props="props" class="cursor-pointer">
<q-td>
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
dense
size="12px"
flat
@ -34,6 +35,7 @@
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
<q-btn
v-if="checkPermission($route)?.attrIsDelete"
dense
size="12px"
flat
@ -61,7 +63,9 @@
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="clickDetail(props.row.id)"
@click="
checkPermission($route)?.attrIsGet && clickDetail(props.row.id)
"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
@ -80,7 +84,9 @@
round
color="green"
@click.stop.prevent="clickEdit(props.row.id)"
v-if="col.value == null"
v-if="
col.value == null && checkPermission($route)?.attrIsUpdate
"
>
<q-icon name="mdi-file-excel-outline" size="20px" />
<!-- นำเขาไฟลผลคะแนนสอบ -->
@ -89,6 +95,7 @@
<div v-else>
{{ col.value }}
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
dense
size="12px"
flat
@ -101,6 +108,7 @@
</q-btn>
<q-btn
v-if="checkPermission($route)?.attrIsGet"
dense
size="12px"
flat
@ -109,7 +117,9 @@
@click.stop.prevent="clickPassExam(props.row.id)"
icon="mdi-clipboard-arrow-down"
>
<q-tooltip>ดาวนโหลดรายชอผสอบคดเลอกคนพการได</q-tooltip>
<q-tooltip
>ดาวนโหลดรายชอผสอบคดเลอกคนพการได</q-tooltip
>
</q-btn>
</div>
</div>
@ -121,7 +131,10 @@
color="green"
round
@click.stop.prevent="clickUpload(props.row.id)"
v-if="col.value == null || col.value == '0'"
v-if="
(col.value == null || col.value == '0') &&
checkPermission($route)?.attrIsUpdate
"
>
<q-icon name="mdi-file-excel-outline" size="20px" />
<q-tooltip>นำเขาไฟลสมครสอบ</q-tooltip>
@ -130,6 +143,7 @@
{{ col.value }}
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
dense
size="12px"
flat
@ -142,6 +156,7 @@
</q-btn>
<q-btn
v-if="checkPermission($route)?.attrIsGet"
dense
size="12px"
flat
@ -158,7 +173,6 @@
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</Table>
@ -359,6 +373,7 @@
</template>
<script setup lang="ts">
import type { QTableProps } from "quasar";
import { checkPermission } from "@/utils/permissions";
import { onMounted, ref } from "vue";
import { useRouter } from "vue-router";
import { useQuasar } from "quasar";

View file

@ -21,7 +21,9 @@
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="viewDetail(props.row)"
@click="
checkPermission($route)?.attrIsGet && viewDetail(props.row)
"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
@ -49,6 +51,7 @@
</template>
<script setup lang="ts">
import type { QTableProps } from "quasar";
import { checkPermission } from "@/utils/permissions";
import { onMounted, ref } from "vue";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";

View file

@ -23,6 +23,7 @@
<q-tr :props="props" class="cursor-pointer">
<q-td>
<q-btn
v-if="checkPermission($route)?.attrIsDelete"
dense
size="12px"
flat
@ -38,7 +39,11 @@
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="clickEdit(props.row)"
@click="
checkPermission($route)?.attrIsUpdate
? clickEdit(props.row)
: undefined
"
>
<div v-if="col.name == 'no'" class="table_ellipsis2">
{{ props.rowIndex + 1 }}
@ -69,7 +74,6 @@
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</Table>
@ -77,6 +81,7 @@
</q-card>
</template>
<script setup lang="ts">
import { checkPermission } from "@/utils/permissions";
import type { QTableProps } from "quasar";
import { onMounted, ref } from "vue";
import { useQuasar } from "quasar";
@ -221,11 +226,11 @@ const fetchData = async () => {
.get(config.API.periodExamType("all"))
.then((res) => {
const data = res.data.result;
console.log("🚀 ~ .then ~ data:", data)
console.log("🚀 ~ .then ~ data:", data);
let result: ResponsePeriodExam[] = [];
if (data.length > 0) {
data.map((r: RequestPeriodExam) => {
const positionData: ResponsePosition[] = [];
const positionData: any[] = [];
r.positionExam.map((r: RequestPosition) => {
positionData.push({
id: r.id,
@ -237,7 +242,7 @@ const fetchData = async () => {
id: r.typeId,
name: r.typeName,
},
highDegree: r.highDegree,
highDegree: Boolean(r.highDegree),
});
});
const bankData: ResponsePayment[] = [];

View file

@ -97,14 +97,17 @@
>
<template #columns="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-td auto-width v-if="checkPermission($route)?.attrIsUpdate">
<q-checkbox v-model="props.selected" />
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="viewDetail(props.row.id, props.row.status)"
@click="
checkPermission($route)?.attrIsUpdate &&
viewDetail(props.row.id, props.row.status)
"
>
<div v-if="col.name == 'no'" class="table_ellipsis">
{{ (page - 1) * pageSize + props.rowIndex + 1 }}
@ -217,6 +220,7 @@
</template>
<script setup lang="ts">
import type { QTableProps } from "quasar";
import { checkPermission } from "@/utils/permissions";
import { onMounted, ref, watch } from "vue";
import { useRouter, useRoute } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";