updated format code

This commit is contained in:
Warunee Tamkoo 2024-09-03 11:28:01 +07:00
parent b75d69ea08
commit b14bad2249
241 changed files with 14012 additions and 13811 deletions

View file

@ -1,15 +1,13 @@
<script setup lang="ts"> <script setup lang="ts"></script>
</script>
<template> <template>
<div id="azay-admin-app"> <div id="azay-admin-app">
<router-view v-slot="{ Component }"> <router-view v-slot="{ Component }">
<transition> <transition>
<component :is="Component" /> <component :is="Component" />
</transition> </transition>
</router-view> </router-view>
</div> </div>
</template> </template>
<style scoped> <style scoped></style>
</style>

View file

@ -1,14 +1,14 @@
/** /**
* API Structure + Org Chart * API Structure + Org Chart
*/ */
import env from "../index" import env from "../index";
const treeRoot = `${env.API_URI}/Organization/treeroot` const treeRoot = `${env.API_URI}/Organization/treeroot`;
const structChart = `${env.API_URI}/Organization/struct-chart/` const structChart = `${env.API_URI}/Organization/struct-chart/`;
const orgChart = `${env.API_URI}/Organization/org-chart/` const orgChart = `${env.API_URI}/Organization/org-chart/`;
export default { export default {
chartGetTreeRoot: `${treeRoot}`, chartGetTreeRoot: `${treeRoot}`,
chartGetStructure: (id: string) => `${structChart}${id}`, chartGetStructure: (id: string) => `${structChart}${id}`,
chartGetOrg: (id: string) => `${orgChart}${id}` chartGetOrg: (id: string) => `${orgChart}${id}`,
} };

View file

@ -90,5 +90,4 @@ export default {
organizationEmployeePositionId: (profileId: string) => organizationEmployeePositionId: (profileId: string) =>
`${organizationEmployee}position/${profileId}`, `${organizationEmployee}position/${profileId}`,
organizationEmployeeSendOrder: `${organizationEmployee}report`, organizationEmployeeSendOrder: `${organizationEmployee}report`,
}; };

View file

@ -81,7 +81,7 @@ export default {
`${insignia}/manage/borrow/${year}/${insigniaTypeId}`, `${insignia}/manage/borrow/${year}/${insigniaTypeId}`,
insigniaManageBorrowById: (insigniaManageProfileId: string) => insigniaManageBorrowById: (insigniaManageProfileId: string) =>
`${insignia}/manage/borrow/${insigniaManageProfileId}`, `${insignia}/manage/borrow/${insigniaManageProfileId}`,
requestinsignia: (type: string,id:string) => requestinsignia: (type: string, id: string) =>
`${insignia}/request/note/${type}/${id}`, `${insignia}/request/note/${type}/${id}`,
// InsigniaReport API รายงานระบบเครื่องราชอิสริยาภรณ์ // InsigniaReport API รายงานระบบเครื่องราชอิสริยาภรณ์
// ****** // ******
@ -99,7 +99,9 @@ export default {
`${report}/insignia/${type}/${fileType}/${fileId}`, `${report}/insignia/${type}/${fileType}/${fileId}`,
// เจ้าหน้าที่เป็นคนอัปโหลดไฟล์ // เจ้าหน้าที่เป็นคนอัปโหลดไฟล์
uploadfileOnlyInsignia: (requestId: string) => `${insignia}/request/upload/${requestId}`, uploadfileOnlyInsignia: (requestId: string) =>
`${insignia}/request/upload/${requestId}`,
// สกจ. ตีกลับให้หัวหน้าเขต // สกจ. ตีกลับให้หัวหน้าเขต
rejectRequest: (id: string, ocId: string) => `${insignia}/request/head/reject/${id}/${ocId}` rejectRequest: (id: string, ocId: string) =>
`${insignia}/request/head/reject/${id}/${ocId}`,
}; };

View file

@ -24,7 +24,12 @@ export default {
complaintbyId: (id: string) => `${disciplineMain}/complaint/${id}`, complaintbyId: (id: string) => `${disciplineMain}/complaint/${id}`,
complaintReject: (id: string) => `${disciplineMain}/complaint/reject/${id}`, complaintReject: (id: string) => `${disciplineMain}/complaint/reject/${id}`,
complaintResume: (id: string) => `${disciplineMain}/complaint/resume/${id}`, complaintResume: (id: string) => `${disciplineMain}/complaint/resume/${id}`,
complaintList: (page: number, pageSize: number, keyword: string, status: string) => complaintList: (
page: number,
pageSize: number,
keyword: string,
status: string
) =>
`${disciplineMain}/complaint?page=${page}&pageSize=${pageSize}&keyword=${keyword}&status=${status}`, `${disciplineMain}/complaint?page=${page}&pageSize=${pageSize}&keyword=${keyword}&status=${status}`,
complaintFileUpload: (id: string) => `${disciplineMain}/complaint/file/${id}`, complaintFileUpload: (id: string) => `${disciplineMain}/complaint/file/${id}`,
complaintFileDelete: (id: string, docId: string) => complaintFileDelete: (id: string, docId: string) =>
@ -32,7 +37,12 @@ export default {
complaintApprove: (id: string) => `${disciplineMain}/complaint/approve/${id}`, complaintApprove: (id: string) => `${disciplineMain}/complaint/approve/${id}`,
/** API สืบสวนข้อเท็จจริง*/ /** API สืบสวนข้อเท็จจริง*/
investigateMain: (page: number, pageSize: number, keyword: string, status: string) => investigateMain: (
page: number,
pageSize: number,
keyword: string,
status: string
) =>
`${investigate}?page=${page}&pageSize=${pageSize}&keyword=${keyword}&status=${status}`, `${investigate}?page=${page}&pageSize=${pageSize}&keyword=${keyword}&status=${status}`,
investigateById: (id: string) => `${investigate}/${id}`, investigateById: (id: string) => `${investigate}/${id}`,
@ -106,6 +116,8 @@ export default {
appealDeleteFile: (id: string, docId: string) => appealDeleteFile: (id: string, docId: string) =>
`${appeal}/file/${id}/${docId}`, `${appeal}/file/${id}/${docId}`,
historyDirectorbyId: (id: string, type: string) => `${disciplineMain}/director/${type}/${id}`, historyDirectorbyId: (id: string, type: string) =>
historyOrderById:(id:string)=>`${env.API_URI}/order/history/discipline/${id}` `${disciplineMain}/director/${type}/${id}`,
historyOrderById: (id: string) =>
`${env.API_URI}/order/history/discipline/${id}`,
}; };

View file

@ -96,7 +96,6 @@ export default {
achievementDevByid: (id: string) => achievementDevByid: (id: string) =>
`${KpiUser}/achievement/development/admin/detail/${id}`, `${KpiUser}/achievement/development/admin/detail/${id}`,
indicatorSummary:`${kpiPlan}/summary/indicator`, indicatorSummary: `${kpiPlan}/summary/indicator`,
capacitySummary:`${kpiCapacity}/summary` capacitySummary: `${kpiCapacity}/summary`,
}; };

File diff suppressed because it is too large Load diff

View file

