72 lines
1.9 KiB
TypeScript
72 lines
1.9 KiB
TypeScript
import { defineStore } from 'pinia'
|
|
import { ref } from 'vue'
|
|
|
|
import type { FormData, Datalist } from '@/interface/response/checkin'
|
|
|
|
// importStores
|
|
import { useCounterMixin } from '@/stores/mixin'
|
|
|
|
const mixin = useCounterMixin()
|
|
const { date2Thai } = mixin
|
|
|
|
export const useChekIn = defineStore('checkin', () => {
|
|
const rows = ref<Datalist[]>()
|
|
|
|
async function fetchHistoryList(data: FormData[]) {
|
|
rows.value = []
|
|
const datalist: Datalist[] = await data.map((e: FormData) => ({
|
|
checkInId: e.checkInId,
|
|
checkInDate: e.checkInDate ? date2Thai(e.checkInDate) : null,
|
|
checkInDateTime: e.checkInDate,
|
|
checkInTime: e.checkInTime,
|
|
checkOutTime: e.checkOutTime != '' ? e.checkOutTime : '-',
|
|
checkInStatus: convertStatus(e.checkInStatus),
|
|
checkOutStatus:
|
|
e.checkOutStatus != null ? convertStatus(e.checkOutStatus) : '-',
|
|
checkInLocation: e.checkInLocation,
|
|
checkOutLocation: e.checkOutLocation != '' ? e.checkOutLocation : '-',
|
|
// statusEditName: convertStatusEdit(e.statusEdit),
|
|
}))
|
|
rows.value = datalist
|
|
}
|
|
|
|
function convertStatus(status: string) {
|
|
switch (status) {
|
|
case '':
|
|
return 'ขาดราชการ'
|
|
case 'NORMAL':
|
|
return 'ปกติ'
|
|
case 'LATE':
|
|
return 'สาย'
|
|
default:
|
|
return ''
|
|
}
|
|
}
|
|
// function convertStatusEdit(val: string) {
|
|
// switch (val) {
|
|
// case 'edit':
|
|
// return 'ขอแก้ไข'
|
|
// case 'wait':
|
|
// return 'รออนุมัติ'
|
|
// case 'approve':
|
|
// return 'อนุมัติ'
|
|
// }
|
|
// }
|
|
// function classColorStatus(val: string) {
|
|
// switch (val) {
|
|
// case 'wait':
|
|
// return 'orange'
|
|
// case 'approve':
|
|
// return 'green'
|
|
// case 'reject':
|
|
// return 'red'
|
|
// }
|
|
// }
|
|
|
|
return {
|
|
rows,
|
|
fetchHistoryList,
|
|
// classColorStatus,
|
|
// fetchlistHistory,
|
|
}
|
|
})
|