This commit is contained in:
parent
f851299d62
commit
c56fec6a7a
9 changed files with 772 additions and 795 deletions
|
|
@ -1,25 +1,26 @@
|
|||
<!-- step กรอกข้อมูล -->
|
||||
<template>
|
||||
<div>
|
||||
<Profile
|
||||
:status="status"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
v-model:formInformation="formInformation"
|
||||
v-model:formAddress="formAddress"
|
||||
v-model:formOccupation="formOccupation"
|
||||
v-model:formEducation="formEducation"
|
||||
v-model:formContact="formContact"
|
||||
/>
|
||||
<!-- v-model:formFamily="formFamily" -->
|
||||
<div v-html="editorConfirm"></div>
|
||||
<div class="text-center q-pt-sm">
|
||||
<q-checkbox
|
||||
v-model="acceptTermOfUse"
|
||||
:disable="!isStatusRegister || statusEdit"
|
||||
label="ข้าพเจ้าขอให้คำรับรองและแสดงความยินยอมตามเงื่อนไขทุกประการ"
|
||||
<q-form greedy @submit.prevent @validation-success="onSubmitForm">
|
||||
<Profile
|
||||
:status="status"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
v-model:formInformation="formInformation"
|
||||
v-model:formAddress="formAddress"
|
||||
v-model:formOccupation="formOccupation"
|
||||
v-model:formEducation="formEducation"
|
||||
v-model:formContact="formContact"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<!-- v-model:formFamily="formFamily" -->
|
||||
<div v-html="editorConfirm"></div>
|
||||
<div class="text-center q-pt-sm">
|
||||
<q-checkbox
|
||||
v-model="acceptTermOfUse"
|
||||
:disable="!isStatusRegister || statusEdit"
|
||||
label="ข้าพเจ้าขอให้คำรับรองและแสดงความยินยอมตามเงื่อนไขทุกประการ"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div>
|
||||
1. ข้าพเจ้าขอให้คำรับรองว่า
|
||||
ข้อความดังกล่าวข้างต้นนี้เป็นจริงทุกประการและข้าพเจ้ามีคุณสมบัติทั่วไปและ ไม่มีลักษณะต้องห้าม
|
||||
ตามมาตรา 43 แห่งพระราชบัญญัติระเบียบข้าราชการกรุงเทพมหานครและบุคลากร-กรุงเทพมหานคร พ.ศ. 2554
|
||||
|
|
@ -47,28 +48,34 @@
|
|||
มาตรา 137
|
||||
</div> -->
|
||||
|
||||
<div class="row justify-center q-pa-md">
|
||||
<q-btn
|
||||
color="blue"
|
||||
class="q-ml-md"
|
||||
label="บันทึกข้อมูล"
|
||||
outline
|
||||
icon="mdi-content-save"
|
||||
@click="clickSave"
|
||||
v-if="isStatusRegister"
|
||||
:disable="!acceptTermOfUse || statusEdit"
|
||||
/>
|
||||
<q-btn
|
||||
color="primary"
|
||||
class="q-ml-md"
|
||||
icon="mdi-check"
|
||||
label="ส่งใบสมัคร"
|
||||
@click="status === 'checkRegister' && !stepPayment ? (secondDialog = true) : dialogOpen()"
|
||||
v-if="isStatusRegister"
|
||||
:disable="!acceptTermOfUse || statusEdit"
|
||||
/>
|
||||
</div>
|
||||
<div class="row justify-center q-pa-md">
|
||||
<!-- @click="clickSave" -->
|
||||
<q-btn
|
||||
color="blue"
|
||||
class="q-ml-md"
|
||||
label="บันทึกข้อมูล"
|
||||
outline
|
||||
icon="mdi-content-save"
|
||||
type="submit"
|
||||
v-if="isStatusRegister"
|
||||
:disable="!acceptTermOfUse || statusEdit"
|
||||
@click="saveType = 'save'"
|
||||
/>
|
||||
<!-- @click="status === 'checkRegister' && !stepPayment ? (secondDialog = true) : dialogOpen()" -->
|
||||
<q-btn
|
||||
color="primary"
|
||||
class="q-ml-md"
|
||||
icon="mdi-check"
|
||||
label="ส่งใบสมัคร"
|
||||
type="submit"
|
||||
v-if="isStatusRegister"
|
||||
:disable="!acceptTermOfUse || statusEdit"
|
||||
@click="saveType = 'confirm'"
|
||||
/>
|
||||
</div>
|
||||
</q-form>
|
||||
</div>
|
||||
|
||||
<q-dialog v-model="dialog" persistent>
|
||||
<q-card>
|
||||
<q-card-section class="row items-center q-pa-sm">
|
||||
|
|
@ -221,6 +228,28 @@ onMounted(async () => {
|
|||
await fetchStatus()
|
||||
})
|
||||
|
||||
const saveType = ref<string>('')
|
||||
|
||||
function onSubmitForm() {
|
||||
if (defaultInformation.value.profileImg == null || defaultInformation.value.profileImg == '') {
|
||||
notifyError($q, 'กรุณาอัพโหลดรูปถ่าย')
|
||||
return
|
||||
}
|
||||
if (!defaultCareer.value) {
|
||||
notifyError($q, 'กรุณากรอกข้อมูลประวัติการทำงาน')
|
||||
return
|
||||
}
|
||||
if (saveType.value === 'save') {
|
||||
clickSave()
|
||||
} else if (saveType.value === 'confirm') {
|
||||
if (props.status === 'checkRegister' && !props.stepPayment) {
|
||||
secondDialog.value = true
|
||||
} else {
|
||||
dialogOpen()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const dialogClose = () => {
|
||||
dialog.value = false
|
||||
}
|
||||
|
|
@ -234,12 +263,6 @@ const okModalConfirm = () => {
|
|||
modalError($q, 'ไม่สามารถสมัครสอบได้', 'มีข้อมูลที่ยังไม่ถูกบันทึกข้อมูล')
|
||||
} else {
|
||||
saveAuto.value = true
|
||||
// modalConfirm(
|
||||
// $q,
|
||||
// 'ยืนยันการสมัครสอบ?',
|
||||
// 'เมื่อยืนยันการสมัครสอบแล้วจะไม่สามารถแก้ไขข้อมูลได้',
|
||||
// saveData
|
||||
// )
|
||||
saveData()
|
||||
}
|
||||
}
|
||||
|
|
@ -248,10 +271,10 @@ const fetchStatus = async () => {
|
|||
loaderPage(true)
|
||||
await http
|
||||
.get(config.API.candidateCard(examId.value, positionId.value))
|
||||
.then((res) => {
|
||||
.then(() => {
|
||||
acceptTermOfUse.value = true
|
||||
})
|
||||
.catch((e) => {
|
||||
.catch(() => {
|
||||
acceptTermOfUse.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
|
|
@ -279,119 +302,76 @@ const clickSave = async () => {
|
|||
|
||||
const saveData = async () => {
|
||||
if (saveAuto.value == true) {
|
||||
if (defaultInformation.value.profileImg == null || defaultInformation.value.profileImg == '') {
|
||||
notifyError($q, 'กรุณาอัพโหลดรูปถ่าย')
|
||||
return
|
||||
}
|
||||
await formInformation.value.validate().then(async (suc: boolean) => {
|
||||
if (suc) {
|
||||
await formAddress.value.validate().then(async (suc: boolean) => {
|
||||
if (suc) {
|
||||
await formEducation.value.validate().then(async (suc: boolean) => {
|
||||
if (suc) {
|
||||
await formOccupation.value.validate().then(async (suc: boolean) => {
|
||||
if (suc) {
|
||||
if (defaultCareer.value == 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.prefix,
|
||||
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,
|
||||
religionName: defaultInformation.value.religionName,
|
||||
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,
|
||||
loaderPage(true)
|
||||
await http
|
||||
.post(config.API.candidateId(examId.value, positionId.value), {
|
||||
// prefixId: defaultInformation.value.prefixId,
|
||||
prefixName: defaultInformation.value.prefix,
|
||||
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,
|
||||
religionName: defaultInformation.value.religionName,
|
||||
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,
|
||||
contactprefixName: defaultContact.value.contactprefixName,
|
||||
contactfirstname: defaultContact.value.contactfirstname,
|
||||
contactlastname: defaultContact.value.contactlastname,
|
||||
contactrelations: defaultContact.value.contactrelations,
|
||||
contacttel: defaultContact.value.contacttel
|
||||
})
|
||||
.then(async () => {
|
||||
if (!props.stepPayment) {
|
||||
dialog.value = false
|
||||
secondDialog.value = true
|
||||
}
|
||||
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, 'กรุณากรอกข้อมูลให้ครบถ้วน')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notifyError($q, 'กรุณากรอกข้อมูลให้ครบถ้วน')
|
||||
}
|
||||
})
|
||||
// contactprefixId: defaultContact.value.contactprefixId,
|
||||
contactprefixName: defaultContact.value.contactprefixName,
|
||||
contactfirstname: defaultContact.value.contactfirstname,
|
||||
contactlastname: defaultContact.value.contactlastname,
|
||||
contactrelations: defaultContact.value.contactrelations,
|
||||
contacttel: defaultContact.value.contacttel
|
||||
})
|
||||
.then(async () => {
|
||||
if (!props.stepPayment) {
|
||||
dialog.value = false
|
||||
secondDialog.value = true
|
||||
}
|
||||
success($q, 'บันทึกข้อมูลส่วนตัวสำเร็จ')
|
||||
await saveForm()
|
||||
await props.fetchStep()
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e)
|
||||
loaderPage(false)
|
||||
})
|
||||
} else {
|
||||
loaderPage(true)
|
||||
await http
|
||||
|
|
@ -458,12 +438,13 @@ const saveData = async () => {
|
|||
messageError($q, e)
|
||||
loaderPage(false)
|
||||
})
|
||||
.finally(async () => {})
|
||||
}
|
||||
}
|
||||
|
||||
async function onSubmit() {
|
||||
try {
|
||||
saveAuto.value = false
|
||||
await saveData()
|
||||
await http.post(config.API.registerConfirm(examId.value, positionId.value))
|
||||
await props.fetchStep()
|
||||
// do something
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue