From 468f27f74ba674561dcfb7a62ef0b2c0d5a87269 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Fri, 6 Oct 2023 01:29:23 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=95=E0=B9=88=E0=B8=AD=20api=20=E0=B8=9A?= =?UTF-8?q?=E0=B8=B8=E0=B8=84=E0=B8=84=E0=B8=A5=E0=B8=97=E0=B8=B5=E0=B9=88?= =?UTF-8?q?=E0=B8=AA=E0=B8=B2=E0=B8=A1=E0=B8=B2=E0=B8=A3=E0=B8=96=E0=B8=95?= =?UTF-8?q?=E0=B8=B4=E0=B8=94=E0=B8=95=E0=B9=88=E0=B8=AD=E0=B9=84=E0=B8=94?= =?UTF-8?q?=E0=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/exam/api.candidate.ts | 2 + src/modules/01_exam/components/ExamCard.vue | 13 +- src/modules/01_exam/components/ExamForm.vue | 143 ++++++----- .../01_exam/components/Form/Contact.vue | 242 ++++++++++-------- .../01_exam/components/Form/Profile.vue | 18 +- src/modules/01_exam/interface/index/Main.ts | 19 ++ 6 files changed, 254 insertions(+), 183 deletions(-) diff --git a/src/api/exam/api.candidate.ts b/src/api/exam/api.candidate.ts index 0dff93b..4dce4cf 100644 --- a/src/api/exam/api.candidate.ts +++ b/src/api/exam/api.candidate.ts @@ -11,6 +11,8 @@ export default { `${candidate}family/${examId}/${positionId}`, candidateOccupation: (examId: string, positionId: string) => `${candidate}occupation/${examId}/${positionId}`, + candidateContact: (examId: string, positionId: string) => + `${candidate}contact/${examId}/${positionId}`, candidateEducation: (examId: string, positionId: string) => `${candidate}education/${examId}/${positionId}`, candidateCareer: (examId: string, positionId: string) => diff --git a/src/modules/01_exam/components/ExamCard.vue b/src/modules/01_exam/components/ExamCard.vue index 4321f2d..4f8951d 100644 --- a/src/modules/01_exam/components/ExamCard.vue +++ b/src/modules/01_exam/components/ExamCard.vue @@ -100,6 +100,11 @@
คะแนน
+
ลำดับที่สอบได้
+
+ {{ number }} +
+
ผลการสอบ
{{ @@ -107,7 +112,7 @@ }}
-
+
ตำแหน่ง
{{ position }} @@ -122,7 +127,7 @@
-->
วันหมดอายุบัญชีคัดเลือก
- {{ score_expired == null ? '' : date2Thai(score_expired) }} + {{ score_expired == null ? '-' : date2Thai(score_expired) }}
@@ -186,7 +191,7 @@ const scoreSumFull = ref(null) const scoreSum = ref(null) const examResultinscore = ref('') const avatar = ref('') -const score_expired = ref(new Date()) +const score_expired = ref(new Date()) const number = ref('') const reviewPoint = ref(0) const review = ref('-') @@ -221,7 +226,7 @@ const fetchStatus = async () => { parseInt(data.pointTotalC == null ? 0 : data.pointTotalC) examResultinscore.value = data.pass avatar.value = data.avatar - score_expired.value = new Date(data.announcementDate) + score_expired.value = data.announcementDate == null ? null : new Date(data.announcementDate) number.value = data.number position.value = data.position positionLevel.value = data.positionLevel diff --git a/src/modules/01_exam/components/ExamForm.vue b/src/modules/01_exam/components/ExamForm.vue index 9c0ef66..30bea2b 100644 --- a/src/modules/01_exam/components/ExamForm.vue +++ b/src/modules/01_exam/components/ExamForm.vue @@ -7,6 +7,7 @@ v-model:formAddress="formAddress" v-model:formOccupation="formOccupation" v-model:formEducation="formEducation" + v-model:formContact="formContact" />
@@ -128,7 +129,8 @@ import { defaultInformation, defaultOccupation, defaultAddress, - defaultEducation + defaultEducation, + defaultContact } from '@/modules/01_exam/interface/index/Main' import Profile from '@/modules/01_exam/components/Form/Profile.vue' @@ -170,6 +172,7 @@ const formInformation = ref({}) const formAddress = ref({}) const formEducation = ref({}) const formOccupation = ref({}) +const formContact = ref({}) const saveAuto = ref(false) const dialog = ref(false) @@ -242,69 +245,81 @@ const saveData = async () => { if (suc) { await formOccupation.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 - }) - .then(async () => { - success($q, 'บันทึกข้อมูลส่วนตัวสำเร็จ') - if (saveAuto.value) await saveForm() - await props.fetchStep() - }) - .catch((e) => { - messageError($q, e) - loaderPage(false) - }) - .finally(async () => {}) + 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, 'บันทึกข้อมูลส่วนตัวสำเร็จ') + if (saveAuto.value) await saveForm() + await props.fetchStep() + }) + .catch((e) => { + messageError($q, e) + loaderPage(false) + }) + .finally(async () => {}) + } else { + notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน') + } + }) } else { notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน') } diff --git a/src/modules/01_exam/components/Form/Contact.vue b/src/modules/01_exam/components/Form/Contact.vue index 389714a..f71beff 100644 --- a/src/modules/01_exam/components/Form/Contact.vue +++ b/src/modules/01_exam/components/Form/Contact.vue @@ -1,146 +1,167 @@ - \ No newline at end of file diff --git a/src/modules/01_exam/components/Form/Profile.vue b/src/modules/01_exam/components/Form/Profile.vue index c40c205..234daa1 100644 --- a/src/modules/01_exam/components/Form/Profile.vue +++ b/src/modules/01_exam/components/Form/Profile.vue @@ -41,13 +41,13 @@
- +
-
+