fix:: แก้เส้น API รายงานสถิติการลงเวลา

This commit is contained in:
setthawutttty 2025-08-26 10:48:38 +07:00
parent 26ee98f48f
commit 3f627856a1
2 changed files with 91 additions and 3 deletions

View file

@ -55,6 +55,7 @@ export default {
leaveReportLeave2: (type: string) => `${leaveReport}/leave2/${type}`,
addApproverByType:(type:string,profileType:string,id:string)=>`${leave}/${profileType}/add-approver/${type}/${id}`,
sendApprove:(id:string)=>`${leave}/admin/approve/officer/${id}`
sendApprove:(id:string)=>`${leave}/admin/approve/officer/${id}`,
leaveReportAPI:(type:string)=>`${leave}/report/download/time-records/${type}`
};

View file

@ -30,7 +30,7 @@ const $q = useQuasar();
const route = useRoute();
const { fetchStructureTree } = useStructureTree();
const { date2Thai, dateToISO, messageError, monthYear2Thai } =
const { date2Thai, dateToISO, messageError, monthYear2Thai,showLoader,hideLoader } =
useCounterMixin();
const year = ref<number>(new Date().getFullYear());
@ -395,6 +395,68 @@ function formatWeekDisplay(week: Date[]) {
}
}
const isLoad = ref<boolean>(false);
/**
*
* @param isName อไฟล
* @param fileType pdf/xlsx
*/
function getReport(isName: string) {
showLoader()
const body = {
type:
leaveType.value === "FULL"
? "FULL"
: leaveType.value === "MONTH"
? "MONTH"
: leaveType.value == "HAFT"
? "HAFT"
: leaveType.value == "DAY"
? "DAY"
: "WEEKLY",
startDate: dateToISO(dateStart.value),
endDate: dateToISO(dateEnd.value),
nodeId: nodeId.value,
node: nodeLevel.value,
};
http
.post(config.API.leaveReportAPI(employeeClass.value), body, {
headers: {
accept:
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"content-Type": "application/json",
},
responseType: "blob",
})
.then((res) => {
const data = res.data;
if (data) {
// Blob array buffer
const blob = new Blob([data]);
// URL Blob
const url = URL.createObjectURL(blob);
//
const link = document.createElement("a");
link.href = url;
link.download = `${isName}.xlsx`; //
document.body.appendChild(link);
link.click();
// URL
URL.revokeObjectURL(url);
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader()
});
}
onMounted(() => {
fetchDataTree();
});
@ -440,7 +502,7 @@ onMounted(() => {
round
color="primary"
icon="download"
v-if="checkPermission($route)?.attrIsGet"
v-if="checkPermission($route)?.attrIsGet && typeReport !== '3'"
>
<q-menu>
<q-list style="min-width: 150px">
@ -502,6 +564,24 @@ onMounted(() => {
</q-list>
</q-menu>
</q-btn>
<q-btn
:disable="!nodeId"
flat
round
color="primary"
icon="download"
v-if="checkPermission($route)?.attrIsGet && typeReport == '3'"
@click="
getReport(
`${`รายงานการลางาน จำแนกตามเพศ ประเภทการลา หน่วยงาน/ส่วนราชการ (${
employeeClass === 'officer'
? 'ข้าราชการ กทม. สามัญ'
: 'ลูกจ้างประจำ กทม.'
})`}`
)
"
>
</q-btn>
</div>
</div>
</q-card>
@ -921,6 +1001,7 @@ onMounted(() => {
<q-separator />
<q-card-actions align="right">
<q-btn
v-if="typeReport !== '3'"
dense
class="q-px-md"
label="ค้นหา"
@ -940,6 +1021,7 @@ onMounted(() => {
</div>
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-12 col-xs-12 flex">
<q-splitter
v-if="typeReport !== '3'"
disable
v-model="splitterModel"
horizontal
@ -1034,6 +1116,11 @@ onMounted(() => {
</div>
</template>
</q-splitter>
<q-banner class="q-pa-lg text-center full-width" v-else>
<q-icon name="info" size="lg" color="info" />
<p class="text-grey-9 q-pt-sm">รายงานการเขางานไม พร</p>
</q-banner>
</div>
</div>
</q-card>