added technical data to xinon workorder and workordermph now has a unassign button

This commit is contained in:
Luca Haid
2026-01-18 17:42:11 +00:00
parent a35b865fad
commit 6ab41a9169
13 changed files with 508 additions and 24 deletions
@@ -30,10 +30,13 @@ Vue.component('workorder-mph-admin', {
</div>
<div v-else><span>{{ row.companyName || 'N/A' }}</span></div>
</div>
<div style="display: grid; grid-template-columns: repeat(2, auto); gap: 0px; padding-left: 8px;">
<tt-button v-if="!['completed', 'new'].includes(row.status)" icon="fas fa-edit"
<div style="display: grid; grid-template-columns: repeat(3, auto); gap: 0px; padding-left: 8px;">
<tt-button v-if="!['completed', 'new', 'cancelled'].includes(row.status)" icon="fas fa-edit"
@click="startCompanyEdit(row)" additional-class="btn-link workorder-mph-button"
title="Zuweisung ändern"/>
<tt-button v-if="!['completed', 'new', 'cancelled'].includes(row.status)" icon="fas fa-user-slash text-warning"
@click="unassignWorkorderModalData = row" additional-class="btn-link workorder-mph-button"
title="Zuweisung aufheben"/>
<tt-button v-if="!['completed', 'cancelled'].includes(row.status)" icon="fas fa-ban text-danger"
@click="cancelWorkorderModalData = row" additional-class="btn-link workorder-mph-button"
title="Auftrag stornieren"/>
@@ -101,6 +104,13 @@ Vue.component('workorder-mph-admin', {
<p>Soll der Auftrag <strong>#{{ cancelWorkorderModalData.id }}</strong> wirklich storniert werden?</p>
<tt-textarea label="Grund (optional)" v-model="cancelWorkorderModalData.reason" sm row/>
</tt-modal>
<tt-modal v-if="unassignWorkorderModalData" :show.sync="unassignWorkorderModalData"
title="Zuweisung aufheben" @submit="unassignWorkorder">
<p>Soll die Zuweisung für Auftrag <strong>#{{ unassignWorkorderModalData.id }}</strong> aufgehoben werden?</p>
<p class="text-muted small">Aktuell zugewiesen an: <strong>{{ unassignWorkorderModalData.companyName }}</strong></p>
<tt-textarea label="Grund (optional)" v-model="unassignWorkorderModalData.reason" sm row/>
</tt-modal>
</tt-card>
`,
data() {
@@ -113,6 +123,7 @@ Vue.component('workorder-mph-admin', {
companies: [],
companiesLoading: false,
cancelWorkorderModalData: null,
unassignWorkorderModalData: null,
crudConfig: {
...window.TT_CONFIG.CRUD_CONFIG,
selectable: false,
@@ -237,6 +248,20 @@ Vue.component('workorder-mph-admin', {
} else {
window.notify('error', data.message || 'Stornierung fehlgeschlagen.');
}
},
async unassignWorkorder() {
const { id, reason } = this.unassignWorkorderModalData;
const { data } = await axios.post(`${window.TT_CONFIG.BASE_PATH}/WorkorderMphAdmin/unassignWorkorder`, {
workorderId: id,
reason: reason
});
if (data.success) {
window.notify('success', data.message);
this.$refs.table.$refs.table.refreshTable();
this.unassignWorkorderModalData = null;
} else {
window.notify('error', data.message || 'Aufheben der Zuweisung fehlgeschlagen.');
}
}
}
});