แสดงรูปหลักฐานชำระ

This commit is contained in:
Kittapath 2023-04-06 15:43:09 +07:00
parent cce5f7adfd
commit 08b2802c61
4 changed files with 146 additions and 54 deletions

View file

@ -86,11 +86,31 @@
<div class="absolute-bottom text-center">หลกฐานชำระเง</div> <div class="absolute-bottom text-center">หลกฐานชำระเง</div>
</q-img> </q-img>
</label> </label>
<input <!-- <input
id="file-upload" id="file-upload"
type="file" type="file"
v-if="status == 'payment' || status == 'rejectPayment'" v-if="status == 'payment' || status == 'rejectPayment'"
/> @update:model-value="
(val) => {
file = val[0]
}
"
/> -->
<q-file
id="file-upload"
v-model="filePayment"
dense
label="อัพโหลดหลักฐานชำระเงิน"
outlined
use-chips
multiple
class="q-pl-sm"
v-if="status == 'payment' || status == 'rejectPayment'"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
</div> </div>
</div> </div>
</div> </div>
@ -106,7 +126,9 @@
<q-item-label class="text-weight-medium text-subtitle1" <q-item-label class="text-weight-medium text-subtitle1"
>โอนเงนผานทางเครอง ATM / เคานเตอรธนาคาร</q-item-label >โอนเงนผานทางเครอง ATM / เคานเตอรธนาคาร</q-item-label
> >
<q-item-label caption class="gt-xs">อนนทหลงชำระ</q-item-label> <q-item-label caption class="gt-xs"
>อนหลงแจงการโอนภายใน 24 วโมง</q-item-label
>
</q-item-section> </q-item-section>
<!-- <q-item-section avatar class="gt-xs"> <!-- <q-item-section avatar class="gt-xs">
<q-avatar size="32px"> <q-avatar size="32px">
@ -120,46 +142,88 @@
<q-separator /> <q-separator />
<q-slide-transition :duration="100"> <q-slide-transition :duration="100">
<div class="q-pa-md bg-grey-1"> <div class="q-pa-md bg-grey-1">
<q-card bordered class="q-pa-md"> <div class="row q-col-gutter-sm">
<div class="q-pb-sm"> <div class="col-xs-12 col-sm-7">
<span class="text-weight-medium">รหสใบสงซ :</span> <q-card bordered class="q-pa-md">
<span class="text-blue q-pl-sm">12837495985900</span> <div class="q-pb-sm">
<span class="text-weight-medium">รหสใบสงซ :</span>
<span class="text-blue q-pl-sm">12837495985900</span>
</div>
<div>
<span class="text-weight-medium">ยอดสทธ (บาท) :</span>
<span class="text-blue q-pl-sm text-bold">200.00</span>
</div>
<q-btn
color="blue"
icon="print"
class="q-px-md q-mt-md"
outline
dense
label="พิมพ์ใบแจ้งการชำระเงิน"
/>
</q-card>
<div class="q-pt-md q-pb-xs text-bold">ธนาคารกรงไทย</div>
<div class="q-pb-md">สอดบตร ATM กดรหสและเลอกรายการ</div>
<ul class="q-gutter-y-sm">
<li>นท 1 บรการอนๆ</li>
<li>นท 2 ชำระคาบรการ</li>
<li>นท 3 ระบรหสบร</li>
<li>
นท 4 เลอกบญชชำระเง ญชของตวทานวาเปนบญชออมทรพย หร
กระแสรายว
</li>
<li>
นท 5 ใสรหสบรทฯ
<span class="text-blue text-bold">2111</span> และ ใส Ref No.1
นดวยเครองหมายจ ( . ) แลวตามดวย Ref No.2 (ใน "ใบแจ้งการชำระเงิน")
</li>
<li>
ยกตวอยางเช Ref No.1 012345 และ Ref No.2 308833องใส เป
012345.308833
</li>
<li>นท 6 ใสจำนวนเงนทชำระรวมหนวยสตางค</li>
<li>นท 7 ตรวจสอบรายการ</li>
</ul>
</div> </div>
<div> <div class="col-xs-12 col-sm-5">
<span class="text-weight-medium">ยอดสทธ (บาท) :</span> <label for="file-upload" class="col-12 row"
<span class="text-blue q-pl-sm text-bold">200.00</span> ><!-- :src="img" -->
<q-img
src="@/assets/ex_slip.jpeg"
fit="contain"
style="min-height: 300px; max-height: 300px"
class="col-12 bg-white"
>
<div class="absolute-bottom text-center">หลกฐานชำระเง</div>
</q-img>
</label>
<!-- <input
id="file-upload"
type="file"
v-if="status == 'payment' || status == 'rejectPayment'"
@update:model-value="
(val) => {
file = val[0]
}
"
/> -->
<q-file
id="file-upload"
v-model="filePayment"
dense
label="อัพโหลดหลักฐานชำระเงิน"
outlined
use-chips
multiple
class="q-pl-sm"
v-if="status == 'payment' || status == 'rejectPayment'"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
</div> </div>
<q-btn </div>
color="blue"
icon="print"
class="q-px-md q-mt-md"
outline
dense
label="พิมพ์ใบแจ้งการชำระเงิน"
/>
</q-card>
<div class="q-pt-md q-pb-xs text-bold">ธนาคารกรงไทย</div>
<div class="q-pb-md">สอดบตร ATM กดรหสและเลอกรายการ</div>
<ul class="q-gutter-y-sm">
<li>นท 1 บรการอนๆ</li>
<li>นท 2 ชำระคาบรการ</li>
<li>นท 3 ระบรหสบร</li>
<li>
นท 4 เลอกบญชชำระเง ญชของตวทานวาเปนบญชออมทรพย หร
กระแสรายว
</li>
<li>
นท 5 ใสรหสบรทฯ <span class="text-blue text-bold">2111</span> และ ใส
Ref No.1 นดวยเครองหมายจ ( . ) แลวตามดวย Ref No.2 (ใน
"ใบแจ้งการชำระเงิน")
</li>
<li>
ยกตวอยางเช Ref No.1 012345 และ Ref No.2 308833องใส เป
012345.308833
</li>
<li>นท 6 ใสจำนวนเงนทชำระรวมหนวยสตางค</li>
<li>นท 7 ตรวจสอบรายการ</li>
</ul>
</div> </div>
</q-slide-transition> </q-slide-transition>
</q-list> </q-list>
@ -207,6 +271,8 @@ const route = useRoute()
const examId = ref<string>(route.params.id.toString()) const examId = ref<string>(route.params.id.toString())
const positionId = ref<string>(route.params.positionId.toString()) const positionId = ref<string>(route.params.positionId.toString())
const bank = ref<any>([]) const bank = ref<any>([])
const filePayment = ref<File[]>([])
const fileDataUpload = ref<File>()
onMounted(async () => { onMounted(async () => {
await fetchPaymentExam() await fetchPaymentExam()
@ -236,17 +302,29 @@ const fetchPaymentExam = async () => {
} }
const clickPayment = async () => { const clickPayment = async () => {
loader.value = true if (filePayment.value.length > 0) {
await http const blob = filePayment.value.slice(0, filePayment.value[0].size)
.put(config.API.candidatePayment(examId.value, positionId.value)) const newFile = new File(blob, filePayment.value[0].name, {
.then(() => { type: filePayment.value[0].type
success($q, 'ส่งหลักฐานชำระเงินสำเร็จ')
})
.catch(() => {})
.finally(async () => {
loader.value = false
props.fetchStep()
}) })
fileDataUpload.value = newFile
const formData = new FormData()
formData.append('', fileDataUpload.value)
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()
filePayment.value = []
})
} else {
modalError($q, 'ไม่สามารถอัพโหลดไฟล์ได้', 'กรุณาเลือกไฟล์ที่ต้องการอัพโหลด')
}
} }
const getClass = (val: string) => { const getClass = (val: string) => {
@ -279,6 +357,8 @@ const message = (val: string) => {
return 'ตรวจสอบเเล้ว' return 'ตรวจสอบเเล้ว'
case 'done': case 'done':
return 'ตรวจสอบเเล้ว' return 'ตรวจสอบเเล้ว'
case 'waiver':
return 'สละสิทธิ์สอบ'
default: default:
return 'รออัปโหลดหลักฐานชำระเงิน' return 'รออัปโหลดหลักฐานชำระเงิน'
} }

View file

@ -29,6 +29,7 @@
:name="3" :name="3"
title="ชำระค่าธรรมเนียม" title="ชำระค่าธรรมเนียม"
:icon="stepRaw >= 3 ? (stepRaw == 3 ? 'mdi-pencil' : 'mdi-check-bold') : 'mdi-receipt'" :icon="stepRaw >= 3 ? (stepRaw == 3 ? 'mdi-pencil' : 'mdi-check-bold') : 'mdi-receipt'"
v-if="stepPayment"
> >
<q-card bordered class="q-pa-lg"> <q-card bordered class="q-pa-lg">
<ExamPayment :fetchStep="fetchStep" :status="status" /> <ExamPayment :fetchStep="fetchStep" :status="status" />
@ -80,6 +81,7 @@ const positionId = ref<string>(route.params.positionId.toString())
const loader = ref<boolean>(false) const loader = ref<boolean>(false)
const status = ref<string>('register') const status = ref<string>('register')
const modalConsend = ref<boolean>(false) const modalConsend = ref<boolean>(false)
const stepPayment = ref<boolean>(true)
onMounted(async () => { onMounted(async () => {
// stepRaw.value = 3 // stepRaw.value = 3
@ -96,6 +98,14 @@ const candidateCheck = async () => {
const data = res.data.result const data = res.data.result
store.consend = data.consend store.consend = data.consend
const positionExam = data.positionExam const positionExam = data.positionExam
stepPayment.value = data.bank
// console.log('qwe')
// console.log(positionId.value != '00000000-0000-0000-0000-000000000000')
// console.log(positionId.value)
// console.log(positionExam)
// console.log(positionExam.id)
// console.log(data.status != 'register')
// console.log(data.status != 'rejectRegister')
if ( if (
positionId.value != '00000000-0000-0000-0000-000000000000' && positionId.value != '00000000-0000-0000-0000-000000000000' &&
positionExam.id != positionId.value && positionExam.id != positionId.value &&
@ -134,8 +144,8 @@ const fetchStep = async () => {
stepRaw.value = 2 stepRaw.value = 2
step.value = 2 step.value = 2
} else if (data == 'checkRegister') { } else if (data == 'checkRegister') {
stepRaw.value = 3 stepRaw.value = 2
step.value = 3 step.value = 2
} else if (data == 'payment') { } else if (data == 'payment') {
stepRaw.value = 3 stepRaw.value = 3
step.value = 3 step.value = 3

View file

@ -384,6 +384,8 @@ export const useCounterMixin = defineStore('mixin', () => {
return 'รอเจ้าหน้าที่สรุปคะแนนสอบ' return 'รอเจ้าหน้าที่สรุปคะแนนสอบ'
case 'done': case 'done':
return 'สอบคัดเลือกสำเร็จ' return 'สอบคัดเลือกสำเร็จ'
case 'waiver':
return 'สละสิทธิ์สอบ'
default: default:
return '-' return '-'
} }

View file

@ -106,7 +106,7 @@ const fetchStatus = async () => {
</div> </div>
</q-toolbar-title> </q-toolbar-title>
<q-space /> <q-space />
<q-badge outline color="blue" class="q-mr-md text-bold"> <q-badge flat color="blue" class="q-mr-md text-bold">
{{ statusCandidate(status) }} {{ statusCandidate(status) }}
</q-badge> </q-badge>
<q-btn <q-btn