136 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|     <section id="content">
 | |
|         <div id="content-header">
 | |
|             <router-link to="/maintenanceVisits" class="button" id="maintenanceVisits-button">
 | |
|                 <h1 :class="[darkMode ? 'h1-darkmode' : 'h1-lightmode']" id="page-name">Maintenance visits</h1>
 | |
|             </router-link>
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|              
 | |
|             <router-link to="/productionOrders" class="button" id="productionOrders-button">
 | |
|                 <h1 :class="[darkMode ? 'h1-darkmode' : 'h1-lightmode']" id="active-page-name">Production orders</h1>
 | |
|             </router-link>
 | |
|         </div>
 | |
|         <div id="content-body">
 | |
|             <ClientSearch v-if="onTemplatelist || onCustomerTemplatelist"/>
 | |
|             <ProductionOrdersTemplateTable v-if="onTemplatelist"/>
 | |
|             <ProductionOrdersTemplateTableNoClient v-if="onCustomerTemplatelist"/>
 | |
|             <ProductionOrdersTemplate v-if="onTemplate"/>
 | |
|             <TemplateChecklist v-if="onTemplate"/>
 | |
|             <TemplateSearch v-if="onInstancelist"/>
 | |
|             <ProductionOrdersInstanceTable v-if="onInstancelist"/>
 | |
|             <ProductionOrdersInstance v-if="onInstance"/>
 | |
|             <InstanceChecklist v-if="onInstance"/>
 | |
|         </div>
 | |
|     </section>
 | |
| </template>
 | |
|     
 | |
|     
 | |
| <script setup>
 | |
| import { ref } from 'vue';
 | |
| 
 | |
| import ClientSearch from "../components/ClientSearch.vue";
 | |
| import ProductionOrdersTemplateTable from "../components/server/ProductionOrdersTemplateTable.vue";
 | |
| import ProductionOrdersTemplateTableNoClient from "../components/server/ProductionOrdersTemplateTableNoClient.vue";
 | |
| import ProductionOrdersTemplate from "../components/server/ProductionOrdersTemplate.vue";
 | |
| import TemplateChecklist from "../components/server/TemplateChecklist.vue";
 | |
| import TemplateSearch from "../components/TemplateSearch.vue";
 | |
| import ProductionOrdersInstanceTable from "../components/server/ProductionOrdersInstanceTable.vue";
 | |
| import ProductionOrdersInstance from "../components/server/ProductionOrdersInstance.vue";
 | |
| import InstanceChecklist from "../components/server/InstanceChecklist.vue";
 | |
| 
 | |
| definePageMeta({
 | |
|     layout: 'default'
 | |
| })
 | |
| 
 | |
| const darkMode = ref(true)
 | |
| 
 | |
| // to render the right components
 | |
| const onTemplatelist = ref(true)
 | |
| const onCustomerTemplatelist = ref(false)
 | |
| const onTemplate = ref(false)
 | |
| const onInstancelist = ref(false)
 | |
| const onInstance = ref(false)
 | |
| </script>
 | |
|   
 | |
| <script>
 | |
| export default {
 | |
|     name: "ProductionOrdersPage",
 | |
| }
 | |
| </script>     
 | |
|       
 | |
|       
 | |
| <style scoped>
 | |
| * {
 | |
|     box-sizing: border-box;
 | |
| }
 | |
| 
 | |
| 
 | |
| #content {
 | |
|     display: flex;
 | |
|     flex-direction: column;
 | |
|     float: left;
 | |
|     justify-content: stretch;
 | |
|     align-items: stretch;
 | |
|     width: 100%;
 | |
|     flex-grow: 1;
 | |
|     gap: 0.625rem;
 | |
|     padding: 0 1.25rem;
 | |
| }
 | |
| 
 | |
| #content-header {
 | |
|     display: flex;
 | |
|     flex-direction: row;
 | |
|     justify-content: center;
 | |
|     align-items: center;
 | |
|     width: 100%;
 | |
|     height: 3.125rem;
 | |
| }
 | |
| 
 | |
| #page-name {
 | |
|     letter-spacing: 5%;
 | |
|     font: 400 1.5rem/125% Overpass, -apple-system, Roboto, Helvetica,
 | |
|         sans-serif;
 | |
| }
 | |
| 
 | |
| #active-page-name {
 | |
|     letter-spacing: 5%;
 | |
|     font: 400 1.5rem/125% Overpass, -apple-system, Roboto, Helvetica,
 | |
|         sans-serif;
 | |
|     text-decoration: underline;
 | |
| }
 | |
| 
 | |
| .button {
 | |
|     text-decoration: none;
 | |
| }
 | |
| 
 | |
| .h1-darkmode {
 | |
|     color: #fff;
 | |
| }
 | |
| 
 | |
| .h1-lightmode {
 | |
|     color: #000;
 | |
| }
 | |
| 
 | |
| #content-body {
 | |
|     display: flex;
 | |
|     flex-direction: column;
 | |
|     width: 100%;
 | |
|     gap: 1.25rem;
 | |
|     margin-bottom: 0.625rem;
 | |
|     border-radius: 0.625rem;
 | |
| }
 | |
| </style> |