สิทธ์ ออกคำสั่งลงโทษทางวินัย

This commit is contained in:
STW_TTTY\stwtt 2024-08-08 18:09:38 +07:00
parent 37f0ecbc1e
commit a7bd09d0f1
12 changed files with 240 additions and 83 deletions

View file

@ -31,7 +31,9 @@ const router = useRouter();
const step = ref<number>(0); const step = ref<number>(0);
const stepper = ref<QStepper>(); const stepper = ref<QStepper>();
const orderId = ref<string>(""); const orderId = ref<string>("");
const checkRoutePermisson = ref<boolean>(
route.name == "disciplineOrderDatailOnly"
);
onUnmounted(() => { onUnmounted(() => {
destroyLocalStorage(); destroyLocalStorage();
DataStore.typeOrder = ""; DataStore.typeOrder = "";
@ -115,7 +117,8 @@ onMounted(() => {
class="q-mr-sm" class="q-mr-sm"
@click=" @click="
route.name == 'disciplineOrderDatail' || route.name == 'disciplineOrderDatail' ||
route.name == 'disciplineOrderAdd' route.name == 'disciplineOrderAdd' ||
route.name == 'disciplineOrderDatailOnly'
? router.push(`/discipline-order`) ? router.push(`/discipline-order`)
: router.push(`/order`) : router.push(`/order`)
" "

View file

@ -13,6 +13,8 @@ import type {
DataOptionInsigniaType, DataOptionInsigniaType,
} from "@/modules/10_order/interface/index/Main"; } from "@/modules/10_order/interface/index/Main";
import { checkPermission } from "@/utils/permissions";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
const myForm = ref<QForm>(); const myForm = ref<QForm>();
@ -154,7 +156,14 @@ function updatemodalPersonal(modal: boolean) {
</script> </script>
<template> <template>
<q-btn round flat color="blue" icon="mdi-history" @click="clickOpenpopup"> <q-btn
v-if="checkPermission($route)?.attrIsGet"
round
flat
color="blue"
icon="mdi-history"
@click="clickOpenpopup"
>
<q-tooltip>แสดงประวออกคำส</q-tooltip></q-btn <q-tooltip>แสดงประวออกคำส</q-tooltip></q-btn
> >
<q-dialog v-model="modal"> <q-dialog v-model="modal">

View file

@ -32,7 +32,9 @@ const {
const $q = useQuasar(); // noti quasar const $q = useQuasar(); // noti quasar
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const checkRoutePermisson = ref<boolean>(
route.name == "disciplineOrderDatailOnly"
);
const orderId = route.params.orderid; const orderId = route.params.orderid;
const orderId_paramsName = route.name; const orderId_paramsName = route.name;
@ -909,6 +911,7 @@ const getClass = (val: boolean) => {
<div class="row col-12 q-col-gutter-x-lg q-col-gutter-y-md"> <div class="row col-12 q-col-gutter-x-lg q-col-gutter-y-md">
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
<q-select <q-select
:readonly="checkRoutePermisson"
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
@ -939,6 +942,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="nameOrder" v-model="nameOrder"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งเรื่อง'}`]" :rules="[(val) => !!val || `${'กรุณากรอกคำสั่งเรื่อง'}`]"
@ -952,6 +956,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="command" v-model="command"
hide-bottom-space hide-bottom-space
:label="`${'คำสั่งเลขที่'}`" :label="`${'คำสั่งเลขที่'}`"
@ -965,6 +970,7 @@ const getClass = (val: boolean) => {
v-model="dateYear" v-model="dateYear"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
year-picker year-picker
:enableTimePicker="false" :enableTimePicker="false"
> >
@ -975,6 +981,7 @@ const getClass = (val: boolean) => {
<template #trigger> <template #trigger>
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
:readonly="checkRoutePermisson"
:model-value="dateYear !== null ? dateYear + 543 : null" :model-value="dateYear !== null ? dateYear + 543 : null"
:rules="[(val) => !!val || `${'กรุณากรอก พ.ศ.'}`]" :rules="[(val) => !!val || `${'กรุณากรอก พ.ศ.'}`]"
:label="`${'พ.ศ.'}`" :label="`${'พ.ศ.'}`"
@ -993,6 +1000,7 @@ const getClass = (val: boolean) => {
v-model="dateCommand" v-model="dateCommand"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1008,6 +1016,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
hide-bottom-space hide-bottom-space
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
@ -1033,6 +1042,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="byOrder" v-model="byOrder"
:rules="[(val: string) => !!val || `${'กรุณาเลือกคำสั่งโดย'}`]" :rules="[(val: string) => !!val || `${'กรุณาเลือกคำสั่งโดย'}`]"
emit-value emit-value
@ -1066,6 +1076,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="nameCommand" v-model="nameCommand"
:rules="[(val: string) => !!val || `${'กรุณาเลือกผู้มีอำนาจลงนาม'}`]" :rules="[(val: string) => !!val || `${'กรุณาเลือกผู้มีอำนาจลงนาม'}`]"
hide-bottom-space hide-bottom-space
@ -1104,6 +1115,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="positionCommand" v-model="positionCommand"
:rules="[ :rules="[
(val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`, (val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`,
@ -1121,6 +1133,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="nameCommand" v-model="nameCommand"
:rules="[(val) => !!val || `${'กรุณากรอกผู้มีอำนาจลงนาม'}`]" :rules="[(val) => !!val || `${'กรุณากรอกผู้มีอำนาจลงนาม'}`]"
:label="`${'ผู้มีอำนาจลงนาม'}`" :label="`${'ผู้มีอำนาจลงนาม'}`"
@ -1135,6 +1148,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="positionCommand" v-model="positionCommand"
:rules="[ :rules="[
(val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`, (val) => !!val || `${'กรุณากรอกตำแหน่งผู้มีอำนาจลงนาม'}`,
@ -1168,6 +1182,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="examRound" v-model="examRound"
:rules="[(val: string) => !!val || `${'กรุณาเลือกรอบการสอบ'}`]" :rules="[(val: string) => !!val || `${'กรุณาเลือกรอบการสอบ'}`]"
hide-bottom-space hide-bottom-space
@ -1186,6 +1201,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="conclusionRegisterNo" v-model="conclusionRegisterNo"
:rules="[ :rules="[
@ -1203,6 +1219,7 @@ const getClass = (val: boolean) => {
v-model="conclusionRegisterDate" v-model="conclusionRegisterDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1218,6 +1235,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
hide-bottom-space hide-bottom-space
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
@ -1248,6 +1266,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="conclusionResultNo" v-model="conclusionResultNo"
:rules="[ :rules="[
(val) => (val) =>
@ -1263,6 +1282,7 @@ const getClass = (val: boolean) => {
v-model="conclusionResultDate" v-model="conclusionResultDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1277,6 +1297,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
hide-bottom-space hide-bottom-space
class="full-width datepicker" class="full-width datepicker"
@ -1318,6 +1339,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="meeting" v-model="meeting"
:rules="[(val) => !!val || `${'กรุณากรอกการประชุม ครั้งที่'}`]" :rules="[(val) => !!val || `${'กรุณากรอกการประชุม ครั้งที่'}`]"
@ -1330,6 +1352,7 @@ const getClass = (val: boolean) => {
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="dateMeeting" v-model="dateMeeting"
:locale="'th'" :locale="'th'"
:readonly="checkRoutePermisson"
autoApply autoApply
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
@ -1346,6 +1369,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
dateMeeting != null ? date2Thai(dateMeeting) : null dateMeeting != null ? date2Thai(dateMeeting) : null
@ -1377,6 +1401,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="conclusionReturnNo" v-model="conclusionReturnNo"
:rules="[ :rules="[
(val) => (val) =>
@ -1393,6 +1418,7 @@ const getClass = (val: boolean) => {
v-model="conclusionReturnDate" v-model="conclusionReturnDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1407,6 +1433,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
@ -1440,6 +1467,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="organizations" v-model="organizations"
:rules="[(val) => !!val || `${'กรุณากกรอกหน่วยงาน'}`]" :rules="[(val) => !!val || `${'กรุณากกรอกหน่วยงาน'}`]"
@ -1452,6 +1480,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="order" v-model="order"
:rules="[(val) => !!val || `${'กรุณาเลือกคำสั่งที่'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกคำสั่งที่'}`]"
:label="`${'คำสั่งที่'}`" :label="`${'คำสั่งที่'}`"
@ -1464,6 +1493,7 @@ const getClass = (val: boolean) => {
v-model="orderDate" v-model="orderDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1479,6 +1509,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value="orderDate != null ? date2Thai(orderDate) : null" :model-value="orderDate != null ? date2Thai(orderDate) : null"
:label="`${'ลงวันที่ '}`" :label="`${'ลงวันที่ '}`"
@ -1501,6 +1532,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="book" v-model="book"
:rules="[ :rules="[
(val) => !!val || `${'กรุณากกรอกหนังสือสำนักงาน ก.พ. ที่ นร'}`, (val) => !!val || `${'กรุณากกรอกหนังสือสำนักงาน ก.พ. ที่ นร'}`,
@ -1516,6 +1548,7 @@ const getClass = (val: boolean) => {
:locale="'th'" :locale="'th'"
autoApply autoApply
borderless borderless
:readonly="checkRoutePermisson"
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
> >
@ -1529,6 +1562,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
class="full-width datepicker" class="full-width datepicker"
:model-value="bookDate != null ? date2Thai(bookDate) : null" :model-value="bookDate != null ? date2Thai(bookDate) : null"
@ -1559,6 +1593,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="organizationsOld" v-model="organizationsOld"
:rules="[(val) => !!val || `${'กรุณากรอกหน่วยงาน (ต้นทาง)'}`]" :rules="[(val) => !!val || `${'กรุณากรอกหน่วยงาน (ต้นทาง)'}`]"
:label="`${'ชื่อหน่วยงาน (ต้นทาง)'}`" :label="`${'ชื่อหน่วยงาน (ต้นทาง)'}`"
@ -1570,6 +1605,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="orderOld" v-model="orderOld"
:rules="[(val) => !!val || `${'กรุณาเลือกคำสั่งที่ (ต้นทาง)'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกคำสั่งที่ (ต้นทาง)'}`]"
:label="`${'คำสั่งที่ (ต้นทาง)'}`" :label="`${'คำสั่งที่ (ต้นทาง)'}`"
@ -1582,6 +1618,7 @@ const getClass = (val: boolean) => {
v-model="orderOldDate" v-model="orderOldDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1597,6 +1634,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
orderOldDate != null ? date2Thai(orderOldDate) : null orderOldDate != null ? date2Thai(orderOldDate) : null
@ -1621,6 +1659,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="locationname" v-model="locationname"
:rules="[(val) => !!val || `${'กรุณากรอกให้ดำรงตำแหน่ง ณ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกให้ดำรงตำแหน่ง ณ'}`]"
:label="`${'ให้ดำรงตำแหน่ง ณ'}`" :label="`${'ให้ดำรงตำแหน่ง ณ'}`"
@ -1633,6 +1672,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="experimentOc" v-model="experimentOc"
:rules="[ :rules="[
(val) => (val) =>
@ -1652,6 +1692,7 @@ const getClass = (val: boolean) => {
:locale="'th'" :locale="'th'"
autoApply autoApply
borderless borderless
:readonly="checkRoutePermisson"
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
> >
@ -1666,6 +1707,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
experimentformDate != null experimentformDate != null
@ -1698,6 +1740,7 @@ const getClass = (val: boolean) => {
v-model="experimenttoDate" v-model="experimenttoDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1713,6 +1756,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
experimenttoDate != null experimenttoDate != null
@ -1745,6 +1789,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="chairman" v-model="chairman"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อประธาน'}`]" :rules="[(val) => !!val || `${'กรุณากรอกชื่อประธาน'}`]"
:label="`${'ประธาน'}`" :label="`${'ประธาน'}`"
@ -1757,6 +1802,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="director" v-model="director"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อกรรมการ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกชื่อกรรมการ'}`]"
:label="`${'กรรมการ'}`" :label="`${'กรรมการ'}`"
@ -1769,6 +1815,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="director2" v-model="director2"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อกรรมการ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกชื่อกรรมการ'}`]"
:label="`${'กรรมการ'}`" :label="`${'กรรมการ'}`"
@ -1792,6 +1839,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="committeeOc" v-model="committeeOc"
:rules="[ :rules="[
(val) => !!val || `${'กรุณาเลือกชื่อหน่วยงาน (อนุสนธิคำสั่ง)'}`, (val) => !!val || `${'กรุณาเลือกชื่อหน่วยงาน (อนุสนธิคำสั่ง)'}`,
@ -1805,6 +1853,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="committeeOrder" v-model="committeeOrder"
:rules="[(val) => !!val || `${'กรุณากรอกอนุสนธิคำสั่งที่'}`]" :rules="[(val) => !!val || `${'กรุณากรอกอนุสนธิคำสั่งที่'}`]"
:label="`${'อนุสนธิคำสั่งที่'}`" :label="`${'อนุสนธิคำสั่งที่'}`"
@ -1817,6 +1866,7 @@ const getClass = (val: boolean) => {
v-model="committeeDate" v-model="committeeDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1832,6 +1882,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
committeeDate != null ? date2Thai(committeeDate) : null committeeDate != null ? date2Thai(committeeDate) : null
@ -1863,6 +1914,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="receiveOc" v-model="receiveOc"
:rules="[(val) => !!val || `${'กรุณากรอกหน่วยงาน'}`]" :rules="[(val) => !!val || `${'กรุณากรอกหน่วยงาน'}`]"
:label="`${'ชื่อหน่วยงาน'}`" :label="`${'ชื่อหน่วยงาน'}`"
@ -1881,6 +1933,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="transferOrganizationName" v-model="transferOrganizationName"
:rules="[(val) => !!val || `${'กรุณากรอกส่วนราชการที่ให้โอน'}`]" :rules="[(val) => !!val || `${'กรุณากรอกส่วนราชการที่ให้โอน'}`]"
:label="`${'ส่วนราชการที่ให้โอน'}`" :label="`${'ส่วนราชการที่ให้โอน'}`"
@ -1891,6 +1944,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="conclusionReceive" v-model="conclusionReceive"
:rules="[(val) => !!val || `${'กรุณากรอกมติ กก. ครั้งที่'}`]" :rules="[(val) => !!val || `${'กรุณากรอกมติ กก. ครั้งที่'}`]"
@ -1904,6 +1958,7 @@ const getClass = (val: boolean) => {
v-model="conclusionReceiveDate" v-model="conclusionReceiveDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -1919,6 +1974,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
conclusionReceiveDate != null conclusionReceiveDate != null
@ -1951,6 +2007,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="orderNumber" v-model="orderNumber"
:rules="[ :rules="[
@ -1965,6 +2022,7 @@ const getClass = (val: boolean) => {
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="orderNumberDate" v-model="orderNumberDate"
:locale="'th'" :locale="'th'"
:readonly="checkRoutePermisson"
autoApply autoApply
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
@ -1979,6 +2037,7 @@ const getClass = (val: boolean) => {
<template #trigger> <template #trigger>
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
:readonly="checkRoutePermisson"
outlined outlined
dense dense
class="full-width datepicker" class="full-width datepicker"
@ -2011,6 +2070,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="fault" v-model="fault"
:rules="[ :rules="[
@ -2025,6 +2085,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="guiltyBasis" v-model="guiltyBasis"
:rules="[(val) => !!val || `${'กรุณากรอกฐานความผิด'}`]" :rules="[(val) => !!val || `${'กรุณากรอกฐานความผิด'}`]"
:label="`${'ฐานความผิด'}`" :label="`${'ฐานความผิด'}`"
@ -2037,6 +2098,7 @@ const getClass = (val: boolean) => {
outlined outlined
dense dense
v-model="conclusionFireNo" v-model="conclusionFireNo"
:readonly="checkRoutePermisson"
:rules="[ :rules="[
(val) => (val) =>
!!val || !!val ||
@ -2053,6 +2115,7 @@ const getClass = (val: boolean) => {
:locale="'th'" :locale="'th'"
autoApply autoApply
borderless borderless
:readonly="checkRoutePermisson"
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
> >
@ -2067,6 +2130,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
conclusionFireDate != null conclusionFireDate != null
@ -2096,6 +2160,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="conclusionFireResolution" v-model="conclusionFireResolution"
:rules="[ :rules="[
@ -2123,6 +2188,7 @@ const getClass = (val: boolean) => {
<selector <selector
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="complaintId" v-model="complaintId"
:rules="[(val: string) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]" :rules="[(val: string) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]"
@ -2156,6 +2222,7 @@ const getClass = (val: boolean) => {
outlined outlined
dense dense
v-model="conclusionFireNo" v-model="conclusionFireNo"
:readonly="checkRoutePermisson"
:rules="[ :rules="[
(val) => (val) =>
!!val || !!val ||
@ -2170,6 +2237,7 @@ const getClass = (val: boolean) => {
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="conclusionFireDate" v-model="conclusionFireDate"
:locale="'th'" :locale="'th'"
:readonly="checkRoutePermisson"
autoApply autoApply
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
@ -2185,6 +2253,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
@ -2215,6 +2284,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="conclusionFireResolution" v-model="conclusionFireResolution"
:rules="[ :rules="[
@ -2230,6 +2300,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="faultLevel" v-model="faultLevel"
:rules="[(val) => !!val || `${'กรุณากรอกระดับความผิด'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับความผิด'}`]"
@ -2240,6 +2311,7 @@ const getClass = (val: boolean) => {
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
:readonly="checkRoutePermisson"
outlined outlined
dense dense
v-model="caseFault" v-model="caseFault"
@ -2253,6 +2325,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="result" v-model="result"
:rules="[(val) => !!val || `${'กรุณากรอกผลดำเนินการพิจารณา'}`]" :rules="[(val) => !!val || `${'กรุณากรอกผลดำเนินการพิจารณา'}`]"
:label="`${'ผลดำเนินการพิจารณา'}`" :label="`${'ผลดำเนินการพิจารณา'}`"
@ -2264,6 +2337,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="refRaw" v-model="refRaw"
:rules="[(val) => !!val || `${'กรุณากรอกอ้างอิงมาตราตามกฎหมาย'}`]" :rules="[(val) => !!val || `${'กรุณากรอกอ้างอิงมาตราตามกฎหมาย'}`]"
:label="`${'อ้างอิงมาตราตามกฎหมาย'}`" :label="`${'อ้างอิงมาตราตามกฎหมาย'}`"
@ -2281,6 +2355,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="conclusionTranferNo" v-model="conclusionTranferNo"
:rules="[(val) => !!val || `${'กรุณากรอกครั่งที่'}`]" :rules="[(val) => !!val || `${'กรุณากรอกครั่งที่'}`]"
@ -2294,6 +2369,7 @@ const getClass = (val: boolean) => {
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="conclusionTranferDate" v-model="conclusionTranferDate"
:locale="'th'" :locale="'th'"
:readonly="checkRoutePermisson"
autoApply autoApply
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
@ -2309,6 +2385,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
@ -2352,6 +2429,7 @@ const getClass = (val: boolean) => {
<selector <selector
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="complaintId" v-model="complaintId"
:rules="[(val: string) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]" :rules="[(val: string) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]"
@ -2383,6 +2461,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="faultLevel" v-model="faultLevel"
:rules="[(val) => !!val || `${'กรุณากรอกระดับความผิด'}`]" :rules="[(val) => !!val || `${'กรุณากรอกระดับความผิด'}`]"
@ -2394,6 +2473,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="caseFault" v-model="caseFault"
:rules="[(val) => !!val || `${'กรุณากรอกกรณีความผิด'}`]" :rules="[(val) => !!val || `${'กรุณากรอกกรณีความผิด'}`]"
@ -2405,6 +2485,7 @@ const getClass = (val: boolean) => {
<q-input <q-input
:class="getClass(true)" :class="getClass(true)"
outlined outlined
:readonly="checkRoutePermisson"
dense dense
v-model="result" v-model="result"
:rules="[(val) => !!val || `${'กรุณากรอกผลดำเนินการพิจารณา'}`]" :rules="[(val) => !!val || `${'กรุณากรอกผลดำเนินการพิจารณา'}`]"
@ -2417,6 +2498,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
v-model="refRaw" v-model="refRaw"
:rules="[(val) => !!val || `${'กรุณากรอกอ้างอิงมาตราตามกฎหมาย'}`]" :rules="[(val) => !!val || `${'กรุณากรอกอ้างอิงมาตราตามกฎหมาย'}`]"
:label="`${'อ้างอิงมาตราตามกฎหมาย'}`" :label="`${'อ้างอิงมาตราตามกฎหมาย'}`"
@ -2434,6 +2516,7 @@ const getClass = (val: boolean) => {
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="actStartDate" v-model="actStartDate"
:readonly="checkRoutePermisson"
:locale="'th'" :locale="'th'"
autoApply autoApply
borderless borderless
@ -2452,6 +2535,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
actStartDate != null ? date2Thai(actStartDate) : null actStartDate != null ? date2Thai(actStartDate) : null
@ -2480,6 +2564,7 @@ const getClass = (val: boolean) => {
v-model="actEndDate" v-model="actEndDate"
:locale="'th'" :locale="'th'"
autoApply autoApply
:readonly="checkRoutePermisson"
borderless borderless
:enableTimePicker="false" :enableTimePicker="false"
week-start="0" week-start="0"
@ -2496,6 +2581,7 @@ const getClass = (val: boolean) => {
:class="getClass(true)" :class="getClass(true)"
outlined outlined
dense dense
:readonly="checkRoutePermisson"
class="full-width datepicker" class="full-width datepicker"
:model-value=" :model-value="
actEndDate != null ? date2Thai(actEndDate) : null actEndDate != null ? date2Thai(actEndDate) : null
@ -2519,8 +2605,8 @@ const getClass = (val: boolean) => {
</div> </div>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator v-if="!checkRoutePermisson" />
<q-card-actions align="right"> <q-card-actions align="right" v-if="!checkRoutePermisson">
<q-btn label="บันทึก" id="onSubmit" type="submit" color="public"> <q-btn label="บันทึก" id="onSubmit" type="submit" color="public">
<q-tooltip>นทกขอม</q-tooltip> <q-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>

View file

@ -43,7 +43,9 @@ const {
const route = useRoute(); const route = useRoute();
const $q = useQuasar(); const $q = useQuasar();
const checkRoutePermisson = ref<boolean>(
route.name == "disciplineOrderDatailOnly"
);
const routeName = ref<string>(route.name ? route.name.toString() : ""); const routeName = ref<string>(route.name ? route.name.toString() : "");
const modalData = ref<any>({ const modalData = ref<any>({
salaryAmount: null, salaryAmount: null,
@ -453,7 +455,14 @@ const resetFilter = () => {
<q-card> <q-card>
<q-card-section> <q-card-section>
<div class="col-12 row q-pb-sm items-center"> <div class="col-12 row q-pb-sm items-center">
<q-btn flat round color="primary" @click="refresh" icon="mdi-plus"> <q-btn
v-if="!checkRoutePermisson"
flat
round
color="primary"
@click="refresh"
icon="mdi-plus"
>
<q-tooltip>เพมขอม</q-tooltip> <q-tooltip>เพมขอม</q-tooltip>
</q-btn> </q-btn>
<q-space /> <q-space />
@ -507,9 +516,6 @@ const resetFilter = () => {
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<q-th auto-width /> <q-th auto-width />
<q-th auto-width />
<q-th auto-width />
<q-th auto-width v-if="statuscode !== true" />
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
</q-th> </q-th>
@ -520,8 +526,8 @@ const resetFilter = () => {
<q-td auto-width> <q-td auto-width>
<q-btn <q-btn
dense dense
size="12px"
flat flat
v-if="!checkRoutePermisson"
round round
:color="props.rowIndex + 1 == 1 ? 'grey' : 'green'" :color="props.rowIndex + 1 == 1 ? 'grey' : 'green'"
:disable="props.rowIndex + 1 == 1" :disable="props.rowIndex + 1 == 1"
@ -530,12 +536,10 @@ const resetFilter = () => {
> >
<!-- <q-tooltip>เลอนลำดบข</q-tooltip> --> <!-- <q-tooltip>เลอนลำดบข</q-tooltip> -->
</q-btn> </q-btn>
</q-td>
<q-td auto-width>
<q-btn <q-btn
dense dense
size="12px"
flat flat
v-if="!checkRoutePermisson"
round round
:color="rows.length == props.rowIndex + 1 ? 'grey' : 'red'" :color="rows.length == props.rowIndex + 1 ? 'grey' : 'red'"
:disable="rows.length == props.rowIndex + 1" :disable="rows.length == props.rowIndex + 1"
@ -544,12 +548,13 @@ const resetFilter = () => {
> >
<!-- <q-tooltip>เลอนลำดบลง</q-tooltip> --> <!-- <q-tooltip>เลอนลำดบลง</q-tooltip> -->
</q-btn> </q-btn>
</q-td>
<q-td auto-width v-if="statuscode !== true">
<q-btn <q-btn
v-if="props.row.salaryAmount === 0" v-if="
!checkRoutePermisson &&
statuscode !== true &&
props.row.salaryAmount === 0
"
dense dense
size="12px"
flat flat
round round
color="blue" color="blue"
@ -559,9 +564,12 @@ const resetFilter = () => {
<q-tooltip>เงนเดอน</q-tooltip> <q-tooltip>เงนเดอน</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-else v-else-if="
!checkRoutePermisson &&
statuscode !== true &&
props.row.salaryAmount !== 0
"
dense dense
size="12px"
flat flat
round round
color="primary" color="primary"
@ -570,12 +578,9 @@ const resetFilter = () => {
> >
<q-tooltip>เงนเดอน</q-tooltip> <q-tooltip>เงนเดอน</q-tooltip>
</q-btn> </q-btn>
</q-td>
<q-td auto-width>
<q-btn <q-btn
v-if="!checkRoutePermisson"
dense dense
size="12px"
flat flat
round round
color="red" color="red"
@ -585,6 +590,7 @@ const resetFilter = () => {
<q-tooltip>ลบขอม</q-tooltip> <q-tooltip>ลบขอม</q-tooltip>
</q-btn> </q-btn>
</q-td> </q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">{{ <q-td v-for="col in props.cols" :key="col.name" :props="props">{{
col.name == "no" ? props.rowIndex + 1 : col.value col.name == "no" ? props.rowIndex + 1 : col.value
}}</q-td> }}</q-td>
@ -593,8 +599,8 @@ const resetFilter = () => {
</d-table> </d-table>
</q-card-section> </q-card-section>
<q-separator /> <q-separator v-if="!checkRoutePermisson"/>
<q-card-actions align="right"> <q-card-actions align="right" v-if="!checkRoutePermisson">
<q-btn <q-btn
outline outline
color="primary" color="primary"

View file

@ -47,7 +47,7 @@ const mixin = useCounterMixin(); //เรียกฟังก์ชันกล
const { dialogRemove, messageError, showLoader, hideLoader, success } = mixin; const { dialogRemove, messageError, showLoader, hideLoader, success } = mixin;
const route = useRoute(); const route = useRoute();
const checkRoutePermisson = ref<boolean>(route.name == "disciplineOrderDatailOnly");
const myForm = ref<QForm | null>(null); const myForm = ref<QForm | null>(null);
const filterRef = ref<QInput>(); const filterRef = ref<QInput>();
const filter = ref<string>(""); const filter = ref<string>("");
@ -365,7 +365,7 @@ const fetchOrder = async (id: string) => {
<q-card> <q-card>
<q-card-section> <q-card-section>
<div class="col-12 row q-py-sm items-center"> <div class="col-12 row q-py-sm items-center">
<q-btn flat round color="primary" @click="clickAdd" icon="mdi-plus"> <q-btn v-if="!checkRoutePermisson" flat round color="primary" @click="clickAdd" icon="mdi-plus">
<q-tooltip>เพมขอม</q-tooltip> <q-tooltip>เพมขอม</q-tooltip>
</q-btn> </q-btn>
<q-space /> <q-space />
@ -429,6 +429,7 @@ const fetchOrder = async (id: string) => {
<q-tr :props="props" class="cursor-pointer"> <q-tr :props="props" class="cursor-pointer">
<q-td auto-width> <q-td auto-width>
<q-btn <q-btn
v-if="!checkRoutePermisson"
dense dense
size="12px" size="12px"
flat flat
@ -472,6 +473,7 @@ const fetchOrder = async (id: string) => {
:label="`${'เลือกช่องทางการส่งสำเนา'}`" :label="`${'เลือกช่องทางการส่งสำเนา'}`"
emit-value emit-value
map-options map-options
:readonly="checkRoutePermisson"
option-label="name" option-label="name"
:options="optionSelect" :options="optionSelect"
option-value="id" option-value="id"
@ -494,8 +496,8 @@ const fetchOrder = async (id: string) => {
</q-form> </q-form>
</q-card-section> </q-card-section>
<q-separator /> <q-separator v-if="!checkRoutePermisson"/>
<q-card-actions align="right"> <q-card-actions align="right" v-if="!checkRoutePermisson">
<q-btn <q-btn
outline outline
color="primary" color="primary"

View file

@ -26,7 +26,7 @@ const {
} = mixin; } = mixin;
const route = useRoute(); const route = useRoute();
const $q = useQuasar(); const $q = useQuasar();
const checkRoutePermisson = ref<boolean>(route.name == "disciplineOrderDatailOnly");
const orderId_params = route.params.orderid; const orderId_params = route.params.orderid;
const dialog = ref<boolean>(false); const dialog = ref<boolean>(false);
const dialogFileUpload = ref<boolean>(false); const dialogFileUpload = ref<boolean>(false);
@ -654,7 +654,6 @@ const viewFileUpload = async (url: string) => {
<label class="text-file">คำส</label> <label class="text-file">คำส</label>
<div v-if="OrderPDFUpload != ''" class="text-right"> <div v-if="OrderPDFUpload != ''" class="text-right">
<q-btn <q-btn
size="12px"
flat flat
dense dense
color="primary" color="primary"
@ -666,7 +665,6 @@ const viewFileUpload = async (url: string) => {
<q-btn <q-btn
type="a" type="a"
:href="OrderPDFUpload" :href="OrderPDFUpload"
size="12px"
flat flat
dense dense
color="red" color="red"
@ -677,7 +675,7 @@ const viewFileUpload = async (url: string) => {
</q-btn> </q-btn>
</div> </div>
<q-file <q-file
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" v-if="orderStatusName != 'ออกคำสั่งแล้ว' && !checkRoutePermisson"
outlined outlined
dense dense
v-model="fileOrder" v-model="fileOrder"
@ -695,7 +693,6 @@ const viewFileUpload = async (url: string) => {
<label class="text-file">เอกสารแนบทาย</label> <label class="text-file">เอกสารแนบทาย</label>
<div v-if="TailerPDFUpload != ''" class="text-right"> <div v-if="TailerPDFUpload != ''" class="text-right">
<q-btn <q-btn
size="12px"
flat flat
dense dense
color="primary" color="primary"
@ -707,7 +704,6 @@ const viewFileUpload = async (url: string) => {
<q-btn <q-btn
type="a" type="a"
:href="TailerPDFUpload" :href="TailerPDFUpload"
size="12px"
flat flat
dense dense
color="red" color="red"
@ -719,7 +715,7 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<q-file <q-file
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" v-if="orderStatusName != 'ออกคำสั่งแล้ว'&&!checkRoutePermisson"
outlined outlined
dense dense
v-model="fileTailer" v-model="fileTailer"
@ -736,7 +732,7 @@ const viewFileUpload = async (url: string) => {
<!-- นทกอพโหลดเอกสาร --> <!-- นทกอพโหลดเอกสาร -->
<div <div
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" v-if="orderStatusName != 'ออกคำสั่งแล้ว' && !checkRoutePermisson"
class="row col-12 q-mt-md" class="row col-12 q-mt-md"
> >
<q-space></q-space> <q-space></q-space>
@ -782,7 +778,7 @@ const viewFileUpload = async (url: string) => {
<div> <div>
<label class="text-file">ออกคำส</label> <label class="text-file">ออกคำส</label>
<datepicker <datepicker
:disabled="orderStatusName == 'ออกคำสั่งแล้ว'" :disabled="orderStatusName == 'ออกคำสั่งแล้ว' && checkRoutePermisson"
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="years" v-model="years"
:locale="'th'" :locale="'th'"
@ -797,7 +793,7 @@ const viewFileUpload = async (url: string) => {
}}</template> }}</template>
<template #trigger> <template #trigger>
<q-input <q-input
:disable="orderStatusName == 'ออกคำสั่งแล้ว'" :disable="orderStatusName == 'ออกคำสั่งแล้ว' && checkRoutePermisson"
outlined outlined
dense dense
:model-value="years + 543" :model-value="years + 543"
@ -822,7 +818,7 @@ const viewFileUpload = async (url: string) => {
<div> <div>
<label class="text-file">นทลงนาม</label> <label class="text-file">นทลงนาม</label>
<datepicker <datepicker
:disabled="orderStatusName == 'ออกคำสั่งแล้ว'" :disabled="orderStatusName == 'ออกคำสั่งแล้ว' && checkRoutePermisson"
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="date" v-model="date"
:locale="'th'" :locale="'th'"
@ -839,7 +835,7 @@ const viewFileUpload = async (url: string) => {
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input
:disable="orderStatusName == 'ออกคำสั่งแล้ว'" :disable="orderStatusName == 'ออกคำสั่งแล้ว' && checkRoutePermisson"
outlined outlined
dense dense
class="full-width datepicker" class="full-width datepicker"
@ -865,7 +861,7 @@ const viewFileUpload = async (url: string) => {
<!-- นทกรายละเอยดคำส --> <!-- นทกรายละเอยดคำส -->
<div <div
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" v-if="orderStatusName != 'ออกคำสั่งแล้ว' && !checkRoutePermisson"
class="row col-12 q-mt-md" class="row col-12 q-mt-md"
> >
<q-space></q-space> <q-space></q-space>
@ -891,8 +887,8 @@ const viewFileUpload = async (url: string) => {
</template> </template>
</q-splitter> </q-splitter>
</div> </div>
<q-separator /> <q-separator v-if="!checkRoutePermisson"/>
<div class="flex justify-end q-pa-sm q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm" v-if="!checkRoutePermisson">
<q-btn <q-btn
v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" v-if="orderStatusName !== 'ออกคำสั่งแล้ว'"
dense dense

View file

@ -254,9 +254,9 @@ onMounted(() => {
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsUpdate" v-if="checkPermission($route)?.attrIsUpdate"
@click="openModalOrder" @click="openModalOrder"
size="14px"
flat flat
round round
dense
color="add" color="add"
icon="mdi-account-arrow-right" icon="mdi-account-arrow-right"
> >
@ -326,7 +326,7 @@ onMounted(() => {
</template> </template>
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<q-th auto-width v-if="checkPermission($route)?.attrIsGet !== false || checkPermission($route)?.attrIsUpdate !== false"/> <q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
</q-th> </q-th>
@ -335,14 +335,14 @@ onMounted(() => {
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer"> <q-tr :props="props" class="cursor-pointer">
<q-td auto-width v-if="checkPermission($route)?.attrIsGet !== false || checkPermission($route)?.attrIsUpdate !== false"> <q-td auto-width>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsGet" v-if="checkPermission($route)?.attrIsGet"
@click=" @click="
router.push(`/discipline-suspend-detail/${props.row.id}`) router.push(`/discipline-suspend-detail/${props.row.id}`)
" "
size="14px"
flat flat
dense
round round
color="info" color="info"
icon="mdi-eye" icon="mdi-eye"
@ -350,10 +350,13 @@ onMounted(() => {
<q-tooltip>รายละเอยด</q-tooltip> <q-tooltip>รายละเอยด</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsUpdate" v-if="
checkPermission($route)?.attrIsUpdate &&
checkPermission($route)?.attrIsGet
"
@click="router.push(`/discipline-suspend/${props.row.id}`)" @click="router.push(`/discipline-suspend/${props.row.id}`)"
size="14px"
flat flat
dense
round round
color="edit" color="edit"
icon="edit" icon="edit"

View file

@ -462,7 +462,6 @@ onMounted(() => {
นอทธรณ/องทกข นอทธรณ/องทกข
<q-btn <q-btn
v-if="!isReadonly" v-if="!isReadonly"
size="12px"
flat flat
round round
dense dense
@ -697,7 +696,6 @@ onMounted(() => {
<q-item-section>{{ data.fileName }}</q-item-section> <q-item-section>{{ data.fileName }}</q-item-section>
<q-space /> <q-space />
<q-btn <q-btn
size="12px"
flat flat
round round
dense dense
@ -708,13 +706,12 @@ onMounted(() => {
> >
<q-btn <q-btn
v-if="!checkRoutePermission" v-if="!checkRoutePermission"
size="12px"
flat flat
round round
dense dense
color="red" color="red"
class="q-ml-sm" class="q-ml-sm"
icon="mdi-delete-outline" icon="mdi-delete"
@click="deleteFile(data.id)" @click="deleteFile(data.id)"
><q-tooltip>ลบไฟล</q-tooltip></q-btn ><q-tooltip>ลบไฟล</q-tooltip></q-btn
> >

View file

@ -318,7 +318,7 @@ onMounted(async () => {
v-if="checkPermission($route)?.attrIsCreate" v-if="checkPermission($route)?.attrIsCreate"
id="addComplaints" id="addComplaints"
for="addComplaints" for="addComplaints"
size="12px" dense
flat flat
round round
color="primary" color="primary"
@ -515,13 +515,7 @@ onMounted(async () => {
</template> </template>
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<q-th <q-th auto-width></q-th>
auto-width
v-if="
checkPermission($route)?.attrIsGet !== false ||
checkPermission($route)?.attrIsUpdate !== false
"
></q-th>
<q-th <q-th
v-for="col in props.cols" v-for="col in props.cols"
:key="col.name" :key="col.name"
@ -533,19 +527,13 @@ onMounted(async () => {
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer"> <q-tr :props="props">
<q-td <q-td auto-width>
auto-width
v-if="
checkPermission($route)?.attrIsGet !== false ||
checkPermission($route)?.attrIsUpdate !== false
"
>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsGet" v-if="checkPermission($route)?.attrIsGet"
id="addComplaints" id="addComplaints"
for="addComplaints" for="addComplaints"
size="12px" dense
flat flat
round round
color="info" color="info"
@ -554,11 +542,14 @@ onMounted(async () => {
><q-tooltip>รายละเอยดการอทธรณ/องทกข</q-tooltip></q-btn ><q-tooltip>รายละเอยดการอทธรณ/องทกข</q-tooltip></q-btn
> >
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsUpdate" v-if="
checkPermission($route)?.attrIsUpdate &&
checkPermission($route)?.attrIsGet
"
id="addComplaints" id="addComplaints"
for="addComplaints" for="addComplaints"
size="12px"
flat flat
dense
round round
color="edit" color="edit"
icon="edit" icon="edit"

View file

@ -20,6 +20,8 @@ import { useOrderStore } from "@/modules/11_discipline/store/OrderStore";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import { useOrderPlacementDataStore } from "@/modules/10_order/store"; import { useOrderPlacementDataStore } from "@/modules/10_order/store";
import { checkPermission } from "@/utils/permissions";
const $q = useQuasar(); // noti quasar const $q = useQuasar(); // noti quasar
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const DataStore = useOrderPlacementDataStore(); const DataStore = useOrderPlacementDataStore();
@ -327,6 +329,7 @@ onMounted(async () => {
<!-- use-input --> <!-- use-input -->
<div> <div>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsCreate"
size="12px" size="12px"
flat flat
round round

View file

@ -5,7 +5,7 @@ import router from "@/router";
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
/** importStroe */ /** importStroe */
import { useOrderStore } from "@/modules/11_discipline/store/OrderStore"; import { useOrderStore } from "@/modules/11_discipline/store/OrderStore";
import { checkPermission } from "@/utils/permissions";
const OrderStore = useOrderStore(); const OrderStore = useOrderStore();
/** รับ props มาจากหน้าหลัก */ /** รับ props มาจากหน้าหลัก */
@ -208,6 +208,29 @@ const redirectToPage = (id?: string, status?: string) => {
} }
router.push(`/discipline-order/detail/${id}?step=${step}`); router.push(`/discipline-order/detail/${id}?step=${step}`);
}; };
/**
* งช redirect
* @param id id ออกคำส
* @param status status
*/
const redirectToDetailPage = (id?: string, status?: string) => {
let step = 1;
switch (status) {
case "จัดทำร่างคำสั่ง":
step = 1;
break;
case "บัญชีแนบท้าย":
step = 2;
break;
case "เลือกผู้ได้รับสำเนาคำสั่ง":
step = 3;
break;
default:
step = 4;
break;
}
router.push(`/discipline-order-detail/detail/${id}?step=${step}`);
};
/** โหลดข้อมูลเมื่อเข้าหน้านี้ */ /** โหลดข้อมูลเมื่อเข้าหน้านี้ */
onMounted(() => { onMounted(() => {
@ -233,19 +256,46 @@ onMounted(() => {
> >
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
</q-th> </q-th>
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer"> <q-tr :props="props">
<q-td <q-td>
v-for="col in props.cols" <q-btn
:key="col.name" v-if="checkPermission($route)?.attrIsGet"
:props="props" flat
@click="redirectToPage(props.row.orderId, props.row.orderStatusName)" round
> dense
icon="mdi-eye"
color="info"
@click="
redirectToDetailPage(props.row.orderId, props.row.orderStatusName)
"
>
<q-tooltip>รายละเอยด</q-tooltip>
</q-btn>
<q-btn
v-if="
checkPermission($route)?.attrIsGet &&
checkPermission($route)?.attrIsUpdate
"
flat
round
dense
icon="edit"
color="edit"
@click="
redirectToPage(props.row.orderId, props.row.orderStatusName)
"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name === 'no'"> <div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</div> </div>

View file

@ -87,6 +87,7 @@ const appealComplainDetail = () =>
import("@/modules/11_discipline/components/8_AppealComplain/EditPage.vue"); import("@/modules/11_discipline/components/8_AppealComplain/EditPage.vue");
const DetailPage = () => import("@/modules/10_order/components/Detail.vue"); const DetailPage = () => import("@/modules/10_order/components/Detail.vue");
const DetailPageOnly = () => import("@/modules/10_order/components/Detail.vue");
export default [ export default [
{ {
path: "/discipline/complaints", path: "/discipline/complaints",
@ -421,4 +422,14 @@ export default [
Role: "STAFF", Role: "STAFF",
}, },
}, },
{
path: "/discipline-order-detail/detail/:orderid",
name: "disciplineOrderDatailOnly",
component: DetailPageOnly,
meta: {
Auth: true,
Key: "SYS_DISCIPLINE_SENTENCE",
Role: "STAFF",
},
},
]; ];