Merge branch 'develop' of https://github.com/Frappet/BMA-EHR-RECRUIT-EXAM-VUE3 into develop
This commit is contained in:
commit
879b9cd2e1
7 changed files with 126 additions and 67 deletions
|
|
@ -20,25 +20,71 @@
|
|||
ข้อกำหนดและเงื่อนไขฉบับนี้ ถือเป็นข้อตกลงในการเก็บข้อมูล
|
||||
</div>
|
||||
<q-card class="col-12 q-pa-md" flat>
|
||||
<q-card-section class="text-black text-left"
|
||||
>ข้าพเจ้าเข้าใจดีว่า ผู้ให้บริการ จะเก็บรวบรวม ใช้ และเปิดเผยข้อมูลส่วนบุคคลของข้าพเจ้า
|
||||
เพื่อวัตถุประสงค์ในการให้บริการตามสัญญานี้ การวิเคราะห์ข้อมูลเพื่อวางแผนทางการตลาด
|
||||
การนำเสนอสินค้าและบริการอื่นๆ ของผู้ให้บริการแก่ข้าพเจ้า รวมถึงวัตถุประสงค์อื่นๆ
|
||||
ตามที่ผู้ให้บริการเห็นสมควร <br /><br />
|
||||
ข้าพเจ้ารับทราบดีกว่า หากข้าพเจ้าไม่ตกลงยอมรับข้อกำหนดและเงื่อนไขนี้
|
||||
ผู้ให้บริการสงวนสิทธิไม่ให้บริการแก่ข้าพเจ้าได้
|
||||
<q-card-section class="text-black text-left">
|
||||
<p>
|
||||
หนังสือยินยอมให้เก็บ ใช้หรือเปิดเผยข้อมูลส่วนบุคคลของผู้สมัคร
|
||||
เพื่อสมัครงานกับกรุงเทพมหานครฯ 1. คำยินยอมจากผู้ให้ข้อมูลกับกรุงเทพมหานครฯ ข้าพเจ้า
|
||||
<strong>{{ fullname }}</strong>
|
||||
ยินยอมให้ใช้หรือเปิดเผยข้อมูลส่วนบุคคลที่เกี่ยวข้องกับข้าพเจ้า สำหรับให้กรุงเทพมหานครฯ
|
||||
พิจารณาคุณสมบัติว่ามีความเหมาะสมกับตำแหน่งงานที่ทางกรุงเทพมหานครฯ เปิดรับหรือไม่
|
||||
ข้าพเจ้าฯ ยินยอมให้ทางกรุงเทพมหานครฯ เก็บข้อมูลส่วนบุคคล ตรวจสอบประวัติส่วนบุคคล
|
||||
ประวัติอาชญากรรม หรือประวัติ/ประสบการณ์การทำงานที่ผ่านมาของข้าพเจ้าฯ ไปยังบุคคล และ/หรือ
|
||||
หน่วยงานต่างๆ ที่เกี่ยวข้อง
|
||||
เพื่อเป็นข้อมูลประกอบการพิจารณาการคัดเลือกตามตำแหน่งที่ข้าพเจ้าสมัคร โดยข้าพเจ้าฯ
|
||||
ยินยอมให้เปิดเผยข้อมูลดังต่อไปนี้
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
1. รายละเอียดข้อมูล ที่ผู้สมัครงานได้กรอกในใบสมัครงานของกรุงเทพมหานครฯ
|
||||
ข้อมูลบุคคลอ้างอิง/บุคคลที่เกี่ยวข้องตามที่ได้ระบุไว้ในใบสมคัร
|
||||
ประวัติส่วนบุคคลและประวัติการทำงานเป็นต้น 2.รายละเอียดข้อมูลต่างๆ
|
||||
ในเอกสารหรือหลักฐานที่ผู้สมัครได้นำส่งให้กับกรุงเทพมหานครฯ ทุกช่องทางการสื่อสาร เช่น
|
||||
จดหมาย หรืออีเมล์เป็นต้น ในกรณีที่ท่าน ไม่ผ่าน การพิจารณารับเข้าทำงาน
|
||||
ข้อมูลในใบสมคัรจะถูกเก็บรักษาไว้อีกเป็นระยะเวลา 24 เดือน
|
||||
เพื่อพิจารณาความเหมาะสมกับตำแหน่งงานอื่น ในกรณีที่ท่าน ผ่าน การพิจารณารับเข้าทำงาน
|
||||
ข้อมูลในใบสมัครจะถูกเก็บรักษาไว้ตลอดระยะเวลาการเป็นพนกังาน/ลูกจ้าง
|
||||
และเก็บต่อเนื่องอีกเป็นระยะเวลา 10 ปี
|
||||
เพื่อกรณีต้องใช้เป็นหลักฐานประกอบการใช้สิทธิเรียกร้องตามกฎหมาย
|
||||
พระราชบัญญัติคุ้มครองแรงงาน พ.ศ. 2541 และที่แก้ไขเพิ่มเติม
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
2. ข้อมูลส่วนบุคคลที่กรุงเทพมหานครฯ เก็บรวบรวมในคร้ังนี้ กรุงเทพมหานครฯ
|
||||
จะใช้วิธีการที่ชอบด้วยกฏหมายและเป็นธรรมในการเก็บรวบรวมข้อมูลส่วนบุคคลอย่างจำกัดเพียงเท่าที่จำเป็นภายใต้วัตถุประสงค์การทำงานของกรุงเทพมหานครฯ
|
||||
เพื่อใช้เป็นข้อมูลประกอบการพิจารณาคัดเลือกตามตำแหน่งที่ผู้ให้ข้อมูลประสงค์จะสมัครรับการคัดเลือกโดยกรุงเทพมหานครฯ
|
||||
จะเก็บรวบรวมข้อมูลส่วนบุคคลของท่าน ดังนี้ - ชื่อ-นามสกุล
|
||||
เพื่อติดต่อกับทางกรุงเทพมหานครฯ - อีเมล์ เพื่อใช้ในการติดต่อกับกรุงเทพมหานครฯ -
|
||||
เบอร์โทร เพื่อใช้สมัครงานกับทางกรุงเทพมหานครฯ - ที่อยู่
|
||||
เพื่อใช้สมัครงานกับทางกรุงเทพมหานครฯ - ประวัติการทำงาน, ประวัติการศึกษา,
|
||||
ประวัติการฝึกอบรม ตามข้อมูลข้างต้น
|
||||
ท้้งนี้ข้อมูลส่วนบุคคลดังกล่าวเป็นข้อมูลที่จำเป็นสำหรับการทำงานของกรุงเทพมหานครฯ
|
||||
หากไม่มีข้อมูลดังกล่าว อาจส่งผลต่อกระบวนการพิจารณาคุณสมบัติของผู้สมัคร
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
ทั้งนี้ผู้สมัครเป็นผู้มีสิทธิเลือกได้ว่าจะบันทึกข้อมูลส่วนบุคคลอื่นใด
|
||||
และยินดีจะเปิดเผยข้อมูลดังกล่าวกับบุคคลหรือหน่วยงานอื่นหรือไม่
|
||||
วัตถุประสงค์ในการเก็บรวบรวมข้อมูลส่วนบุคคล กรุงเทพมหานครฯ
|
||||
จะเก็บรวบรวมข้อมูลส่วนบุคคลของท่านเพื่อนำไปใช้หรือเปิดเผยเท่าที่จำเป็นภายใต้วัตถุประสงค์ในการใช้ประกอบการพิจารณาคัดเลือกตามตำแหน่งที่ผู้ให้ข้อมูลแสดงความประสงค์ไว้เท่าน้้น
|
||||
กรุงเทพมหานครฯ
|
||||
จะไม่ดำเนินการอื่นใดแตกต่างจากที่ระบุในวัตถุประสงค์เว้นแต่มีกฏหมายบัญญัติให้กระทำหรือมีหนังสือร้องขอที่สามารถปฏิบัติได้ตามกฏหมาย
|
||||
เช่น เพื่อความจำเป็นในการป้องกันด้านสุขภาพและโรคติดต่ออันตราย
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
<q-card-actions align="right" class="bg-white text-teal">
|
||||
<q-card-actions align="right" class="bg-white text-teal justify-center">
|
||||
<q-btn label="ยกเลิก" color="grey" @click="close" flat />
|
||||
<q-btn label="ตกลง" color="primary" @click="ok" />
|
||||
</q-card-actions>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted, ref } from 'vue'
|
||||
import keycloak from '@/plugins/keycloak'
|
||||
const props = defineProps({
|
||||
close: {
|
||||
type: Function,
|
||||
|
|
@ -50,6 +96,14 @@ const props = defineProps({
|
|||
}
|
||||
})
|
||||
|
||||
const fullname = ref<string>('')
|
||||
/**
|
||||
* ดิงชื่อผู้ใช้งานจาก keycloak
|
||||
*/
|
||||
if (keycloak.tokenParsed != null) {
|
||||
fullname.value = keycloak.tokenParsed.name
|
||||
}
|
||||
|
||||
const ok = async () => {
|
||||
props.ok()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -282,27 +282,26 @@ const saveData = async () => {
|
|||
if (store.consend == true) {
|
||||
edit.value = false
|
||||
emit('update:statusEdit', false)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
} else {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
modalConsend.value = true
|
||||
}
|
||||
}
|
||||
|
||||
const changeBtn = async () => {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const selectProvince = (e: string, name: string) => {
|
||||
|
|
|
|||
|
|
@ -402,27 +402,26 @@ const saveData = async () => {
|
|||
if (store.consend == true) {
|
||||
edit.value = false
|
||||
emit('update:statusEdit', false)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
} else {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
modalConsend.value = true
|
||||
}
|
||||
}
|
||||
|
||||
const changeBtn = async () => {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const selectRadio = (e: boolean, i: any) => {
|
||||
|
|
|
|||
|
|
@ -106,7 +106,11 @@
|
|||
:label="`${'วัน/เดือน/ปี เกิด'}`"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
:style="edit ? 'color: var(--q-primary)' : 'color: var(--q-grey)'"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
|
|
@ -241,7 +245,11 @@
|
|||
:label="`${'วัน/เดือน/ปี'}`"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
:style="edit ? 'color: var(--q-primary)' : 'color: var(--q-grey)'"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
|
|
@ -420,27 +428,26 @@ const saveData = async () => {
|
|||
if (store.consend == true) {
|
||||
edit.value = false
|
||||
emit('update:statusEdit', false)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
} else {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
modalConsend.value = true
|
||||
}
|
||||
}
|
||||
|
||||
const changeBtn = async () => {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const fetchProvince = async () => {
|
||||
|
|
|
|||
|
|
@ -277,27 +277,26 @@ const saveData = async () => {
|
|||
if (store.consend == true) {
|
||||
edit.value = false
|
||||
emit('update:statusEdit', false)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
} else {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
modalConsend.value = true
|
||||
}
|
||||
}
|
||||
|
||||
const changeBtn = async () => {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
await myform.value.validate().then(async (success: boolean) => {
|
||||
if (success) {
|
||||
if (edit.value == true) {
|
||||
if (props.statusEdit === true) {
|
||||
edit.value = false
|
||||
props.notiNoEdit()
|
||||
} else {
|
||||
emit('update:statusEdit', true)
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
emit('update:statusEdit', false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const consenClose = () => {
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
active-color="blue-7"
|
||||
inactive-color="positive"
|
||||
done-icon="mdi-check-bold"
|
||||
alternative-labels
|
||||
:active-icon="stepRaw === step && stepRaw != 4 ? 'mdi-pencil' : 'mdi-eye-outline'"
|
||||
>
|
||||
<!-- <q-step
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ export const useCounterMixin = defineStore('mixin', () => {
|
|||
color: 'grey-14'
|
||||
},
|
||||
ok: {
|
||||
color: 'red-6'
|
||||
color: 'red-5'
|
||||
},
|
||||
focus: 'none',
|
||||
persistent: true,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue