Merge branch 'develop' into devTee

This commit is contained in:
setthawutttty 2024-03-11 14:35:32 +07:00
commit a62ebce427
20 changed files with 271 additions and 165 deletions

View file

@ -13,7 +13,7 @@ const tab = ref<string>("1");
<template>
<div class="row items-center q-mb-lg">
<div class="text-dark row items-center" style="font-size: 22px">
<q-icon name="mdi-cash" class="q-mr-md" />
<q-icon name="mdi-medal" class="q-mr-md" />
<span>อมลผลงานและเครองราชฯ</span>
</div>
</div>
@ -25,7 +25,7 @@ const tab = ref<string>("1");
class="text-grey"
active-color="blue"
indicator-color="white"
align="justify"
align="left"
narrow-indicator
bordered
>

View file

@ -11,7 +11,7 @@ const tab = ref<string>("1");
</script>
<template>
<div class="row items-center q-mb-lg">
<div class="text-dark row items-center" style="font-size: 22px">
<div class="text-dark row items-center text-weight-bold" style="font-size: 20px">
<q-icon name="mdi-account-tie" class="q-mr-md" />
<span>อมลราชการ</span>
</div>
@ -24,7 +24,7 @@ const tab = ref<string>("1");
class="text-grey"
active-color="blue"
indicator-color="white"
align="justify"
align="left"
narrow-indicator
bordered
>

View file

@ -9,7 +9,7 @@ const tab = ref<string>("1");
</script>
<template>
<div class="row items-center q-mb-lg">
<div class="text-dark row items-center" style="font-size: 22px">
<div class="text-dark row items-center text-weight-bold" style="font-size: 20px">
<q-icon name="mdi-bookmark" class="q-mr-md" />
<span>เอกสารหลกฐานและอนๆ</span>
</div>
@ -22,7 +22,7 @@ const tab = ref<string>("1");
class="text-grey"
active-color="blue"
indicator-color="white"
align="justify"
align="left"
narrow-indicator
bordered
>

View file

@ -13,7 +13,10 @@ const tab = ref<string>("1");
</script>
<template>
<div class="row items-center q-mb-lg">
<div class="text-dark row items-center" style="font-size: 22px">
<div
class="text-dark row items-center text-weight-bold"
style="font-size: 20px"
>
<q-icon name="mdi-account" class="q-mr-md" />
<span>อมลสวนต</span>
</div>
@ -26,7 +29,7 @@ const tab = ref<string>("1");
class="text-grey"
active-color="blue"
indicator-color="white"
align="justify"
align="left"
narrow-indicator
bordered
>

View file

@ -9,8 +9,11 @@ const tab = ref<string>("1");
</script>
<template>
<div class="row items-center q-mb-lg">
<div class="text-dark row items-center" style="font-size: 22px">
<q-icon name="mdi-account" class="q-mr-md" />
<div
class="text-dark row items-center text-weight-bold"
style="font-size: 20px"
>
<q-icon name="mdi-cash" class="q-mr-md" />
<span>อมลเงนเดอน/าจาง</span>
</div>
</div>
@ -22,7 +25,7 @@ const tab = ref<string>("1");
class="text-grey"
active-color="blue"
indicator-color="white"
align="justify"
align="left"
narrow-indicator
bordered
>

View file

@ -24,12 +24,12 @@ const itemsTab = ref<any>([
},
{
name: "3",
icon: "mail",
icon: "mdi-cash",
label: "ข้อมูลเงินเดือน/ค่าจ้าง",
},
{
name: "4",
icon: "mdi-cash",
icon: "mdi-medal",
label: "ข้อมูลผลงานและเครื่องราชฯ",
},
{
@ -46,6 +46,7 @@ const splitterModel = ref<number>(12);
<template v-slot:before>
<q-tabs v-model="store.tabMain" vertical class="text-blue">
<q-tab
class="hover-tab"
v-for="(tab, index) in itemsTab"
:key="index"
:name="tab.name"
@ -80,4 +81,10 @@ const splitterModel = ref<number>(12);
</q-splitter>
</template>
<style scoped></style>
<style scoped>
.hover-tab:hover {
background-color: #0793f1;
color: white !important;
opacity: 1 !important;
}
</style>

View file

@ -1,4 +1,3 @@
const mainPage = () => import("@/modules/04_registryNew/views/main.vue");
const listPage = () => import("@/modules/04_registryNew/views/list.vue");
const detailPage = () =>
import("@/modules/04_registryNew/views/detailView.vue");

View file

@ -1,9 +1,70 @@
<script setup lang="ts">
import { useRouter } from "vue-router";
import { ref, onMounted } from "vue";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import type { DataOption } from "@/modules/04_registryNew/interface/index/Main";
import type { DataPerson } from "@/modules/04_registryNew/interface/response/Main";
import TabMain from "@/modules/04_registryNew/components/detail/TabMain.vue";
const router = useRouter();
const route = useRoute();
const profileId = ref<string>(route.params.id.toString());
const formDetail = ref<DataPerson>();
const itemsMenu = ref<DataOption[]>([
{
id: "1",
name: "ช่วยราชการ",
},
{
id: "2",
name: "ส่งตัวกลับ",
},
{
id: "3",
name: "แต่งตั้ง-เลื่อน-ย้าย",
},
{
id: "4",
name: "ถึงแก่กรรม",
},
{
id: "5",
name: "ให้ออกจากราชการ",
},
{
id: "6",
name: "อื่นๆ",
},
]);
function fetchDataPersonal() {
const data = {
id: "1526d9d3-d8b1-43ab-81b5-a84dfbe99201",
prefix: "นาย",
firstName: "ณัฐพงศ์",
lastName: "ดิษยบุตร",
citizenId: "0000000000001",
position: "นักบริหาร",
posLevelId: "1526d9d3-d8b1-43ab-81b5-a84dfbe09362",
posTypeId: "1526d9d3-d8b1-43ab-81b5-a84dfbe08091",
};
formDetail.value = data;
}
function onClickDownloadKp7(type: string) {
if (type === "FULL") {
window.open(config.API.profileReportId(profileId.value));
} else if (type === "SHORT") {
window.open(config.API.profileKp7ShortId(profileId.value));
}
}
onMounted(() => {
fetchDataPersonal();
});
</script>
<template>
<div class="row items-center q-gutter-sm">
@ -30,49 +91,53 @@ const router = useRouter();
icon="mdi-home-export-outline"
dropdown-icon="mdi-chevron-down"
>
<q-list>
<q-list v-for="(item, index) in itemsMenu" key="index">
<q-item clickable v-close-popup>
<q-item-section avatar>
<q-avatar icon="folder" color="primary" text-color="white" />
</q-item-section>
<q-item-section>
<q-item-label>Photos</q-item-label>
<q-item-label caption>February 22, 2016</q-item-label>
</q-item-section>
<q-item-section side>
<q-icon name="info" color="amber" />
</q-item-section>
</q-item>
<q-item clickable v-close-popup>
<q-item-section avatar>
<q-avatar icon="assignment" color="secondary" text-color="white" />
</q-item-section>
<q-item-section>
<q-item-label>Vacation</q-item-label>
<q-item-label caption>February 22, 2016</q-item-label>
</q-item-section>
<q-item-section side>
<q-icon name="info" color="amber" />
</q-item-section>
<q-item-section>{{ item.name }}</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
<q-btn
unelevated
round
color="grey-4"
text-color="primary"
icon="mdi-file-eye-outline"
/>
>
<q-tooltip>ดาวนไฟล</q-tooltip>
<q-menu>
<q-list style="min-width: 120px">
<q-item clickable v-close-popup @click="onClickDownloadKp7('FULL')">
<q-item-section class="text-blue">..7/..1</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="onClickDownloadKp7('SHORT')">
<q-item-section class="text-primary">ประวแบบย</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</div>
<q-card>
<div class="column" style="height: 150px; position: relative">
<div class="col justify-center"></div>
<div class="column" style="height: 170px">
<div class="col row items-center">
<div class="row col-12">
<div class="col-sm-3 col-md-2"></div>
<div class="col">
<div class="col-12 text-primary" style="font-size: 20px">
{{
`${formDetail?.prefix}${formDetail?.firstName} ${formDetail?.lastName}`
}}
</div>
<div class="col-12">{{ formDetail?.position }}</div>
</div>
</div>
</div>
<div class="absolute-center-left q-ml-lg">
<q-avatar size="130px">
<img src="https://cdn.quasar.dev/img/avatar2.jpg" />
<img src="@/assets/avatar_user.jpg" />
</q-avatar>
<q-btn
round
@ -82,7 +147,30 @@ const router = useRouter();
style="position: absolute; bottom: 0; right: 0"
/>
</div>
<div class="col bg-teal-2"></div>
<div class="col row items-center bg-teal-1">
<div class="row col-12">
<div class="col-sm-3 col-md-2"></div>
<div class="col-2">
<div class="col-sm-3 col-md-3">
<div class="col text-grey-5">ตำแหนงในสายงาน</div>
<div class="col">วหนาสำนกงาน</div>
</div>
</div>
<div class="col-2">
<div class="col-sm-3 col-md-3">
<div class="col text-grey-5">ประเภทตำแหน</div>
<div class="col">บรหาร</div>
</div>
</div>
<div class="col-2">
<div class="col-sm-3 col-md-3">
<div class="col text-grey-5">ระดบตำแหนงง</div>
<div class="col">สำนาญการพเศษ</div>
</div>
</div>
</div>
</div>
</div>
</q-card>

View file

@ -141,6 +141,13 @@ function onClickShowFilter() {
}
function onclickSearch() {
isShowFilter.value = true;
isShowBtnFilter.value = false;
if (isShowFilter.value) {
fetchType();
fetchLevel();
fetchYearOption();
}
formFilter.keyword = formFilter.keyword === null ? "" : formFilter.keyword;
fetchDataPerson();
}

View file

@ -1,12 +0,0 @@
<script setup lang="ts">
import Registry from "@/modules/04_registryNew/components/registry/registry.vue";
</script>
<template>
<div class="toptitle text-dark col-12 row items-center">
อมลทะเบยนประว
</div>
<q-card flat bordered class="q-pa-md"> <Registry /> </q-card>
</template>
<style scoped></style>

View file

@ -416,7 +416,7 @@ const saveEdiitReport = (reason: string) => {
})
.finally(() => {
fecthlistprofile(retireld.value);
closemodalEditReport();
modalEdit.value = false;
});
},
"ยืนยันการแก้ไขข้อมูล",
@ -429,11 +429,6 @@ const openmodalEditReport = () => {
modalEdit.value = true;
};
// popup
const closemodalEditReport = () => {
modalEdit.value = false;
};
/** Setting Pagination */
const paging = ref<boolean>(true);
const pagination = ref({
@ -876,10 +871,9 @@ function updatemodalPersonal(modal: boolean) {
</q-dialog>
<DialogPopupReason
:modal="modalEdit"
v-model:modal="modalEdit"
title="แก้ไขมติ อ.ก.ก."
label="มติ อ.ก.ก."
:click-close="closemodalEditReport"
:savaForm="saveEdiitReport"
:textReport="textReport"
/>

View file

@ -479,11 +479,6 @@ function clickReject(id: string) {
rowid.value = id;
}
/** function closePopup ไม่ยืนขอ*/
function closemodelPopupReject() {
modelPopupReject.value = false;
}
/**
* function นยนการไมนขอ
* @param reason หมายเหต
@ -520,7 +515,7 @@ async function listreject(profileId: string, reason: string) {
props.tab
);
}
await closemodelPopupReject();
modelPopupReject.value = await false;
});
}
@ -1375,10 +1370,9 @@ onMounted(async () => {
<!-- popup เหตผลไมนขอ -->
<DialogPopupReason
:modal="modelPopupReject"
v-model:modal="modelPopupReject"
title="เหตุผลการไม่ยื่นขอ"
label="หมายเหตุ"
:click-close="closemodelPopupReject"
:savaForm="savaReasonReject"
/>
<!-- เหตผลทลบออก -->

View file

@ -233,20 +233,12 @@ async function sendToDirector() {
async function popupBackToEdit() {
modalPopupBackToEdit.value = true;
}
/** function close popup แก้ไข*/
async function closeModalPopupBackToEdit() {
modalPopupBackToEdit.value = false;
}
const modalbackInsignia2Role = ref<boolean>(false);
/**function open popup ตีกลับ admin*/
const popupBackToInsignia2Role = async () => {
modalbackInsignia2Role.value = true;
};
/**function close popup ตีกลับ admin*/
const closepopupBackToInsignia2Role = async () => {
modalbackInsignia2Role.value = false;
};
/**
* funtion นยนการ กลบรอบการเสนอขอ เฉพาะ รอบท requestStatus st3 และ insignia2Role
@ -277,7 +269,7 @@ async function backToEdit(reason: string) {
messageError($q, err);
})
.finally(() => {
closeModalPopupBackToEdit();
modalPopupBackToEdit.value = false;
hideLoader();
});
},
@ -339,7 +331,7 @@ async function backToEditinsignia2Role(reason: string) {
messageError($q, err);
})
.finally(() => {
closepopupBackToInsignia2Role();
modalbackInsignia2Role.value = false;
});
});
}
@ -660,17 +652,15 @@ onMounted(async () => {
<!-- popup หมายเหต -->
<DialogPopupReason
:modal="modalPopupBackToEdit"
v-model:modal="modalPopupBackToEdit"
title="หมายเหตุการตีกลับ"
label="หมายเหตุ"
:click-close="closeModalPopupBackToEdit"
:savaForm="backToEdit"
/>
<DialogPopupReason
:modal="modalbackInsignia2Role"
v-model:modal="modalbackInsignia2Role"
title="หมายเหตุการตีกลับ"
label="หมายเหตุ"
:click-close="closepopupBackToInsignia2Role"
:savaForm="backToEditinsignia2Role"
/>
</q-card>

View file

@ -211,11 +211,6 @@ function clickClose() {
modal.value = false;
}
/** function closePopupNote*/
function clickCloseNote() {
addNote.value = false;
}
/** function openPopupAdd*/
function clickAdd() {
modal.value = true;
@ -499,10 +494,9 @@ const resetFilter2 = () => {
</q-card>
</q-dialog>
<DialogPopupReason
:modal="addNote"
v-model:modal="addNote"
title="คืนเครื่องราชฯ"
label="กรอกเหตุผลที่ต้องการคืนเครื่องราชฯ"
:click-close="clickCloseNote"
:savaForm="saveNote"
/>
</template>

View file

@ -51,9 +51,6 @@ const typePdf = ref<string>("pdf");
const dialogTitleUnapprove = ref<string>("ไม่อนุมัติ");
const dialogTitle = ref<string>("อนุมัติ");
const dialogLabel = ref<string>("เหตุผล");
const closeDialog = () => {
modalApprove.value = false;
};
/**
* consolelog ไวอน
@ -816,10 +813,9 @@ function formattedNumber(x: number) {
</div>
</q-card>
<DialogReason
:modal="modalApprove"
v-model:modal="modalApprove"
:title="dialogTitle"
:label="dialogLabel"
:click-close="closeDialog"
:savaForm="clickSave"
/>
</template>

View file

@ -52,9 +52,6 @@ const typePdf = ref<string>("pdf");
const modalApprove = ref(false);
const dialogTitleUnapprove = ref<string>("ไม่อนุมัติ");
const dialogTitle = ref<string>("อนุมัติ");
const closeDialog = () => {
modalApprove.value = false;
};
/**
* consolelog ไวอน
@ -755,9 +752,8 @@ async function onClickDownloadFile(id: string, fileName: string, type: string) {
</div>
</q-card>
<DialogReason
:modal="modalApprove"
v-model:modal="modalApprove"
:title="dialogTitle"
:click-close="closeDialog"
label="เหตุผล"
:savaForm="clickSave"
/>

View file

@ -89,7 +89,7 @@ interface FremData {
coupleDaySumTotalHistory: string; //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
approveStep: string;
dear: string;
leaveRange: string;
leaveRange?: string;
}
export type { ListsData, FremData, QuerySting, DateFilter };

View file

@ -363,10 +363,9 @@ const monthYearThai = (val: any) => {
</q-card>
<DialogReason
:modal="modalUnapprove"
v-model:modal="modalUnapprove"
:title="dialogTitle"
:desc="dialogDesc"
:click-close="closeDialog"
label="เหตุผล"
:savaForm="clickSave"
/>

View file

@ -47,50 +47,77 @@ async function uploadFile(event: any) {
);
}
function sendToDirector() {}
function saveReccommend() {
dialogConfirm(
$q,
async () => {
sendStep.value = sendStep.value + 1;
modalRecommend.value = false;
},
"ยืนยันการ" + titleRecommend.value,
"ต้องการยืนยันการ" + titleRecommend.value + "หรือไม่?"
);
}
function sendToDirector(msg: string) {
dialogConfirm(
$q,
async () => {
sendStep.value = sendStep.value == 3 ? 6 : sendStep.value + 1;
},
"ยืนยันการ" + msg,
"ต้องการยืนยันการ" + msg + "หรือไม่?"
);
}
const modalRecommend = ref<boolean>(false);
const titleRecommend = ref<string>("");
function sendAndRecommend(title: string) {
modalRecommend.value = true;
titleRecommend.value = title;
}
</script>
<template>
<div class="row col-12 q-pa-md">
<q-toolbar class="text-primary">
<div>
<q-file
v-if="sendStep == 1"
bg-color="white"
clearable
outlined
dense
v-model="fileUpload"
accept=".pdf"
label="อัปโหลดไฟล์"
>
<template v-slot:prepend>
<q-icon color="light-blue" name="attach_file" />
<q-tooltip>ปโหลดไฟล</q-tooltip>
</template>
</q-file>
<q-toolbar>
<q-file
v-if="sendStep == 1"
bg-color="white"
clearable
outlined
dense
v-model="fileUpload"
accept=".pdf"
label="อัปโหลดไฟล์"
>
<template v-slot:prepend>
<q-icon color="light-blue" name="attach_file" />
<q-tooltip>ปโหลดไฟล</q-tooltip>
</template>
</q-file>
<q-btn
flat
color="light-blue"
icon="upload"
@click="uploadFile(fileUpload)"
v-if="fileUpload !== null"
/>
<div v-if="document">
<q-btn
flat
color="light-blue"
icon="upload"
@click="uploadFile(fileUpload)"
v-if="fileUpload !== null"
/>
<div v-if="document">
<q-btn
dense
color="primary"
icon-right="mdi-download"
label="ดาวน์โหลดไฟล์"
outline
:href="document"
target="_blank"
>
<q-tooltip>ดาวนโหลด</q-tooltip></q-btn
>
</div>
dense
color="primary"
icon-right="mdi-download"
label="ดาวน์โหลดไฟล์"
outline
:href="document"
target="_blank"
>
<q-tooltip>ดาวนโหลด</q-tooltip></q-btn
>
</div>
<q-toolbar-title>
<!-- Toolbar -->
</q-toolbar-title>
@ -101,7 +128,7 @@ function sendToDirector() {}
unelevated
color="public"
label="ส่งเอกสารให้ ผอ. ตรวจสอบ"
@click="sendToDirector()"
@click="sendToDirector('ส่งเอกสารให้ ผอ. ตรวจสอบ')"
/>
<!-- ผอ. หนวยงานทำการยนยนและสงให สกจ. -->
@ -110,37 +137,53 @@ function sendToDirector() {}
unelevated
color="public"
label="ยืนยันและส่งเอกสารให้ สกจ."
@click="sendToDirector()"
@click="sendToDirector('ยืนยันและส่งเอกสารให้ สกจ.')"
/>
<!-- สกจ. ตรวจสอบเอกสารและขอมลรายการเงนเดอนทแตละหนวยงานสงมา ไมปรบโควต -->
<q-btn
v-if="sendStep == 3"
unelevated
color="public"
color="green"
label="ยืนยันการตรวจสอบ"
@click="sendToDirector()"
@click="sendToDirector('ยืนยันการตรวจสอบ')"
/>
<!-- สกจ. ตรวจสอบเอกสารและขอมลรายการเงนเดอนทแตละหนวยงานสงมา ปรบโควต -->
<q-btn
v-if="sendStep == 4"
v-if="sendStep == 3"
class="q-ml-sm"
unelevated
color="public"
color="warning"
label="ส่งคำแนะนำให้ ผอ. ตรวจสอบ"
@click="sendToDirector()"
@click="sendAndRecommend('ส่งคำแนะนำให้ ผอ. ตรวจสอบ')"
/>
<!-- ผอ.หนวยงานสงคำแนะนำใหการเจาหนาทหนวยงาน -->
<q-btn
v-if="sendStep == 5"
v-if="sendStep == 4"
unelevated
color="public"
label="ส่งคำแนะนำให้การเจ้าหน้าที่หน่วยงาน"
@click="sendToDirector()"
@click="sendAndRecommend('ส่งคำแนะนำให้ ผอ. ตรวจสอบ')"
/>
<q-btn
v-if="sendStep > 4"
unelevated
color="public"
label="ส่งไปออกคำสั่ง"
/>
</div>
</q-toolbar>
<DialogPopupReason
v-model:modal="modalRecommend"
:title="titleRecommend"
label="คำแนะนำ"
:savaForm="saveReccommend"
textReport=""
/>
</div>
</template>