Stopka rozkazu z informacjami

This commit is contained in:
2022-07-20 21:38:25 +02:00
parent f953d8fe7f
commit 9a4a729449
7 changed files with 152 additions and 81 deletions
+8 -68
View File
@@ -1,56 +1,12 @@
<template>
<div class="rozkaz">
<div class="order">
<transition name="order-anim" mode="out-in">
<keep-alive>
<component :is="chosenOrderComponent"></component>
<component :is="chosenOrderComponent" :key="chosenOrderComponent.name"></component>
</keep-alive>
</transition>
<section class="info">
<table class="info-table">
<tbody>
<tr>
<td colspan="4">
<input type="text" v-model="info.stationName" />
<br />
stacja
</td>
<td colspan="3">
<input type="text" v-model="info.checkpointName" />
<br />
posterunek
</td>
<td colspan="2">
<input type="text" v-model="info.hour" />
<br />
godz.
</td>
<td colspan="1">
<input type="text" v-model="info.minutes" />
<br />
min.
</td>
</tr>
<tr>
<td colspan="5">
<input type="text" v-model="info.dispatcherName" />
<br />
dyżurny ruchu
</td>
<td colspan="5">
<input type="text" v-model="info.secondaryDispatcherName" />
<br />
z polecenia dyżurnego ruchu
</td>
</tr>
</tbody>
</table>
</section>
<OrderFooter />
</div>
</template>
@@ -59,16 +15,16 @@ import { defineComponent } from 'vue';
import { useStore } from '../store/store';
import OrderNVue from './OrderN.vue';
import OrderSVue from './OrderS.vue';
import OrderFooter from './OrderFooter.vue';
export default defineComponent({
components: { OrderNVue, OrderSVue },
components: { OrderNVue, OrderSVue, OrderFooter },
setup() {
const store = useStore();
return {
store,
info: store.orderInfo,
};
},
@@ -77,13 +33,15 @@ export default defineComponent({
return this.store.chosenOrderType == 'OrderS' ? OrderSVue : OrderNVue;
},
},
});
</script>
<style lang="scss">
@import '../styles/global.scss';
.rozkaz {
.order {
max-width: 500px;
background-color: white;
color: black;
@@ -167,24 +125,6 @@ select {
}
}
table.info-table {
border-collapse: collapse;
width: 100%;
table-layout: fixed;
td {
border: 2px solid black;
border-collapse: collapse;
padding: 0.35em;
}
input {
max-width: 95%;
}
text-align: center;
}
.order-anim {
&-enter-active,
&-leave-active {
+97
View File
@@ -0,0 +1,97 @@
<template>
<section class="order_info">
<table>
<tbody>
<tr>
<td colspan="4">
<input type="text" v-model="footerInfo.stationName" />
<br />
stacja
</td>
<td colspan="3">
<input type="text" v-model="footerInfo.checkpointName" />
<br />
posterunek
</td>
<td colspan="2">
<input type="text" v-model="footerInfo.hour" />
<br />
godz.
</td>
<td colspan="1">
<input type="text" v-model="footerInfo.minutes" />
<br />
min.
</td>
</tr>
<tr>
<td colspan="5">
<input type="text" v-model="footerInfo.dispatcherName" />
<br />
dyżurny ruchu
</td>
<td colspan="5">
<input type="text" v-model="footerInfo.secondaryDispatcherName" />
<br />
z polecenia dyżurnego ruchu
</td>
</tr>
</tbody>
</table>
</section>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import orderFooterMixin from '../mixins/orderFooterMixin';
import { useStore } from '../store/store';
export default defineComponent({
mixins: [orderFooterMixin],
setup() {
const store = useStore();
return {
store,
footerInfo: store.orderFooter,
};
},
watch: {
footerInfo: {
deep: true,
handler() {
this.generateFooter();
},
},
},
});
</script>
<style lang="scss" scoped>
.order_info {
table {
border-collapse: collapse;
width: 100%;
table-layout: fixed;
td {
border: 2px solid black;
border-collapse: collapse;
padding: 0.35em;
}
input {
max-width: 95%;
}
text-align: center;
}
}
</style>
+2 -3
View File
@@ -208,6 +208,7 @@
<script lang="ts">
import { defineComponent, reactive } from 'vue';
import orderFooterMixin from '../mixins/orderFooterMixin';
import { useStore } from '../store/store';
type OrderRowRange = 1 | 2 | 3 | 4 | 5;
@@ -248,7 +249,7 @@ export default defineComponent({
if (row2.checkbox == 'checkbox-2a') {
message += ` przejechać obok wskazującego sygnał "Stój" semafora ${row2.signalType || '_'} `;
if (row2.signalType == 'wyjazdowego') message += row2.signal1 || "_";
if (row2.signalType == 'wyjazdowego') message += row2.signal1 || '_';
if (row2.signalType == 'drogowskazowego')
message += `${row2.signal2 || '_'} (odnoszącego się do wyjazdu pociągu)`;
if (row2.signalType == 'wjazdowego') message += `${row2.signal3 || '_'} na post. odg. bez sem. wyjazdowego`;
@@ -336,8 +337,6 @@ export default defineComponent({
this.store.orderMessage = message;
},
generateFooter() {},
},
});
</script>
+8 -6
View File
@@ -78,7 +78,8 @@
v-model="order.row2.signalType"
/>
<label for="radio-2a-2"
>drogowskazowego <input type="text" v-model="order.row2.signal2" /> (odnoszącego się do wyjazdu pociągu)
>drogowskazowego <input type="text" v-model="order.row2.signal2" /> (odnoszącego się do wyjazdu
pociągu)
</label>
<br />
<input
@@ -106,10 +107,11 @@
</div>
</td>
<td>
Od <input type="text" v-model="order.row3.from" /> do <input type="text" v-model="order.row3.to" /> po torze
nr <input type="text" v-model="order.row3.trackNo" /> ruch pociągów prowadzony jest w odstępie posterunków
następczych. Wskazania semaforów sbl nieważne. Zachować ostrożność od ostatniego semafora ze wskaźnikiem
"W18". Szlak wolny, ostatni pociąg nr <input type="text" v-model="order.row3.trainNo" /> przybył do
Od <input type="text" v-model="order.row3.from" /> do <input type="text" v-model="order.row3.to" /> po
torze nr <input type="text" v-model="order.row3.trackNo" /> ruch pociągów prowadzony jest w odstępie
posterunków następczych. Wskazania semaforów sbl nieważne. Zachować ostrożność od ostatniego semafora
ze wskaźnikiem "W18". Szlak wolny, ostatni pociąg nr
<input type="text" v-model="order.row3.trainNo" /> przybył do
<input type="text" v-model="order.row3.arrivedTo" /> o godzinie
<input type="text" v-model="order.row3.hour" />
</td>
@@ -135,6 +137,7 @@
<script lang="ts">
import { defineComponent, reactive } from 'vue';
import orderFooterMixin from '../mixins/orderFooterMixin';
import { useStore } from '../store/store';
type OrderRowRange = 1 | 2 | 3 | 4;
@@ -248,7 +251,6 @@ export default defineComponent({
</script>
<style lang="scss">
textarea {
width: 95%;
height: 200px;