แก้ไขไม่ให้เลือกวันเกิน Date now

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2023-11-01 11:38:15 +07:00
parent d2db87cc2e
commit d2a50125a5
3 changed files with 354 additions and 161 deletions

View file

@ -8,6 +8,12 @@ const mixin = useCounterMixin();
const { date2Thai } = mixin;
const { filterFn, searchDataFn } = workStore;
function calculateMaxDate() {
const today = new Date();
today.setDate(today.getDate() - 1);
return today;
}
</script>
<template>
@ -20,6 +26,7 @@ const { filterFn, searchDataFn } = workStore;
autoApply
:enableTimePicker="false"
week-start="0"
:max-date="calculateMaxDate()"
@update:model-value="
searchDataFn(workStore.selectDate, workStore.selectStatus)
"

View file

@ -2,116 +2,117 @@ import { defineStore } from "pinia";
import { ref } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import type { QTableProps } from "quasar";
import type { DataOption } from "@/modules/09_leave/interface/index/Main"
import type { TableRows, DataRes } from "@/modules/09_leave/interface/response/work"
import type { DataOption } from "@/modules/09_leave/interface/index/Main";
import type {
TableRows,
DataRes,
} from "@/modules/09_leave/interface/response/work";
const mixin = useCounterMixin();
const { date2Thai } = mixin;
export const useWorklistDataStore = defineStore("work", () => {
// ข้อมูลในตาราง
const rows = ref<TableRows[]>([])
const columns = ref<QTableProps["columns"]>([]);
const visibleColumns = ref<string[]>([]);
const dataMain = ref<TableRows[]>([])
function fetchList(data: DataRes[]) {
let datalist: TableRows[] = data.map((e: DataRes) => ({
fullName: e.fullName,
timeIn: e.timeIn,
coordinatesIn: e.coordinatesIn,
latIn: e.latIn,
longIn: e.longIn,
timeOut: e.timeOut,
coordinatesOut: e.coordinatesOut,
latOut: e.latOut,
longOut: e.longOut,
status: convertSatatus(e.status),
date: date2Thai(e.date)
}))
dataMain.value = datalist
fetchOption()
searchDataFn(selectDate.value, selectStatus.value)
}
// ข้อมูลในตาราง
const rows = ref<TableRows[]>([]);
const columns = ref<QTableProps["columns"]>([]);
const visibleColumns = ref<string[]>([]);
const dataMain = ref<TableRows[]>([]);
function fetchList(data: DataRes[]) {
let datalist: TableRows[] = data.map((e: DataRes) => ({
fullName: e.fullName,
timeIn: e.timeIn,
coordinatesIn: e.coordinatesIn,
latIn: e.latIn,
longIn: e.longIn,
timeOut: e.timeOut,
coordinatesOut: e.coordinatesOut,
latOut: e.latOut,
longOut: e.longOut,
status: convertSatatus(e.status),
date: date2Thai(e.date),
}));
dataMain.value = datalist;
fetchOption();
searchDataFn(selectDate.value, selectStatus.value);
}
//ค้นหาข้อมูล
const filterTable = ref<string>("");
const selectDate = ref<Date | null>(new Date());
const selectStatus = ref<String>("all");
const optionStatusMain = ref<DataOption[]>([]);
const optionStatus = ref<DataOption[]>([]);
function searchDataFn(searchDate: any, searchStatus: any) {
searchStatus = searchStatus || "all";
if (searchDate == null && searchStatus == "all") {
rows.value = dataMain.value;
} else if (searchDate == null && searchStatus !== "all") {
rows.value = dataMain.value.filter((e: any) => e.status === searchStatus);
} else if (searchDate !== null && searchStatus == "all") {
rows.value = dataMain.value.filter(
(e: any) => e.date === date2Thai(searchDate)
);
} else {
rows.value = dataMain.value.filter(
(e: any) =>
e.date === date2Thai(searchDate) && e.status === searchStatus
);
}
}
//
function fetchOption() {
const double_status = [
...new Set(dataMain.value.map((item: any) => item.status)),
];
optionStatusMain.value = [{ id: "all", name: "ทั้งหมด" }];
for (let i = 1; i <= double_status.length; i++) {
const status = double_status[i - 1];
if (typeof status === "string") {
const listtype: DataOption = {
id: status,
name: status,
};
optionStatusMain.value.push(listtype);
optionStatus.value = optionStatusMain.value;
}
}
}
function filterFn(val: string, update: Function) {
if (val == "") {
update(() => {
optionStatus.value = optionStatusMain.value;
});
} else {
update(() => {
optionStatus.value = optionStatusMain.value.filter(
(e: any) => e.name.search(val) !== -1
);
});
}
}
// convertSatatus
function convertSatatus(val: string) {
switch (val) {
case "normal":
return "ปกติ";
case "late":
return "สาย";
case "absent":
return "ขาดราชการ";
}
}
return {
//ข้อมูลในตาราง
rows,
columns,
visibleColumns,
fetchList,
//ค้นหาข้อมูล
const filterTable = ref<string>('')
const selectDate = ref<Date | null>(new Date());
const selectStatus = ref<String>('all')
const optionStatusMain = ref<DataOption[]>([])
const optionStatus = ref<DataOption[]>([])
function searchDataFn(searchDate: any, searchStatus: any) {
let a = new Date(searchDate);// วันที่เลือก
let b = new Date(); // วันที่ปัจจุบัน
if (a > b) {
selectDate.value = new Date()
searchDate = new Date()
}
searchStatus = searchStatus || "all";
if (searchDate == null && searchStatus == "all") {
rows.value = dataMain.value
} else if (searchDate == null && searchStatus !== "all") {
rows.value = dataMain.value.filter((e: any) => e.status === searchStatus)
} else if (searchDate !== null && searchStatus == "all") {
rows.value = dataMain.value.filter((e: any) => e.date === date2Thai(searchDate))
} else {
rows.value = dataMain.value.filter((e: any) => e.date === date2Thai(searchDate) && e.status === searchStatus)
}
}
//
function fetchOption() {
const double_status = [
...new Set(dataMain.value.map((item: any) => item.status)),
];
optionStatusMain.value = [{ id: "all", name: "ทั้งหมด" }];
for (let i = 1; i <= double_status.length; i++) {
const status = double_status[i - 1];
if (typeof status === 'string') {
const listtype: DataOption = {
id: status,
name: status,
};
optionStatusMain.value.push(listtype)
optionStatus.value = optionStatusMain.value
}
}
}
function filterFn(val: string, update: Function) {
if (val == "") {
update(() => {
optionStatus.value = optionStatusMain.value;
});
} else {
update(() => {
optionStatus.value = optionStatusMain.value.filter(
(e: any) => e.name.search(val) !== -1
);
});
}
}
// convertSatatus
function convertSatatus(val: string) {
switch (val) {
case "normal":
return "ปกติ"
case "late":
return "สาย"
case "absent":
return "ขาดราชการ"
}
}
return {
//ข้อมูลในตาราง
rows,
columns,
visibleColumns,
fetchList,
//ค้นหาข้อมูล
filterTable,
selectDate,
selectStatus,
optionStatus,
searchDataFn,
filterFn,
convertSatatus
};
})
filterTable,
selectDate,
selectStatus,
optionStatus,
searchDataFn,
filterFn,
convertSatatus,
};
});