@ -15,8 +15,8 @@ const props = defineProps({
default: "", default: "",
}, },
clickClose: { clickClose: {
type: Function type: Function,
} },
}); });
</script> </script>
@ -28,12 +28,10 @@ const props = defineProps({
<q-separator /> <q-separator />
<q-card-section class="q-pa-md bg-grey-1"> <q-card-section class="q-pa-md bg-grey-1">
<div class="row col-12"> <div class="row col-12">
{{ props.desc }} {{ props.desc }}
</div> </div>
</q-card-section> </q-card-section>
</q-form> </q-form>
</q-card> </q-card>
</q-dialog> </q-dialog>
</template> </template>

View file

@ -41,7 +41,7 @@ async function submit() {
body: body.value, body: body.value,
}) })
.then((res) => { .then((res) => {
props.clickClose() props.clickClose();
success($q, "ส่งข้อความสำเร็จ"); success($q, "ส่งข้อความสำเร็จ");
}) })
.catch((e) => { .catch((e) => {

View file

@ -42,7 +42,6 @@ const props = defineProps({
}, },
}); });
const pagination = ref({ const pagination = ref({
sortBy: "desc", sortBy: "desc",
descending: false, descending: false,

View file

@ -1,5 +1,10 @@
<template> <template>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor"> <svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
>
<path <path
d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z" d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z"
/> />

View file

@ -1,5 +1,10 @@
<template> <template>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" fill="currentColor"> <svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="17"
fill="currentColor"
>
<path <path
d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z" d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z"
/> />

View file

@ -1,5 +1,10 @@
<template> <template>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="20" fill="currentColor"> <svg
xmlns="http://www.w3.org/2000/svg"
width="18"
height="20"
fill="currentColor"
>
<path <path
d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z" d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z"
/> />

View file

@ -1,5 +1,10 @@
<template> <template>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor"> <svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
>
<path <path
d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z" d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z"
/> />

View file

@ -76,7 +76,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]"

View file

@ -122,7 +122,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate)" :model-value="date2Thai(startDate)"
:rules="[ :rules="[
@ -169,7 +168,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate)" :model-value="date2Thai(endDate)"
:rules="[ :rules="[
@ -215,7 +213,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="yearly + 543" :model-value="yearly + 543"
:rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]"
@ -318,7 +315,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateOrder)" :model-value="date2Thai(dateOrder)"
:label="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`" :label="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`"

View file

@ -83,7 +83,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateStart)" :model-value="date2Thai(dateStart)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]"
@ -127,7 +126,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateEnd)" :model-value="date2Thai(dateEnd)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]"
@ -224,7 +222,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -125,32 +125,32 @@ interface FormActive {
} }
interface TreeMain { interface TreeMain {
children: TreeMain[]; // ปรับเป็นชนิดข้อมูลที่ถูกต้องตามโครงสร้างของ children ถ้าเป็นไปได้ children: TreeMain[]; // ปรับเป็นชนิดข้อมูลที่ถูกต้องตามโครงสร้างของ children ถ้าเป็นไปได้
orgCode: string; orgCode: string;
orgLevel: number; orgLevel: number;
orgName: string; orgName: string;
orgRevisionId: string; orgRevisionId: string;
orgRootName: string; orgRootName: string;
orgTreeCode: string; orgTreeCode: string;
orgTreeFax: string; orgTreeFax: string;
orgTreeId: string; orgTreeId: string;
orgTreeName: string; orgTreeName: string;
orgTreeOrder: number; orgTreeOrder: number;
orgTreePhoneEx: string; orgTreePhoneEx: string;
orgTreePhoneIn: string; orgTreePhoneIn: string;
orgTreeRank: string; orgTreeRank: string;
orgTreeShortName: string; orgTreeShortName: string;
totalPosition: number; totalPosition: number;
totalPositionCurrentUse: number; totalPositionCurrentUse: number;
totalPositionCurrentVacant: number; totalPositionCurrentVacant: number;
totalPositionNextUse: number; totalPositionNextUse: number;
totalPositionNextVacant: number; totalPositionNextVacant: number;
totalRootPosition: number; totalRootPosition: number;
totalRootPositionCurrentUse: number; totalRootPositionCurrentUse: number;
totalRootPositionCurrentVacant: number; totalRootPositionCurrentVacant: number;
totalRootPositionNextUse: number; totalRootPositionNextUse: number;
totalRootPositionNextVacant: number; totalRootPositionNextVacant: number;
} }
export type { export type {
OrgTree, OrgTree,
DataTree, DataTree,

View file

@ -57,7 +57,7 @@ function onSubmit() {
function getData() { function getData() {
showLoader(); showLoader();
http http
.get(config.API.kpiEvaluation+`/edit`) .get(config.API.kpiEvaluation + `/edit`)
.then((res) => { .then((res) => {
dataLevel.value = res.data.result.data; dataLevel.value = res.data.result.data;
}) })

View file

@ -263,8 +263,10 @@ onMounted(() => {
color="red" color="red"
icon="delete" icon="delete"
@click="onDeleteLevels(index)" @click="onDeleteLevels(index)"
v-if="!checkRoute && v-if="
(store.competencyTypeVal === 'HEAD' && index > 4) || (!checkRoute &&
store.competencyTypeVal === 'HEAD' &&
index > 4) ||
(store.competencyTypeVal === 'GROUP' && index > 4) || (store.competencyTypeVal === 'GROUP' && index > 4) ||
((store.competencyTypeVal === 'EXECUTIVE' || ((store.competencyTypeVal === 'EXECUTIVE' ||
store.competencyTypeVal === 'DIRECTOR' || store.competencyTypeVal === 'DIRECTOR' ||

View file

@ -117,6 +117,4 @@ onMounted(() => {
font-size: 12px; font-size: 12px;
} }
} }
</style> </style>

View file

@ -49,4 +49,4 @@ interface FormSubDistrict {
name: string; name: string;
provinceId: string; provinceId: string;
} }
export type { DataResponse, DataRow,FormDistrict,FormSubDistrict }; export type { DataResponse, DataRow, FormDistrict, FormSubDistrict };

View file

@ -23,6 +23,6 @@ export const usePersonalDataStore = defineStore("PersonalData", () => {
return { return {
save, save,
row, row,
currentTab currentTab,
}; };
}); });

View file

@ -34,7 +34,6 @@ onMounted(() => {
<template> <template>
<div class="toptitle text-dark col-12 row items-center">สมรรถนะ</div> <div class="toptitle text-dark col-12 row items-center">สมรรถนะ</div>
<q-card flat bordered> <q-card flat bordered>
<div class="text-subtitle1 text-grey-9"> <div class="text-subtitle1 text-grey-9">
<q-tabs <q-tabs
dense dense

View file

@ -75,7 +75,6 @@
:outlined="edit" :outlined="edit"
dense dense
label="วันที่" label="วันที่"
:borderless="!edit" :borderless="!edit"
:model-value="dateThaiRange(dateRange)" :model-value="dateThaiRange(dateRange)"
> >

View file

@ -5,7 +5,7 @@ interface FilterMaster {
page: number; //*หน้า page: number; //*หน้า
pageSize: number; //*จำนวนแถวต่อหน้า pageSize: number; //*จำนวนแถวต่อหน้า
keyword: string; //ข้อความที่ต้องการค้นหา keyword: string; //ข้อความที่ต้องการค้นหา
revisionId?: string revisionId?: string;
} }
interface MovePos { interface MovePos {
id: string; id: string;

View file

@ -1,14 +1,16 @@
<template> <template>
<q-toolbar> <q-toolbar>
<q-toolbar-title class="text-subtitle2 text-bold">{{ tittle }}</q-toolbar-title> <q-toolbar-title class="text-subtitle2 text-bold">{{
tittle
}}</q-toolbar-title>
<q-btn <q-btn
icon="close" icon="close"
unelevated unelevated
round round
dense dense
@click="close" @click="close"
style="color: #ff8080; background-color: #ffdede" style="color: #ff8080; background-color: #ffdede"
/> />
</q-toolbar> </q-toolbar>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View file

@ -534,16 +534,10 @@ const deletePositionItem = (val: object) => {
persistent: true, persistent: true,
}) })
.onOk(() => { .onOk(() => {
positions.value = positions.value.filter((x: object) => x !== val); // positions.value = positions.value.filter((x: object) => x !== val); //
}) })
.onCancel(() => { .onCancel(() => {})
.onDismiss(() => {});
})
.onDismiss(() => {
});
} else { } else {
positions.value = positions.value.filter((x: object) => x !== val); positions.value = positions.value.filter((x: object) => x !== val);
} }

View file

@ -367,4 +367,4 @@ onMounted(async () => {
top: 0; top: 0;
} }
} }
</style> </style>

View file

@ -1,156 +1,110 @@
<!-- card คคลทสามารถตดตอได --> <!-- card คคลทสามารถตดตอได -->
<template> <template>
<HeaderTop <HeaderTop
v-model:edit="edit" v-model:edit="edit"
header="บุคคลที่สามารถติดต่อได้" header="บุคคลที่สามารถติดต่อได้"
icon="mdi-account-circle" icon="mdi-account-circle"
:addData="true" :addData="true"
:editOnly="false" :editOnly="false"
:editData="false" :editData="false"
/> />
<q-form ref="myform"> <q-form ref="myform">
<div <div class="row col-12 items-center q-col-gutter-x-sm q-col-gutter-y-xs">
class="row col-12 items-center q-col-gutter-x-sm q-col-gutter-y-xs" <div class="col-xs-12 col-sm-3 col-md-2">
> <q-select
<div class="col-xs-12 col-sm-3 col-md-2"> :class="getClass(status == 'checkRegister' || status == 'payment')"
<q-select :readonly="!(status == 'checkRegister' || status == 'payment')"
:class=" :borderless="!(status == 'checkRegister' || status == 'payment')"
getClass( :rules="[(val) => !!val || `${'กรุณาเลือก คำนำหน้า'}`]"
status == 'checkRegister' || status == 'payment' :outlined="status == 'checkRegister' || status == 'payment'"
) dense
" lazy-rules
:readonly=" v-model="defaultContact.contactPrefixId"
!(status == 'checkRegister' || status == 'payment') emit-value
" map-options
:borderless=" option-label="name"
!(status == 'checkRegister' || status == 'payment') :options="prefixOptions"
" option-value="id"
:rules="[(val) => !!val || `${'กรุณาเลือก คำนำหน้า'}`]" :label="`${'คำนำหน้า'}`"
:outlined="status == 'checkRegister' || status == 'payment'" />
dense </div>
lazy-rules <div class="col-xs-12 col-sm-3 col-md-3">
v-model="defaultContact.contactPrefixId" <q-input
emit-value :class="getClass(status == 'checkRegister' || status == 'payment')"
map-options :outlined="status == 'checkRegister' || status == 'payment'"
option-label="name" dense
:options="prefixOptions" lazy-rules
option-value="id" :readonly="!(status == 'checkRegister' || status == 'payment')"
:label="`${'คำนำหน้า'}`" :borderless="!(status == 'checkRegister' || status == 'payment')"
/> v-model="defaultContact.contactFirstname"
</div> :rules="[(val) => !!val || `${'กรุณากรอก ชื่อ'}`]"
<div class="col-xs-12 col-sm-3 col-md-3"> :label="`${'ชื่อ'}`"
<q-input />
:class=" </div>
getClass( <div class="col-xs-12 col-sm-3 col-md-3">
status == 'checkRegister' || status == 'payment' <q-input
) :class="getClass(status == 'checkRegister' || status == 'payment')"
" :outlined="status == 'checkRegister' || status == 'payment'"
:outlined="status == 'checkRegister' || status == 'payment'" dense
dense lazy-rules
lazy-rules :readonly="!(status == 'checkRegister' || status == 'payment')"
:readonly=" :borderless="!(status == 'checkRegister' || status == 'payment')"
!(status == 'checkRegister' || status == 'payment') v-model="defaultContact.contactLastname"
" :rules="[(val) => !!val || `${'กรุณากรอก นามสกุล'}`]"
:borderless=" :label="`${'นามสกุล'}`"
!(status == 'checkRegister' || status == 'payment') />
" </div>
v-model="defaultContact.contactFirstname" <div class="col-xs-12 col-sm-3 col-md-4">
:rules="[(val) => !!val || `${'กรุณากรอก ชื่อ'}`]" <q-input
:label="`${'ชื่อ'}`" :class="getClass(status == 'checkRegister' || status == 'payment')"
/> :outlined="status == 'checkRegister' || status == 'payment'"
</div> dense
<div class="col-xs-12 col-sm-3 col-md-3"> lazy-rules
<q-input :readonly="!(status == 'checkRegister' || status == 'payment')"
:class=" :borderless="!(status == 'checkRegister' || status == 'payment')"
getClass( v-model="defaultContact.contactRelations"
status == 'checkRegister' || status == 'payment' :rules="[(val) => !!val || `${'กรุณากรอกความสัมพันธ์'}`]"
) :label="`${'เกี่ยวข้องเป็น'}`"
" />
:outlined="status == 'checkRegister' || status == 'payment'" </div>
dense <div class="col-xs-12 col-sm-3 col-md-4">
lazy-rules <q-input
:readonly=" :outlined="status == 'checkRegister' || status == 'payment'"
!(status == 'checkRegister' || status == 'payment') dense
" :counter="
:borderless=" status == 'checkRegister' || status == 'payment' ? true : false
!(status == 'checkRegister' || status == 'payment') "
" lazy-rules
v-model="defaultContact.contactLastname" type="tel"
:rules="[(val) => !!val || `${'กรุณากรอก นามสกุล'}`]" mask="##########"
:label="`${'นามสกุล'}`" maxlength="10"
/> :class="getClass(status == 'checkRegister' || status == 'payment')"
</div> :readonly="!(status == 'checkRegister' || status == 'payment')"
<div class="col-xs-12 col-sm-3 col-md-4"> :borderless="!(status == 'checkRegister' || status == 'payment')"
<q-input v-model="defaultContact.contactTel"
:class=" :label="`${'โทรศัพท์'}`"
getClass( :rules="[
status == 'checkRegister' || status == 'payment' (val) => !!val || '* กรุณากรอกข้อมูลหมายเลขโทรศัพท์',
) (val) =>
" (val.length >= 9 && val.length <= 10 && val.startsWith('0')) ||
:outlined="status == 'checkRegister' || status == 'payment'" 'กรุณากรอกข้อมูลหมายเลขโทรศัพท์ให้ถูกต้อง',
dense ]"
lazy-rules />
:readonly=" </div>
!(status == 'checkRegister' || status == 'payment') </div>
" </q-form>
:borderless="
!(status == 'checkRegister' || status == 'payment')
"
v-model="defaultContact.contactRelations"
:rules="[(val) => !!val || `${'กรุณากรอกความสัมพันธ์'}`]"
:label="`${'เกี่ยวข้องเป็น'}`"
/>
</div>
<div class="col-xs-12 col-sm-3 col-md-4">
<q-input
:outlined="status == 'checkRegister' || status == 'payment'"
dense
:counter="
status == 'checkRegister' || status == 'payment'
? true
: false
"
lazy-rules
type="tel"
mask="##########"
maxlength="10"
:class="
getClass(
status == 'checkRegister' || status == 'payment'
)
"
:readonly="
!(status == 'checkRegister' || status == 'payment')
"
:borderless="
!(status == 'checkRegister' || status == 'payment')
"
v-model="defaultContact.contactTel"
:label="`${'โทรศัพท์'}`"
:rules="[
(val) => !!val || '* กรุณากรอกข้อมูลหมายเลขโทรศัพท์',
(val) =>
(val.length >= 9 &&
val.length <= 10 &&
val.startsWith('0')) ||
'กรุณากรอกข้อมูลหมายเลขโทรศัพท์ให้ถูกต้อง',
]"
/>
</div>
</div>
</q-form>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, watch, PropType } from "vue"; import { ref, onMounted, watch, PropType } from "vue";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import type { import type {
Contact, Contact,
DataOption, DataOption,
} from "@/modules/03_recruiting/interface/index/Main"; } from "@/modules/03_recruiting/interface/index/Main";
import { import {
defaultContact, defaultContact,
changeData, changeData,
} from "@/modules/03_recruiting/interface/index/Main"; } from "@/modules/03_recruiting/interface/index/Main";
import HeaderTop from "@/modules/03_recruiting/components/top.vue"; import HeaderTop from "@/modules/03_recruiting/components/top.vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
@ -159,18 +113,18 @@ import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
const props = defineProps({ const props = defineProps({
status: { status: {
type: String, type: String,
required: true, required: true,
}, },
form: { form: {
type: Object, type: Object,
required: true, required: true,
}, },
prefixOptions: { prefixOptions: {
type: Array as PropType<DataOption[]>, type: Array as PropType<DataOption[]>,
required: true, required: true,
}, },
}); });
const emit = defineEmits(["update:form"]); const emit = defineEmits(["update:form"]);
@ -183,43 +137,43 @@ const route = useRoute();
const candidateId = ref<string>(route.params.candidateId.toString()); const candidateId = ref<string>(route.params.candidateId.toString());
watch(myform, async (count: any, prevCount: any) => { watch(myform, async (count: any, prevCount: any) => {
emit("update:form", count); emit("update:form", count);
}); });
watch(defaultContact, async (count: Contact, prevCount: Contact) => { watch(defaultContact, async (count: Contact, prevCount: Contact) => {
await changeData("contact", count); await changeData("contact", count);
}); });
onMounted(async () => { onMounted(async () => {
await fetchData(); await fetchData();
}); });
const fetchData = async () => { const fetchData = async () => {
showLoader(); showLoader();
await http await http
.get(config.API.candidateContact(candidateId.value)) .get(config.API.candidateContact(candidateId.value))
.then((res) => { .then((res) => {
const data = res.data.result; const data = res.data.result;
if (data != null) { if (data != null) {
defaultContact.value.contactPrefixId = data.contactPrefixId; defaultContact.value.contactPrefixId = data.contactPrefixId;
defaultContact.value.contactFirstname = data.contactFirstname; defaultContact.value.contactFirstname = data.contactFirstname;
defaultContact.value.contactLastname = data.contactLastname; defaultContact.value.contactLastname = data.contactLastname;
defaultContact.value.contactRelations = data.contactRelations; defaultContact.value.contactRelations = data.contactRelations;
defaultContact.value.contactTel = data.contactTel; defaultContact.value.contactTel = data.contactTel;
} }
}) })
.catch((e) => { .catch((e) => {
// messageError($q, e) // messageError($q, e)
}) })
.finally(() => { .finally(() => {
hideLoader(); hideLoader();
}); });
}; };
const getClass = (val: boolean) => { const getClass = (val: boolean) => {
return { return {
"full-width inputgreen cursor-pointer": val, "full-width inputgreen cursor-pointer": val,
"full-width cursor-pointer": !val, "full-width cursor-pointer": !val,
}; };
}; };
</script> </script>

View file

@ -1,6 +1,8 @@
<template> <template>
<q-toolbar> <q-toolbar>
<q-toolbar-title class="text-subtitle2 text-bold">{{ tittle }}</q-toolbar-title> <q-toolbar-title class="text-subtitle2 text-bold">{{
tittle
}}</q-toolbar-title>
<q-btn <q-btn
icon="close" icon="close"
unelevated unelevated

View file

@ -72,7 +72,6 @@
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
</q-th> </q-th>
</q-tr> </q-tr>
</template> </template>
<template #body="props"> <template #body="props">

View file

@ -126,7 +126,11 @@
round round
flat flat
color="indigo" color="indigo"
v-if="statusPayment && setSeat == true && checkPermission($route)?.attrIsUpdate" v-if="
statusPayment &&
setSeat == true &&
checkPermission($route)?.attrIsUpdate
"
@click="candidateToPlacement" @click="candidateToPlacement"
> >
<q-tooltip>บรรจานการคดเลอก</q-tooltip> <q-tooltip>บรรจานการคดเลอก</q-tooltip>

View file

@ -2,7 +2,9 @@
<div class="flex items-center q-pb-md"> <div class="flex items-center q-pb-md">
<div class="flex items-center" v-if="header != ''"> <div class="flex items-center" v-if="header != ''">
<q-icon :name="icon" size="1.5em" color="grey-5" class="q-mr-md" /> <q-icon :name="icon" size="1.5em" color="grey-5" class="q-mr-md" />
<div class="text-weight-medium text-dark col-12 row items-center text-subtitle1"> <div
class="text-weight-medium text-dark col-12 row items-center text-subtitle1"
>
{{ header }} {{ header }}
</div> </div>
</div> </div>

View file

@ -1,29 +1,29 @@
interface DataProps { interface DataProps {
row: RequestItemsObject row: RequestItemsObject;
rowIndex: number rowIndex: number;
} }
//ข้อมูล //ข้อมูล
interface RequestItemsObject { interface RequestItemsObject {
id: string id: string;
location: string location: string;
position: string position: string;
salary: number | null salary: number | null;
duration: [Date, Date] duration: [Date, Date];
reason: string reason: string;
} }
//columns //columns
interface Columns { interface Columns {
[index: number]: { [index: number]: {
name: String name: String;
align: String align: String;
label: String label: String;
sortable: Boolean sortable: Boolean;
field: String field: String;
headerStyle: String headerStyle: String;
style: String style: String;
} };
} }
export type { RequestItemsObject, Columns, DataProps } export type { RequestItemsObject, Columns, DataProps };

View file

@ -1,42 +1,42 @@
import { ref, computed } from 'vue' import { ref, computed } from "vue";
import { defineStore } from 'pinia' import { defineStore } from "pinia";
export const useExamDataStore = defineStore('exam', () => { export const useExamDataStore = defineStore("exam", () => {
interface exam { interface exam {
main: { columns: String[] } main: { columns: String[] };
education: { columns: String[] } education: { columns: String[] };
career: { columns: String[] } career: { columns: String[] };
} }
const examData = ref<exam>({ const examData = ref<exam>({
main: { columns: [] }, main: { columns: [] },
education: { columns: [] }, education: { columns: [] },
career: { columns: [] } career: { columns: [] },
}) });
const consend = ref<boolean>(false) const consend = ref<boolean>(false);
const status = ref<string>('') const status = ref<string>("");
const changeExamColumns = (system: String, val: String[]) => { const changeExamColumns = (system: String, val: String[]) => {
if (system == 'main') examData.value.main.columns = val if (system == "main") examData.value.main.columns = val;
if (system == 'education') examData.value.education.columns = val if (system == "education") examData.value.education.columns = val;
if (system == 'career') examData.value.career.columns = val if (system == "career") examData.value.career.columns = val;
localStorage.setItem('exam', JSON.stringify(examData.value)) localStorage.setItem("exam", JSON.stringify(examData.value));
} };
if (localStorage.getItem('exam') !== null) { if (localStorage.getItem("exam") !== null) {
examData.value = JSON.parse(localStorage.getItem('exam') || '{}') examData.value = JSON.parse(localStorage.getItem("exam") || "{}");
} }
const changeStatus = (val: string) => { const changeStatus = (val: string) => {
status.value = val status.value = val;
} };
return { return {
examData, examData,
changeExamColumns, changeExamColumns,
consend, consend,
status, status,
changeStatus changeStatus,
} };
}) });

View file

@ -21,9 +21,7 @@
v-for="col in props.cols" v-for="col in props.cols"
:key="col.name" :key="col.name"
:props="props" :props="props"
@click=" @click="checkPermission($route)?.attrIsGet && viewDetail(props.row)"
checkPermission($route)?.attrIsGet && viewDetail(props.row)
"
> >
<div v-if="col.name == 'no'"> <div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}

View file

@ -502,7 +502,6 @@
:rules="[(val:any) => !!val || `${'กรุณาเลือกประเภทแบบฟอร์ม'}`]" :rules="[(val:any) => !!val || `${'กรุณาเลือกประเภทแบบฟอร์ม'}`]"
></selector> ></selector>
</q-td> </q-td>
</q-tr> </q-tr>
</template> </template>
</ProfileTable> </ProfileTable>

View file

