refactor code & fixed location
This commit is contained in:
parent
41c1aa8e45
commit
487a6b520e
23 changed files with 566 additions and 145 deletions
|
|
@ -1,103 +0,0 @@
|
|||
import { defineStore } from 'pinia'
|
||||
import { ref } from 'vue'
|
||||
import type { FormData, Datalist } from '@/interface/response/checkin'
|
||||
import { useCounterMixin } from '@/stores/mixin'
|
||||
import { calculateFiscalYear } from '@/utils/function'
|
||||
|
||||
const mixin = useCounterMixin()
|
||||
const { date2Thai } = mixin
|
||||
|
||||
/** store for checkin history*/
|
||||
export const useChekIn = defineStore('checkin', () => {
|
||||
const year = ref<number>(calculateFiscalYear(new Date())) //ปีงบประมาณ
|
||||
const rows = ref<Datalist[]>([])
|
||||
const tab = ref<string>('history')
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นสำหรับ map ข้อมูล เพื่อแสดงรายการในตารางประวัติการลงเวลา
|
||||
* @param data รายการข้อมูลทีต้องการ map เป็น array ที่ประกอบด้วย object ตาม FormData
|
||||
*/
|
||||
async function fetchHistoryList(data: FormData[]) {
|
||||
rows.value = []
|
||||
const dataList: Datalist[] = data.map((e: FormData) => ({
|
||||
checkInId: e.checkInId,
|
||||
checkInDate: e.checkInDate ? date2Thai(e.checkInDate) : null,
|
||||
checkInDateTime: e.checkInDate ? e.checkInDate : e.checkOutDate,
|
||||
checkInTime: e.checkInTime,
|
||||
checkOutTime: e.checkOutTime != '' ? e.checkOutTime : '-',
|
||||
checkInStatus: e.checkInStatus ? convertStatus(e.checkInStatus) : '-',
|
||||
checkOutStatus:
|
||||
e.checkOutStatus != null ? convertStatus(e.checkOutStatus) : '-',
|
||||
checkInLocation: e.checkInLocation ? e.checkInLocation : '-',
|
||||
checkOutLocation: e.checkOutLocation != '' ? e.checkOutLocation : '-',
|
||||
editStatus: e.editStatus != '' ? convertEditStatus(e.editStatus) : '',
|
||||
editReason: e.editReason,
|
||||
isEdit: e.isEdit,
|
||||
}))
|
||||
rows.value = dataList
|
||||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นสำหรับ convert ข้อความสถานะของการลงเวลา ปกติ, ขาดราชการ หรือสาย
|
||||
* @param status ฟิลด์สถานะที่มาจาก API
|
||||
* @returns ข้อความสถานะ ปกติ, ขาดราชการ หรือสาย
|
||||
*/
|
||||
function convertStatus(status: string) {
|
||||
switch (status) {
|
||||
case 'ABSENT':
|
||||
return 'ขาดราชการ'
|
||||
case 'NORMAL':
|
||||
return 'ปกติ'
|
||||
case 'LATE':
|
||||
return 'สาย'
|
||||
case 'NOT_COMPLETE':
|
||||
return 'ปฏิบัติงานไม่ครบตามกำหนดเวลา'
|
||||
default:
|
||||
return '-'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นสำหรับ convert ข้อความสถานะการขอแก้ไข/การขอลงเวลาพิเศษ
|
||||
* @param val ฟิลด์สถานะการขอแก้ไข/การขอลงเวลาพิเศษที่มาจาก API
|
||||
* @returns ข้อความสถานะการขอแก้ไข/การขอลงเวลาพิเศษ
|
||||
*/
|
||||
function convertEditStatus(val: string) {
|
||||
switch (val) {
|
||||
case 'PENDING':
|
||||
return 'รออนุมัติ'
|
||||
case 'APPROVE':
|
||||
return 'อนุมัติ'
|
||||
case 'REJECT':
|
||||
return 'ไม่อนุมัติ'
|
||||
default:
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นสำหรับแสดง class กรณีสถานะการขอลงเวลาพิเศษ
|
||||
* @param val ข้อความสถานะการขอลงเวลาพิเศษที่ convert แล้ว
|
||||
* @returns ค่าสีที่ต้องการแสดงตามข้อความสถานะ
|
||||
*/
|
||||
function classColorStatus(val: string) {
|
||||
switch (val) {
|
||||
case 'รออนุมัติ':
|
||||
return 'orange'
|
||||
case 'อนุมัติ':
|
||||
return 'green'
|
||||
case 'ไม่อนุมัติ':
|
||||
return 'red'
|
||||
default:
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
rows,
|
||||
year,
|
||||
fetchHistoryList,
|
||||
classColorStatus,
|
||||
tab,
|
||||
}
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue