74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import type { UserData } from '~/services/dto/user-data'
|
|
import type { TruckData } from '~/services/dto/truck-data'
|
|
import type { CarrierData } from '~/services/dto/carrier-data'
|
|
import { getUsers } from '~/services/auth'
|
|
import { getTruckList } from '~/services/truck'
|
|
import { getCarrierList } from '~/services/carrier'
|
|
import { useAuthStore } from '~/stores/auth'
|
|
|
|
export const useFormDataLoading = (form: { userId: string }) => {
|
|
const users = ref<UserData[]>([])
|
|
const trucks = ref<TruckData[]>([])
|
|
const carriers = ref<CarrierData[]>([])
|
|
const isLoadingUsers = ref(false)
|
|
const isLoadingTrucks = ref(false)
|
|
const isLoadingCarriers = ref(false)
|
|
const authStore = useAuthStore()
|
|
|
|
const loadUsers = async () => {
|
|
isLoadingUsers.value = true
|
|
try {
|
|
users.value = await getUsers()
|
|
} finally {
|
|
isLoadingUsers.value = false
|
|
}
|
|
}
|
|
|
|
const loadTrucks = async () => {
|
|
isLoadingTrucks.value = true
|
|
try {
|
|
trucks.value = await getTruckList()
|
|
} finally {
|
|
isLoadingTrucks.value = false
|
|
}
|
|
}
|
|
|
|
const loadCarriers = async () => {
|
|
isLoadingCarriers.value = true
|
|
try {
|
|
carriers.value = await getCarrierList()
|
|
} finally {
|
|
isLoadingCarriers.value = false
|
|
}
|
|
}
|
|
|
|
const setDefaultUser = () => {
|
|
if (form.userId) return
|
|
if (authStore.user?.id) {
|
|
form.userId = String(authStore.user.id)
|
|
}
|
|
}
|
|
|
|
const loadCommonData = async () => {
|
|
await loadUsers()
|
|
await loadTrucks()
|
|
await loadCarriers()
|
|
await authStore.ensureSession()
|
|
setDefaultUser()
|
|
}
|
|
|
|
return {
|
|
users,
|
|
trucks,
|
|
carriers,
|
|
isLoadingUsers,
|
|
isLoadingTrucks,
|
|
isLoadingCarriers,
|
|
loadUsers,
|
|
loadTrucks,
|
|
loadCarriers,
|
|
setDefaultUser,
|
|
loadCommonData
|
|
}
|
|
}
|