Merge branch 'develop' into nice_dev
# Conflicts: # src/interface/request/main/main.ts
This commit is contained in:
commit
01db98760f
15 changed files with 319 additions and 433 deletions
|
|
@ -250,12 +250,12 @@ const menuList = readonly<any[]>([
|
|||
path: "appoint-promote",
|
||||
role: "placement",
|
||||
},
|
||||
{
|
||||
key: 6.8,
|
||||
label: "รายการแต่งตั้งลูกจ้างประจำ",
|
||||
path: "appoint-employee",
|
||||
role: "placement",
|
||||
},
|
||||
// {
|
||||
// key: 6.8,
|
||||
// label: "รายการแต่งตั้งลูกจ้างประจำ",
|
||||
// path: "appoint-employee",
|
||||
// role: "placement",
|
||||
// },
|
||||
// {
|
||||
// key: 6.9,
|
||||
// label: "รายการย้าย",
|
||||
|
|
@ -374,132 +374,34 @@ const menuList = readonly<any[]>([
|
|||
},
|
||||
],
|
||||
},
|
||||
// {
|
||||
// key: 9,
|
||||
// icon: "mdi-calendar",
|
||||
// activeIcon: "mdi-calendar",
|
||||
// label: "การลา",
|
||||
// path: "leave",
|
||||
// role: "coin",
|
||||
// children: [
|
||||
// {
|
||||
// key: 9.1,
|
||||
// label: "รายการลงเวลาปฏิบัติงาน",
|
||||
// path: "/work-list",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// key: 9.2,
|
||||
// label: "รายการลา",
|
||||
// path: "/leave-list",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// key: 9.3,
|
||||
// label: "รายงานสถิติ",
|
||||
// path: "/statistics-report",
|
||||
// role: "coin",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// key: 8,
|
||||
// icon: "mdi-medal-outline",
|
||||
// activeIcon: "mdi-medal",
|
||||
// label: "เครื่องราชฯ",
|
||||
// path: "insignia",
|
||||
// role: "insignia",
|
||||
// children: [
|
||||
// {
|
||||
// key: 8.1,
|
||||
// label: "เครื่องราชฯ",
|
||||
// path: "",
|
||||
// role: "insignia",
|
||||
// children: [
|
||||
// {
|
||||
// label: "รอบการเสนอขอ",
|
||||
// path: "insigniaProposals",
|
||||
// role: "insignia",
|
||||
// },
|
||||
// {
|
||||
// label: "จัดการคำขอ",
|
||||
// path: "insigniaManage",
|
||||
// role: "insignia",
|
||||
// },
|
||||
// {
|
||||
// label: "บันทึกผลการได้รับพระราช...",
|
||||
// path: "insigniaRecord",
|
||||
// role: "insignia",
|
||||
// },
|
||||
// {
|
||||
// label: "บันทึกผลการจ่ายใบกำกับ",
|
||||
// path: "VatInsignia",
|
||||
// role: "insignia",
|
||||
// },
|
||||
|
||||
// {
|
||||
// label: "จัดสรรเครื่องราชฯ",
|
||||
// path: "insigniaAllocate",
|
||||
// role: "insignia",
|
||||
// },
|
||||
// {
|
||||
// label: "รายงาน",
|
||||
// path: "insigniaReport",
|
||||
// role: "insignia",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// key: 8.2,
|
||||
// label: "เหรียญจักรพรรดิมาลา",
|
||||
// path: "",
|
||||
// role: "coin",
|
||||
// children: [
|
||||
// {
|
||||
// label: "รอบการเสนอขอ",
|
||||
// path: "coinProposals",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// label: "จัดการคำขอ",
|
||||
// path: "coinManage",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// label: "บันทึกผลการได้รับพระราชทานเหรียญจักรพรรดิมาลา",
|
||||
// path: "coinReceive",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// label: "บันทึกผลการจ่ายใบกำกับ",
|
||||
// path: "coinPayment",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// label:
|
||||
// "รายชื่อที่ยื่นคำร้องขอแก้ไขข้อมูลการขอพระราชทานเหรียญจักรพรรดิมาลา",
|
||||
// path: "coinRequest",
|
||||
// role: "coin",
|
||||
// },
|
||||
// // {
|
||||
// // label: "ประวัติการยื่นขอ",
|
||||
// // path: "coinHistory",
|
||||
// // role: "coin",
|
||||
// // },
|
||||
// {
|
||||
// label: "จัดสรรเหรียญตรา",
|
||||
// path: "coinAllocate",
|
||||
// role: "coin",
|
||||
// },
|
||||
// {
|
||||
// label: "รายงาน",
|
||||
// path: "coinReport",
|
||||
// role: "coin",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
{
|
||||
key: 9,
|
||||
icon: "mdi-calendar",
|
||||
activeIcon: "mdi-calendar",
|
||||
label: "การลา",
|
||||
path: "leave",
|
||||
role: "coin",
|
||||
children: [
|
||||
{
|
||||
key: 9.1,
|
||||
label: "รายการลงเวลาปฏิบัติงาน",
|
||||
path: "/work-list",
|
||||
role: "coin",
|
||||
},
|
||||
{
|
||||
key: 9.2,
|
||||
label: "รายการลา",
|
||||
path: "/leave-list",
|
||||
role: "coin",
|
||||
},
|
||||
{
|
||||
key: 9.3,
|
||||
label: "รายงานสถิติ",
|
||||
path: "/statistics-report",
|
||||
role: "coin",
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
|
||||
const tabList = readonly<tabType[]>([
|
||||
|
|
|
|||
|
|
@ -79,6 +79,22 @@
|
|||
/>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<q-select
|
||||
:class="getClass(edit)"
|
||||
:outlined="edit"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!edit"
|
||||
:borderless="!edit"
|
||||
v-model="type"
|
||||
:options="opType"
|
||||
:rules="[(val) => !!val || `${'กรุณาเลือกประเภท'}`]"
|
||||
:label="`${'ประเภท'}`"
|
||||
@update:modelValue="clickEditRow"
|
||||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<q-input
|
||||
:class="getClass(edit)"
|
||||
:outlined="edit"
|
||||
|
|
@ -122,7 +138,7 @@
|
|||
@update:modelValue="clickEditRow"
|
||||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<datepicker
|
||||
:readonly="!edit"
|
||||
|
|
@ -274,6 +290,14 @@ const { date2Thai, modalDelete, modalConfirm, dateToISO, success } = mixin;
|
|||
const store = useExamDataStore();
|
||||
const { examData, changeExamColumns } = store;
|
||||
const id = ref<string>("");
|
||||
|
||||
const type = ref<string | null>();
|
||||
const opType = ref([
|
||||
"ลูกจ้างประจำ",
|
||||
"ลูกจ้างชั่วคราว",
|
||||
"ผู้ปฏิบัติงานอื่นในกรุงเทพมหานคร",
|
||||
]);
|
||||
|
||||
const position = ref<string | null>();
|
||||
const group = ref<string | null>();
|
||||
const pile = ref<string | null>();
|
||||
|
|
@ -302,9 +326,10 @@ const visibleColumns = ref<String[]>([]);
|
|||
examData.career.columns.length == 0
|
||||
? (visibleColumns.value = [
|
||||
"position",
|
||||
"group",
|
||||
"pile",
|
||||
"org",
|
||||
// "group",
|
||||
// "pile",
|
||||
// "org",
|
||||
"type",
|
||||
"startDate",
|
||||
"endDate",
|
||||
"rangeDate",
|
||||
|
|
@ -324,38 +349,49 @@ const columns = ref<QTableProps["columns"]>([
|
|||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "group",
|
||||
name: "type",
|
||||
align: "left",
|
||||
label: "กลุ่ม/ฝ่าย",
|
||||
label: "ประเภท",
|
||||
sortable: true,
|
||||
field: "group",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "pile",
|
||||
align: "left",
|
||||
label: "กอง",
|
||||
sortable: true,
|
||||
field: "pile",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "org",
|
||||
align: "left",
|
||||
label: "สังกัด",
|
||||
sortable: true,
|
||||
field: "org",
|
||||
field: "type",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
// {
|
||||
// name: "group",
|
||||
// align: "left",
|
||||
// label: "กลุ่ม/ฝ่าย",
|
||||
// sortable: true,
|
||||
// field: "group",
|
||||
// headerStyle: "font-size: 14px",
|
||||
// style: "font-size: 14px",
|
||||
// sort: (a: string, b: string) =>
|
||||
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
// },
|
||||
// {
|
||||
// name: "pile",
|
||||
// align: "left",
|
||||
// label: "กอง",
|
||||
// sortable: true,
|
||||
// field: "pile",
|
||||
// headerStyle: "font-size: 14px",
|
||||
// style: "font-size: 14px",
|
||||
// sort: (a: string, b: string) =>
|
||||
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
// },
|
||||
// {
|
||||
// name: "org",
|
||||
// align: "left",
|
||||
// label: "สังกัด",
|
||||
// sortable: true,
|
||||
// field: "org",
|
||||
// headerStyle: "font-size: 14px",
|
||||
// style: "font-size: 14px",
|
||||
// sort: (a: string, b: string) =>
|
||||
// a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
// },
|
||||
{
|
||||
name: "startDate",
|
||||
align: "left",
|
||||
|
|
@ -410,6 +446,7 @@ onMounted(async () => {
|
|||
const calDate = async () => {
|
||||
let _startDate = new Date(startDate.value.toISOString().substr(0, 10));
|
||||
let _endDate = new Date(endDate.value.toISOString().substr(0, 10));
|
||||
_endDate.setDate(_endDate.getDate() + 1);
|
||||
if (_startDate > _endDate) {
|
||||
const swap = _startDate;
|
||||
_startDate = _endDate;
|
||||
|
|
@ -479,6 +516,7 @@ const clickPrevious = async () => {
|
|||
startDate.value = row.startDate;
|
||||
endDate.value = row.endDate;
|
||||
rangeDate.value = row.rangeDate;
|
||||
type.value = row.type;
|
||||
id.value = row.id;
|
||||
await checkRowPage();
|
||||
};
|
||||
|
|
@ -496,6 +534,7 @@ const clickNext = () => {
|
|||
startDate.value = row.startDate;
|
||||
endDate.value = row.endDate;
|
||||
rangeDate.value = row.rangeDate;
|
||||
type.value = row.type;
|
||||
id.value = row.id;
|
||||
checkRowPage();
|
||||
};
|
||||
|
|
@ -591,6 +630,7 @@ const saveData = async () => {
|
|||
durationStart: dateToISO(new Date(startDate.value)),
|
||||
durationEnd: dateToISO(new Date(endDate.value)),
|
||||
rangeDate: rangeDate.value,
|
||||
type: type.value,
|
||||
})
|
||||
.then(() => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
|
|
@ -618,6 +658,7 @@ const editData = async () => {
|
|||
durationStart: dateToISO(new Date(startDate.value)),
|
||||
durationEnd: dateToISO(new Date(endDate.value)),
|
||||
rangeDate: rangeDate.value,
|
||||
type: type.value,
|
||||
})
|
||||
.then(() => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
|
|
@ -672,6 +713,7 @@ const selectData = (props: any) => {
|
|||
startDate.value = props.row.startDate;
|
||||
endDate.value = props.row.endDate;
|
||||
rangeDate.value = props.row.rangeDate;
|
||||
type.value = props.row.type;
|
||||
id.value = props.row.id;
|
||||
next.value = false;
|
||||
previous.value = false;
|
||||
|
|
@ -690,6 +732,7 @@ const addRow = () => {
|
|||
startDate.value = new Date();
|
||||
endDate.value = new Date();
|
||||
rangeDate.value = null;
|
||||
type.value = null;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,11 +2,7 @@
|
|||
<template>
|
||||
<HeaderTop
|
||||
v-model:edit="edit"
|
||||
:header="
|
||||
$q.screen.gt.xs
|
||||
? 'Upload รูปถ่าย (รูปถ่ายหน้าตรง ชุดสุภาพ ไม่สวมหมวก/แว่นตาดำ และไม่มีลวดลายใด ๆ บนรูปถ่าย)'
|
||||
: 'Upload'
|
||||
"
|
||||
:header="$q.screen.gt.xs ? 'อัปโหลดเอกสาร (ถ้ามี)' : 'อัปโหลดเอกสาร'"
|
||||
icon="mdi-file-document"
|
||||
:addData="true"
|
||||
:editOnly="false"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,31 @@
|
|||
<div
|
||||
class="row col-xs-12 col-sm-12 col-md-10 items-center q-col-gutter-x-sm q-col-gutter-y-xs"
|
||||
>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<div class="col-xs-12 col-sm-4 col-md-4">
|
||||
<q-input
|
||||
:class="getClass(status == 'checkRegister' || status == 'payment')"
|
||||
:outlined="status == 'checkRegister' || status == 'payment'"
|
||||
dense
|
||||
type="tel"
|
||||
mask="#############"
|
||||
:counter="
|
||||
status == 'checkRegister' || status == 'payment' ? true : false
|
||||
"
|
||||
lazy-rules
|
||||
:readonly="!(status == 'checkRegister' || status == 'payment')"
|
||||
:borderless="!(status == 'checkRegister' || status == 'payment')"
|
||||
v-model="defaultInformation.cardid"
|
||||
maxlength="13"
|
||||
:rules="[
|
||||
(val) => val.length == 13 || `${'กรุณากรอก เลขประจำตัวประชาชน'}`,
|
||||
(val) =>
|
||||
/^[0-9]*$/.test(val) ||
|
||||
`${'กรุณากรอกเลขประจำตัวประชาชนให้ถูกต้อง'}`,
|
||||
]"
|
||||
label="เลขประจำตัวประชาชน"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-2 col-md-2">
|
||||
<q-select
|
||||
:class="getClass(status == 'checkRegister' || status == 'payment')"
|
||||
:readonly="!(status == 'checkRegister' || status == 'payment')"
|
||||
|
|
@ -61,16 +85,28 @@
|
|||
/>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(false)"
|
||||
:outlined="false"
|
||||
<!-- <q-input
|
||||
:class="getClass(status == 'checkRegister' || status == 'payment')"
|
||||
:outlined="status == 'checkRegister' || status == 'payment'"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!false"
|
||||
:borderless="!false"
|
||||
:readonly="!status == 'checkRegister' || status == 'payment'"
|
||||
:borderless="!status == 'checkRegister' || status == 'payment'"
|
||||
v-model="defaultInformation.nationality"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก สัญชาติ'}`]"
|
||||
:label="`${'สัญชาติ'}`"
|
||||
/> -->
|
||||
<q-select
|
||||
:class="getClass(status == 'checkRegister' || status == 'payment')"
|
||||
:readonly="!(status == 'checkRegister' || status == 'payment')"
|
||||
:borderless="!(status == 'checkRegister' || status == 'payment')"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอก สัญชาติ'}`]"
|
||||
:outlined="status == 'checkRegister' || status == 'payment'"
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="defaultInformation.nationality"
|
||||
:options="opNat"
|
||||
:label="`${'สัญชาติ'}`"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
|
|
@ -185,30 +221,6 @@
|
|||
:label="`${'เบอร์โทร'}`"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-input
|
||||
:class="getClass(status == 'checkRegister' || status == 'payment')"
|
||||
:outlined="status == 'checkRegister' || status == 'payment'"
|
||||
dense
|
||||
type="tel"
|
||||
mask="#############"
|
||||
:counter="
|
||||
status == 'checkRegister' || status == 'payment' ? true : false
|
||||
"
|
||||
lazy-rules
|
||||
:readonly="!(status == 'checkRegister' || status == 'payment')"
|
||||
:borderless="!(status == 'checkRegister' || status == 'payment')"
|
||||
v-model="defaultInformation.cardid"
|
||||
maxlength="13"
|
||||
:rules="[
|
||||
(val) => val.length == 13 || `${'กรุณากรอก เลขประจำตัวประชาชน'}`,
|
||||
(val) =>
|
||||
/^[0-9]*$/.test(val) ||
|
||||
`${'กรุณากรอกเลขประจำตัวประชาชนให้ถูกต้อง'}`,
|
||||
]"
|
||||
label="เลขประจำตัวประชาชน"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="col-xs-12 col-sm-3 col-md-3">
|
||||
<q-select
|
||||
:class="getClass(status == 'checkRegister' || status == 'payment')"
|
||||
|
|
@ -435,6 +447,7 @@ const candidateId = ref<string>(route.params.candidateId.toString());
|
|||
const edit = ref<boolean>(true);
|
||||
const myform = ref<any>({});
|
||||
const img = ref<string>("");
|
||||
const opNat = ref(["ไทย"]);
|
||||
const fileProfile = ref<File[]>([]);
|
||||
|
||||
const { messageError, showLoader, hideLoader } = mixin;
|
||||
|
|
|
|||
|
|
@ -47,10 +47,10 @@
|
|||
<Career :status="status" />
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-lg bg-gray" size="5px" />
|
||||
<div class="q-px-sm">
|
||||
<!-- <q-separator class="q-my-lg bg-gray" size="5px" /> -->
|
||||
<!-- <div class="q-px-sm">
|
||||
<Document :status="status" />
|
||||
</div>
|
||||
</div> -->
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, watch } from "vue";
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
outlined
|
||||
:model-value="inputvisibleFilter"
|
||||
:options="optionsFilter"
|
||||
class="col-xs-12 col-sm-4 col-md-3"
|
||||
class="col-2"
|
||||
option-value="id"
|
||||
option-label="name"
|
||||
map-options
|
||||
|
|
@ -15,6 +15,19 @@
|
|||
@update:model-value="updateVisibleFilter"
|
||||
v-if="optionsFilter != undefined && optionsFilter.length > 0"
|
||||
/>
|
||||
<q-btn
|
||||
size="md"
|
||||
icon="mdi-email-check-outline"
|
||||
round
|
||||
flat
|
||||
color="green-6"
|
||||
@click="candidateCheckProfileDialog"
|
||||
:disabled="
|
||||
attrs.rows.filter((r) => r.status == 'checkRegister').length == 0
|
||||
"
|
||||
>
|
||||
<q-tooltip>ตรวจสอบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
<q-file
|
||||
v-model="files"
|
||||
dense
|
||||
|
|
@ -23,7 +36,7 @@
|
|||
use-chips
|
||||
multiple
|
||||
v-if="statusPayment"
|
||||
class="q-pl-sm"
|
||||
class="q-pl-lg"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="attach_file" color="blue" />
|
||||
|
|
@ -69,19 +82,6 @@
|
|||
>
|
||||
<q-tooltip>บรรจุผู้ผ่านการคัดเลือก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
size="md"
|
||||
icon="mdi-email-check-outline"
|
||||
round
|
||||
flat
|
||||
color="green-6"
|
||||
@click="candidateCheckProfileDialog"
|
||||
:disabled="
|
||||
attrs.rows.filter((r) => r.status == 'checkRegister').length == 0
|
||||
"
|
||||
>
|
||||
<q-tooltip>ตรวจสอบข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
<q-space />
|
||||
<div class="items-center" style="display: flex">
|
||||
<!-- ค้นหาข้อความใน table -->
|
||||
|
|
@ -137,9 +137,15 @@
|
|||
:pagination-label="paginationLabel"
|
||||
:pagination="initialPagination"
|
||||
:rows-per-page-options="paging == true ? [25, 50, 100, 500] : []"
|
||||
row-key="id"
|
||||
selection="multiple"
|
||||
v-model:selected="selected"
|
||||
>
|
||||
<template v-slot:header="props">
|
||||
<q-tr :props="props">
|
||||
<q-th auto-width>
|
||||
<q-checkbox v-model="props.selected" />
|
||||
</q-th>
|
||||
<q-th auto-width v-if="boss == true" />
|
||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span class="text-weight-medium">{{ col.label }}</span>
|
||||
|
|
@ -152,7 +158,6 @@
|
|||
/>
|
||||
</q-tr>
|
||||
</template>
|
||||
<!-- สำหรับเรียกใช้ template ตัวข้างนอก -->
|
||||
<template #body="props">
|
||||
<slot v-bind="props" name="columns"></slot>
|
||||
</template>
|
||||
|
|
@ -180,6 +185,7 @@ const files = ref<File[]>([]);
|
|||
const filterRef = ref<any>(null);
|
||||
const examId = ref<string>(route.params.examId.toString());
|
||||
const candidateId = ref<string[]>([]);
|
||||
const selected = ref<string[]>([]);
|
||||
const { messageError, showLoader, hideLoader } = mixin;
|
||||
const props = defineProps({
|
||||
inputfilter: String,
|
||||
|
|
@ -191,6 +197,10 @@ const props = defineProps({
|
|||
type: Array,
|
||||
defualt: [],
|
||||
},
|
||||
selected: {
|
||||
type: Array,
|
||||
defualt: [],
|
||||
},
|
||||
boss: {
|
||||
type: Boolean,
|
||||
defualt: false,
|
||||
|
|
@ -406,10 +416,14 @@ const downloadFileDetail = async () => {
|
|||
};
|
||||
|
||||
const checkCandidates = async () => {
|
||||
var _selected = [];
|
||||
selected.value.map((r: any) => {
|
||||
_selected.push(r.id.toString());
|
||||
});
|
||||
showLoader();
|
||||
await http
|
||||
.post(config.API.candidateCheckRegisters, {
|
||||
candidateId: candidateId.value,
|
||||
candidateId: _selected,
|
||||
})
|
||||
.then((res) => {
|
||||
success($q, "ตรวจสอบข้อมูลสำเร็จ");
|
||||
|
|
@ -466,18 +480,18 @@ const candidateCheckProfileDialog = async () => {
|
|||
"mdi-email-check-outline",
|
||||
"ยืนยัน",
|
||||
"public",
|
||||
candidateCheckProfile,
|
||||
checkCandidates,
|
||||
undefined
|
||||
);
|
||||
};
|
||||
|
||||
const candidateCheckProfile = async () => {
|
||||
const filter = attrs.value.rows.filter((r: any) => r.check == true);
|
||||
filter.map((r: any) => {
|
||||
candidateId.value.push(r.id.toString());
|
||||
});
|
||||
await checkCandidates();
|
||||
};
|
||||
// const candidateCheckProfile = async () => {
|
||||
// const filter = attrs.value.rows.filter((r: any) => r.check == true);
|
||||
// filter.map((r: any) => {
|
||||
// candidateId.value.push(r.id.toString());
|
||||
// });
|
||||
// await checkCandidates();
|
||||
// };
|
||||
|
||||
const resetFilter = () => {
|
||||
// reset ค่าที่ค้นหาเมื่อกดปุ่ม X ในกล่องค้นหา
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
v-if="rows.length > 0"
|
||||
@click="candidateToPlacement"
|
||||
>
|
||||
<q-tooltip>บรรจุผู้ผ่านการคัดเลือกผู้พิการ</q-tooltip>
|
||||
<q-tooltip>บรรจุผู้ผ่านการสอบแข่งขัน</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn class="bg-teal-1" icon="mdi-download" round color="primary" flat>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip>
|
||||
|
|
|
|||
|
|
@ -372,6 +372,21 @@
|
|||
>
|
||||
<template #columns="props">
|
||||
<q-tr :props="props">
|
||||
<q-td key="code" :props="props">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
v-model="props.row.code"
|
||||
:rules="[
|
||||
(val) =>
|
||||
!!val || `${'กรุณากรอกรหัสประจำตำแหน่งที่สอบ'}`,
|
||||
]"
|
||||
:label="`${'รหัสประจำตำแหน่งที่สอบ'}`"
|
||||
@update:modelValue="clickEditRow"
|
||||
hide-bottom-space
|
||||
/>
|
||||
</q-td>
|
||||
<q-td key="position" :props="props">
|
||||
<selector
|
||||
class=""
|
||||
|
|
@ -449,13 +464,13 @@
|
|||
<q-td key="highDegree" :props="props">
|
||||
<q-radio
|
||||
v-model="props.row.highDegree"
|
||||
label="ต่ำกว่าปริญญาบัตร"
|
||||
label="ประเภททั่วไป"
|
||||
color="teal"
|
||||
val="0"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="props.row.highDegree"
|
||||
label="ปริญญาบัตรขึ้นไป"
|
||||
label="ประเภทวิชาการ"
|
||||
color="teal"
|
||||
val="1"
|
||||
/>
|
||||
|
|
@ -1258,12 +1273,24 @@ const columnsPayment = ref<QTableProps["columns"]>([
|
|||
},
|
||||
]);
|
||||
const visibleColumnsPosition = ref<String[]>([
|
||||
"code",
|
||||
"position",
|
||||
"level",
|
||||
"type",
|
||||
"highDegree",
|
||||
]);
|
||||
const columnsPosition = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "code",
|
||||
align: "left",
|
||||
label: "รหัสประจำตำแหน่งที่สอบ",
|
||||
sortable: true,
|
||||
field: "code",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "position",
|
||||
align: "left",
|
||||
|
|
@ -1289,7 +1316,7 @@ const columnsPosition = ref<QTableProps["columns"]>([
|
|||
{
|
||||
name: "highDegree",
|
||||
align: "left",
|
||||
label: "วุฒิการศึกษา",
|
||||
label: "ประเภทตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "highDegree",
|
||||
headerStyle: "font-size: 14px",
|
||||
|
|
@ -1372,6 +1399,7 @@ const fetchData = async () => {
|
|||
id: r.typeId,
|
||||
name: r.typeName,
|
||||
},
|
||||
code: r.code,
|
||||
highDegree: r.highDegree == true ? "1" : "0",
|
||||
});
|
||||
});
|
||||
|
|
@ -1619,6 +1647,7 @@ const sendData = () => {
|
|||
positionLevelName: r.level.name,
|
||||
typeId: r.type.id,
|
||||
typeName: r.type.name,
|
||||
code: r.code,
|
||||
highDegree: r.highDegree == "1" ? true : false,
|
||||
});
|
||||
});
|
||||
|
|
@ -1825,6 +1854,7 @@ const clickAddPosition = () => {
|
|||
id: "00000000-0000-0000-0000-000000000000",
|
||||
position: null,
|
||||
type: { id: "normol", name: "ทั่วไป" },
|
||||
code: null,
|
||||
highDegree: "0",
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,9 +167,9 @@
|
|||
>
|
||||
<template #columns="props">
|
||||
<q-tr :props="props" class="cursor-pointer">
|
||||
<!-- <q-td auto-width>
|
||||
<q-checkbox v-model="checkProfile" />
|
||||
</q-td> -->
|
||||
<q-td auto-width>
|
||||
<q-checkbox v-model="props.selected" />
|
||||
</q-td>
|
||||
<q-td
|
||||
v-for="col in props.cols"
|
||||
:key="col.name"
|
||||
|
|
@ -203,12 +203,12 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.name == 'check'">
|
||||
<!-- <div v-else-if="col.name == 'check'">
|
||||
<q-checkbox
|
||||
v-model="props.row.check"
|
||||
v-if="props.row.status == 'checkRegister'"
|
||||
/>
|
||||
</div>
|
||||
</div> -->
|
||||
<div v-else-if="col.name == 'career'">
|
||||
<div class="col-4">
|
||||
{{ props.row.career }}
|
||||
|
|
@ -332,9 +332,10 @@ const initialPagination = ref<Pagination>({
|
|||
rowsPerPage: 0,
|
||||
});
|
||||
const visibleColumns = ref<String[]>([
|
||||
"check",
|
||||
// "check",
|
||||
"no",
|
||||
"number",
|
||||
"position",
|
||||
"registerDate",
|
||||
"examIdenNumber",
|
||||
"seatNumber",
|
||||
|
|
@ -387,15 +388,15 @@ const optionsStatus = ref<any>([
|
|||
},
|
||||
]);
|
||||
const columns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "check",
|
||||
align: "left",
|
||||
label: "",
|
||||
sortable: true,
|
||||
field: "check",
|
||||
headerStyle: "font-size: 14px;",
|
||||
style: "font-size: 14px; ",
|
||||
},
|
||||
// {
|
||||
// name: "check",
|
||||
// align: "left",
|
||||
// label: "",
|
||||
// sortable: true,
|
||||
// field: "check",
|
||||
// headerStyle: "font-size: 14px;",
|
||||
// style: "font-size: 14px; ",
|
||||
// },
|
||||
{
|
||||
name: "no",
|
||||
align: "left",
|
||||
|
|
@ -410,6 +411,15 @@ const columns = ref<QTableProps["columns"]>([
|
|||
sensitivity: "base",
|
||||
}),
|
||||
},
|
||||
{
|
||||
name: "position",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "position",
|
||||
headerStyle: "font-size: 14px; min-width: 200px",
|
||||
style: "font-size: 14px; ",
|
||||
},
|
||||
{
|
||||
name: "citizenId",
|
||||
align: "left",
|
||||
|
|
@ -428,15 +438,6 @@ const columns = ref<QTableProps["columns"]>([
|
|||
headerStyle: "font-size: 14px; min-width: 200px",
|
||||
style: "font-size: 14px; ",
|
||||
},
|
||||
{
|
||||
name: "number",
|
||||
align: "left",
|
||||
label: "ลำดับที่สอบได้",
|
||||
sortable: true,
|
||||
field: "number",
|
||||
headerStyle: "font-size: 14px;",
|
||||
style: "font-size: 14px; ",
|
||||
},
|
||||
{
|
||||
name: "examIdenNumber",
|
||||
align: "left",
|
||||
|
|
@ -449,12 +450,21 @@ const columns = ref<QTableProps["columns"]>([
|
|||
{
|
||||
name: "seatNumber",
|
||||
align: "left",
|
||||
label: "เลขที่นั่งสอบ",
|
||||
label: "สนามสอบ",
|
||||
sortable: true,
|
||||
field: "seatNumber",
|
||||
headerStyle: "font-size: 14px;",
|
||||
style: "font-size: 14px; ",
|
||||
},
|
||||
{
|
||||
name: "number",
|
||||
align: "left",
|
||||
label: "ลำดับที่สอบได้",
|
||||
sortable: true,
|
||||
field: "number",
|
||||
headerStyle: "font-size: 14px;",
|
||||
style: "font-size: 14px; ",
|
||||
},
|
||||
{
|
||||
name: "resultB",
|
||||
align: "left",
|
||||
|
|
@ -574,6 +584,7 @@ const fetchData = async () => {
|
|||
pass: r.pass,
|
||||
email: r.email,
|
||||
status: r.status,
|
||||
position: r.positionExam == null ? "-" : r.positionExam.positionName,
|
||||
check: false,
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1008,7 +1008,7 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
</q-form>
|
||||
<q-card bordered class="row col-12 text-dark q-mt-sm">
|
||||
<q-card v-if="rows.length > 0" bordered class="row col-12 text-dark q-mt-sm">
|
||||
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary">
|
||||
<div class="q-pl-sm text-weight-bold text-dark">เอกสารเพิ่มเติม</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -151,6 +151,8 @@ const fetchEvaluate = async () => {
|
|||
self_learning.value = data.self_learning.toString();
|
||||
training_seminar.value = data.training_seminar.toString();
|
||||
other_training.value = data.other_training.toString();
|
||||
dateAutherise.value = data.commander_dated
|
||||
|
||||
if (
|
||||
data.achievement_other_desc !== "" &&
|
||||
data.achievement_other_level !== null
|
||||
|
|
|
|||
|
|
@ -46,6 +46,19 @@ const director_id3 = ref<any>(null);
|
|||
const optionDirector = ref<any>([]);
|
||||
const person = ref<any>([]);
|
||||
|
||||
const options = ref<any>([
|
||||
{ value: 1, label: "พัฒนาครบ 3 ส่วน" },
|
||||
{ value: 2, label: "พัฒนาไม่ครบ 3 ส่วน" },
|
||||
]);
|
||||
const optionsResult = ref<any>([
|
||||
{ value: 1, label: "ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้รับราชการต่อ" },
|
||||
{ value: 2, label: "ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ออกจากราชการ" },
|
||||
{
|
||||
value: 3,
|
||||
label: "เห็นควรให้ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการต่อไปอีก",
|
||||
},
|
||||
]);
|
||||
|
||||
// const saveEdit = async (id: string) => {
|
||||
// await myForm.value.validate().then((result: boolean) => {
|
||||
// if (result) {
|
||||
|
|
@ -73,6 +86,7 @@ const fecthAssign = async (id: string) => {
|
|||
) {
|
||||
develop.value = res.data.data.result.develop_complete;
|
||||
result.value = res.data.data.result.evaluate_result;
|
||||
changeReson52(Number(res.data.data.result.evaluate_result));
|
||||
}
|
||||
|
||||
director_id.value = res.data.data.chairman.name;
|
||||
|
|
@ -117,19 +131,6 @@ const fecthResult = async (id: string) => {
|
|||
|
||||
// part new
|
||||
|
||||
const options = [
|
||||
{ value: 1, label: "พัฒนาครบ 3 ส่วน" },
|
||||
{ value: 2, label: "พัฒนาไม่ครบ 3 ส่วน" },
|
||||
];
|
||||
const optionsResult = [
|
||||
{ value: 1, label: "ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้รับราชการต่อ" },
|
||||
{ value: 2, label: "ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ออกจากราชการ" },
|
||||
{
|
||||
value: 3,
|
||||
label: "เห็นควรให้ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการต่อไปอีก",
|
||||
},
|
||||
];
|
||||
|
||||
const savaForm = async () => {
|
||||
await myForm.value.validate().then((result: boolean) => {
|
||||
if (result) {
|
||||
|
|
@ -207,7 +208,7 @@ const postData = async (action: string) => {
|
|||
});
|
||||
}
|
||||
};
|
||||
const selectRuslt = () => {
|
||||
const selectResult = () => {
|
||||
if (result.value !== 3) {
|
||||
expand_month.value = "";
|
||||
}
|
||||
|
|
@ -236,30 +237,6 @@ onMounted(() => {
|
|||
fecthAssign(assignId.value);
|
||||
fecthResult(assignId.value);
|
||||
});
|
||||
const optionsFn = ref<any>([]);
|
||||
function filterFnOptions(val: string, update: any) {
|
||||
if (val == "") {
|
||||
update(() => {
|
||||
optionsFn.value = options;
|
||||
});
|
||||
} else {
|
||||
update(() => {
|
||||
optionsFn.value = options.filter((e: any) => e.label.search(val) !== -1);
|
||||
});
|
||||
}
|
||||
}
|
||||
const optionsResultFn = ref<any>([])
|
||||
function filterFnOptionsResult(val: string, update: any) {
|
||||
if (val == "") {
|
||||
update(() => {
|
||||
optionsResultFn.value = optionsResult;
|
||||
});
|
||||
} else {
|
||||
update(() => {
|
||||
optionsResultFn.value = optionsResult.filter((e: any) => e.label.search(val) !== -1);
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
@ -428,7 +405,7 @@ function filterFnOptionsResult(val: string, update: any) {
|
|||
'กรุณาเลือกการพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ',
|
||||
]"
|
||||
hide-bottom-space
|
||||
:options="optionsFn"
|
||||
:options="options"
|
||||
class="col-xs-12 col-sm-6"
|
||||
dense
|
||||
borderless
|
||||
|
|
@ -440,7 +417,6 @@ function filterFnOptionsResult(val: string, update: any) {
|
|||
outlined
|
||||
v-model="develop"
|
||||
label="การพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ"
|
||||
@filter="filterFnOptions"
|
||||
use-input
|
||||
><template v-slot:no-option>
|
||||
<q-item>
|
||||
|
|
@ -461,7 +437,7 @@ function filterFnOptionsResult(val: string, update: any) {
|
|||
'กรุณาเลือกผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ',
|
||||
]"
|
||||
hide-bottom-space
|
||||
:options="optionsResultFn"
|
||||
:options="optionsResult"
|
||||
:disable="!status"
|
||||
dense
|
||||
borderless
|
||||
|
|
@ -472,9 +448,8 @@ function filterFnOptionsResult(val: string, update: any) {
|
|||
outlined
|
||||
v-model="result"
|
||||
label="ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ"
|
||||
@update:model-value="selectRuslt"
|
||||
@update:model-value="selectResult"
|
||||
use-input
|
||||
@filter="filterFnOptionsResult"
|
||||
><template v-slot:no-option>
|
||||
<q-item>
|
||||
<q-item-section class="text-grey">
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ const fecthFormRound = async () => {
|
|||
self_learning.value = data.self_learning.toString();
|
||||
training_seminar.value = data.training_seminar.toString();
|
||||
other_training.value = data.other_training.toString();
|
||||
dateAutherise.value = data.assessor_dated
|
||||
if (
|
||||
data.achievement_other_desc !== "" &&
|
||||
data.achievement_other_level !== null
|
||||
|
|
|
|||
|
|
@ -161,6 +161,8 @@ const fecthFormRound = async () => {
|
|||
self_learning.value = data.self_learning.toString();
|
||||
training_seminar.value = data.training_seminar.toString();
|
||||
other_training.value = data.other_training.toString();
|
||||
dateAutherise.value = data.assessor_dated
|
||||
|
||||
if (
|
||||
data.achievement_other_desc !== "" &&
|
||||
data.achievement_other_level !== null
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, onMounted } from "vue";
|
||||
import { ref, onMounted, reactive } from "vue";
|
||||
import { QForm, useQuasar } from "quasar";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
|
@ -54,8 +54,11 @@ const sum_percent = ref<number>();
|
|||
const reason = ref<string>();
|
||||
const pass_result = ref<number>();
|
||||
const evaluate_date = ref<Date>();
|
||||
const result = ref<any>();
|
||||
const result_option = ref<any>([
|
||||
const dev_options = reactive([
|
||||
{ value: 1, label: "พัฒนาครบ 3 ส่วน" },
|
||||
{ value: 2, label: "พัฒนาไม่ครบ 3 ส่วน" },
|
||||
]);
|
||||
const result_option = reactive([
|
||||
{ name: "ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้รับราชการต่อ", value: 1 },
|
||||
{ name: "ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ออกจากราชการ", value: 2 },
|
||||
{ name: "เห็นควรให้ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการต่อไปอีก", value: 3 },
|
||||
|
|
@ -84,7 +87,7 @@ const getReportScore = async () => {
|
|||
data.develop_training_seminar_percent;
|
||||
develop_other_training_percent.value = data.develop_other_training_percent;
|
||||
develop_total_percent.value = data.develop_total_percent;
|
||||
develop_result.value = data.develop_result;
|
||||
develop_result.value = data.develop_result == 0 ? 2 : data.develop_result;
|
||||
|
||||
achievement_score.value = data.achievement_score;
|
||||
achievement_score_total.value = data.achievement_score_total;
|
||||
|
|
@ -127,8 +130,7 @@ onMounted(() => {
|
|||
<q-item-section>
|
||||
<q-item-label>
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
1. คะแนนผลสัมฤทธิ์การทดลองปฏิบัติหน้าที่ราชการ</q-item-label
|
||||
>
|
||||
1. คะแนนผลสัมฤทธิ์การทดลองปฏิบัติหน้าที่ราชการ</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-item-label style="color: gray">
|
||||
|
|
@ -160,8 +162,7 @@ onMounted(() => {
|
|||
<q-item-section>
|
||||
<q-item-label>
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
2. คะแนนพฤติกรรมการปฏิบัติราชการ</q-item-label
|
||||
>
|
||||
2. คะแนนพฤติกรรมการปฏิบัติราชการ</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-item-label style="color: gray">
|
||||
|
|
@ -191,9 +192,7 @@ onMounted(() => {
|
|||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
<q-item-label class="text-black"
|
||||
>ผลคะแนนรวมการประเมินการทดลอง</q-item-label
|
||||
>
|
||||
<q-item-label class="text-black">ผลคะแนนรวมการประเมินการทดลอง</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-item-label style="color: gray">
|
||||
|
|
@ -226,11 +225,7 @@ onMounted(() => {
|
|||
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
|
||||
การพัฒนาผู้ทดลองปฏิบัติบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<q-card
|
||||
flat
|
||||
bordered
|
||||
class="col-xs-12 col-sm-11 col-md-11 q-pa-sm bg-grey-1"
|
||||
>
|
||||
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-11 q-pa-sm bg-grey-1">
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
|
||||
<div class="row q-gutter-md q-pl-md">
|
||||
<div class="col-8 text-weight-medium">หัวข้อ</div>
|
||||
|
|
@ -242,66 +237,30 @@ onMounted(() => {
|
|||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">1. การปฐมนิเทศ</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_orientation_score"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_orientation_score" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_orientation_percent"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_orientation_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">2. การเรียนรู้ด้วยตนเอง</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
dense
|
||||
outlined
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_self_learning_score"
|
||||
/>
|
||||
<q-input dense outlined type="number" :disable="!status" v-model="develop_self_learning_score" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_self_learning_percent"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_self_learning_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">3. การอบรมสัมนาร่วมกัน</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_training_seminar_score"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_training_seminar_score" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_training_seminar_percent"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_training_seminar_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
|
|
@ -310,22 +269,10 @@ onMounted(() => {
|
|||
4. การอบรมอื่น ๆ ตามที่หน่วยงานกำหนด (ถ้ามี)
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_other_training_score"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_other_training_score" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
:disable="!status"
|
||||
v-model="develop_other_training_percent"
|
||||
/>
|
||||
<q-input outlined dense type="number" :disable="!status" v-model="develop_other_training_percent" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -333,9 +280,7 @@ onMounted(() => {
|
|||
<div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
|
||||
<div class="row q-gutter-md q-pl-sm">
|
||||
<div class="col-8 text-weight-medium">
|
||||
<q-item-label
|
||||
>คะแนนผลการพัฒนาข้าราชการที่อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ</q-item-label
|
||||
>
|
||||
<q-item-label>คะแนนผลการพัฒนาข้าราชการที่อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ</q-item-label>
|
||||
</div>
|
||||
<div class="col q-pl-md">{{ develop_total_score }}</div>
|
||||
<div class="col q-pl-md">{{ develop_total_percent }}</div>
|
||||
|
|
@ -350,18 +295,8 @@ onMounted(() => {
|
|||
ผลการพัฒนาข้าราชการที่อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-select
|
||||
class="col-12"
|
||||
dense
|
||||
v-model="develop_result"
|
||||
outlined
|
||||
:options="result_option"
|
||||
option-label="name"
|
||||
option-value="value"
|
||||
map-options
|
||||
emit-value
|
||||
:disable="!status"
|
||||
/>
|
||||
<q-select class="col-12" dense v-model="develop_result" outlined :options="dev_options" option-label="label"
|
||||
option-value="value" map-options emit-value :disable="!status" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -369,18 +304,8 @@ onMounted(() => {
|
|||
<div class="col-12 text-top0 row items-center">
|
||||
เหตุผลอื่น ๆ ในการพิจารณา
|
||||
</div>
|
||||
<q-input
|
||||
type="textarea"
|
||||
outlined
|
||||
dense
|
||||
class="col-12"
|
||||
v-model="reason"
|
||||
lazy-rules
|
||||
autogrow
|
||||
hide-bottom-space
|
||||
:row="3"
|
||||
:disable="!status"
|
||||
/>
|
||||
<q-input type="textarea" outlined dense class="col-12" v-model="reason" lazy-rules autogrow hide-bottom-space
|
||||
:row="3" :disable="!status" />
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-sm-11">
|
||||
|
|
@ -390,18 +315,8 @@ onMounted(() => {
|
|||
ผลการทดลองปฏิบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-select
|
||||
class="col-12"
|
||||
dense
|
||||
v-model="pass_result"
|
||||
outlined
|
||||
:options="result_option"
|
||||
option-label="name"
|
||||
option-value="value"
|
||||
map-options
|
||||
emit-value
|
||||
:disable="!status"
|
||||
/>
|
||||
<q-select class="col-12" dense v-model="pass_result" outlined :options="result_option" option-label="name"
|
||||
option-value="value" map-options emit-value :disable="!status" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
|
|
@ -409,16 +324,8 @@ onMounted(() => {
|
|||
วัน เดือน ปี ที่ประเมิน
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<datepicker
|
||||
menu-class-name="modalfix"
|
||||
v-model="evaluate_date"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
:readonly="!status"
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
>
|
||||
<datepicker menu-class-name="modalfix" v-model="evaluate_date" :locale="'th'" autoApply :readonly="!status"
|
||||
borderless :enableTimePicker="false" week-start="0">
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
|
|
@ -426,22 +333,10 @@ onMounted(() => {
|
|||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
evaluate_date != null ? date2Thai(evaluate_date) : null
|
||||
"
|
||||
:rules="[(val) => !!val || `${'วัน เดือน ปี ที่ประเมิน'}`]"
|
||||
>
|
||||
<q-input outlined dense :disable="!status" class="full-width datepicker" :model-value="evaluate_date != null ? date2Thai(evaluate_date) : null
|
||||
" :rules="[(val) => !!val || `${'วัน เดือน ปี ที่ประเมิน'}`]">
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-primary)"
|
||||
>
|
||||
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
|
|
@ -471,9 +366,11 @@ onMounted(() => {
|
|||
.q-rating__icon {
|
||||
text-shadow: transparent !important;
|
||||
}
|
||||
|
||||
.color-txt {
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
.q-card {
|
||||
box-shadow: 0px 0px 0px 0px !important;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue