Merge branch 'develop' into devTee
This commit is contained in:
commit
6a4bb43c69
31 changed files with 350 additions and 835 deletions
|
|
@ -21,11 +21,9 @@ const profileStore = useProfileDataStore();
|
|||
const $q = useQuasar();
|
||||
const store = useRegistryNewDataStore();
|
||||
const {
|
||||
dialogRemove,
|
||||
dialogConfirm,
|
||||
success,
|
||||
messageError,
|
||||
showLoader,
|
||||
hideLoader,
|
||||
dialogMessageNotify,
|
||||
date2Thai,
|
||||
|
|
@ -54,24 +52,6 @@ const formData = reactive<FormAddPerson>({
|
|||
birthDate: null,
|
||||
});
|
||||
|
||||
const prefixRef = ref<object | null>(null);
|
||||
const firstNameRef = ref<object | null>(null);
|
||||
const lastNameRef = ref<object | null>(null);
|
||||
const citizenIdRef = ref<object | null>(null);
|
||||
const positionRef = ref<object | null>(null);
|
||||
const posTypeIdRef = ref<object | null>(null);
|
||||
const posLevelIdRef = ref<object | null>(null);
|
||||
|
||||
const objectRef: MyObjectRef = {
|
||||
prefix: prefixRef,
|
||||
firstName: firstNameRef,
|
||||
lastName: lastNameRef,
|
||||
citizenId: citizenIdRef,
|
||||
position: positionRef,
|
||||
posTypeId: posTypeIdRef,
|
||||
posLevelId: posLevelIdRef,
|
||||
};
|
||||
|
||||
function fetchPrefix() {
|
||||
http
|
||||
.get(config.API.orgPrefix)
|
||||
|
|
@ -152,22 +132,6 @@ function clearFormData() {
|
|||
formData.birthDate = null;
|
||||
}
|
||||
|
||||
function validateForm() {
|
||||
const hasError = [];
|
||||
for (const key in objectRef) {
|
||||
if (Object.prototype.hasOwnProperty.call(objectRef, key)) {
|
||||
const property = objectRef[key];
|
||||
if (property.value && typeof property.value.validate === "function") {
|
||||
const isValid = property.value.validate();
|
||||
hasError.push(isValid);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasError.every((result) => result === true)) {
|
||||
onSubmit();
|
||||
}
|
||||
}
|
||||
|
||||
async function onSubmit() {
|
||||
dialogConfirm($q, async () => {
|
||||
await http
|
||||
|
|
@ -209,35 +173,38 @@ watch(
|
|||
<template>
|
||||
<q-dialog v-model="modal" persistent>
|
||||
<q-card style="min-width: 350px">
|
||||
<form @submit.prevent="validateForm">
|
||||
<q-form @submit.prevent @validation-success="onSubmit()" greedy>
|
||||
<q-card-section class="flex justify-between" style="padding: 0">
|
||||
<DialogHeader tittle="เพิ่มข้อมูล" :close="closeDialog" />
|
||||
</q-card-section>
|
||||
|
||||
<q-separator />
|
||||
<q-card-section class="q-pa-md q-col-gutter-md">
|
||||
<div class="row q-gutter-sm">
|
||||
<div class="col">
|
||||
<q-select
|
||||
bg-color="white"
|
||||
ref="prefixRef"
|
||||
v-model="formData.prefix"
|
||||
label="คำนำหน้าชื่อ"
|
||||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
:options="prefixOps"
|
||||
option-label="name"
|
||||
option-value="id"
|
||||
map-options
|
||||
hide-bottom-space
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกคำนำหน้าชื่อ']"
|
||||
:rules="[
|
||||
(val) => {
|
||||
console.log(val);
|
||||
return val.length > 0 || 'กรุณาเลือกคำนำหน้าชื่อ';
|
||||
},
|
||||
]"
|
||||
emit-value
|
||||
/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-select
|
||||
bg-color="white"
|
||||
ref="prefixRef"
|
||||
v-model="formData.rank"
|
||||
label="ยศ"
|
||||
outlined
|
||||
|
|
@ -253,7 +220,6 @@ watch(
|
|||
</div>
|
||||
<q-input
|
||||
bg-color="white"
|
||||
ref="firstNameRef"
|
||||
outlined
|
||||
v-model="formData.firstName"
|
||||
label="ชื่อ"
|
||||
|
|
@ -265,7 +231,6 @@ watch(
|
|||
/>
|
||||
<q-input
|
||||
bg-color="white"
|
||||
ref="lastNameRef"
|
||||
outlined
|
||||
v-model="formData.lastName"
|
||||
label="นามสกุล"
|
||||
|
|
@ -277,7 +242,6 @@ watch(
|
|||
/>
|
||||
<q-input
|
||||
bg-color="white"
|
||||
ref="citizenIdRef"
|
||||
outlined
|
||||
v-model="formData.citizenId"
|
||||
label="เลขประจำตัวประชาชน"
|
||||
|
|
@ -295,51 +259,6 @@ watch(
|
|||
mask="#############"
|
||||
@update:model-value="changeCardID"
|
||||
/>
|
||||
<q-input
|
||||
bg-color="white"
|
||||
ref="positionRef"
|
||||
outlined
|
||||
v-model="formData.position"
|
||||
label="ตำแหน่ง"
|
||||
dense
|
||||
lazy-rules
|
||||
borderless
|
||||
:rules="[(val) => val.length > 0 || 'กรุณากรอกตำแหน่ง']"
|
||||
hide-bottom-space
|
||||
/>
|
||||
<q-select
|
||||
bg-color="white"
|
||||
ref="posTypeIdRef"
|
||||
v-model="formData.posTypeId"
|
||||
label="ประเภทตำแหน่ง"
|
||||
outlined
|
||||
:options="store.posTypeOps"
|
||||
dense
|
||||
options-cover
|
||||
map-options
|
||||
emit-value
|
||||
option-label="name"
|
||||
option-value="id"
|
||||
hide-bottom-space
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกประเภทตำแหน่ง']"
|
||||
@update:model-value="fetchLevel"
|
||||
/>
|
||||
<q-select
|
||||
bg-color="white"
|
||||
ref="posLevelIdRef"
|
||||
v-model="formData.posLevelId"
|
||||
label="ระดับตำแหน่ง"
|
||||
:options="levelOps"
|
||||
outlined
|
||||
dense
|
||||
map-options
|
||||
emit-value
|
||||
option-label="posLevelName"
|
||||
option-value="id"
|
||||
options-cover
|
||||
hide-bottom-space
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกระดับตำแหน่ง']"
|
||||
/>
|
||||
<div class="row q-col-gutter-sm">
|
||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||
<datepicker
|
||||
|
|
@ -359,7 +278,6 @@ watch(
|
|||
<template #trigger>
|
||||
<q-input
|
||||
for="inputDatereceive"
|
||||
ref="dateReceivedRef"
|
||||
outlined
|
||||
dense
|
||||
hide-bottom-space
|
||||
|
|
@ -399,6 +317,48 @@ watch(
|
|||
/>
|
||||
</div>
|
||||
</div>
|
||||
<q-input
|
||||
bg-color="white"
|
||||
outlined
|
||||
v-model="formData.position"
|
||||
label="ตำแหน่ง"
|
||||
dense
|
||||
lazy-rules
|
||||
borderless
|
||||
:rules="[(val) => val.length > 0 || 'กรุณากรอกตำแหน่ง']"
|
||||
hide-bottom-space
|
||||
/>
|
||||
<q-select
|
||||
bg-color="white"
|
||||
v-model="formData.posTypeId"
|
||||
label="ประเภทตำแหน่ง"
|
||||
outlined
|
||||
:options="store.posTypeOps"
|
||||
dense
|
||||
options-cover
|
||||
map-options
|
||||
emit-value
|
||||
option-label="name"
|
||||
option-value="id"
|
||||
hide-bottom-space
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกประเภทตำแหน่ง']"
|
||||
@update:model-value="fetchLevel"
|
||||
/>
|
||||
<q-select
|
||||
bg-color="white"
|
||||
v-model="formData.posLevelId"
|
||||
label="ระดับตำแหน่ง"
|
||||
:options="levelOps"
|
||||
outlined
|
||||
dense
|
||||
map-options
|
||||
emit-value
|
||||
option-label="posLevelName"
|
||||
option-value="id"
|
||||
options-cover
|
||||
hide-bottom-space
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกระดับตำแหน่ง']"
|
||||
/>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator />
|
||||
|
|
@ -415,7 +375,7 @@ watch(
|
|||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</q-card-actions>
|
||||
</form>
|
||||
</q-form>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import type { RequestItemsObject } from "@/modules/04_registryNew/interface/requ
|
|||
import type { ResponseObject } from "@/modules/04_registryNew/interface/response/ProfesLicense";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
import { log } from "console";
|
||||
const mixin = useCounterMixin();
|
||||
const $q = useQuasar();
|
||||
const {
|
||||
|
|
@ -179,7 +180,7 @@ const profesLicenseData = reactive<RequestItemsObject>({
|
|||
issuer: "",
|
||||
certificateNo: "",
|
||||
issueDate: new Date(),
|
||||
expireDate: new Date(),
|
||||
expireDate: null,
|
||||
profileId: id.value,
|
||||
});
|
||||
|
||||
|
|
@ -244,7 +245,7 @@ async function fetchData(id: string) {
|
|||
}
|
||||
|
||||
function clearForm() {
|
||||
profesLicenseData.expireDate = new Date();
|
||||
profesLicenseData.expireDate = null;
|
||||
profesLicenseData.issueDate = new Date();
|
||||
profesLicenseData.certificateNo = "";
|
||||
profesLicenseData.certificateType = "";
|
||||
|
|
@ -297,21 +298,21 @@ async function editData(idData: string) {
|
|||
});
|
||||
}
|
||||
|
||||
function deleteData(idData: string) {
|
||||
dialogRemove($q, () =>
|
||||
http
|
||||
.delete(config.API.profileNewCertificateByCertificateId(idData))
|
||||
.then(() => {
|
||||
fetchData(id.value);
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
})
|
||||
);
|
||||
}
|
||||
// function deleteData(idData: string) {
|
||||
// dialogRemove($q, () =>
|
||||
// http
|
||||
// .delete(config.API.profileNewCertificateByCertificateId(idData))
|
||||
// .then(() => {
|
||||
// fetchData(id.value);
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// })
|
||||
// );
|
||||
// }
|
||||
|
||||
async function fetchHistoryData(id: string) {
|
||||
showLoader();
|
||||
|
|
@ -465,7 +466,7 @@ onMounted(async () => {
|
|||
>
|
||||
<q-tooltip>ประวัติแก้ไขใบอนุญาตประกอบวิชาชีพ</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
<!-- <q-btn
|
||||
color="red"
|
||||
flat
|
||||
dense
|
||||
|
|
@ -477,7 +478,7 @@ onMounted(async () => {
|
|||
v-close-popup
|
||||
>
|
||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn> -->
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
|
|
@ -529,26 +530,6 @@ onMounted(async () => {
|
|||
</q-card>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||
|
|
@ -569,6 +550,7 @@ onMounted(async () => {
|
|||
label="ชื่อใบอนุญาต"
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกชื่อใบอนุญาต'}`]"
|
||||
hide-bottom-space
|
||||
/>
|
||||
|
|
@ -580,6 +562,7 @@ onMounted(async () => {
|
|||
label="หน่วยงานผู้ออกใบอนุญาต"
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[
|
||||
(val) => !!val || `${'กรุณากรอกหน่วยงานผู้ออกใบอนุญาต'}`,
|
||||
]"
|
||||
|
|
@ -594,6 +577,7 @@ onMounted(async () => {
|
|||
v-model="profesLicenseData.certificateNo"
|
||||
label="เลขที่ใบอนุญาต"
|
||||
bg-color="white"
|
||||
class="inputgreen"
|
||||
dense
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่ใบอนุญาต'}`]"
|
||||
hide-bottom-space
|
||||
|
|
@ -617,6 +601,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
dense
|
||||
lazy-rules
|
||||
class="inputgreen"
|
||||
outlined
|
||||
bg-color="white"
|
||||
hide-bottom-space
|
||||
|
|
@ -662,6 +647,9 @@ onMounted(async () => {
|
|||
dense
|
||||
outlined
|
||||
bg-color="white"
|
||||
class="inputgreen"
|
||||
clearable
|
||||
@clear="() => (profesLicenseData.expireDate = null)"
|
||||
hide-bottom-space
|
||||
:model-value="
|
||||
profesLicenseData.expireDate
|
||||
|
|
@ -669,6 +657,7 @@ onMounted(async () => {
|
|||
: ''
|
||||
"
|
||||
:label="`${'วันที่หมดอายุ'}`"
|
||||
@update:modelValue="profesLicenseData.expireDate"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
|
|
@ -774,26 +763,6 @@ onMounted(async () => {
|
|||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -295,12 +295,12 @@ const trainData = reactive<RequestItemsObject>({
|
|||
profileId: id.value,
|
||||
name: "",
|
||||
topic: "",
|
||||
yearly: new Date().getFullYear(),
|
||||
yearly: null,
|
||||
place: "",
|
||||
duration: "",
|
||||
department: "",
|
||||
numberOrder: "",
|
||||
dateOrder: new Date(),
|
||||
dateOrder: null,
|
||||
startDate: new Date(),
|
||||
endDate: new Date(),
|
||||
startYear: new Date().getFullYear(),
|
||||
|
|
@ -360,7 +360,7 @@ function clearForm() {
|
|||
isDate.value = "false";
|
||||
trainData.name = "";
|
||||
trainData.topic = "";
|
||||
trainData.yearly = new Date().getFullYear();
|
||||
trainData.yearly = null;
|
||||
trainData.place = "";
|
||||
trainData.duration = "";
|
||||
trainData.department = "";
|
||||
|
|
@ -690,26 +690,6 @@ onMounted(async () => {
|
|||
</q-card>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||
|
|
@ -731,6 +711,7 @@ onMounted(async () => {
|
|||
label="ชื่อโครงการ/หลักสูตรการฝึกอบรม"
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[
|
||||
(val) =>
|
||||
!!val || `${'กรุณากรอกชื่อโครงการ/หลักสูตรการฝึกอบรม'}`,
|
||||
|
|
@ -741,6 +722,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="trainData.topic"
|
||||
label="หัวข้อการฝึกอบรม/ดูงาน"
|
||||
bg-color="white"
|
||||
|
|
@ -800,6 +782,7 @@ onMounted(async () => {
|
|||
dense
|
||||
lazy-rules
|
||||
outlined
|
||||
class="inputgreen"
|
||||
hide-bottom-space
|
||||
:model-value="trainData.startYear + 543"
|
||||
:rules="[
|
||||
|
|
@ -844,6 +827,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
dense
|
||||
lazy-rules
|
||||
class="inputgreen"
|
||||
outlined
|
||||
hide-bottom-space
|
||||
:model-value="trainData.finishYear + 543"
|
||||
|
|
@ -891,6 +875,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
class="inputgreen"
|
||||
:model-value="date2Thai(trainData.startDate)"
|
||||
:rules="[
|
||||
(val) =>
|
||||
|
|
@ -936,6 +921,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
class="inputgreen"
|
||||
:model-value="date2Thai(trainData.endDate)"
|
||||
:rules="[
|
||||
(val) =>
|
||||
|
|
@ -978,8 +964,11 @@ onMounted(async () => {
|
|||
dense
|
||||
lazy-rules
|
||||
outlined
|
||||
class="inputgreen"
|
||||
hide-bottom-space
|
||||
:model-value="trainData.yearly + 543"
|
||||
:model-value="
|
||||
!!trainData.yearly ? trainData.yearly + 543 : null
|
||||
"
|
||||
:label="`${'ปีงบประมาณ'}`"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
|
|
@ -1000,6 +989,7 @@ onMounted(async () => {
|
|||
v-model="trainData.place"
|
||||
label="สถานที่ฝึกอบรม/ดูงาน"
|
||||
bg-color="white"
|
||||
class="inputgreen"
|
||||
dense
|
||||
:rules="[
|
||||
(val) => !!val || `${'กรุณากรอกสถานที่ฝึกอบรม/ดูงาน'}`,
|
||||
|
|
@ -1012,6 +1002,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="trainData.duration"
|
||||
label="รวมระยะเวลาในการฝึกอบรม/ดูงาน"
|
||||
bg-color="white"
|
||||
|
|
@ -1021,6 +1012,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="trainData.department"
|
||||
label="หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน"
|
||||
bg-color="white"
|
||||
|
|
@ -1031,6 +1023,7 @@ onMounted(async () => {
|
|||
<div class="row q-px-md q-mb-sm q-gutter-sm">
|
||||
<div class="col">
|
||||
<q-input
|
||||
class="inputgreen"
|
||||
outlined
|
||||
v-model="trainData.numberOrder"
|
||||
label="เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"
|
||||
|
|
@ -1055,6 +1048,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
:model-value="date2Thai(trainData.dateOrder)"
|
||||
hide-bottom-space
|
||||
|
|
@ -1164,26 +1158,6 @@ onMounted(async () => {
|
|||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -789,26 +789,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="modal" persistent>
|
||||
|
|
@ -1218,26 +1198,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -531,26 +531,6 @@ watch(
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="modal" persistent>
|
||||
|
|
@ -849,26 +829,6 @@ watch(
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -583,26 +583,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="modal" persistent>
|
||||
|
|
@ -895,26 +875,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -276,22 +276,22 @@ async function editData(idData: string) {
|
|||
});
|
||||
}
|
||||
|
||||
function deleteData(idData: string) {
|
||||
dialogRemove($q, () =>
|
||||
http
|
||||
.delete(config.API.profileNewDisciplineByDisciplineId(idData))
|
||||
.then(() => {
|
||||
fetchData(profileId.value);
|
||||
success($q, "ลบข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
})
|
||||
);
|
||||
}
|
||||
// function deleteData(idData: string) {
|
||||
// dialogRemove($q, () =>
|
||||
// http
|
||||
// .delete(config.API.profileNewDisciplineByDisciplineId(idData))
|
||||
// .then(() => {
|
||||
// fetchData(profileId.value);
|
||||
// success($q, "ลบข้อมูลสำเร็จ");
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// })
|
||||
// );
|
||||
// }
|
||||
/**
|
||||
* กดเลือกข้อมูลที่จะแก้ไข
|
||||
* @param props ค่า props ใน row ที่เลือก
|
||||
|
|
@ -467,7 +467,7 @@ onMounted(async () => {
|
|||
>
|
||||
<q-tooltip>ประวัติแก้ไขวินัย</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
<!-- <q-btn
|
||||
color="red"
|
||||
flat
|
||||
dense
|
||||
|
|
@ -479,7 +479,7 @@ onMounted(async () => {
|
|||
v-close-popup
|
||||
>
|
||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn> -->
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
|
|
@ -573,26 +573,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<!-- dialog add edit -->
|
||||
|
|
@ -725,10 +705,12 @@ onMounted(async () => {
|
|||
ref="dateRef"
|
||||
class="full-width inputgreen cursor-pointer"
|
||||
outlined
|
||||
clearable
|
||||
dense
|
||||
:model-value="date2Thai(disciplineData.refCommandDate)"
|
||||
hide-bottom-space
|
||||
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
||||
@clear="disciplineData.refCommandDate = null"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
|
|
|
|||
|
|
@ -280,26 +280,6 @@ watch(modal, (status) => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ const formFilter = reactive<FormFilter>({
|
|||
isProbation: false,
|
||||
});
|
||||
|
||||
|
||||
const modal = ref<boolean>(false);
|
||||
const edit = ref<boolean>(false);
|
||||
const modalHistory = ref<boolean>(false);
|
||||
|
|
@ -252,7 +251,11 @@ function openDialogEdit(props: DetailData) {
|
|||
edit.value = true;
|
||||
modal.value = true;
|
||||
id.value = props.id;
|
||||
typeLeave.value = {id:props.typeLeaveId,name:props.typeLeave,code:props.code};
|
||||
typeLeave.value = {
|
||||
id: props.typeLeaveId,
|
||||
name: props.typeLeave,
|
||||
code: props.code,
|
||||
};
|
||||
statLeave.value = props.status;
|
||||
reason.value = props.reason;
|
||||
dateRange.value = [
|
||||
|
|
@ -392,7 +395,7 @@ const editData = async () => {
|
|||
http
|
||||
.patch(config.API.profileNewLeaveById(id.value), {
|
||||
leaveTypeId: typeLeave.value.id,
|
||||
dateLeaveStart : dateToISO(dateRange.value[0]),
|
||||
dateLeaveStart: dateToISO(dateRange.value[0]),
|
||||
dateLeaveEnd: dateToISO(dateRange.value[1]),
|
||||
leaveDays: numLeave.value,
|
||||
leaveCount: 0,
|
||||
|
|
@ -545,11 +548,7 @@ onMounted(() => {
|
|||
</template>
|
||||
<template v-slot:body="props" v-if="mode === 'table'">
|
||||
<q-tr :props="props" class="cursor-pointer">
|
||||
<q-td
|
||||
v-for="col in props.cols"
|
||||
:key="col.id"
|
||||
@click="openDialogEdit(props.row)"
|
||||
>
|
||||
<q-td v-for="col in props.cols" :key="col.id">
|
||||
<div v-if="col.name === 'no'">
|
||||
{{
|
||||
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
|
||||
|
|
@ -568,6 +567,19 @@ onMounted(() => {
|
|||
</div>
|
||||
</q-td>
|
||||
<q-td auto-width>
|
||||
<q-btn
|
||||
color="primary"
|
||||
flat
|
||||
dense
|
||||
round
|
||||
class="q-mr-xs"
|
||||
size="14px"
|
||||
icon="mdi-pencil-outline"
|
||||
clickable
|
||||
@click="openDialogEdit(props.row)"
|
||||
>
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
color="info"
|
||||
flat
|
||||
|
|
@ -594,7 +606,7 @@ onMounted(() => {
|
|||
flat
|
||||
round
|
||||
@click="openDialogEdit(props.row)"
|
||||
><q-tooltip>แก้ไข</q-tooltip></q-btn
|
||||
><q-tooltip>แก้ไขข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
<q-btn
|
||||
color="info"
|
||||
|
|
@ -659,26 +671,6 @@ onMounted(() => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<!-- dialog add edit -->
|
||||
|
|
@ -760,7 +752,6 @@ onMounted(() => {
|
|||
</div>
|
||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||
<q-input
|
||||
|
||||
ref="numLeaveRef"
|
||||
class="full-width inputgreen cursor-pointer"
|
||||
outlined
|
||||
|
|
|
|||
|
|
@ -322,26 +322,6 @@ watch(modal, (status) => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -247,22 +247,22 @@ async function editData(idData: string) {
|
|||
|
||||
/** ลบข้อมูล */
|
||||
|
||||
function deleteData(idData: string) {
|
||||
dialogRemove($q, () =>
|
||||
http
|
||||
.delete(config.API.profileNewDutyByDutyId(idData))
|
||||
.then(() => {
|
||||
fetchData(profileId.value);
|
||||
success($q, "ลบข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
})
|
||||
);
|
||||
}
|
||||
// function deleteData(idData: string) {
|
||||
// dialogRemove($q, () =>
|
||||
// http
|
||||
// .delete(config.API.profileNewDutyByDutyId(idData))
|
||||
// .then(() => {
|
||||
// fetchData(profileId.value);
|
||||
// success($q, "ลบข้อมูลสำเร็จ");
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// })
|
||||
// );
|
||||
// }
|
||||
|
||||
/** กด Submit */
|
||||
|
||||
|
|
@ -421,7 +421,7 @@ onMounted(async () => {
|
|||
>
|
||||
<q-tooltip>ประวัติแก้ไขปฏิบัติราชการพิเศษ</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
<!-- <q-btn
|
||||
color="red"
|
||||
flat
|
||||
dense
|
||||
|
|
@ -433,7 +433,7 @@ onMounted(async () => {
|
|||
v-close-popup
|
||||
>
|
||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn> -->
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
|
|
@ -521,26 +521,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="modal" persistent>
|
||||
|
|
@ -702,6 +682,8 @@ onMounted(async () => {
|
|||
"
|
||||
hide-bottom-space
|
||||
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
||||
clearable
|
||||
@clear="dutyData.refCommandDate = null"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
|
|
|
|||
|
|
@ -281,26 +281,6 @@ watch(modal, (status) => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -395,26 +395,6 @@ onMounted(() => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<!-- dialog add edit -->
|
||||
|
|
|
|||
|
|
@ -218,26 +218,6 @@ watch(modal, (status) => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -599,7 +599,6 @@ onMounted(async () => {
|
|||
lazy-rules
|
||||
hide-bottom-space
|
||||
readonly
|
||||
class="inputgreen"
|
||||
v-model="age"
|
||||
:label="dataLabel.age"
|
||||
/>
|
||||
|
|
@ -839,26 +838,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import http from "@/plugins/http";
|
|||
import config from "@/app.config";
|
||||
import dialogHeader from "@/components/DialogHeader.vue";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import HistoryTable from "@/components/TableHistory.vue";
|
||||
import type { ResponseObject } from "@/components/information/interface/response/OldName";
|
||||
import type { Pagination } from "@/modules/04_registryNew/interface/index/Main";
|
||||
import type { RequestItemsObject } from "@/components/information/interface/request/OldName";
|
||||
|
|
@ -229,14 +228,6 @@ function closeDialog() {
|
|||
dialog.value = false;
|
||||
}
|
||||
|
||||
// function clearForm() {
|
||||
// changeNameData.status = "";
|
||||
// changeNameData.prefix = "";
|
||||
// changeNameData.firstName = "";
|
||||
// changeNameData.lastName = "";
|
||||
// alertUpload.value = false;
|
||||
// }
|
||||
|
||||
async function onSubmit() {
|
||||
if (!!fileUpload.value) {
|
||||
await dialogConfirm(
|
||||
|
|
@ -381,22 +372,22 @@ function editData(idData: string) {
|
|||
});
|
||||
}
|
||||
|
||||
function deleteData(idData: string) {
|
||||
dialogRemove($q, () =>
|
||||
http
|
||||
.delete(config.API.profileNewChangeNameByChangeNameId(idData))
|
||||
.then(() => {
|
||||
fetchData(profileId.value);
|
||||
success($q, "ลบข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
})
|
||||
);
|
||||
}
|
||||
// function deleteData(idData: string) {
|
||||
// dialogRemove($q, () =>
|
||||
// http
|
||||
// .delete(config.API.profileNewChangeNameByChangeNameId(idData))
|
||||
// .then(() => {
|
||||
// fetchData(profileId.value);
|
||||
// success($q, "ลบข้อมูลสำเร็จ");
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// })
|
||||
// );
|
||||
// }
|
||||
|
||||
function deleteFileData(idData: string) {
|
||||
http
|
||||
|
|
@ -588,7 +579,9 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
size="14px"
|
||||
icon="mdi-file-document-outline"
|
||||
@click="fetchProfile(props.row.id)"
|
||||
/>
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
color="primary"
|
||||
flat
|
||||
|
|
@ -616,8 +609,10 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
@click="
|
||||
() => (fetchHistoryData(props.row.id), (historyDialog = true))
|
||||
"
|
||||
/>
|
||||
<q-btn
|
||||
>
|
||||
<q-tooltip>ดูประวัติการเปลี่ยนชื่อ-นามสกุล</q-tooltip>
|
||||
</q-btn>
|
||||
<!-- <q-btn
|
||||
color="red"
|
||||
flat
|
||||
dense
|
||||
|
|
@ -629,30 +624,10 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
v-close-popup
|
||||
>
|
||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn> -->
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||
|
|
@ -701,6 +676,17 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
:options="store.Ops.prefixOps"
|
||||
label="คำนำหน้าชื่อ"
|
||||
dense
|
||||
:class="
|
||||
!changeNameData.status ||
|
||||
(changeNameData.status !== 'เปลี่ยนคำนำหน้าชื่อ' &&
|
||||
changeNameData.status !== 'เปลี่ยนคำนำหน้าชื่อ และชื่อ' &&
|
||||
changeNameData.status !==
|
||||
'เปลี่ยนคำนำหน้าชื่อ และนามสกุล' &&
|
||||
changeNameData.status !==
|
||||
'เปลี่ยนคำนำหน้าชื่อ และชื่อ-นามสกุล')
|
||||
? ''
|
||||
: 'inputgreen'
|
||||
"
|
||||
outlined
|
||||
use-input
|
||||
lazy-rules
|
||||
|
|
@ -731,6 +717,16 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
label="ชื่อ"
|
||||
bg-color="white"
|
||||
dense
|
||||
:class="
|
||||
!changeNameData.status ||
|
||||
(changeNameData.status !== 'เปลี่ยนชื่อ' &&
|
||||
changeNameData.status !== 'เปลี่ยนคำนำหน้าชื่อ และชื่อ' &&
|
||||
changeNameData.status !== 'เปลี่ยนชื่อ-นามสกุล' &&
|
||||
changeNameData.status !==
|
||||
'เปลี่ยนคำนำหน้าชื่อ และชื่อ-นามสกุล')
|
||||
? ''
|
||||
: 'inputgreen'
|
||||
"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกชื่อ'}`]"
|
||||
hide-bottom-space
|
||||
/>
|
||||
|
|
@ -751,6 +747,17 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
label="นามสกุล"
|
||||
bg-color="white"
|
||||
dense
|
||||
:class="
|
||||
!changeNameData.status ||
|
||||
(changeNameData.status !== 'เปลี่ยนนามสกุล' &&
|
||||
changeNameData.status !== 'เปลี่ยนชื่อ-นามสกุล' &&
|
||||
changeNameData.status !==
|
||||
'เปลี่ยนคำนำหน้าชื่อ และนามสกุล' &&
|
||||
changeNameData.status !==
|
||||
'เปลี่ยนคำนำหน้าชื่อ และชื่อ-นามสกุล')
|
||||
? ''
|
||||
: 'inputgreen'
|
||||
"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกนามสกุล'}`]"
|
||||
hide-bottom-space
|
||||
/>
|
||||
|
|
@ -869,7 +876,7 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
<q-card style="min-width: 70%" class="bg-white">
|
||||
<q-card-section class="flex justify-between" style="padding: 0">
|
||||
<dialog-header
|
||||
tittle="ประวัติแก้ไขประวัติการศึกษา"
|
||||
tittle="ประวัติแก้ไขการเปลี่ยนชื่อ-นามสกุล"
|
||||
:close="closeHistoryDialog"
|
||||
/>
|
||||
</q-card-section>
|
||||
|
|
@ -939,26 +946,6 @@ function filterSelector(val: string, update: Function, refData: string) {
|
|||
<q-td auto-width> </q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -662,7 +662,6 @@ onMounted(async () => {
|
|||
outlined
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
v-model="formData.registrationZipCode"
|
||||
:label="dataLabel.registrationZipCode"
|
||||
/>
|
||||
|
|
@ -784,7 +783,6 @@ onMounted(async () => {
|
|||
outlined
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
v-model="formData.currentZipCode"
|
||||
:label="dataLabel.registrationZipCode"
|
||||
/>
|
||||
|
|
@ -903,26 +901,6 @@ onMounted(async () => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -505,6 +505,10 @@ onMounted(async () => {
|
|||
v-model="fatherData.citizenId"
|
||||
:label="`${'เลขประจำตัวประชาชน'}`"
|
||||
maxlength="13"
|
||||
:rules="[
|
||||
(val) => val.length === 13 || 'กรุณากรอกเลขบัตรประชาชน',
|
||||
]"
|
||||
class="inputgreen"
|
||||
mask="#############"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -516,11 +520,11 @@ onMounted(async () => {
|
|||
lazy-rules
|
||||
hidden-space
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกคำนำหน้าชื่อ']"
|
||||
label="คำนำหน้าชื่อ"
|
||||
v-model="fatherData.prefix"
|
||||
use-input
|
||||
clearable
|
||||
input-debounce="0"
|
||||
emit-value
|
||||
map-options
|
||||
|
|
@ -538,6 +542,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
dense
|
||||
bg-color="white"
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
v-model="fatherData.firstName"
|
||||
:rules="[(val) => !!val || 'กรุณากรอกชื่อ']"
|
||||
|
|
@ -550,6 +555,7 @@ onMounted(async () => {
|
|||
:disable="!fatherData.isHaveInfo"
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
lazy-rules
|
||||
v-model="fatherData.lastName"
|
||||
|
|
@ -562,6 +568,7 @@ onMounted(async () => {
|
|||
:disable="!fatherData.isHaveInfo"
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
v-model="fatherData.job"
|
||||
label="อาชีพ"
|
||||
|
|
@ -634,6 +641,10 @@ onMounted(async () => {
|
|||
v-model="motherData.citizenId"
|
||||
:label="`${'เลขประจำตัวประชาชน'}`"
|
||||
maxlength="13"
|
||||
:rules="[
|
||||
(val) => val.length === 13 || 'กรุณากรอกเลขบัตรประชาชน',
|
||||
]"
|
||||
class="inputgreen"
|
||||
mask="#############"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -648,8 +659,8 @@ onMounted(async () => {
|
|||
:rules="[(val) => !!val || 'กรุณาเลือกคำนำหน้าชื่อ']"
|
||||
label="คำนำหน้าชื่อ"
|
||||
hidden-space
|
||||
class="inputgreen"
|
||||
use-input
|
||||
clearable
|
||||
input-debounce="0"
|
||||
emit-value
|
||||
map-options
|
||||
|
|
@ -666,6 +677,7 @@ onMounted(async () => {
|
|||
:disable="!motherData.isHaveInfo"
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
lazy-rules
|
||||
v-model="motherData.firstName"
|
||||
|
|
@ -678,6 +690,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
:disable="!motherData.isHaveInfo"
|
||||
outlined
|
||||
class="inputgreen"
|
||||
dense
|
||||
bg-color="white"
|
||||
lazy-rules
|
||||
|
|
@ -690,6 +703,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
:disable="!motherData.isHaveInfo"
|
||||
outlined
|
||||
class="inputgreen"
|
||||
dense
|
||||
bg-color="white"
|
||||
v-model="motherData.job"
|
||||
|
|
@ -760,9 +774,13 @@ onMounted(async () => {
|
|||
hide-bottom-space
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
v-model="spouseData.citizenId"
|
||||
:label="`${'เลขประจำตัวประชาชน'}`"
|
||||
maxlength="13"
|
||||
:rules="[
|
||||
(val) => val.length === 13 || 'กรุณากรอกเลขบัตรประชาชน',
|
||||
]"
|
||||
mask="#############"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -770,6 +788,7 @@ onMounted(async () => {
|
|||
<q-select
|
||||
:disable="!spouseData.isHave"
|
||||
outlined
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
lazy-rules
|
||||
dense
|
||||
|
|
@ -778,7 +797,6 @@ onMounted(async () => {
|
|||
label="คำนำหน้าชื่อ"
|
||||
hidden-space
|
||||
use-input
|
||||
clearable
|
||||
input-debounce="0"
|
||||
emit-value
|
||||
map-options
|
||||
|
|
@ -794,6 +812,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
:disable="!spouseData.isHave"
|
||||
outlined
|
||||
class="inputgreen"
|
||||
dense
|
||||
bg-color="white"
|
||||
lazy-rules
|
||||
|
|
@ -808,6 +827,7 @@ onMounted(async () => {
|
|||
:disable="!spouseData.isHave"
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
lazy-rules
|
||||
v-model="spouseData.lastName"
|
||||
|
|
@ -820,6 +840,7 @@ onMounted(async () => {
|
|||
:disable="!spouseData.isHave"
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
v-model="spouseData.job"
|
||||
label="อาชีพ"
|
||||
|
|
@ -885,6 +906,10 @@ onMounted(async () => {
|
|||
v-model="items.childrenCitizenId"
|
||||
:label="`${'เลขประจำตัวประชาชน'}`"
|
||||
bg-color="white"
|
||||
class="inputgreen"
|
||||
:rules="[
|
||||
(val) => val.length === 13 || 'กรุณากรอกเลขบัตรประชาชน',
|
||||
]"
|
||||
maxlength="13"
|
||||
mask="#############"
|
||||
/>
|
||||
|
|
@ -899,7 +924,7 @@ onMounted(async () => {
|
|||
:rules="[(val) => !!val || 'กรุณาเลือกคำนำหน้าชื่อ']"
|
||||
label="คำนำหน้าชื่อ"
|
||||
use-input
|
||||
clearable
|
||||
class="inputgreen"
|
||||
input-debounce="0"
|
||||
emit-value
|
||||
map-options
|
||||
|
|
@ -916,6 +941,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
v-model="items.childrenFirstName"
|
||||
:rules="[(val) => !!val || 'กรุณากรอกชื่อ']"
|
||||
|
|
@ -926,6 +952,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
outlined
|
||||
lazy-rules
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
dense
|
||||
v-model="items.childrenLastName"
|
||||
|
|
@ -938,6 +965,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
v-model="items.childrenCareer"
|
||||
label="อาชีพ"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -661,22 +661,22 @@ function editData(idData: string) {
|
|||
});
|
||||
}
|
||||
|
||||
function deleteData(idData: string) {
|
||||
dialogRemove($q, () =>
|
||||
http
|
||||
.delete(config.API.profileNewEducationByEducationId(idData))
|
||||
.then(() => {
|
||||
fetchData(id.value);
|
||||
success($q, "ลบข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
})
|
||||
);
|
||||
}
|
||||
// function deleteData(idData: string) {
|
||||
// dialogRemove($q, () =>
|
||||
// http
|
||||
// .delete(config.API.profileNewEducationByEducationId(idData))
|
||||
// .then(() => {
|
||||
// fetchData(id.value);
|
||||
// success($q, "ลบข้อมูลสำเร็จ");
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// })
|
||||
// );
|
||||
// }
|
||||
|
||||
onMounted(async () => {
|
||||
await fetchData(id.value);
|
||||
|
|
@ -819,7 +819,7 @@ onMounted(async () => {
|
|||
>
|
||||
<q-tooltip>ประวัติแก้ไขประวัติการศึกษา</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
<!-- <q-btn
|
||||
color="red"
|
||||
flat
|
||||
dense
|
||||
|
|
@ -831,7 +831,7 @@ onMounted(async () => {
|
|||
v-close-popup
|
||||
>
|
||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn> -->
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
|
|
@ -945,26 +945,6 @@ onMounted(async () => {
|
|||
</q-card>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||
|
|
@ -997,7 +977,7 @@ onMounted(async () => {
|
|||
) "
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือกระดับการศึกษา'}`]"
|
||||
label="ระดับการศึกษา"
|
||||
clearable
|
||||
class="inputgreen"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
|
|
@ -1007,6 +987,7 @@ onMounted(async () => {
|
|||
label="สถานศึกษา"
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกสถานศึกษา'}`]"
|
||||
hide-bottom-space
|
||||
/>
|
||||
|
|
@ -1024,6 +1005,7 @@ onMounted(async () => {
|
|||
unchecked-icon="panorama_fish_eye"
|
||||
val="false"
|
||||
label="ปี"
|
||||
class="inputgreen"
|
||||
dense
|
||||
/>
|
||||
<q-radio
|
||||
|
|
@ -1031,6 +1013,7 @@ onMounted(async () => {
|
|||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="true"
|
||||
class="inputgreen"
|
||||
label="วัน/เดือน/ปี"
|
||||
dense
|
||||
/>
|
||||
|
|
@ -1060,6 +1043,7 @@ onMounted(async () => {
|
|||
dense
|
||||
lazy-rules
|
||||
outlined
|
||||
class="inputgreen"
|
||||
hide-bottom-space
|
||||
:model-value="educationData.startYear + 543"
|
||||
:rules="[
|
||||
|
|
@ -1101,6 +1085,7 @@ onMounted(async () => {
|
|||
<template #trigger>
|
||||
<q-input
|
||||
dense
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
outlined
|
||||
hide-bottom-space
|
||||
|
|
@ -1146,6 +1131,7 @@ onMounted(async () => {
|
|||
<template #trigger>
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
dense
|
||||
lazy-rules
|
||||
:model-value="date2Thai(educationData.startDate)"
|
||||
|
|
@ -1190,6 +1176,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
:model-value="date2Thai(educationData.endDate)"
|
||||
:rules="[
|
||||
|
|
@ -1231,6 +1218,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
bg-color="white"
|
||||
dense
|
||||
class="inputgreen"
|
||||
lazy-rules
|
||||
:model-value="date2Thai(educationData.finishDate)"
|
||||
:rules="[
|
||||
|
|
@ -1257,11 +1245,11 @@ onMounted(async () => {
|
|||
dense
|
||||
emit-value
|
||||
map-options
|
||||
clearable
|
||||
bg-color="white"
|
||||
v-model="educationData.isEducation"
|
||||
:options="educationOption"
|
||||
option-value="value"
|
||||
class="inputgreen"
|
||||
option-label="label"
|
||||
input-debounce="0"
|
||||
use-input
|
||||
|
|
@ -1282,6 +1270,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
v-model="educationData.degree"
|
||||
label="วุฒิการศึกษา"
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
dense
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกวุฒิการศึกษา'}`]"
|
||||
|
|
@ -1291,6 +1280,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.field"
|
||||
label="สาขาวิชา/ทาง"
|
||||
bg-color="white"
|
||||
|
|
@ -1304,6 +1294,7 @@ onMounted(async () => {
|
|||
outlined
|
||||
v-model="educationData.fundName"
|
||||
label="ทุน"
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
dense
|
||||
/>
|
||||
|
|
@ -1311,6 +1302,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.gpa"
|
||||
label="เกรดเฉลี่ย"
|
||||
bg-color="white"
|
||||
|
|
@ -1323,6 +1315,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.country"
|
||||
label="ประเทศ"
|
||||
bg-color="white"
|
||||
|
|
@ -1332,6 +1325,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.other"
|
||||
label="ข้อมูลติดต่อ"
|
||||
bg-color="white"
|
||||
|
|
@ -1343,6 +1337,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.duration"
|
||||
label="ระยะเวลา"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกระยะเวลา'}`]"
|
||||
|
|
@ -1353,6 +1348,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.durationYear"
|
||||
label="ระยะเวลาหลักสูตร (ปี)"
|
||||
:rules="[
|
||||
|
|
@ -1368,6 +1364,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
v-model="educationData.note"
|
||||
label="หมายเหตุ"
|
||||
bg-color="white"
|
||||
|
|
@ -1468,26 +1465,6 @@ onMounted(async () => {
|
|||
<q-td auto-width> </q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -501,26 +501,6 @@ onMounted(async () => {
|
|||
</q-card>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||
|
|
@ -538,6 +518,7 @@ onMounted(async () => {
|
|||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
class="inputgreen"
|
||||
dense
|
||||
bg-color="white"
|
||||
v-model="specialSkill.field"
|
||||
|
|
@ -550,6 +531,7 @@ onMounted(async () => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
class="inputgreen"
|
||||
bg-color="white"
|
||||
v-model="specialSkill.detail"
|
||||
label="รายละเอียด"
|
||||
|
|
@ -559,7 +541,7 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
<q-input
|
||||
class="col-12"
|
||||
class="col-12 inputgreen"
|
||||
outlined
|
||||
dense
|
||||
bg-color="white"
|
||||
|
|
@ -567,9 +549,9 @@ onMounted(async () => {
|
|||
label="หมายเหตุ"
|
||||
/>
|
||||
<q-input
|
||||
class="col-12 inputgreen"
|
||||
outlined
|
||||
dense
|
||||
class="col-12"
|
||||
bg-color="white"
|
||||
v-model="specialSkill.reference"
|
||||
label="เอกสารอ้างอิง"
|
||||
|
|
@ -664,26 +646,6 @@ onMounted(async () => {
|
|||
<q-td auto-width> </q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -533,26 +533,6 @@ onMounted(() => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="modalDialogSalary" persistent full-width>
|
||||
|
|
@ -624,6 +604,7 @@ onMounted(() => {
|
|||
dense
|
||||
lazy-rules
|
||||
borderless
|
||||
clearable
|
||||
v-model="formDataSalary.templatePos"
|
||||
:label="`${'ต้นแบบ (template) ตำแหน่ง'}`"
|
||||
option-label="name"
|
||||
|
|
@ -822,6 +803,7 @@ onMounted(() => {
|
|||
dense
|
||||
lazy-rules
|
||||
borderless
|
||||
clearable
|
||||
v-model="formDataSalary.templateDoc"
|
||||
:label="`${'ต้นแบบ (template) เอกสารอ้างอิง'}`"
|
||||
option-label="name"
|
||||
|
|
|
|||
|
|
@ -321,26 +321,6 @@ watch(
|
|||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -426,26 +426,6 @@ onMounted(() => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
|
||||
<q-dialog v-model="modalDialog" persistent>
|
||||
|
|
@ -561,6 +541,7 @@ onMounted(() => {
|
|||
}}</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
clearable
|
||||
outlined
|
||||
dense
|
||||
borderless
|
||||
|
|
@ -570,6 +551,7 @@ onMounted(() => {
|
|||
"
|
||||
hide-bottom-space
|
||||
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
||||
@clear="formData.refCommandDate = null"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
|
|
|
|||
|
|
@ -222,26 +222,6 @@ watch(modal, (status) => {
|
|||
direction-links
|
||||
></q-pagination>
|
||||
</template> -->
|
||||
<template v-slot:no-data="{ icon, message, filter }">
|
||||
<div class="full-width row flex-center text-accent q-gutter-sm">
|
||||
<span
|
||||
><div
|
||||
style="
|
||||
height: 50vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
"
|
||||
class="text-grey-5"
|
||||
>
|
||||
<q-icon name="search" size="4rem" />
|
||||
|
||||
<span>ไม่พบข้อมูล</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ interface RequestItemsObject {
|
|||
issuer: string;
|
||||
certificateNo: string;
|
||||
issueDate: Date;
|
||||
expireDate: Date;
|
||||
expireDate: Date | null;
|
||||
profileId: string;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
interface RequestItemsObject {
|
||||
name: string,
|
||||
topic: string,
|
||||
yearly: number,
|
||||
yearly: number | null,
|
||||
place: string,
|
||||
duration: string,
|
||||
department: string,
|
||||
numberOrder: string,
|
||||
dateOrder: Date,
|
||||
dateOrder: Date | null,
|
||||
startDate: Date,
|
||||
endDate: Date,
|
||||
startYear: number,
|
||||
|
|
|
|||
|
|
@ -387,7 +387,10 @@ function fetchDataDashboard() {
|
|||
.then((res) => {
|
||||
const quota = res.data.result.dashboard;
|
||||
itemsCardAPR.value[0].total = quota.total;
|
||||
itemsCardAPR.value[1].total = quota.fifteenPercent;
|
||||
itemsCardAPR.value[1].total = quota.fifteenPercent.toLocaleString("en", {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
});
|
||||
itemsCardAPR.value[2].total = quota.chosen;
|
||||
itemsCardAPR.value[3].total = quota.remaining;
|
||||
itemsCardAPR.value[4].total = quota.totalBackup;
|
||||
|
|
|
|||
|
|
@ -256,7 +256,12 @@ function fetchDataPeriod(id: string) {
|
|||
pageSize: formFilter.pageSize.toString(),
|
||||
keyword: formFilter.keyword,
|
||||
type: store.tabType,
|
||||
isRetire: isRetire.value === true ? "1" : "0",
|
||||
isRetire:
|
||||
store.roundMainCode !== "OCT"
|
||||
? null
|
||||
: isRetire.value === true
|
||||
? "1"
|
||||
: "0",
|
||||
};
|
||||
|
||||
http
|
||||
|
|
|
|||
|
|
@ -392,17 +392,44 @@ function fetchDataDashboard() {
|
|||
.then((res) => {
|
||||
const quota = res.data.result.dashboard;
|
||||
itemsCardAPR.value[0].total = quota.total;
|
||||
itemsCardAPR.value[1].total = quota.fifteenPercent;
|
||||
itemsCardAPR.value[1].total = quota.fifteenPercent.toLocaleString("en", {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
});
|
||||
itemsCardAPR.value[2].total = quota.chosen;
|
||||
itemsCardAPR.value[3].total = quota.remaining;
|
||||
itemsCardAPR.value[4].total = quota.totalBackup;
|
||||
|
||||
itemsCardOCT.value[0].total = quota.currentAmount;
|
||||
itemsCardOCT.value[1].total = quota.sixPercentAmount;
|
||||
itemsCardOCT.value[2].total = quota.spentAmount;
|
||||
itemsCardOCT.value[3].total = quota.sixPercentSpentAmount;
|
||||
itemsCardOCT.value[4].total = quota.useAmount;
|
||||
itemsCardOCT.value[5].total = quota.remainingAmount;
|
||||
itemsCardOCT.value[0].total = quota.currentAmount.toLocaleString("en", {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
});
|
||||
itemsCardOCT.value[1].total = quota.sixPercentAmount.toLocaleString(
|
||||
"en",
|
||||
{
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
}
|
||||
);
|
||||
itemsCardOCT.value[2].total = quota.spentAmount.toLocaleString("en", {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
});
|
||||
itemsCardOCT.value[3].total = quota.sixPercentSpentAmount.toLocaleString(
|
||||
"en",
|
||||
{
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
}
|
||||
);
|
||||
itemsCardOCT.value[4].total = quota.useAmount.toLocaleString("en", {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
});
|
||||
itemsCardOCT.value[5].total = quota.remainingAmount.toLocaleString("en", {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
});
|
||||
itemsCardOCT.value[6].total = quota.totalBackup;
|
||||
|
||||
itemsCardSpeciel.value[0].total = quota.total;
|
||||
|
|
|
|||
|
|
@ -265,7 +265,12 @@ function fetchDataPeriod(id: string) {
|
|||
pageSize: formFilter.pageSize.toString(),
|
||||
keyword: formFilter.keyword,
|
||||
type: store.tabType,
|
||||
isRetire: isRetire.value === true ? "1" : "0",
|
||||
isRetire:
|
||||
store.roundMainCode !== "OCT"
|
||||
? null
|
||||
: isRetire.value === true
|
||||
? "1"
|
||||
: "0",
|
||||
};
|
||||
|
||||
http
|
||||
|
|
|
|||
|
|
@ -421,8 +421,7 @@ onMounted(async () => {
|
|||
color="edit"
|
||||
size="17px"
|
||||
:name="
|
||||
dateToISO(new Date()) >=
|
||||
dateToISO(props.row.effectiveDate)
|
||||
props.row.revisionId !== null
|
||||
? 'mdi-eye-outline'
|
||||
: 'edit'
|
||||
"
|
||||
|
|
@ -439,7 +438,10 @@ onMounted(async () => {
|
|||
</q-item>
|
||||
|
||||
<q-item
|
||||
v-if="props.row.revisionId !== null"
|
||||
v-if="
|
||||
props.row.isClose === false &&
|
||||
props.row.isActive === true
|
||||
"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click.stop="dialogClose(props.row.id)"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue