เพิ่มเนู บันทึกผลการจ่ายใบกำกับ

This commit is contained in:
Thanit Konmek 2023-08-21 12:20:41 +07:00
parent a646ad3d6d
commit 98156c072b
3 changed files with 397 additions and 160 deletions

View file

@ -351,6 +351,12 @@ const menuList = readonly<any[]>([
path: "insigniaRecord", path: "insigniaRecord",
role: "insignia", role: "insignia",
}, },
{
label: "บันทึกผลการจ่ายใบกำกับ",
path: "VatInsignia",
role: "insignia",
},
{ {
label: "จัดสรรเครื่องราชฯ", label: "จัดสรรเครื่องราชฯ",
path: "insigniaAllocate", path: "insigniaAllocate",

View file

@ -6,10 +6,17 @@
v-model:statusEdit="statusEdit" v-model:statusEdit="statusEdit"
:profileType="profileType" :profileType="profileType"
/> --> /> -->
<Information v-model:statusEdit="statusEdit" :fetchDataProfile="fetchData" /> <Information
v-model:statusEdit="statusEdit"
: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 q-mt-md">
<Government v-model:statusEdit="statusEdit" :profileType="profileType" :employeeClass="employeeClass" /> <Government
v-model:statusEdit="statusEdit"
:profileType="profileType"
:employeeClass="employeeClass"
/>
</div> </div>
<div id="address" name="17" class="row col-12 q-mt-md"> <div id="address" name="17" class="row col-12 q-mt-md">
<Address v-model:statusEdit="statusEdit" /> <Address v-model:statusEdit="statusEdit" />
@ -33,11 +40,20 @@
<CoinedVue v-model:statusEdit="statusEdit" :profileType="profileType" /> <CoinedVue v-model:statusEdit="statusEdit" :profileType="profileType" />
</div> </div>
<div id="assessment" name="6" class="row col-12 q-mt-md"> <div id="assessment" name="6" class="row col-12 q-mt-md">
<AssessmentVue v-model:statusEdit="statusEdit" :profileType="profileType" /> <AssessmentVue
v-model:statusEdit="statusEdit"
:profileType="profileType"
/>
</div> </div>
<div id="position" name="7" class="row col-12 q-mt-md"> <div id="position" name="7" class="row col-12 q-mt-md">
<SalaryVue v-model:statusEdit="statusEdit" v-if="profileType === 'officer'" /> <SalaryVue
<SalaryEmployeeTempVue v-model:statusEdit="statusEdit" v-else-if="employeeClass === 'temp'" /> v-model:statusEdit="statusEdit"
v-if="profileType === 'officer'"
/>
<SalaryEmployeeTempVue
v-model:statusEdit="statusEdit"
v-else-if="employeeClass === 'temp'"
/>
<SalaryEmployeeVue v-model:statusEdit="statusEdit" v-else /> <SalaryEmployeeVue v-model:statusEdit="statusEdit" v-else />
</div> </div>
<div id="rule" name="8" class="row col-12 q-mt-md"> <div id="rule" name="8" class="row col-12 q-mt-md">
@ -62,29 +78,70 @@
<DocumentVue v-model:statusEdit="statusEdit" /> <DocumentVue v-model:statusEdit="statusEdit" />
</div> </div>
</div> </div>
<q-page-sticky position="top" expand class="bg-grey-2 text-white" style="z-index: 99; padding: 0% 1% 0% 1%"> <q-page-sticky
<div class="row col-12 q-gutter-sm q-pb-sm text-dark no-wrap items-center"> position="top"
<q-btn flat round class="bg-teal-1 full-height" color="primary" icon="mdi-chevron-left" dense expand
@click="router.go(-1)"> class="bg-grey-2 text-white"
style="z-index: 99; padding: 0% 1% 0% 1%"
>
<div
class="row col-12 q-gutter-sm q-pb-sm text-dark no-wrap items-center"
>
<q-btn
flat
round
class="bg-teal-1 full-height"
color="primary"
icon="mdi-chevron-left"
dense
@click="router.go(-1)"
>
</q-btn> </q-btn>
<q-avatar v-if="imageUrl == null" size="65px" rounded class="containerimage"> <q-avatar
<img src="@/assets/avatar_user.jpg" class="bg-grey-3" style="object-fit: cover" /> v-if="imageUrl == null"
<div class="overlay absolute-bottom text-subtitle2 text-center cursor-pointer" @click="clickImage()"> size="65px"
rounded
class="containerimage"
>
<img
src="@/assets/avatar_user.jpg"
class="bg-grey-3"
style="object-fit: cover"
/>
<div
class="overlay absolute-bottom text-subtitle2 text-center cursor-pointer"
@click="clickImage()"
>
<q-icon name="mdi-camera" size="18px" color="blue"> <q-icon name="mdi-camera" size="18px" color="blue">
<q-tooltip>ปเดตรปภาพ</q-tooltip> <q-tooltip>ปเดตรปภาพ</q-tooltip>
</q-icon> </q-icon>
<input type="file" style="display: none" ref="inputImage" accept="image/*" @change="uploadImage" /> <input
type="file"
style="display: none"
ref="inputImage"
accept="image/*"
@change="uploadImage"
/>
</div> </div>
</q-avatar> </q-avatar>
<q-avatar v-else size="65px" rounded class="containerimage"> <q-avatar v-else size="65px" rounded class="containerimage">
<img :src="imageUrl" class="bg-grey-3" style="object-fit: cover" /> <img :src="imageUrl" class="bg-grey-3" style="object-fit: cover" />
<div class="overlay absolute-bottom text-subtitle2 text-center cursor-pointer" @click="clickImage()"> <div
class="overlay absolute-bottom text-subtitle2 text-center cursor-pointer"
@click="clickImage()"
>
<q-icon name="mdi-camera" size="18px" color="blue"> <q-icon name="mdi-camera" size="18px" color="blue">
<q-tooltip>ปเดตรปภาพ</q-tooltip> <q-tooltip>ปเดตรปภาพ</q-tooltip>
</q-icon> </q-icon>
<input type="file" style="display: none" ref="inputImage" accept="image/*" @change="uploadImage" /> <input
type="file"
style="display: none"
ref="inputImage"
accept="image/*"
@change="uploadImage"
/>
</div> </div>
</q-avatar> </q-avatar>
<div class="row items-center text-dark q-ml-md"> <div class="row items-center text-dark q-ml-md">
@ -158,8 +215,15 @@
</q-menu> </q-menu>
</q-btn> </q-btn>
<q-btn round flat :color="reasonStatus ? 'primary' : 'pink-5'" @click="clickRetire()" :icon="reasonStatus ? 'mdi-home-import-outline' : 'mdi-home-export-outline' <q-btn
"> round
flat
:color="reasonStatus ? 'primary' : 'pink-5'"
@click="clickRetire()"
:icon="
reasonStatus ? 'mdi-home-import-outline' : 'mdi-home-export-outline'
"
>
<q-tooltip>{{ <q-tooltip>{{
reasonStatus ? "การกลับเข้ารับราชการ" : "การออกจากราชการ" reasonStatus ? "การกลับเข้ารับราชการ" : "การออกจากราชการ"
}}</q-tooltip> }}</q-tooltip>
@ -173,7 +237,9 @@
<q-item-section class="text-blue">..7/..1</q-item-section> <q-item-section class="text-blue">..7/..1</q-item-section>
</q-item> </q-item>
<q-item clickable v-close-popup @click="clickKp7Short()"> <q-item clickable v-close-popup @click="clickKp7Short()">
<q-item-section class="text-primary">ประวแบบย</q-item-section> <q-item-section class="text-primary"
>ประวแบบย</q-item-section
>
</q-item> </q-item>
</q-list> </q-list>
</q-menu> </q-menu>
@ -185,8 +251,20 @@
<q-card style="width: 90vw; max-width: 80vw"> <q-card style="width: 90vw; max-width: 80vw">
<q-card-section class="row items-center q-pb-xs col-12"> <q-card-section class="row items-center q-pb-xs col-12">
<q-space /> <q-space />
<q-btn @click="downloadKP7()" unelevated class="btn_purple q-mr-sm" label="ดาวน์โหลด ก.พ.7/ก.ก.1"></q-btn> <q-btn
<q-btn icon="close" unelevated round dense @click="closeKp7" style="color: #ff8080; background-color: #ffdede" /> @click="downloadKP7()"
unelevated
class="btn_purple q-mr-sm"
label="ดาวน์โหลด ก.พ.7/ก.ก.1"
></q-btn>
<q-btn
icon="close"
unelevated
round
dense
@click="closeKp7"
style="color: #ff8080; background-color: #ffdede"
/>
</q-card-section> </q-card-section>
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<!-- <viewpdf <!-- <viewpdf
@ -201,9 +279,20 @@
<q-card style="width: 90vw; max-width: 80vw"> <q-card style="width: 90vw; max-width: 80vw">
<q-card-section class="row items-center q-pb-xs col-12"> <q-card-section class="row items-center q-pb-xs col-12">
<q-space /> <q-space />
<q-btn @click="downloadKP7Short()" unelevated class="btn_purple q-mr-sm" label="ดาวน์โหลด ประวัติแบบย่อ"></q-btn> <q-btn
<q-btn icon="close" unelevated round dense @click="closeKp7Short" @click="downloadKP7Short()"
style="color: #ff8080; background-color: #ffdede" /> unelevated
class="btn_purple q-mr-sm"
label="ดาวน์โหลด ประวัติแบบย่อ"
></q-btn>
<q-btn
icon="close"
unelevated
round
dense
@click="closeKp7Short"
style="color: #ff8080; background-color: #ffdede"
/>
</q-card-section> </q-card-section>
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<!-- <viewpdf <!-- <viewpdf
@ -220,28 +309,50 @@
<q-card-section class="q-py-sm row"> <q-card-section class="q-py-sm row">
<div class="text-h6">เลอกรปภาพ</div> <div class="text-h6">เลอกรปภาพ</div>
<q-space /> <q-space />
<q-btn icon="close" unelevated round dense @click="closeImage" style="color: #ff8080; background-color: #ffdede"> <q-btn
icon="close"
unelevated
round
dense
@click="closeImage"
style="color: #ff8080; background-color: #ffdede"
>
<q-tooltip>ดหนาน</q-tooltip> <q-tooltip>ดหนาน</q-tooltip>
</q-btn> </q-btn>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-section class="col-12 row"> <q-card-section class="col-12 row">
<div class="row wrap items-start col-12 q-col-gutter-sm" style="height: 320px; overflow: auto"> <div
class="row wrap items-start col-12 q-col-gutter-sm"
style="height: 320px; overflow: auto"
>
<div class="col-3" @click="addNewImage"> <div class="col-3" @click="addNewImage">
<div style=" <div
style="
height: 160px; height: 160px;
max-width: 15vw; max-width: 15vw;
display: flex !important; display: flex !important;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
" class="column rounded-borders cursor-pointer bg-active-image text-white"> "
class="column rounded-borders cursor-pointer bg-active-image text-white"
>
<q-icon name="add" size="60px" color="white" /> <q-icon name="add" size="60px" color="white" />
<strong>ปโหลดรปภาพ</strong> <strong>ปโหลดรปภาพ</strong>
</div> </div>
</div> </div>
<div v-for="n in images" :key="n" class="col-3" @click="imageActive(n)"> <div
v-for="n in images"
:key="n"
class="col-3"
@click="imageActive(n)"
>
<div :class="getClass(n)"> <div :class="getClass(n)">
<q-img v-if="n.avatar != null" :src="n.avatar" :class="imageClass(n)"> <q-img
v-if="n.avatar != null"
:src="n.avatar"
:class="imageClass(n)"
>
<!-- <div <!-- <div
class="absolute-top bg-transparent cursor-pointer text-right" class="absolute-top bg-transparent cursor-pointer text-right"
style="padding: 5px" style="padding: 5px"
@ -255,11 +366,21 @@
style="color: #ff8080" style="color: #ff8080"
/> />
</div> --> </div> -->
<div class="absolute-bottom col-12 cursor-pointer flex justify-between items-center" style="padding: 5px"> <div
class="absolute-bottom col-12 cursor-pointer flex justify-between items-center"
style="padding: 5px"
>
{{ date2Thai(n.createdDate) }} {{ date2Thai(n.createdDate) }}
<q-btn v-if="!n.isActive" icon="delete" unelevated dense @click="deletePhoto(n.id)" class="bg-white" <q-btn
style="color: #ff8080" /> v-if="!n.isActive"
icon="delete"
unelevated
dense
@click="deletePhoto(n.id)"
class="bg-white"
style="color: #ff8080"
/>
</div> </div>
</q-img> </q-img>
</div> </div>
@ -277,7 +398,14 @@
> >
<q-tooltip>ลบรปภาพ</q-tooltip> <q-tooltip>ลบรปภาพ</q-tooltip>
</q-btn> --> </q-btn> -->
<q-btn icon="check" dense flat round @click="selectAvatarHistory" color="positive"> <q-btn
icon="check"
dense
flat
round
@click="selectAvatarHistory"
color="positive"
>
<q-tooltip>เลอกรปภาพ</q-tooltip> <q-tooltip>เลอกรปภาพ</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
@ -291,18 +419,38 @@
<q-card-section class="q-py-sm row"> <q-card-section class="q-py-sm row">
<DialogHeader tittle="ถึงแก่กรรม" :close="closePassaway" /> <DialogHeader tittle="ถึงแก่กรรม" :close="closePassaway" />
<div class="col-12 row q-pa-sm q-col-gutter-sm"> <div class="col-12 row q-pa-sm q-col-gutter-sm">
<q-file class="col-12 col-sm-6 col-md-5" outlined dense v-model="filePassaway" label="แนบใบมรณบัตร" <q-file
hide-bottom-space lazy-rules> class="col-12 col-sm-6 col-md-5"
outlined
dense
v-model="filePassaway"
label="แนบใบมรณบัตร"
hide-bottom-space
lazy-rules
>
<q-separator /> <q-separator />
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="attach_file" /> <q-icon name="attach_file" />
</template> </template>
</q-file> </q-file>
<q-input class="col-12 col-sm-6 col-md-7" dense outlined v-model="deathCertificateNo" <q-input
label="เลขที่ใบมรณบัตร" /> class="col-12 col-sm-6 col-md-7"
dense
outlined
v-model="deathCertificateNo"
label="เลขที่ใบมรณบัตร"
/>
<datepicker class="col-12 col-sm-6 col-md-5" menu-class-name="modalfix" v-model="dateDeath" :locale="'th'" <datepicker
autoApply borderless :enableTimePicker="false" week-start="0"> class="col-12 col-sm-6 col-md-5"
menu-class-name="modalfix"
v-model="dateDeath"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -310,32 +458,63 @@
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input outlined dense class="full-width datepicker" :model-value="dateDeath != null ? date2Thai(dateDeath) : null <q-input
" :label="`${'วันที่เสียชีวิต'}`" :rules="[ outlined
(val) => !!val || `${'กรุณาเลือกวันที่เสียชีวิต'}`, dense
]"> class="full-width datepicker"
:model-value="
dateDeath != null ? date2Thai(dateDeath) : null
"
:label="`${'วันที่เสียชีวิต'}`"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่เสียชีวิต'}`,
]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
<q-input class="col-12 col-sm-6 col-md-7" dense outlined v-model="placeDeathCertificate" <q-input
label="สถานที่ออกใบมรณบัตร" /> class="col-12 col-sm-6 col-md-7"
dense
outlined
v-model="placeDeathCertificate"
label="สถานที่ออกใบมรณบัตร"
/>
<q-separator /> <q-separator />
<q-input class="col-12" dense outlined v-model="reasonDeath" label="เหตุผลการเสีบชีวิต" type="textarea" /> <q-input
class="col-12"
dense
outlined
v-model="reasonDeath"
label="เหตุผลการเสีบชีวิต"
type="textarea"
/>
</div> </div>
<q-space /> <q-space />
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<div class="flex justify-end q-pa-sm q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn unelevated label="บันทึก" color="public" @click="clickSaveDeceased" :disable="filePassaway === null || <q-btn
deathCertificateNo === '' || unelevated
placeDeathCertificate === '' || label="บันทึก"
reasonDeath === '' color="public"
"> @click="clickSaveDeceased"
:disable="
filePassaway === null ||
deathCertificateNo === '' ||
placeDeathCertificate === '' ||
reasonDeath === ''
"
>
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</div> </div>
@ -353,34 +532,71 @@
<q-dialog v-model="dialogLeave" persistent> <q-dialog v-model="dialogLeave" persistent>
<q-card style="width: 600px"> <q-card style="width: 600px">
<q-toolbar> <q-toolbar>
<q-toolbar-title class="text-subtitle2 text-bold">ประเภทการพนราชการ <q-toolbar-title class="text-subtitle2 text-bold"
>ประเภทการพนราชการ
</q-toolbar-title> </q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="closeLeave" <q-btn
style="color: #ff8080; background-color: #ffdede" /> icon="close"
unelevated
round
dense
@click="closeLeave"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div class="row col-12 items-center q-col-gutter-x-xs q-col-gutter-y-xs"> <div
class="row col-12 items-center q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<q-select class="full-width inputgreen cursor-pointer" outlined dense lazy-rules v-model="reason" <q-select
:rules="[(val) => !!val || `${'กรุณาเลือกประเภทการพ้นราชการ'}`]" hide-bottom-space class="full-width inputgreen cursor-pointer"
:label="`${'ประเภทการพ้นราชการ'}`" emit-value map-options option-label="name" :options="reasonOptions" outlined
option-value="id" /> dense
lazy-rules
v-model="reason"
:rules="[(val) => !!val || `${'กรุณาเลือกประเภทการพ้นราชการ'}`]"
hide-bottom-space
:label="`${'ประเภทการพ้นราชการ'}`"
emit-value
map-options
option-label="name"
:options="reasonOptions"
option-value="id"
/>
</div> </div>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<datepicker menu-class-name="modalfix" v-model="leaveDate" :locale="'th'" autoApply :enableTimePicker="false" <datepicker
week-start="0"> menu-class-name="modalfix"
v-model="leaveDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">{{ year + 543 }}</template> <template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{ <template #year-overlay-value="{ value }">{{
parseInt(value + 543) parseInt(value + 543)
}}</template> }}</template>
<template #trigger> <template #trigger>
<q-input class="full-width inputgreen cursor-pointer" outlined dense lazy-rules <q-input
:model-value="date2Thai(leaveDate)" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่พ้นราชการ'}`]" class="full-width inputgreen cursor-pointer"
hide-bottom-space :label="`${'วันที่พ้นราชการ'}`"> outlined
dense
lazy-rules
:model-value="date2Thai(leaveDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่พ้นราชการ'}`]"
hide-bottom-space
:label="`${'วันที่พ้นราชการ'}`"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -388,30 +604,64 @@
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<q-input class="full-width inputgreen cursor-pointer" outlined dense lazy-rules autogrow v-model="leaveDetail" <q-input
class="full-width inputgreen cursor-pointer"
outlined
dense
lazy-rules
autogrow
v-model="leaveDetail"
:rules="[ :rules="[
(val) => (val) =>
!!val || `${'กรุณากรอกสาเหตุ/เหตุผลของการพ้นจากราชการ'}`, !!val || `${'กรุณากรอกสาเหตุ/เหตุผลของการพ้นจากราชการ'}`,
]" hide-bottom-space :label="`${'สาเหตุ/เหตุผลของการพ้นจากราชการ'}`" /> ]"
hide-bottom-space
:label="`${'สาเหตุ/เหตุผลของการพ้นจากราชการ'}`"
/>
</div> </div>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<q-input class="full-width inputgreen cursor-pointer" outlined dense lazy-rules autogrow <q-input
v-model="leaveNumberOrder" :rules="[(val) => !!val || `${'กรุณากรอกคำสั่ง/เอกสารอ้างอิง'}`]" class="full-width inputgreen cursor-pointer"
hide-bottom-space :label="`${'คำสั่ง/เอกสารอ้างอิง'}`" /> outlined
dense
lazy-rules
autogrow
v-model="leaveNumberOrder"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่ง/เอกสารอ้างอิง'}`]"
hide-bottom-space
:label="`${'คำสั่ง/เอกสารอ้างอิง'}`"
/>
</div> </div>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<datepicker menu-class-name="modalfix" v-model="leaveDateOrder" :locale="'th'" autoApply <datepicker
:enableTimePicker="false" week-start="0"> menu-class-name="modalfix"
v-model="leaveDateOrder"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">{{ year + 543 }}</template> <template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{ <template #year-overlay-value="{ value }">{{
parseInt(value + 543) parseInt(value + 543)
}}</template> }}</template>
<template #trigger> <template #trigger>
<q-input class="full-width inputgreen cursor-pointer" outlined dense lazy-rules <q-input
:model-value="date2Thai(leaveDateOrder)" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ออกคำสั่ง'}`]" class="full-width inputgreen cursor-pointer"
hide-bottom-space :label="`${'วันที่ออกคำสั่ง'}`"> outlined
dense
lazy-rules
:model-value="date2Thai(leaveDateOrder)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ออกคำสั่ง'}`]"
hide-bottom-space
:label="`${'วันที่ออกคำสั่ง'}`"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -422,7 +672,13 @@
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right"> <q-card-actions align="right">
<q-btn flat round color="public" @click="Retire" icon="mdi-content-save-outline"> <q-btn
flat
round
color="public"
@click="Retire"
icon="mdi-content-save-outline"
>
<q-tooltip>นท</q-tooltip> <q-tooltip>นท</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
@ -478,7 +734,7 @@ const {
success, success,
showLoader, showLoader,
hideLoader, hideLoader,
dialogConfirm dialogConfirm,
} = mixin; } = mixin;
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
@ -552,7 +808,7 @@ const reasonOptions = ref<DataOption[]>([
]); ]);
onMounted(async () => { onMounted(async () => {
await checkProfileData(); // await checkProfileData();
await fetchData(); await fetchData();
await changeTab("information"); await changeTab("information");
}); });
@ -637,7 +893,7 @@ const uploadImage = async (e: any) => {
showLoader(); showLoader();
await http await http
.post(config.API.profileAvatarId(profileId.value), formData) .post(config.API.profileAvatarId(profileId.value), formData)
.then((res) => { }) .then((res) => {})
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) })
@ -762,96 +1018,72 @@ const closeKp7Short = () => {
}; };
const helpPost = () => { const helpPost = () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.placemenHelpGov, formData);
formData.append("id", profileId.value); });
await http.post(config.API.placemenHelpGov, formData); };
},
);
}
const repatriationPost = async () => { const repatriationPost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.placemenRepatriation, formData);
formData.append("id", profileId.value); });
await http.post(config.API.placemenRepatriation, formData); };
},
);
}
const appointPost = async () => { const appointPost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.placemenAppointment, formData);
formData.append("id", profileId.value); });
await http.post(config.API.placemenAppointment, formData); };
},
);
}
const relocationPost = async () => { const relocationPost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.placemenRelocation, formData);
formData.append("id", profileId.value); });
await http.post(config.API.placemenRelocation, formData); };
},
);
}
const outPost = async () => { const outPost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.retirementOut, formData);
formData.append("id", profileId.value); });
await http.post(config.API.retirementOut, formData); };
},
);
}
const dischargePost = async () => { const dischargePost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.retirementDischarge, formData);
formData.append("id", profileId.value); });
await http.post(config.API.retirementDischarge, formData); };
},
);
}
const expulsionPost = async () => { const expulsionPost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.retirementExpulsion, formData);
formData.append("id", profileId.value); });
await http.post(config.API.retirementExpulsion, formData); };
},
);
}
const otherPost = async () => { const otherPost = async () => {
dialogConfirm( dialogConfirm($q, async () => {
$q, const formData = new FormData();
async () => { formData.append("id", profileId.value);
const formData = new FormData(); await http.post(config.API.placemenOther, formData);
formData.append("id", profileId.value); });
await http.post(config.API.placemenOther, formData); };
},
);
}
const downloadKP7 = () => { }; const downloadKP7 = () => {};
const downloadKP7Short = () => { }; const downloadKP7Short = () => {};
const clickKp7 = async () => { const clickKp7 = async () => {
window.open(config.API.profileReportId(profileId.value)); window.open(config.API.profileReportId(profileId.value));
@ -1094,7 +1326,6 @@ const clickSaveDeceased = async () => {
.then(() => { .then(() => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
router.push("/deceased"); router.push("/deceased");
}) })
.catch((e) => { .catch((e) => {
console.log(e); console.log(e);
@ -1102,10 +1333,10 @@ const clickSaveDeceased = async () => {
}) })
.finally(() => { .finally(() => {
hideLoader(); hideLoader();
}) });
}) })
.onCancel(() => { }) .onCancel(() => {})
.onDismiss(() => { }); .onDismiss(() => {});
}; };
</script> </script>
<style> <style>

View file

@ -25,7 +25,7 @@
icon-right="mdi-open-in-new" icon-right="mdi-open-in-new"
class="q-px-sm" class="q-px-sm"
label="ดูข้อมูลทะเบียนประวัติ" label="ดูข้อมูลทะเบียนประวัติ"
@click="router.push(`/registry/${profileId}`)" @click="router.push(`/registry/${paramsId}`)"
/> />
</div> </div>
<div class="col-12"><q-separator /></div> <div class="col-12"><q-separator /></div>