Files
thetool/public/js/pages/RMLWorkorderDashboardView/RMLWorkorderDashboardView.js
2025-06-29 20:32:28 +02:00

61 lines
2.3 KiB
JavaScript

// RMLWorkorderAdminDashboardView.js
// This would be a separate file and view.
Vue.component('rml-workorder-admin-dashboard', {
template: `
<div>
<div class="row">
<div class="col-md-3">
<div class="card">
<div class="card-body">
<h4 class="header-title">Neue Aufträge</h4>
<p class="display-4 text-primary">{{ stats.new || 0 }}</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card">
<div class="card-body">
<h4 class="header-title">In Arbeit</h4>
<p class="display-4 text-warning">{{ stats.in_progress || 0 }}</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card">
<div class="card-body">
<h4 class="header-title">Überfällig</h4>
<p class="display-4 text-danger">{{ stats.overdue || 0 }}</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card">
<div class="card-body">
<h4 class="header-title">Abgeschlossen (30T)</h4>
<p class="display-4 text-success">{{ stats.completed_30d || 0 }}</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<tt-card>
<template v-slot:header><h5>Dringende Aufträge (Deadline < 1 Woche)</h5></template>
</tt-card>
</div>
</div>
</div>
`,
data() {
return {
stats: {}
}
},
async mounted() {
// You would create a new controller action e.g., /RMLWorkorder/getDashboardStats
// const response = await axios.get(`${window.TT_CONFIG.BASE_PATH}/RMLWorkorder/getDashboardStats`);
// this.stats = response.data;
}
})