Refactoring code module 05_leave

This commit is contained in:
STW_TTTY\stwtt 2024-09-03 17:36:59 +07:00
parent 763ec2fd95
commit 4253226ac3
23 changed files with 383 additions and 532 deletions

View file

@ -1,29 +1,47 @@
<script setup lang="ts">
import { ref, onMounted, computed } from "vue";
import { useQuasar } from "quasar";
import { useRoute, useRouter } from "vue-router";
import { useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import type { LeaveItem } from "@/modules/05_leave/interface/index/main";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type {
LeaveItem,
MainList,
} from "@/modules/05_leave/interface/index/main";
import type { QTableProps } from "quasar";
import CalendarView from "@/modules/05_leave/components/Calendar.vue";
import ListView from "@/modules/05_leave/components/ListView.vue";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
const $q = useQuasar();
const router = useRouter();
const mixin = useCounterMixin();
const leaveStore = useLeaveStore();
const { showLoader, hideLoader, messageError } = mixin;
const router = useRouter();
const route = useRoute();
const $q = useQuasar();
const { messageError } = mixin;
const row = ref<MainList[]>([]);
const filterLeaveType = ref(["ลาป่วย", "ลากิจส่วนตัว", "ลาพักผ่อน"]);
const itemPie = ref<LeaveItem[]>([]);
const pagination = ref({ rowsPerPage: 15 });
const modalStatsTable = ref<boolean>(false);
/**
* find อมลจาก api
*/
const filteredItems = computed(() => {
return itemPie.value.filter((item) => item.text === "ลาพักผ่อน");
});
const filteredSick = computed(() => {
return itemPie.value.filter((item) => item.text === "ลาป่วย");
});
const filteredBusi = computed(() => {
return itemPie.value.filter((item) => item.text === "ลากิจส่วนตัว");
});
const columns = ref<QTableProps["columns"]>([
{
name: "no",
@ -99,13 +117,9 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px; width:15%;",
},
]);
const row = ref<any>([]);
const pagination = ref({ rowsPerPage: 15 });
/** function เรียกข้อมูลตารางสถิติการลา*/
async function fetchStatsTable() {
// modalStatsTable.value = true;
await http
.get(config.API.leaveStats())
.then((res) => {
@ -129,7 +143,7 @@ async function fetchStatsTable() {
});
stat.forEach((item) => itemPie.value.push(...item));
row.value = data.map((e: any) => ({
row.value = data.map((e: MainList) => ({
leaveTypeName: e.leaveTypeName,
leaveLimit:
e.leaveTypeName === "ลาพักผ่อน"
@ -155,7 +169,6 @@ async function fetchStatsTable() {
});
}
const modalStatsTable = ref<boolean>(false);
function onClickOpenStat() {
modalStatsTable.value = true;
}
@ -166,19 +179,6 @@ async function addAbsence() {
router.push(`/leave/add`);
}
/**
* find อมลจาก api
*/
const filteredItems = computed(() => {
return itemPie.value.filter((item) => item.text === "ลาพักผ่อน");
});
const filteredSick = computed(() => {
return itemPie.value.filter((item) => item.text === "ลาป่วย");
});
const filteredBusi = computed(() => {
return itemPie.value.filter((item) => item.text === "ลากิจส่วนตัว");
});
onMounted(async () => {
await fetchStatsTable();
});