Changes Initial commit
This commit is contained in:
133
src/stores/dashboard.js
Normal file
133
src/stores/dashboard.js
Normal file
@@ -0,0 +1,133 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import {
|
||||
assignRelease,
|
||||
createRelease,
|
||||
deleteAssignment,
|
||||
deleteRelease,
|
||||
deleteVehicle,
|
||||
fetchAssignments,
|
||||
fetchReleases,
|
||||
fetchVehicles,
|
||||
registerVehicle,
|
||||
updateAssignment,
|
||||
updateRelease,
|
||||
updateVehicle
|
||||
} from '../services/api'
|
||||
|
||||
export const useDashboardStore = defineStore('dashboard', {
|
||||
state: () => ({
|
||||
releases: [],
|
||||
vehicles: [],
|
||||
assignments: [],
|
||||
loading: false,
|
||||
releaseLoading: false,
|
||||
vehicleLoading: false,
|
||||
assignmentLoading: false
|
||||
}),
|
||||
getters: {
|
||||
latestRelease(state) {
|
||||
return state.releases[0]?.manifest ?? null
|
||||
},
|
||||
onlineVehicles(state) {
|
||||
return state.vehicles.filter((item) => item.online).length
|
||||
},
|
||||
waitingTasks(state) {
|
||||
return state.assignments.filter((item) => item.taskStatus === 'WAITING_CONFIRM').length
|
||||
},
|
||||
successTasks(state) {
|
||||
return state.assignments.filter((item) => item.taskStatus === 'SUCCESS').length
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
async loadAll() {
|
||||
this.loading = true
|
||||
this.releaseLoading = true
|
||||
this.vehicleLoading = true
|
||||
this.assignmentLoading = true
|
||||
try {
|
||||
const [releases, vehicles, assignments] = await Promise.all([
|
||||
fetchReleases(),
|
||||
fetchVehicles(),
|
||||
fetchAssignments()
|
||||
])
|
||||
this.releases = releases
|
||||
this.vehicles = vehicles
|
||||
this.assignments = assignments
|
||||
} finally {
|
||||
this.loading = false
|
||||
this.releaseLoading = false
|
||||
this.vehicleLoading = false
|
||||
this.assignmentLoading = false
|
||||
}
|
||||
},
|
||||
async loadReleases() {
|
||||
this.releaseLoading = true
|
||||
try {
|
||||
this.releases = await fetchReleases()
|
||||
} finally {
|
||||
this.releaseLoading = false
|
||||
}
|
||||
},
|
||||
async loadVehicles() {
|
||||
this.vehicleLoading = true
|
||||
try {
|
||||
this.vehicles = await fetchVehicles()
|
||||
} finally {
|
||||
this.vehicleLoading = false
|
||||
}
|
||||
},
|
||||
async loadAssignments() {
|
||||
this.assignmentLoading = true
|
||||
try {
|
||||
this.assignments = await fetchAssignments()
|
||||
} finally {
|
||||
this.assignmentLoading = false
|
||||
}
|
||||
},
|
||||
async submitRelease(payload) {
|
||||
await createRelease(payload)
|
||||
await this.loadReleases()
|
||||
},
|
||||
async saveRelease(originalReleaseVersion, payload) {
|
||||
await updateRelease(originalReleaseVersion, payload)
|
||||
await this.loadReleases()
|
||||
},
|
||||
async removeRelease(releaseVersion) {
|
||||
await deleteRelease(releaseVersion)
|
||||
await this.loadReleases()
|
||||
},
|
||||
async submitVehicle(payload) {
|
||||
await registerVehicle(payload)
|
||||
await this.loadVehicles()
|
||||
},
|
||||
async saveVehicle(originalVehicleId, payload) {
|
||||
await updateVehicle(originalVehicleId, payload)
|
||||
await this.loadVehicles()
|
||||
},
|
||||
async removeVehicle(vehicleId) {
|
||||
await deleteVehicle(vehicleId)
|
||||
await this.loadVehicles()
|
||||
},
|
||||
async submitAssignment(releaseVersion, vehicleIds) {
|
||||
await assignRelease(releaseVersion, vehicleIds)
|
||||
await this.loadAssignments()
|
||||
},
|
||||
async saveAssignment(vehicleId, releaseVersion) {
|
||||
await updateAssignment(vehicleId, releaseVersion)
|
||||
await this.loadAssignments()
|
||||
},
|
||||
async removeAssignment(vehicleId) {
|
||||
await deleteAssignment(vehicleId)
|
||||
await this.loadAssignments()
|
||||
},
|
||||
getReleaseByVersion(releaseVersion) {
|
||||
return this.releases.find((item) => item.manifest.releaseVersion === releaseVersion)
|
||||
},
|
||||
getVehicleById(vehicleId) {
|
||||
return this.vehicles.find((item) => item.vehicleId === vehicleId)
|
||||
},
|
||||
getTaskByVehicleId(vehicleId) {
|
||||
return this.assignments.find((item) => item.vehicleId === vehicleId)
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user