updated format code
This commit is contained in:
parent
b75d69ea08
commit
b14bad2249
241 changed files with 14012 additions and 13811 deletions
20
src/App.vue
20
src/App.vue
|
|
@ -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>
|
|
||||||
|
|
|
||||||
|
|
@ -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}`,
|
||||||
}
|
};
|
||||||
|
|
|
||||||
|
|
@ -90,5 +90,4 @@ export default {
|
||||||
organizationEmployeePositionId: (profileId: string) =>
|
organizationEmployeePositionId: (profileId: string) =>
|
||||||
`${organizationEmployee}position/${profileId}`,
|
`${organizationEmployee}position/${profileId}`,
|
||||||
organizationEmployeeSendOrder: `${organizationEmployee}report`,
|
organizationEmployeeSendOrder: `${organizationEmployee}report`,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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}`,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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}`,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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`,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
16618
src/assets/tree.json
16618
src/assets/tree.json
File diff suppressed because it is too large
Load diff
|
|
@ -15,8 +15,8 @@ const props = defineProps({
|
||||||
default: "",
|
default: "",
|
||||||
},
|
},
|
||||||
clickClose: {
|
clickClose: {
|
||||||
type: Function
|
type: Function,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -28,9 +28,7 @@ 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>
|
||||||
|
|
|
||||||
|
|
@ -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) => {
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@ const props = defineProps({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const pagination = ref({
|
const pagination = ref({
|
||||||
sortBy: "desc",
|
sortBy: "desc",
|
||||||
descending: false,
|
descending: false,
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -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 || `${'กรุณาเลือกวันที่'}`]"
|
||||||
|
|
|
||||||
|
|
@ -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="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`"
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -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' ||
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,4 @@ onMounted(() => {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,6 @@ export const usePersonalDataStore = defineStore("PersonalData", () => {
|
||||||
return {
|
return {
|
||||||
save,
|
save,
|
||||||
row,
|
row,
|
||||||
currentTab
|
currentTab,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@
|
||||||
:outlined="edit"
|
:outlined="edit"
|
||||||
dense
|
dense
|
||||||
label="วันที่"
|
label="วันที่"
|
||||||
|
|
||||||
:borderless="!edit"
|
:borderless="!edit"
|
||||||
:model-value="dateThaiRange(dateRange)"
|
:model-value="dateThaiRange(dateRange)"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
}
|
};
|
||||||
})
|
});
|
||||||
|
|
|
||||||
|
|
@ -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 }}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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, "บันทึกข้อมูลสำเร็จ");
|
||||||
|
|
|
||||||
|
|
@ -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="
|
||||||
|
|
|
||||||
|
|
@ -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: "เปลี่ยนคำนำหน้าชื่อ",
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)"
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -138,5 +138,5 @@ export type {
|
||||||
DataProps,
|
DataProps,
|
||||||
RequestItemsEmployee,
|
RequestItemsEmployee,
|
||||||
DataPropsEmployee,
|
DataPropsEmployee,
|
||||||
RequestItemsHistory
|
RequestItemsHistory,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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({
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -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,
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,4 @@ interface RequestObject {
|
||||||
registrationAddress: string | null;
|
registrationAddress: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type {
|
export type { RequestObject };
|
||||||
RequestObject,
|
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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, {
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
||||||
/** รับค่ามาจากหน้าหลัก */
|
/** รับค่ามาจากหน้าหลัก */
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
editvisible: Boolean,
|
editvisible: Boolean,
|
||||||
|
|
@ -32,22 +31,21 @@ 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">
|
||||||
|
|
@ -58,7 +56,7 @@ function checkSave(){
|
||||||
: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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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,7 +38,6 @@ const edit = async () => {
|
||||||
const checkSave = () => {
|
const checkSave = () => {
|
||||||
props.validate();
|
props.validate();
|
||||||
props.save();
|
props.save();
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -62,7 +60,8 @@ const checkSave = () => {
|
||||||
: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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>([]);
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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(() => {});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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(() => {});
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** เปลี่ยนหน้า เพิ่ม */
|
/** เปลี่ยนหน้า เพิ่ม */
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,11 @@
|
||||||
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>
|
||||||
|
|
|
||||||
|
|
@ -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(() => {
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,7 @@ import config from "@/app.config";
|
||||||
|
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
|
|
||||||
const {
|
const { date2Thai } = mixin;
|
||||||
date2Thai,
|
|
||||||
} = mixin;
|
|
||||||
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());
|
||||||
|
|
@ -163,18 +161,14 @@ onMounted(() => {
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label style="color: gray">
|
<q-item-label style="color: gray">
|
||||||
<div class="row text-weight-light">
|
<div class="row text-weight-light">
|
||||||
|
|
||||||
<div class="col">คะแนน</div>
|
<div class="col">คะแนน</div>
|
||||||
<div class="col">ร้อยละ</div>
|
<div class="col">ร้อยละ</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
<q-item-label caption style="color: #464444">
|
<q-item-label caption style="color: #464444">
|
||||||
<div class="row text-weight-bold">
|
<div class="row text-weight-bold">
|
||||||
|
|
||||||
<div class="col">{{ behavior_score }}</div>
|
<div class="col">{{ behavior_score }}</div>
|
||||||
<div class="col">{{ behavior_percent }}</div>
|
<div class="col">{{ behavior_percent }}</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|
@ -200,18 +194,14 @@ onMounted(() => {
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label style="color: gray">
|
<q-item-label style="color: gray">
|
||||||
<div class="row text-weight-light">
|
<div class="row text-weight-light">
|
||||||
|
|
||||||
<div class="col">คะแนน</div>
|
<div class="col">คะแนน</div>
|
||||||
<div class="col">ร้อยละ</div>
|
<div class="col">ร้อยละ</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
<q-item-label caption style="color: #464444">
|
<q-item-label caption style="color: #464444">
|
||||||
<div class="row text-weight-bold">
|
<div class="row text-weight-bold">
|
||||||
|
|
||||||
<div class="col">{{ sum_score }}</div>
|
<div class="col">{{ sum_score }}</div>
|
||||||
<div class="col">{{ sum_percent }}</div>
|
<div class="col">{{ sum_percent }}</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,7 @@ const $q = useQuasar();
|
||||||
const myForm = ref<QForm>();
|
const myForm = ref<QForm>();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
|
|
||||||
const {
|
const { messageError, success, dialogConfirm } = mixin;
|
||||||
messageError,
|
|
||||||
success,
|
|
||||||
dialogConfirm,
|
|
||||||
} = mixin;
|
|
||||||
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());
|
||||||
|
|
@ -146,26 +142,23 @@ onMounted(() => {
|
||||||
ความพึงพอใจกับการทดลองปฏิบัติหน้าที่ราชการของคุณอยู่ในระดับใด
|
ความพึงพอใจกับการทดลองปฏิบัติหน้าที่ราชการของคุณอยู่ในระดับใด
|
||||||
</div>
|
</div>
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-btn-group outline>
|
<q-btn-group outline>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-for="(item, index) in 5"
|
v-for="(item, index) in 5"
|
||||||
:disable="!status || checkRoutePermisson"
|
:disable="!status || checkRoutePermisson"
|
||||||
:class="
|
:class="answer3 == item && 'active'"
|
||||||
answer3 == item && 'active'
|
outline
|
||||||
"
|
color="grey-6"
|
||||||
outline
|
:label="item"
|
||||||
color="grey-6"
|
@click="answer3 = item"
|
||||||
:label="item"
|
>
|
||||||
@click="answer3 = item"
|
<q-tooltip>
|
||||||
>
|
<div class="text-body2">
|
||||||
<q-tooltip>
|
<span>{{ optionText[index].label }}</span>
|
||||||
<div class="text-body2">
|
</div>
|
||||||
<span>{{ optionText[index].label }}</span>
|
</q-tooltip>
|
||||||
</div>
|
</q-btn>
|
||||||
</q-tooltip>
|
</q-btn-group>
|
||||||
</q-btn>
|
|
||||||
</q-btn-group>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 q-mt-md">
|
<div class="col-12 q-mt-md">
|
||||||
<q-separator size="3px" color="grey-2" />
|
<q-separator size="3px" color="grey-2" />
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue