Merge branch 'develop' into dev

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2026-05-01 16:35:38 +07:00
commit dc71d0bb59
3 changed files with 55 additions and 39 deletions

View file

@ -96,4 +96,8 @@ export default {
applicationFormPDF: (candidateId: string) => applicationFormPDF: (candidateId: string) =>
`${env.API_URI}/placement/candidate/pdf/${candidateId}`, `${env.API_URI}/placement/candidate/pdf/${candidateId}`,
downloadCandidateExam: (id: string) =>
`${periodExam}download/candidate-exam/${id}`,
downloadPassExam: (id: string) => `${periodExam}download/pass-exam/${id}`,
}; };

View file

@ -365,7 +365,7 @@ async function downloadFileDashboard() {
async function clickPassExam() { async function clickPassExam() {
showLoader(); showLoader();
await http await http
.get(config.API.exportExamPassExamList(examId.value)) .get(config.API.downloadPassExam(examId.value))
.then(async (res) => { .then(async (res) => {
const data = res.data.result; const data = res.data.result;
data.reportName = `Candidate_Dashboard_${dateToISO(new Date())}`; data.reportName = `Candidate_Dashboard_${dateToISO(new Date())}`;
@ -382,7 +382,7 @@ async function clickPassExam() {
async function clickCandidateList() { async function clickCandidateList() {
showLoader(); showLoader();
await http await http
.get(config.API.exportExamCandidateList(examId.value)) .get(config.API.downloadCandidateExam(examId.value))
.then(async (res) => { .then(async (res) => {
const data = res.data.result; const data = res.data.result;
data.reportName = `Candidate_Dashboard_${dateToISO(new Date())}`; data.reportName = `Candidate_Dashboard_${dateToISO(new Date())}`;

View file

@ -10,6 +10,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useLeaveHistoryDataStore } from "@/modules/09_leave/stores/LeaveHistoryStore"; import { useLeaveHistoryDataStore } from "@/modules/09_leave/stores/LeaveHistoryStore";
import { calculateFiscalYear } from "@/utils/function"; import { calculateFiscalYear } from "@/utils/function";
import { usePagination } from "@/composables/usePagination"; import { usePagination } from "@/composables/usePagination";
import { checkPermission } from "@/utils/permissions";
import type { QTableColumn } from "quasar"; import type { QTableColumn } from "quasar";
import type { DataOption } from "@/modules/09_leave/interface/index/Main"; import type { DataOption } from "@/modules/09_leave/interface/index/Main";
@ -104,20 +105,24 @@ async function onSubmit() {
leaveTypeId: formData.leaveTypeId, leaveTypeId: formData.leaveTypeId,
leaveYear: formData.leaveYear, leaveYear: formData.leaveYear,
leaveDays: formData.leaveDays ? Number(formData.leaveDays) : 0, leaveDays: formData.leaveDays ? Number(formData.leaveDays) : 0,
leaveDaysUsed: formData.leaveDaysUsed leaveDaysUsed:
? Number(formData.leaveDaysUsed) checkPermission(route)?.attrOwnership === "OWNER"
: 0,
leaveCount: formData.leaveCount ? Number(formData.leaveCount) : 0,
beginningLeaveDays: !isStatusEdit.value
? formData.leaveDaysUsed ? formData.leaveDaysUsed
? Number(formData.leaveDaysUsed) ? Number(formData.leaveDaysUsed)
: 0 : 0
: undefined, : undefined,
beginningLeaveCount: !isStatusEdit.value leaveCount:
checkPermission(route)?.attrOwnership === "OWNER"
? formData.leaveCount ? formData.leaveCount
? Number(formData.leaveCount) ? Number(formData.leaveCount)
: 0 : 0
: undefined, : undefined,
beginningLeaveDays: formData.beginningLeaveDays
? Number(formData.beginningLeaveDays)
: 0,
beginningLeaveCount: formData.beginningLeaveCount
? Number(formData.beginningLeaveCount)
: 0,
}) })
.then(async () => { .then(async () => {
@ -470,30 +475,8 @@ watch(modal, async (val) => {
:rules="[(val: string) => !val || /^\d+(\.\d*)?$/.test(val) || 'กรุณากรอกเฉพาะตัวเลข']" :rules="[(val: string) => !val || /^\d+(\.\d*)?$/.test(val) || 'กรุณากรอกเฉพาะตัวเลข']"
/> />
</div> </div>
<div class="col-12">
<q-input
:class="classInput(true)"
v-model="formData.leaveDaysUsed"
dense
outlined
label="ที่ใช้ไป (วัน)"
hide-bottom-space
:rules="[(val: string) => !val || /^\d+(\.\d*)?$/.test(val) || 'กรุณากรอกเฉพาะตัวเลข']"
/>
</div>
<div class="col-12">
<q-input
:class="classInput(true)"
v-model="formData.leaveCount"
dense
outlined
label="ที่ใช้ไป (ครั้ง)"
hide-bottom-space
:rules="[(val: string) => !val || /^\d+$/.test(val) || 'กรุณากรอกเฉพาะตัวเลขที่เป็นจำนวนเต็ม']"
/>
</div>
<!-- <div class="col-12"> <div class="col-12">
<q-input <q-input
:class="classInput(true)" :class="classInput(true)"
v-model="formData.beginningLeaveDays" v-model="formData.beginningLeaveDays"
@ -515,7 +498,36 @@ watch(modal, async (val) => {
:rules="[(val: string) => !val || /^\d+$/.test(val) || 'กรุณากรอกเฉพาะตัวเลขที่เป็นจำนวนเต็ม']" :rules="[(val: string) => !val || /^\d+$/.test(val) || 'กรุณากรอกเฉพาะตัวเลขที่เป็นจำนวนเต็ม']"
hint="* จำนวนครั้งของการลาในปีงบประมาณนี้ที่เกิดขึ้นก่อนเริ่มใช้ระบบ" hint="* จำนวนครั้งของการลาในปีงบประมาณนี้ที่เกิดขึ้นก่อนเริ่มใช้ระบบ"
/> />
</div> --> </div>
<div
v-if="checkPermission(route)?.attrOwnership === 'OWNER'"
class="col-12"
>
<q-input
:class="classInput(true)"
v-model="formData.leaveDaysUsed"
dense
outlined
label="ที่ใช้ไปทั้งหมด (วัน)"
hide-bottom-space
:rules="[(val: string) => !val || /^\d+(\.\d*)?$/.test(val) || 'กรุณากรอกเฉพาะตัวเลข']"
/>
</div>
<div
v-if="checkPermission(route)?.attrOwnership === 'OWNER'"
class="col-12"
>
<q-input
:class="classInput(true)"
v-model="formData.leaveCount"
dense
outlined
label="ที่ใช้ไปทั้งหมด (ครั้ง)"
hide-bottom-space
:rules="[(val: string) => !val || /^\d+$/.test(val) || 'กรุณากรอกเฉพาะตัวเลขที่เป็นจำนวนเต็ม']"
/>
</div>
</div> </div>
</div> </div>
</div> </div>