no message

This commit is contained in:
setthawutttty 2023-06-30 09:28:49 +07:00
commit d6859919a8
27 changed files with 1114 additions and 716 deletions

View file

@ -118,44 +118,40 @@
<q-btn <q-btn
v-if="showEdit && edit" v-if="showEdit && edit"
flat flat
round
outline
color="red" color="red"
@click="cancelClick()" @click="cancelClick()"
icon="mdi-undo" label="ยกเลิกแก้ไข"
> > <!-- icon="mdi-undo"
<q-tooltip>ยกเล</q-tooltip> <q-tooltip>ยกเล</q-tooltip> -->
</q-btn>
<q-btn
v-if="edit"
flat
round
color="public"
icon="mdi-content-save-outline"
type="submit"
>
<q-tooltip>นท</q-tooltip>
</q-btn>
<q-btn
v-if="!edit"
flat
round
color="primary"
@click="editClick"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-if="showEdit && edit" v-if="showEdit && edit"
flat unelevated
round
outline
color="red" color="red"
@click="deleteClick()" @click="deleteClick()"
icon="mdi-delete" label="ลบวันหยุด"
> <!-- icon="mdi-delete"
<q-tooltip>ลบ</q-tooltip> -->
</q-btn>
<q-btn
v-if="edit"
unelevated
color="public"
label="บันทึก"
type="submit"
> >
<q-tooltip>ลบ</q-tooltip> <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn>
<q-btn
v-if="!edit"
outline
color="primary"
@click="editClick"
label="แก้ไขข้อมูล"
>
<!-- icon="mdi-pencil-outline"
<q-tooltip>แกไขขอม</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>

View file

@ -157,13 +157,13 @@
<q-separator /> <q-separator />
<q-card-actions align="right" class="text-primary"> <q-card-actions align="right" class="text-primary">
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
icon="mdi-content-save-outline"
type="submit" type="submit"
>
<q-tooltip>นท</q-tooltip> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>

View file

@ -218,13 +218,12 @@
<q-separator /> <q-separator />
<q-card-actions align="right" class="text-primary"> <q-card-actions align="right" class="text-primary">
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
icon="mdi-content-save-outline"
type="submit" type="submit"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>
@ -316,13 +315,12 @@
<q-separator /> <q-separator />
<q-card-actions align="right" class="text-primary"> <q-card-actions align="right" class="text-primary">
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
icon="mdi-content-save-outline"
type="submit" type="submit"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>

View file

@ -3,14 +3,14 @@
<q-space /> <q-space />
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
flat outline
round
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'" :color="editvisible ? 'grey-7' : 'primary'"
@click="edit" @click="edit"
icon="mdi-pencil-outline" label="แก้ไขข้อมูล"
>
<q-tooltip>แกไขขอม</q-tooltip> ><!-- icon="mdi-pencil-outline"
<q-tooltip>แกไขขอม</q-tooltip> -->
</q-btn> </q-btn>
<div v-else> <div v-else>
<!-- <q-btn <!-- <q-btn
@ -26,14 +26,14 @@
<q-tooltip>ยกเล</q-tooltip> <q-tooltip>ยกเล</q-tooltip>
</q-btn> --> </q-btn> -->
<q-btn <q-btn
flat unelevated
round label="บันทึก"
:disabled="!editvisible" :disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'" :color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave" @click="checkSave"
icon="mdi-content-save-outline"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</div> </div>
</q-card-actions> </q-card-actions>

View file

@ -607,14 +607,14 @@
<q-card-actions align="right" class="text-primary q-py-sm"> <q-card-actions align="right" class="text-primary q-py-sm">
<!-- Save for Add Organizations & Positions --> <!-- Save for Add Organizations & Positions -->
<q-btn <q-btn
flat unelevated
round label="บันทึก"
dense
:color="'public'" :color="'public'"
@click="addStructure(rowClickTree)" @click="addStructure(rowClickTree)"
icon="mdi-content-save-outline"
> >
<q-tooltip>นท</q-tooltip> <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-card> </q-card>
@ -651,14 +651,12 @@
<q-card-actions align="right" class="text-primary q-py-sm"> <q-card-actions align="right" class="text-primary q-py-sm">
<!-- save Edit Selected Position --> <!-- save Edit Selected Position -->
<q-btn <q-btn
flat unelevated
dense label="บันทึก"
round
:color="'public'" :color="'public'"
@click="editPositionStructure(rowClickTree)" @click="editPositionStructure(rowClickTree)"
icon="mdi-content-save-outline" > <!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-card> </q-card>
@ -694,14 +692,12 @@
<q-card-actions align="right" class="text-primary q-py-sm"> <q-card-actions align="right" class="text-primary q-py-sm">
<!-- save Edit Selected Organization --> <!-- save Edit Selected Organization -->
<q-btn <q-btn
flat unelevated
dense label="บันทึก"
round
:color="'public'" :color="'public'"
@click="editOrgStructure(rowClickTree)" @click="editOrgStructure(rowClickTree)"
icon="mdi-content-save-outline" ><!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-card> </q-card>

View file

@ -557,13 +557,12 @@
<q-card-actions class="q-py-sm"> <q-card-actions class="q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round
color="public" color="public"
icon="mdi-content-save-outline" label="บันทึก"
@click="checkSave" @click="checkSave"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>

View file

@ -22,25 +22,24 @@
<div v-if="editData"> <div v-if="editData">
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
flat outline
round
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'" :color="editvisible ? 'grey-7' : 'primary'"
@click="edit" @click="edit"
icon="mdi-pencil-outline" label="แก้ไขข้อมูล"
> > <!-- icon="mdi-pencil-outline"
<q-tooltip>แกไขขอม</q-tooltip> <q-tooltip>แกไขขอม</q-tooltip> -->
</q-btn> </q-btn>
<div v-else> <div v-else>
<q-btn <q-btn
flat unelevated
round label="บันทึก"
:disabled="!editvisible" :disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'" :color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave" @click="checkSave"
icon="mdi-content-save-outline"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</div> </div>
</div> </div>

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="q-px-md q-pb-md"> <div class="q-px-md q-pb-md">
<div class="col-12 row q-py-sm items-center"> <div class="col-12 row q-py-sm q-gutter-sm items-center">
<span class="text-subtitle1">{{ titleText }}</span> <span class="text-subtitle1">{{ titleText }}</span>
<q-select <q-select
dense dense
@ -23,7 +23,6 @@
use-chips use-chips
multiple multiple
v-if="statusPayment" v-if="statusPayment"
class="q-pl-sm"
> >
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="attach_file" color="blue" /> <q-icon name="attach_file" color="blue" />

View file

@ -260,13 +260,12 @@
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="checkSave" @click="checkSave"
icon="mdi-content-save-outline" > <!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>
@ -300,13 +299,12 @@
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="checkSaveScore" @click="checkSaveScore"
icon="mdi-content-save-outline" > <!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>
@ -340,13 +338,13 @@
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="checkSaveCandidate" @click="checkSaveCandidate"
icon="mdi-content-save-outline"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>

View file

@ -260,13 +260,12 @@
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="checkSave" @click="checkSave"
icon="mdi-content-save-outline" ><!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>
@ -300,13 +299,12 @@
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="checkSaveScore" @click="checkSaveScore"
icon="mdi-content-save-outline" > <!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>
@ -343,13 +341,12 @@
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="checkSaveCandidate" @click="checkSaveCandidate"
icon="mdi-content-save-outline" ><!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>

View file

@ -21,18 +21,19 @@
<q-card flat bordered class="col-12 q-my-sm q-pt-sm"> <q-card flat bordered class="col-12 q-my-sm q-pt-sm">
<q-form ref="myForm"> <q-form ref="myForm">
<q-card-section class="q-pa-md"> <q-card-section class="q-pa-md">
<div class="col-xs-12 col-sm-8 items-top q-pb-md"> <div class="col-xs-12 col-sm-8 items-top q-pb-md" v-if="!edit">
<q-toggle <q-toggle
v-model="announcementExam" v-model="announcementExam"
:false-value="true" :false-value="true"
:true-value="false" :true-value="false"
color="primary" color="primary"
dense
class="text-weight-medium text-dark"
label="ประกาศข่าวทั่วไป" label="ประกาศข่าวทั่วไป"
v-if="!edit"
/> />
</div> </div>
<div class="col-12 row items-top q-col-gutter-x-sm"> <div class="col-12 row items-top q-col-gutter-x-sm">
<div class="col-xs-12 col-sm-6 col-sm-5"> <div class="col-xs-12 col-sm-6 col-sm-8">
<q-input <q-input
outlined outlined
v-model="name" v-model="name"
@ -69,7 +70,7 @@
]" ]"
></q-input> ></q-input>
</div> </div>
<div class="col-xs-12 col-sm-4 col-md-1" v-if="announcementExam"> <div class="col-xs-12 col-sm-4 col-md-2" v-if="announcementExam">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="yearly" v-model="yearly"
@ -104,45 +105,7 @@
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-12 col-sm-3 col-md-3" v-if="announcementExam"> <div class="col-xs-12 col-sm-3 col-md-4">
<datepicker
menu-class-name="modalfix"
v-model="dateExam"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker q-mb-md"
:model-value="dateExam != null ? date2Thai(dateExam) : null"
:label="`${'วันที่สอบ'}`"
clearable
@clear="clearDateExam"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
<div class="col-xs-12 col-sm-3 col-md-3">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="dateAnnouncement" v-model="dateAnnouncement"
@ -163,7 +126,7 @@
<q-input <q-input
outlined outlined
dense dense
class="full-width datepicker q-mb-md" class="full-width datepicker "
:model-value="dateThaiRange(dateAnnouncement)" :model-value="dateThaiRange(dateAnnouncement)"
:label="`${'วันที่ประกาศ'}`" :label="`${'วันที่ประกาศ'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ประกาศ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ประกาศ'}`]"
@ -180,7 +143,7 @@
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-12 col-sm-3 col-md-3" v-if="announcementExam"> <div class="col-xs-12 col-sm-3 col-md-4" v-if="announcementExam">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="dateRegister" v-model="dateRegister"
@ -202,7 +165,7 @@
<q-input <q-input
outlined outlined
dense dense
class="full-width datepicker q-mb-md" class="full-width datepicker "
:model-value="dateThaiRange(dateRegister)" :model-value="dateThaiRange(dateRegister)"
:label="`${'วันที่สมัคร'}`" :label="`${'วันที่สมัคร'}`"
clearable clearable
@ -220,7 +183,7 @@
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-12 col-sm-3 col-md-3" v-if="announcementExam"> <div class="col-xs-12 col-sm-3 col-md-4" v-if="announcementExam">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="datePayment" v-model="datePayment"
@ -241,7 +204,7 @@
<q-input <q-input
outlined outlined
dense dense
class="full-width datepicker q-mb-md" class="full-width datepicker "
:model-value="dateThaiRange(datePayment)" :model-value="dateThaiRange(datePayment)"
:label="`${'วันที่ชำระเงิน'}`" :label="`${'วันที่ชำระเงิน'}`"
clearable clearable
@ -259,7 +222,7 @@
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-12 col-sm-3 col-md-3" v-if="announcementExam"> <div class="col-xs-12 col-sm-2 col-md-2" v-if="announcementExam">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="dateAnnounce" v-model="dateAnnounce"
@ -279,7 +242,7 @@
<q-input <q-input
outlined outlined
dense dense
class="full-width datepicker q-mb-md" class="full-width datepicker "
:model-value=" :model-value="
dateAnnounce != null ? date2Thai(dateAnnounce) : null dateAnnounce != null ? date2Thai(dateAnnounce) : null
" "
@ -299,7 +262,45 @@
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-12 col-sm-3 col-md-3"> <div class="col-xs-12 col-sm-2 col-md-2" v-if="announcementExam">
<datepicker
menu-class-name="modalfix"
v-model="dateExam"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker "
:model-value="dateExam != null ? date2Thai(dateExam) : null"
:label="`${'วันที่สอบ'}`"
clearable
@clear="clearDateExam"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<selector <selector
outlined outlined
v-model="category" v-model="category"
@ -315,43 +316,41 @@
:rules="[(val:any) => !!val || `${'กรุณาเลือกสังกัด'}`]" :rules="[(val:any) => !!val || `${'กรุณาเลือกสังกัด'}`]"
></selector> ></selector>
</div> </div>
<div class="col-12" v-if="announcementExam"> <div class="col-xs-12 col-sm-4 col-md-2" v-if="announcementExam">
<div class="row q-col-gutter-x-sm"> <selector
<div class="col-xs-12 col-sm-6 col-md-6"> outlined
<selector v-model="organizationShortName"
outlined :options="governmentCodeOption"
v-model="organizationShortName" label="รหัสส่วนราชการ"
:options="governmentCodeOption" clearable
label="รหัสส่วนราชการ" option-value="id"
clearable option-label="name"
option-value="id" dense
option-label="name" lazy-rules
dense :rules="[(val:any) => !!val || `${'กรุณาเลือกรหัสส่วนราชการ'}`]"
lazy-rules @update:model-value="(value:any) => selectGovernmentCode(value)"
:rules="[(val:any) => !!val || `${'กรุณาเลือกรหัสส่วนราชการ'}`]" ></selector>
@update:model-value="(value:any) => selectGovernmentCode(value)" </div>
></selector> <div class="col-xs-12 col-sm-6 col-md-6" v-if="announcementExam">
</div> <selector
<div class="col-xs-12 col-sm-6 col-md-6"> outlined
<selector v-model="organizationName"
outlined :options="organizationNameOptions"
v-model="organizationName" label="หน่วยงาน"
:options="organizationNameOptions" clearable
label="หน่วยงาน" option-value="id"
clearable option-label="name"
option-value="id" dense
option-label="name" lazy-rules
dense :rules="[(val:any) => !!val || `${'กรุณาเลือกหน่วยงาน'}`]"
lazy-rules @update:model-value="(value:any) => selectOrganization(value)"
:rules="[(val:any) => !!val || `${'กรุณาเลือกหน่วยงาน'}`]" ></selector>
@update:model-value="(value:any) => selectOrganization(value)" </div>
></selector> <div class="col-12 q-mb-sm">
</div> <q-separator size="5px" color="grey-2" />
</div> </div>
<div class="col-12 q-mb-sm"> <div class="col-12 row" v-if="announcementExam">
<q-separator size="5px" color="grey-2" /> <q-form ref="myFormPosition" class="col-12">
</div>
<q-form ref="myFormPosition">
<ProfileTable <ProfileTable
:rows="rowsPosition" :rows="rowsPosition"
:columns="columnsPosition" :columns="columnsPosition"
@ -473,7 +472,7 @@
<div class="text-bold text-subtitle2 q-pb-md"> <div class="text-bold text-subtitle2 q-pb-md">
เลอกวการชำระเง เลอกวการชำระเง
</div> </div>
<div class="row col-12 q-gutter-y-md q-mb-md"> <div class="row col-12 q-gutter-y-md ">
<q-list dense bordered class="col-12 rounded-borders"> <q-list dense bordered class="col-12 rounded-borders">
<q-item tag="label" v-ripple class="q-pa-md"> <q-item tag="label" v-ripple class="q-pa-md">
<q-radio <q-radio

View file

@ -34,13 +34,13 @@
<q-slide-transition> <q-slide-transition>
<q-card class="row col-12 q-mb-sm" v-show="visible"> <q-card class="row col-12 q-mb-sm" v-show="visible">
<div class="col-12 row"> <div class="col-12 row">
<div class="q-py-md row col-12 no-wrap"> <div class="q-pb-md q-pt-sm row col-12 no-wrap">
<!-- การดแสดงจำนวนขอม --> <!-- การดแสดงจำนวนขอม -->
<div class="col-12 row"> <div class="col-12 row q-px-md ">
<div class="text-grey-7 row text-weight-medium col-12 q-pl-md"> <div class="row items-center col-12 q-gutter-sm q-pb-sm">
สรปจำนวนผสมครคดเลอก <div class="text-weight-medium">สรปจำนวนผสมครคดเลอก</div>
<datepicker <datepicker
class="q-pl-sm" class="col-xs-12 col-sm-5 col-md-4"
v-model="dateFilter" v-model="dateFilter"
:locale="'th'" :locale="'th'"
autoApply autoApply
@ -58,9 +58,9 @@
<q-input <q-input
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
hide-bottom-space hide-bottom-space
outlined
dense dense
label="วันที่" prefix="วันที่"
borderless
lazy-rules lazy-rules
:model-value="dateThaiRange(dateFilter)" :model-value="dateThaiRange(dateFilter)"
> >
@ -75,8 +75,10 @@
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
<q-space />
<q-btn <q-btn
size="md" size="md"
dense
icon="mdi-download" icon="mdi-download"
round round
flat flat
@ -110,7 +112,7 @@
<q-tooltip>ดาวนโหลดรายชอผสอบแขงขนได</q-tooltip> <q-tooltip>ดาวนโหลดรายชอผสอบแขงขนได</q-tooltip>
</q-btn> </q-btn>
</div> </div>
<div class="row col-12 q-col-gutter-md fit q-pa-md"> <div class="row col-12 q-col-gutter-md">
<div <div
style="width: 25%" style="width: 25%"
v-for="(num, index) in dataNum" v-for="(num, index) in dataNum"

View file

