refactor code & fixed location

This commit is contained in:
Warunee Tamkoo 2026-04-27 19:21:23 +07:00
parent 41c1aa8e45
commit 487a6b520e
23 changed files with 566 additions and 145 deletions

103
src/stores/checkin.ts Normal file
View file

@ -0,0 +1,103 @@
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 useCheckIn = 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,
}
})