@ -144,7 +144,6 @@ a
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="issueDate + 543" :model-value="issueDate + 543"
hide-bottom-space hide-bottom-space
@ -186,7 +185,6 @@ a
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(issueDate2)" :model-value="date2Thai(issueDate2)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]"
@ -293,7 +291,6 @@ a
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -85,7 +85,7 @@ watch(
if (modal.value == true) { if (modal.value == true) {
clearForm(); clearForm();
if (edit.value == false) { if (edit.value == false) {
clear.value = true clear.value = true;
const dataList: any = data.value; const dataList: any = data.value;
formData.id = dataList.id; formData.id = dataList.id;
formData.sick = dataList.sick == "-" ? "" : dataList.sick; formData.sick = dataList.sick == "-" ? "" : dataList.sick;
@ -130,7 +130,6 @@ watch(
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
hide-bottom-space hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]"
:class="inputEdit(isReadonly)" :class="inputEdit(isReadonly)"
@ -150,7 +149,10 @@ watch(
> >
</q-icon> </q-icon>
</template> </template>
<template v-if="formData.year && clear == false " v-slot:append> <template
v-if="formData.year && clear == false"
v-slot:append
>
<q-icon <q-icon
name="cancel" name="cancel"
@click.stop.prevent="formData.year = 0" @click.stop.prevent="formData.year = 0"
@ -237,12 +239,22 @@ watch(
color="red" color="red"
flat flat
round round
@click="() => {editForms = false; clear = true;}" @click="
() => {
editForms = false;
clear = true;
}
"
><q-tooltip>ยกเล</q-tooltip></q-btn ><q-tooltip>ยกเล</q-tooltip></q-btn
> >
<q-btn <q-btn
v-if="editForm == true && editForms == false" v-if="editForm == true && editForms == false"
@click="() => {editForms = true ; clear = false;}" @click="
() => {
editForms = true;
clear = false;
}
"
flat flat
round round
icon="mdi-pencil-outline" icon="mdi-pencil-outline"

View file

@ -92,7 +92,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val:string) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]"
@ -219,7 +218,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
(refCommandDate && date2Thai(refCommandDate as Date)) || null (refCommandDate && date2Thai(refCommandDate as Date)) || null

View file

@ -174,7 +174,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="Number(startDate) + 543" :model-value="Number(startDate) + 543"
:rules="[ :rules="[
@ -233,7 +232,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate2 as Date)" :model-value="date2Thai(startDate2 as Date)"
:rules="[ :rules="[
@ -297,7 +295,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="Number(endDate) + 543" :model-value="Number(endDate) + 543"
:rules="[ :rules="[
@ -355,7 +352,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate2 as Date)" :model-value="date2Thai(endDate2 as Date)"
:rules="[ :rules="[
@ -415,7 +411,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="finishDate ? date2Thai(finishDate as Date) : null" :model-value="finishDate ? date2Thai(finishDate as Date) : null"
hide-bottom-space hide-bottom-space
@ -611,7 +606,6 @@
/> />
</div> </div>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<DialogFooter <DialogFooter
@ -774,7 +768,7 @@ const checkValidate = ref<boolean>(false); //validate data ผ่านหรื
const profileId = ref<string>( const profileId = ref<string>(
route.params.id ? route.params.id.toString() : "" route.params.id ? route.params.id.toString() : ""
); );
const note = ref<string>() const note = ref<string>();
const rows = ref<RequestItemsObject[]>([]); const rows = ref<RequestItemsObject[]>([]);
const filter = ref<string>(""); //search data table const filter = ref<string>(""); //search data table
const visibleColumns = ref<String[]>([]); const visibleColumns = ref<String[]>([]);
@ -1465,7 +1459,7 @@ const saveData = async () => {
? dateToISO(endDate2.value as Date) ? dateToISO(endDate2.value as Date)
: null : null
: new Date(`${endDate.value}-01-01`), : new Date(`${endDate.value}-01-01`),
note:note.value note: note.value,
}) })
.then((res) => { .then((res) => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
@ -1516,7 +1510,7 @@ const editData = async () => {
isDate.value == "true" isDate.value == "true"
? dateToISO(endDate2.value as Date) ? dateToISO(endDate2.value as Date)
: new Date(`${endDate.value}-01-01`), : new Date(`${endDate.value}-01-01`),
note:note.value note: note.value,
}) })
.then((res) => { .then((res) => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");

View file

@ -157,7 +157,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -102,7 +102,12 @@
:hide-dropdown-icon="!edit" :hide-dropdown-icon="!edit"
hide-bottom-space hide-bottom-space
:class="getClass(edit)" :class="getClass(edit)"
:readonly="!edit || status == 'lastName' || status == 'firstNameLastName' || status == 'firstName'" :readonly="
!edit ||
status == 'lastName' ||
status == 'firstNameLastName' ||
status == 'firstName'
"
:borderless="!edit" :borderless="!edit"
:rules="[(val:string) => !!val || `${'กรุณาเลือก คำนำหน้าชื่อ'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือก คำนำหน้าชื่อ'}`]"
:outlined="edit" :outlined="edit"
@ -128,7 +133,12 @@
:outlined="edit" :outlined="edit"
dense dense
lazy-rules lazy-rules
:readonly="!edit || status == 'lastName' || status == 'prefix' || status == 'prefixAndlastName'" :readonly="
!edit ||
status == 'lastName' ||
status == 'prefix' ||
status == 'prefixAndlastName'
"
:borderless="!edit" :borderless="!edit"
v-model="firstName" v-model="firstName"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อ'}`]" :rules="[(val) => !!val || `${'กรุณากรอกชื่อ'}`]"
@ -417,7 +427,7 @@ const Ops = ref<OldNameOps>({
const OpsFilter = ref<OldNameOps>({ const OpsFilter = ref<OldNameOps>({
prefixOps: [], prefixOps: [],
statusOps: [ statusOps: [
{ {
id: "prefix", id: "prefix",
name: "เปลี่ยนคำนำหน้าชื่อ", name: "เปลี่ยนคำนำหน้าชื่อ",
}, },

View file

@ -101,7 +101,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="year !== 0 ? (year as number) + 543:null" :model-value="year !== 0 ? (year as number) + 543:null"
:rules="[ :rules="[
@ -160,7 +159,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(receiveDate as Date)" :model-value="date2Thai(receiveDate as Date)"
:rules="[(val:string) => !!val || `${'กรุณากรอก วัน/เดือน/ปี ที่ได้รับ'}`]" :rules="[(val:string) => !!val || `${'กรุณากรอก วัน/เดือน/ปี ที่ได้รับ'}`]"
@ -341,7 +339,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateAnnounce as Date)" :model-value="date2Thai(dateAnnounce as Date)"
hide-bottom-space hide-bottom-space
@ -426,7 +423,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate as Date) refCommandDate == null ? null : date2Thai(refCommandDate as Date)

View file

@ -246,7 +246,6 @@
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
hide-bottom-space hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]"
:class="getClass(edit)" :class="getClass(edit)"

View file

@ -87,7 +87,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:label="`${'วันที่'}`" :label="`${'วันที่'}`"
@ -213,7 +212,7 @@ const {
} = mixin; } = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const date = ref<Date|null>(null); const date = ref<Date | null>(null);
const detail = ref<string>(); const detail = ref<string>();
const myForm = ref<any>(); //form data input const myForm = ref<any>(); //form data input
const edit = ref<boolean>(false); // dialog const edit = ref<boolean>(false); // dialog
@ -350,12 +349,12 @@ const fetchData = async () => {
data.map((e: ResponseObject) => { data.map((e: ResponseObject) => {
rows.value.push({ rows.value.push({
id: e.id, id: e.id,
date: e.date ? new Date(e.date):null, date: e.date ? new Date(e.date) : null,
detail: e.detail, detail: e.detail,
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
}); });
console.log(rows.value) console.log(rows.value);
}); });
}) })
.catch((e) => { .catch((e) => {
@ -392,9 +391,10 @@ const clickNext = async () => {
*/ */
const getData = () => { const getData = () => {
const row = rows.value[rowIndex.value]; const row = rows.value[rowIndex.value];
console.log(row) console.log(row);
date.value = row.date; date.value = row.date;
inputDate.value = row.date == null ? '':convertDateDisplay(row.date as Date); inputDate.value =
row.date == null ? "" : convertDateDisplay(row.date as Date);
detail.value = row.detail; detail.value = row.detail;
id.value = row.id; id.value = row.id;
}; };
@ -567,7 +567,8 @@ const selectData = async (props: DataProps) => {
detail.value = props.row.detail; detail.value = props.row.detail;
id.value = props.row.id; id.value = props.row.id;
inputDate.value = date.value !== null ? convertDateDisplay(date.value as Date):''; inputDate.value =
date.value !== null ? convertDateDisplay(date.value as Date) : "";
await checkRowPage(); await checkRowPage();
}; };

View file

@ -10,7 +10,8 @@ import { useRouter } from "vue-router";
const myForm = ref<QForm>(); const myForm = ref<QForm>();
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { showLoader, hideLoader, messageError, date2Thai, dialogMessageNotify } = mixin; const { showLoader, hideLoader, messageError, date2Thai, dialogMessageNotify } =
mixin;
const $q = useQuasar(); const $q = useQuasar();
const router = useRouter(); const router = useRouter();

View file

@ -98,7 +98,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]" :rules="[(val) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]"
@ -208,7 +207,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate as Date) refCommandDate == null ? null : date2Thai(refCommandDate as Date)

View file

@ -78,8 +78,8 @@ interface Goverment {
numberId: string | null; numberId: string | null;
positionExecutive: string | null; positionExecutive: string | null;
positionExecutiveSide: string | null; positionExecutiveSide: string | null;
containDate: Date|null|string; containDate: Date | null | string;
workDate: Date|string|null; workDate: Date | string | null;
retireDate: string | null; retireDate: string | null;
absent: number | null; absent: number | null;
age: number | null; age: number | null;
@ -217,5 +217,5 @@ export type {
DataOption, DataOption,
zipCodeOption, zipCodeOption,
DataOptioninfo, DataOptioninfo,
docList docList,
}; };

View file

@ -8,8 +8,8 @@ interface RequestItemsObject {
id: string; id: string;
certificateNo: string; certificateNo: string;
issuer: string; issuer: string;
issueDate: Date|null; issueDate: Date | null;
expireDate: Date|null; expireDate: Date | null;
certificateType: string; certificateType: string;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;

View file

@ -10,7 +10,7 @@ interface RequestItemsObject {
detail: string; detail: string;
unStigma: string; unStigma: string;
refCommandNo: string; refCommandNo: string;
refCommandDate: Date | null|string; refCommandDate: Date | null | string;
date: Date; date: Date;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;

View file

@ -21,10 +21,10 @@ interface RequestItemsObject {
fundName: string; fundName: string;
isDate: string | null; isDate: string | null;
finishDate: Date | null; finishDate: Date | null;
startDate: number|null; startDate: number | null;
endDate: number|null; endDate: number | null;
startDate2: Date|null; startDate2: Date | null;
endDate2: Date|null; endDate2: Date | null;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;
note: string; note: string;

View file

@ -20,7 +20,7 @@ interface DataProps {
//ข้อมูล //ข้อมูล
interface RequestItemsObject { interface RequestItemsObject {
id: string; id: string;
leaveYear: string|number; leaveYear: string | number;
sumRest: string; sumRest: string;
sumLate: string; sumLate: string;
sumAbsent: string; sumAbsent: string;
@ -57,7 +57,13 @@ interface DetailData {
sumLate: string; sumLate: string;
sumAbsent: string; sumAbsent: string;
sumEducation: string; sumEducation: string;
leaveYear: string|number; leaveYear: string | number;
} }
export type { RequestItemsObject, Columns, DataProps, RequestItemsTotalObject,DetailData }; export type {
RequestItemsObject,
Columns,
DataProps,
RequestItemsTotalObject,
DetailData,
};

View file

@ -6,7 +6,7 @@ interface DataProps {
//ข้อมูล //ข้อมูล
interface RequestItemsObject { interface RequestItemsObject {
id: string; id: string;
date: Date|null; date: Date | null;
detail: string; detail: string;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;

View file

@ -138,5 +138,5 @@ export type {
DataProps, DataProps,
RequestItemsEmployee, RequestItemsEmployee,
DataPropsEmployee, DataPropsEmployee,
RequestItemsHistory RequestItemsHistory,
}; };

View file

@ -15,10 +15,10 @@ interface RequestItemsObject {
department: string; department: string;
numberOrder: string; numberOrder: string;
dateOrder: Date; dateOrder: Date;
startDate: number|null; startDate: number | null;
endDate: number|null; endDate: number | null;
startDate2: Date|null; startDate2: Date | null;
endDate2: Date|null; endDate2: Date | null;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;
} }

View file

@ -11,7 +11,7 @@ interface RequestItemsObject {
detail: string; detail: string;
reference: string; reference: string;
refCommandNo: string; refCommandNo: string;
refCommandDate: Date | null|string; refCommandDate: Date | null | string;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;
} }

View file

@ -19,7 +19,7 @@ interface ResponseObject {
sumLate: string; sumLate: string;
sumAbsent: string; sumAbsent: string;
sumEducation: string; sumEducation: string;
leaveYear: string|number; leaveYear: string | number;
} }
interface ResponseTotalObject { interface ResponseTotalObject {

View file

@ -1,7 +1,7 @@
//ข้อมูล //ข้อมูล
interface ResponseObject { interface ResponseObject {
id: string; id: string;
date: Date|null; date: Date | null;
detail: string; detail: string;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;

View file

@ -4,7 +4,8 @@
const Main = () => import("@/modules/04_registry/views/Main.vue"); const Main = () => import("@/modules/04_registry/views/Main.vue");
const Detail = () => import("@/modules/04_registry/components/Profile.vue"); const Detail = () => import("@/modules/04_registry/components/Profile.vue");
const registryVerify = () => import("@/modules/04_registry/views/registry-verify.vue"); const registryVerify = () =>
import("@/modules/04_registry/views/registry-verify.vue");
// const addOrder = () => // const addOrder = () =>
// import( // import(
// "@/modules/05_placement/components/OrderPlacement/addOrderPlacement.vue" // "@/modules/05_placement/components/OrderPlacement/addOrderPlacement.vue"

View file

@ -177,7 +177,7 @@ const { changeTreeRegister, selectedRegister, expandedRegister } = dataStore;
const maxPage = ref<number>(1); const maxPage = ref<number>(1);
const rowsPerPage = ref<number>(50); const rowsPerPage = ref<number>(50);
const page = ref<number>(1); const page = ref<number>(1);
const total = ref<number>(0) const total = ref<number>(0);
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai, messageError, typeRetire, showLoader, hideLoader } = mixin; const { date2Thai, messageError, typeRetire, showLoader, hideLoader } = mixin;
@ -1377,7 +1377,7 @@ const doSearch = async () => {
.then((res) => { .then((res) => {
let data = res.data.result.data; let data = res.data.result.data;
maxPage.value = Math.ceil(res.data.result.totalRows / rowsPerPage.value); maxPage.value = Math.ceil(res.data.result.totalRows / rowsPerPage.value);
total.value = res.data.result.totalRows total.value = res.data.result.totalRows;
rows.value = []; rows.value = [];
data.map((e: ResponseObject) => { data.map((e: ResponseObject) => {
rows.value.push({ rows.value.push({

View file

@ -1,41 +1,46 @@
interface RequestItemsObject { interface RequestItemsObject {
profileId: string, profileId: string;
id?: string; id?: string;
level: string; level: string;
detail: string; detail: string;
unStigma: string; unStigma: string;
refCommandNo: string; refCommandNo: string;
refCommandDate: Date | null; refCommandDate: Date | null;
date: Date | null; date: Date | null;
}
interface FormFilter {
page: number;
pageSize: number;
keyword: string;
type: string;
posType: string;
posLevel: string;
retireYear: string | null;
rangeYear: { min: number; max: number };
isShowRetire: boolean;
isProbation: boolean;
}
interface DataOption {
id: string;
name: string;
}
interface DisciplineOps {
levelOptions: DataOption[];
}
interface MyObjectRef {
date: object | null;
detail: object | null;
refCommandNo: object | null;
[key: string]: any;
} }
export type { RequestItemsObject,FormFilter,DataOption,DisciplineOps,MyObjectRef }; interface FormFilter {
page: number;
pageSize: number;
keyword: string;
type: string;
posType: string;
posLevel: string;
retireYear: string | null;
rangeYear: { min: number; max: number };
isShowRetire: boolean;
isProbation: boolean;
}
interface DataOption {
id: string;
name: string;
}
interface DisciplineOps {
levelOptions: DataOption[];
}
interface MyObjectRef {
date: object | null;
detail: object | null;
refCommandNo: object | null;
[key: string]: any;
}
export type {
RequestItemsObject,
FormFilter,
DataOption,
DisciplineOps,
MyObjectRef,
};

View file

@ -1,9 +1,7 @@
interface ArrayFileList { interface ArrayFileList {
id:string id: string;
pathName:string pathName: string;
fileName:string fileName: string;
} }
export type { export type { ArrayFileList };
ArrayFileList
}

View file

@ -1,19 +1,19 @@
interface FormData { interface FormData {
type: string, type: string;
citizenId: string, citizenId: string;
fullName: string, fullName: string;
retireYear: number | null, retireYear: number | null;
year: number | null, year: number | null;
posPath: string, posPath: string;
posLevel: string, posLevel: string;
posOc: string, posOc: string;
isShowRetire: boolean, isShowRetire: boolean;
isProbation: boolean, isProbation: boolean;
} }
interface YearRange { interface YearRange {
min:number, min: number;
max:number max: number;
} }
export type { FormData , YearRange} export type { FormData, YearRange };

View file

@ -1,55 +1,62 @@
interface DetailData { interface DetailData {
id: string; id: string;
typeLeave: string; typeLeave: string;
dateStartLeave: Date | null; dateStartLeave: Date | null;
dateEndLeave: Date | null; dateEndLeave: Date | null;
numLeave: number; numLeave: number;
status: string; status: string;
reason: string; reason: string;
typeLeaveId: string; typeLeaveId: string;
code: string; code: string;
} }
interface FormFilter { interface FormFilter {
page: number; page: number;
pageSize: number; pageSize: number;
keyword: string; keyword: string;
type: string; type: string;
posType: string; posType: string;
posLevel: string; posLevel: string;
retireYear: string | null; retireYear: string | null;
rangeYear: { min: number; max: number }; rangeYear: { min: number; max: number };
isShowRetire: boolean; isShowRetire: boolean;
isProbation: boolean; isProbation: boolean;
} }
interface DataOptionLeave { interface DataOptionLeave {
id: string; id: string;
name: string; name: string;
totalLeave: number; totalLeave: number;
} }
interface DataOption { interface DataOption {
id: string; id: string;
name: string; name: string;
disable?: boolean; disable?: boolean;
} }
interface ResponseTotalObject { interface ResponseTotalObject {
typeLeaveId: string; typeLeaveId: string;
typeLeave: string; typeLeave: string;
totalLeave: number; totalLeave: number;
limitLeave: string; limitLeave: string;
remainLeave: string; remainLeave: string;
} }
interface MyObjectRef { interface MyObjectRef {
typeLeave: object | null; typeLeave: object | null;
dateRange: object | null; dateRange: object | null;
numLeave: object | null; numLeave: object | null;
statLeave: object | null; statLeave: object | null;
reason: object | null; reason: object | null;
[key: string]: any; [key: string]: any;
} }
export type { DetailData, FormFilter, DataOptionLeave, DataOption, ResponseTotalObject, MyObjectRef }; export type {
DetailData,
FormFilter,
DataOptionLeave,
DataOption,
ResponseTotalObject,
MyObjectRef,
};

View file

@ -1,31 +1,27 @@
interface RowList { interface RowList {
id: string; id: string;
date: Date | null; date: Date | null;
detail: string; detail: string;
lastUpdateFullName: string; lastUpdateFullName: string;
lastUpdatedAt: Date; lastUpdatedAt: Date;
} }
interface FormFilter { interface FormFilter {
page: number; page: number;
pageSize: number; pageSize: number;
keyword: string; keyword: string;
type: string; type: string;
posType: string; posType: string;
posLevel: string; posLevel: string;
retireYear: string | null; retireYear: string | null;
rangeYear: { min: number; max: number }; rangeYear: { min: number; max: number };
isShowRetire: boolean; isShowRetire: boolean;
isProbation: boolean; isProbation: boolean;
} }
interface MyObjectRef { interface MyObjectRef {
date: object | null; date: object | null;
detail: object | null; detail: object | null;
[key: string]: any [key: string]: any;
} }
export type { export type { RowList, FormFilter, MyObjectRef };
RowList,
FormFilter,
MyObjectRef,
}

View file

@ -1,48 +1,48 @@
interface FormFilter { interface FormFilter {
page: number; page: number;
pageSize: number; pageSize: number;
keyword: string; keyword: string;
type: string; type: string;
posType: string; posType: string;
posLevel: string; posLevel: string;
retireYear: string | null; retireYear: string | null;
rangeYear: { min: number; max: number }; rangeYear: { min: number; max: number };
isShowRetire: boolean; isShowRetire: boolean;
isProbation: boolean; isProbation: boolean;
} }
//ข้อมูล //ข้อมูล
interface RequestItemsObject { interface RequestItemsObject {
profileId: string, profileId: string;
id?: string, id?: string;
dateStart: Date | null, dateStart: Date | null;
dateEnd: Date | null, dateEnd: Date | null;
detail: string, detail: string;
reference: string, reference: string;
refCommandNo: string, refCommandNo: string;
refCommandDate: Date | null, refCommandDate: Date | null;
} }
interface MyObjectRef { interface MyObjectRef {
dateStart:object|null dateStart: object | null;
dateEnd:object|null dateEnd: object | null;
detail:object|null detail: object | null;
reference:object|null reference: object | null;
[key: string]: any; [key: string]: any;
} }
interface ResponseObject { interface ResponseObject {
lastUpdateFullName: string, lastUpdateFullName: string;
lastUpdatedAt: Date, lastUpdatedAt: Date;
id: string; id: string;
dateStart: Date; dateStart: Date;
dateEnd: Date; dateEnd: Date;
detail: string; detail: string;
reference: string; reference: string;
refCommandNo: string; refCommandNo: string;
refCommandDate: Date | null; refCommandDate: Date | null;
createdFullName: string; createdFullName: string;
createdAt: Date; createdAt: Date;
} }
export type{ FormFilter,RequestItemsObject,MyObjectRef,ResponseObject } export type { FormFilter, RequestItemsObject, MyObjectRef, ResponseObject };

View file

@ -11,6 +11,4 @@ interface RequestObject {
registrationAddress: string | null; registrationAddress: string | null;
} }
export type { export type { RequestObject };
RequestObject,
};

View file

@ -12,8 +12,8 @@ interface FormFilter {
} }
interface FormAddPerson { interface FormAddPerson {
birthDate: Date | null, birthDate: Date | null;
rank: string, rank: string;
prefix: string; prefix: string;
firstName: string; firstName: string;
lastName: string; lastName: string;

View file

@ -1,10 +1,10 @@
interface RequestItemsObject { interface RequestItemsObject {
certificateType: string; certificateType: string;
issuer: string; issuer: string;
certificateNo: string; certificateNo: string;
issueDate: Date; issueDate: Date;
expireDate: Date | null; expireDate: Date | null;
profileId: string; profileId: string;
} }
export type { RequestItemsObject }; export type { RequestItemsObject };

View file

@ -1,13 +1,11 @@
interface RequestItemsObject { interface RequestItemsObject {
field: string; field: string;
detail: string; detail: string;
remark: string; remark: string;
reference: string; reference: string;
dateStart: Date | null, dateStart: Date | null;
dateEnd: Date | null , dateEnd: Date | null;
profileId: string, profileId: string;
} }
export type { RequestItemsObject };
export type { RequestItemsObject };

View file

@ -1,19 +1,18 @@
interface RequestItemsObject { interface RequestItemsObject {
name: string, name: string;
topic: string, topic: string;
yearly: number | null, yearly: number | null;
place: string, place: string;
duration: string, duration: string;
department: string, department: string;
numberOrder: string, numberOrder: string;
dateOrder: Date | null, dateOrder: Date | null;
startDate: Date, startDate: Date;
endDate: Date, endDate: Date;
startYear: number, startYear: number;
finishYear: number, finishYear: number;
profileId: string, profileId: string;
isDate: boolean, isDate: boolean;
} }
export type { RequestItemsObject };
export type { RequestItemsObject };

View file

@ -1,34 +1,33 @@
//ข้อมูล //ข้อมูล
interface ResponseObject { interface ResponseObject {
createdAt: Date createdAt: Date;
createdFullName: string createdFullName: string;
createdUserId: string createdUserId: string;
educationLevel: string; educationLevel: string;
institute: string; institute: string;
startYear: number; startYear: number;
endYear: number; endYear: number;
finishDate: Date; finishDate: Date;
startDate: Date; startDate: Date;
endDate: Date; endDate: Date;
isEducation: boolean | null; isEducation: boolean | null;
degree: string; degree: string;
field: string; field: string;
fundName: string; fundName: string;
gpa: string; gpa: string;
country: string; country: string;
other: string; other: string;
duration: string; duration: string;
durationYear: number | null; durationYear: number | null;
note: string; note: string;
isActive: boolean isActive: boolean;
isDate: boolean isDate: boolean;
positionPath: string positionPath: string;
positionPathId : string positionPathId: string;
profileId: string profileId: string;
lastUpdateFullName: string lastUpdateFullName: string;
lastUpdateUserID: string lastUpdateUserID: string;
lastUpdatedAt: Date lastUpdatedAt: Date;
} }
export type { ResponseObject }; export type { ResponseObject };

View file

@ -1,12 +1,11 @@
//ข้อมูล //ข้อมูล
interface ResponseObject { interface ResponseObject {
issuer: string, issuer: string;
certificateType: string, certificateType: string;
certificateNo: string, certificateNo: string;
issueDate: Date | null, issueDate: Date | null;
isActive: boolean, isActive: boolean;
expireDate: Date | null expireDate: Date | null;
} }
export type { ResponseObject }; export type { ResponseObject };

View file

@ -1,21 +1,20 @@
//ข้อมูล //ข้อมูล
interface ResponseObject { interface ResponseObject {
createdAt: Date createdAt: Date;
createdFullName: string createdFullName: string;
createdUserId: string createdUserId: string;
dateStart: Date | null dateStart: Date | null;
dateEnd: Date | null dateEnd: Date | null;
detail: string detail: string;
field: string field: string;
id: string id: string;
isActive: boolean isActive: boolean;
lastUpdateFullName: string lastUpdateFullName: string;
lastUpdateUserId: string lastUpdateUserId: string;
lastUpdatedAt: Date lastUpdatedAt: Date;
profileId: string profileId: string;
reference: string reference: string;
remark: string remark: string;
} }
export type { ResponseObject }; export type { ResponseObject };

View file

@ -1,26 +1,25 @@
//ข้อมูล //ข้อมูล
interface ResponseObject { interface ResponseObject {
createdAt: Date createdAt: Date;
createdFullName: string createdFullName: string;
createdUserId: string createdUserId: string;
dateOrder: Date dateOrder: Date;
dateStart: Date | null dateStart: Date | null;
dateEnd: Date | null dateEnd: Date | null;
department: string department: string;
duration : string duration: string;
id: string id: string;
isActive: boolean isActive: boolean;
isDate: boolean isDate: boolean;
lastUpdateFullName: string lastUpdateFullName: string;
lastUpdateUserId: string lastUpdateUserId: string;
lastUpdateAt: Date lastUpdateAt: Date;
name: string name: string;
numberOrder: string numberOrder: string;
place: string place: string;
profileId: string profileId: string;
topic: string topic: string;
yearly: number yearly: number;
} }
export type { ResponseObject }; export type { ResponseObject };

View file

@ -13,7 +13,14 @@ const close = async () => {
<template> <template>
<q-toolbar class="q-py-md"> <q-toolbar class="q-py-md">
<q-toolbar-title class="header-text">{{ title }}</q-toolbar-title> <q-toolbar-title class="header-text">{{ title }}</q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="close" style="color: #ff8080; background-color: #ffdede" /> <q-btn
icon="close"
unelevated
round
dense
@click="close"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
</template> </template>
@ -22,6 +29,6 @@ const close = async () => {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
line-height: 26px; line-height: 26px;
color: #35373C; color: #35373c;
} }
</style> </style>

View file

@ -13,17 +13,22 @@ const close = async () => {
<template> <template>
<q-toolbar class="q-py-md"> <q-toolbar class="q-py-md">
<q-toolbar-title class="header-text">{{ title }}</q-toolbar-title> <q-toolbar-title class="header-text">{{ title }}</q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="close" style="color: #ff8080; background-color: #ffdede" /> <q-btn
icon="close"
unelevated
round
dense
@click="close"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.header-text { .header-text {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
line-height: 26px; line-height: 26px;
color: #35373C; color: #35373c;
} }
</style> </style>

View file

@ -13,17 +13,22 @@ const close = async () => {
<template> <template>
<q-toolbar class="q-py-md"> <q-toolbar class="q-py-md">
<q-toolbar-title class="header-text">{{ title }}</q-toolbar-title> <q-toolbar-title class="header-text">{{ title }}</q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="close" style="color: #ff8080; background-color: #ffdede" /> <q-btn
icon="close"
unelevated
round
dense
@click="close"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.header-text { .header-text {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
line-height: 26px; line-height: 26px;
color: #35373C; color: #35373c;
} }
</style> </style>

View file

@ -28,7 +28,7 @@ function close() {
function onSubmit() { function onSubmit() {
dialogConfirm($q, () => { dialogConfirm($q, () => {
const url = editCheck.value const url = editCheck.value
? config.API.changePosition+`/${idRound.value}` ? config.API.changePosition + `/${idRound.value}`
: config.API.changePosition; : config.API.changePosition;
http[editCheck.value ? "put" : "post"](url, { http[editCheck.value ? "put" : "post"](url, {

View file

@ -97,7 +97,7 @@ const resetFilter = () => {
filterKeyword.value = ""; filterKeyword.value = "";
filterKeyword2.value = ""; filterKeyword2.value = "";
filterRef.value.focus(); filterRef.value.focus();
fecthLists() fecthLists();
}; };
// modal // modal
@ -374,7 +374,6 @@ onMounted(() => {
{{ col.value ? col.value : "-" }} {{ col.value ? col.value : "-" }}
</div> </div>
</q-td> </q-td>
</q-tr> </q-tr>
</template> </template>
</d-table> </d-table>

View file

@ -135,7 +135,7 @@ const resetFilter = () => {
filterKeyword.value = ""; filterKeyword.value = "";
filterKeyword2.value = ""; filterKeyword2.value = "";
filterRef.value.focus(); filterRef.value.focus();
fecthLists() fecthLists();
}; };
// modal // modal
@ -156,8 +156,8 @@ const fecthLists = async () => {
config.API.changePositionById + config.API.changePositionById +
`/${id.value}?page=${pagination.value.page}&pageSize=${pagination.value.rowsPerPage}&searchKeyword=${filterKeyword.value}` `/${id.value}?page=${pagination.value.page}&pageSize=${pagination.value.rowsPerPage}&searchKeyword=${filterKeyword.value}`
) )
.then(async(res) => { .then(async (res) => {
let response = await res.data.result; let response = await res.data.result;
totalList.value = Math.ceil( totalList.value = Math.ceil(
res.data.result.total / pagination.value.rowsPerPage res.data.result.total / pagination.value.rowsPerPage
); );
@ -245,13 +245,12 @@ function onSave(data: any) {
function updatePagination(newPagination: any) { function updatePagination(newPagination: any) {
pagination.value.page = 1; pagination.value.page = 1;
pagination.value.rowsPerPage = newPagination.rowsPerPage; pagination.value.rowsPerPage = newPagination.rowsPerPage;
} }
watch( watch(
() => pagination.value.rowsPerPage, () => pagination.value.rowsPerPage,
async() => { async () => {
await fecthLists(); await fecthLists();
} }
); );
@ -417,7 +416,9 @@ onMounted(() => {
</div> </div>
<div v-else-if="col.name == 'lastUpdatedAt'"> <div v-else-if="col.name == 'lastUpdatedAt'">
{{ {{
props.row.lastUpdatedAt ? date2Thai(props.row.lastUpdatedAt) : "-" props.row.lastUpdatedAt
? date2Thai(props.row.lastUpdatedAt)
: "-"
}} }}
</div> </div>
<div v-else> <div v-else>

View file

@ -6,35 +6,35 @@
<div class="q-gutter-sm row"> <div class="q-gutter-sm row">
<div class="col-12 row items-center"> <div class="col-12 row items-center">
<div class="col-2 row justify-center"> <div class="col-2 row justify-center">
<q-btn outline color="grey-6" :label="'1'"> </q-btn> <q-btn outline color="grey-6" :label="'1'"> </q-btn>
</div> </div>
<div class="q-pl-md col-3">ำกวาความคาดหวงมาก</div> <div class="q-pl-md col-3">ำกวาความคาดหวงมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 1</div> <div class="q-pl-md">หมายถ คะแนนเฉลยทระด 1</div>
</div> </div>
<div class="col-12 row items-center"> <div class="col-12 row items-center">
<div class="col-2 row justify-center"> <div class="col-2 row justify-center">
<q-btn outline color="grey-6" :label="'2'"> </q-btn> <q-btn outline color="grey-6" :label="'2'"> </q-btn>
</div> </div>
<div class="q-pl-md col-3">ำกวาความคาดหวงคอนขางมาก</div> <div class="q-pl-md col-3">ำกวาความคาดหวงคอนขางมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 2</div> <div class="q-pl-md">หมายถ คะแนนเฉลยทระด 2</div>
</div> </div>
<div class="col-12 row items-center"> <div class="col-12 row items-center">
<div class="col-2 row justify-center"> <div class="col-2 row justify-center">
<q-btn outline color="grey-6" :label="'3'"> </q-btn> <q-btn outline color="grey-6" :label="'3'"> </q-btn>
</div> </div>
<div class="q-pl-md col-3">เปนไปตามความคาดหว</div> <div class="q-pl-md col-3">เปนไปตามความคาดหว</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 3</div> <div class="q-pl-md">หมายถ คะแนนเฉลยทระด 3</div>
</div> </div>
<div class="col-12 row items-center"> <div class="col-12 row items-center">
<div class="col-2 row justify-center"> <div class="col-2 row justify-center">
<q-btn outline color="grey-6" :label="'4'"> </q-btn> <q-btn outline color="grey-6" :label="'4'"> </q-btn>
</div> </div>
<div class="q-pl-md col-3">งวาความคาดหวงคอนขางมาก</div> <div class="q-pl-md col-3">งวาความคาดหวงคอนขางมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 4</div> <div class="q-pl-md">หมายถ คะแนนเฉลยทระด 4</div>
</div> </div>
<div class="col-12 row items-center"> <div class="col-12 row items-center">
<div class="col-2 row justify-center"> <div class="col-2 row justify-center">
<q-btn outline color="grey-6" :label="'5'"> </q-btn> <q-btn outline color="grey-6" :label="'5'"> </q-btn>
</div> </div>
<div class="q-pl-md col-3">งกวาความคาดหวงมาก</div> <div class="q-pl-md col-3">งกวาความคาดหวงมาก</div>
<div class="q-pl-md">หมายถ คะแนนเฉลยทระด 5</div> <div class="q-pl-md">หมายถ คะแนนเฉลยทระด 5</div>

View file

@ -13,17 +13,22 @@ const close = async () => {
<template> <template>
<q-toolbar class="q-py-md"> <q-toolbar class="q-py-md">
<q-toolbar-title class="header-text">{{ title }}</q-toolbar-title> <q-toolbar-title class="header-text">{{ title }}</q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="close" style="color: #ff8080; background-color: #ffdede" /> <q-btn
icon="close"
unelevated
round
dense
@click="close"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.header-text { .header-text {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
line-height: 26px; line-height: 26px;
color: #35373C; color: #35373c;
} }
</style> </style>

View file

@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
/** รับค่ามาจากหน้าหลัก */ /** รับค่ามาจากหน้าหลัก */
const props = defineProps({ const props = defineProps({
editvisible: Boolean, editvisible: Boolean,
@ -32,41 +31,40 @@ const emit = defineEmits([
* งช update * งช update
* @param value true/false * @param value true/false
*/ */
function updateEdit(value: Boolean){ function updateEdit(value: Boolean) {
emit("update:editvisible", value); emit("update:editvisible", value);
}; }
/** update edit */ /** update edit */
async function edit(){ async function edit() {
updateEdit(!props.editvisible); updateEdit(!props.editvisible);
props.edit(); props.edit();
}; }
/** save */ /** save */
function checkSave(){ function checkSave() {
props.validate(); props.validate();
props.save(); props.save();
}
};
</script> </script>
<template> <template>
<q-card-actions class="text-primary"> <q-card-actions class="text-primary">
<q-space /> <q-space />
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
outline outline
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'" :color="editvisible ? 'grey-7' : 'primary'"
@click="edit" @click="edit"
> >
</q-btn> </q-btn>
<div v-else> <div v-else>
<q-btn <q-btn
unelevated unelevated
label="บันทึก" label="บันทึก"
:disabled="!editvisible" :disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'" :color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave" @click="checkSave"
> >
</q-btn> </q-btn>

View file

@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
/** รับค่ามาจากหน้าหลัก */ /** รับค่ามาจากหน้าหลัก */
const props = defineProps({ const props = defineProps({
title: String, title: String,
@ -17,17 +16,22 @@ const close = async () => {
<template> <template>
<q-toolbar class="q-py-md"> <q-toolbar class="q-py-md">
<q-toolbar-title class="header-text">{{ title }}</q-toolbar-title> <q-toolbar-title class="header-text">{{ title }}</q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="close" style="color: #ff8080; background-color: #ffdede" /> <q-btn
icon="close"
unelevated
round
dense
@click="close"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.header-text { .header-text {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
line-height: 26px; line-height: 26px;
color: #35373C; color: #35373c;
} }
</style> </style>

View file

@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
const props = defineProps({ const props = defineProps({
editvisible: Boolean, editvisible: Boolean,
modalEdit: Boolean, modalEdit: Boolean,
@ -39,30 +38,30 @@ const edit = async () => {
const checkSave = () => { const checkSave = () => {
props.validate(); props.validate();
props.save(); props.save();
}; };
</script> </script>
<template> <template>
<q-card-actions class="text-primary"> <q-card-actions class="text-primary">
<q-space /> <q-space />
<q-btn <q-btn
v-if="!editvisible" v-if="!editvisible"
outline outline
:disabled="editvisible" :disabled="editvisible"
:color="editvisible ? 'grey-7' : 'primary'" :color="editvisible ? 'grey-7' : 'primary'"
@click="edit" @click="edit"
><!-- 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
unelevated unelevated
label="บันทึก" label="บันทึก"
:disabled="!editvisible" :disabled="!editvisible"
:color="!editvisible ? 'grey-7' : 'public'" :color="!editvisible ? 'grey-7' : 'public'"
@click="checkSave" @click="checkSave"
> >
</q-btn><!-- icon="mdi-content-save-outline"> </q-btn
><!-- icon="mdi-content-save-outline">
<q-tooltip>นท</q-tooltip> --> <q-tooltip>นท</q-tooltip> -->
</div> </div>
</q-card-actions> </q-card-actions>

View file

@ -13,17 +13,22 @@ const close = async () => {
<template> <template>
<q-toolbar class="q-py-sm"> <q-toolbar class="q-py-sm">
<q-toolbar-title class="header-text">{{ title }}</q-toolbar-title> <q-toolbar-title class="header-text">{{ title }}</q-toolbar-title>
<q-btn icon="close" unelevated round dense @click="close" style="color: #ff8080; background-color: #ffdede" /> <q-btn
icon="close"
unelevated
round
dense
@click="close"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> </q-toolbar>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.header-text { .header-text {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
line-height: 26px; line-height: 26px;
color: #35373C; color: #35373c;
} }
</style> </style>

View file

@ -272,7 +272,7 @@ const nextPage = (id: string) => {
function onSave(data: any) { function onSave(data: any) {
console.log("not save", data); console.log("not save", data);
const dataAppoint = { const dataAppoint = {
node: data.node, node: data.node,
nodeId: data.nodeId, nodeId: data.nodeId,
orgRevisionId: data.orgRevisionId, orgRevisionId: data.orgRevisionId,
positionId: data.positionId, positionId: data.positionId,

View file

@ -29,7 +29,7 @@ const {
const route = useRoute(); const route = useRoute();
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail"); const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
const assignId = ref<string>(route.params.form.toString()); const assignId = ref<string>(route.params.form.toString());
const { fecthAssignoutput,assign } = probationStore; const { fecthAssignoutput, assign } = probationStore;
const Autherise = ref<any>(null); const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date()); const dateAutherise = ref<any>(new Date());
const option = ref<any>([]); const option = ref<any>([]);

View file

@ -110,7 +110,7 @@ const variablesToWatch = [
success_level, success_level,
]; ];
function savaForm(){ function savaForm() {
let hasError = false; let hasError = false;
behavio_strengthRef.value.validate(); behavio_strengthRef.value.validate();
if ( if (
@ -166,13 +166,13 @@ function savaForm(){
} }
dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ"); dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ");
} }
}; }
/** /**
* get ประเม * get ประเม
* @param id * @param id
*/ */
async function fecthAssign(id: string) { async function fecthAssign(id: string) {
showLoader(); showLoader();
await http await http
.get(config.API.evaluateCreate(id)) .get(config.API.evaluateCreate(id))

View file

@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, defineAsyncComponent, computed, onMounted, watch } from "vue"; import { ref, defineAsyncComponent, computed, onMounted, watch } from "vue";
import { useQuasar, QForm } from "quasar"; import { useQuasar, QForm } from "quasar";
import { useProbationDataStore } from "@/modules/05_placement/storeProbation"; import { useProbationDataStore } from "@/modules/05_placement/storeProbation";
@ -691,7 +690,6 @@ watch(lengthdiscipline_level, (newLength) => {
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-card> </q-card>
@ -798,23 +796,23 @@ watch(lengthdiscipline_level, (newLength) => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class="conduct_level[i] == item && 'active'" :class="conduct_level[i] == item && 'active'"
outline outline
color="grey-6" color="grey-6"
:label="item" :label="item"
@click="conduct_level[i] = item" @click="conduct_level[i] = item"
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ optionText[index].label }}</span> <span>{{ optionText[index].label }}</span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator <q-separator
class="q-my-xs" class="q-my-xs"
@ -840,23 +838,23 @@ watch(lengthdiscipline_level, (newLength) => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class="moral_level[i] == item && 'active'" :class="moral_level[i] == item && 'active'"
outline outline
color="grey-6" color="grey-6"
:label="item" :label="item"
@click="moral_level[i] = item" @click="moral_level[i] = item"
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ optionText[index].label }}</span> <span>{{ optionText[index].label }}</span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator <q-separator
class="q-my-xs" class="q-my-xs"
@ -882,23 +880,23 @@ watch(lengthdiscipline_level, (newLength) => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class="discipline_level[i] == item && 'active'" :class="discipline_level[i] == item && 'active'"
outline outline
color="grey-6" color="grey-6"
:label="item" :label="item"
@click="discipline_level[i] = item" @click="discipline_level[i] = item"
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ optionText[index].label }}</span> <span>{{ optionText[index].label }}</span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator <q-separator
class="q-my-xs" class="q-my-xs"
@ -947,23 +945,23 @@ watch(lengthdiscipline_level, (newLength) => {
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class="behavio_orther.level == item && 'active'" :class="behavio_orther.level == item && 'active'"
outline outline
color="grey-6" color="grey-6"
:label="item" :label="item"
@click="behavio_orther.level = item" @click="behavio_orther.level = item"
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ optionText[index].label }}</span> <span>{{ optionText[index].label }}</span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-card> </q-card>

View file

@ -1022,26 +1022,23 @@ onMounted(async () => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class=" :class="moral_level[i] == item.toString() && 'active'"
moral_level[i] == item.toString() && outline
'active' color="grey-6"
" :label="item"
outline @click="moral_level[i] = item"
color="grey-6" >
:label="item" <q-tooltip>
@click="moral_level[i] = item" <div class="text-body2">
> <span>{{ optionText[index].label }}</span>
<q-tooltip> </div>
<div class="text-body2"> </q-tooltip>
<span>{{ optionText[index].label }}</span> </q-btn>
</div> </q-btn-group>
</q-tooltip> </q-item-section>
</q-btn>
</q-btn-group>
</q-item-section>
</q-item> </q-item>
<q-separator class="q-my-xs" v-if="i + 1 < list2_2.length" /> <q-separator class="q-my-xs" v-if="i + 1 < list2_2.length" />
</q-list> </q-list>
@ -1067,27 +1064,25 @@ onMounted(async () => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class=" :class="
discipline_level[i] == item.toString() && discipline_level[i] == item.toString() && 'active'
'active' "
" outline
outline color="grey-6"
color="grey-6" :label="item"
:label="item" @click="discipline_level[i] = item"
@click="discipline_level[i] = item" >
> <q-tooltip>
<q-tooltip> <div class="text-body2">
<div class="text-body2"> <span>{{ optionText[index].label }}</span>
<span>{{ optionText[index].label }}</span> </div>
</div> </q-tooltip>
</q-tooltip> </q-btn>
</q-btn> </q-btn-group>
</q-btn-group> </q-item-section>
</q-item-section>
</q-item> </q-item>
<q-separator class="q-my-xs" v-if="i + 1 < list2_3.length" /> <q-separator class="q-my-xs" v-if="i + 1 < list2_3.length" />
</q-list> </q-list>
@ -1134,23 +1129,23 @@ onMounted(async () => {
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class="behavio_orther.level == item && 'active'" :class="behavio_orther.level == item && 'active'"
outline outline
color="grey-6" color="grey-6"
:label="item" :label="item"
@click="behavio_orther.level = item" @click="behavio_orther.level = item"
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ optionText[index].label }}</span> <span>{{ optionText[index].label }}</span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-card> </q-card>

View file

@ -1026,26 +1026,23 @@ onMounted(async () => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class=" :class="moral_level[i] == item.toString() && 'active'"
moral_level[i] == item.toString() && outline
'active' color="grey-6"
" :label="item"
outline @click="moral_level[i] = item"
color="grey-6" >
:label="item" <q-tooltip>
@click="moral_level[i] = item" <div class="text-body2">
> <span>{{ optionText[index].label }}</span>
<q-tooltip> </div>
<div class="text-body2"> </q-tooltip>
<span>{{ optionText[index].label }}</span> </q-btn>
</div> </q-btn-group>
</q-tooltip> </q-item-section>
</q-btn>
</q-btn-group>
</q-item-section>
</q-item> </q-item>
<q-separator class="q-my-xs" v-if="i + 1 < list2_2.length" /> <q-separator class="q-my-xs" v-if="i + 1 < list2_2.length" />
</q-list> </q-list>
@ -1071,27 +1068,25 @@ onMounted(async () => {
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class=" :class="
discipline_level[i] == item.toString() && discipline_level[i] == item.toString() && 'active'
'active' "
" outline
outline color="grey-6"
color="grey-6" :label="item"
:label="item" @click="discipline_level[i] = item"
@click="discipline_level[i] = item" >
> <q-tooltip>
<q-tooltip> <div class="text-body2">
<div class="text-body2"> <span>{{ optionText[index].label }}</span>
<span>{{ optionText[index].label }}</span> </div>
</div> </q-tooltip>
</q-tooltip> </q-btn>
</q-btn> </q-btn-group>
</q-btn-group> </q-item-section>
</q-item-section>
</q-item> </q-item>
<q-separator class="q-my-xs" v-if="i + 1 < list2_3.length" /> <q-separator class="q-my-xs" v-if="i + 1 < list2_3.length" />
</q-list> </q-list>
@ -1138,23 +1133,23 @@ onMounted(async () => {
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn-group outline> <q-btn-group outline>
<q-btn <q-btn
v-for="(item, index) in 5" v-for="(item, index) in 5"
:class="behavio_orther.level == item && 'active'" :class="behavio_orther.level == item && 'active'"
outline outline
color="grey-6" color="grey-6"
:label="item" :label="item"
@click="behavio_orther.level = item" @click="behavio_orther.level = item"
> >
<q-tooltip> <q-tooltip>
<div class="text-body2"> <div class="text-body2">
<span>{{ optionText[index].label }}</span> <span>{{ optionText[index].label }}</span>
</div> </div>
</q-tooltip> </q-tooltip>
</q-btn> </q-btn>
</q-btn-group> </q-btn-group>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-card> </q-card>

View file

@ -101,7 +101,14 @@ function nextPage() {
</q-tab> </q-tab>
</q-tabs> </q-tabs>
<div> <div>
<q-btn v-if="!checkRoutePermisson" color="blue" flat dense icon="mdi-plus" @click="nextPage"> <q-btn
v-if="!checkRoutePermisson"
color="blue"
flat
dense
icon="mdi-plus"
@click="nextPage"
>
<q-tooltip> เพ </q-tooltip> <q-tooltip> เพ </q-tooltip>
</q-btn> </q-btn>
</div> </div>

View file

@ -103,9 +103,7 @@ async function FileDownload(type: string) {
messageError($q, JSON.parse(await e.response.data.text())); messageError($q, JSON.parse(await e.response.data.text()));
hideLoader(); hideLoader();
}) })
.finally(() => { .finally(() => {});
});
} else { } else {
// //
showLoader(); showLoader();
@ -124,8 +122,7 @@ async function FileDownload(type: string) {
messageError($q, JSON.parse(await e.response.data.text())); messageError($q, JSON.parse(await e.response.data.text()));
hideLoader(); hideLoader();
}) })
.finally(() => { .finally(() => {});
});
} }
} }

View file

@ -102,9 +102,7 @@ async function FileDownload(type: string) {
messageError($q, JSON.parse(await e.response.data.text())); messageError($q, JSON.parse(await e.response.data.text()));
hideLoader(); hideLoader();
}) })
.finally(() => { .finally(() => {});
});
} }
/** เปลี่ยนหน้า เพิ่ม */ /** เปลี่ยนหน้า เพิ่ม */

View file

@ -2,12 +2,15 @@
import { ref, defineAsyncComponent } from "vue"; import { ref, defineAsyncComponent } from "vue";
const FormReport = defineAsyncComponent( const FormReport = defineAsyncComponent(
() => import("@/modules/05_placement/components/probation/FormEvaluation/FormReport.vue") () =>
) import(
"@/modules/05_placement/components/probation/FormEvaluation/FormReport.vue"
)
);
</script> </script>
<template> <template>
<div class="col-12 q-ma-sm"> <div class="col-12 q-ma-sm">
<FormReport /> <FormReport />
</div> </div>
</template> </template>

View file

@ -56,16 +56,16 @@ const personalId = ref<string>(route.params.personalId.toString());
* เปลยน tab เมน * เปลยน tab เมน
* @param tab กำหนด tab * @param tab กำหนด tab
*/ */
function changeTab(tab: string){ function changeTab(tab: string) {
DataStore.mainTab = tab; DataStore.mainTab = tab;
activeTab.value = DataStore.mainTab; activeTab.value = DataStore.mainTab;
}; }
/** ปุ่มกลับ */ /** ปุ่มกลับ */
function clickBack(){ function clickBack() {
router.go(-1) router.go(-1);
DataStore.mainTab = "tab1"; DataStore.mainTab = "tab1";
}; }
/** เมื่อเริ่มโหลดหน้า ให้ tab เป็น tab1 */ /** เมื่อเริ่มโหลดหน้า ให้ tab เป็น tab1 */
onMounted(() => { onMounted(() => {
@ -197,7 +197,7 @@ onMounted(() => {
> >
<q-item-section> แบบรายงาน<br />การประเมนฯ </q-item-section> <q-item-section> แบบรายงาน<br />การประเมนฯ </q-item-section>
</q-item> </q-item>
<q-item <q-item
active-class="text-primary bg-teal-1 text-weight-medium" active-class="text-primary bg-teal-1 text-weight-medium"
clickable clickable

Some files were not shown because too many files have changed in this diff Show more