@ -493,60 +493,55 @@
<q-space /> <q-space />
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
flat unelevated
round label="ลบข้อมูล"
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'red'" :color="editvisible ? 'grey-7' : 'red'"
@click="saveDelete()" @click="saveDelete()"
icon="mdi-delete-outline" ><!-- icon="mdi-delete-outline"
> <q-tooltip>ลบขอม</q-tooltip> -->
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
flat label="แก้ไขข้อมูล"
round outline
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'" :color="editvisible ? 'grey-7' : 'primary'"
@click="editDialog()" @click="editDialog()"
icon="mdi-pencil-outline" ><!-- icon="mdi-pencil-outline"
> <q-tooltip>แกไขขอม</q-tooltip> -->
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn> </q-btn>
<div v-else> <div v-else>
<q-btn <q-btn
flat flat
round label="ยกเลิกแก้ไข"
:disabled="!editvisible" :disabled="!editvisible"
:outline="!editvisible" :outline="!editvisible"
:color="!editvisible ? 'grey-7' : 'red'" :color="!editvisible ? 'grey-7' : 'red'"
@click="editDialog()" @click="editDialog()"
icon="mdi-undo" ><!-- icon="mdi-undo"
> <q-tooltip>ยกเล</q-tooltip> -->
<q-tooltip>ยกเล</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
flat unelevated
round label="บันทึก"
:disabled="!editvisible" :disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'" :color="!editvisible ? 'grey-7' : 'public'"
@click="saveEdit" @click="saveEdit"
icon="mdi-content-save-outline" ><!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</div> </div>
</q-card-actions> </q-card-actions>
<q-card-actions class="text-primary q-py-sm" v-else> <q-card-actions class="text-primary q-py-sm" v-else>
<q-space /> <q-space />
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="saveAdd" @click="saveAdd"
icon="mdi-content-save-outline" ><!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-card> </q-card>

View file

@ -1,5 +1,5 @@
<template> <template>
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm q-gutter-sm">
<q-btn <q-btn
flat flat
round round
@ -19,51 +19,48 @@
:color="!next ? 'grey-7' : 'public'" :color="!next ? 'grey-7' : 'public'"
/> />
<q-space /> <q-space />
<q-btn
v-if="modalEdit == true"
flat
round
color="red"
@click="clickDelete"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
flat outline
round
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'" :color="editvisible ? 'grey-7' : 'primary'"
@click="edit" @click="edit"
icon="mdi-pencil-outline" label="แก้ไขข้อมูล"
> ><!-- icon="mdi-pencil-outline"
<q-tooltip>แกไขขอม</q-tooltip> <q-tooltip>แกไขขอม</q-tooltip> -->
</q-btn>
<q-btn
v-show="editvisible"
flat
:disabled="!editvisible"
:outline="!editvisible"
:color="!editvisible ? 'grey-7' : 'red'"
@click="cancel()"
label="ยกเลิกแก้ไข"
v-if="modalEdit == true"
> <!-- icon="mdi-undo"
<q-tooltip>ยกเล</q-tooltip> -->
</q-btn>
<q-btn
v-if="modalEdit == true"
unelevated
color="red"
@click="clickDelete"
label="ลบข้อมูล"
><!-- icon="mdi-delete"
<q-tooltip>ลบขอม</q-tooltip> -->
</q-btn>
<q-btn
v-if="editvisible"
unelevated
label="บันทึก"
:disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave"
><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
<div v-else>
<q-btn
flat
round
:disabled="!editvisible"
:outline="!editvisible"
:color="!editvisible ? 'grey-7' : 'red'"
@click="cancel()"
icon="mdi-undo"
v-if="modalEdit == true"
>
<q-tooltip>ยกเล</q-tooltip>
</q-btn>
<q-btn
flat
round
:disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave"
icon="mdi-content-save-outline"
>
<q-tooltip>นท</q-tooltip>
</q-btn>
</div>
</q-card-actions> </q-card-actions>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View file

@ -251,50 +251,48 @@
<q-form ref="myForm"> <q-form ref="myForm">
<DialogHeader tittle="การลา" :close="clickClose" /> <DialogHeader tittle="การลา" :close="clickClose" />
<q-separator /> <q-separator />
<q-card-section> <div class="col-xs-12 col-sm-12 col-md-12">
<div class="col-xs-12 col-sm-12 col-md-12"> <data-table
<data-table :rows="rowsTotal"
:rows="rowsTotal" :columns="columnsTotal"
:columns="columnsTotal" :filter="filterTotal"
:filter="filterTotal" :visible-columns="visibleColumnsTotal"
:visible-columns="visibleColumnsTotal" v-model:inputfilter="filterTotal"
v-model:inputfilter="filterTotal" v-model:inputvisible="visibleColumnsTotal"
v-model:inputvisible="visibleColumnsTotal" :nornmalData="true"
:nornmalData="true" >
> <template #columns="props">
<template #columns="props"> <q-tr :props="props" class="cursor-pointer">
<q-tr :props="props" class="cursor-pointer"> <q-td
<q-td v-for="col in props.cols"
v-for="col in props.cols" :key="col.name"
:key="col.name" :props="props"
:props="props" >
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div
v-else-if="
col.name == 'numLeave' ||
col.name == 'sumLeave' ||
col.name == 'totalLeave'
"
class="table_ellipsis"
> >
<div v-if="col.name == 'no'"> {{
{{ props.rowIndex + 1 }} col.value == null
</div> ? ""
<div : col.value.toLocaleString("en-US")
v-else-if=" }}
col.name == 'numLeave' || </div>
col.name == 'sumLeave' || <div v-else>
col.name == 'totalLeave' {{ col.value }}
" </div>
class="table_ellipsis" </q-td>
> </q-tr>
{{ </template>
col.value == null </data-table>
? "" </div>
: col.value.toLocaleString("en-US")
}}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</data-table>
</div>
</q-card-section>
<q-separator /> <q-separator />
</q-form> </q-form>
</q-card> </q-card>

View file

@ -1,7 +1,7 @@
<template> <template>
<div class="col-12 row"> <div class="col-12 row">
<div class="row col-12" style="padding-top: 80px"> <div class="row col-12" style="padding-top: 80px">
<div id="information" name="1" class="row col-12 information"> <div id="information" name="1" class="row col-12 information q-mt-sm">
<!-- <Informationvue <!-- <Informationvue
v-model:statusEdit="statusEdit" v-model:statusEdit="statusEdit"
:profileType="profileType" :profileType="profileType"
@ -11,16 +11,16 @@
:fetchDataProfile="fetchData" :fetchDataProfile="fetchData"
/> />
</div> </div>
<div id="government" name="16" class="row col-12 q-mt-md"> <div id="government" name="16" class="row col-12">
<Government v-model:statusEdit="statusEdit" /> <Government v-model:statusEdit="statusEdit" />
</div> </div>
<div id="address" name="17" class="row col-12 q-mt-md"> <div id="address" name="17" class="row col-12">
<Address v-model:statusEdit="statusEdit" /> <Address v-model:statusEdit="statusEdit" />
</div> </div>
<div id="family" name="18" class="row col-12 q-mt-md"> <div id="family" name="18" class="row col-12">
<Family v-model:statusEdit="statusEdit" /> <Family v-model:statusEdit="statusEdit" />
</div> </div>
<div id="certicate" name="15" class="row col-12 q-mt-md"> <div id="certicate" name="15" class="row col-12">
<Certicate v-model:statusEdit="statusEdit" :profileType="profileType" /> <Certicate v-model:statusEdit="statusEdit" :profileType="profileType" />
</div> </div>
<div id="education" name="2" class="row col-12 q-mt-md"> <div id="education" name="2" class="row col-12 q-mt-md">
@ -487,13 +487,12 @@
<q-separator /> <q-separator />
<q-card-actions align="right"> <q-card-actions align="right">
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
@click="Retire" @click="Retire"
icon="mdi-content-save-outline" ><!-- icon="mdi-content-save-outline"
> <q-tooltip>นท</q-tooltip> -->
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-card> </q-card>

View file

@ -119,7 +119,7 @@
<div class="dialog-card-contain"> <div class="dialog-card-contain">
<q-card-section class="q-pa-md"> <q-card-section class="q-pa-md">
<div class="row col-12 q-col-gutter-sm"> <div class="row col-12 q-col-gutter-sm">
<div class="col-xs-12 col-sm-3"> <div :class=" $q.screen.lt.md ? ' row col-12 q-col-gutter-xs' : 'no-wrap row col-12 q-col-gutter-xs'">
<selector <selector
hide-bottom-space hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือก ประเภท'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือก ประเภท'}`]"
@ -137,11 +137,9 @@
input-debounce="0" input-debounce="0"
@update:model-value="updateEmployeeClass" @update:model-value="updateEmployeeClass"
/> />
</div>
<!-- @filter="(inputValue:any, <!-- @filter="(inputValue:any,
doneFn:Function) => filterSelector(inputValue, doneFn,'employeeTypeOps' doneFn:Function) => filterSelector(inputValue, doneFn,'employeeTypeOps'
) " --> ) " -->
<div class="col-xs-12 col-sm-2">
<q-input <q-input
clearable clearable
dense dense
@ -153,8 +151,6 @@
@update:model-value="updateProfileId" @update:model-value="updateProfileId"
type="number" type="number"
/> />
</div>
<div class="col-xs-12 col-sm-3">
<q-input <q-input
clearable clearable
dense dense
@ -165,8 +161,6 @@
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
@update:model-value="updateFullname" @update:model-value="updateFullname"
/> />
</div>
<div class="col-xs-12 col-sm-2">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
:model-value="retireYear" :model-value="retireYear"
@ -207,8 +201,6 @@
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
</div>
<div class="col-xs-12 col-sm-2">
<q-input <q-input
clearable clearable
dense dense
@ -221,12 +213,13 @@
@update:model-value="updateGovAge" @update:model-value="updateGovAge"
/> />
</div> </div>
<div class="col-12 row items-center q-col-gutter-md"> <div class="col-12 row items-center">
<q-toggle <q-toggle
dense dense
:model-value="isShowRetire" :model-value="isShowRetire"
color="primary" color="primary"
@update:model-value="updateIsShowRetire" @update:model-value="updateIsShowRetire"
class="q-pr-md"
> >
แสดงขอมลผนจากราชการ แสดงขอมลผนจากราชการ
</q-toggle> </q-toggle>

View file

@ -1,10 +1,11 @@
<template> <template>
<div class="toptitle text-dark col-12 row items-center">ออกคำส</div> <div class="toptitle text-dark col-12 row items-center">ออกคำส</div>
<div> <div>
<q-card flat bordered class="col-12 q-mt-sm"> <q-card flat bordered class="col-12 q-mt-sm q-pa-md">
<div class="row q-pa-md"> <div class="row q-col-gutter-md">
<div class="col-xs-12 col-sm-3 col-md-2"> <div class="row col-12 q-col-gutter-sm">
<q-select <q-select
class="col-xs-12 col-sm-3 col-md-2"
v-model="fiscalyear" v-model="fiscalyear"
label="ปีงบประมาณ" label="ปีงบประมาณ"
dense dense
@ -21,26 +22,27 @@
:hide-dropdown-icon="false" :hide-dropdown-icon="false"
@update:model-value="searchfiscalyear" @update:model-value="searchfiscalyear"
/> />
</div> <div>
<div class="col-xs-12 col-sm-3 col-md-6"> <q-btn size="12px" flat round color="add" icon="mdi-plus">
<q-btn size="12px" flat round color="add" icon="mdi-plus"> <q-tooltip>เพมขอม</q-tooltip>
<q-tooltip>เพมขอม</q-tooltip> <q-menu>
<q-menu> <q-list style="min-width: 100px">
<q-list style="min-width: 100px"> <q-item clickable v-close-popup disable>
<q-item clickable v-close-popup disable> <q-item-section
<q-item-section >ลายเซนอเลกทรอนกส (ออนไลน)</q-item-section
>ลายเซนอเลกทรอนกส (ออนไลน)</q-item-section >
> </q-item>
</q-item> <q-item clickable @click="clickAdd">
<q-item clickable @click="clickAdd"> <q-item-section>ลายเซนช (ออฟไลน)</q-item-section>
<q-item-section>ลายเซนช (ออฟไลน)</q-item-section> </q-item>
</q-item> </q-list>
</q-list> </q-menu>
</q-menu> </q-btn>
</q-btn> </div>
</div> <q-space/>
<div class="col-xs-12 col-sm-3 col-md-2">
<q-input <q-input
class="col-xs-12 col-sm-3 col-md-2"
standout standout
dense dense
v-model="filterKeyword" v-model="filterKeyword"
@ -48,7 +50,6 @@
outlined outlined
debounce="300" debounce="300"
placeholder="ค้นหา" placeholder="ค้นหา"
class="q-ml-sm"
> >
<template v-slot:append> <template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" /> <q-icon v-if="filterKeyword == ''" name="search" />
@ -60,8 +61,7 @@
/> />
</template> </template>
</q-input> </q-input>
</div>
<div class="col-xs-12 col-sm-3 col-md-2">
<q-select <q-select
v-model="visibleColumns" v-model="visibleColumns"
multiple multiple
@ -75,15 +75,14 @@
option-value="name" option-value="name"
options-cover options-cover
style="min-width: 150px" style="min-width: 150px"
class="gt-xs q-ml-sm" class="col-xs-12 col-sm-3 col-md-2"
/> />
</div> </div>
</div> <div class="col-12">
<div class="q-pt-sm q-pl-md q-pr-md q-pb-md"> <q-card bordered class="col-12 filter-card q-pa-sm">
<q-card bordered class="col-12 filter-card"> <div class="row col-12 q-col-gutter-sm">
<div class="row q-pa-sm">
<div class="col-xs-12 col-sm-3 col-md- q-pl-sm">
<q-select <q-select
class="col-xs-12 col-sm-3 col-md-2"
v-model="OrderType" v-model="OrderType"
label="ประเภท" label="ประเภท"
dense dense
@ -100,9 +99,8 @@
:hide-dropdown-icon="false" :hide-dropdown-icon="false"
@update:model-value="searchFilterTable" @update:model-value="searchFilterTable"
/> />
</div>
<div class="col-xs-12 col-sm-3 col-md- q-pl-sm">
<q-select <q-select
class="col-xs-12 col-sm-3 col-md-2"
v-model="OrderStatus" v-model="OrderStatus"
label="สถานะ" label="สถานะ"
dense dense
@ -120,117 +118,118 @@
@update:model-value="searchFilterTable" @update:model-value="searchFilterTable"
/> />
</div> </div>
</div>
</q-card> </q-card>
</div> </div>
<div class="q-pt-sm q-pl-md q-pr-md q-pb-md"> <div class="col-12">
<q-table <q-table
ref="table" ref="table"
:columns="columns" :columns="columns"
:rows="UpdataData" :rows="UpdataData"
:filter="filterKeyword" :filter="filterKeyword"
row-key="Order" row-key="Order"
flat flat
bordered bordered
:paging="true" :paging="true"
dense dense
class="custom-header-table" class="custom-header-table"
v-bind="attrs" v-bind="attrs"
:visible-columns="visibleColumns" :visible-columns="visibleColumns"
:pagination-label="paginationLabel" :pagination-label="paginationLabel"
v-model:pagination="pagination" v-model:pagination="pagination"
> >
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<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-th auto-width /> <q-th auto-width />
</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" class="cursor-pointer">
<q-td <q-td
key="Order" key="Order"
:props="props" :props="props"
@click="redirectToPage(props.row.Order)" @click="redirectToPage(props.row.Order)"
>
{{ props.row.Order }}
</q-td>
<q-td
key="OrderNum"
:props="props"
@click="redirectToPage(props.row.Order)"
>
{{ props.row.OrderNum }}
</q-td>
<q-td
key="OrderDate"
:props="props"
@click="redirectToPage(props.row.Order)"
>
{{ props.row.OrderDate }}
</q-td>
<q-td
key="OrderBy"
:props="props"
@click="redirectToPage(props.row.Order)"
>
{{ props.row.OrderBy }}
</q-td>
<q-td
key="Signer"
:props="props"
@click="redirectToPage(props.row.Order)"
>
{{ props.row.Signer }}
</q-td>
<q-td
key="OrderStatus"
:props="props"
@click="redirectToPage(props.row.Order)"
>
<q-icon
v-if="props.row.OrderStatus == 'ยังไม่ได้ออกคำสั่ง'"
name="hourglass_top"
color="orange"
class="text-h5"
/>
<q-icon
v-if="props.row.OrderStatus == 'ออกคำสั่งแล้ว'"
name="mdi-check"
color="positive"
class="text-h5"
/>
</q-td>
<q-td auto-width>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
> >
<q-tooltip>ลบขอม</q-tooltip> {{ props.row.Order }}
</q-btn> </q-td>
</q-td> <q-td
</q-tr> key="OrderNum"
</template> :props="props"
<template v-slot:pagination="scope"> @click="redirectToPage(props.row.Order)"
<q-pagination >
v-model="pagination.page" {{ props.row.OrderNum }}
color="primary" </q-td>
:max="scope.pagesNumber" <q-td
:max-pages="5" key="OrderDate"
size="sm" :props="props"
boundary-links @click="redirectToPage(props.row.Order)"
direction-links >
></q-pagination> {{ props.row.OrderDate }}
</template> </q-td>
</q-table> <q-td
key="OrderBy"
:props="props"
@click="redirectToPage(props.row.Order)"
>
{{ props.row.OrderBy }}
</q-td>
<q-td
key="Signer"
:props="props"
@click="redirectToPage(props.row.Order)"
>
{{ props.row.Signer }}
</q-td>
<q-td
key="OrderStatus"
:props="props"
@click="redirectToPage(props.row.Order)"
>
<q-icon
v-if="props.row.OrderStatus == 'ยังไม่ได้ออกคำสั่ง'"
name="mdi-timer-sand"
color="orange"
size="20px"
/>
<q-icon
v-if="props.row.OrderStatus == 'ออกคำสั่งแล้ว'"
name="mdi-check"
color="positive"
size="20px"
/>
</q-td>
<q-td auto-width>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">
<q-pagination
v-model="pagination.page"
active-color="primary"
color="dark"
:max="scope.pagesNumber"
:max-pages="5"
size="sm"
boundary-links
direction-links
></q-pagination>
</template>
</q-table>
</div>
</div> </div>
</q-card> </q-card>
</div> </div>
@ -329,7 +328,7 @@ const columns = ref<QTableProps["columns"]>([
}, },
{ {
name: "OrderStatus", name: "OrderStatus",
align: "left", align: "center",
label: "สถานะคำสั่ง", label: "สถานะคำสั่ง",
sortable: false, sortable: false,
field: "OrderStatus", field: "OrderStatus",
@ -703,7 +702,7 @@ const paginationLabel = (start: string, end: string, total: string) => {
<style lang="scss" scope> <style lang="scss" scope>
.filter-card { .filter-card {
background-color: #ededed; background-color: #f1f1f1b0;
} }
.toggle-expired-account { .toggle-expired-account {

View file

@ -18,6 +18,7 @@
ref="stepper" ref="stepper"
color="primary" color="primary"
animated animated
class="step"
header-class="bg-grey-1" header-class="bg-grey-1"
> >
<q-step <q-step
@ -96,4 +97,11 @@ const previousStep = () => {
.q-stepper--horizontal .q-stepper__step-inner { .q-stepper--horizontal .q-stepper__step-inner {
padding: 0px; padding: 0px;
} }
.step .q-stepper__tab--done .q-stepper__title,.step .q-stepper__tab--active .q-stepper__title{
color: #35473C !important;
font-weight: 500 ;
}
.step .q-stepper__header--standard-labels .q-stepper__tab{
min-height: 60px;
}
</style> </style>

View file

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<div class="q-pa-md" style="min-height: 70vh; overflow-y: scroll"> <div class="q-pa-md" style="max-height: 68vh; overflow-y: scroll">
<q-form ref="myForm"> <q-form ref="myForm">
<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">
@ -369,15 +369,14 @@
</q-form> </q-form>
</div> </div>
<q-separator /> <q-separator />
<div class="flex justify-end q-px-md q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
icon="mdi-content-save-outline"
@click="next" @click="next"
> ><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
<!-- <q-btn flat round color="primary" icon="chevron_left" @click="previous"> <!-- <q-btn flat round color="primary" icon="chevron_left" @click="previous">
<q-tooltip>อนกล</q-tooltip> <q-tooltip>อนกล</q-tooltip>

View file

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div class="q-pa-md" style="min-height: 70vh; overflow-y: scroll"> <div class="q-pa-sm" style="max-height: 68vh; overflow-y: scroll">
<div class="col-12 row q-py-sm items-center"> <div class="col-12 row q-pb-sm items-center">
<q-btn flat round color="primary" @click="refresh" icon="mdi-refresh"> <q-btn flat round color="primary" @click="refresh" icon="mdi-refresh">
<q-tooltip>ปเดตขอม</q-tooltip> <q-tooltip>ปเดตขอม</q-tooltip>
</q-btn> </q-btn>
@ -20,9 +20,9 @@
class="q-ml-sm" class="q-ml-sm"
> >
<template v-slot:append> <template v-slot:append>
<q-icon v-if="inputfilter == ''" name="search" /> <q-icon v-if="filter == ''" name="search" />
<q-icon <q-icon
v-if="inputfilter !== ''" v-if="filter !== ''"
name="clear" name="clear"
class="cursor-pointer" class="cursor-pointer"
@click="resetFilter" @click="resetFilter"
@ -62,13 +62,19 @@
v-model:pagination="pagination" v-model:pagination="pagination"
> >
<template v-slot:header-selection="scope"> <template v-slot:header-selection="scope">
<q-checkbox keep-color color="primary" v-model="scope.selected" /> <q-checkbox
keep-color
color="primary"
dense
v-model="scope.selected"
/>
</template> </template>
<template v-slot:body-selection="scope"> <template v-slot:body-selection="scope">
<q-checkbox <q-checkbox
keep-color keep-color
color="primary" color="primary"
dense
:model-value="scope.selected" :model-value="scope.selected"
@update:model-value=" @update:model-value="
(val, evt) => { (val, evt) => {
@ -80,6 +86,7 @@
" "
/> />
</template> </template>
<template v-slot:body-cell="props"> <template v-slot:body-cell="props">
<q-td :props="props"> <q-td :props="props">
<div v-if="props.col.name == 'no'"> <div v-if="props.col.name == 'no'">
@ -96,7 +103,7 @@
:readonly="!true" :readonly="!true"
:borderless="!true" :borderless="!true"
v-model="props.value" v-model="props.value"
:rules="[(val:any) => !!val || `${'กรุณาเลือกเลือกวุฒิการศึกษา'}`,(val:any) => val.length > 0 || `${'กรุณาเลือกเลือกวุฒิการศึกษา'}`]" :rules="[(val:any) => !!val || `${'กรุณาเลือกวุฒิการศึกษา'}`,(val:any) => val.length > 0 || `${'กรุณาเลือกวุฒิการศึกษา'}`]"
:label="`${'เลือกวุฒิการศึกษา'}`" :label="`${'เลือกวุฒิการศึกษา'}`"
emit-value emit-value
map-options map-options
@ -123,25 +130,43 @@
</div> </div>
</q-td> </q-td>
</template> </template>
<template v-slot:pagination="scope">
<q-pagination
v-model="pagination.page"
color="primary"
:max="scope.pagesNumber"
:max-pages="5"
size="sm"
boundary-links
direction-links
></q-pagination>
</template>
</q-table> </q-table>
</div> </div>
<q-separator /> <q-separator />
<div class="flex justify-end q-px-md q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn
dense
outline
color="primary"
icon="chevron_left"
@click="previous"
class="q-pr-md"
label="กรอกรายละเอียด">
</q-btn>
<q-btn <q-btn
flat dense
round unelevated
label="บันทึก"
color="public" color="public"
icon="mdi-content-save-outline"
@click="next" @click="next"
> class="q-px-md"
<q-tooltip>นท</q-tooltip> ><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
<q-btn flat round color="primary" icon="chevron_left" @click="previous"> <!-- <q-btn dense flat round color="primary" icon="chevron_right" @click="next">
<q-tooltip>อนกล</q-tooltip>
</q-btn>
<q-btn flat round color="primary" icon="chevron_right" @click="next">
<q-tooltip>อไป</q-tooltip> <q-tooltip>อไป</q-tooltip>
</q-btn> </q-btn> -->
</div> </div>
</div> </div>
</template> </template>
@ -303,7 +328,6 @@ const getClass = (val: boolean) => {
color: #4154b3; color: #4154b3;
} }
.custom-header-table { .custom-header-table {
max-height: 64vh;
.q-table tr:nth-child(odd) td { .q-table tr:nth-child(odd) td {
background: white; background: white;
} }

View file

@ -2,18 +2,9 @@
<div> <div>
<div class="q-pa-md" style="min-height: 70vh; overflow-y: scroll"> <div class="q-pa-md" style="min-height: 70vh; overflow-y: scroll">
<div class="col-12 row q-py-sm items-center"> <div class="col-12 row q-py-sm items-center">
<q-btn <q-btn flat round color="primary" @click="clickAdd" icon="mdi-plus">
size="12px"
flat
round
color="add"
@click="clickAdd"
icon="mdi-plus"
>
<q-tooltip>เพมขอม</q-tooltip> <q-tooltip>เพมขอม</q-tooltip>
</q-btn> </q-btn>
<!-- การดเพมขอม-->
<q-form ref="myForm"> </q-form>
<q-space /> <q-space />
<div class="items-center" style="display: flex"> <div class="items-center" style="display: flex">
<!-- นหาขอความใน table --> <!-- นหาขอความใน table -->
@ -29,9 +20,9 @@
class="q-ml-sm" class="q-ml-sm"
> >
<template v-slot:append> <template v-slot:append>
<q-icon v-if="inputfilter == ''" name="search" /> <q-icon v-if="filter == ''" name="search" />
<q-icon <q-icon
v-if="inputfilter !== ''" v-if="filter !== ''"
name="clear" name="clear"
class="cursor-pointer" class="cursor-pointer"
@click="resetFilter" @click="resetFilter"
@ -55,101 +46,297 @@
/> />
</div> </div>
</div> </div>
<div class="q-pt-sm q-pl-md q-pr-md q-pb-md"> <q-table
<q-table flat
flat bordered
bordered dense
dense :rows="rows"
:rows="rows" :columns="columns"
:columns="columns" :visible-columns="visibleColumns"
:visible-columns="visibleColumns" :filter="filter"
:filter="filter" row-key="name"
row-key="name" class="custom-header-table"
v-model:selected="selected" :pagination-label="paginationLabel"
class="custom-header-table" v-model:pagination="pagination"
:pagination-label="paginationLabel" >
v-model:pagination="pagination" <template v-slot:header="props">
> <q-tr :props="props">
<template v-slot:body-cell="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<q-td :props="props"> <span class="text-weight-medium">{{ col.label }}</span>
<div v-if="props.col.name == 'no'"> </q-th>
{{ props.rowIndex + 1 }} <q-th auto-width />
</div> </q-tr>
<div v-else-if="props.col.name == 'notification'"> </template>
<q-select <template v-slot:body="props">
:class="getClass(true)" <q-tr :props="props" class="cursor-pointer">
hide-bottom-space <q-td key="no" :props="props">
multiple {{ props.rowIndex + 1 }}
:outlined="true"
dense
use-chips
lazy-rules
:readonly="!true"
:borderless="!true"
v-model="props.value"
:rules="[(val:any) => !!val || `${'กรุณาเลือกช่องทาง'}`,(val:any) => val.length > 0 || `${'กรุณาเลือกช่องทาง'}`]"
:label="`${'เลือกช่องทาง'}`"
emit-value
map-options
option-label="name"
:options="notificationOption"
option-value="id"
input-debounce="0"
color="primary"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-black">
ไมพบขอมลทนหา
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div v-else @click="click(props)">
{{ props.value }}
</div>
</q-td> </q-td>
</template> <q-td key="idcard" :props="props">
<template v-slot:pagination="scope"> {{ props.row.idcard }}
<q-pagination </q-td>
v-model="pagination.page" <q-td key="name" :props="props">
color="primary" {{ props.row.name }}
:max="scope.pagesNumber" </q-td>
:max-pages="5" <q-td key="position" :props="props">
size="sm" {{ props.row.position }}
boundary-links </q-td>
direction-links <q-td key="agency" :props="props">
></q-pagination> {{ props.row.agency }}
</template> </q-td>
</q-table> <q-td key="send" :props="props">
</div> <q-select
:class="getClass(true)"
hide-bottom-space
multiple
:outlined="true"
dense
lazy-rules
v-model="filter"
:rules="[(val:any) => !!val || `${'กรุณาเลือกช่องทางการส่งสำเนา'}`,(val:any) => val.length > 0 || `${'กรุณาเลือกช่องทางการส่งสำเนา'}`]"
:label="`${'เลือกช่องทางการส่งสำเนา'}`"
emit-value
map-options
option-label="name"
:options="optionSelect"
option-value="id"
input-debounce="0"
color="primary"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-black">
ไมพบขอมลทนหา
</q-item-section>
</q-item>
</template>
</q-select>
</q-td>
<q-td auto-width>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">
<q-pagination
v-model="pagination.page"
color="primary"
:max="scope.pagesNumber"
:max-pages="5"
size="sm"
boundary-links
direction-links
></q-pagination>
</template>
</q-table>
</div> </div>
<q-separator /> <q-separator />
<div class="flex justify-end q-px-md q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn <q-btn
flat dense
round outline
color="public" color="primary"
icon="mdi-content-save-outline" icon="chevron_left"
@click="next" @click="previous"
class="q-pr-md"
label="เลือกรายชื่อ"
> >
<q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
<q-btn flat round color="primary" icon="chevron_left" @click="previous"> <q-btn
<q-tooltip>อนกล</q-tooltip> dense
unelevated
label="บันทึก"
color="public"
@click="next"
class="q-px-md"
><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
<q-btn flat round color="primary" icon="chevron_right" @click="next"> <!-- <q-btn flat round color="primary" icon="chevron_right" @click="next">
<q-tooltip>อไป</q-tooltip> <q-tooltip>อไป</q-tooltip>
</q-btn> </q-btn> -->
</div> </div>
</div> </div>
<q-dialog v-model="modal" persistent full-width>
<q-card>
<q-form ref="myForm">
<DialogHeader tittle="เลือกรายชื่อตามหน่วยงาน" :close="clickClose" />
<q-separator />
<q-card-section class="q-pa-sm bg-grey-1">
<div class="row col-12 q-col-gutter-sm">
<div class="col-xs-12 col-sm-5 row">
<q-card flat bordered class="fit q-pa-sm">
<q-scroll-area visible style="height: 70vh">
<q-input
outlined
dense
v-model="search"
placeholder="ค้นหา"
class="q-mb-sm"
>
<template v-slot:append>
<q-icon name="mdi-magnify" />
</template>
</q-input>
<q-tree
:nodes="nodesTree"
dense
node-key="id"
v-model:selected="selected"
v-model:expanded="expanded"
no-selection-unset
selected-color="primary"
@update:selected="onSelected"
default-expand-all
/>
</q-scroll-area>
</q-card>
</div>
<div class="col-xs-12 col-sm-7">
<div class="col-12 row q-py-sm items-center">
<q-space />
<div class="items-center" style="display: flex">
<q-input
standout
dense
v-model="filterModal"
ref="filterRef"
outlined
debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
class="q-ml-sm"
>
<template v-slot:append>
<q-icon v-if="filterModal == ''" name="search" />
<q-icon
v-if="filterModal !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
</template>
</q-input>
<q-select
v-model="visibleColumnsModal"
:display-value="$q.lang.table.columns"
multiple
outlined
dense
:options="columnsModal"
options-dense
option-value="name"
map-options
emit-value
style="min-width: 150px"
class="gt-xs q-ml-sm"
/>
</div>
</div>
<q-table
flat
bordered
dense
:rows="rowsModal"
:columns="columnsModal"
:visible-columns="visibleColumnsModal"
:filter="filterModal"
row-key="name"
selection="multiple"
v-model:selected="selectedModal"
class="custom-header-table"
:pagination-label="paginationLabel"
v-model:pagination="paginationModal"
>
<template v-slot:header-selection="scope">
<q-checkbox
keep-color
color="primary"
dense
v-model="scope.selected"
/>
</template>
<template v-slot:body-selection="scope">
<q-checkbox
keep-color
color="primary"
dense
:model-value="scope.selected"
@update:model-value="
(val, evt) => {
Object.getOwnPropertyDescriptor(scope, 'selected').set(
val,
evt
);
}
"
/>
</template>
<template v-slot:body-cell="props">
<q-td :props="props">
<div v-if="props.col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else>
{{ props.value }}
</div>
</q-td>
</template>
<template v-slot:pagination="scope">
<q-pagination
v-model="paginationModal.page"
color="primary"
:max="scope.pagesNumber"
:max-pages="5"
size="sm"
boundary-links
direction-links
></q-pagination>
</template>
</q-table>
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right">
<q-btn
flat
round
color="public"
icon="mdi-content-save-outline"
@click="next"
>
<q-tooltip>นท</q-tooltip>
</q-btn>
</q-card-actions>
</q-form>
</q-card>
</q-dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, reactive } from "vue"; import { ref, onMounted } from "vue";
import { useQuasar, QInput, QForm } from "quasar"; import { useQuasar } from "quasar";
import type { DataOption } from "@/modules/05_placement/interface/index/Main"; import { useCounterMixin } from "@/stores/mixin";
import router from "@/router"; import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
import type { QInput, QForm } from "quasar";
import type { treeTab } from "@/modules/05_placement/interface/index/Main.ts";
import http from "@/plugins/http";
import config from "@/app.config";
const props = defineProps({ const props = defineProps({
next: { next: {
@ -166,16 +353,133 @@ const next = () => props.next();
const previous = () => props.previous(); const previous = () => props.previous();
const $q = useQuasar(); const $q = useQuasar();
const mixin = useCounterMixin(); //
const { dialogMessage, messageError, showLoader, hideLoader } = mixin;
const myForm = ref<QForm>();
const filterRef = ref<QInput>(); const filterRef = ref<QInput>();
const filter = ref<string>(""); const filter = ref<string>("");
const modal = ref<boolean>(false);
const search = ref<string>("");
const expanded = ref<string[]>([]);
const selected = ref<string>("");
const nodesTree = ref<treeTab[]>([]);
const selectedModal = ref([]);
const filterModal = ref<string>("");
const visibleColumnsModal = ref<String[]>(["no", "idcard", "name"]);
const columnsModal = [
{ name: "no", align: "left", label: "ลำดับ", field: "no", sortable: true },
{
name: "idcard",
align: "left",
label: "เลขประจำตัวประชาชน",
field: "idcard",
sortable: true,
},
{
name: "name",
align: "left",
label: "ชื่อ-สกุล",
field: "name",
sortable: true,
},
];
const rowsModal = [
{
no: "0ac56905-1a74-4606-a120-233340adde95",
name: "นางนัทธ์ เหล่าสกุล",
idcard: "9158455632145",
educate: "",
},
{
no: "0de607a0-b094-4a6d-9e30-979343ab5e53",
name: "นางขรรค์ จันทรสมบัติ",
idcard: "8558455632126",
educate: "",
},
{
no: "93ca7366-2a35-4f94-a331-9c23c9ea78d3",
name: "นางโอภาส จรัสวงศ์",
idcard: "8158455635425",
educate: "",
},
{
no: "d3777c19-2bd0-42df-90ce-c3eeeee55ac6",
name: "นางธิญา หงษ์ทอง",
idcard: "4558455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางธนวิทย์ พิกุลเทพ",
idcard: "5542455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางหนึ่ง สตาภิรมย์",
idcard: "7448455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางสัจพร คมคาย",
idcard: "1236455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางตุลยากร ปรีดาศิริกุล",
idcard: "1523455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางบัลลังค์ จิรวาณิชย์",
idcard: "1258455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางคมคาย เรืองรังสรรค์",
idcard: "8548455632145",
educate: "",
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางพรทิพา คมคาย",
idcard: "6598455632145",
educate: "",
},
];
const paginationModal = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const pagination = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const optionSelect = ref<any>([
{ id: 1, name: "อีเมล" },
{ id: 2, name: "แจ้งเตือน" },
]);
const visibleColumns = ref<String[]>([ const visibleColumns = ref<String[]>([
"no", "no",
"idcard", "idcard",
"name", "name",
"position", "position",
"department", "agency",
"notification", "send",
]); ]);
const columns = [ const columns = [
{ name: "no", align: "left", label: "ลำดับ", field: "no", sortable: true }, { name: "no", align: "left", label: "ลำดับ", field: "no", sortable: true },
@ -201,17 +505,17 @@ const columns = [
sortable: true, sortable: true,
}, },
{ {
name: "department", name: "agency",
align: "left", align: "left",
label: "หน่วยงาน", label: "หน่วยงาน",
field: "department", field: "agency",
sortable: true, sortable: true,
}, },
{ {
name: "notification", name: "send",
align: "left", align: "left",
label: "ช่องทางการส่งสำเนา", label: "ช่องทางการส่งสำเนา",
field: "notification", field: "send",
sortable: true, sortable: true,
}, },
]; ];
@ -221,120 +525,101 @@ const rows = [
no: "0ac56905-1a74-4606-a120-233340adde95", no: "0ac56905-1a74-4606-a120-233340adde95",
name: "นางนัทธ์ เหล่าสกุล", name: "นางนัทธ์ เหล่าสกุล",
idcard: "9158455632145", idcard: "9158455632145",
send: "",
position: "ผู้อำนวยการ", position: "ผู้อำนวยการ",
department: "กลุ่มงานช่วยบริหาร", agency: "กลุ่มงานช่วยบริหาร",
notification: "Email ",
}, },
{ {
no: "0de607a0-b094-4a6d-9e30-979343ab5e53", no: "0de607a0-b094-4a6d-9e30-979343ab5e53",
name: "นางขรรค์ จันทรสมบัติ", name: "นางขรรค์ จันทรสมบัติ",
idcard: "8558455632126", idcard: "8558455632126",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นักจัดการทั่วไป",
notification: "Inbox", agency: "กลุ่มงานช่วยบริหาร",
}, },
{ {
no: "93ca7366-2a35-4f94-a331-9c23c9ea78d3", no: "93ca7366-2a35-4f94-a331-9c23c9ea78d3",
name: "นางโอภาส จรัสวงศ์", name: "นางโอภาส จรัสวงศ์",
idcard: "8158455635425", idcard: "8158455635425",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นักจัดการทั่วไป",
notification: "Notification", agency: "กลุ่มงานช่วยบริหาร",
}, },
{ {
no: "d3777c19-2bd0-42df-90ce-c3eeeee55ac6", no: "d3777c19-2bd0-42df-90ce-c3eeeee55ac6",
name: "นางธิญา หงษ์ทอง", name: "นางธิญา หงษ์ทอง",
idcard: "4558455632145", idcard: "4558455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นักจัดการทั่วไป",
notification: "Notification", agency: "กลุ่มงานช่วยบริหาร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางธนวิทย์ พิกุลเทพ", name: "นางธนวิทย์ พิกุลเทพ",
idcard: "5542455632145", idcard: "5542455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นักจัดการทั่วไป",
notification: "Inbox ", agency: "กลุ่มงานช่วยบริหาร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางหนึ่ง สตาภิรมย์", name: "นางหนึ่ง สตาภิรมย์",
idcard: "7448455632145", idcard: "7448455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นิติกร",
notification: "Inbox ", agency: "กลุ่มงานนิติกร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางสัจพร คมคาย", name: "นางสัจพร คมคาย",
idcard: "1236455632145", idcard: "1236455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นิติกร",
notification: "Inbox ", agency: "กลุ่มงานนิติกร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางตุลยากร ปรีดาศิริกุล", name: "นางตุลยากร ปรีดาศิริกุล",
idcard: "1523455632145", idcard: "1523455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นิติกร",
notification: "Inbox ", agency: "กลุ่มงานนิติกร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางบัลลังค์ จิรวาณิชย์", name: "นางบัลลังค์ จิรวาณิชย์",
idcard: "1258455632145", idcard: "1258455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นิติกร",
notification: "Inbox ", agency: "กลุ่มงานนิติกร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางคมคาย เรืองรังสรรค์", name: "นางคมคาย เรืองรังสรรค์",
idcard: "8548455632145", idcard: "8548455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นิติกร",
notification: "Inbox ", agency: "กลุ่มงานนิติกร",
}, },
{ {
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd", no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
name: "นางพรทิพา คมคาย", name: "นางพรทิพา คมคาย",
idcard: "6598455632145", idcard: "6598455632145",
position: "ผู้อำนวยการ", send: "",
department: "กลุ่มงานช่วยบริหาร", position: "นิติกร",
notification: "Inbox ", agency: "กลุ่มงานนิติกร",
}, },
]; ];
// const clickAdd = () => {
// router.push({ name: "OrderplacementDetail" }); onMounted(async () => {
// }; await nodeTree();
const selected = ref([]);
const pagination = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
}); });
const notificationOption = reactive<DataOption[]>([{ id: 0, name: "ทั้งหมด" }]);
const click = (e: any) => {
console.log(e);
};
const myForm = ref<QForm | null>(null);
const clickAdd = async () => {
await myForm.value!.validate().then(async (result: boolean) => {
// console.log(result);
});
};
const selectData = (row: any) => {};
const paging = ref<boolean>(true);
const paginationLabel = (start: string, end: string, total: string) => { const paginationLabel = (start: string, end: string, total: string) => {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total; // if (props.paging == true)
else return start + "-" + end + " ใน " + total; // return " " + start + " " + end + " " + total + " ";
// else
return start + "-" + end + " ใน " + total;
}; };
const resetFilter = () => { const resetFilter = () => {
@ -349,6 +634,67 @@ const getClass = (val: boolean) => {
"full-width cursor-pointer": !val, "full-width cursor-pointer": !val,
}; };
}; };
const clickClose = async () => {
// if (editRow.value == true) {
// dialogMessage(
// $q,
// "",
// "?",
// "mdi-help-circle-outline",
// "",
// "orange",
// () => (modal.value = false),
// undefined
// );
// } else {
modal.value = false;
// next.value = false;
// previous.value = false;
// }
};
const clickAdd = () => {
modal.value = true;
};
const clickDelete = (id: string) => {
dialogMessage(
$q,
"ยืนยันการลบข้อมูล",
"ต้องการลบข้อมูลนี้ใช่หรือไม่?",
"mdi-help-circle-outline",
"ตกลง",
"red",
() => deleteData(id),
undefined
);
};
const nodeTree = async () => {
showLoader();
await http
.get(config.API.profileOrganizRoot)
.then((res: any) => {
const data = res.data.result;
nodesTree.value = data;
if (data.length > 0) {
expanded.value = [data[0].id];
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
};
const onSelected = async (id: string) => {
// await fetchPositionNumber(id);
};
const deleteData = async (id: string) => {};
</script> </script>
<style lang="scss"> <style lang="scss">
.icon-color { .icon-color {

View file

@ -51,7 +51,10 @@
</q-btn> </q-btn>
</div> </div>
</div> </div>
<div class="card-pdf q-ma-md q-pa-md">asd</div> <div class="card-pdf q-ma-md q-pa-md" v-if="tab == 'main'">
คำส
</div>
<div class="card-pdf q-ma-md q-pa-md" v-else>เอกสารแนบท้าย</div>
</template> </template>
<template v-slot:separator> <template v-slot:separator>
@ -93,19 +96,25 @@
</q-splitter> </q-splitter>
</div> </div>
<q-separator /> <q-separator />
<div class="flex justify-end q-px-md q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn
dense
outline
color="primary"
icon="chevron_left"
@click="previous"
class="q-pr-md"
label="เลือกรายชื่อส่งสำเนา">
</q-btn>
<q-btn <q-btn
flat unelevated
round label="บันทึก"
color="public" color="public"
icon="mdi-content-save-outline"
@click="next" @click="next"
> > <!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip> -->
</q-btn>
<q-btn flat round color="primary" icon="chevron_left" @click="previous">
<q-tooltip>อนกล</q-tooltip>
</q-btn> </q-btn>
<!-- <q-btn flat round color="primary" icon="chevron_right" @click="next"> <!-- <q-btn flat round color="primary" icon="chevron_right" @click="next">
<q-tooltip>อไป</q-tooltip> <q-tooltip>อไป</q-tooltip>
</q-btn> --> </q-btn> -->

View file

@ -67,27 +67,61 @@ const clickPrevious = async () => {
</script> </script>
<template> <template>
<q-card-actions class="text-primary q-py-sm"> <q-card-actions class="text-primary q-py-sm">
<q-btn flat round icon="mdi-menu-left" @click="clickPrevious" v-if="modalEdit == true" :disable="previous == false" <q-btn
flat round
icon="mdi-menu-left"
@click="clickPrevious"
v-if="modalEdit == true"
:disable="previous == false"
:color="!previous ? 'grey-7' : 'public'" /> :color="!previous ? 'grey-7' : 'public'" />
<q-btn flat round icon="mdi-menu-right" @click="clickNext" v-if="modalEdit == true" :disable="next == false" <q-btn
flat round
icon="mdi-menu-right"
@click="clickNext"
v-if="modalEdit == true" :disable="next == false"
:color="!next ? 'grey-7' : 'public'" /> :color="!next ? 'grey-7' : 'public'" />
<q-space /> <q-space />
<q-btn v-if="modalEdit == true" flat round color="red" @click="clickDelete" icon="mdi-delete"> <q-btn
<q-tooltip>ลบขอม</q-tooltip> v-if="modalEdit == true"
unelevated
label="ลบข้อมูล"
color="red"
@click="clickDelete"
><!-- icon="mdi-delete"
<q-tooltip>ลบขอม</q-tooltip> -->
</q-btn> </q-btn>
<q-btn v-if="!editvisible" flat round :disabled="editvisible" :color="editvisible ? 'grey-7' : 'primary'" <q-btn
@click="edit" icon="mdi-pencil-outline"> v-show="editvisible"
<q-tooltip>แกไขขอม</q-tooltip> flat
:disabled="!editvisible"
:outline="!editvisible"
:color="!editvisible ? 'grey-7' : 'red'"
@click="cancel()"
label="ยกเลิกแก้ไข"
v-if="modalEdit == true">
<!-- icon="mdi-undo"
<q-tooltip>ยกเล</q-tooltip> -->
</q-btn>
<q-btn
v-if="!editvisible"
outline
label="แก้ไขข้อมูล"
:disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'"
@click="edit">
<!-- icon="mdi-pencil-outline"
<q-tooltip></q-tooltip> -->
</q-btn>
<q-btn
v-if="editvisible"
unelevated
:disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave"
label="บันทึก"
><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn> </q-btn>
<div v-else>
<q-btn flat round :disabled="!editvisible" :outline="!editvisible" :color="!editvisible ? 'grey-7' : 'red'"
@click="cancel()" icon="mdi-undo" v-if="modalEdit == true">
<q-tooltip>ยกเล</q-tooltip>
</q-btn>
<q-btn flat round :disabled="!editvisible" :color="!editvisible ? 'grey-7' : 'public'" @click="checkSave"
icon="mdi-content-save-outline">
<q-tooltip>นท</q-tooltip>
</q-btn>
</div>
</q-card-actions> </q-card-actions>
</template> </template>

View file

@ -45,15 +45,25 @@ const checkSave = () => {
<template> <template>
<q-card-actions class="text-primary"> <q-card-actions class="text-primary">
<q-space /> <q-space />
<q-btn v-if="!editvisible" flat round :disabled="editvisible" :color="editvisible ? 'grey-7' : 'primary'" <q-btn
@click="edit" icon="mdi-pencil-outline"> v-if="!editvisible"
<q-tooltip>แกไขขอม</q-tooltip> outline
:disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'"
@click="edit"
><!-- icon="mdi-pencil-outline"
<q-tooltip>แกไขขอม</q-tooltip> -->
</q-btn> </q-btn>
<div v-else> <div v-else>
<q-btn flat round :disabled="!editvisible" :color="!editvisible ? 'grey-7' : 'public'" @click="checkSave" <q-btn
icon="mdi-content-save-outline"> unelevated
<q-tooltip>นท</q-tooltip> label="บันทึก"
</q-btn> :disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave"
>
</q-btn><!-- icon="mdi-content-save-outline">
<q-tooltip>นท</q-tooltip> -->
</div> </div>
</q-card-actions> </q-card-actions>
</template> </template>

View file

@ -1,13 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed } from "vue"; import { ref, computed } from "vue";
import DialogHeader from "@/modules/05_placement/components/pass/DialogHeader.vue"; import DialogHeader from "@/modules/05_placement/components/pass/DialogHeader.vue";
import { useQuasar } from 'quasar' import { useQuasar } from "quasar";
import DialogFooter from "@/modules/05_placement/components/pass/DialogFooter.vue"; import DialogFooter from "@/modules/05_placement/components/pass/DialogFooter.vue";
import type { CheckboxItem } from "@/modules/05_placement/interface/index/Main"; import type { CheckboxItem } from "@/modules/05_placement/interface/index/Main";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
const mixin = useCounterMixin(); // const mixin = useCounterMixin(); //
const modal = ref<boolean>(); const modal = ref<boolean>();
const { success } = mixin; const { success } = mixin;
const save = ref<boolean>(true); const save = ref<boolean>(true);
const props = defineProps({ const props = defineProps({
Modal: Boolean, Modal: Boolean,
@ -72,7 +72,7 @@ const checkboxItems: CheckboxItem[] = [
"เป็นผู้เคยกระทำการทุจริตในการสอบเข้ารับราชการ หรือเข้าปฏิบัติงานใน หน่วยงานของรัฐ", "เป็นผู้เคยกระทำการทุจริตในการสอบเข้ารับราชการ หรือเข้าปฏิบัติงานใน หน่วยงานของรัฐ",
}, },
]; ];
const $q = useQuasar() const $q = useQuasar();
function isRequired(val: any): boolean | string { function isRequired(val: any): boolean | string {
return !!val || "กรุณาเลือกไฟล์เอกสารหลักฐาน"; return !!val || "กรุณาเลือกไฟล์เอกสารหลักฐาน";
} }
@ -129,25 +129,25 @@ const close = async () => {
<div class="row q-pa-xs"> <div class="row q-pa-xs">
<div class="col-3 header-sub-text"> <div class="col-3 header-sub-text">
<div class="q-pb-md">เลขทประจำตวประชาชน</div> <div class="q-pb-md">เลขทประจำตวประชาชน</div>
<div class="q-pb-md">/เดอน/เก</div> <div>/เดอน/เก</div>
</div> </div>
<div class="col-4 sub-text"> <div class="col-4 sub-text">
<div class="q-pb-md"> <div class="q-pb-md">
{{ props.getdetail.profileID }} {{ props.getdetail.profileID }}
</div> </div>
<div class="q-pb-md"> <div>
{{ props.getdetail.dateOfBirth }} {{ props.getdetail.dateOfBirth }}
</div> </div>
</div> </div>
<div class="col-2 header-sub-text"> <div class="col-2 header-sub-text">
<div class="q-pb-md">-นามสก</div> <div class="q-pb-md">-นามสก</div>
<div class="q-pb-md">เพศ</div> <div>เพศ</div>
</div> </div>
<div class="col-3 sub-text"> <div class="col-3 sub-text">
<div class="q-pb-md"> <div class="q-pb-md">
{{ props.getdetail.fullName }} {{ props.getdetail.fullName }}
</div> </div>
<div class="q-pb-md"> <div>
{{ props.getdetail.gender }} {{ props.getdetail.gender }}
</div> </div>
</div> </div>
@ -171,25 +171,25 @@ const close = async () => {
<div class="row q-pa-xs"> <div class="row q-pa-xs">
<div class="col-3 header-sub-text"> <div class="col-3 header-sub-text">
<div class="q-pb-md">สถานศกษา</div> <div class="q-pb-md">สถานศกษา</div>
<div class="q-pb-md">สาขาวชาเอก</div> <div>สาขาวชาเอก</div>
</div> </div>
<div class="col-4 sub-text"> <div class="col-4 sub-text">
<div class="q-pb-md"> <div class="q-pb-md">
{{ props.getdetail.university }} {{ props.getdetail.university }}
</div> </div>
<div class="q-pb-md"> <div>
{{ props.getdetail.major }} {{ props.getdetail.major }}
</div> </div>
</div> </div>
<div class="col-2 header-sub-text"> <div class="col-2 header-sub-text">
<div class="q-pb-md">การศกษา</div> <div class="q-pb-md">การศกษา</div>
<div class="q-pb-md">นๆ</div> <div>นๆ</div>
</div> </div>
<div class="col-3 sub-text"> <div class="col-3 sub-text">
<div class="q-pb-md"> <div class="q-pb-md">
{{ props.getdetail.degree ? props.getdetail.degree : "-" }} {{ props.getdetail.degree ? props.getdetail.degree : "-" }}
</div> </div>
<div class="q-pb-md"> <div>
{{ props.getdetail.remark ? props.getdetail.remark : "-" }} {{ props.getdetail.remark ? props.getdetail.remark : "-" }}
</div> </div>
</div> </div>

View file

@ -1004,4 +1004,8 @@ if (keycloak.tokenParsed != null) {
::-webkit-scrollbar-thumb:hover { ::-webkit-scrollbar-thumb:hover {
background-color: #a8bbbf; background-color: #a8bbbf;
} }
.q-card__actions .q-btn--rectangle{
padding: 0 14px !important;
}
</style> </style>