Merge branch 'develop' into working

This commit is contained in:
Suphonchai Phoonsawat 2023-10-15 16:46:28 +07:00
commit 1d9ea3305a
22 changed files with 303 additions and 239 deletions

View file

@ -13,6 +13,7 @@
:edit="clickEdit"
:addData="false"
:bottom="true"
:boss="status == 'checkRegister' || status == 'payment'"
:editData="status == 'checkRegister' || status == 'payment'"
name="ประวัติการทำงาน (ตั้งแต่เริ่มปฏิบัติงานกับกรุงเทพมหานคร - ปัจจุบัน)"
icon="mdi-briefcase"
@ -34,7 +35,7 @@
</div>
</q-td>
<q-td
auto-width
style="width: 5% !important"
v-if="status == 'checkRegister' || status == 'payment'"
>
<q-btn
@ -50,10 +51,20 @@
</q-tr>
</template>
<template #bottom="props">
<div :props="props" class="row col-11 justify-end">
<span class="text-weight-medium text-subtitle2"
>รวมระยะเวลา : <span class="q-pl-sm">{{ total }}</span></span
<div style="width: 64% !important" />
<div
:props="props"
class="row"
style="width: 33% !important; padding-left: 20px"
>
<div
class="text-weight-medium text-subtitle2 q-py-sm row col-12 justify-between"
>
<div>รวมระยะเวลา :</div>
<div>{{ total }}</div>
</div>
</div>
</template>
</Table>
@ -73,32 +84,36 @@
>
<div class="col-xs-12 col-sm-6 col-md-6">
<q-input
:class="getClass(edit)"
:outlined="edit"
:class="
getClass(status == 'checkRegister' || status == 'payment')
"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
:readonly="!status == 'checkRegister' || status == 'payment'"
:borderless="!status == 'checkRegister' || status == 'payment'"
v-model="position"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่ง/ลักษณะงาน'}`]"
:label="`${'ตำแหน่ง/ลักษณะงาน'}`"
@update:modelValue="clickEditRow"
@update:modelValue="clickEditRowPosition"
hide-bottom-space
/>
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<q-select
:class="getClass(edit)"
:outlined="edit"
:class="
getClass(status == 'checkRegister' || status == 'payment')
"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
:readonly="!status == 'checkRegister' || status == 'payment'"
:borderless="!status == 'checkRegister' || status == 'payment'"
v-model="type"
:options="opType"
:rules="[(val) => !!val || `${'กรุณาเลือกประเภท'}`]"
:label="`${'ประเภท'}`"
@update:modelValue="clickEditRow"
@update:modelValue="clickEditRowPosition"
hide-bottom-space
/>
</div>
@ -149,7 +164,8 @@
</div> -->
<div class="col-xs-12 col-sm-6 col-md-6">
<datepicker
:readonly="!edit"
menu-class-name="modalfix"
:readonly="!status == 'checkRegister' || status == 'payment'"
v-model="startDate"
:locale="'th'"
autoApply
@ -165,13 +181,22 @@
</template>
<template #trigger>
<q-input
:class="getClass(edit)"
:outlined="edit"
:class="
getClass(status == 'checkRegister' || status == 'payment')
"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
lazy-rules
:borderless="!edit"
:borderless="
!status == 'checkRegister' || status == 'payment'
"
:model-value="date2Thai(startDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่ม'}`]"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่เริ่ม'}`,
(val) =>
startDate <= endDate ||
`${'กรุณาเลือกวันที่เริ่มให้ถูกต้อง'}`,
]"
hide-bottom-space
:label="`${'วันที่เริ่ม'}`"
>
@ -180,7 +205,7 @@
name="event"
class="cursor-pointer"
:style="
edit
status == 'checkRegister' || status == 'payment'
? 'color: var(--q-primary)'
: 'color: var(--q-grey)'
"
@ -193,7 +218,8 @@
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<datepicker
:readonly="!edit"
menu-class-name="modalfix"
:readonly="!status == 'checkRegister' || status == 'payment'"
v-model="endDate"
:locale="'th'"
autoApply
@ -209,13 +235,22 @@
</template>
<template #trigger>
<q-input
:class="getClass(edit)"
:outlined="edit"
:class="
getClass(status == 'checkRegister' || status == 'payment')
"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
lazy-rules
:borderless="!edit"
:borderless="
!status == 'checkRegister' || status == 'payment'
"
:model-value="date2Thai(endDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`,
(val) =>
startDate <= endDate ||
`${'กรุณาเลือกวันที่สิ้นสุดให้ถูกต้อง'}`,
]"
hide-bottom-space
:label="`${'วันที่สิ้นสุด'}`"
>
@ -224,7 +259,7 @@
name="event"
class="cursor-pointer"
:style="
edit
status == 'checkRegister' || status == 'payment'
? 'color: var(--q-primary)'
: 'color: var(--q-grey)'
"
@ -353,7 +388,7 @@ const columns = ref<QTableProps["columns"]>([
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
style: "font-size: 14px; width:25%;",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
@ -364,7 +399,7 @@ const columns = ref<QTableProps["columns"]>([
sortable: true,
field: "type",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
style: "font-size: 14px; width:20%;",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
@ -403,34 +438,34 @@ const columns = ref<QTableProps["columns"]>([
// },
{
name: "startDate",
align: "left",
align: "center",
label: "เริ่ม",
sortable: true,
field: "startDate",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
style: "font-size: 14px; width:15%;",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "endDate",
align: "left",
align: "center",
label: "สิ้นสุด",
sortable: true,
field: "endDate",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
style: "font-size: 14px; width:15%;",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "rangeDate",
align: "left",
align: "right",
label: "ระยะเวลา",
sortable: true,
field: "rangeDate",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
style: "font-size: 14px; width:20%;",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
@ -484,6 +519,14 @@ const calDate = async () => {
}
dayDiff += daysInMonth[_startDate.getMonth()];
}
if (dayDiff >= 30) {
monthDiff = monthDiff + 1;
dayDiff = 0;
if (monthDiff >= 12) {
yearDiff = yearDiff + 1;
monthDiff = 0;
}
}
rangeDate.value = `${yearDiff > 0 ? yearDiff + " ปี " : ""}${
monthDiff > 0 ? monthDiff + " เดือน " : ""
}${dayDiff > 0 ? dayDiff + " วัน " : ""}`;
@ -521,6 +564,14 @@ const calDateSplit = async (startDate: Date, endDate: Date) => {
}
dayDiff += daysInMonth[_startDate.getMonth()];
}
if (dayDiff >= 30) {
monthDiff = monthDiff + 1;
dayDiff = 0;
if (monthDiff >= 12) {
yearDiff = yearDiff + 1;
monthDiff = 0;
}
}
var obj = {
yearDiff: yearDiff,
monthDiff: monthDiff,
@ -810,6 +861,11 @@ const addRow = () => {
* เชความการแกไขขอม
*/
const clickEditRow = () => {
myForm.value.validate();
editRow.value = true;
};
const clickEditRowPosition = () => {
editRow.value = true;
};

View file

@ -10,8 +10,8 @@
/>
<q-form ref="myform">
<div class="row col-12 items-center q-col-gutter-x-sm q-col-gutter-y-xs">
<div class="col-12 row">
<div class="col-3">
<div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-3">
<q-select
:class="getClass(status == 'checkRegister' || status == 'payment')"
:readonly="!(status == 'checkRegister' || status == 'payment')"
@ -30,9 +30,8 @@
@update:model-value="(value) => checkInputName()"
/>
</div>
<div class="col-3" v-if="showEducationName">
<div class="col-xs-12 col-sm-3" v-if="showEducationName">
<q-input
class="q-pl-sm"
:class="getClass(status == 'checkRegister' || status == 'payment')"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
@ -45,9 +44,8 @@
:label="`${'ชื่อปริญญา'}`"
/>
</div>
<div class="col-3">
<div class="col-xs-12 col-sm-3">
<q-input
class="q-pl-sm"
:class="getClass(status == 'checkRegister' || status == 'payment')"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
@ -60,9 +58,7 @@
:label="`${'สาขาวิชา/วิชาเอก'}`"
/>
</div>
</div>
<div class="col-12 row">
<div class="col-3">
<div class="col-xs-12 col-sm-3">
<q-input
:class="getClass(status == 'checkRegister' || status == 'payment')"
:outlined="status == 'checkRegister' || status == 'payment'"
@ -76,9 +72,8 @@
:label="`${'ชื่อสถานศึกษา'}`"
/>
</div>
<div class="col-3">
<div class="col-xs-12 col-sm-3">
<q-select
class="q-pl-sm"
:class="getClass(status == 'checkRegister' || status == 'payment')"
:readonly="!(status == 'checkRegister' || status == 'payment')"
:borderless="!(status == 'checkRegister' || status == 'payment')"
@ -95,7 +90,7 @@
:label="`${'ประเภทสถานศึกษา'}`"
/>
</div>
<div class="col-3">
<div class="col-xs-12 col-sm-3">
<datepicker
v-model="defaultEducation.educationEndDate"
:locale="'th'"
@ -113,7 +108,6 @@
</template>
<template #trigger>
<q-input
class="q-pl-sm"
:class="
getClass(status == 'checkRegister' || status == 'payment')
"
@ -147,9 +141,8 @@
</template>
</datepicker>
</div>
<div class="col-3">
<div class="col-xs-12 col-sm-3">
<q-input
class="q-pl-sm"
:class="getClass(status == 'checkRegister' || status == 'payment')"
:outlined="status == 'checkRegister' || status == 'payment'"
dense
@ -162,9 +155,7 @@
:label="`${'คะแนนเฉลี่ยสะสม'}`"
/>
</div>
</div>
<div class="col-12 row">
<div class="col-3">
<div class="col-xs-12 col-sm-3">
<q-select
:class="getClass(status == 'checkRegister' || status == 'payment')"
:readonly="!(status == 'checkRegister' || status == 'payment')"
@ -268,6 +259,7 @@ const fetchData = async () => {
defaultEducation.value.educationEndDate = data.educationEndDate;
defaultEducation.value.educationScores = data.educationScores;
defaultEducation.value.educationLevelHighId = data.educationLevelHighId;
checkInputName();
}
})
.catch((e) => {

View file

@ -14,10 +14,10 @@
<div class="text-black text-bold q-pl-sm">{{ examNumber }}</div>
</div>
<div class="row">
<div class="">เลขทสอบ :</div>
<div class="">สนามสอบ :</div>
<div class="text-black text-bold q-pl-sm">{{ examSeat }}</div>
</div>
<div class="row">
<!-- <div class="row">
<div class="">นสอบ :</div>
<div class="text-black text-bold q-pl-sm">5 .. 2566</div>
</div>
@ -28,7 +28,7 @@
<div class="row">
<div class="">ดขอสอบ :</div>
<div class="text-black text-bold q-pl-sm">0506-1/2566</div>
</div>
</div> -->
</div>
<q-card-section class="col-3">

View file

@ -71,7 +71,7 @@
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width v-if="editBtn == true" />
<q-th auto-width v-if="boss == true" />
</q-tr>
</template>
<template #body="props">
@ -103,6 +103,7 @@ const props = defineProps({
editvisible: Boolean,
nameHeader: Boolean,
bottom: Boolean,
boss: Boolean,
addData: {
type: Boolean,
defualt: true,

View file

@ -78,10 +78,11 @@
color="primary"
@click="candidateCheckProfileDialog"
:disabled="
attrs.rows.filter((r) => r.status == 'checkRegister').length == 0
attrs.rows.filter((r) => r.status == 'checkRegister').length == 0 ||
selected.length == 0
"
>
<q-tooltip>ตรวจสอบขอม</q-tooltip>
<q-tooltip>ตรวจสอบขอม/ไดบใบสมครแล</q-tooltip>
</q-btn>
</div>
<div>

View file

@ -76,7 +76,7 @@
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
val="1"
label="ผ่านการตรวจสอบคุณสมบัติ"
label="ผ่านการตรวจสอบคุณสมบัติ/กดรับใบสมัคร"
class="col-12"
@update:modelValue="reason = ''"
/>

View file

@ -27,7 +27,7 @@
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name == 'yearly'">
{{ col.value + 543 }}
{{ props.row.round }}/{{ col.value + 543 }}
</div>
<div
v-else-if="
@ -96,7 +96,7 @@ const columns = ref<QTableProps["columns"]>([
{
name: "yearly",
align: "left",
label: "ปีงบประมาณ",
label: "รอบ/ปีงบประมาณ",
sortable: true,
field: "yearly",
headerStyle: "font-size: 14px",

View file

@ -228,7 +228,7 @@
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
val="1"
label="ผ่านการตรวจสอบคุณสมบัติ"
label="ผ่านการตรวจสอบคุณสมบัติ/กดรับใบสมัคร"
dense
class="col-12"
@update:modelValue="reason = ''"

View file

@ -31,7 +31,7 @@
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name == 'yearly'" class="table_ellipsis2">
{{ col.value + 543 }}
{{ props.row.round }}/{{ col.value + 543 }}
</div>
<div
v-else-if="
@ -117,7 +117,7 @@ const visibleColumns = ref<String[]>([
"no",
"announcementExam",
"yearly",
"category",
// "category",
"name",
"document",
"dateAnnouncement",
@ -147,21 +147,21 @@ const columns = ref<QTableProps["columns"]>([
{
name: "yearly",
align: "center",
label: "ปีงบประมาณ",
label: "รอบ/ปีงบประมาณ",
sortable: true,
field: "yearly",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "category",
align: "left",
label: "สังกัด",
sortable: true,
field: "category",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
// {
// name: "category",
// align: "left",
// label: "",
// sortable: true,
// field: "category",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// },
{
name: "name",
align: "left",

File diff suppressed because one or more lines are too long

View file

@ -282,7 +282,7 @@ const optionsStatus = ref<any>([
},
{
id: "checkRegister",
name: "ตรวจสอบข้อมูลสมัครสอบ",
name: "รอกดรับใบสมัคร",
},
{
id: "payment",
@ -298,11 +298,11 @@ const optionsStatus = ref<any>([
},
{
id: "checkSeat",
name: "จัดที่นั่งสอบ",
name: "กดรับใบสมัครแล้ว",
},
{
id: "checkPoint",
name: "สรุปคะแนนสอบ",
name: "รอสรุปคะแนนสอบ",
},
{
id: "done",
@ -481,7 +481,7 @@ const fetchData = async () => {
avatar: r.profileImg != null ? r.profileImg.detail : "",
citizenId: r.citizenId,
number: r.number,
registerDate: date2Thai(r.registerDate),
registerDate: date2Thai(r.registerDate, false, true),
examIdenNumber: r.examIdenNumber,
seatNumber: r.seatNumber,
resultC: r.resultC,
@ -554,7 +554,7 @@ const fetchDataSummary = async () => {
};
/**
* สรปคะแนนสอบ
* รอสรปคะแนนสอบ
*/
const clickPointRow = async (row: any) => {
candidateId.value = row.id;
@ -574,7 +574,7 @@ const statusCandidate = (status: string) => {
case "register":
return "ยังไม่สมัครสอบ";
case "checkRegister":
return "ตรวจสอบข้อมูลสมัครสอบ";
return "รอกดรับใบสมัคร";
case "payment":
return "รอชำระค่าสมัครสอบ";
case "rejectRegister":
@ -584,9 +584,9 @@ const statusCandidate = (status: string) => {
case "rejectPayment":
return "หลักฐานชำระเงินไม่ถูกต้อง";
case "checkSeat":
return "จัดที่นั่งสอบ";
return "กดรับใบสมัครแล้ว";
case "checkPoint":
return "สรุปคะแนนสอบ";
return "รอสรุปคะแนนสอบ";
case "done":
return "คัดเลือกสำเร็จ";
case "waiver":