รายงานทะเบียนประวัติ

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2025-02-24 13:51:03 +07:00
parent 1c645bc42e
commit eb992eefd1
2 changed files with 58 additions and 10 deletions

View file

@ -780,9 +780,7 @@ onMounted(async () => {
</q-btn-dropdown> </q-btn-dropdown>
</div> </div>
<div class="row justify-center"> <div class="row justify-center">
<a href="/report/registry" class="text-white" target="_blank"> <a href="/report/registry" class="text-white"> Advanced search </a>
Advanced search
</a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -24,6 +24,7 @@ import type {
} from "@/modules/21_report/interface/Main"; } from "@/modules/21_report/interface/Main";
import DialogOrg from "@/modules/21_report/components/01_org/DialogOrg.vue"; import DialogOrg from "@/modules/21_report/components/01_org/DialogOrg.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
const $q = useQuasar(); const $q = useQuasar();
const route = useRoute(); const route = useRoute();
@ -89,12 +90,13 @@ const org = ref<string>("");
const isProbation = ref<boolean>(false); const isProbation = ref<boolean>(false);
const isRetire = ref<boolean>(false); const isRetire = ref<boolean>(false);
const isRetireLaw = ref<boolean>(false);
const pagination = ref<any>({ const pagination = ref<any>({
sortBy: "dateAppoint", sortBy: "dateAppoint",
descending: true, descending: true,
page: 1, page: 1,
rowsPerPage: 19, rowsPerPage: 20,
}); });
const sortBy = ref<string>("DESC"); const sortBy = ref<string>("DESC");
const retireType = ref<string>(""); const retireType = ref<string>("");
@ -377,9 +379,7 @@ function updateLevel(val: string) {
} }
} }
/** /** ฟังก์เรียกข้อมูลรายการประเภทตำแหน่ง*/
* งกเรยกขอมลรายการประเภทตำแหน
*/
async function getType() { async function getType() {
posType.value = ""; posType.value = "";
posLevel.value = ""; posLevel.value = "";
@ -497,6 +497,7 @@ async function onSearch() {
retireType: retireType.value, retireType: retireType.value,
sortBy: sortBy.value ? "dateAppoint" : "", sortBy: sortBy.value ? "dateAppoint" : "",
sort: sortBy.value ? sortBy.value : "ASC", sort: sortBy.value ? sortBy.value : "ASC",
isRetireLaw: isRetireLaw.value,
}; };
showLoader(); showLoader();
await http await http
@ -510,6 +511,7 @@ async function onSearch() {
const data = res.data.result.data; const data = res.data.result.data;
total.value = res.data.result.total; total.value = res.data.result.total;
rows.value = data.map((item: any, index: number) => ({ rows.value = data.map((item: any, index: number) => ({
profileId: item.profileId,
no: index + 1, no: index + 1,
fullName: item.firstName fullName: item.firstName
? `${item.prefix ?? ""}${item.firstName ?? ""} ${item.lastName ?? ""}` ? `${item.prefix ?? ""}${item.firstName ?? ""} ${item.lastName ?? ""}`
@ -528,6 +530,7 @@ async function onSearch() {
age: item.age ?? "-", age: item.age ?? "-",
currentPosition: item.currentPosition ?? "-", currentPosition: item.currentPosition ?? "-",
lengthPosition: item.lengthPosition ?? "-", lengthPosition: item.lengthPosition ?? "-",
empType: employeeClass.value,
})); }));
}) })
.catch((e) => { .catch((e) => {
@ -544,7 +547,7 @@ async function onSearch() {
function exportToExcel() { function exportToExcel() {
const newData = rows.value.map((e: any) => { const newData = rows.value.map((e: any) => {
const { dateAppointFull, ...rest } = e; const { dateAppointFull, profileId, empType, ...rest } = e;
return rest; return rest;
}); });
@ -625,11 +628,26 @@ function updateSelectedTreeMain(data: any) {
org.value = data.orgName; org.value = data.orgName;
storeReport.formFilter.node = data.orgLevel; storeReport.formFilter.node = data.orgLevel;
storeReport.formFilter.nodeId = data.orgTreeId; storeReport.formFilter.nodeId = data.orgTreeId;
expandedModal.value = false expandedModal.value = false;
}
const personId = ref<string>("");
const empType = ref<string>("");
const modalPersonal = ref<boolean>(false);
function onViewInfo(id: string, type: string) {
personId.value = id;
empType.value = type;
modalPersonal.value = true;
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
} }
onMounted(async () => { onMounted(async () => {
showLoader(); showLoader();
storeReport.formFilter.node = null;
storeReport.formFilter.nodeId = "";
Promise.all([ Promise.all([
getType(), getType(),
getOptions(), getOptions(),
@ -799,7 +817,7 @@ onMounted(async () => {
autogrow autogrow
borderless borderless
label="สังกัด" label="สังกัด"
class="bg-white full-width " class="bg-white full-width"
> >
<template v-if="org" v-slot:append> <template v-if="org" v-slot:append>
<q-icon <q-icon
@ -1310,6 +1328,14 @@ onMounted(async () => {
<q-space /> <q-space />
<q-toggle v-model="isProbation" size="sm" /> <q-toggle v-model="isProbation" size="sm" />
</div> </div>
<div class="col-12 row q-pl-sm items-center no-wrap">
<div class="text-grey-8">
แสดงผเกษยณอายราชการในปงบประมาณปจจ
</div>
<q-space />
<q-toggle v-model="isRetireLaw" size="sm" />
</div>
<div class="col-12 row q-pl-sm items-center"> <div class="col-12 row q-pl-sm items-center">
<div class="text-grey-8">แสดงผนจากราชการ</div> <div class="text-grey-8">แสดงผนจากราชการ</div>
<q-space /> <q-space />
@ -1356,6 +1382,7 @@ onMounted(async () => {
</template> </template>
</q-select> </q-select>
</div> </div>
<div class="col-12"> <div class="col-12">
<!-- <q-btn-dropdown <!-- <q-btn-dropdown
:label=" :label="
@ -1505,6 +1532,22 @@ onMounted(async () => {
<div v-if="col.name === 'no'"> <div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</div> </div>
<div v-else-if="col.name === 'fullName'">
{{ col.value }}
<q-btn
size="sm"
v-if="checkPermission($route)?.attrIsGet"
flat
dense
icon="info"
color="info"
@click.pervent="
onViewInfo(props.row.profileId, props.row.empType)
"
>
<q-tooltip>ทะเบยนประว</q-tooltip>
</q-btn>
</div>
<div v-else class="table_ellipsis"> <div v-else class="table_ellipsis">
{{ col.value ? col.value : "-" }} {{ col.value ? col.value : "-" }}
</div> </div>
@ -1521,6 +1564,13 @@ onMounted(async () => {
</div> </div>
<DialogOrg v-model:modal="modalOrg" v-model:name="org" /> <DialogOrg v-model:modal="modalOrg" v-model:name="org" />
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
:type="empType"
/>
</template> </template>
<style lang="scss" scope> <style lang="scss" scope>