From 16b5ce734d2127c93683f638c239128c8662fa88 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Mon, 16 Oct 2023 16:28:50 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=A2=E0=B8=B7=E0=B8=99=E0=B8=A2=E0=B8=B1?= =?UTF-8?q?=E0=B8=99=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=A7=E0=B8=B1=E0=B8=95?= =?UTF-8?q?=E0=B8=B4=E0=B8=97=E0=B8=B3=E0=B8=87=E0=B8=B2=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TableView.vue | 2 +- src/modules/01_exam/components/ExamForm.vue | 155 +++++++++--------- .../01_exam/components/Form/Career.vue | 8 +- src/modules/01_exam/interface/index/Main.ts | 3 + 4 files changed, 91 insertions(+), 77 deletions(-) diff --git a/src/components/TableView.vue b/src/components/TableView.vue index 53d363c..ffcfcc0 100644 --- a/src/components/TableView.vue +++ b/src/components/TableView.vue @@ -368,7 +368,7 @@ const updateVisible = (value: any) => { } const paginationLabel = (start: string, end: string, total: string) => { - if (props.paging == true) return ' ' + start + ' ใน ' + end + ' จากจำนวน ' + total + ' รายการ' + if (props.paging == true) return ' ' + start + ' ถึง ' + end + ' จากจำนวน ' + total + ' รายการ' else return start + '-' + end + ' ใน ' + total } diff --git a/src/modules/01_exam/components/ExamForm.vue b/src/modules/01_exam/components/ExamForm.vue index 96c5593..f705bd2 100644 --- a/src/modules/01_exam/components/ExamForm.vue +++ b/src/modules/01_exam/components/ExamForm.vue @@ -130,7 +130,8 @@ import { defaultOccupation, defaultAddress, defaultEducation, - defaultContact + defaultContact, + defaultCareer } from '@/modules/01_exam/interface/index/Main' import Profile from '@/modules/01_exam/components/Form/Profile.vue' @@ -250,81 +251,85 @@ const saveData = async () => { if (suc) { await formOccupation.value.validate().then(async (suc: boolean) => { if (suc) { - await formContact.value.validate().then(async (suc: boolean) => { - if (suc) { - loaderPage(true) - await http - .post(config.API.candidateId(examId.value, positionId.value), { - prefixId: defaultInformation.value.prefixId, - prefixName: defaultInformation.value.prefixId, - lastName: defaultInformation.value.lastname, - dateOfBirth: - defaultInformation.value.birthDate == null - ? null - : dateToISO(defaultInformation.value.birthDate), - citizenId: defaultInformation.value.cardid, - firstName: defaultInformation.value.firstname, - religionId: defaultInformation.value.religionId, - nationality: defaultInformation.value.nationality, - email: defaultInformation.value.email, - mobilePhone: defaultInformation.value.phone, - telephone: defaultInformation.value.tel, - knowledge: defaultInformation.value.knowledge, - occupationOrg: defaultOccupation.value.org, - occupationPile: defaultOccupation.value.pile, - occupationGroup: defaultOccupation.value.group, - occupationSalary: defaultOccupation.value.salary, - occupationPosition: defaultOccupation.value.position, - occupationPositionType: defaultOccupation.value.positionType, - occupationTelephone: defaultOccupation.value.tel, - registAddress: defaultAddress.value.address, - currentAddress: defaultAddress.value.addressC, - registProvinceId: defaultAddress.value.provinceId, - currentProvinceId: defaultAddress.value.provinceIdC, - registDistrictId: defaultAddress.value.districtId, - currentDistrictId: defaultAddress.value.districtIdC, - registSubDistrictId: defaultAddress.value.subdistrictId, - currentSubDistrictId: defaultAddress.value.subdistrictIdC, - registZipCode: defaultAddress.value.code, - currentZipCode: defaultAddress.value.codeC, - registSame: - defaultAddress.value.same == '1' - ? true - : defaultAddress.value.same == '0' - ? false - : null, - educationLevelExamId: defaultEducation.value.educationLevelExamId, - educationName: defaultEducation.value.educationName, - educationMajor: defaultEducation.value.educationMajor, - educationLocation: defaultEducation.value.educationLocation, - educationType: defaultEducation.value.educationType, - educationEndDate: - defaultEducation.value.educationEndDate == null - ? null - : dateToISO(defaultEducation.value.educationEndDate), - educationScores: defaultEducation.value.educationScores, - educationLevelHighId: defaultEducation.value.educationLevelHighId, + if (defaultCareer == true) { + await formContact.value.validate().then(async (suc: boolean) => { + if (suc) { + loaderPage(true) + await http + .post(config.API.candidateId(examId.value, positionId.value), { + prefixId: defaultInformation.value.prefixId, + prefixName: defaultInformation.value.prefixId, + lastName: defaultInformation.value.lastname, + dateOfBirth: + defaultInformation.value.birthDate == null + ? null + : dateToISO(defaultInformation.value.birthDate), + citizenId: defaultInformation.value.cardid, + firstName: defaultInformation.value.firstname, + religionId: defaultInformation.value.religionId, + nationality: defaultInformation.value.nationality, + email: defaultInformation.value.email, + mobilePhone: defaultInformation.value.phone, + telephone: defaultInformation.value.tel, + knowledge: defaultInformation.value.knowledge, + occupationOrg: defaultOccupation.value.org, + occupationPile: defaultOccupation.value.pile, + occupationGroup: defaultOccupation.value.group, + occupationSalary: defaultOccupation.value.salary, + occupationPosition: defaultOccupation.value.position, + occupationPositionType: defaultOccupation.value.positionType, + occupationTelephone: defaultOccupation.value.tel, + registAddress: defaultAddress.value.address, + currentAddress: defaultAddress.value.addressC, + registProvinceId: defaultAddress.value.provinceId, + currentProvinceId: defaultAddress.value.provinceIdC, + registDistrictId: defaultAddress.value.districtId, + currentDistrictId: defaultAddress.value.districtIdC, + registSubDistrictId: defaultAddress.value.subdistrictId, + currentSubDistrictId: defaultAddress.value.subdistrictIdC, + registZipCode: defaultAddress.value.code, + currentZipCode: defaultAddress.value.codeC, + registSame: + defaultAddress.value.same == '1' + ? true + : defaultAddress.value.same == '0' + ? false + : null, + educationLevelExamId: defaultEducation.value.educationLevelExamId, + educationName: defaultEducation.value.educationName, + educationMajor: defaultEducation.value.educationMajor, + educationLocation: defaultEducation.value.educationLocation, + educationType: defaultEducation.value.educationType, + educationEndDate: + defaultEducation.value.educationEndDate == null + ? null + : dateToISO(defaultEducation.value.educationEndDate), + educationScores: defaultEducation.value.educationScores, + educationLevelHighId: defaultEducation.value.educationLevelHighId, - contactprefixId: defaultContact.value.contactprefixId, - contactfirstname: defaultContact.value.contactfirstname, - contactlastname: defaultContact.value.contactlastname, - contactrelations: defaultContact.value.contactrelations, - contacttel: defaultContact.value.contacttel - }) - .then(async () => { - success($q, 'บันทึกข้อมูลส่วนตัวสำเร็จ') - await saveForm() - await props.fetchStep() - }) - .catch((e) => { - messageError($q, e) - loaderPage(false) - }) - .finally(async () => {}) - } else { - notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน') - } - }) + contactprefixId: defaultContact.value.contactprefixId, + contactfirstname: defaultContact.value.contactfirstname, + contactlastname: defaultContact.value.contactlastname, + contactrelations: defaultContact.value.contactrelations, + contacttel: defaultContact.value.contacttel + }) + .then(async () => { + success($q, 'บันทึกข้อมูลส่วนตัวสำเร็จ') + await saveForm() + await props.fetchStep() + }) + .catch((e) => { + messageError($q, e) + loaderPage(false) + }) + .finally(async () => {}) + } else { + notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน') + } + }) + } else { + notifyError($q, 'กรุณากรอกข้อมูลประวัติการทำงาน') + } } else { notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน') } diff --git a/src/modules/01_exam/components/Form/Career.vue b/src/modules/01_exam/components/Form/Career.vue index fd260ec..b72af29 100644 --- a/src/modules/01_exam/components/Form/Career.vue +++ b/src/modules/01_exam/components/Form/Career.vue @@ -274,6 +274,7 @@ import type { ResponseObject } from '@/modules/01_exam/interface/response/Career import Table from '@/components/Table.vue' import DialogHeader from '@/components/DialogHeader.vue' import DialogFooter from '@/components/DialogFooter.vue' +import { changeData } from '@/modules/01_exam/interface/index/Main' const props = defineProps({ status: { @@ -520,7 +521,7 @@ const fetchData = async () => { loaderPage(true) await http .get(config.API.candidateCareer(examId.value, positionId.value)) - .then((res) => { + .then(async (res) => { const data = res.data.result var yearDiff = 0 var monthDiff = 0 @@ -550,6 +551,11 @@ const fetchData = async () => { }${dayDiff > 0 ? dayDiff + ' วัน ' : ''}` }) }) + if (data.length > 0) { + await changeData('education', true) + } else { + await changeData('education', false) + } }) .catch((e) => { // messageError($q, e) diff --git a/src/modules/01_exam/interface/index/Main.ts b/src/modules/01_exam/interface/index/Main.ts index 86af222..54ce065 100644 --- a/src/modules/01_exam/interface/index/Main.ts +++ b/src/modules/01_exam/interface/index/Main.ts @@ -223,6 +223,7 @@ const defaultEducation = ref({ educationScores: null, educationLevelHighId: null }) +const defaultCareer = ref(false) const changeData = (system: String, val: any) => { if (system == 'information') defaultInformation.value = val @@ -231,6 +232,7 @@ const changeData = (system: String, val: any) => { if (system == 'occupation') defaultOccupation.value = val if (system == 'contact') defaultContact.value = val if (system == 'education') defaultEducation.value = val + if (system == 'career') defaultCareer.value = val } export { @@ -240,6 +242,7 @@ export { defaultOccupation, defaultContact, defaultEducation, + defaultCareer, changeData } export type {