fix
This commit is contained in:
parent
6f1318b55c
commit
c95c4e9e8f
14 changed files with 363 additions and 229 deletions
|
|
@ -3,7 +3,15 @@
|
|||
<div class="text-bold col-12 row q-px-md q-py-sm items-center bg-grey-2">
|
||||
ข้อมูลการสมัคร
|
||||
<q-space />
|
||||
<q-btn dense size="12px" flat color="primary" @click="download" icon="mdi-download">
|
||||
<q-btn
|
||||
v-if="storeExam.isShowExamInfo"
|
||||
dense
|
||||
size="12px"
|
||||
flat
|
||||
color="primary"
|
||||
@click="download"
|
||||
icon="mdi-download"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดใบสมัคร</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
|
|
@ -17,11 +25,11 @@
|
|||
<div class="">เลขประจำตัวประชาชน :</div>
|
||||
<div class="text-black text-bold q-pl-sm">{{ citizenId }}</div>
|
||||
</div>
|
||||
<div class="q-pt-xs row">
|
||||
<div v-if="storeExam.isShowExamInfo" class="q-pt-xs row">
|
||||
<div class="">เลขประจำตัวผู้สมัคร :</div>
|
||||
<div class="text-black text-bold q-pl-sm">{{ examNumber }}</div>
|
||||
</div>
|
||||
<div class="q-pt-xs row">
|
||||
<div v-if="storeExam.isShowExamInfo" class="q-pt-xs row">
|
||||
<div class="">สนามสอบ :</div>
|
||||
<div class="text-black text-bold q-pl-sm">{{ examSeat }}</div>
|
||||
</div>
|
||||
|
|
@ -131,7 +139,7 @@
|
|||
</div> -->
|
||||
</div>
|
||||
</q-card>
|
||||
<q-card bordered flat class="col-12 row q-mt-md">
|
||||
<!-- <q-card bordered flat class="col-12 row q-mt-md">
|
||||
<div class="q-pa-md row">
|
||||
<div class="col-12 text-weight-bold row items-center">
|
||||
แบบสอบถามความพึงพอใจ
|
||||
|
|
@ -153,7 +161,7 @@
|
|||
<div class="col-xs-8 col-sm-6 q-pr-xs">{{ review }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
</q-card> -->
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
@ -165,11 +173,13 @@ import http from '@/plugins/http'
|
|||
import config from '@/app.config'
|
||||
import { useCounterMixin } from '@/stores/mixin'
|
||||
import { useDataStore } from '@/stores/data'
|
||||
import { useExamDataStore } from '@/modules/01_exam/store'
|
||||
|
||||
import genReport from '@/plugins/genreport'
|
||||
|
||||
const $q = useQuasar()
|
||||
const route = useRoute()
|
||||
const storeExam = useExamDataStore()
|
||||
const mixin = useCounterMixin() //เรียกฟังก์ชันกลาง
|
||||
const { date2Thai, messageError } = mixin
|
||||
const dataStore = useDataStore()
|
||||
|
|
@ -217,7 +227,7 @@ const fetchStatus = async () => {
|
|||
.get(config.API.candidateCard(examId.value, positionId.value))
|
||||
.then((res) => {
|
||||
const data = res.data.result
|
||||
fullName.value = data.prefix ? data.prefix : '' + data.firstName + ' ' + data.lastName
|
||||
fullName.value = `${data.prefix ? data.prefix : ''}${data.firstName} ${data.lastName}`
|
||||
examNumber.value = data.examIdenNumber
|
||||
citizenId.value = data.citizenId
|
||||
examSeat.value = data.seatNumber
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
size="22px"
|
||||
color="orange-5"
|
||||
class="q-mr-sm"
|
||||
/>รอยืนยันสถานะการสมัคร
|
||||
/>ส่งใบสมัครแล้ว
|
||||
</div>
|
||||
<div v-else-if="status == 'checkPoint'" class="text-orange-6 text-bold">
|
||||
<q-icon
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<div>
|
||||
<Profile
|
||||
:status="status"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
v-model:formInformation="formInformation"
|
||||
v-model:formAddress="formAddress"
|
||||
v-model:formOccupation="formOccupation"
|
||||
|
|
@ -14,7 +15,7 @@
|
|||
<div class="text-center q-pt-sm">
|
||||
<q-checkbox
|
||||
v-model="acceptTermOfUse"
|
||||
:disable="(status !== 'register' && status !== 'rejectRegister') || statusEdit"
|
||||
:disable="!isStatusRegister || statusEdit"
|
||||
label="ข้าพเจ้าขอให้คำรับรองและแสดงความยินยอมตามเงื่อนไขทุกประการ"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -54,7 +55,7 @@
|
|||
outline
|
||||
icon="mdi-content-save"
|
||||
@click="clickSave"
|
||||
v-if="status === 'register' || status === 'rejectRegister'"
|
||||
v-if="isStatusRegister"
|
||||
:disable="!acceptTermOfUse || statusEdit"
|
||||
/>
|
||||
<q-btn
|
||||
|
|
@ -62,8 +63,8 @@
|
|||
class="q-ml-md"
|
||||
icon="mdi-check"
|
||||
label="ส่งใบสมัคร"
|
||||
@click="dialogOpen"
|
||||
v-if="status === 'register' || status === 'rejectRegister'"
|
||||
@click="status === 'checkRegister' && !stepPayment ? (secondDialog = true) : dialogOpen()"
|
||||
v-if="isStatusRegister"
|
||||
:disable="!acceptTermOfUse || statusEdit"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -109,7 +110,37 @@
|
|||
<q-btn class="" label="แก้ไข" color="red-5" outline @click="dialogClose" />
|
||||
</div>
|
||||
<div class="col-6" align="center">
|
||||
<q-btn class="" label="ส่งใบสมัคร" color="primary" @click="okModalConfirm" />
|
||||
<q-btn class="" label="ยืนยัน" color="primary" @click="okModalConfirm" />
|
||||
</div>
|
||||
</div>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
<q-dialog v-model="secondDialog" persistent transition-show="scale" transition-hide="scale">
|
||||
<q-card style="width: 400px">
|
||||
<q-card-section>
|
||||
<!-- <div class="text-h6">เตือน</div> -->
|
||||
</q-card-section>
|
||||
|
||||
<q-card-section>
|
||||
<div class="text-body1 text-center text-red-8">
|
||||
!!! โปรดตรวจสอบข้อมูลให้ถูกต้อง !!! <br />
|
||||
ก่อนส่งใบสมัคร
|
||||
<br />
|
||||
เมื่อส่งใบสมัครแล้วจะแก้ไขไม่ได้ / สมัครใหม่ไม่ได้
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator />
|
||||
|
||||
<q-card-actions align="right" class="bg-white text-teal">
|
||||
<div class="col-12 row" align="center">
|
||||
<div class="col-6" align="center">
|
||||
<q-btn class="" label="แก้ไข" color="red-5" outline @click="secondDialog = false" />
|
||||
</div>
|
||||
<div class="col-6" align="center">
|
||||
<q-btn class="" label="ส่งใบสมัคร" color="primary" @click="onSubmit" />
|
||||
</div>
|
||||
</div>
|
||||
</q-card-actions>
|
||||
|
|
@ -156,6 +187,14 @@ const props = defineProps({
|
|||
positionLevel: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
},
|
||||
stepPayment: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -176,6 +215,7 @@ const formOccupation = ref<any>({})
|
|||
const formContact = ref<any>({})
|
||||
const saveAuto = ref<boolean>(false)
|
||||
const dialog = ref<boolean>(false)
|
||||
const secondDialog = ref<boolean>(false)
|
||||
|
||||
onMounted(async () => {
|
||||
await fetchStatus()
|
||||
|
|
@ -186,8 +226,6 @@ const dialogClose = () => {
|
|||
}
|
||||
|
||||
const dialogOpen = () => {
|
||||
console.log(defaultInformation.value)
|
||||
|
||||
dialog.value = true
|
||||
}
|
||||
|
||||
|
|
@ -318,6 +356,10 @@ const saveData = async () => {
|
|||
contacttel: defaultContact.value.contacttel
|
||||
})
|
||||
.then(async () => {
|
||||
if (!props.stepPayment) {
|
||||
dialog.value = false
|
||||
secondDialog.value = true
|
||||
}
|
||||
success($q, 'บันทึกข้อมูลส่วนตัวสำเร็จ')
|
||||
await saveForm()
|
||||
await props.fetchStep()
|
||||
|
|
@ -354,8 +396,8 @@ const saveData = async () => {
|
|||
loaderPage(true)
|
||||
await http
|
||||
.post(config.API.candidateId(examId.value, positionId.value), {
|
||||
prefixId: defaultInformation.value.prefixId,
|
||||
prefixName: defaultInformation.value.prefixId,
|
||||
// prefixId: defaultInformation.value.prefixId,
|
||||
prefixName: defaultInformation.value.prefix,
|
||||
lastName: defaultInformation.value.lastname,
|
||||
dateOfBirth:
|
||||
defaultInformation.value.birthDate == null
|
||||
|
|
@ -363,7 +405,8 @@ const saveData = async () => {
|
|||
: dateToISO(defaultInformation.value.birthDate),
|
||||
citizenId: defaultInformation.value.cardid,
|
||||
firstName: defaultInformation.value.firstname,
|
||||
religionId: defaultInformation.value.religionId,
|
||||
// religionId: defaultInformation.value.religionId,
|
||||
religionName: defaultInformation.value.religionName,
|
||||
nationality: defaultInformation.value.nationality,
|
||||
email: defaultInformation.value.email,
|
||||
mobilePhone: defaultInformation.value.phone,
|
||||
|
|
@ -400,7 +443,8 @@ const saveData = async () => {
|
|||
educationScores: defaultEducation.value.educationScores,
|
||||
educationLevelHighId: defaultEducation.value.educationLevelHighId,
|
||||
|
||||
contactprefixId: defaultContact.value.contactprefixId,
|
||||
// contactprefixId: defaultContact.value.contactprefixId,
|
||||
contactprefixName: defaultContact.value.contactprefixName,
|
||||
contactfirstname: defaultContact.value.contactfirstname,
|
||||
contactlastname: defaultContact.value.contactlastname,
|
||||
contactrelations: defaultContact.value.contactrelations,
|
||||
|
|
@ -417,6 +461,16 @@ const saveData = async () => {
|
|||
.finally(async () => {})
|
||||
}
|
||||
}
|
||||
|
||||
async function onSubmit() {
|
||||
try {
|
||||
await http.post(config.API.registerConfirm(examId.value, positionId.value))
|
||||
await props.fetchStep()
|
||||
// do something
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@
|
|||
<div class="row col-12 items-center q-col-gutter-x-sm q-col-gutter-y-xs">
|
||||
<div class="col-xs-12">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
type="textarea"
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultAddress.address"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ที่อยู่ตามทะเบียนบ้าน'}`]"
|
||||
:label="`${'ที่อยู่ตามทะเบียนบ้าน'}`"
|
||||
|
|
@ -27,11 +27,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก จังหวัด'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultAddress.provinceId"
|
||||
|
|
@ -46,11 +46,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก เขต / อำเภอ'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultAddress.districtId"
|
||||
|
|
@ -65,11 +65,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก แขวง / ตำบล'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultAddress.subdistrictId"
|
||||
|
|
@ -84,12 +84,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:borderless="!isStatusRegister"
|
||||
:outlined="isStatusRegister"
|
||||
v-model="defaultAddress.code"
|
||||
bottom-slots
|
||||
:label="`${'รหัสไปรษณีย์'}`"
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
val="1"
|
||||
label="ใช่"
|
||||
dense
|
||||
:disable="!(status == 'register' || status == 'rejectRegister')"
|
||||
:disable="!isStatusRegister"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="defaultAddress.same"
|
||||
|
|
@ -118,20 +118,20 @@
|
|||
val="0"
|
||||
label="ไม่"
|
||||
dense
|
||||
:disable="!(status == 'register' || status == 'rejectRegister')"
|
||||
:disable="!isStatusRegister"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12" v-if="defaultAddress.same == '0'">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
type="textarea"
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultAddress.addressC"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ที่อยู่ปัจจุบัน'}`]"
|
||||
:label="`${'ที่อยู่ปัจจุบัน'}`"
|
||||
|
|
@ -139,11 +139,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3" v-if="defaultAddress.same == '0'">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก จังหวัด'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultAddress.provinceIdC"
|
||||
|
|
@ -158,11 +158,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3" v-if="defaultAddress.same == '0'">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก เขต / อำเภอ'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultAddress.districtIdC"
|
||||
|
|
@ -177,11 +177,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3" v-if="defaultAddress.same == '0'">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก แขวง / ตำบล'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultAddress.subdistrictIdC"
|
||||
|
|
@ -196,13 +196,13 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3" v-if="defaultAddress.same == '0'">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
dense
|
||||
lazy-rules
|
||||
bottom-slots
|
||||
:readonly="!(status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:borderless="!isStatusRegister"
|
||||
:outlined="isStatusRegister"
|
||||
v-model="defaultAddress.codeC"
|
||||
:label="`${'รหัสไปรษณีย์'}`"
|
||||
/>
|
||||
|
|
@ -235,6 +235,10 @@ const props = defineProps({
|
|||
form: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['update:form'])
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@
|
|||
:addData="false"
|
||||
:bottom="true"
|
||||
:editBtn="false"
|
||||
:boss="status == 'register' || status == 'rejectRegister'"
|
||||
:editData="status == 'register' || status == 'rejectRegister'"
|
||||
:boss="isStatusRegister"
|
||||
:editData="isStatusRegister"
|
||||
name="ประวัติการทำงาน (ตั้งแต่เริ่มปฏิบัติงานกับกรุงเทพมหานคร - ปัจจุบัน)"
|
||||
icon="mdi-briefcase"
|
||||
:is-showfilter="false"
|
||||
|
|
@ -247,7 +247,7 @@
|
|||
:validate="validateData"
|
||||
:clickNext="clickNext"
|
||||
:clickPrevious="clickPrevious"
|
||||
:editData="status == 'register' || status == 'rejectRegister'"
|
||||
:editData="isStatusRegister"
|
||||
v-model:editvisible="edit"
|
||||
v-model:next="next"
|
||||
v-model:previous="previous"
|
||||
|
|
@ -281,6 +281,10 @@ const props = defineProps({
|
|||
status: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
<div class="row col-12 items-center q-col-gutter-x-sm q-col-gutter-y-xs">
|
||||
<div class="col-xs-12 col-sm-3 col-md-2">
|
||||
<!-- <q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก คำนำหน้า'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
dense
|
||||
|
|
@ -28,11 +28,11 @@
|
|||
:label="`${'คำนำหน้า'}`"
|
||||
/> -->
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก คำนำหน้า'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultContact.contactprefixName"
|
||||
|
|
@ -49,12 +49,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultContact.contactfirstname"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ชื่อ'}`]"
|
||||
:label="`${'ชื่อ'}`"
|
||||
|
|
@ -62,12 +62,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultContact.contactlastname"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก นามสกุล'}`]"
|
||||
:label="`${'นามสกุล'}`"
|
||||
|
|
@ -75,12 +75,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-4">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultContact.contactrelations"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกความสัมพันธ์'}`]"
|
||||
:label="`${'เกี่ยวข้องเป็น'}`"
|
||||
|
|
@ -88,12 +88,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-4">
|
||||
<q-input
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultContact.contacttel"
|
||||
:label="`${'โทรศัพท์'}`"
|
||||
:rules="[(val) => !!val || '* กรุณากรอกข้อมูลหมายเลขโทรศัพท์']"
|
||||
|
|
@ -134,6 +134,10 @@ const props = defineProps({
|
|||
prefixOptions: {
|
||||
type: Array as PropType<DataOption[]>,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['update:form'])
|
||||
|
|
@ -173,7 +177,7 @@ const fetchData = async () => {
|
|||
defaultContact.value.contactlastname = data.contactLastname
|
||||
defaultContact.value.contactrelations = data.contactRelations
|
||||
defaultContact.value.contacttel = data.contactTel
|
||||
defaultContact.value.contactprefixName = data.contactPrefixName
|
||||
defaultContact.value.contactprefixName = data.contactPrefix
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@
|
|||
<div class="col-12 row q-col-gutter-sm">
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
emit-value
|
||||
|
|
@ -32,13 +32,13 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3" v-if="showEducationName">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultEducation.educationName"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ชื่อปริญญา'}`]"
|
||||
:label="`${'ชื่อปริญญา'}`"
|
||||
|
|
@ -46,13 +46,13 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultEducation.educationMajor"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก สาขาวิชา/วิชาเอก'}`]"
|
||||
:label="`${'สาขาวิชา/วิชาเอก'}`"
|
||||
|
|
@ -60,13 +60,13 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultEducation.educationLocation"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ชื่อสถานศึกษา'}`]"
|
||||
:label="`${'ชื่อสถานศึกษา'}`"
|
||||
|
|
@ -74,10 +74,10 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
emit-value
|
||||
|
|
@ -92,14 +92,14 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<datepicker
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
v-model="defaultEducation.educationEndDate"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
:max-date="dateCondition"
|
||||
:disabled="!(status == 'register' || status == 'rejectRegister')"
|
||||
:disabled="!isStatusRegister"
|
||||
>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
|
|
@ -109,12 +109,12 @@
|
|||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:model-value="
|
||||
defaultEducation.educationEndDate == null
|
||||
? null
|
||||
|
|
@ -141,13 +141,13 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
type="number"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
v-model="defaultEducation.educationScores"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก คะแนนเฉลี่ยสะสม'}`]"
|
||||
:label="`${'คะแนนเฉลี่ยสะสม'}`"
|
||||
|
|
@ -155,17 +155,17 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
emit-value
|
||||
map-options
|
||||
option-label="name"
|
||||
option-value="id"
|
||||
:options="educationLevelOptions"
|
||||
:options="educationLevelHigherOptions"
|
||||
v-model="defaultEducation.educationLevelHighId"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก วุฒิการศึกษาสูงสุด'}`]"
|
||||
:label="`${'วุฒิการศึกษาสูงสุด'}`"
|
||||
|
|
@ -203,6 +203,14 @@ const props = defineProps({
|
|||
educationLevelOptions: {
|
||||
type: Array as PropType<DataOption[]>,
|
||||
required: true
|
||||
},
|
||||
educationLevelHigherOptions: {
|
||||
type: Array as PropType<DataOption[]>,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -14,14 +14,14 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-4">
|
||||
<q-field
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
bottom-slots
|
||||
:stack-label="defaultInformation.cardid != null"
|
||||
label="เลขประจำตัวประชาชน"
|
||||
dense
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[
|
||||
(val) =>
|
||||
(val != null && val.length == 13) || `${'กรุณากรอกเลขประจำตัวประชาชนให้ถูกต้อง'}`,
|
||||
|
|
@ -48,15 +48,15 @@
|
|||
</template>
|
||||
</q-field>
|
||||
<!-- <q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
type="tel"
|
||||
mask="#############"
|
||||
:counter="status == 'register' || status == 'rejectRegister' ? true : false"
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultInformation.cardid"
|
||||
maxlength="13"
|
||||
:rules="[
|
||||
|
|
@ -68,11 +68,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-2">
|
||||
<!-- <q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก คำนำหน้า'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultInformation.prefixId"
|
||||
|
|
@ -86,11 +86,11 @@
|
|||
/> -->
|
||||
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก คำนำหน้า'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultInformation.prefix"
|
||||
|
|
@ -107,12 +107,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultInformation.firstname"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ชื่อ'}`]"
|
||||
:label="`${'ชื่อ (ภาษาไทย)'}`"
|
||||
|
|
@ -120,12 +120,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultInformation.lastname"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก นามสกุล'}`]"
|
||||
:label="`${'นามสกุล (ภาษาไทย)'}`"
|
||||
|
|
@ -134,11 +134,11 @@
|
|||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<!-- :borderless="!false" -->
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
dense
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="isStatusRegister"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
lazy-rules
|
||||
v-model="defaultInformation.nationality"
|
||||
:options="opNat"
|
||||
|
|
@ -148,11 +148,11 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<!-- <q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก ศาสนา'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultInformation.religionId"
|
||||
|
|
@ -164,11 +164,11 @@
|
|||
:label="`${'ศาสนา'}`"
|
||||
/> -->
|
||||
<q-select
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือก ศาสนา'}`]"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultInformation.religionName"
|
||||
|
|
@ -203,12 +203,12 @@
|
|||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
:model-value="
|
||||
defaultInformation.birthDate == null
|
||||
? null
|
||||
|
|
@ -236,13 +236,13 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
dense
|
||||
lazy-rules
|
||||
bottom-slots
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
:readonly="!(status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!isStatusRegister"
|
||||
:model-value="
|
||||
defaultInformation.birthDate == null ? null : calAge(defaultInformation.birthDate)
|
||||
"
|
||||
|
|
@ -251,12 +251,12 @@
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultInformation.tel"
|
||||
:label="`${'โทรศัพท์'}`"
|
||||
:rules="[(val) => !!val || '* กรุณากรอกข้อมูลหมายเลขโทรศัพท์']"
|
||||
|
|
@ -271,16 +271,16 @@
|
|||
</div>
|
||||
<!-- <div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
:counter="status == 'register' || status == 'rejectRegister' ? true : false"
|
||||
lazy-rules
|
||||
type="tel"
|
||||
mask="##########"
|
||||
maxlength="10"
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultInformation.phone"
|
||||
:rules="[
|
||||
(val) => val.length == 10 || `${'กรุณากรอก โทรศัพท์มือถือ'}`,
|
||||
|
|
@ -292,13 +292,13 @@
|
|||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<!-- style="padding: 0 12px" -->
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:class="getClass(isStatusRegister)"
|
||||
dense
|
||||
lazy-rules
|
||||
bottom-slots
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:outlined="isStatusRegister"
|
||||
:readonly="!(status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultInformation.email"
|
||||
label="E-mail address"
|
||||
/>
|
||||
|
|
@ -339,11 +339,11 @@
|
|||
</div>
|
||||
<!-- <div class="col-xs-12 col-sm-9 col-md-12">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
v-model="defaultInformation.knowledge"
|
||||
label="ความรู้ความสามารถพิเศษ"
|
||||
|
|
@ -447,6 +447,10 @@ const props = defineProps({
|
|||
form: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['update:form'])
|
||||
|
|
@ -520,8 +524,8 @@ const fetchData = async () => {
|
|||
defaultInformation.value.phone = data.mobilePhone
|
||||
defaultInformation.value.tel = data.telephone
|
||||
defaultInformation.value.knowledge = data.knowledge
|
||||
defaultInformation.value.prefix = data.prefixName
|
||||
defaultInformation.value.religionName = data.religionName
|
||||
defaultInformation.value.prefix = data.prefix
|
||||
defaultInformation.value.religionName = data.religion
|
||||
})
|
||||
.catch(() => {
|
||||
defaultInformation.value.email =
|
||||
|
|
|
|||
|
|
@ -16,33 +16,33 @@
|
|||
label="ลูกจ้างประจำ"
|
||||
color="teal"
|
||||
val="prem"
|
||||
:disable="!(status == 'register' || status == 'rejectRegister')"
|
||||
:disable="!isStatusRegister"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="defaultOccupation.positionType"
|
||||
label="ลูกจ้างชั่วคราว"
|
||||
color="teal"
|
||||
val="temp"
|
||||
:disable="!(status == 'register' || status == 'rejectRegister')"
|
||||
:disable="!isStatusRegister"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="defaultOccupation.positionType"
|
||||
label="ผู้ปฏิบัติงานอื่นในกรุงเทพมหานคร"
|
||||
color="teal"
|
||||
val="other"
|
||||
:disable="!(status == 'register' || status == 'rejectRegister')"
|
||||
:disable="!isStatusRegister"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12 row">
|
||||
<div class="col-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultOccupation.position"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก ชื่อตำแหน่ง'}`]"
|
||||
:label="`${'ชื่อตำแหน่ง'}`"
|
||||
|
|
@ -51,14 +51,14 @@
|
|||
<div class="col-3">
|
||||
<CurrencyInput
|
||||
class="q-pl-sm"
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
:options="{
|
||||
currency: 'THB'
|
||||
}"
|
||||
lazy-rules
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultOccupation.salary"
|
||||
:rules="[(val:number| undefined) => !!val || `${'กรุณากรอก เงินเดือน'}`]"
|
||||
:label="`${'เงินเดือน'}`"
|
||||
|
|
@ -68,13 +68,13 @@
|
|||
<div class="col-12 row">
|
||||
<div class="col-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultOccupation.group"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก กลุ่ม/ฝ่าย'}`]"
|
||||
:label="`${'กลุ่ม/ฝ่าย'}`"
|
||||
|
|
@ -83,13 +83,13 @@
|
|||
<div class="col-3">
|
||||
<q-input
|
||||
class="q-pl-sm"
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultOccupation.pile"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก กอง'}`]"
|
||||
:label="`${'กอง'}`"
|
||||
|
|
@ -98,13 +98,13 @@
|
|||
<div class="col-3">
|
||||
<q-input
|
||||
class="q-pl-sm"
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
lazy-rules
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultOccupation.org"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก สังกัด'}`]"
|
||||
:label="`${'สังกัด'}`"
|
||||
|
|
@ -113,26 +113,22 @@
|
|||
<div class="col-3">
|
||||
<q-input
|
||||
class="q-pl-sm"
|
||||
:class="getClass(status == 'register' || status == 'rejectRegister')"
|
||||
:outlined="status == 'register' || status == 'rejectRegister'"
|
||||
:class="getClass(isStatusRegister)"
|
||||
:outlined="isStatusRegister"
|
||||
dense
|
||||
:counter="status == 'register' || status == 'rejectRegister' ? true : false"
|
||||
maxlength="10"
|
||||
lazy-rules
|
||||
type="tel"
|
||||
mask="##########"
|
||||
autogrow
|
||||
:readonly="!(status == 'register' || status == 'rejectRegister')"
|
||||
:borderless="!(status == 'register' || status == 'rejectRegister')"
|
||||
:readonly="!isStatusRegister"
|
||||
:borderless="!isStatusRegister"
|
||||
v-model="defaultOccupation.tel"
|
||||
:rules="[
|
||||
(val) => !!val || '* กรุณากรอกข้อมูลหมายเลขโทรศัพท์',
|
||||
(val) =>
|
||||
(val.length >= 9 && val.length <= 10 && val.startsWith('0')) ||
|
||||
'กรุณากรอกข้อมูลหมายเลขโทรศัพท์ให้ถูกต้อง'
|
||||
]"
|
||||
:rules="[(val) => !!val || '* กรุณากรอกข้อมูลหมายเลขโทรศัพท์']"
|
||||
:label="`${'เบอร์โทรที่ทำงาน'}`"
|
||||
/>
|
||||
<!-- :counter="isStatusRegister ? true : false" -->
|
||||
<!-- (val) =>
|
||||
(val.length >= 9 && val.length <= 10 && val.startsWith('0')) ||
|
||||
'กรุณากรอกข้อมูลหมายเลขโทรศัพท์ให้ถูกต้อง' -->
|
||||
<!-- type="tel" mask="##########" autogrow -->
|
||||
<!-- maxlength="10" -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -159,6 +155,10 @@ const props = defineProps({
|
|||
form: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['update:form'])
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
:provinceOptions="provinceOptions"
|
||||
:status="status"
|
||||
v-model:form="formInformation"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
@ -19,29 +20,45 @@
|
|||
<div class="q-px-sm">
|
||||
<Education
|
||||
:status="status"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
v-model:form="formEducation"
|
||||
:educationLevelOptions="educationLevelOptions"
|
||||
:educationLevelHigherOptions="educationLevelHigherOptions"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-lg bg-gray" size="5px" />
|
||||
<div class="q-px-sm">
|
||||
<Occupation :status="status" v-model:form="formOccupation" />
|
||||
<Occupation
|
||||
:status="status"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
v-model:form="formOccupation"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-lg bg-gray" size="5px" />
|
||||
<div class="q-px-sm">
|
||||
<Career :status="status" />
|
||||
<Career :status="status" :isStatusRegister="isStatusRegister" />
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-lg bg-gray" size="5px" />
|
||||
<div class="q-px-sm">
|
||||
<Address :provinceOptions="provinceOptions" :status="status" v-model:form="formAddress" />
|
||||
<Address
|
||||
:provinceOptions="provinceOptions"
|
||||
:status="status"
|
||||
v-model:form="formAddress"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-lg bg-gray" size="5px" />
|
||||
<div class="q-px-sm">
|
||||
<Contact :status="status" :prefixOptions="prefixOptions" v-model:form="formContact" />
|
||||
<Contact
|
||||
:status="status"
|
||||
:prefixOptions="prefixOptions"
|
||||
v-model:form="formContact"
|
||||
:isStatusRegister="isStatusRegister"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-lg bg-gray" size="5px" />
|
||||
|
|
@ -91,6 +108,10 @@ const props = defineProps({
|
|||
formContact: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
isStatusRegister: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
const emit = defineEmits([
|
||||
|
|
@ -111,6 +132,7 @@ const prefixOptions = ref<DataOption[]>([])
|
|||
const religionOptions = ref<DataOption[]>([])
|
||||
const provinceOptions = ref<DataOption[]>([])
|
||||
const educationLevelOptions = ref<DataOption[]>([])
|
||||
const educationLevelHigherOptions = ref<DataOption[]>([])
|
||||
const formInformation = ref<any>({})
|
||||
const formAddress = ref<any>({})
|
||||
const formEducation = ref<any>({})
|
||||
|
|
@ -166,6 +188,8 @@ const fetchPerson = async () => {
|
|||
provinceOptions.value = optionProvince
|
||||
|
||||
let optionEducationLevel: DataOption[] = []
|
||||
let optionEducationLevelHigher: DataOption[] = []
|
||||
|
||||
let filterEducationLevels = data.educationLevels
|
||||
|
||||
if (examStore.educationLevel === 'BACHELOR') {
|
||||
|
|
@ -179,7 +203,12 @@ const fetchPerson = async () => {
|
|||
filterEducationLevels.map((r: any) => {
|
||||
optionEducationLevel.push({ id: r.id.toString(), name: r.name.toString() })
|
||||
})
|
||||
|
||||
data.educationLevels.map((r: any) => {
|
||||
optionEducationLevelHigher.push({ id: r.id.toString(), name: r.name.toString() })
|
||||
})
|
||||
educationLevelOptions.value = optionEducationLevel
|
||||
educationLevelHigherOptions.value = optionEducationLevelHigher
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e)
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ export const useExamDataStore = defineStore('exam', () => {
|
|||
|
||||
const examInfo = ref<DataExam>()
|
||||
const educationLevel = ref<string>('')
|
||||
const isShowExamInfo = ref<boolean>(false)
|
||||
|
||||
const consend = ref<boolean>(false)
|
||||
const status = ref<string>('')
|
||||
|
|
@ -57,6 +58,7 @@ export const useExamDataStore = defineStore('exam', () => {
|
|||
status,
|
||||
changeStatus,
|
||||
examInfo,
|
||||
educationLevel
|
||||
educationLevel,
|
||||
isShowExamInfo
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
{{ `ครั้งที่${round}/${yearly == null ? '' : yearly + 543}` }}
|
||||
</q-toolbar-title>
|
||||
</q-toolbar> -->
|
||||
|
||||
<q-stepper
|
||||
v-model="step"
|
||||
ref="stepper"
|
||||
|
|
@ -41,11 +42,13 @@
|
|||
</div>
|
||||
</q-card-actions>
|
||||
<ExamForm
|
||||
:isStatusRegister="isStatusRegister"
|
||||
:fetchStep="fetchStep"
|
||||
:status="status"
|
||||
:editorConfirm="editorConfirm"
|
||||
:position="position"
|
||||
:positionLevel="positionLevel"
|
||||
:stepPayment="stepPayment"
|
||||
/>
|
||||
</q-card>
|
||||
</q-step>
|
||||
|
|
@ -117,7 +120,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useCounterMixin } from '@/stores/mixin'
|
||||
import { useDataStore } from '@/stores/data'
|
||||
|
|
@ -226,12 +229,13 @@ const fetchStep = async () => {
|
|||
const data = res.data.result
|
||||
rejectMessage.value = data.rejectDetail
|
||||
status.value = data.status
|
||||
storeExam.isShowExamInfo = data.isShowExamInfo || false
|
||||
if (status.value == 'register') {
|
||||
stepRaw.value = 2
|
||||
step.value = 2
|
||||
} else if (status.value == 'checkRegister') {
|
||||
stepRaw.value = 3
|
||||
step.value = 3
|
||||
stepRaw.value = 2
|
||||
step.value = 2
|
||||
} else if (status.value == 'payment') {
|
||||
stepRaw.value = 3
|
||||
step.value = 3
|
||||
|
|
@ -257,7 +261,8 @@ const fetchStep = async () => {
|
|||
if (
|
||||
stepPayment.value == false &&
|
||||
status.value != 'register' &&
|
||||
status.value != 'rejectRegister'
|
||||
status.value != 'rejectRegister' &&
|
||||
status.value != 'checkRegister'
|
||||
) {
|
||||
stepRaw.value = 4
|
||||
step.value = 4
|
||||
|
|
@ -304,6 +309,13 @@ const consendOk = () => {
|
|||
const logout = () => {
|
||||
keycloak.logout()
|
||||
}
|
||||
|
||||
const isStatusRegister = computed(() => {
|
||||
const statuses = ['register', 'rejectRegister']
|
||||
return stepPayment.value
|
||||
? statuses.includes(status.value)
|
||||
: [...statuses, 'checkRegister'].includes(status.value)
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
.q-stepper {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue