hrms-mgt/src/modules/09_leave/views/LeaveListMain.vue

73 lines
2.3 KiB
Vue
Raw Normal View History

2023-10-06 13:32:54 +07:00
<script setup lang="ts">
2023-11-17 15:28:03 +07:00
import { ref, reactive, onMounted } from "vue";
2023-10-20 16:57:32 +07:00
/**importType*/
2023-11-17 15:28:03 +07:00
import type {
QuerySting,
DateFilter,
} from "@/modules/09_leave/interface/request/leave";
2023-10-20 16:57:32 +07:00
import type { DataRows } from "@/modules/09_leave/interface/response/leave";
/**importStroe*/
2023-10-20 10:31:07 +07:00
import { useLeavelistDataStore } from "@/modules/09_leave/stores/LeaveStore";
import { useLeavelistDataStoreTest } from "@/modules/09_leave/stores/ListLeave";
/**importComponets*/
2023-10-20 10:31:07 +07:00
import TableList from "@/modules/09_leave/components/2_Leave/TableList.vue";
2023-10-20 16:57:32 +07:00
import ToolBar from "@/modules/09_leave/components/2_Leave/ToolBar.vue";
2023-10-06 13:32:54 +07:00
const leaveStore = useLeavelistDataStore();
const APIDATA = useLeavelistDataStoreTest();
2023-11-17 15:28:03 +07:00
const { fetchList } = leaveStore;
2023-10-06 13:32:54 +07:00
/** เรียกข้อมูลจาก API*/
2023-10-06 13:32:54 +07:00
function fecthLeaveList() {
const data = APIDATA.data;
2023-11-17 15:28:03 +07:00
maxPage.value = Math.ceil(data.length / querySting.pageSize);
fetchList(data); /** ส่งข้อมูลไป stores*/
2023-10-06 13:32:54 +07:00
}
2023-11-17 15:28:03 +07:00
function updatePaging(
newPage: number,
pageSize: number,
dateFilter: DateFilter
) {
querySting.year = dateFilter ? dateFilter.year : querySting.year;
querySting.type = dateFilter ? dateFilter.type : querySting.type;
querySting.status = dateFilter ? dateFilter.status : querySting.status;
querySting.page = newPage;
querySting.pageSize = pageSize;
querySting.keyword = dateFilter ? dateFilter.keyword : querySting.keyword;
console.log(querySting);
2023-10-06 13:32:54 +07:00
}
2023-11-17 15:28:03 +07:00
const maxPage = ref<number>(1);
const querySting = reactive<QuerySting>({
year: 0, //*ปีในการยื่นขอใบลา(ใช้เป็น คศ.)
type: "00000000-0000-0000-0000-000000000000", //*Id ประเภทการลา
status: "ALL", //*สถานะการของลา
page: 1, //*หน้า
pageSize: 5, //*จำนวนแถวต่อหน้า
keyword: "", //keyword ค้นหา
});
onMounted(() => {
fecthLeaveList();
});
2023-10-06 13:32:54 +07:00
</script>
<template>
<div class="toptitle text-dark col-12 row items-center">รายการลา</div>
<div>
2023-11-03 15:08:53 +07:00
<q-card flat bordered class="col-12 q-mt-sm q-pt-sm q-pa-md">
2023-11-17 15:28:03 +07:00
<ToolBar @update:querySting="updatePaging" />
<TableList
:page="querySting.page"
:rowsPerPage="querySting.pageSize"
:maxPage="maxPage"
@update:querySting="updatePaging"
/>
</q-card>
2023-10-06 13:32:54 +07:00
</div>
</template>