ปรับ css ระบบทะเบียนประวัติ แท็บข้อมูลส่วนตัว,ข้อมูลราชการ เสร็จแล้ว
This commit is contained in:
parent
e4dd97f431
commit
93ba885406
19 changed files with 2091 additions and 2270 deletions
|
|
@ -11,22 +11,23 @@ import ResultsPerformance from "@/modules/04_registryNew/components/detail/Achie
|
||||||
const tab = ref<string>("1");
|
const tab = ref<string>("1");
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-mb-md">
|
<div class="row items-center q-my-md">
|
||||||
<div class="text-dark row items-center text-weight-bold">
|
<div class="text-dark row items-center q-px-md">
|
||||||
<q-icon name="mdi-medal" class="q-mr-md" size="sm" />
|
<q-icon name="mdi-account" class="q-mr-md" size="22px" />
|
||||||
<h3 class="resigtry-tab-title">ข้อมูลผลงานและเครื่องราชฯ</h3>
|
<div class="text-subtitle1 text-weight-bold">ข้อมูลผลงานและเครื่องราชฯ</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-tabs
|
<q-tabs
|
||||||
v-model="tab"
|
v-model="tab"
|
||||||
class="text-grey"
|
active-color="blue-8"
|
||||||
active-color="blue"
|
align="left"
|
||||||
indicator-color="white"
|
bordered
|
||||||
align="left"
|
narrow-indicator
|
||||||
narrow-indicator
|
indicator-color="transparent"
|
||||||
bordered
|
dense
|
||||||
|
class="text-grey q-pl-sm"
|
||||||
>
|
>
|
||||||
<q-tab name="1" label="ใบอนุญาตประกอบวิชาชีพ" />
|
<q-tab name="1" label="ใบอนุญาตประกอบวิชาชีพ" />
|
||||||
<q-tab name="2" label="การฝึกอบรม/ดูงาน" />
|
<q-tab name="2" label="การฝึกอบรม/ดูงาน" />
|
||||||
|
|
|
||||||
|
|
@ -475,6 +475,7 @@ onMounted(() => {
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="mdi-pencil-outline"
|
icon="mdi-pencil-outline"
|
||||||
flat
|
flat
|
||||||
|
dense
|
||||||
round
|
round
|
||||||
@click="openDialogEdit()"
|
@click="openDialogEdit()"
|
||||||
><q-tooltip>แก้ไขข้อมูล</q-tooltip></q-btn
|
><q-tooltip>แก้ไขข้อมูล</q-tooltip></q-btn
|
||||||
|
|
@ -483,6 +484,7 @@ onMounted(() => {
|
||||||
color="info"
|
color="info"
|
||||||
icon="mdi-history"
|
icon="mdi-history"
|
||||||
flat
|
flat
|
||||||
|
dense
|
||||||
round
|
round
|
||||||
@click="openDialogHistory()"
|
@click="openDialogHistory()"
|
||||||
><q-tooltip>ประวิติข้อมูลราชการ</q-tooltip></q-btn
|
><q-tooltip>ประวิติข้อมูลราชการ</q-tooltip></q-btn
|
||||||
|
|
@ -490,7 +492,7 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-card bordered class="bg-grey-1 q-pa-md">
|
<q-card bordered class="bg-grey-1 q-pa-md q-mt-sm">
|
||||||
<div class="row q-col-gutter-md">
|
<div class="row q-col-gutter-md">
|
||||||
<div class="col-12 col-sm-6 col-md-6 q-gutter-y-sm">
|
<div class="col-12 col-sm-6 col-md-6 q-gutter-y-sm">
|
||||||
<div
|
<div
|
||||||
|
|
@ -525,7 +527,7 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<q-separator inset color="grey-5" class="q-my-md" />
|
<q-separator color="grey-4" class="q-my-md" />
|
||||||
<div class="row q-col-gutter-md">
|
<div class="row q-col-gutter-md">
|
||||||
<div class="col-12 col-sm-6 col-md-6 q-gutter-y-sm">
|
<div class="col-12 col-sm-6 col-md-6 q-gutter-y-sm">
|
||||||
<div class="col-12 col-sm-6 col-md-6">
|
<div class="col-12 col-sm-6 col-md-6">
|
||||||
|
|
@ -633,129 +635,117 @@ onMounted(() => {
|
||||||
|
|
||||||
<!-- dialog edit -->
|
<!-- dialog edit -->
|
||||||
<q-dialog v-model="modalEdit" persistent>
|
<q-dialog v-model="modalEdit" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 300px"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<form @submit.prevent="validateForm">
|
<form @submit.prevent="validateForm">
|
||||||
<q-header>
|
<DialogHeader tittle="แก้ไขข้อมูลราชการ" :close="closeDialog" />
|
||||||
<q-toolbar>
|
<q-separator color="grey-4" />
|
||||||
<DialogHeader tittle="แก้ไขข้อมูลราชการ" :close="closeDialog" />
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-page class="q-pa-md">
|
<div class="row q-col-gutter-sm">
|
||||||
<div class="row q-col-gutter-sm">
|
<div class="col-6">
|
||||||
<div class="col-6">
|
<datepicker
|
||||||
<datepicker
|
v-model="containDate"
|
||||||
v-model="containDate"
|
:locale="'th'"
|
||||||
:locale="'th'"
|
autoApply
|
||||||
autoApply
|
:enableTimePicker="false"
|
||||||
:enableTimePicker="false"
|
week-start="0"
|
||||||
week-start="0"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">
|
|
||||||
{{ year + 543 }}
|
|
||||||
</template>
|
|
||||||
<template #year-overlay-value="{ value }">
|
|
||||||
{{ parseInt(value + 543) }}
|
|
||||||
</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
ref="containDateRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
hide-bottom-space
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
:model-value="containDate !== null
|
|
||||||
? date2Thai(containDate as Date)
|
|
||||||
: null
|
|
||||||
"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || 'กรุณาเลือก วัน/เดือน/ปี ที่บรรจุ',
|
|
||||||
]"
|
|
||||||
label="วัน/เดือน/ปี ที่บรรจุ"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
:style="'color: var(--q-primary)'"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<datepicker
|
|
||||||
v-model="workDate"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
:enableTimePicker="false"
|
|
||||||
week-start="0"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">
|
|
||||||
{{ year + 543 }}
|
|
||||||
</template>
|
|
||||||
<template #year-overlay-value="{ value }">
|
|
||||||
{{ parseInt(value + 543) }}
|
|
||||||
</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
ref="workDateRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
hide-bottom-space
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
:model-value="workDate !== null
|
|
||||||
? date2Thai(workDate as Date)
|
|
||||||
: null
|
|
||||||
"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || 'กรุณาเลือกเริ่มปฎิบัติราชการ',
|
|
||||||
]"
|
|
||||||
label="วัน/เดือน/ปี เริ่มปฎิบัติราชการ"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
:style="'color: var(--q-primary)'"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="col-12"
|
|
||||||
v-if="containDate && workDate ? dateToISO(containDate as Date) !== dateToISO(workDate as Date) : false"
|
|
||||||
>
|
>
|
||||||
<q-input
|
<template #year="{ year }">
|
||||||
ref="reasonSameDateRef"
|
{{ year + 543 }}
|
||||||
class="full-width inputgreen cursor-pointer"
|
</template>
|
||||||
label="เหตุผลกรณีไม่ตรงกัน"
|
<template #year-overlay-value="{ value }">
|
||||||
type="textarea"
|
{{ parseInt(value + 543) }}
|
||||||
outlined
|
</template>
|
||||||
dense
|
<template #trigger>
|
||||||
:rules="[(val) => !!val || 'กรุณากรอก เหตุผลกรณีไม่ตรงกัน']"
|
<q-input
|
||||||
v-model="reasonSameDate"
|
ref="containDateRef"
|
||||||
/>
|
class="full-width inputgreen cursor-pointer"
|
||||||
</div>
|
hide-bottom-space
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="containDate !== null
|
||||||
|
? date2Thai(containDate as Date)
|
||||||
|
: null
|
||||||
|
"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || 'กรุณาเลือก วัน/เดือน/ปี ที่บรรจุ',
|
||||||
|
]"
|
||||||
|
label="วัน/เดือน/ปี ที่บรรจุ"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
:style="'color: var(--q-primary)'"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
<div class="col-6">
|
||||||
</q-page-container>
|
<datepicker
|
||||||
|
v-model="workDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">
|
||||||
|
{{ year + 543 }}
|
||||||
|
</template>
|
||||||
|
<template #year-overlay-value="{ value }">
|
||||||
|
{{ parseInt(value + 543) }}
|
||||||
|
</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
ref="workDateRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
hide-bottom-space
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="workDate !== null
|
||||||
|
? date2Thai(workDate as Date)
|
||||||
|
: null
|
||||||
|
"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || 'กรุณาเลือกเริ่มปฎิบัติราชการ',
|
||||||
|
]"
|
||||||
|
label="วัน/เดือน/ปี เริ่มปฎิบัติราชการ"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
:style="'color: var(--q-primary)'"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="col-12"
|
||||||
|
v-if="containDate && workDate ? dateToISO(containDate as Date) !== dateToISO(workDate as Date) : false"
|
||||||
|
>
|
||||||
|
<q-input
|
||||||
|
ref="reasonSameDateRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
label="เหตุผลกรณีไม่ตรงกัน"
|
||||||
|
type="textarea"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
:rules="[(val) => !!val || 'กรุณากรอก เหตุผลกรณีไม่ตรงกัน']"
|
||||||
|
v-model="reasonSameDate"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-footer>
|
<q-card-actions align="right">
|
||||||
<q-separator color="grey-4" />
|
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
|
||||||
<q-btn
|
<q-btn
|
||||||
dense
|
dense
|
||||||
unelevated
|
unelevated
|
||||||
|
|
@ -767,112 +757,100 @@ onMounted(() => {
|
||||||
>
|
>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-toolbar>
|
</q-card-actions>
|
||||||
</q-footer>
|
|
||||||
</form>
|
</form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<!-- dialog History -->
|
<!-- dialog History -->
|
||||||
<q-dialog v-model="modalHistory" persistent>
|
<q-dialog v-model="modalHistory" persistent>
|
||||||
<q-layout
|
<q-card style="min-width: 80%">
|
||||||
view="lHh lpr lFf"
|
<DialogHeader
|
||||||
container
|
tittle="ประวัติแก้ไขข้อมูลราชการ"
|
||||||
style="height: 500px; min-width: 80%"
|
:close="() => (modalHistory = !modalHistory)"
|
||||||
class="bg-white"
|
/>
|
||||||
>
|
<q-separator color="grey-4" />
|
||||||
<q-header>
|
|
||||||
<q-toolbar>
|
|
||||||
<DialogHeader
|
|
||||||
tittle="ประวัติแก้ไขข้อมูลราชการ"
|
|
||||||
:close="() => (modalHistory = !modalHistory)"
|
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-page class="q-pa-md">
|
<div class="row q-pb-sm q-gutter-x-sm">
|
||||||
<div class="row q-pb-sm q-gutter-x-sm">
|
<q-space />
|
||||||
<q-space />
|
<q-input
|
||||||
<q-input
|
standout
|
||||||
standout
|
|
||||||
dense
|
|
||||||
v-model="filterKeyword"
|
|
||||||
ref="filterRef"
|
|
||||||
outlined
|
|
||||||
placeholder="ค้นหา"
|
|
||||||
class="col-2"
|
|
||||||
debounce="300"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword == ''"
|
|
||||||
name="search"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword"
|
|
||||||
name="cancel"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
<q-select
|
|
||||||
v-model="visibleColumnsHistory"
|
|
||||||
multiple
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
options-dense
|
|
||||||
:display-value="$q.lang.table.columns"
|
|
||||||
emit-value
|
|
||||||
map-options
|
|
||||||
:options="columnsHistory"
|
|
||||||
option-value="name"
|
|
||||||
options-cover
|
|
||||||
style="min-width: 150px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<d-table
|
|
||||||
ref="table"
|
|
||||||
:columns="columnsHistory"
|
|
||||||
:rows="rowsHistory"
|
|
||||||
flat
|
|
||||||
bordered
|
|
||||||
:paging="true"
|
|
||||||
dense
|
dense
|
||||||
class="custom-header-table"
|
v-model="filterKeyword"
|
||||||
:filter="filterKeyword"
|
ref="filterRef"
|
||||||
:visible-columns="visibleColumnsHistory"
|
outlined
|
||||||
|
placeholder="ค้นหา"
|
||||||
|
class="col-2"
|
||||||
|
debounce="300"
|
||||||
>
|
>
|
||||||
<template v-slot:header="props">
|
<template v-slot:append>
|
||||||
<q-tr :props="props">
|
<q-icon
|
||||||
<q-th
|
v-if="filterKeyword == ''"
|
||||||
v-for="col in props.cols"
|
name="search"
|
||||||
:key="col.name"
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
:props="props"
|
class="cursor-pointer"
|
||||||
style="color: #000000; font-weight: 500"
|
/>
|
||||||
>
|
<q-icon
|
||||||
<span class="text-weight-medium">{{ col.label }}</span>
|
v-if="filterKeyword"
|
||||||
</q-th>
|
name="cancel"
|
||||||
<q-th auto-width></q-th>
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
</q-tr>
|
class="cursor-pointer"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
</q-input>
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-select
|
||||||
<q-td v-for="col in props.cols" :key="col.name" :props="props">
|
v-model="visibleColumnsHistory"
|
||||||
<div>
|
multiple
|
||||||
{{ col.value ? col.value : "-" }}
|
outlined
|
||||||
</div>
|
dense
|
||||||
</q-td>
|
options-dense
|
||||||
</q-tr>
|
:display-value="$q.lang.table.columns"
|
||||||
</template>
|
emit-value
|
||||||
</d-table>
|
map-options
|
||||||
</q-page>
|
:options="columnsHistory"
|
||||||
</q-page-container>
|
option-value="name"
|
||||||
</q-layout>
|
options-cover
|
||||||
|
style="min-width: 150px"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<d-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columnsHistory"
|
||||||
|
:rows="rowsHistory"
|
||||||
|
flat
|
||||||
|
bordered
|
||||||
|
:paging="true"
|
||||||
|
dense
|
||||||
|
class="custom-header-table"
|
||||||
|
:filter="filterKeyword"
|
||||||
|
:visible-columns="visibleColumnsHistory"
|
||||||
|
>
|
||||||
|
<template v-slot:header="props">
|
||||||
|
<q-tr :props="props">
|
||||||
|
<q-th
|
||||||
|
v-for="col in props.cols"
|
||||||
|
:key="col.name"
|
||||||
|
:props="props"
|
||||||
|
style="color: #000000; font-weight: 500"
|
||||||
|
>
|
||||||
|
<span class="text-weight-medium">{{ col.label }}</span>
|
||||||
|
</q-th>
|
||||||
|
<q-th auto-width></q-th>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
<template v-slot:body="props">
|
||||||
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
|
<q-td v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
<div>
|
||||||
|
{{ col.value ? col.value : "-" }}
|
||||||
|
</div>
|
||||||
|
</q-td>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</d-table>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -334,8 +334,8 @@ onMounted(async () => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-gutter-x-sm q-py-sm">
|
<div class="row items-center q-gutter-x-sm q-pb-sm">
|
||||||
<q-btn color="primary" icon="add" flat round @click="openDialogAdd()"
|
<q-btn dense color="primary" icon="add" flat round @click="openDialogAdd()"
|
||||||
><q-tooltip>เพิ่มข้อมูล</q-tooltip></q-btn
|
><q-tooltip>เพิ่มข้อมูล</q-tooltip></q-btn
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -572,183 +572,168 @@ onMounted(async () => {
|
||||||
|
|
||||||
<!-- dialog add edit -->
|
<!-- dialog add edit -->
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 300px"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
||||||
<q-header>
|
<DialogHeader
|
||||||
<q-toolbar>
|
:tittle="edit ? 'แก้ไขข้อมูลวินัย' : 'เพิ่มข้อมูลวินัย'"
|
||||||
<DialogHeader
|
:close="closeDialog"
|
||||||
:tittle="edit ? 'แก้ไขข้อมูลวินัย' : 'เพิ่มข้อมูลวินัย'"
|
/>
|
||||||
:close="closeDialog"
|
<q-separator color="grey-4" />
|
||||||
/>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
</q-toolbar>
|
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
||||||
<q-separator color="grey-4" />
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
</q-header>
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
<q-page-container>
|
v-model="disciplineData.date"
|
||||||
<q-page class="q-pa-md">
|
:locale="'th'"
|
||||||
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
autoApply
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
:enableTimePicker="false"
|
||||||
<datepicker
|
week-start="0"
|
||||||
menu-class-name="modalfix"
|
>
|
||||||
v-model="disciplineData.date"
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
:locale="'th'"
|
<template #year-overlay-value="{ value }">{{
|
||||||
autoApply
|
parseInt(value + 543)
|
||||||
:enableTimePicker="false"
|
}}</template>
|
||||||
week-start="0"
|
<template #trigger>
|
||||||
>
|
<q-input
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
ref="dateRef"
|
||||||
<template #year-overlay-value="{ value }">{{
|
class="full-width inputgreen cursor-pointer"
|
||||||
parseInt(value + 543)
|
outlined
|
||||||
}}</template>
|
dense
|
||||||
<template #trigger>
|
:model-value="date2Thai(disciplineData.date)"
|
||||||
<q-input
|
:rules="[(val:string) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]"
|
||||||
ref="dateRef"
|
hide-bottom-space
|
||||||
class="full-width inputgreen cursor-pointer"
|
:label="`${'วัน/เดือน/ปี'}`"
|
||||||
outlined
|
>
|
||||||
dense
|
<template v-slot:prepend>
|
||||||
:model-value="date2Thai(disciplineData.date)"
|
<q-icon
|
||||||
:rules="[(val:string) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]"
|
name="event"
|
||||||
hide-bottom-space
|
class="cursor-pointer"
|
||||||
:label="`${'วัน/เดือน/ปี'}`"
|
color="primary"
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
</q-icon>
|
||||||
<q-icon
|
</template>
|
||||||
name="event"
|
</q-input>
|
||||||
class="cursor-pointer"
|
</template>
|
||||||
color="primary"
|
</datepicker>
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<q-input
|
|
||||||
ref="detailRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
v-model="disciplineData.detail"
|
|
||||||
:rules="[(val:string) => !!val || `${'กรุณากรอกรายละเอียด'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'รายละเอียด'}`"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<selector
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
v-model="disciplineData.level"
|
|
||||||
:label="`${'ระดับการลงโทษทางวินัย'}`"
|
|
||||||
emit-value
|
|
||||||
map-options
|
|
||||||
option-label="name"
|
|
||||||
:options="Ops.levelOptions"
|
|
||||||
option-value="id"
|
|
||||||
use-input
|
|
||||||
clearable
|
|
||||||
hide-bottom-space
|
|
||||||
input-debounce="0"
|
|
||||||
@filter="(inputValue:string,
|
|
||||||
doneFn:Function) => filterSelector(inputValue, doneFn,'levelOptions'
|
|
||||||
) "
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<q-input
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="disciplineData.unStigma"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'ล้างมลทิน'}`"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<q-input
|
|
||||||
ref="refCommandNoRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
v-model="disciplineData.refCommandNo"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'เลขที่คำสั่ง'}`"
|
|
||||||
:rules="[(val:string) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon name="mdi-file" class="cursor-pointer" />
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<datepicker
|
|
||||||
menu-class-name="modalfix"
|
|
||||||
v-model="disciplineData.refCommandDate"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
:enableTimePicker="false"
|
|
||||||
week-start="0"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
ref="dateRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
clearable
|
|
||||||
dense
|
|
||||||
:model-value="date2Thai(disciplineData.refCommandDate)"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
|
||||||
@clear="disciplineData.refCommandDate = null"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
color="primary"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
</q-page-container>
|
<q-input
|
||||||
|
ref="detailRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
lazy-rules
|
||||||
|
v-model="disciplineData.detail"
|
||||||
|
:rules="[(val:string) => !!val || `${'กรุณากรอกรายละเอียด'}`]"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'รายละเอียด'}`"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
<selector
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
lazy-rules
|
||||||
|
v-model="disciplineData.level"
|
||||||
|
:label="`${'ระดับการลงโทษทางวินัย'}`"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
option-label="name"
|
||||||
|
:options="Ops.levelOptions"
|
||||||
|
option-value="id"
|
||||||
|
use-input
|
||||||
|
clearable
|
||||||
|
hide-bottom-space
|
||||||
|
input-debounce="0"
|
||||||
|
@filter="(inputValue:string,
|
||||||
|
doneFn:Function) => filterSelector(inputValue, doneFn,'levelOptions'
|
||||||
|
) "
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
<q-input
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
v-model="disciplineData.unStigma"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'ล้างมลทิน'}`"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
<q-input
|
||||||
|
ref="refCommandNoRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
lazy-rules
|
||||||
|
v-model="disciplineData.refCommandNo"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'เลขที่คำสั่ง'}`"
|
||||||
|
:rules="[(val:string) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<q-icon name="mdi-file" class="cursor-pointer" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="disciplineData.refCommandDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
ref="dateRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
clearable
|
||||||
|
dense
|
||||||
|
:model-value="date2Thai(disciplineData.refCommandDate)"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
||||||
|
@clear="disciplineData.refCommandDate = null"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-footer>
|
<q-card-actions align="right">
|
||||||
<q-separator color="grey-4" />
|
<q-btn
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
dense
|
||||||
<q-btn
|
unelevated
|
||||||
dense
|
label="บันทึก"
|
||||||
unelevated
|
id="onSubmit"
|
||||||
label="บันทึก"
|
type="submit"
|
||||||
id="onSubmit"
|
color="public"
|
||||||
type="submit"
|
class="q-px-md"
|
||||||
color="public"
|
>
|
||||||
class="q-px-md"
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
</q-card-actions>
|
||||||
</q-btn>
|
|
||||||
</q-toolbar>
|
|
||||||
</q-footer>
|
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<DialogHistory v-model:modal="modalHistory" v-model:id="id" />
|
<DialogHistory v-model:modal="modalHistory" v-model:id="id" />
|
||||||
|
|
|
||||||
|
|
@ -184,105 +184,94 @@ watch(modal, (status) => {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card style="min-width: 80%">
|
||||||
view="lHh lpr lFf"
|
<DialogHeader
|
||||||
container
|
tittle="ประวัติแก้ไขวินัย"
|
||||||
style="height: 500px; min-width: 80%"
|
:close="() => (modal = false)"
|
||||||
class="bg-white"
|
/>
|
||||||
>
|
<q-separator color="grey-4" />
|
||||||
<q-header>
|
|
||||||
<q-toolbar>
|
|
||||||
<DialogHeader
|
|
||||||
tittle="ประวัติแก้ไขวินัย"
|
|
||||||
:close="() => (modal = false)"
|
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-page class="q-pa-md">
|
<div class="row q-gutter-sm q-mb-sm">
|
||||||
<div class="row q-gutter-sm q-mb-sm">
|
<q-space />
|
||||||
<q-space />
|
<q-input
|
||||||
<q-input
|
standout
|
||||||
standout
|
|
||||||
dense
|
|
||||||
v-model="filterKeyword"
|
|
||||||
ref="filterRef"
|
|
||||||
outlined
|
|
||||||
placeholder="ค้นหา"
|
|
||||||
debounce="300"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword == ''"
|
|
||||||
name="search"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword"
|
|
||||||
name="cancel"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
<q-select
|
|
||||||
v-model="visibleColumns"
|
|
||||||
multiple
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
options-dense
|
|
||||||
:display-value="$q.lang.table.columns"
|
|
||||||
emit-value
|
|
||||||
map-options
|
|
||||||
:options="columns"
|
|
||||||
option-value="name"
|
|
||||||
options-cover
|
|
||||||
style="min-width: 150px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<d-table
|
|
||||||
ref="table"
|
|
||||||
flat
|
|
||||||
bordered
|
|
||||||
dense
|
dense
|
||||||
:columns="columns"
|
v-model="filterKeyword"
|
||||||
:rows="rows"
|
ref="filterRef"
|
||||||
:paging="true"
|
outlined
|
||||||
:rows-per-page-options="[10, 25, 50, 100]"
|
placeholder="ค้นหา"
|
||||||
:visible-columns="visibleColumns"
|
debounce="300"
|
||||||
v-model:pagination="historyPagination"
|
|
||||||
:filter="filterKeyword"
|
|
||||||
>
|
>
|
||||||
>
|
<template v-slot:append>
|
||||||
<template v-slot:header="props">
|
<q-icon
|
||||||
<q-tr :props="props">
|
v-if="filterKeyword == ''"
|
||||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
name="search"
|
||||||
<span class="text-weight-medium">{{ col.label }}</span>
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
</q-th>
|
class="cursor-pointer"
|
||||||
</q-tr>
|
/>
|
||||||
|
<q-icon
|
||||||
|
v-if="filterKeyword"
|
||||||
|
name="cancel"
|
||||||
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
|
class="cursor-pointer"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
</q-input>
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-select
|
||||||
<q-td v-for="col in props.cols" :key="col.id">
|
v-model="visibleColumns"
|
||||||
<div v-if="col.name === 'no'">
|
multiple
|
||||||
{{
|
outlined
|
||||||
(formFilter.page - 1) * formFilter.pageSize +
|
dense
|
||||||
props.rowIndex +
|
options-dense
|
||||||
1
|
:display-value="$q.lang.table.columns"
|
||||||
}}
|
emit-value
|
||||||
</div>
|
map-options
|
||||||
<div v-else>
|
:options="columns"
|
||||||
{{ col.value ? col.value : "-" }}
|
option-value="name"
|
||||||
</div>
|
options-cover
|
||||||
</q-td>
|
style="min-width: 150px"
|
||||||
</q-tr>
|
/>
|
||||||
</template>
|
</div>
|
||||||
</d-table>
|
<d-table
|
||||||
</q-page>
|
ref="table"
|
||||||
</q-page-container>
|
flat
|
||||||
</q-layout>
|
bordered
|
||||||
|
dense
|
||||||
|
:columns="columns"
|
||||||
|
:rows="rows"
|
||||||
|
:paging="true"
|
||||||
|
:rows-per-page-options="[10, 25, 50, 100]"
|
||||||
|
:visible-columns="visibleColumns"
|
||||||
|
v-model:pagination="historyPagination"
|
||||||
|
:filter="filterKeyword"
|
||||||
|
>
|
||||||
|
>
|
||||||
|
<template v-slot:header="props">
|
||||||
|
<q-tr :props="props">
|
||||||
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
<span class="text-weight-medium">{{ col.label }}</span>
|
||||||
|
</q-th>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
<template v-slot:body="props">
|
||||||
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
|
<q-td v-for="col in props.cols" :key="col.id">
|
||||||
|
<div v-if="col.name === 'no'">
|
||||||
|
{{
|
||||||
|
(formFilter.page - 1) * formFilter.pageSize +
|
||||||
|
props.rowIndex +
|
||||||
|
1
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
{{ col.value ? col.value : "-" }}
|
||||||
|
</div>
|
||||||
|
</q-td>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</d-table>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -452,8 +452,8 @@ onMounted(() => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-gutter-x-sm q-py-sm">
|
<div class="row items-center q-gutter-x-sm q-pb-sm">
|
||||||
<q-btn color="primary" icon="add" flat round @click="openDialogAdd()"
|
<q-btn dense color="primary" icon="add" flat round @click="openDialogAdd()"
|
||||||
><q-tooltip>เพิ่มข้อมูล</q-tooltip></q-btn
|
><q-tooltip>เพิ่มข้อมูล</q-tooltip></q-btn
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -670,25 +670,15 @@ onMounted(() => {
|
||||||
|
|
||||||
<!-- dialog add edit -->
|
<!-- dialog add edit -->
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 400px"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<form @submit.prevent="validateForm">
|
<form @submit.prevent="validateForm">
|
||||||
<q-header>
|
<DialogHeader
|
||||||
<q-toolbar>
|
:tittle="edit ? 'แก้ไขข้อมูลการลา' : 'เพิ่มข้อมูลการลา'"
|
||||||
<DialogHeader
|
:close="closeDialog"
|
||||||
:tittle="edit ? 'แก้ไขข้อมูลการลา' : 'เพิ่มข้อมูลการลา'"
|
/>
|
||||||
:close="closeDialog"
|
<q-separator color="grey-4" />
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-page class="q-pa-md">
|
|
||||||
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
<q-select
|
<q-select
|
||||||
|
|
@ -804,27 +794,23 @@ onMounted(() => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
</q-card-section>
|
||||||
</q-page-container>
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-footer>
|
<q-card-actions align="right">
|
||||||
<q-separator color="grey-4" />
|
<q-btn
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
dense
|
||||||
<q-btn
|
unelevated
|
||||||
dense
|
label="บันทึก"
|
||||||
unelevated
|
id="onSubmit"
|
||||||
label="บันทึก"
|
type="submit"
|
||||||
id="onSubmit"
|
color="public"
|
||||||
type="submit"
|
class="q-px-md"
|
||||||
color="public"
|
>
|
||||||
class="q-px-md"
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
</q-card-actions>
|
||||||
</q-btn>
|
|
||||||
</q-toolbar>
|
|
||||||
</q-footer>
|
|
||||||
</form>
|
</form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<DialogHistory v-model:modal="modalHistory" v-model:id="id" />
|
<DialogHistory v-model:modal="modalHistory" v-model:id="id" />
|
||||||
|
|
|
||||||
|
|
@ -214,116 +214,104 @@ watch(modal, (status) => {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card style="min-width: 80%">
|
||||||
view="lHh lpr lFf"
|
<DialogHeader
|
||||||
container
|
tittle="ประวัติแก้ไขการลา"
|
||||||
style="height: 500px; min-width: 80%"
|
:close="() => (modal = false)"
|
||||||
class="bg-white"
|
/>
|
||||||
>
|
<q-separator color="grey-4" />
|
||||||
<q-header>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-toolbar>
|
<div class="row q-gutter-sm q-mb-sm">
|
||||||
<DialogHeader
|
<q-space />
|
||||||
tittle="ประวัติแก้ไขการลา"
|
<q-input
|
||||||
:close="() => (modal = false)"
|
standout
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
|
||||||
<q-page class="q-pa-md">
|
|
||||||
<div class="row q-gutter-sm q-mb-sm">
|
|
||||||
<q-space />
|
|
||||||
<q-input
|
|
||||||
standout
|
|
||||||
dense
|
|
||||||
v-model="filterKeyword"
|
|
||||||
ref="filterRef"
|
|
||||||
outlined
|
|
||||||
placeholder="ค้นหา"
|
|
||||||
debounce="300"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword == ''"
|
|
||||||
name="search"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword"
|
|
||||||
name="cancel"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
<q-select
|
|
||||||
v-model="visibleColumns"
|
|
||||||
multiple
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
options-dense
|
|
||||||
:display-value="$q.lang.table.columns"
|
|
||||||
emit-value
|
|
||||||
map-options
|
|
||||||
:options="columns"
|
|
||||||
option-value="name"
|
|
||||||
options-cover
|
|
||||||
style="min-width: 150px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<d-table
|
|
||||||
ref="table"
|
|
||||||
flat
|
|
||||||
bordered
|
|
||||||
dense
|
dense
|
||||||
:columns="columns"
|
v-model="filterKeyword"
|
||||||
:rows="rows"
|
ref="filterRef"
|
||||||
:paging="true"
|
outlined
|
||||||
v-model:pagination="historyPagination"
|
placeholder="ค้นหา"
|
||||||
:rows-per-page-options="[10, 25, 50, 100]"
|
debounce="300"
|
||||||
:visible-columns="visibleColumns"
|
|
||||||
:filter="filterKeyword"
|
|
||||||
>
|
>
|
||||||
>
|
<template v-slot:append>
|
||||||
<template v-slot:header="props">
|
<q-icon
|
||||||
<q-tr :props="props">
|
v-if="filterKeyword == ''"
|
||||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
name="search"
|
||||||
<span class="text-weight-medium">{{ col.label }}</span>
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
</q-th>
|
class="cursor-pointer"
|
||||||
</q-tr>
|
/>
|
||||||
|
<q-icon
|
||||||
|
v-if="filterKeyword"
|
||||||
|
name="cancel"
|
||||||
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
|
class="cursor-pointer"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
</q-input>
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-select
|
||||||
<q-td v-for="col in props.cols" :key="col.id">
|
v-model="visibleColumns"
|
||||||
<div v-if="col.name === 'no'">
|
multiple
|
||||||
{{
|
outlined
|
||||||
(formFilter.page - 1) * formFilter.pageSize +
|
dense
|
||||||
props.rowIndex +
|
options-dense
|
||||||
1
|
:display-value="$q.lang.table.columns"
|
||||||
}}
|
emit-value
|
||||||
</div>
|
map-options
|
||||||
<div v-else-if="col.name == 'dateLeave'">
|
:options="columns"
|
||||||
{{
|
option-value="name"
|
||||||
dateThaiRange([
|
options-cover
|
||||||
props.row.dateStartLeave,
|
style="min-width: 150px"
|
||||||
props.row.dateEndLeave,
|
/>
|
||||||
])
|
</div>
|
||||||
}}
|
<d-table
|
||||||
</div>
|
ref="table"
|
||||||
<div v-else-if="col.name == 'status'">
|
flat
|
||||||
{{ statusLeave(col.value) }}
|
bordered
|
||||||
</div>
|
dense
|
||||||
<div v-else>
|
:columns="columns"
|
||||||
{{ col.value ? col.value : "-" }}
|
:rows="rows"
|
||||||
</div>
|
:paging="true"
|
||||||
</q-td>
|
v-model:pagination="historyPagination"
|
||||||
</q-tr>
|
:rows-per-page-options="[10, 25, 50, 100]"
|
||||||
</template>
|
:visible-columns="visibleColumns"
|
||||||
</d-table>
|
:filter="filterKeyword"
|
||||||
</q-page>
|
>
|
||||||
</q-page-container>
|
>
|
||||||
</q-layout>
|
<template v-slot:header="props">
|
||||||
|
<q-tr :props="props">
|
||||||
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
<span class="text-weight-medium">{{ col.label }}</span>
|
||||||
|
</q-th>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
<template v-slot:body="props">
|
||||||
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
|
<q-td v-for="col in props.cols" :key="col.id">
|
||||||
|
<div v-if="col.name === 'no'">
|
||||||
|
{{
|
||||||
|
(formFilter.page - 1) * formFilter.pageSize +
|
||||||
|
props.rowIndex +
|
||||||
|
1
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div v-else-if="col.name == 'dateLeave'">
|
||||||
|
{{
|
||||||
|
dateThaiRange([
|
||||||
|
props.row.dateStartLeave,
|
||||||
|
props.row.dateEndLeave,
|
||||||
|
])
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div v-else-if="col.name == 'status'">
|
||||||
|
{{ statusLeave(col.value) }}
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
{{ col.value ? col.value : "-" }}
|
||||||
|
</div>
|
||||||
|
</q-td>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</d-table>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -287,8 +287,8 @@ onMounted(async () => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-gutter-x-sm q-py-sm">
|
<div class="row items-center q-gutter-x-sm q-pb-sm">
|
||||||
<q-btn color="primary" icon="add" flat round @click="openDialogAdd()"
|
<q-btn dense color="primary" icon="add" flat round @click="openDialogAdd()"
|
||||||
><q-tooltip>เพิ่มข้อมูล</q-tooltip></q-btn
|
><q-tooltip>เพิ่มข้อมูล</q-tooltip></q-btn
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -518,217 +518,202 @@ onMounted(async () => {
|
||||||
</d-table>
|
</d-table>
|
||||||
|
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 350px"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
||||||
<q-header>
|
<DialogHeader
|
||||||
<q-toolbar>
|
:tittle="
|
||||||
<DialogHeader
|
edit
|
||||||
:tittle="
|
? 'แก้ไขข้อมูลปฏิบัติราชการพิเศษ'
|
||||||
edit
|
: 'เพิ่มข้อมูลปฏิบัติราชการพิเศษ'
|
||||||
? 'แก้ไขข้อมูลปฏิบัติราชการพิเศษ'
|
"
|
||||||
: 'เพิ่มข้อมูลปฏิบัติราชการพิเศษ'
|
:close="closeDialog"
|
||||||
"
|
/>
|
||||||
:close="closeDialog"
|
<q-separator color="grey-4" />
|
||||||
/>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
</q-toolbar>
|
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
||||||
<q-separator color="grey-4" />
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
</q-header>
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
<q-page-container>
|
v-model="dutyData.dateStart"
|
||||||
<q-page class="q-pa-md">
|
:locale="'th'"
|
||||||
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
autoApply
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
:enableTimePicker="false"
|
||||||
<datepicker
|
week-start="0"
|
||||||
menu-class-name="modalfix"
|
>
|
||||||
v-model="dutyData.dateStart"
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
:locale="'th'"
|
<template #year-overlay-value="{ value }">{{
|
||||||
autoApply
|
parseInt(value + 543)
|
||||||
:enableTimePicker="false"
|
}}</template>
|
||||||
week-start="0"
|
<template #trigger>
|
||||||
>
|
<q-input
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
ref="dateStartRef"
|
||||||
<template #year-overlay-value="{ value }">{{
|
class="full-width inputgreen cursor-pointer"
|
||||||
parseInt(value + 543)
|
outlined
|
||||||
}}</template>
|
dense
|
||||||
<template #trigger>
|
:model-value="date2Thai(dutyData.dateStart)"
|
||||||
<q-input
|
:rules="[
|
||||||
ref="dateStartRef"
|
(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`,
|
||||||
class="full-width inputgreen cursor-pointer"
|
]"
|
||||||
outlined
|
hide-bottom-space
|
||||||
dense
|
:label="`${'วันที่เริ่มต้น'}`"
|
||||||
:model-value="date2Thai(dutyData.dateStart)"
|
>
|
||||||
:rules="[
|
<template v-slot:prepend>
|
||||||
(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`,
|
<q-icon
|
||||||
]"
|
name="event"
|
||||||
hide-bottom-space
|
class="cursor-pointer"
|
||||||
:label="`${'วันที่เริ่มต้น'}`"
|
color="primary"
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
color="primary"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<datepicker
|
|
||||||
menu-class-name="modalfix"
|
|
||||||
v-model="dutyData.dateEnd"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
:enableTimePicker="false"
|
|
||||||
:min-date="dutyData.dateStart"
|
|
||||||
:readonly="!dutyData.dateStart"
|
|
||||||
week-start="0"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
ref="dateEndRef"
|
|
||||||
:readonly="!dutyData.dateStart"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
:model-value="date2Thai(dutyData.dateEnd)"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`,
|
|
||||||
]"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'วันที่สิ้นสุด'}`"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
color="primary"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<q-input
|
|
||||||
ref="referenceRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
autogrow
|
|
||||||
v-model="dutyData.reference"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกเอกสารอ้างอิง'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'เอกสารอ้างอิง'}`"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<q-input
|
|
||||||
ref="detailRef"
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
autogrow
|
|
||||||
v-model="dutyData.detail"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกรายละเอียด'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'รายละเอียด'}`"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<q-input
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="dutyData.refCommandNo"
|
|
||||||
:label="`${'เลขที่คำสั่ง'}`"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon name="mdi-file" class="cursor-pointer" />
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<datepicker
|
|
||||||
menu-class-name="modalfix"
|
|
||||||
v-model="dutyData.refCommandDate"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
:enableTimePicker="false"
|
|
||||||
week-start="0"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
class="full-width inputgreen cursor-pointer"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
:borderless="!edit"
|
|
||||||
:model-value="
|
|
||||||
dutyData.refCommandDate == null ? null : date2Thai(dutyData.refCommandDate as Date)
|
|
||||||
"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
|
||||||
clearable
|
|
||||||
@clear="dutyData.refCommandDate = null"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
color="primary"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
<template
|
|
||||||
v-if="dutyData.refCommandDate && edit"
|
|
||||||
v-slot:append
|
|
||||||
>
|
>
|
||||||
</template>
|
</q-icon>
|
||||||
</q-input>
|
</template>
|
||||||
</template>
|
</q-input>
|
||||||
</datepicker>
|
</template>
|
||||||
</div>
|
</datepicker>
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
</q-page-container>
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="dutyData.dateEnd"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
:min-date="dutyData.dateStart"
|
||||||
|
:readonly="!dutyData.dateStart"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
ref="dateEndRef"
|
||||||
|
:readonly="!dutyData.dateStart"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="date2Thai(dutyData.dateEnd)"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'วันที่สิ้นสุด'}`"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<q-input
|
||||||
|
ref="referenceRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
lazy-rules
|
||||||
|
autogrow
|
||||||
|
v-model="dutyData.reference"
|
||||||
|
:rules="[(val) => !!val || `${'กรุณากรอกเอกสารอ้างอิง'}`]"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'เอกสารอ้างอิง'}`"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<q-input
|
||||||
|
ref="detailRef"
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
lazy-rules
|
||||||
|
autogrow
|
||||||
|
v-model="dutyData.detail"
|
||||||
|
:rules="[(val) => !!val || `${'กรุณากรอกรายละเอียด'}`]"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'รายละเอียด'}`"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
<q-input
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
v-model="dutyData.refCommandNo"
|
||||||
|
:label="`${'เลขที่คำสั่ง'}`"
|
||||||
|
>
|
||||||
|
<template v-slot:append>
|
||||||
|
<q-icon name="mdi-file" class="cursor-pointer" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="dutyData.refCommandDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
class="full-width inputgreen cursor-pointer"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
lazy-rules
|
||||||
|
:borderless="!edit"
|
||||||
|
:model-value="
|
||||||
|
dutyData.refCommandDate == null ? null : date2Thai(dutyData.refCommandDate as Date)
|
||||||
|
"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'เอกสารอ้างอิง (ลงวันที่)'}`"
|
||||||
|
clearable
|
||||||
|
@clear="dutyData.refCommandDate = null"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
<template
|
||||||
|
v-if="dutyData.refCommandDate && edit"
|
||||||
|
v-slot:append
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-footer>
|
<q-card-actions align="right">
|
||||||
<q-separator color="grey-4" />
|
<q-btn
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
dense
|
||||||
<q-btn
|
unelevated
|
||||||
dense
|
label="บันทึก"
|
||||||
unelevated
|
id="onSubmit"
|
||||||
label="บันทึก"
|
type="submit"
|
||||||
id="onSubmit"
|
color="public"
|
||||||
type="submit"
|
class="q-px-md"
|
||||||
color="public"
|
>
|
||||||
class="q-px-md"
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
</q-card-actions>
|
||||||
</q-btn>
|
|
||||||
</q-toolbar>
|
|
||||||
</q-footer>
|
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<DialogHistory v-model:modal="modalHistory" v-model:id="id" />
|
<DialogHistory v-model:modal="modalHistory" v-model:id="id" />
|
||||||
|
|
|
||||||
|
|
@ -188,105 +188,92 @@ watch(modal, (status) => {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card style="min-width: 80%">
|
||||||
view="lHh lpr lFf"
|
<DialogHeader
|
||||||
container
|
tittle="ประวัติแก้ไขปฏิบัติราชการพิเศษ"
|
||||||
style="height: 500px; min-width: 80%"
|
:close="() => (modal = false)"
|
||||||
class="bg-white"
|
/>
|
||||||
>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-header>
|
<div class="row q-gutter-sm q-mb-sm">
|
||||||
<q-toolbar>
|
<q-space />
|
||||||
<DialogHeader
|
<q-input
|
||||||
tittle="ประวัติแก้ไขปฏิบัติราชการพิเศษ"
|
standout
|
||||||
:close="() => (modal = false)"
|
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
|
||||||
<q-page class="q-pa-md">
|
|
||||||
<div class="row q-gutter-sm q-mb-sm">
|
|
||||||
<q-space />
|
|
||||||
<q-input
|
|
||||||
standout
|
|
||||||
dense
|
|
||||||
v-model="filterKeyword"
|
|
||||||
ref="filterRef"
|
|
||||||
outlined
|
|
||||||
placeholder="ค้นหา"
|
|
||||||
debounce="300"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword == ''"
|
|
||||||
name="search"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterKeyword"
|
|
||||||
name="cancel"
|
|
||||||
@click.stop.prevent="filterKeyword = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
<q-select
|
|
||||||
v-model="visibleColumns"
|
|
||||||
multiple
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
options-dense
|
|
||||||
:display-value="$q.lang.table.columns"
|
|
||||||
emit-value
|
|
||||||
map-options
|
|
||||||
:options="columns"
|
|
||||||
option-value="name"
|
|
||||||
options-cover
|
|
||||||
style="min-width: 150px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<d-table
|
|
||||||
ref="table"
|
|
||||||
flat
|
|
||||||
bordered
|
|
||||||
dense
|
dense
|
||||||
:columns="columns"
|
v-model="filterKeyword"
|
||||||
:rows="rows"
|
ref="filterRef"
|
||||||
:paging="true"
|
outlined
|
||||||
v-model:pagination="historyPagination"
|
placeholder="ค้นหา"
|
||||||
:rows-per-page-options="[10, 25, 50, 100]"
|
debounce="300"
|
||||||
:visible-columns="visibleColumns"
|
|
||||||
:filter="filterKeyword"
|
|
||||||
>
|
>
|
||||||
>
|
<template v-slot:append>
|
||||||
<template v-slot:header="props">
|
<q-icon
|
||||||
<q-tr :props="props">
|
v-if="filterKeyword == ''"
|
||||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
name="search"
|
||||||
<span class="text-weight-medium">{{ col.label }}</span>
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
</q-th>
|
class="cursor-pointer"
|
||||||
</q-tr>
|
/>
|
||||||
|
<q-icon
|
||||||
|
v-if="filterKeyword"
|
||||||
|
name="cancel"
|
||||||
|
@click.stop.prevent="filterKeyword = ''"
|
||||||
|
class="cursor-pointer"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
</q-input>
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-select
|
||||||
<q-td v-for="col in props.cols" :key="col.id">
|
v-model="visibleColumns"
|
||||||
<div v-if="col.name === 'no'">
|
multiple
|
||||||
{{
|
outlined
|
||||||
(formFilter.page - 1) * formFilter.pageSize +
|
dense
|
||||||
props.rowIndex +
|
options-dense
|
||||||
1
|
:display-value="$q.lang.table.columns"
|
||||||
}}
|
emit-value
|
||||||
</div>
|
map-options
|
||||||
<div v-else class="table_ellipsis">
|
:options="columns"
|
||||||
{{ col.value ? col.value : "-" }}
|
option-value="name"
|
||||||
</div>
|
options-cover
|
||||||
</q-td>
|
style="min-width: 150px"
|
||||||
</q-tr>
|
/>
|
||||||
</template>
|
</div>
|
||||||
</d-table>
|
<d-table
|
||||||
</q-page>
|
ref="table"
|
||||||
</q-page-container>
|
flat
|
||||||
</q-layout>
|
bordered
|
||||||
|
dense
|
||||||
|
:columns="columns"
|
||||||
|
:rows="rows"
|
||||||
|
:paging="true"
|
||||||
|
v-model:pagination="historyPagination"
|
||||||
|
:rows-per-page-options="[10, 25, 50, 100]"
|
||||||
|
:visible-columns="visibleColumns"
|
||||||
|
:filter="filterKeyword"
|
||||||
|
>
|
||||||
|
>
|
||||||
|
<template v-slot:header="props">
|
||||||
|
<q-tr :props="props">
|
||||||
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
<span class="text-weight-medium">{{ col.label }}</span>
|
||||||
|
</q-th>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
<template v-slot:body="props">
|
||||||
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
|
<q-td v-for="col in props.cols" :key="col.id">
|
||||||
|
<div v-if="col.name === 'no'">
|
||||||
|
{{
|
||||||
|
(formFilter.page - 1) * formFilter.pageSize +
|
||||||
|
props.rowIndex +
|
||||||
|
1
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div v-else class="table_ellipsis">
|
||||||
|
{{ col.value ? col.value : "-" }}
|
||||||
|
</div>
|
||||||
|
</q-td>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</d-table>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -10,22 +10,23 @@ import PerformSpecialWork from "@/modules/04_registryNew/components/detail/Gover
|
||||||
const tab = ref<string>("1");
|
const tab = ref<string>("1");
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-mb-md">
|
<div class="row items-center q-my-md">
|
||||||
<div class="text-dark row items-center text-weight-bold">
|
<div class="text-dark row items-center q-px-md">
|
||||||
<q-icon name="mdi-account-tie" class="q-mr-md" size="sm" />
|
<q-icon name="mdi-account" class="q-mr-md" size="22px" />
|
||||||
<h3 class="resigtry-tab-title">ข้อมูลราชการ</h3>
|
<div class="text-subtitle1 text-weight-bold">ข้อมูลราชการ</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-tabs
|
<q-tabs
|
||||||
v-model="tab"
|
v-model="tab"
|
||||||
class="text-grey"
|
active-color="blue-8"
|
||||||
active-color="blue"
|
|
||||||
indicator-color="white"
|
|
||||||
align="left"
|
align="left"
|
||||||
narrow-indicator
|
|
||||||
bordered
|
bordered
|
||||||
|
narrow-indicator
|
||||||
|
indicator-color="transparent"
|
||||||
|
dense
|
||||||
|
class="text-grey q-pl-sm"
|
||||||
>
|
>
|
||||||
<q-tab name="1" label="ข้อมูลราชการ" />
|
<q-tab name="1" label="ข้อมูลราชการ" />
|
||||||
<q-tab name="2" label="วินัย" />
|
<q-tab name="2" label="วินัย" />
|
||||||
|
|
|
||||||
|
|
@ -8,22 +8,23 @@ import Documentipline from "@/modules/04_registryNew/components/detail/Other/02_
|
||||||
const tab = ref<string>("1");
|
const tab = ref<string>("1");
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-mb-md">
|
<div class="row items-center q-my-md">
|
||||||
<div class="text-dark row items-center text-weight-bold">
|
<div class="text-dark row items-center q-px-md">
|
||||||
<q-icon name="mdi-bookmark" class="q-mr-md" size="sm" />
|
<q-icon name="mdi-account" class="q-mr-md" size="22px" />
|
||||||
<h3 class="resigtry-tab-title">เอกสารหลักฐานและอื่นๆ</h3>
|
<div class="text-subtitle1 text-weight-bold">เอกสารหลักฐานและอื่นๆ</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-tabs
|
<q-tabs
|
||||||
v-model="tab"
|
v-model="tab"
|
||||||
class="text-grey"
|
active-color="blue-8"
|
||||||
active-color="blue"
|
|
||||||
indicator-color="white"
|
|
||||||
align="left"
|
align="left"
|
||||||
narrow-indicator
|
|
||||||
bordered
|
bordered
|
||||||
|
narrow-indicator
|
||||||
|
indicator-color="transparent"
|
||||||
|
dense
|
||||||
|
class="text-grey q-pl-sm"
|
||||||
>
|
>
|
||||||
<q-tab name="1" label="ข้อมูลอื่นๆ" />
|
<q-tab name="1" label="ข้อมูลอื่นๆ" />
|
||||||
<q-tab name="2" label="เอกสารหลักฐาน" />
|
<q-tab name="2" label="เอกสารหลักฐาน" />
|
||||||
|
|
|
||||||
|
|
@ -372,17 +372,18 @@ onMounted(async () => {
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row q-gutter-sm items-center">
|
<div class="row q-gutter-sm items-center">
|
||||||
<div class="toptitle col text-right">
|
<div class="toptitle col text-right q-gutter-x-sm">
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
|
dense
|
||||||
icon="mdi-pencil-outline"
|
icon="mdi-pencil-outline"
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="onClickOpenDialog"
|
@click="onClickOpenDialog"
|
||||||
>
|
>
|
||||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<q-btn flat round icon="mdi-history" color="info" @click="clickHistory">
|
<q-btn dense flat round icon="mdi-history" color="info" @click="clickHistory">
|
||||||
<q-tooltip>ประวัติแก้ไขข้อมูลส่วนตัว</q-tooltip>
|
<q-tooltip>ประวัติแก้ไขข้อมูลส่วนตัว</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -538,11 +538,12 @@ watch(
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-toolbar style="padding: 0px" class="text-primary row justify-end q-mb-xs">
|
<div class="text-primary row q-mb-sm">
|
||||||
<q-btn
|
<q-btn
|
||||||
round
|
round
|
||||||
flat
|
flat
|
||||||
color="primary"
|
color="primary"
|
||||||
|
dense
|
||||||
icon="add"
|
icon="add"
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
|
|
@ -589,7 +590,7 @@ watch(
|
||||||
:options="columns"
|
:options="columns"
|
||||||
:display-value="$q.lang.table.columns"
|
:display-value="$q.lang.table.columns"
|
||||||
/>
|
/>
|
||||||
</q-toolbar>
|
</div>
|
||||||
|
|
||||||
<d-table
|
<d-table
|
||||||
flat
|
flat
|
||||||
|
|
|
||||||
|
|
@ -478,17 +478,18 @@ onMounted(async () => {
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row q-gutter-sm items-center">
|
<div class="row q-gutter-sm items-center">
|
||||||
<div class="toptitle col text-right">
|
<div class="toptitle col text-right q-gutter-x-sm">
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
|
dense=""
|
||||||
icon="mdi-pencil-outline"
|
icon="mdi-pencil-outline"
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="onClickOpenDialog"
|
@click="onClickOpenDialog"
|
||||||
>
|
>
|
||||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<q-btn flat round icon="mdi-history" color="info" @click="clickHistory">
|
<q-btn dense flat round icon="mdi-history" color="info" @click="clickHistory">
|
||||||
<q-tooltip>ประวัติข้อมูลที่อยู่</q-tooltip>
|
<q-tooltip>ประวัติข้อมูลที่อยู่</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -566,22 +567,11 @@ onMounted(async () => {
|
||||||
|
|
||||||
<!-- Edit Dialog -->
|
<!-- Edit Dialog -->
|
||||||
<q-dialog v-model="modal" persistent>
|
<q-dialog v-model="modal" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 600px"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
<q-header>
|
<DialogHeader tittle="แก้ไขข้อมูลที่อยู่" :close="clickClose" />
|
||||||
<q-toolbar>
|
<q-separator color="grey-4" />
|
||||||
<DialogHeader tittle="แก้ไขข้อมูลที่อยู่" :close="clickClose" />
|
<q-card-section style="max-height: 60vh" class="scroll">
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
|
||||||
<q-page class="q-pa-md">
|
|
||||||
<div class="col-12 q-pb-xs">
|
<div class="col-12 q-pb-xs">
|
||||||
<q-input
|
<q-input
|
||||||
dense
|
dense
|
||||||
|
|
@ -799,122 +789,107 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
</q-card-section>
|
||||||
</q-page-container>
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-footer>
|
<q-card-actions align="right">
|
||||||
<q-separator color="grey-4" />
|
<q-btn
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
dense
|
||||||
<q-btn
|
unelevated
|
||||||
dense
|
label="บันทึก"
|
||||||
unelevated
|
id="onSubmit"
|
||||||
label="บันทึก"
|
type="submit"
|
||||||
id="onSubmit"
|
color="public"
|
||||||
type="submit"
|
class="q-px-md"
|
||||||
color="public"
|
>
|
||||||
class="q-px-md"
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
</q-card-actions>
|
||||||
</q-btn>
|
|
||||||
</q-toolbar>
|
|
||||||
</q-footer>
|
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<q-dialog v-model="modalHistory" persistent>
|
<q-dialog v-model="modalHistory" persistent>
|
||||||
<q-layout
|
<q-card style="min-width: 80%">
|
||||||
view="lHh lpr lFf"
|
<DialogHeader
|
||||||
container
|
tittle="ประวัติแก้ไขข้อมูลที่อยู่"
|
||||||
style="height: 500px; min-width: 80%"
|
:close="() => (modalHistory = false)"
|
||||||
class="bg-white"
|
/>
|
||||||
>
|
<q-separator color="grey-4" />
|
||||||
<q-header>
|
|
||||||
<q-toolbar>
|
|
||||||
<DialogHeader
|
|
||||||
tittle="ประวัติแก้ไขข้อมูลที่อยู่"
|
|
||||||
:close="() => (modalHistory = false)"
|
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-page class="q-pa-md">
|
<div class="row q-gutter-sm q-mb-sm">
|
||||||
<div class="row q-gutter-sm q-mb-sm">
|
<q-space />
|
||||||
<q-space />
|
<q-input
|
||||||
<q-input
|
standout
|
||||||
standout
|
|
||||||
dense
|
|
||||||
v-model="filterHistory"
|
|
||||||
ref="filterRef"
|
|
||||||
outlined
|
|
||||||
placeholder="ค้นหา"
|
|
||||||
debounce="300"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterHistory == ''"
|
|
||||||
name="search"
|
|
||||||
@click.stop.prevent="filterHistory = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
<q-icon
|
|
||||||
v-if="filterHistory"
|
|
||||||
name="cancel"
|
|
||||||
@click.stop.prevent="filterHistory = ''"
|
|
||||||
class="cursor-pointer"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
<q-select
|
|
||||||
v-model="visibleColumnsHistory"
|
|
||||||
multiple
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
options-dense
|
|
||||||
:display-value="$q.lang.table.columns"
|
|
||||||
emit-value
|
|
||||||
map-options
|
|
||||||
:options="columnsHistory"
|
|
||||||
option-value="name"
|
|
||||||
options-cover
|
|
||||||
style="min-width: 150px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<d-table
|
|
||||||
ref="table"
|
|
||||||
flat
|
|
||||||
bordered
|
|
||||||
dense
|
dense
|
||||||
:columns="columnsHistory"
|
v-model="filterHistory"
|
||||||
:rows="rowsHistory"
|
ref="filterRef"
|
||||||
:paging="true"
|
outlined
|
||||||
:rows-per-page-options="[10, 25, 50, 100]"
|
placeholder="ค้นหา"
|
||||||
:visible-columns="visibleColumnsHistory"
|
debounce="300"
|
||||||
:filter="filterHistory"
|
|
||||||
>
|
>
|
||||||
>
|
<template v-slot:append>
|
||||||
<template v-slot:header="props">
|
<q-icon
|
||||||
<q-tr :props="props">
|
v-if="filterHistory == ''"
|
||||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
name="search"
|
||||||
<span class="text-weight-medium">{{ col.label }}</span>
|
@click.stop.prevent="filterHistory = ''"
|
||||||
</q-th>
|
class="cursor-pointer"
|
||||||
</q-tr>
|
/>
|
||||||
|
<q-icon
|
||||||
|
v-if="filterHistory"
|
||||||
|
name="cancel"
|
||||||
|
@click.stop.prevent="filterHistory = ''"
|
||||||
|
class="cursor-pointer"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
</q-input>
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-select
|
||||||
<q-td v-for="col in props.cols" :key="col.id">
|
v-model="visibleColumnsHistory"
|
||||||
<div>
|
multiple
|
||||||
{{ col.value ? col.value : "-" }}
|
outlined
|
||||||
</div>
|
dense
|
||||||
</q-td>
|
options-dense
|
||||||
</q-tr>
|
:display-value="$q.lang.table.columns"
|
||||||
</template>
|
emit-value
|
||||||
</d-table>
|
map-options
|
||||||
</q-page>
|
:options="columnsHistory"
|
||||||
</q-page-container>
|
option-value="name"
|
||||||
</q-layout>
|
options-cover
|
||||||
|
style="min-width: 150px"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<d-table
|
||||||
|
ref="table"
|
||||||
|
flat
|
||||||
|
bordered
|
||||||
|
dense
|
||||||
|
:columns="columnsHistory"
|
||||||
|
:rows="rowsHistory"
|
||||||
|
:paging="true"
|
||||||
|
:rows-per-page-options="[10, 25, 50, 100]"
|
||||||
|
:visible-columns="visibleColumnsHistory"
|
||||||
|
:filter="filterHistory"
|
||||||
|
>
|
||||||
|
>
|
||||||
|
<template v-slot:header="props">
|
||||||
|
<q-tr :props="props">
|
||||||
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
<span class="text-weight-medium">{{ col.label }}</span>
|
||||||
|
</q-th>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
<template v-slot:body="props">
|
||||||
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
|
<q-td v-for="col in props.cols" :key="col.id">
|
||||||
|
<div>
|
||||||
|
{{ col.value ? col.value : "-" }}
|
||||||
|
</div>
|
||||||
|
</q-td>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</d-table>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -692,10 +692,11 @@ onMounted(async () => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-toolbar style="padding: 0px" class="q-mb-xs">
|
<div class="row items-center q-gutter-x-sm q-pb-sm">
|
||||||
<q-btn
|
<q-btn
|
||||||
round
|
round
|
||||||
flat
|
flat
|
||||||
|
dense
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="add"
|
icon="add"
|
||||||
@click="
|
@click="
|
||||||
|
|
@ -710,7 +711,7 @@ onMounted(async () => {
|
||||||
>
|
>
|
||||||
|
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-input dense outlined v-model="keyword" label="ค้นหา" class="q-mr-sm">
|
<q-input dense outlined v-model="keyword" label="ค้นหา">
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon name="search" />
|
<q-icon name="search" />
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -729,7 +730,6 @@ onMounted(async () => {
|
||||||
option-value="name"
|
option-value="name"
|
||||||
options-cover
|
options-cover
|
||||||
style="min-width: 150px"
|
style="min-width: 150px"
|
||||||
class="q-mr-sm"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<q-btn-toggle
|
<q-btn-toggle
|
||||||
|
|
@ -762,7 +762,7 @@ onMounted(async () => {
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</q-btn-toggle>
|
</q-btn-toggle>
|
||||||
</q-toolbar>
|
</div>
|
||||||
|
|
||||||
<d-table
|
<d-table
|
||||||
:grid="mode === 'card'"
|
:grid="mode === 'card'"
|
||||||
|
|
@ -955,280 +955,183 @@ onMounted(async () => {
|
||||||
</d-table>
|
</d-table>
|
||||||
|
|
||||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 80vh"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
||||||
<q-header>
|
<dialog-header
|
||||||
<q-toolbar>
|
:tittle="
|
||||||
<dialog-header
|
dialogStatus == 'edit'
|
||||||
:tittle="
|
? 'แก้ไขข้อมูลประวัติการศึกษา'
|
||||||
dialogStatus == 'edit'
|
: 'เพิ่มข้อมูลประวัติการศึกษา'
|
||||||
? 'แก้ไขข้อมูลประวัติการศึกษา'
|
"
|
||||||
: 'เพิ่มข้อมูลประวัติการศึกษา'
|
:close="closeDialog"
|
||||||
"
|
/>
|
||||||
:close="closeDialog"
|
<q-separator />
|
||||||
/>
|
<q-card-section style="max-height: 60vh" class="scroll">
|
||||||
</q-toolbar>
|
<div class="row q-col-gutter-sm">
|
||||||
<q-separator color="grey-4" />
|
<div class="col-6">
|
||||||
</q-header>
|
<q-select
|
||||||
|
outlined
|
||||||
<q-page-container>
|
dense
|
||||||
<q-page class="q-pb-md">
|
emit-value
|
||||||
<div class="row q-pa-md q-col-gutter-sm">
|
option-value="label"
|
||||||
<div class="col-6">
|
option-label="label"
|
||||||
<q-select
|
map-options
|
||||||
outlined
|
bg-color="white"
|
||||||
dense
|
v-model="educationData.educationLevel"
|
||||||
emit-value
|
:options="educationLevelOption"
|
||||||
option-value="label"
|
input-debounce="0"
|
||||||
option-label="label"
|
use-input
|
||||||
map-options
|
@filter="(inputValue:string,
|
||||||
bg-color="white"
|
doneFn:Function) => filterSelector(inputValue, doneFn,'educationLevelOption'
|
||||||
v-model="educationData.educationLevel"
|
) "
|
||||||
:options="educationLevelOption"
|
:rules="[(val) => !!val || `${'กรุณาเลือกระดับการศึกษา'}`]"
|
||||||
input-debounce="0"
|
label="ระดับการศึกษา"
|
||||||
use-input
|
class="inputgreen"
|
||||||
@filter="(inputValue:string,
|
hide-bottom-space
|
||||||
doneFn:Function) => filterSelector(inputValue, doneFn,'educationLevelOption'
|
/>
|
||||||
) "
|
|
||||||
:rules="[(val) => !!val || `${'กรุณาเลือกระดับการศึกษา'}`]"
|
|
||||||
label="ระดับการศึกษา"
|
|
||||||
class="inputgreen"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
v-model="educationData.institute"
|
|
||||||
label="สถานศึกษา"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกสถานศึกษา'}`]"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<q-card
|
<div class="col-6">
|
||||||
flat
|
<q-input
|
||||||
bordered
|
outlined
|
||||||
class="q-mx-md q-px-md q-pb-md q-mb-md borderCard"
|
v-model="educationData.institute"
|
||||||
>
|
label="สถานศึกษา"
|
||||||
<div class="row col-12 q-gutter-md q-py-sm text-grey-7">
|
bg-color="white"
|
||||||
<q-radio
|
dense
|
||||||
v-model="isDate"
|
class="inputgreen"
|
||||||
checked-icon="task_alt"
|
:rules="[(val) => !!val || `${'กรุณากรอกสถานศึกษา'}`]"
|
||||||
unchecked-icon="panorama_fish_eye"
|
hide-bottom-space
|
||||||
val="false"
|
/>
|
||||||
label="ปี"
|
</div>
|
||||||
class="inputgreen"
|
</div>
|
||||||
dense
|
<q-card
|
||||||
/>
|
flat
|
||||||
<q-radio
|
bordered
|
||||||
v-model="isDate"
|
class="q-px-md q-pb-md q-my-sm borderCard"
|
||||||
checked-icon="task_alt"
|
>
|
||||||
unchecked-icon="panorama_fish_eye"
|
<div class="row col-12 q-gutter-md q-py-sm text-grey-7">
|
||||||
val="true"
|
<q-radio
|
||||||
class="inputgreen"
|
v-model="isDate"
|
||||||
label="วัน/เดือน/ปี"
|
checked-icon="task_alt"
|
||||||
dense
|
unchecked-icon="panorama_fish_eye"
|
||||||
/>
|
val="false"
|
||||||
</div>
|
label="ปี"
|
||||||
<div v-if="isDate === 'false'" class="row q-col-gutter-sm">
|
class="inputgreen"
|
||||||
<div class="col">
|
dense
|
||||||
<datepicker
|
/>
|
||||||
menu-class-name="modalfix"
|
<q-radio
|
||||||
v-model="educationData.startYear"
|
v-model="isDate"
|
||||||
:locale="'th'"
|
checked-icon="task_alt"
|
||||||
autoApply
|
unchecked-icon="panorama_fish_eye"
|
||||||
year-picker
|
val="true"
|
||||||
:enableTimePicker="false"
|
class="inputgreen"
|
||||||
@update:modelValue="
|
label="วัน/เดือน/ปี"
|
||||||
(v:number) =>
|
dense
|
||||||
(educationData.startDate = new Date(
|
/>
|
||||||
`${v}-01-01T00:00:02.010+07:00`
|
</div>
|
||||||
))
|
<div v-if="isDate === 'false'" class="row q-col-gutter-sm">
|
||||||
"
|
<div class="col">
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
hide-bottom-space
|
|
||||||
:model-value="educationData.startYear + 543"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || `${'กรุณาเลือกปีที่เริ่มต้นศึกษา'}`,
|
|
||||||
]"
|
|
||||||
:label="`${'ปีที่เริ่มต้นศึกษา'}`"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
style="color: var(--q-primary)"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<datepicker
|
|
||||||
menu-class-name="modalfix"
|
|
||||||
v-model="educationData.endYear"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
year-picker
|
|
||||||
:enableTimePicker="false"
|
|
||||||
@update:modelValue="
|
|
||||||
(v:number) =>
|
|
||||||
(educationData.endDate = new Date(
|
|
||||||
`${v}-01-01T00:00:02.010+07:00`
|
|
||||||
))
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
lazy-rules
|
|
||||||
outlined
|
|
||||||
hide-bottom-space
|
|
||||||
:model-value="educationData.endYear + 543"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || `${'กรุณาเลือกปีที่จบการศึกษา'}`,
|
|
||||||
]"
|
|
||||||
:label="`${'ปีที่จบการศึกษา'}`"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
style="color: var(--q-primary)"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="isDate === 'true'" class="row q-col-gutter-sm">
|
|
||||||
<div class="col">
|
|
||||||
<datepicker
|
|
||||||
menu-class-name="modalfix"
|
|
||||||
v-model="educationData.startDate"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
:enableTimePicker="false"
|
|
||||||
week-start="0"
|
|
||||||
@update:modelValue="
|
|
||||||
(v: Date) =>
|
|
||||||
(educationData.startYear = parseInt(
|
|
||||||
v.toString().slice(11, 15)
|
|
||||||
))
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
dense
|
|
||||||
lazy-rules
|
|
||||||
:model-value="date2Thai(educationData.startDate)"
|
|
||||||
:rules="[
|
|
||||||
(val) =>
|
|
||||||
!!val || `${'กรุณาเลือกวันที่เริ่มต้นศึกษา'}`,
|
|
||||||
]"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'วันที่เริ่มต้นศึกษา'}`"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
color="primary"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<datepicker
|
|
||||||
menu-class-name="modalfix"
|
|
||||||
v-model="educationData.endDate"
|
|
||||||
:locale="'th'"
|
|
||||||
autoApply
|
|
||||||
:enableTimePicker="false"
|
|
||||||
week-start="0"
|
|
||||||
@update:modelValue="
|
|
||||||
(v: Date) =>
|
|
||||||
(educationData.endYear = parseInt(
|
|
||||||
v.toString().slice(11, 15)
|
|
||||||
))
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
|
||||||
<template #year-overlay-value="{ value }">{{
|
|
||||||
parseInt(value + 543)
|
|
||||||
}}</template>
|
|
||||||
<template #trigger>
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
lazy-rules
|
|
||||||
:model-value="date2Thai(educationData.endDate)"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || `${'กรุณาเลือกวันที่จบการศึกษา'}`,
|
|
||||||
]"
|
|
||||||
hide-bottom-space
|
|
||||||
:label="`${'วันที่จบการศึกษา'}`"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon
|
|
||||||
name="event"
|
|
||||||
class="cursor-pointer"
|
|
||||||
color="primary"
|
|
||||||
>
|
|
||||||
</q-icon>
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</template>
|
|
||||||
</datepicker>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
<div class="row q-col-gutter-sm q-px-md">
|
|
||||||
<div class="col-6">
|
|
||||||
<datepicker
|
<datepicker
|
||||||
menu-class-name="modalfix"
|
menu-class-name="modalfix"
|
||||||
v-model="educationData.finishDate"
|
v-model="educationData.startYear"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
year-picker
|
||||||
|
:enableTimePicker="false"
|
||||||
|
@update:modelValue="
|
||||||
|
(v:number) =>
|
||||||
|
(educationData.startDate = new Date(
|
||||||
|
`${v}-01-01T00:00:02.010+07:00`
|
||||||
|
))
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
hide-bottom-space
|
||||||
|
:model-value="educationData.startYear + 543"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณาเลือกปีที่เริ่มต้นศึกษา'}`,
|
||||||
|
]"
|
||||||
|
:label="`${'ปีที่เริ่มต้นศึกษา'}`"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
style="color: var(--q-primary)"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="educationData.endYear"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
year-picker
|
||||||
|
:enableTimePicker="false"
|
||||||
|
@update:modelValue="
|
||||||
|
(v:number) =>
|
||||||
|
(educationData.endDate = new Date(
|
||||||
|
`${v}-01-01T00:00:02.010+07:00`
|
||||||
|
))
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
lazy-rules
|
||||||
|
outlined
|
||||||
|
hide-bottom-space
|
||||||
|
:model-value="educationData.endYear + 543"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณาเลือกปีที่จบการศึกษา'}`,
|
||||||
|
]"
|
||||||
|
:label="`${'ปีที่จบการศึกษา'}`"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
style="color: var(--q-primary)"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="isDate === 'true'" class="row q-col-gutter-sm">
|
||||||
|
<div class="col">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="educationData.startDate"
|
||||||
:locale="'th'"
|
:locale="'th'"
|
||||||
autoApply
|
autoApply
|
||||||
:enableTimePicker="false"
|
:enableTimePicker="false"
|
||||||
week-start="0"
|
week-start="0"
|
||||||
|
@update:modelValue="
|
||||||
|
(v: Date) =>
|
||||||
|
(educationData.startYear = parseInt(
|
||||||
|
v.toString().slice(11, 15)
|
||||||
|
))
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
<template #year-overlay-value="{ value }">{{
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
|
@ -1237,16 +1140,16 @@ onMounted(async () => {
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<q-input
|
<q-input
|
||||||
outlined
|
outlined
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
class="inputgreen"
|
||||||
|
dense
|
||||||
lazy-rules
|
lazy-rules
|
||||||
:model-value="date2Thai(educationData.finishDate)"
|
:model-value="date2Thai(educationData.startDate)"
|
||||||
:rules="[
|
:rules="[
|
||||||
(val) => !!val || `${'กรุณาเลือกวันที่สำเร็จการศึกษา'}`,
|
(val) =>
|
||||||
|
!!val || `${'กรุณาเลือกวันที่เริ่มต้นศึกษา'}`,
|
||||||
]"
|
]"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
:label="`${'วันที่สำเร็จการศึกษา'}`"
|
:label="`${'วันที่เริ่มต้นศึกษา'}`"
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon
|
<q-icon
|
||||||
|
|
@ -1260,149 +1163,233 @@ onMounted(async () => {
|
||||||
</template>
|
</template>
|
||||||
</datepicker>
|
</datepicker>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col">
|
||||||
<q-select
|
<datepicker
|
||||||
outlined
|
menu-class-name="modalfix"
|
||||||
dense
|
v-model="educationData.endDate"
|
||||||
emit-value
|
:locale="'th'"
|
||||||
map-options
|
autoApply
|
||||||
bg-color="white"
|
:enableTimePicker="false"
|
||||||
v-model="educationData.isEducation"
|
week-start="0"
|
||||||
:options="educationOption"
|
@update:modelValue="
|
||||||
option-value="value"
|
(v: Date) =>
|
||||||
class="inputgreen"
|
(educationData.endYear = parseInt(
|
||||||
option-label="label"
|
v.toString().slice(11, 15)
|
||||||
input-debounce="0"
|
))
|
||||||
use-input
|
"
|
||||||
@filter="(inputValue:string,
|
>
|
||||||
doneFn:Function) => filterSelector(inputValue, doneFn,'educationOption'
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
) "
|
<template #year-overlay-value="{ value }">{{
|
||||||
:rules="[
|
parseInt(value + 543)
|
||||||
(val) =>
|
}}</template>
|
||||||
val !== null || `${'กรุณาเลือกวุฒิการศึกษาในตำแหน่ง'}`,
|
<template #trigger>
|
||||||
]"
|
<q-input
|
||||||
label="เป็นวุฒิการศึกษาในตำแหน่ง"
|
outlined
|
||||||
hide-bottom-space
|
dense
|
||||||
/>
|
class="inputgreen"
|
||||||
</div>
|
lazy-rules
|
||||||
|
:model-value="date2Thai(educationData.endDate)"
|
||||||
<div class="col-6">
|
:rules="[
|
||||||
<q-input
|
(val) => !!val || `${'กรุณาเลือกวันที่จบการศึกษา'}`,
|
||||||
outlined
|
]"
|
||||||
v-model="educationData.degree"
|
hide-bottom-space
|
||||||
label="วุฒิการศึกษา"
|
:label="`${'วันที่จบการศึกษา'}`"
|
||||||
class="inputgreen"
|
>
|
||||||
bg-color="white"
|
<template v-slot:prepend>
|
||||||
dense
|
<q-icon
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกวุฒิการศึกษา'}`]"
|
name="event"
|
||||||
hide-bottom-space
|
class="cursor-pointer"
|
||||||
/>
|
color="primary"
|
||||||
</div>
|
>
|
||||||
<div class="col-6">
|
</q-icon>
|
||||||
<q-input
|
</template>
|
||||||
outlined
|
</q-input>
|
||||||
class="inputgreen"
|
</template>
|
||||||
v-model="educationData.field"
|
</datepicker>
|
||||||
label="สาขาวิชา/ทาง"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
v-model="educationData.fundName"
|
|
||||||
label="ทุน"
|
|
||||||
class="inputgreen"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="educationData.gpa"
|
|
||||||
label="เกรดเฉลี่ย"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
mask="#.##"
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="educationData.country"
|
|
||||||
label="ประเทศ"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="educationData.other"
|
|
||||||
label="ข้อมูลติดต่อ"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="educationData.duration"
|
|
||||||
label="ระยะเวลา"
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกระยะเวลา'}`]"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="educationData.durationYear"
|
|
||||||
label="ระยะเวลาหลักสูตร (ปี)"
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || `${'กรุณากรอกระยะเวลาหลักสูตร (ปี)'}`,
|
|
||||||
]"
|
|
||||||
bg-color="white"
|
|
||||||
type="number"
|
|
||||||
dense
|
|
||||||
hide-bottom-space
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
class="inputgreen"
|
|
||||||
v-model="educationData.note"
|
|
||||||
label="หมายเหตุ"
|
|
||||||
bg-color="white"
|
|
||||||
dense
|
|
||||||
type="textarea"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
</q-card>
|
||||||
</q-page-container>
|
<div class="row q-col-gutter-sm">
|
||||||
|
<div class="col-6">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="educationData.finishDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
lazy-rules
|
||||||
|
:model-value="date2Thai(educationData.finishDate)"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณาเลือกวันที่สำเร็จการศึกษา'}`,
|
||||||
|
]"
|
||||||
|
hide-bottom-space
|
||||||
|
:label="`${'วันที่สำเร็จการศึกษา'}`"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-select
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
bg-color="white"
|
||||||
|
v-model="educationData.isEducation"
|
||||||
|
:options="educationOption"
|
||||||
|
option-value="value"
|
||||||
|
class="inputgreen"
|
||||||
|
option-label="label"
|
||||||
|
input-debounce="0"
|
||||||
|
use-input
|
||||||
|
@filter="(inputValue:string,
|
||||||
|
doneFn:Function) => filterSelector(inputValue, doneFn,'educationOption'
|
||||||
|
) "
|
||||||
|
:rules="[
|
||||||
|
(val) =>
|
||||||
|
val !== null || `${'กรุณาเลือกวุฒิการศึกษาในตำแหน่ง'}`,
|
||||||
|
]"
|
||||||
|
label="เป็นวุฒิการศึกษาในตำแหน่ง"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<q-footer>
|
<div class="col-6">
|
||||||
<q-separator color="grey-4" />
|
<q-input
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
outlined
|
||||||
|
v-model="educationData.degree"
|
||||||
|
label="วุฒิการศึกษา"
|
||||||
|
class="inputgreen"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
:rules="[(val) => !!val || `${'กรุณากรอกวุฒิการศึกษา'}`]"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.field"
|
||||||
|
label="สาขาวิชา/ทาง"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
v-model="educationData.fundName"
|
||||||
|
label="ทุน"
|
||||||
|
class="inputgreen"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.gpa"
|
||||||
|
label="เกรดเฉลี่ย"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
mask="#.##"
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.country"
|
||||||
|
label="ประเทศ"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.other"
|
||||||
|
label="ข้อมูลติดต่อ"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.duration"
|
||||||
|
label="ระยะเวลา"
|
||||||
|
:rules="[(val) => !!val || `${'กรุณากรอกระยะเวลา'}`]"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.durationYear"
|
||||||
|
label="ระยะเวลาหลักสูตร (ปี)"
|
||||||
|
:rules="[
|
||||||
|
(val) => !!val || `${'กรุณากรอกระยะเวลาหลักสูตร (ปี)'}`,
|
||||||
|
]"
|
||||||
|
bg-color="white"
|
||||||
|
type="number"
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<q-input
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="educationData.note"
|
||||||
|
label="หมายเหตุ"
|
||||||
|
bg-color="white"
|
||||||
|
dense
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-actions align="right">
|
||||||
<q-btn
|
<q-btn
|
||||||
id="onSubmit"
|
id="onSubmit"
|
||||||
type="submit"
|
type="submit"
|
||||||
|
|
@ -1414,31 +1401,20 @@ onMounted(async () => {
|
||||||
>
|
>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-toolbar>
|
</q-card-actions>
|
||||||
</q-footer>
|
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<q-dialog v-model="historyDialog" class="dialog" persistent>
|
<q-dialog v-model="historyDialog" class="dialog" persistent>
|
||||||
<q-layout
|
<q-card style="min-width: 80%">
|
||||||
view="lHh lpr lFf"
|
<dialog-header
|
||||||
container
|
tittle="ประวัติแก้ไขประวัติการศึกษา"
|
||||||
style="height: 500px; min-width: 80%"
|
:close="closeHistoryDialog"
|
||||||
class="bg-white"
|
/>
|
||||||
>
|
<q-separator />
|
||||||
<q-header>
|
|
||||||
<q-toolbar>
|
|
||||||
<dialog-header
|
|
||||||
tittle="ประวัติแก้ไขประวัติการศึกษา"
|
|
||||||
:close="closeHistoryDialog"
|
|
||||||
/>
|
|
||||||
</q-toolbar>
|
|
||||||
<q-separator color="grey-4" />
|
|
||||||
</q-header>
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
<q-page class="q-pa-md">
|
|
||||||
<q-toolbar style="padding: 0px" class="text-primary q-mb-sm">
|
<q-toolbar style="padding: 0px" class="text-primary q-mb-sm">
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-input
|
<q-input
|
||||||
|
|
@ -1504,9 +1480,8 @@ onMounted(async () => {
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
</d-table>
|
</d-table>
|
||||||
</q-page>
|
</q-card-section>
|
||||||
</q-page-container>
|
</q-card>
|
||||||
</q-layout>
|
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -313,10 +313,11 @@ onMounted(async () => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<q-toolbar style="padding: 0px" class="text-primary q-mb-xs">
|
<div class="row items-center q-gutter-x-sm q-pb-sm">
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
|
color="primary"
|
||||||
dense
|
dense
|
||||||
icon="add"
|
icon="add"
|
||||||
@click="() => ((dialogStatus = 'create'), clearForm(), (dialog = true))"
|
@click="() => ((dialogStatus = 'create'), clearForm(), (dialog = true))"
|
||||||
|
|
@ -324,7 +325,7 @@ onMounted(async () => {
|
||||||
<q-tooltip>เพิ่มข้อมูล</q-tooltip>
|
<q-tooltip>เพิ่มข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-input dense outlined v-model="keyword" label="ค้นหา" class="q-mr-sm">
|
<q-input dense outlined v-model="keyword" label="ค้นหา">
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon name="search" />
|
<q-icon name="search" />
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -344,7 +345,6 @@ onMounted(async () => {
|
||||||
option-value="name"
|
option-value="name"
|
||||||
options-cover
|
options-cover
|
||||||
style="min-width: 150px"
|
style="min-width: 150px"
|
||||||
class="q-mr-sm"
|
|
||||||
/>
|
/>
|
||||||
<q-btn-toggle
|
<q-btn-toggle
|
||||||
v-model="mode"
|
v-model="mode"
|
||||||
|
|
@ -376,7 +376,7 @@ onMounted(async () => {
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</q-btn-toggle>
|
</q-btn-toggle>
|
||||||
</q-toolbar>
|
</div>
|
||||||
|
|
||||||
<d-table
|
<d-table
|
||||||
:grid="mode === 'card'"
|
:grid="mode === 'card'"
|
||||||
|
|
@ -495,98 +495,85 @@ onMounted(async () => {
|
||||||
</d-table>
|
</d-table>
|
||||||
|
|
||||||
<q-dialog v-model="dialog" class="dialog" persistent>
|
<q-dialog v-model="dialog" class="dialog" persistent>
|
||||||
<q-layout
|
<q-card>
|
||||||
view="lHh lpr lFf"
|
|
||||||
container
|
|
||||||
style="height: 300px"
|
|
||||||
class="bg-white"
|
|
||||||
>
|
|
||||||
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
<q-form @submit.prevent greedy @validation-success="onSubmit()">
|
||||||
<q-header>
|
<dialog-header
|
||||||
<q-toolbar>
|
:tittle="
|
||||||
<dialog-header
|
dialogStatus == 'edit'
|
||||||
:tittle="
|
? 'แก้ไขข้อมูลความสามารถพิเศษ'
|
||||||
dialogStatus == 'edit'
|
: 'เพิ่มข้อมูลความสามารถพิเศษ'
|
||||||
? 'แก้ไขข้อมูลความสามารถพิเศษ'
|
"
|
||||||
: 'เพิ่มข้อมูลความสามารถพิเศษ'
|
:close="closeDialog"
|
||||||
"
|
/>
|
||||||
:close="closeDialog"
|
<q-separator color="grey-4" />
|
||||||
/>
|
<q-card-section style="max-height: 50vh" class="scroll">
|
||||||
</q-toolbar>
|
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
||||||
<q-separator color="grey-4" />
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
</q-header>
|
<q-input
|
||||||
|
outlined
|
||||||
<q-page-container>
|
class="inputgreen"
|
||||||
<q-page class="q-pa-md">
|
dense
|
||||||
<div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
|
bg-color="white"
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
v-model="specialSkill.field"
|
||||||
<q-input
|
label="ด้าน"
|
||||||
outlined
|
hide-bottom-space
|
||||||
class="inputgreen"
|
:rules="[
|
||||||
dense
|
(val) => !!val || `${'กรุณากรอกด้านความสามารถพิเศษ'}`,
|
||||||
bg-color="white"
|
]"
|
||||||
v-model="specialSkill.field"
|
/>
|
||||||
label="ด้าน"
|
|
||||||
hide-bottom-space
|
|
||||||
:rules="[
|
|
||||||
(val) => !!val || `${'กรุณากรอกด้านความสามารถพิเศษ'}`,
|
|
||||||
]"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
|
||||||
<q-input
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
class="inputgreen"
|
|
||||||
bg-color="white"
|
|
||||||
v-model="specialSkill.detail"
|
|
||||||
label="รายละเอียด"
|
|
||||||
hide-bottom-space
|
|
||||||
:rules="[(val) => !!val || `${'กรุณากรอกรายละเอียด'}`]"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
<q-input
|
|
||||||
class="inputgreen"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
bg-color="white"
|
|
||||||
v-model="specialSkill.remark"
|
|
||||||
label="หมายเหตุ"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
<q-input
|
|
||||||
class="inputgreen"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
bg-color="white"
|
|
||||||
v-model="specialSkill.reference"
|
|
||||||
label="เอกสารอ้างอิง"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||||
</q-page-container>
|
<q-input
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
bg-color="white"
|
||||||
|
v-model="specialSkill.detail"
|
||||||
|
label="รายละเอียด"
|
||||||
|
hide-bottom-space
|
||||||
|
:rules="[(val) => !!val || `${'กรุณากรอกรายละเอียด'}`]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||||
|
<q-input
|
||||||
|
class="inputgreen"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
bg-color="white"
|
||||||
|
v-model="specialSkill.remark"
|
||||||
|
label="หมายเหตุ"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||||
|
<q-input
|
||||||
|
class="inputgreen"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
bg-color="white"
|
||||||
|
v-model="specialSkill.reference"
|
||||||
|
label="เอกสารอ้างอิง"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
<q-footer>
|
<q-separator />
|
||||||
<q-separator color="grey-4" />
|
|
||||||
<q-toolbar class="fit row wrap justify-end items-start content-start">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
<q-btn
|
||||||
dense
|
dense
|
||||||
unelevated
|
unelevated
|
||||||
label="บันทึก"
|
label="บันทึก"
|
||||||
id="onSubmit"
|
id="onSubmit"
|
||||||
type="submit"
|
type="submit"
|
||||||
color="public"
|
color="public"
|
||||||
class="q-px-md"
|
class="q-px-md"
|
||||||
>
|
>
|
||||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-toolbar>
|
</q-card-actions>
|
||||||
</q-footer>
|
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-layout>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<q-dialog v-model="historyDialog" class="dialog" persistent>
|
<q-dialog v-model="historyDialog" class="dialog" persistent>
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,13 @@ const tab = ref<string>("1");
|
||||||
<q-card>
|
<q-card>
|
||||||
<q-tabs
|
<q-tabs
|
||||||
v-model="tab"
|
v-model="tab"
|
||||||
class="text-grey q-pl-sm"
|
|
||||||
active-color="blue-8"
|
active-color="blue-8"
|
||||||
align="left"
|
align="left"
|
||||||
bordered
|
bordered
|
||||||
narrow-indicator
|
narrow-indicator
|
||||||
indicator-color="transparent"
|
indicator-color="transparent"
|
||||||
dense
|
dense
|
||||||
|
class="text-grey q-pl-sm"
|
||||||
>
|
>
|
||||||
<q-tab name="1" label="ประวัติส่วนตัว" />
|
<q-tab name="1" label="ประวัติส่วนตัว" />
|
||||||
<q-tab name="2" label="ประวัติการเปลี่ยนชื่อ-นามสกุล" />
|
<q-tab name="2" label="ประวัติการเปลี่ยนชื่อ-นามสกุล" />
|
||||||
|
|
|
||||||
|
|
@ -8,22 +8,23 @@ import NotReceiveSalary from "@/modules/04_registryNew/components/detail/Salary/
|
||||||
const tab = ref<string>("1");
|
const tab = ref<string>("1");
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center q-mb-md">
|
<div class="row items-center q-my-md">
|
||||||
<div class="text-dark row items-center text-weight-bold">
|
<div class="text-dark row items-center q-px-md">
|
||||||
<q-icon name="mdi-cash" class="q-mr-md" size="sm" />
|
<q-icon name="mdi-account" class="q-mr-md" size="22px" />
|
||||||
<h3 class="resigtry-tab-title">ข้อมูลเงินเดือน/ค่าจ้าง</h3>
|
<div class="text-subtitle1 text-weight-bold">ข้อมูลเงินเดือน/ค่าจ้าง</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-tabs
|
<q-tabs
|
||||||
v-model="tab"
|
v-model="tab"
|
||||||
class="text-grey"
|
active-color="blue-8"
|
||||||
active-color="blue"
|
|
||||||
indicator-color="white"
|
|
||||||
align="left"
|
align="left"
|
||||||
narrow-indicator
|
|
||||||
bordered
|
bordered
|
||||||
|
narrow-indicator
|
||||||
|
indicator-color="transparent"
|
||||||
|
dense
|
||||||
|
class="text-grey q-pl-sm"
|
||||||
>
|
>
|
||||||
<q-tab name="1" label="ตำแหน่ง/เงินเดือน" />
|
<q-tab name="1" label="ตำแหน่ง/เงินเดือน" />
|
||||||
<q-tab name="2" label="บันทึกวันที่ไม่ได้รับเงินเดือนฯ" />
|
<q-tab name="2" label="บันทึกวันที่ไม่ได้รับเงินเดือนฯ" />
|
||||||
|
|
|
||||||
|
|
@ -402,8 +402,8 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="absolute-center-left q-ml-lg">
|
<div class="absolute-center-left q-ml-lg">
|
||||||
<q-avatar size="90px">
|
<q-avatar size="90px" class="bg-grey-2" >
|
||||||
<img :src="profilePicture" />
|
<q-img :src="profilePicture"/>
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
<q-btn
|
<q-btn
|
||||||
round
|
round
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue