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";

View file

@ -310,7 +310,7 @@ function helpPost() {
await http
.post(config.API.placemenHelpGov, formData)
.then(async () => {
await router.push("/help-government");
await router.push("/placement/help-government");
await success($q, "ดำเนินการสำเร็จ");
})
.catch((e) => {
@ -333,7 +333,7 @@ function repatriationPost() {
await http
.post(config.API.placemenRepatriation, formData)
.then(async () => {
await router.push("/repatriate");
await router.push("/placement/repatriate");
await success($q, "ดำเนินการสำเร็จ");
})
.catch((e) => {
@ -356,7 +356,7 @@ function appointPost() {
await http
.post(config.API.placemenAppointment, formData)
.then(async () => {
await router.push("/appoint-promote");
await router.push("/placement/appoint-promote");
await success($q, "ดำเนินการสำเร็จ");
})
.catch((e) => {
@ -386,7 +386,7 @@ function outPost() {
await http
.post(config.API.retirementOut, formData)
.then(async () => {
await router.push("/dismiss-order");
await router.push("/retirement/dismiss-order");
await success($q, "ดำเนินการสำเร็จ");
})
.catch((e) => {
@ -409,7 +409,7 @@ function otherPost() {
await http
.post(config.API.placemenOther, formData)
.then(async () => {
await router.push("/other");
await router.push("/placement/other");
await success($q, "ดำเนินการสำเร็จ");
})
.catch((e) => {
@ -461,8 +461,8 @@ function clickSaveDeceased() {
await http
.post(config.API.listDeceased(), formData)
.then(async () => {
await router.push("/retirement/deceased");
await success($q, "บันทึกข้อมูลสำเร็จ");
await router.push("/deceased");
})
.catch((e) => {
messageError($q, e);

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -190,7 +191,7 @@ onMounted(async () => {
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div v-if="status !== 'DONE' && status !== 'REPORT'">
<div v-if="status !== 'DONE' && status !== 'REPORT' && checkPermission($route)?.attrIsUpdate">
<div class="q-gutter-sm" v-if="!edit">
<q-btn
outline

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import { checkPermission } from "@/utils/permissions";
import type { QTableProps } from "quasar";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
@ -541,6 +542,7 @@ function onSave(data: any) {
<div class="col-12">
<div class="row col-12">
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
@click="popup()"
size="14px"
flat
@ -609,7 +611,13 @@ function onSave(data: any) {
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-td
auto-width
v-if="
checkPermission($route)?.attrIsUpdate ||
checkPermission($route)?.attrIsDelete
"
>
<q-btn
v-if="
props.row.status !== 'REPORT' &&
@ -627,25 +635,8 @@ function onSave(data: any) {
transition-hide="jump-up"
>
<q-list dense style="min-width: 200px">
<!-- <q-item
clickable
v-close-popup
@click="openModalEmployee(props.row.personalId)"
>
<q-item-section
style="min-width: 0px"
avatar
class="q-py-sm"
>
<q-icon
color="primary"
size="xs"
name="mdi-bookmark-outline"
/>
</q-item-section>
<q-item-section>กำหนดตำแหน</q-item-section>
</q-item> -->
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openModalTree(props.row, 'SLIP')"
@ -666,6 +657,7 @@ function onSave(data: any) {
>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openModalTree(props.row, 'MOVE')"
@ -686,6 +678,7 @@ function onSave(data: any) {
>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsDelete"
clickable
v-close-popup
@click="clickDelete(props.row.id)"
@ -708,7 +701,9 @@ function onSave(data: any) {
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
@click="
checkPermission($route)?.attrIsGet && nextPage(props.row.id)
"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
@ -764,7 +759,6 @@ function onSave(data: any) {
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { onMounted, ref, reactive } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -172,7 +173,13 @@ onMounted(async () => {
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div v-if="status !== 'DONE' && status !== 'REPORT'">
<div
v-if="
status !== 'DONE' &&
status !== 'REPORT' &&
checkPermission($route)?.attrIsUpdate
"
>
<div class="q-gutter-sm" v-if="!edit">
<q-btn
outline

View file

@ -1,6 +1,7 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import type { QTableProps } from "quasar";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -334,6 +335,7 @@ onMounted(() => {
<div class="col-12">
<div class="row col-12">
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
@click="sendToCommand()"
size="14px"
flat
@ -402,7 +404,13 @@ onMounted(() => {
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-td
auto-width
v-if="
checkPermission($route)?.attrIsUpdate ||
checkPermission($route)?.attrIsDelete
"
>
<q-btn
v-if="
props.row.status !== 'REPORT' &&
@ -421,6 +429,7 @@ onMounted(() => {
>
<q-list dense style="min-width: 250px">
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openModalTree(props.row, 'APPOINT')"
@ -441,6 +450,7 @@ onMounted(() => {
>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openModalTree(props.row, 'SLIP')"
@ -461,6 +471,7 @@ onMounted(() => {
>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openModalTree(props.row, 'MOVE')"
@ -481,6 +492,7 @@ onMounted(() => {
>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsDelete"
clickable
v-close-popup
@click="clickDelete(props.row.id)"
@ -503,7 +515,9 @@ onMounted(() => {
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
@click="
checkPermission($route)?.attrIsGet && nextPage(props.row.id)
"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
@ -559,7 +573,6 @@ onMounted(() => {
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { onMounted, ref, reactive } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import { usePlacementDataStore } from "@/modules/05_placement/store";
@ -298,10 +299,10 @@ async function expiredAccountFilter() {
await DataStore.DataMain(updatedRows);
}
function paginationLabel(start: number, end: number, total: number){
function paginationLabel(start: number, end: number, total: number) {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
}
/** filter ใน dropdown ครั้งที่ */
@ -542,7 +543,10 @@ onMounted(async () => {
<q-tr
:props="props"
class="cursor-pointer"
@click="redirectToPage(props.row.id)"
@click="
checkPermission($route)?.attrIsGet &&
redirectToPage(props.row.id)
"
>
<q-td key="id" :props="props">
{{ props.rowIndex + 1 }}

View file

@ -1,6 +1,7 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { useQuasar } from "quasar";
import { checkPermission } from "@/utils/permissions";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
@ -168,7 +169,13 @@ onMounted(async () => {
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div v-if="status !== 'DONE' && status !== 'REPORT'">
<div
v-if="
status !== 'DONE' &&
status !== 'REPORT' &&
checkPermission($route)?.attrIsUpdate
"
>
<div class="q-gutter-sm" v-if="!edit">
<q-btn
outline

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
@ -201,14 +202,15 @@ const clickDelete = (id: string) => {
showLoader();
await http
.delete(config.API.otherByid(id))
.then(() => {
success($q, "ลบข้อมูลสำเร็จ");
.then(async () => {
await fecthlistOthet();
await success($q, "ลบข้อมูลสำเร็จ");
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
fecthlistOthet();
hideLoader();
});
});
};
@ -239,6 +241,7 @@ onMounted(() => {
<div class="col-12">
<div class="row col-12">
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
@click="popup()"
size="14px"
flat
@ -305,15 +308,12 @@ onMounted(() => {
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-td auto-width v-if="checkPermission($route)?.attrIsDelete">
<q-btn
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
color=" red-7"
v-if="
props.row.status !== 'REPORT' &&
props.row.status !== 'DONE'
"
flat
round
@ -327,7 +327,9 @@ onMounted(() => {
<q-td
v-for="col in props.cols"
:key="col.id"
@click.stop.prevent="nextPage(props.row.id)"
@click.stop.prevent="
checkPermission($route)?.attrIsGet && nextPage(props.row.id)
"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, onMounted, watch, reactive, computed } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar, QForm } from "quasar";
import type { QTableProps } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
@ -788,7 +789,10 @@ onMounted(async () => {
<q-tr :props="props">
<q-td auto-width>
<q-btn
v-if="props.row.statusId !== 'CONTAIN'"
v-if="
props.row.statusId !== 'CONTAIN' &&
checkPermission($route)?.attrIsUpdate
"
icon="mdi-dots-vertical"
size="12px"
color="grey-7"
@ -1163,7 +1167,6 @@ onMounted(async () => {
</div>
</template>
</q-td>
</q-tr>
</template>
</Table>

View file

@ -1,6 +1,7 @@
<script setup lang="ts">
import { ref, useAttrs } from "vue";
import { QTooltip, useQuasar } from "quasar";
import { checkPermission } from "@/utils/permissions";
const $q = useQuasar();
const attrs = ref<any>(useAttrs());
@ -172,7 +173,7 @@ function updateModaladdlist() {
color="primary"
icon="mdi-account-arrow-right"
@click="updateModaladdlist"
v-if="displayAdd"
v-if="displayAdd && checkPermission($route)?.attrIsUpdate"
>
<q-tooltip>งรายชอไปยงหนวยงาน</q-tooltip>
</q-btn>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -503,7 +504,10 @@ onMounted(async () => {
label="แก้ไข"
style="width: 80px"
@click="edit = !edit"
v-if="!(status == 'REPORT' || status == 'DONE')"
v-if="
!(status == 'REPORT' || status == 'DONE') &&
checkPermission($route)?.attrIsUpdate
"
/>
</div>
<div class="q-gutter-sm" v-else>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, computed, onMounted } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import { useTransferDataStore } from "@/modules/05_placement/store";
@ -364,10 +365,18 @@ onMounted(() => {
<div class="row q-pa-md">
<div class="col-12">
<div class="row col-12">
<q-btn flat round color="primary" @click="add" icon="mdi-plus">
<q-btn
v-if="checkPermission($route)?.attrIsCreate"
flat
round
color="primary"
@click="add"
icon="mdi-plus"
>
<q-tooltip>เพมขอม</q-tooltip>
</q-btn>
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
size="14px"
flat
round
@ -433,7 +442,13 @@ onMounted(() => {
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-td
auto-width
v-if="
checkPermission($route)?.attrIsUpdate ||
checkPermission($route)?.attrIsDelete
"
>
<q-btn
v-if="
props.row.status !== 'REPORT' &&
@ -452,6 +467,7 @@ onMounted(() => {
>
<q-list dense style="min-width: 100px">
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openModalTree(props.row.id, props.row)"
@ -477,6 +493,7 @@ onMounted(() => {
>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable
v-close-popup
@click="openUpload(props.row.id)"
@ -504,6 +521,7 @@ onMounted(() => {
<q-item-section>ปโหลดเอกสาร</q-item-section>
</q-item>
<q-item
v-if="checkPermission($route)?.attrIsDelete"
clickable
v-close-popup
@click="openDelete(props.row.id)"
@ -539,7 +557,9 @@ onMounted(() => {
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
@click="
checkPermission($route)?.attrIsGet && nextPage(props.row.id)
"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, computed, onMounted } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -226,6 +227,7 @@ onMounted(async () => {
<div class="col-12">
<div class="row col-12">
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
flat
round
size="14px"
@ -294,20 +296,18 @@ onMounted(async () => {
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
v-if="
props.row.status !== 'REPORT' &&
props.row.status !== 'DONE' &&
checkPermission($route)?.attrIsDelete
"
icon="delete"
size="14px"
flat
round
dense
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
color="red-7"
@click="clickDelete(props.row.fullname, props.row.id)"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
@ -315,7 +315,10 @@ onMounted(async () => {
<q-td
v-for="col in props.cols"
:key="col.id"
@click.stop.prevent="openDetail(props.row.id)"
@click.stop.prevent="
checkPermission($route)?.attrIsGet &&
openDetail(props.row.id)
"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -173,7 +174,10 @@ onMounted(() => {
label="แก้ไข"
style="width: 80px"
@click="edit = !edit"
v-if="!(status == 'REPORT' || status == 'DONE')"
v-if="
!(status == 'REPORT' || status == 'DONE') &&
checkPermission($route)?.attrIsUpdate
"
/>
</div>
<div class="q-gutter-sm" v-else>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import { checkPermission } from "@/utils/permissions";
import type { QTableProps } from "quasar";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
@ -184,6 +185,7 @@ onMounted(async () => {
<div class="col-12">
<div class="row col-12">
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
@click="openModalOrder"
size="14px"
flat
@ -254,7 +256,10 @@ onMounted(async () => {
v-for="col in props.cols"
:key="col.id"
class="cursor-pointer"
@click="router.push(`/placement/transfer/${props.row.id}`)"
@click="
checkPermission($route)?.attrIsGet &&
router.push(`/placement/transfer/${props.row.id}`)
"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}

View file

@ -3,6 +3,7 @@ import { onMounted, ref } from "vue";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { checkPermission } from "@/utils/permissions";
// import CurrencyInput from "@/components/CurruncyInput.vue";
import http from "@/plugins/http";
@ -523,7 +524,9 @@ onMounted(async () => {
style="width: 80px"
@click="edit = !edit"
v-if="
!(responseData.status == 'REPORT' || responseData.status == 'DONE')
!(
responseData.status == 'REPORT' || responseData.status == 'DONE'
) && checkPermission($route)?.attrIsUpdate
"
/>
</div>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
@ -166,7 +167,10 @@ onMounted(() => {
label="แก้ไข"
style="width: 80px"
@click="edit = !edit"
v-if="!(status == 'REPORT' || status == 'DONE')"
v-if="
!(status == 'REPORT' || status == 'DONE') &&
checkPermission($route)?.attrIsUpdate
"
/>
</div>
<div class="q-gutter-sm" v-else>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
@ -223,9 +224,9 @@ const clickDelete = async (id: string) => {
showLoader();
http
.delete(config.API.officerMainDelete(id))
.then(() => {
getData();
success($q, "ลบข้อมูลสำเร็จ");
.then(async () => {
await getData();
await success($q, "ลบข้อมูลสำเร็จ");
})
.catch((e) => {
messageError($q, e);
@ -248,6 +249,7 @@ onMounted(async () => {
<div class="col-12">
<div class="row col-12">
<q-btn
v-if="checkPermission($route)?.attrIsUpdate"
@click="openModalOrder"
size="14px"
flat
@ -316,20 +318,18 @@ onMounted(async () => {
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
v-if="
props.row.status !== 'REPORT' &&
props.row.status !== 'DONE' &&
checkPermission($route)?.attrIsDelete
"
icon="delete"
size="14px"
flat
round
dense
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
color="red-7"
@click="clickDelete(props.row.id)"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
@ -337,7 +337,10 @@ onMounted(async () => {
<q-td
v-for="col in props.cols"
:key="col.id"
@click.stop.prevent="openDetail(props.row.id)"
@click.stop.prevent="
checkPermission($route)?.attrIsGet &&
openDetail(props.row.id)
"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}

View file

@ -293,7 +293,7 @@ onMounted(async () => {
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td>
<q-icon
<!-- <q-icon
v-if="props.row.period_isActive == true"
name="mdi-close"
color="grey-5"
@ -306,7 +306,7 @@ onMounted(async () => {
color="positive"
class="text-h5"
@click="clickEdit(props.row)"
/>
/> -->
<q-btn
dense
size="12px"