ปรับการลา

This commit is contained in:
setthawutttty 2024-03-27 10:30:34 +07:00
parent eb9a086d57
commit 27a0297c92
3 changed files with 58 additions and 116 deletions

View file

@ -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

View file

@ -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>

View file

@ -4,8 +4,6 @@ interface DetailData {
dateStartLeave: Date | null;
dateEndLeave: Date | null;
numLeave: number;
sumLeave: number;
totalLeave: number;
status: string;
reason: string;
typeLeaveId: string;