ปรับการลา
This commit is contained in:
parent
eb9a086d57
commit
27a0297c92
3 changed files with 58 additions and 116 deletions
|
|
@ -61,7 +61,7 @@ const edit = ref<boolean>(false);
|
|||
const modalHistory = ref<boolean>(false);
|
||||
|
||||
const reason = ref<string>(""); //เหตุผล
|
||||
const numLeave = ref<number>(0);
|
||||
const numLeave = ref<number>(1);
|
||||
const dateRange = ref<[Date, Date]>([new Date(), new Date()]);
|
||||
const numUsedLeave = ref<number>(0);
|
||||
const typeLeave = ref<any>();
|
||||
|
|
@ -122,10 +122,8 @@ const objectRef: MyObjectRef = {
|
|||
const visibleColumns = ref<String[]>([
|
||||
"no",
|
||||
"typeLeave",
|
||||
"dateStartLeave",
|
||||
"dateLeave",
|
||||
"numLeave",
|
||||
"sumLeave",
|
||||
"totalLeave",
|
||||
"status",
|
||||
"reason",
|
||||
]);
|
||||
|
|
@ -154,11 +152,11 @@ const columns = ref<QTableProps["columns"]>([
|
|||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "dateStartLeave",
|
||||
name: "dateLeave",
|
||||
align: "left",
|
||||
label: "วัน เดือน ปี ที่ลา",
|
||||
sortable: true,
|
||||
field: "dateStartLeave",
|
||||
field: "dateLeave",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
|
|
@ -175,28 +173,6 @@ const columns = ref<QTableProps["columns"]>([
|
|||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "sumLeave",
|
||||
align: "left",
|
||||
label: "ลามาแล้ว",
|
||||
sortable: true,
|
||||
field: "sumLeave",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "totalLeave",
|
||||
align: "left",
|
||||
label: "รวมเป็น",
|
||||
sortable: true,
|
||||
field: "totalLeave",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "status",
|
||||
align: "left",
|
||||
|
|
@ -284,7 +260,6 @@ function openDialogEdit(props: DetailData) {
|
|||
new Date(props.dateEndLeave as Date),
|
||||
];
|
||||
numLeave.value = props.numLeave;
|
||||
numUsedLeave.value = props.sumLeave;
|
||||
clickTotal();
|
||||
if (rowsTotal.value.length > 0) {
|
||||
let data: DataOptionLeave[] = [];
|
||||
|
|
@ -310,7 +285,7 @@ function closeDialog() {
|
|||
statLeave.value = "";
|
||||
reason.value = "";
|
||||
dateRange.value = [new Date(), new Date()];
|
||||
numLeave.value = 0;
|
||||
numLeave.value = 1;
|
||||
numUsedLeave.value = 0;
|
||||
}
|
||||
|
||||
|
|
@ -389,9 +364,8 @@ function saveData() {
|
|||
.post(config.API.profileNewLeave(), {
|
||||
profileId: profileId.value,
|
||||
leaveTypeId: typeLeave.value.id,
|
||||
dateLeave: dateRange.value[0],
|
||||
// dateStartLeave: dateToISO(dateRange.value[0]),
|
||||
// dateEndLeave: dateToISO(dateRange.value[1]),
|
||||
dateLeaveStart: dateToISO(dateRange.value[0]),
|
||||
dateLeaveEnd: dateToISO(dateRange.value[1]),
|
||||
leaveDays: numLeave.value,
|
||||
leaveCount: 0,
|
||||
totalLeave: 0,
|
||||
|
|
@ -418,9 +392,8 @@ const editData = async () => {
|
|||
http
|
||||
.patch(config.API.profileNewLeaveById(id.value), {
|
||||
leaveTypeId: typeLeave.value.id,
|
||||
dateLeave: dateRange.value[0],
|
||||
// dateStartLeave: dateToISO(dateRange.value[0]),
|
||||
// dateEndLeave: dateToISO(dateRange.value[1]),
|
||||
dateLeaveStart : dateToISO(dateRange.value[0]),
|
||||
dateLeaveEnd: dateToISO(dateRange.value[1]),
|
||||
leaveDays: numLeave.value,
|
||||
leaveCount: 0,
|
||||
totalLeave: 0,
|
||||
|
|
@ -450,11 +423,9 @@ function getData() {
|
|||
id: item.id,
|
||||
typeLeave: item.leaveType.name,
|
||||
code: item.leaveType.refCommandDate,
|
||||
dateStartLeave: item.dateStartLeave,
|
||||
dateEndLeave: item.dateEndLeave,
|
||||
dateStartLeave: item.dateLeaveStart,
|
||||
dateEndLeave: item.dateLeaveEnd,
|
||||
numLeave: item.leaveDays,
|
||||
sumLeave: item.leaveCount,
|
||||
totalLeave: item.totalLeave,
|
||||
status: item.status,
|
||||
reason: item.reason,
|
||||
typeLeaveId: item.leaveTypeId,
|
||||
|
|
@ -468,27 +439,6 @@ function getData() {
|
|||
});
|
||||
}
|
||||
|
||||
function dateCheck() {
|
||||
http
|
||||
.post(config.API.profileCheckDate(), {
|
||||
type: typeLeave.value.id,
|
||||
StartLeaveDate: dateRange.value[0],
|
||||
EndLeaveDate: dateRange.value[1],
|
||||
})
|
||||
.then((res) => {
|
||||
const day = res.data.result;
|
||||
if (
|
||||
typeLeave.value.code !== "LV-001" &&
|
||||
typeLeave.value.code !== "LV-002" &&
|
||||
typeLeave.value.code !== "LV-004" &&
|
||||
typeLeave.value.code !== "LV-005"
|
||||
) {
|
||||
numLeave.value = day.totalDate;
|
||||
} else {
|
||||
numLeave.value = day.totalDate - day.sumDateHoliday;
|
||||
}
|
||||
});
|
||||
}
|
||||
onMounted(() => {
|
||||
getData();
|
||||
});
|
||||
|
|
@ -605,7 +555,7 @@ onMounted(() => {
|
|||
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
|
||||
}}
|
||||
</div>
|
||||
<div v-else-if="col.name == 'dateStartLeave'">
|
||||
<div v-else-if="col.name == 'dateLeave'">
|
||||
{{
|
||||
dateThaiRange([props.row.dateStartLeave, props.row.dateEndLeave])
|
||||
}}
|
||||
|
|
@ -684,17 +634,6 @@ onMounted(() => {
|
|||
</div>
|
||||
</div>
|
||||
<q-separator />
|
||||
<div class="row q-pa-sm">
|
||||
<div class="col-3 text-grey-6 text-weight-medium">ลามาเเล้ว</div>
|
||||
<div class="col-3">
|
||||
{{ props.row.sumLeave ? props.row.sumLeave : "-" }}
|
||||
</div>
|
||||
<div class="col-3 text-grey-6 text-weight-medium">รวมเป็น</div>
|
||||
<div class="col-3">
|
||||
{{ props.row.totalLeave ? props.row.totalLeave : "-" }}
|
||||
</div>
|
||||
</div>
|
||||
<q-separator />
|
||||
<div class="row q-pa-sm bg-grey-2">
|
||||
<div class="col-3 text-grey-6 text-weight-medium">สถานะ</div>
|
||||
<div class="col-3">
|
||||
|
|
@ -786,7 +725,6 @@ onMounted(() => {
|
|||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
range
|
||||
@update:modelValue="dateCheck"
|
||||
>
|
||||
<template #year="{ year }">{{ year + 543 }}</template>
|
||||
<template #year-overlay-value="{ value }">{{
|
||||
|
|
@ -822,7 +760,7 @@ onMounted(() => {
|
|||
</div>
|
||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||
<q-input
|
||||
readonly
|
||||
|
||||
ref="numLeaveRef"
|
||||
class="full-width inputgreen cursor-pointer"
|
||||
outlined
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ const formFilter = reactive<FormFilter>({
|
|||
const visibleColumns = ref<String[]>([
|
||||
"no",
|
||||
"typeLeave",
|
||||
"dateStartLeave",
|
||||
"dateLeave",
|
||||
"numLeave",
|
||||
"sumLeave",
|
||||
"totalLeave",
|
||||
|
|
@ -70,11 +70,11 @@ const columns = ref<QTableProps["columns"]>([
|
|||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "dateStartLeave",
|
||||
name: "dateLeave",
|
||||
align: "left",
|
||||
label: "วัน เดือน ปี ที่ลา",
|
||||
sortable: true,
|
||||
field: "dateStartLeave",
|
||||
field: "dateLeave",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
|
|
@ -82,7 +82,7 @@ const columns = ref<QTableProps["columns"]>([
|
|||
},
|
||||
{
|
||||
name: "numLeave",
|
||||
align: "right",
|
||||
align: "left",
|
||||
label: "จำนวนวันลา",
|
||||
sortable: true,
|
||||
field: "numLeave",
|
||||
|
|
@ -91,28 +91,6 @@ const columns = ref<QTableProps["columns"]>([
|
|||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "sumLeave",
|
||||
align: "right",
|
||||
label: "ลามาแล้ว",
|
||||
sortable: true,
|
||||
field: "sumLeave",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "totalLeave",
|
||||
align: "right",
|
||||
label: "รวมเป็น",
|
||||
sortable: true,
|
||||
field: "totalLeave",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "status",
|
||||
align: "left",
|
||||
|
|
@ -148,11 +126,9 @@ function getHistory() {
|
|||
id: e.id,
|
||||
typeLeave: e.leaveType.name,
|
||||
code: e.leaveType.refCommandDate,
|
||||
dateStartLeave: new Date(e.dateStartLeave as Date),
|
||||
dateEndLeave: new Date(e.dateEndLeave as Date),
|
||||
numLeave: e.numLeave,
|
||||
sumLeave: e.sumLeave,
|
||||
totalLeave: e.totalLeave,
|
||||
dateStartLeave: e.dateLeaveStart,
|
||||
dateEndLeave: e.dateLeaveEnd,
|
||||
numLeave: e.leaveDays,
|
||||
status: e.status,
|
||||
reason: e.reason,
|
||||
typeLeaveId:
|
||||
|
|
@ -170,6 +146,34 @@ function getHistory() {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* แปลงช่วงวันที่ถ้า2ค่าเป็นวันเดียวกันจะโชววันเดียวแต่ถ้าไม่เท่ากันจะแสดงเป็นช่วง
|
||||
* @param val ช่วงวันที่
|
||||
*/
|
||||
function dateThaiRange(val: [Date, Date]) {
|
||||
if (val === null) {
|
||||
} else if (date2Thai(val[0]) === date2Thai(val[1])) {
|
||||
return `${date2Thai(val[0])}`;
|
||||
} else {
|
||||
return `${date2Thai(val[0])} - ${date2Thai(val[1])} `;
|
||||
}
|
||||
}
|
||||
|
||||
function statusLeave(val: string){
|
||||
switch (val) {
|
||||
case "waitting":
|
||||
return "รออนุมัติ";
|
||||
case "reject":
|
||||
return "ไม่ผ่านการอนุมัติ";
|
||||
case "approve":
|
||||
return "ผ่านการอนุมัติ";
|
||||
case "cancel":
|
||||
return "ยกเลิก";
|
||||
default:
|
||||
return "-";
|
||||
}
|
||||
};
|
||||
|
||||
watch(modal, (status) => {
|
||||
if (status == true) {
|
||||
getHistory();
|
||||
|
|
@ -263,15 +267,17 @@ watch(modal, (status) => {
|
|||
1
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
v-else-if="
|
||||
col.name == 'refCommandDate' ||
|
||||
col.name == 'date' ||
|
||||
col.name == 'createdAt'
|
||||
"
|
||||
>
|
||||
{{ col.value == null ? null : date2Thai(col.value) }}
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ interface DetailData {
|
|||
dateStartLeave: Date | null;
|
||||
dateEndLeave: Date | null;
|
||||
numLeave: number;
|
||||
sumLeave: number;
|
||||
totalLeave: number;
|
||||
status: string;
|
||||
reason: string;
|
||||
typeLeaveId: string;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue