53 lines
2.0 KiB
JavaScript
53 lines
2.0 KiB
JavaScript
// RMLWorkorderCompanyDashboardView.js
|
|
// This would be a separate file and view.
|
|
|
|
Vue.component('rml-workorder-company-dashboard', {
|
|
template: `
|
|
<div>
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h4 class="header-title">Meine offenen Aufträge</h4>
|
|
<p class="display-4 text-primary">{{ stats.assigned || 0 }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h4 class="header-title">Meine dringenden Aufträge</h4>
|
|
<p class="display-4 text-danger">{{ stats.urgent || 0 }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h4 class="header-title">Meine terminierten Aufträge</h4>
|
|
<p class="display-4 text-warning">{{ stats.scheduled || 0 }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<tt-card>
|
|
<template v-slot:header><h5>Nächste Termine</h5></template>
|
|
</tt-card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
`,
|
|
data() {
|
|
return {
|
|
stats: {}
|
|
}
|
|
},
|
|
async mounted() {
|
|
// You would create a new controller action e.g., /RMLWorkorder/getCompanyDashboardStats
|
|
// const response = await axios.get(`${window.TT_CONFIG.BASE_PATH}/RMLWorkorder/getCompanyDashboardStats`);
|
|
// this.stats = response.data;
|
|
}
|
|
}) |