อัพโหลดคะแนนภาค ข ค
This commit is contained in:
parent
9b9432f779
commit
b768d7e754
5 changed files with 118 additions and 27 deletions
|
|
@ -66,8 +66,49 @@
|
||||||
<div class="text-black text-bold q-pl-sm">{{ examSeat }}</div>
|
<div class="text-black text-bold q-pl-sm">{{ examSeat }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="q-pt-xs row">
|
<div class="q-pt-xs row">
|
||||||
<div class="">คะแนน</div>
|
<!-- <div class="">คะแนน</div>
|
||||||
<div class="text-black text-bold q-pl-sm">{{ point }}</div>
|
<div class="text-black text-bold q-pl-sm">{{ point }}</div> -->
|
||||||
|
<div class="col-12 text-weight-bold">ผลการสอบ</div>
|
||||||
|
<div class="row items-center q-gutter-y-sm col-12">
|
||||||
|
<div class="col-xs-4 col-sm-5 text-weight-medium text-grey-7">ประเภท</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 text-primary text-weight-bold">คะแนนเต็ม</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 text-primary text-weight-bold">คะแนนที่ได้</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 text-primary text-weight-bold"></div>
|
||||||
|
|
||||||
|
<div class="col-xs-4 col-sm-5 text-grey-7">ภาค ข</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 q-pr-xs">
|
||||||
|
{{ scoreBFull }}
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 q-pr-xs">
|
||||||
|
{{ scoreB }}
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 q-pr-xs text-grey-7">คะแนน</div>
|
||||||
|
|
||||||
|
<div class="col-xs-4 col-sm-5 text-grey-7">ภาค ค</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 q-pr-xs">
|
||||||
|
{{ scoreCFull }}
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 q-pr-xs">
|
||||||
|
{{ scoreC }}
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 q-pr-xs text-grey-7">คะแนน</div>
|
||||||
|
|
||||||
|
<div class="col-xs-4 col-sm-5 text-grey-7">รวมทั้งหมด</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 q-pr-xs">
|
||||||
|
{{ scoreSumFull }}
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3 col-sm-2 q-pr-xs">
|
||||||
|
{{ scoreSum }}
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 q-pr-xs text-grey-7">คะแนน</div>
|
||||||
|
|
||||||
|
<div class="col-xs-4 col-sm-5 text-weight-bold q-pt-sm">ผลการสอบ</div>
|
||||||
|
<div class="col-xs-8 col-sm-6 q-pr-xs text-weight-bold text-subtitle1">
|
||||||
|
<span :class="examResultinscore != 'ผ่าน' ? 'text-red' : 'text-positive'">{{
|
||||||
|
examResultinscore
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="q-pt-xs row">
|
<!-- <div class="q-pt-xs row">
|
||||||
<div class="">ห้องสอบ :</div>
|
<div class="">ห้องสอบ :</div>
|
||||||
|
|
@ -126,7 +167,13 @@ const fullName = ref<string>('')
|
||||||
const examNumber = ref<string>('')
|
const examNumber = ref<string>('')
|
||||||
const citizenId = ref<string>('')
|
const citizenId = ref<string>('')
|
||||||
const examSeat = ref<string>('')
|
const examSeat = ref<string>('')
|
||||||
const point = ref<string>('')
|
const scoreBFull = ref<number>(0)
|
||||||
|
const scoreB = ref<number>(0)
|
||||||
|
const scoreCFull = ref<number>(0)
|
||||||
|
const scoreC = ref<number>(0)
|
||||||
|
const scoreSumFull = ref<number>(0)
|
||||||
|
const scoreSum = ref<number>(0)
|
||||||
|
const examResultinscore = ref<string>('')
|
||||||
const avatar = ref<string>('')
|
const avatar = ref<string>('')
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
|
@ -143,7 +190,14 @@ const fetchStatus = async () => {
|
||||||
examNumber.value = data.examIdenNumber
|
examNumber.value = data.examIdenNumber
|
||||||
citizenId.value = data.citizenId
|
citizenId.value = data.citizenId
|
||||||
examSeat.value = data.seatNumber
|
examSeat.value = data.seatNumber
|
||||||
point.value = data.point
|
scoreBFull.value = data.pointTotalB
|
||||||
|
scoreB.value = data.pointB
|
||||||
|
scoreCFull.value = data.pointTotalC
|
||||||
|
scoreC.value = data.pointC
|
||||||
|
scoreSumFull.value = parseInt(data.pointB) + parseInt(data.pointC)
|
||||||
|
scoreSum.value = parseInt(data.pointB) + parseInt(data.pointC)
|
||||||
|
scoreC.value = data.pointC
|
||||||
|
examResultinscore.value = data.pass
|
||||||
avatar.value = data.avatar
|
avatar.value = data.avatar
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,14 @@
|
||||||
<div class="absolute-bottom text-center">หลักฐานชำระเงิน</div>
|
<div class="absolute-bottom text-center">หลักฐานชำระเงิน</div>
|
||||||
</q-img>
|
</q-img>
|
||||||
</label>
|
</label>
|
||||||
<q-file
|
<input
|
||||||
|
id="file-upload"
|
||||||
|
type="file"
|
||||||
|
v-if="status == 'payment' || status == 'rejectPayment'"
|
||||||
|
accept="image/*"
|
||||||
|
@change="uploadImage"
|
||||||
|
/>
|
||||||
|
<!-- <q-file
|
||||||
id="file-upload"
|
id="file-upload"
|
||||||
v-model="filePayment"
|
v-model="filePayment"
|
||||||
dense
|
dense
|
||||||
|
|
@ -90,7 +97,7 @@
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon name="attach_file" />
|
<q-icon name="attach_file" />
|
||||||
</template>
|
</template>
|
||||||
</q-file>
|
</q-file> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -292,12 +299,12 @@ const fetchData = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const clickPayment = async () => {
|
const clickPayment = async () => {
|
||||||
if (filePayment.value.length > 0) {
|
if (img.value != null || img.value != '') {
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('', filePayment.value[0])
|
formData.append('', filePayment.value[0])
|
||||||
loader.value = true
|
loader.value = true
|
||||||
await http
|
await http
|
||||||
.put(config.API.candidatePayment(examId.value, positionId.value), formData)
|
.post(config.API.candidatePayment(examId.value, positionId.value))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
success($q, 'ส่งหลักฐานชำระเงินสำเร็จ')
|
success($q, 'ส่งหลักฐานชำระเงินสำเร็จ')
|
||||||
})
|
})
|
||||||
|
|
@ -308,12 +315,31 @@ const clickPayment = async () => {
|
||||||
filePayment.value = []
|
filePayment.value = []
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
modalError($q, 'ไม่สามารถอัพโหลดไฟล์ได้', 'กรุณาเลือกไฟล์ที่ต้องการอัพโหลด')
|
modalError($q, 'ไม่สามารถยืนยันการชำระเงินได้', 'กรุณาอัปโหลดเอกสารหลักฐานชำระเงิน')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const uploadImage = async (e: any) => {
|
const uploadImage = async (file: any) => {
|
||||||
filePayment.value = e
|
let input = file.target.files
|
||||||
|
if (input.length > 0) {
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('', input[0])
|
||||||
|
loader.value = true
|
||||||
|
await http
|
||||||
|
.put(config.API.candidatePayment(examId.value, positionId.value), formData)
|
||||||
|
.then(() => {
|
||||||
|
success($q, 'ส่งหลักฐานชำระเงินสำเร็จ')
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
.finally(async () => {
|
||||||
|
loader.value = false
|
||||||
|
props.fetchStep()
|
||||||
|
await fetchData()
|
||||||
|
file = []
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
modalError($q, 'ไม่สามารถอัพโหลดไฟล์ได้', 'กรุณาเลือกไฟล์ที่ต้องการอัพโหลด')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const downloadBillPayment = () => {
|
const downloadBillPayment = () => {
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกสถานที่ทำงาน/ฝึกงาน'}`]"
|
:rules="[(val) => !!val || `${'กรุณากรอกสถานที่ทำงาน/ฝึกงาน'}`]"
|
||||||
:label="`${'สถานที่ทำงาน/ฝึกงาน'}`"
|
:label="`${'สถานที่ทำงาน/ฝึกงาน'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||||
|
|
@ -85,6 +86,7 @@
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่ง/ลักษณะงาน'}`]"
|
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่ง/ลักษณะงาน'}`]"
|
||||||
:label="`${'ตำแหน่ง/ลักษณะงาน'}`"
|
:label="`${'ตำแหน่ง/ลักษณะงาน'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||||
|
|
@ -100,6 +102,7 @@
|
||||||
:label="`${'เงินเดือนสุดท้ายก่อนออก'}`"
|
:label="`${'เงินเดือนสุดท้ายก่อนออก'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
type="number"
|
type="number"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||||
|
|
@ -127,6 +130,7 @@
|
||||||
lazy-rules
|
lazy-rules
|
||||||
:borderless="!edit"
|
:borderless="!edit"
|
||||||
:model-value="dateThaiRange(duration)"
|
:model-value="dateThaiRange(duration)"
|
||||||
|
hide-bottom-space
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon
|
<q-icon
|
||||||
|
|
@ -153,6 +157,7 @@
|
||||||
:label="`${'เหตุผลที่ออก'}`"
|
:label="`${'เหตุผลที่ออก'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -384,7 +389,7 @@ const clickDeleteRow = async () => {
|
||||||
if (rawItem.value != null) {
|
if (rawItem.value != null) {
|
||||||
loader.value = true
|
loader.value = true
|
||||||
await http
|
await http
|
||||||
.delete(config.API.candidateCareer(rawItem.value.id,""))
|
.delete(config.API.candidateCareer(rawItem.value.id, ''))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
success($q, 'ลบข้อมูลสำเร็จ')
|
success($q, 'ลบข้อมูลสำเร็จ')
|
||||||
})
|
})
|
||||||
|
|
@ -461,7 +466,7 @@ const saveData = async () => {
|
||||||
const editData = async () => {
|
const editData = async () => {
|
||||||
loader.value = true
|
loader.value = true
|
||||||
await http
|
await http
|
||||||
.put(config.API.candidateCareer(id.value,""), {
|
.put(config.API.candidateCareer(id.value, ''), {
|
||||||
name: location.value,
|
name: location.value,
|
||||||
position: position.value,
|
position: position.value,
|
||||||
salary: salary.value,
|
salary: salary.value,
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,9 @@
|
||||||
"
|
"
|
||||||
icon="mdi-file-document"
|
icon="mdi-file-document"
|
||||||
:addData="true"
|
:addData="true"
|
||||||
:editOnly="true"
|
:editOnly="false"
|
||||||
:editData="status == 'register' || status == 'rejectRegister'"
|
:editData="status == 'register' || status == 'rejectRegister'"
|
||||||
|
:save="uploadData"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div v-if="edit" class="row justify-center row col-12">
|
<div v-if="edit" class="row justify-center row col-12">
|
||||||
|
|
@ -35,9 +36,8 @@
|
||||||
class="full-width"
|
class="full-width"
|
||||||
text-color="dark"
|
text-color="dark"
|
||||||
:max-size="10000000"
|
:max-size="10000000"
|
||||||
accept=".jpg,.png,.pdf,.csv,.doc"
|
|
||||||
bordered
|
bordered
|
||||||
label="[ไฟล์ jpg,png,pdf,csv,doc ขนาดไม่เกิน 10MB]"
|
label="[ไฟล์ขนาดไม่เกิน 10MB]"
|
||||||
@added="fileAdd"
|
@added="fileAdd"
|
||||||
>
|
>
|
||||||
<template v-slot:header="scope">
|
<template v-slot:header="scope">
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
<q-uploader-add-trigger />
|
<q-uploader-add-trigger />
|
||||||
<q-tooltip>เลือกไฟล์</q-tooltip>
|
<q-tooltip>เลือกไฟล์</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<q-btn
|
<!-- <q-btn
|
||||||
v-if="scope.canUpload"
|
v-if="scope.canUpload"
|
||||||
icon="cloud_upload"
|
icon="cloud_upload"
|
||||||
label="อัพโหลดไฟล์"
|
label="อัพโหลดไฟล์"
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
flat
|
flat
|
||||||
>
|
>
|
||||||
<q-tooltip>อัพโหลดไฟล์</q-tooltip>
|
<q-tooltip>อัพโหลดไฟล์</q-tooltip>
|
||||||
</q-btn>
|
</q-btn> -->
|
||||||
|
|
||||||
<q-btn v-if="scope.isUploading" icon="clear" @click="scope.abort" round dense flat>
|
<q-btn v-if="scope.isUploading" icon="clear" @click="scope.abort" round dense flat>
|
||||||
<q-tooltip>ยกเลิกการอัปโหลด</q-tooltip>
|
<q-tooltip>ยกเลิกการอัปโหลด</q-tooltip>
|
||||||
|
|
@ -163,14 +163,16 @@ const loader = ref<boolean>(false)
|
||||||
const edit = ref<boolean>(props.status == 'register' || props.status == 'rejectRegister')
|
const edit = ref<boolean>(props.status == 'register' || props.status == 'rejectRegister')
|
||||||
const name = ref<string>('')
|
const name = ref<string>('')
|
||||||
const files = ref<UploadType[]>([])
|
const files = ref<UploadType[]>([])
|
||||||
|
const file = ref<File[]>([])
|
||||||
const emit = defineEmits(['update:loader'])
|
const emit = defineEmits(['update:loader'])
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await getData()
|
await getData()
|
||||||
})
|
})
|
||||||
|
|
||||||
const fileAdd = async (file: any) => {
|
const fileAdd = async (val: any) => {
|
||||||
name.value = file[0].name
|
name.value = val[0].name
|
||||||
|
file.value = val
|
||||||
}
|
}
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
|
|
@ -206,14 +208,15 @@ const deleteData = async (id: string) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const uploadData = async (file: File[]) => {
|
const uploadData = async () => {
|
||||||
loader.value = true
|
console.log('asdasd')
|
||||||
const blob = file.slice(0, file[0].size)
|
const blob = file.value.slice(0, file.value[0].size)
|
||||||
const newFile = new File(blob, name.value, {
|
const newFile = new File(blob, name.value, {
|
||||||
type: file[0].type
|
type: file.value[0].type
|
||||||
})
|
})
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('', newFile)
|
formData.append('', newFile)
|
||||||
|
loader.value = true
|
||||||
await http
|
await http
|
||||||
.put(config.API.candidateUpload(examId.value, positionId.value), formData)
|
.put(config.API.candidateUpload(examId.value, positionId.value), formData)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
@ -223,9 +226,7 @@ const uploadData = async (file: File[]) => {
|
||||||
.finally(async () => {
|
.finally(async () => {
|
||||||
loader.value = false
|
loader.value = false
|
||||||
name.value = ''
|
name.value = ''
|
||||||
setTimeout(() => {
|
uploader.value.reset()
|
||||||
uploader.value.reset()
|
|
||||||
}, 100)
|
|
||||||
await getData()
|
await getData()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@
|
||||||
option-label="name"
|
option-label="name"
|
||||||
:options="educationLevelOptions"
|
:options="educationLevelOptions"
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
|
@ -87,6 +88,7 @@
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกสาขาวิชา/วิชาเอก'}`]"
|
:rules="[(val) => !!val || `${'กรุณากรอกสาขาวิชา/วิชาเอก'}`]"
|
||||||
:label="`${'สาขาวิชา/วิชาเอก'}`"
|
:label="`${'สาขาวิชา/วิชาเอก'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
|
@ -102,6 +104,7 @@
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกคะแนนเฉลี่ยตลอดหลักสูตร'}`]"
|
:rules="[(val) => !!val || `${'กรุณากรอกคะแนนเฉลี่ยตลอดหลักสูตร'}`]"
|
||||||
:label="`${'คะแนนเฉลี่ยตลอดหลักสูตร'}`"
|
:label="`${'คะแนนเฉลี่ยตลอดหลักสูตร'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
|
@ -116,6 +119,7 @@
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกชื่อสถานศึกษา'}`]"
|
:rules="[(val) => !!val || `${'กรุณากรอกชื่อสถานศึกษา'}`]"
|
||||||
:label="`${'ชื่อสถานศึกษา'}`"
|
:label="`${'ชื่อสถานศึกษา'}`"
|
||||||
@update:modelValue="clickEditRow"
|
@update:modelValue="clickEditRow"
|
||||||
|
hide-bottom-space
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
|
@ -143,6 +147,7 @@
|
||||||
lazy-rules
|
lazy-rules
|
||||||
:borderless="!edit"
|
:borderless="!edit"
|
||||||
:model-value="dateThaiRange(duration)"
|
:model-value="dateThaiRange(duration)"
|
||||||
|
hide-bottom-space
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon
|
<q-icon
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue